这种符号在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