タグ

ブックマーク / jutememo.blogspot.com (2)

  • Scheme で変数の束縛 - let, let*, letrec, 名前付きlet, letrec*

    1. Haskell の let 式は相互再帰的 Haskell で値を変数に束縛したい場合、let 式を使う。 束縛とは、束縛 (情報工学) – Wikipedia によると、 名前束縛(Name binding)あるいは名前結合とは、値を識別子に対応付けることを意味する。値に束縛された識別子を、その値への参照と呼ぶ。 例えば、値を変数に束縛した後、その変数を利用して計算を行う場合、 main = let x = 100 y = 200 z = x + y in print (x, y, z) -- (100,200,300) Haskell の let 式の特徴は、束縛した変数を相互再帰的に利用できること。 3.12 let 式 によると、 Let 式 は let { d1 ; ... ; dn } in e という一般形式を持ち、入れ子でレキシカルスコープで相互再帰的な宣言リスト (

    ikeikeikeike
    ikeikeikeike 2012/11/06
    “Scheme で変数の束縛 - let, let*, letrec, 名前付きlet, letrec* | すぐに忘れる脳みそのためのメモ”
  • Python の map, filter, reduce とリスト内包表記

    1. リストを操作する関数で重要なのはどれ? リスト内包表記は慣れたら使いやすい Python のリスト内包表記に出会って 4 ヶ月が経った。 「Python のリスト内包表記」を読みなおしてみると、 … 同じく数値のリストから、特定の条件に合う要素を抽出する。 print [x for x in [1,2,3,4,5] if x > 3] これまた読みにくい。 (@_@;) と書いていたけれど、今では「シンプルで読みやすく、また書きやすい」と思える。慣れとは恐ろしい。 ^^; (リスト内包表記がネストしてたりすると、すぐに理解出来ないけれど。) Ruby の Enumerable モジュールにはたくさんのメソッドが定義されている Java しか知らなかった頃、Ruby の 配列に定義されているメソッドを見て、「便利なメソッドがたくさんあるなぁ」と思った。Ruby の配列は、Enumera

  • 1