wiki:Dev/lambda

Version 1 (modified by mitty, 14 years ago) (diff)

--

λ計算に纏わる資料

recursion

  • lambdaを使った無名再帰は可能か?
    • たとえば以下のschemeコード
      (define (add n)
          (local
              (
                  ;; n-th power of given funtion
                  ;;   repeat : func num -> n-th power of func
                  (define (repeat f n)
                      (cond
                          [(= n 0) (lambda (x) x)]
                          [else
                              (lambda (x)
                                  (f 
                                      (
                                          (repeat f (- n 1))
                                          x
                                      )
                                  )
                              )
                          ]
                      )
                  )
              )
              (repeat add1 n)
          )
      )
      
    • 上記コードにより以下が示される
      > ((add 4) 10)
      14
      
    • ここで、local内で定義されているrepeatを無名関数にすることは可能か?