对于部分应用的中缀运算符,名称"section"来自何处?

che*_*ner 13 haskell category-theory

在Haskell中,我们使用术语"section"来表示在中缀位置使用的部分应用函数.例如,对于一个函数foo :: a -> b -> c和值x :: ay :: b,我们有两节

s1 = (x `foo`) :: b -> c == \b -> foo x b
Run Code Online (Sandbox Code Playgroud)

s2 = (`foo` y) :: a -> c == \a -> foo a y
Run Code Online (Sandbox Code Playgroud)

在类别理论,然而,一个段gf定义为一个右逆f(以便f . g == id).

我没有看到两个定义之间有明显的联系.例如,s1显然不是反向foo,至少不是在Hask中.我想s1甚至不必在Hask中反转.

类别理论定义是否是Haskell定义的来源,如果是,如何?

aug*_*tss 22

正如评论中指出的那样,Haskell得到了Miranda(和Orwell)的部分.大卫特纳说他从理查德伯德和大卫威尔那里得到了这个想法.

我刚刚和Richard Bird聊过.他说他不记得这个名字的来源,但他认为是David Wile创造的.不幸的是,David Wile去年去世了,所以我们可能永远不会知道.但是,理查德确实承认他是那个说服David Turner和Phil Wadler在他们的语言中添加部分的人.

这是Wile的论文的页面,这是第一次提到的"部分". http://imgur.com/a/cQDlu