luk*_*all 9 haskell naming applicative
我最近一直在使用应用程序(和替代方案),令我感到沮丧的一件事是我缺乏对命名法的了解.作为一个例子,我希望能说function name
的,而不是star thing
为<*>
.因此,与>>=
读取的方式大致相同bind
,以下是否有更多人性化的名称:
<*>
- 申请?<*
&*>
- 左右适用?<$>
- fmap?<|>
同样来自箭头
***
- 分裂?&&&
- 扇出?如果有这些名称,我的搜索没有发现它们.我知道这些可能没有被接受的条款,但如果有,我很想知道它们.
小智 10
这个符号来自Doaitse Swierstra和Luc Duponcheel:他们已经为解析器组合器确定了这个接口,我们认为尊重他们的选择是很重要的.我试图记住Doaitse如何发音,但是画了一个空白.
我更喜欢他们被人看到而没有被人听到.事实上,我更喜欢他们不被人看见,因此成语括号.但特别是在定义实例时,有名称是有帮助的.并不是因为它取决于我的名字:整个成语与应用与善良 - 知道 - 什么恶作剧是一个迷人的权力研究.按照我自己的说法,这是值得的
<*>
是'应用(to)'(界面是'纯粹和应用',像数学一样)*>
被'忽略'<*
是'无视'<$>
被'映射(过)'<$
也许是"之后",但我并不十分清楚地称它为任何东西关键思想:效果总是从左到右顺序排列(无论意味着什么); $或*告诉你他们左边的是纯粹的还是惯用的; V形符号告诉您结果数据流,仅指向信号.
另一种发音方案,即远离各个运营商的水平,可能会转换
f <$> a <*> b <* c <*> d
Run Code Online (Sandbox Code Playgroud)
'IDIOM:f,a,b,NOISE c,d'或其他一些.但这真的是阅读支架版本
(|f a b (-c-) d|)
Run Code Online (Sandbox Code Playgroud)
响亮地.
我觉得"钱"和"啪"很有趣,但我们可能会优先考虑语法上的语义优先级.
嗯,<$>
是一个同义词fmap
.此外,名称"applicative"让我想到应用的东西.既然<*>
是这样做的主要操作者,我想我将它与"应用"一词松散地联系在一起.上下文与正常的函数应用程序略有不同,因此可能会对该单词产生一些混淆,但上下文通常会使其足够清晰,因此它对我有用. <*>
也是ap
Control.Monad函数的同义词,所以这证实了我对"apply"这个词的使用.
Brent Yorgey的Typeclassopedia是我学习大部分内容的地方.这是一个出色的资源.
嗯,没有标准名称,但有时它们被称为:
<*>
是"啪啪"<$>
是"钱"这样:
f <$> g <*> x
Run Code Online (Sandbox Code Playgroud)
发音为:
f `money` g `splat` x
Run Code Online (Sandbox Code Playgroud)
我相信,由Trevor Elliott和Eric Mertens发起的条款.
归档时间: |
|
查看次数: |
510 次 |
最近记录: |