我要求定义函数:
treeMap :: (a -> b) -> BinaryTree a -> BinaryTree b
Run Code Online (Sandbox Code Playgroud)
它接受一个函数和一个二叉树,并生成一个二叉树,其中所有节点都是在给定树上应用该函数的结果
二进制树是:
data BinaryTree a = Nil | BNode a (BinaryTree a) (BinaryTree a)
Run Code Online (Sandbox Code Playgroud)
和我的代码不符合。我收到以下错误:
error: Not in scope: data constructor ‘BinaryTree’
treeMap f (BNode x (BinaryTree l) (BinaryTree r)) = | ^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
我的代码:
data BinaryTree a = Nil | BNode a (BinaryTree a) (BinaryTree a)
treeMap :: (a -> b) -> BinaryTree a -> BinaryTree b
treeMap f Nil = Nil
treeMap f (BNode x (BinaryTree l) …Run Code Online (Sandbox Code Playgroud) 我被要求为以下二进制树实现一个功能:
data BinaryTree a = Nil | BNode a (BinaryTree a) (BinaryTree a)
Run Code Online (Sandbox Code Playgroud)
我需要实现的功能应该产生一个完整的,对称的,无限的二进制树a,并且具有以下特征:
infTree :: a -> BinaryTree a
Run Code Online (Sandbox Code Playgroud)
我该如何实施?