Ответ 1
Вы можете google для haskell "double colon"
или подобных вещей; это, к сожалению, немного сложно для Google для синтаксиса, но в этом случае вы можете назвать его.
В Haskell ваши программы будут работать нормально без него (хотя вы захотите использовать его, чтобы отточить спецификацию любых функций, которые вы определяете, и это хорошая практика).
Идея состоит в том, что вы можете вставить :: ...
в любом месте (даже в середине выражения), чтобы сказать "кстати, г-н Компилятор, это выражение должно иметь тип ...
". Затем компилятор выдаст ошибку, если это может быть доказано, что это может быть не так.
Я думаю, вы также можете использовать его для "броска" функций в нужные вам версии; например если функция является "полиморфной" (имеет общую подпись типа), и вы действительно хотите, скажем, Integer
, тогда вы могли бы сделать :: Integer
по результирующему значению; Я немного ржавый, хотя.