我想写一个简单的游戏“猜数字” -n尝试。我想添加一些条件和命中。是否可以在block内使用守卫do?
这是我的代码:
game = return()
game n = do putStrLn "guess number: 0-99"
number<-getLine
let y = read number
let x =20
| y>x = putStrLn "your number is greater than x"
| y<x = putStrLn "your number is less than x"
| y==x putStrLn "U win!!"
| otherwise = game (n-1)
Run Code Online (Sandbox Code Playgroud)
已经出错
error: parse error on input ‘|’
Run Code Online (Sandbox Code Playgroud)
它可以用一些空白来修复,还是不可能做到?
我试图检查树是否是另一棵树的子树。这是我的树数据:
data Tree a = Empty | Node a (Tree a)(Tree a) deriving Show
tree1 :: Tree Int
tree1 = Node 1
(Node 2
(Node 4 Empty Empty)
(Node 5 Empty
(Node 8 Empty Empty))
)
(Node 3
(Node 6 Empty
(Node 9 Empty Empty))
(Node 7 Empty Empty)
)
tree2 :: Tree Int
tree2 = Node 2
(Node 4 Empty Empty)
(Node 5 Empty
(Node 8 Empty Empty))
Run Code Online (Sandbox Code Playgroud)
最后定义未实现的功能:
isSubTree :: Eq a => Tree a -> Tree a …Run Code Online (Sandbox Code Playgroud)