Pregunta

En F # ¿cuál es el tipo de anotación para una lista mecanografiada (e..g lista de int)? Con una función simple que pueda hacer anotaciones de la siguiente manera:

dejar cuadrados (x: int) = ...

He anotado x como un tipo int. Pero lo que si quiero hacer una anotación de tipo int para una lista? Por ejemplo, digamos que tengo una función max que espera una lista - ¿cómo podría hacer una anotación de tipo para ello?

dejar que Max (números: ??) = ...

¿Fue útil?

Solución

Hay dos opciones:

let max (numbers:int list) = ... 
let max (numbers:list<int>) = ... 

La primera sintaxis usa la versión que se hereda de OCaml (y se utiliza con frecuencia para primitivos tipos # F tales como listas). La segunda versión usos .NET de sintaxis (y se utiliza con más frecuencia para este tipo de NET o al escribir código orientado a objetos en F #). Sin embargo, ambos significan exactamente lo mismo.

En cualquier caso, la forma de tipo de anotación es siempre (<something> : <type>) donde <something> es o bien un patrón (como en la lista de parámetros) o una expresión. Esto significa que int list y list<int> son sólo nombres de tipos. F # Interactivo imprime el tipo si se introduce algún valor, por lo que puede usar esto para aprender más acerca de cómo se escriben los nombres de tipos:

> [1;2;3]
val it : int list = [ 1; 2; 3 ]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top