タグ

2010年3月16日のブックマーク (3件)

  • apply の引数 - 日々ごちゃごちゃと考える

    apply: FUNCTION ARG &rest MORE-ARGS apply は何気に引数を複数に分けて受けられる。でも funcall とは違って、最初見たときは意味がわからん動作をする。 というのは、ARG と MORE-ARGS のうち一番最後の引数は list に突っ込んでおかねばならず、それ以外はそのままでいいというかそのままでないといけない。 #| ;;; 最初は受け取った引数をリストにまとめて返すこんな関数を ;;; 定義して使ってたのだけど、list がまさに同じ動作をする ;;; ことに気づいてしまった (defun args (&rest args) args) |# ;;; ふつーに関数 list を呼び出す (list 1 2 3) => (1 2 3) ;;; ふつーに関数 list を apply で呼び出す (apply #'list '(1 2 3))

    apply の引数 - 日々ごちゃごちゃと考える
    pipehead
    pipehead 2010/03/16
    > 一番最後の引数は list に突っ込んでおかねばならず、それ以外はそのままでいいというかそのままでないといけない。
  • apply/call での継承の話 - nothing but trouble

    この件について。 http://d.hatena.ne.jp/iskwn/20091215/1260828978 継承というかスコープがわかりやすいというのもメリットだと思うけど、カプセル化しやすいのも大きなメリットかなと思う。 function Foo(){} (function(){ var bar = 'bar'; this.bar = bar.toUpperCase(); function baz () { console.log('baz'); } this.baz = function() { baz(); console.log('BAZ'); } }).call(Foo.prototype); function Bar(){} Bar.prototype = new Foo(); (function() { this.hoge = 'hoge'; this.baz = fu

    apply/call での継承の話 - nothing but trouble
  • 第11回 2進数と10進数のビミョーな関係

    原始,人間は指を折って数を数えた。デジタルの語源であるdigitは「指」を意味する。11以上の数は,ほかの人の手を借りて数えた。要するに桁上がりだ。しかし,コンピュータは人間とは違って2進数で演算処理を行う。そんな「機械と人の数の数え方」について調査した。 2進数だって人間の都合でできている 2進数とは「0または1のどちらかの値しか持たない,数の数え方」だ。コンピュータの処理がこの2進数を基にしていることは,皆さんご存じだろう。なぜ,コンピュータは10進数ではなくて2進数で計算するのだろう? もしかすると,コンピュータの都合で決まっているように見えるかもしれない。 実のところ,0とか1とか2進数とかいった考え方自体もまた非常に人間寄りなものだ。CPUは,自分の扱っているデータが0か1か,ましてや,それに基づく数の数え方が2進数かどうかなんて,みじんもわかっていない。 CPUに判断できるの

    第11回 2進数と10進数のビミョーな関係
    pipehead
    pipehead 2010/03/16