如何在Haskell中生成null类型?



我需要在Haskell中制作四叉树。但我从来没用过这种语言。据我所知,Haskell中没有空指针。那么我怎么能实例化一个null版本组的指针的四叉树(如果有甚至一种方式)?

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

我知道可能存在。不知道在这种情况下如何使用它。

您使用Maybe。这个类型可以有两种不同的值:NothingJust 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, ... }

我会给你的Group添加一个构造函数。

data Group = Empty | Group {
idf :: Int,
name :: String,
lat :: Int,
long :: Int,
nw :: Group,
ne :: Group,
sw :: Group,
se :: Group
} deriving Show

通常,如果你在一个有多个构造函数的类型中使用记录语法,这是一个不好的信号,所以你可能想要了解这些陷阱。

相关内容

  • 没有找到相关文章

最新更新