Это псевдоним типа . Это означает, что вы можете использовать Item
в своем коде, где вы можете использовать String
.
Псевдоним типа часто используется, когда вы, например, хотите дать имя более сложным типам. Например:
import Data.Map(Map)
type Dictionary = Map String String
здесь, таким образом, вы можете использовать Dictionary
вместо того, чтобы каждый раз писать Map String String
.
Кроме того, оно часто используется, если вы хотите указать, что вы работаете с Item
s, псевдоним затем используется в сигнатуре типа и в документации, что часто лучше, чем запись String
.
Он также используется, если вы еще не знаете, какой тип вы будете использовать для конкретного c объекта. Используя псевдоним типа, вы можете работать с Item
, а позже, если вы измените свой made, определите тип для Item
или сделаете его псевдонимом другого типа. Это делает более удобным изменение типов.
Я пытался реализовать его в коде, подобном следующему:
import System.IO
main = do
putStrLn "Hello, what's your name?"
type Item = String
let test :: Item
test = "chris"
putStrLn test
Псевдоним типа определен на верхнем уровне, поэтому не в do
блок, который определит определение типа локально. Хотя, как @ moon Goose говорит , есть некоторые предложения сделать определения типов более локальными, но в настоящее время это не так.
Вы можете определить псевдоним типа, например:
import System.IO
<b>type Item = String</b>
main = do
putStrLn "Hello, what's your name?"
let test :: Item
test = "chris"
putStrLn test