小编use*_*171的帖子

替换Haskell中的字符串

我正在尝试用Haskell中的另一个字符串替换字符串.这是我到目前为止的代码,但它并不完全有用.

replace :: [Char] -> [Char]
replace [] = []
replace (h:t) =
    if h == "W"
    then "VV" : replace t
    else h : replace t
Run Code Online (Sandbox Code Playgroud)

我想能够完成这个例子:如果字符串是"HELLO WORLD",结果应该是"HELLO VVORLD".我认为单词/单词会有所帮助,但不完全确定如何实现它.

string haskell replace

3
推荐指数
1
解决办法
2157
查看次数

检查树中是否存在元素

我按如下方式定义了一个树,并想检查给定元素是否是给定树的元素.这是我的代码,但它不能完全运行.它似乎只能起作用.

我是Haskell的新手,无法弄清楚如何解决这个问题.

data MyTree a = Leaf a | Node [MyTree a] deriving (Eq)

isElem :: (Eq a) => MyTree a -> MyTree a -> Bool
isElem (Node []) _ = error
isElem (Node (h:t)) (Leaf a) 
    | (Leaf a) `elem` (h:t) = True
    | otherwise = False
Run Code Online (Sandbox Code Playgroud)

这是我的第二次尝试.

isElem :: (Eq a) => MyTree a -> MyTree a -> Bool
isElem (Node []) a = False
isElem (Node (h:t)) a
    | (a == h) = True
    | otherwise = …
Run Code Online (Sandbox Code Playgroud)

haskell

3
推荐指数
1
解决办法
3056
查看次数

树的深度(哈斯克尔)

我试图弄清楚如何计算 Haskell 中一般树的深度。我可以找出简单二叉树的解决方案,但不能找出具有任意数量叶子的一般树。

这是我的二叉树代码。

--depth of a binary tree.

depth :: Tree a -> Int
depth Nil            = 0
depth (Node n x1 x2) = 1 + max (depth x1) (depth x2)
Run Code Online (Sandbox Code Playgroud)

我如何修改一般树的这个?普通树包含一个树列表,这就是我遇到困难的地方。

其次,我想把树变成一个列表(这样我就可以进行计算总和等操作)

同样,我可以计算出二叉树的值,但不能计算出一般树的值。

--tree into a list.

treeToList:: Tree a -> [a]
treeToList Nil = []
treeToList (Node n x1 x2)
         = collapse x1 ++ [n] ++ collapse x2
Run Code Online (Sandbox Code Playgroud)

tree haskell

1
推荐指数
1
解决办法
8938
查看次数

标签 统计

haskell ×3

replace ×1

string ×1

tree ×1