Yo uso let
para crear una variable temporal, y luego uso esta variable temporal en la siguiente declaración. Sin embargo, se quejó DrScheme,¿Cómo funciona `let` en Scheme?
let: bad syntax (not an identifier and expression for a binding) in: temp
Ésta es mi fragmento de código:
(define (case-one-helper str)
(let (temp (substring str (+ 3 (string-contains str "my"))))
(substring temp (string-contains temp " "))))
Me pregunto si el valor de la variable creado por let
tiene que ser conocido en el momento compilado?
Editar Acabo de descubrir, falta ()
.
Gracias,
Vea la sección "La verdad sobre dejar" en https://people.eecs.berkeley.edu/~bh/ssch9/lambda.html – nicoabie
Lectura interesante ... mirando mi respuesta aquí, diría que sí, y no, en el sentido de que 'let' puede implementarse como lambda con una invocación de esa lambda, pero es más que eso. Si escribe un intérprete de esquema desde cero, como en SICP, verá que 'let' tiene una gran cantidad de contabilidad asociada a él, ya que está nombrando el resultado de la expresión. – Jason