这种符号在haskell中是什么意思?
这种符号在haskell中是什么意思?,haskell,Haskell,Type1和Type2是否返回值(元组) 如何从item函数返回Lexer和Char? 你能给我举个简单的例子吗。不,它不是元组,类型也可以参数化。在像Java这样的命令式语言中,这个概念通常被称为泛型类型(尽管这两个概念没有一对一的映射) 例如,在Java中,您有如下类: data Loc = Loc String Int Int data Parser b a = P (b -> [(a, b)]) parse :: Parser b a -> b -> [(a, b
Type1
和Type2
是否返回值(元组)
如何从item函数返回Lexer
和Char
?
你能给我举个简单的例子吗。不,它不是元组,类型也可以参数化。在像Java这样的命令式语言中,这个概念通常被称为泛型类型(尽管这两个概念没有一对一的映射)
例如,在Java中,您有如下类:
data Loc = Loc String Int Int
data Parser b a = P (b -> [(a, b)])
parse :: Parser b a -> b -> [(a, b)]
parse (P p) inp = p inp
type Lexer a = Parser (Loc, String) a
item :: Lexer Char
item = ????
注意这里的
a
。这是我们需要填写的类型参数。函数不能返回一个可能
,它只能返回一个可能
,其中填写了A
。例如,一个可能是Char
:一个可能是无
的类型,或者一个只有x
和x
一个Char
的类型,我怀疑我能解释得足够好,但至少这里有一个网站肯定能:Lexer
不是一种类型,Lexer Char
是一种类型。你似乎已经跳过了Haskell基础知识一段时间。因为你了解Java,Lexer Char
是Java的Lexer
的Haskell等价物。至于解释,这对我帮助很大。但我仍然不确定is应该如何从我的示例中定义Lexer.item::Lexer Char item=Lexer Char(解析器(Loc“f”12)“aaa”)“a”
data Loc = Loc String Int Int
data Parser b a = P (b -> [(a, b)])
parse :: Parser b a -> b -> [(a, b)]
parse (P p) inp = p inp
type Lexer a = Parser (Loc, String) a
item :: Lexer Char
item = ????
class LinkedList<E> {
// ...
}
data Maybe a = Nothing | Just a