in
es una resaca de OCaml raíces F # 's y especifica con destino variables, que son sutilmente diferentes a variables ámbitos.
Piense en el enlace variable de la siguiente manera; Usted tiene una expresión:
first + " " + second
Tal como está first
y second
son no unido - no tienen ningún valor fijo - de modo que la expresión no tiene ningún valor concreto en la actualidad. Mediante el uso de la sintaxis
let (...) in
está especificando cómo estas variables están obligados en esa expresión, por lo que su ejemplo usarán la sustitución de variables para reducir esa función hasta
let doStuff x =
x + " " + x
En este ejemplo ambas formas son idénticas, pero imagine lo siguiente:
let (x = 2 and y = x + 2) in
y + x
Esto no va a funcionar lo mismo que
let (x = 2 and y = x + 2)
y + x
Debido a que en el primer caso x
sólo va unida despuésin
la palabra clave.
En el último caso, la variable normal alcance las reglas surten efecto, por lo que las variables se envían tan pronto como se declaran.
Espero que aclare las cosas. En general, usted debe utilizar siempre la versión sin in
y especificar #light
en el inicio de su fuente # F archivos
No creo que el código en la pregunta es equivalente a 'let hacerTarea x = x +" "+ x'. Creo que es equivalente a 'let doStuff x = (fst x) +" "+ (snd x)'. ¿Me equivoco aquí? – Soldalma