提问人:sSalvi 提问时间:11/10/2022 更新时间:11/10/2022 访问量:108
如何在 Haskell 中生成 null 类型?
How can I generate a null type in Haskell?
问:
我需要在 Haskell 中制作一个四叉树。但我以前从未使用过这种语言。据我了解,Haskell 中没有空指针。那么我怎样才能为四叉树的指针实例化一个空版本的组(如果有办法的话)?
data Group = Group {
idf :: Int,
name :: String,
lat :: Int,
long :: Int,
nw :: Group,
ne :: Group,
sw :: Group,
se :: Group
} deriving Show
main :: IO()
main = do
let g1 = Group { idf = 0, name = "Ababa", lat = 32, long = 40, nw = ???}
print g1
我知道也许存在。不过不知道如何在这种情况下使用它。
答:
5赞
Fyodor Soikin
11/10/2022
#1
您使用 .它是一种类型,可以具有两种不同类型的值:要么是其他类型的值,要么是其他类型的值。Maybe
Nothing
Just x
x
data Group = Group {
...
nw :: Maybe Group,
ne :: Maybe Group,
sw :: Maybe Group,
se :: Maybe Group
} deriving Show
main = do
let g1 = Group { ..., nw = Nothing, ne = Nothing, sw = Nothing, se = Nothing }
print g1
...
let g2 = Group { ... ne = Just g1, ... }
2赞
Daniel Wagner
11/10/2022
#2
我会为您的.Group
data Group = Empty | Group {
idf :: Int,
name :: String,
lat :: Int,
long :: Int,
nw :: Group,
ne :: Group,
sw :: Group,
se :: Group
} deriving Show
通常,如果您在具有多个构造函数的类型中使用记录语法,这是一个不好的迹象,因此您可能需要了解这些陷阱。
评论
Group
Maybe