以下のコードでプロシージャを呼び出して値を取得しようとしています
(define main (x y) ((< x y) (p1 x) (p2 y)))
(p1 x) returns 'first, (p2 y) returns 'second
ただし、主に返すものはありません。
どうすればこれを解決できますか? let と lambda を使用しようとしましたが、失敗しました。
どうもありがとう。
p1
andを次のように定義しますp2
。
(define (p1 thing) 'first)
(define (p2 thing) 'second)
そして次のようにmain
なります。
(define (main x y)
(if (< x y)
(p1 x)
(p2 y)))
本当に使用する必要がlet
ありlambda
、これが機能する場合:
(define (main x y)
(let ((p1 (lambda (thing) 'first))
(p2 (lambda (thing) 'second)))
(if (< x y)
(p1 x)
(p2 y))))