0 null haskell quadtree nullpointerexception
我需要在 Haskell 中创建一个四叉树。但我以前从未使用过这种语言。据我了解,Haskell 中没有空指针。那么我怎样才能为四叉树的指针实例化一个空版本的 Group(如果有办法的话)?
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
Run Code Online (Sandbox Code Playgroud)
我知道也许存在。但不知道如何在这种情况下使用它。
你用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, ... }
Run Code Online (Sandbox Code Playgroud)