Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
撇号在Haskell中是什么意思?_Haskell - Fatal编程技术网

撇号在Haskell中是什么意思?

撇号在Haskell中是什么意思?,haskell,Haskell,有时我看到代码使用以下表达式: example=example'[] 或者这些功能之间有什么不同 foldl 福尔德尔 “只是与其他任何字符一样的另一个标识符字符foldl'是与foldl完全独立的函数;它也可以被称为strictFold。之所以叫它,是因为它与foldl密切相关:它是一个foldl,累加器在每一步都进行评估,这样就不会产生大的震动。例如,foldl(+)0将使大列表上的堆栈溢出,但foldl'(+)0不会 一般来说,“的后缀表示三件事中的一件:foo'是为了定义foo、修改后

有时我看到代码使用以下表达式:

example=example'[]
或者这些功能之间有什么不同

foldl
福尔德尔

只是与其他任何字符一样的另一个标识符字符
foldl'
是与
foldl
完全独立的函数;它也可以被称为
strictFold
。之所以叫它,是因为它与
foldl
密切相关:它是一个
foldl
,累加器在每一步都进行评估,这样就不会产生大的震动。例如,
foldl(+)0
将使大列表上的堆栈溢出,但
foldl'(+)0
不会


一般来说,
的后缀表示三件事中的一件:
foo'
是为了定义
foo
、修改后的
foo
(即,
状态
状态
,以及
状态
可以是初始状态,也可以是两个更新版本)而建立的助手定义,或者Haskell中严格版本的
foo

它只是区分标识符的另一个字符,然后该标识符被称为
fold prime
,但它的常用方式与相同。

没有,至少在该上下文中没有,因为撇号是有效的标识符字符(有关更多详细信息,请参阅)

标准库中有一种惯例,即某些函数的严格版本通过撇号与标准(惰性)版本区分开来,例如
foldl'
(严格)和
foldl
(惰性)。这与撇号的特殊性无关,它只是一个惯例。

有一个黑客模块(我忘了是哪一个)在某些东西中包含某种成员资格测试(或其他谓词)。测试函数称为“is”:

为方便起见,还提供了函数的布尔求反:

bar x | x `isn't` whatever = ...

当我第一次看到它时,我觉得它很有趣。撇号只是标识符中的另一个字符。

您在询问后大约3分钟内回答了这个问题,输入撇号所需的时间也可能相同。我看到了,就像“嘿,一个哈斯凯尔问题,我能回答,但还没有人回答,带上代表火车”,当一个20k代表出现一个新的答案,告诉我将要说什么时,我就去输入答案。专家们,你们真的应该把一些问题留给像我们这样的人……:)@CodingTales,无论如何都要回答!你可能会有点不同的解释,多样性总是好的@CodingTales:“20k旅”往往给出相当简洁的答案;我总是喜欢多解释一点,引导提问者更温和地找到答案,指出陷阱和死胡同。这个特殊的问题本身并不适合这个问题,但我相信还会有其他问题!此外,您还可以为haskell标记设置电子邮件通知,我确信您已经对
IO a
a
之间的区别、布局规则和,而文本文件中的单态限制有一天会帮助你击败他们:-)@yatima2975如果你发现一个问题询问
IO a
a
之间的区别、布局规则或单态限制,请将这些问题的答案指向之前的类似问题,而不是重复答案。我还没有找到此功能的文档,但是我刚刚了解了haskell的这个特性:在你的例子中,我猜这个函数实际上被称为
is
,没有撇号,并且打算这样使用:
是x,无论什么
。但是撇号可以像你使用它一样使用!如果有人能提供任何关于如何详细使用它的链接,那就太好了!请在此处查看我对中缀运算符的回答:
bar x | x `isn't` whatever = ...