f#

F#- ¿Debo aprender con o sin#light?



(4)

Definitivamente preferiría aprender F # con la sintaxis #light. La versión no liviana a veces es útil para comprender algunos trucos sobre la sintaxis de F #, pero la sintaxis de #light te da mucha experiencia agradable.

Por ejemplo, usando #light

let add a b c = let ab = a + b printfn "%d" ab c - ab

Usando luz no puede escribir lo mismo así:

let add a b c = let ab = a + b in // ''in'' keyword specifies where the binding (value ''ab'') is valid printfn "%d" ab; // '';'' is operator for sequencing expressions c - ab;; // '';;'' is end of a function declaration

Esto, por ejemplo, muestra que no puedes escribir algo como:

let doNothing a b = let sum = a + b in

Hay una palabra clave ''in'' al final, pero la función no tiene ningún cuerpo (porque no hay expresión después de ''in''). En este caso, la sintaxis no liviana a veces es interesante para entender lo que está sucediendo ... Pero como puede ver, el código #light es mucho más simple.

Estoy aprendiendo F # y estoy disfrutando hasta ahora. Casi todos los ejemplos en línea usan la sintaxis ligera (#light); sin embargo, también da un comentario sobre el hecho de que está activado para dicho ejemplo en la mayoría de los casos.

¿Es mejor aprender F # usando #light habilitado o deshabilitado? Estoy planeando eventualmente aprenderlo sin encenderlo, pero tengo curiosidad sobre si sería mejor aprenderlo al principio o trabajar en aplicarlo después de que conozco más el lenguaje central.


El "#light" probablemente se convertirá en el predeterminado en una versión futura del idioma, por lo que lo aprendería de esa manera. Creo que es raro que alguien use la sintaxis más pesada a excepción de la compatibilidad OCaml (ya sea cuando se compila de forma cruzada, o porque el ser humano sentado en el teclado conoce OCaml y está haciendo una transición más suave a F #).


Como aprendí F # de un libro OCaml (y uso un modo OCaml para que Emacs edite el código F #), prefiero usar la sintaxis "pesada". He trabajado con el código #light y, por supuesto, la mayoría de los ejemplos F # están escritos usando la sintaxis ligera, por lo que es útil tener cierta familiaridad general. Dicho esto, es bastante más fácil cambiar de pesado a ligero que al revés, por lo que no es una mala idea aprenderlo con la sintaxis pesada.

Me he topado con un error molesto ocasional con una sintaxis pesada que se trata como un ciudadano de segunda clase (la combinación se rompió para las expresiones de cálculo un par de versiones), pero estos son bastante raros. En términos generales, no creo que las diferencias sean muy significativas y tengo que mirar de cerca para determinar qué sintaxis se está utilizando cuando se mira el código de forma aislada. YMMV.


Si mal no recuerdo, el libro "Expert C #" menciona que #light será el valor predeterminado cuando se envíe F # y que la sintaxis no liviana solo es compatible.