Haskell 哈斯克尔';符号是什么?
正如标题所述,我在网上看到一些代码,其中变量/函数旁边有“这是什么意思?”? 例:Haskell 哈斯克尔';符号是什么?,haskell,Haskell,正如标题所述,我在网上看到一些代码,其中变量/函数旁边有“这是什么意思?”? 例: 符号来自数学。它是x素数。在几乎所有的数学手册中,你都可以找到类似的东西,让x是一个数字,x'是。。。(数学素材) 为什么不使用另一个约定?嗯,在数学中这很有意义,因为它可以是非常教学性的。。。在编程中,我们不习惯这个约定,所以我不认为使用它有什么意义,但我也不反对它 只是给你一个在数学中使用它的例子,这样你就可以理解为什么在Haskell中使用它。下面是相同的三角形概念,但一个使用素数约定,另一个不使用素数约定
符号来自数学。它是x素数。在几乎所有的数学手册中,你都可以找到类似的东西,
让x是一个数字,x'是。。。(数学素材)
为什么不使用另一个约定?嗯,在数学中这很有意义,因为它可以是非常教学性的。。。在编程中,我们不习惯这个约定,所以我不认为使用它有什么意义,但我也不反对它
只是给你一个在数学中使用它的例子,这样你就可以理解为什么在Haskell中使用它。下面是相同的三角形概念,但一个使用素数约定,另一个不使用素数约定。在第一张图片中很明显,配对(A
,A'
),(B
,B'
)。。。一个是顶点,一个是主版本,一个是倒点边的中点。而在第二个例子中,你只需要记住,A
是顶点P的倒位边缘的中点。第一种方法更简单、更具教学性:
这个符号来自数学。它是x素数。在几乎所有的数学手册中,你都可以找到类似的东西,
让x是一个数字,x'是。。。(数学素材)
为什么不使用另一个约定?嗯,在数学中这很有意义,因为它可以是非常教学性的。。。在编程中,我们不习惯这个约定,所以我不认为使用它有什么意义,但我也不反对它
只是给你一个在数学中使用它的例子,这样你就可以理解为什么在Haskell中使用它。下面是相同的三角形概念,但一个使用素数约定,另一个不使用素数约定。在第一张图片中很明显,配对(A
,A'
),(B
,B'
)。。。一个是顶点,一个是主版本,一个是倒点边的中点。而在第二个例子中,你只需要记住,A
是顶点P的倒位边缘的中点。第一种方法更简单、更具教学性:
正如其他答案所说,
函数“
只是另一个变量名。所以
don'tUse :: Int -> IO ()
don'tUse won'tBe''used'' = return ()
就像
dontUse :: Int -> IO ()
dontUse wontBeUsed = return ()
名字略有不同。唯一的要求是名称以小写字母或下划线开头,之后可以有任意多个单引号字符
Prelude> let _' = 1
Prelude> let _'' = 2
Prelude> let _''''''''' = 9
Prelude> _' + _'' * _'''''''''
19
…当然,这样命名变量不一定是个好主意;通常,在对已命名的事物进行稍微不同的版本时,会使用这样的素数名称。例如,and是具有相同签名的函数,它们基本上做相同的事情,只是严格程度不同(这通常会影响性能内存使用以及是否允许无限输入,但不会影响实际结果)
也就是说,对这个问题
Haskell,“
符号的作用是什么
–实际上,“
符号也可以做其他各种事情,但只有当它在名称中不作为非前导字符出现时才可以
是一个字符文本'a'
是在类型级别使用的构造函数。看'Foo
和'bar
是引用的名称。看'Baz
函数“
只是另一个变量名。所以
don'tUse :: Int -> IO ()
don'tUse won'tBe''used'' = return ()
就像
dontUse :: Int -> IO ()
dontUse wontBeUsed = return ()
名字略有不同。唯一的要求是名称以小写字母或下划线开头,之后可以有任意多个单引号字符
Prelude> let _' = 1
Prelude> let _'' = 2
Prelude> let _''''''''' = 9
Prelude> _' + _'' * _'''''''''
19
…当然,这样命名变量不一定是个好主意;通常,在对已命名的事物进行稍微不同的版本时,会使用这样的素数名称。例如,and是具有相同签名的函数,它们基本上做相同的事情,只是严格程度不同(这通常会影响性能内存使用以及是否允许无限输入,但不会影响实际结果)
也就是说,对这个问题
Haskell,“
符号的作用是什么
–实际上,“
符号也可以做其他各种事情,但只有当它在名称中不作为非前导字符出现时才可以
是一个字符文本'a'
是在类型级别使用的构造函数。看'Foo
和'bar
是引用的名称。看'Baz
function1
、function2
、function\u aux
等,同样如此。(这是一种回答,但我相信有人会发布一个更完整的答案,所以我保留这一条作为评论)。@WillNess谢谢你的回复,为什么人们会使用“约定而不是喜欢你的例子?”haskelnubb,这更像是一个数学约定,而不是具体的Haskell约定。此上下文中的”
发音为“prime”。通常,f'
将以某种方式从f
派生而来,但没有硬性规定。什么都没有。它可以写成function1
、function2
、function\u aux
等,同样如此。(这是一种回答,但我相信有人会发布一个更完整的答案,所以我保留这一条作为评论)。@WillNess谢谢你的回复,为什么人们会使用“约定而不是喜欢你的例子?”haskelnubb,这更像是一个数学约定,而不是具体的Haskell约定。此上下文中的”
发音为“prime”。通常,f'
将以某种方式从f
派生,但没有硬性规定。