我如何为以下函数编写输入参数?
一个词是这些符号的列表,它的类型为 [Either sigma var]。所以,我的第二个输入将是一个词,我不知道从哪里开始。我想我不能写 [Left sigma] 或 [Right var],因为两者都是单词的类型。请帮帮我,或者请指向我可以阅读的地方:)
genstep :: CFG sigma var -> [Either sigma var] -> [[Either sigma var]]
谢谢
我如何为以下函数编写输入参数?
一个词是这些符号的列表,它的类型为 [Either sigma var]。所以,我的第二个输入将是一个词,我不知道从哪里开始。我想我不能写 [Left sigma] 或 [Right var],因为两者都是单词的类型。请帮帮我,或者请指向我可以阅读的地方:)
genstep :: CFG sigma var -> [Either sigma var] -> [[Either sigma var]]
谢谢
这是让你开始的事情。给定一个特定的 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
这足以让你开始吗?