說我有這樣的代碼:有沒有辦法在球拍中看到拉姆達的身體?
#lang racket
(define a
((λ (x) x)
((λ (y) y)
(λ (z)
((λ (w) w) z)))))
我直覺這lambda表達式是(外延上)等於(λ (z) z)
知道
我的問題是,如果有一種方法的情況下,打印出的a
身體我想看看Racket在內部簡化了多少功能。
的更多信息:
默認情況下,如果我輸入a
入解釋,我得到#<procedure:y>
(這似乎給一個提示,多評價如何發生的)。我可以將輸出樣式更改爲「構造函數」,然後結果是(lambda (a1) ...)
,它更接近我想要的,但我仍然不知道身體中哪些是重要部分。
我想象一個可以與球拍的評價策略進行更徹底的知識回答這個問題,但我仍然有興趣,如果顯示過程主體是一般可以發生的事。
相關(但_not_重複):http://stackoverflow.com/questions/20349543/how- do-you-return-the-description-of-a-procedure-in-scheme/20362858#20362858和http://stackoverflow.com/questions/10114295/is-there-a-way-to-view-a-功能 - 源代碼由內最球拍REPL –