小编qfw*_*wfq的帖子

应该使用Maybe来保存错误消息吗?

我有一个Haskell函数,它接受用户输入和另一个验证此输入的函数.当然,验证可能会失败,在这种情况下,我想返回一条错误消息,提供有关错误操作的一些反馈.

我知道有很多方法可以做到这一点.在我获得的小经验之后,似乎最好的方法就是使用Either String a.什么让我失望的是我不关心a.它失败了,我想存储更多信息,或者它成功.该a被浪费了.

使用Maybe String可接受的方式存储错误消息?对我来说感觉有些落后,但完全忽略了右边的价值Either感也很糟糕.什么是规范在这里?

haskell types algebraic-data-types

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

从功能返回GADT

背景

我正在使用依赖类型在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)

haskell gadt dependent-type

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

如何根据排序整数列表切片?

让我说我有一个 string

s = 'ABCDEFGHIJKLMNOP'

和一个list排序integers

lst = [1, 4, 5, 9]

我怎样写一个函数来取integers,并slicestring相应的?

所需输出:

1)'A'[:1]

2) 'BCD' [1:4]

3) 'E' [4:5]

4) 'FGHI' [5:9]

5) 'JKLMNOP' [9:]
Run Code Online (Sandbox Code Playgroud)

python

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