タグ

clとsomeに関するkiyo_hikoのブックマーク (1)

  • Lisp の every と some 風の関数を JavaScript で

    Common Lisp や Emacs Lisp 等では every や some という高階関数が提供されており、複数の値に対するテストを簡潔に記述することができる(述語関数/predicateの、リストへの適用)。 Lispの例 (every #'evenp '(1 2 3)) => nil ; 偶数でない要素があるため偽(nil) (some #'evenp '(1 2 3)) => t ; 偶数の要素が少なくとも1個あるため真(t) ここで、evenp は引数が偶数の場合に t を返す組み込み関数 JavaScriptの例 JavaScriptで同様のことを実現したいという場合は、次のような形になるはず。 // 関数定義 function every(p, arr){ for (i = 0, n=arr.length; i < n; i++) { if(!p(arr[i])) re

  • 1