我有一个Haskell函数,它接受用户输入和另一个验证此输入的函数.当然,验证可能会失败,在这种情况下,我想返回一条错误消息,提供有关错误操作的一些反馈.
我知道有很多方法可以做到这一点.在我获得的小经验之后,似乎最好的方法就是使用Either String a.什么让我失望的是我不关心a.它失败了,我想存储更多信息,或者它成功.该a被浪费了.
使用Maybe String可接受的方式存储错误消息?对我来说感觉有些落后,但完全忽略了右边的价值Either感也很糟糕.什么是规范在这里?
我正在使用依赖类型在Haskell中编写一个红黑树实现,并且我很难理解为什么下面的代码不起作用.我想做的一种热身练习是找到一个任意值的子树.不幸的是,我在编译代码时遇到了一些麻烦,并最终继续前进.但是,我仍然很困惑为什么这不能编译以及我能做些什么才能使它工作.我无法找到这样的例子,也没有任何显示为什么这不起作用的例子.
data NaturalNum = Z
| S NaturalNum
deriving Show
data Color :: * where
Red :: Color
Black :: Color
deriving Show
data Tree :: Color -> NaturalNum -> * -> * where
Empty :: Tree Black Z a
RTree :: Tree Black natNum a -> a -> Tree Black natNum a -> Tree Red natNum a
BTree :: Tree leftColor natNum a -> a -> Tree rightColor natNum a -> Tree Black (S natNum) a
deriving …Run Code Online (Sandbox Code Playgroud) 让我说我有一个 string
s = 'ABCDEFGHIJKLMNOP'
和一个list排序integers
lst = [1, 4, 5, 9]
我怎样写一个函数来取integers,并slice在string相应的?
所需输出:
1)'A'[:1]
2) 'BCD' [1:4]
3) 'E' [4:5]
4) 'FGHI' [5:9]
5) 'JKLMNOP' [9:]
Run Code Online (Sandbox Code Playgroud)