tag obtener get_the_tags get_the codex actual function haskell syntax types

function - obtener - tags wordpress codex



¿Qué significa::(doble colon) en Haskell? (3)

Cuando tiene un gran error de verificación de tipo de aspecto aterrador, puede (temporalmente) envolver partes de su código en (myexpression :: MyType) para indicar explícitamente al compilador qué tipo espera que tenga myexpression . Esto a menudo ayudará al compilador a darle mejores mensajes de error.

Veo y uso los símbolos :: todas partes, pero todavía no sé qué significa el símbolo :: cuando se programa en Haskell, por ej.

run :: Int -> Int -> Int -- ??

¿Qué significa :: (doble colon) en Haskell?


Debes leer:

foo :: a

como "el nombre foo es un valor de tipo a ". Cuando escribes:

run :: a -> b

esto significa:

  1. Estás declarando que se run el nombre.

  2. Este nombre se referirá a un valor que tiene el tipo a -> b ,

El tipo a -> b es el tipo de una función que toma un valor de tipo a y devuelve otro valor de tipo b .

Debes aprender mucho sobre los tipos para entender a Haskell. El sistema de tipos es una de las características más importantes de Haskell, y es lo que hace que el lenguaje sea tan expresivo.


Puede google para haskell "double colon" o cosas similares; desafortunadamente es un poco difícil buscar la sintaxis de google, pero en este caso puedes nombrarlo.

En Haskell, sus programas a menudo funcionarán bien sin él (aunque querrá usarlo para perfeccionar la especificación de las funciones que defina, y es una buena práctica).

La idea es que puedes insertar un :: ... cualquier lugar (incluso en el medio de una expresión) para decir "por cierto Mr. Compiler, esta expresión debe ser de tipo ... ". El compilador lanzará un error si se puede probar que este no es el caso.

Creo que también puede usarlo para "emitir" funciones a las versiones que desee; por ejemplo, si una función es "polimórfica" (tiene una firma de tipo general) y realmente quiere, digamos un Integer , entonces podría hacer :: Integer en el valor resultante tal vez; Aunque estoy un poco oxidado.