EoPL reading (35) 1.3.1 Free and Bound Variables

なんとなく早く寝ないと、と思いつつ 1.3.2 に。

Exercise.1-27

矢印ってありますが例示されてるナニ式で書いてみます。まず一つめ。

(lambda (x)      ;; call this x1
  (lambda (y)    ;; call this y
    ((lambda (x) ;; call this x2
       (x y))    ;; refers to x2 y
      x)))       ;; refers to x1

うーん。なんか微妙。次は書き方に工夫が必要。

(lambda (z)        ;; call this z
  ((lambda (a b c) ;; call this a1, b1, c1
     (a            ;; refers to a1
      (lambda (a)  ;; call this a2
        (+ a c))   ;; refers to a2, c1
      b))          ;; refers to b1
   (lambda (f x)   ;; call this f1, x1
     (f (z x)))))  ;; refers to f1, z, x1

こんなして書いたら意味が全然分からんな。

Exercise.1-28

C で書けば良いのでしょうがスルー

Exercise.1-29

こんな参照はダウト、という事で良いのかな。

(lambda (a)   ;; call this a1
  (lambda (a) ;; call this a2
    a))       ;; refers to a1

次。

Exercise.1-29

これで良いのかな。

(lambda (x)
  (lambda (y)
    x))

今日は早めに寝ます。