【发布时间】:2015-10-21 23:43:21
【问题描述】:
最近我开始学习 Haskell,并且正在努力进行以下练习:
编写函数 root :: Rose a -> a 和 children :: Rose a -> [Rose a] 返回存储在玫瑰树根部的值,分别是 玫瑰树的根。他们给了我以下基本代码来开始:
数据玫瑰 a = a :> [玫瑰 a] 推导 (Eq, Show)我不知道 (:>) 是什么意思。我试图通过输入 ghci 来理解它
Input: :t (:>)
Output: a -> [Rose a] -> Rose a
所以我认为这意味着您有一个a 值,它将用于从列表中查找Rose a 并返回Rose a,但我仍然对下一步该做什么感到困惑。
如果我查看root :: Rose a -> a 的签名,函数将如下所示:
root (Rose a) = a
还有children :: Rose a -> [Rose a]的功能:
children (Rose a) = (Rose a):[]
这是不正确的,我不知道如何使它正确。
【问题讨论】: