Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 分析长度至少为一个字符的字符串_Haskell - Fatal编程技术网

Haskell 分析长度至少为一个字符的字符串

Haskell 分析长度至少为一个字符的字符串,haskell,Haskell,我正在尝试用Haskell编写解析器。在本文中,我需要一个解析长度至少为1的字符串的函数。我在下面声明了类型: type Pname = String 但是我的功能不起作用。下面是我的代码,其中sc是我的空格和注释的空间使用者(我一直在学习教程,以获取有关此解析器的帮助): pname::解析器pname pname=(some['a'..'z'])您可能打算使用(或解析器库中的类似函数),如中所示 pname=some(其中一个['a'..'z'])我需要它来接受一个或多个字符,因此我认为其

我正在尝试用Haskell编写解析器。在本文中,我需要一个解析长度至少为1的字符串的函数。我在下面声明了类型:

type Pname = String
但是我的功能不起作用。下面是我的代码,其中
sc
是我的空格和注释的空间使用者(我一直在学习教程,以获取有关此解析器的帮助):

pname::解析器pname
pname=(some['a'..'z'])您可能打算使用(或解析器库中的类似函数),如中所示


pname=some(其中一个['a'..'z'])我需要它来接受一个或多个字符,因此我认为其中一个不合适?@datgeywelbz
oneOf['a'..'z']
只接受一个字符;但是
some(其中一个['a'..'z'])
接受一个或多个(请参阅)。
pname :: Parser Pname
pname = (some ['a' .. 'z']) <* sc
    Couldn't match type ‘[]’
                   with ‘ParsecT Dec String Data.Functor.Identity.Identity’
    Expected type: ParsecT
                     Dec String Data.Functor.Identity.Identity Char
      Actual type: [Char]
    In the first argument of ‘some’, namely ‘['a' .. 'z']’
    In the first argument of ‘(<*)’, namely ‘(some ['a' .. 'z'])’
    In the expression: (some ['a' .. 'z']) <* sc
pname = some (oneOf ['a' .. 'z']) <* sc