2017-12-04 4 views
0

Ich bin neu in Lisp Scheme. Ich kam dieser Code über die "let" .Wie kann ich ersetzen Sie es mit LambdaLisp Scheme: Let to Lambda

(define Gen-Decoder-A 
     (lambda (p) 
     (define check-decode 
      (lambda (n) 
      (num-valid-words (encode-p p (encode-n n)))) 
     ) 
     (let ((decode-compare (map check-decode abc-nums))) 
      (encode-n (get-position (apply max decode-compare) decode-compare))) 
     ((lambda 
     ) 
    ) 

Hier ist der Link zum vollständigen Code

Hier ist der Code verwendet: https://github.com/corypisano/CS314/blob/master/Project2/decode.ss

Die let ist in Gen-Decoder-A ich lassen Lambda

Antwort

2

A let ist syntaktischer Zucker nur für eine lambda ändern Hilfe - die let Variablen als lambda neu geschrieben werden kann Parameter, die beim Aufruf des lambda gebunden werden. Zum Beispiel dieser Ausdruck:

(let ((decode-compare (map check-decode abc-nums))) 
    (encode-n (get-position (apply max decode-compare) decode-compare))) 

entspricht dies:

((lambda (decode-compare) 
    (encode-n (get-position (apply max decode-compare) decode-compare))) 
(map check-decode abc-nums)) 
Verwandte Themen