che*_*ner 13 haskell category-theory
在Haskell中,我们使用术语"section"来表示在中缀位置使用的部分应用函数.例如,对于一个函数foo :: a -> b -> c
和值x :: a
和y :: 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)
在类别理论,然而,一个段g
的f
定义为一个右逆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