0

我如何为以下函数编写输入参数?

一个词是这些符号的列表,它的类型为 [Either sigma var]。所以,我的第二个输入将是一个词,我不知道从哪里开始。我想我不能写 [Left sigma] 或 [Right var],因为两者都是单词的类型。请帮帮我,或者请指向我可以阅读的地方:)

genstep :: CFG sigma var -> [Either sigma var] -> [[Either sigma var]]

谢谢

4

1 回答 1

2

这是让你开始的事情。给定一个特定的 type 值CFG sigma var,第二个参数只能是三件事之一——要么是空的,要么第一个元素是 a Left,或者第一个元素是 a Right

这意味着您的函数定义可以从

genstep :: CFG sigma var -> [Either sigma var] -> [[Either sigma var]]
genstep cfg []             = -- your definition here
genstep cfg (Left  s:rest) = -- your definition here
genstep cfg (Right v:rest) = -- your definition here

这足以让你开始吗?

于 2013-03-28T13:35:11.420 回答