1
嗨我想寫一個函數,將返回一個表達式是可變的,可以用作一個過程。返回Scheme中一個可變對象的表達式?
例如:
(fooeq 1 2)
將返回(eq? 1 2)
和
((fooeq 1 2))
將返回#f
是否有編寫是可以轉換成一個符號的表達式的方式程序?
編輯:我明白了,謝謝你的迴應。如果其他人想知道這是(eval p)。
嗨我想寫一個函數,將返回一個表達式是可變的,可以用作一個過程。返回Scheme中一個可變對象的表達式?
例如:
(fooeq 1 2)
將返回(eq? 1 2)
和
((fooeq 1 2))
將返回#f
是否有編寫是可以轉換成一個符號的表達式的方式程序?
編輯:我明白了,謝謝你的迴應。如果其他人想知道這是(eval p)。
我猜你想fooeq
評估的功能:
> (define (fooeq a b)
(lambda() (eq? a b)))
> ((fooeq 1 2))
#f
> ((fooeq 1 1))
#t
>
,它使用一個或多個功能的輸入或輸出功能被稱爲higher-order function的功能。
計算機如何神奇地將`fooeq`變成`eq?`? – Mehrdad 2011-02-17 05:37:49
這只是一個任意的例子。對不起,讓我更清楚一點。我想要我的原始函數,讓我們把它稱爲foo,實際返回一個任意的值,然後可以像過程一樣進行評估。所以我想知道我怎樣才能像'(eq 1 2)這樣的價值並且實際上像一個過程那樣對待它。 – Brian 2011-02-17 06:44:46