Haskell'符号有什么作用?

正如标题所述,我在网上看到一段代码,其中变量/函数旁边有 ',这是什么/意味着什么?前任:

function :: [a] -> [a]
function ...

function' :: ....

回答

正如其他答案所说,function'只是另一个变量名。所以,

 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

...当然,这样命名变量不一定是个好主意;通常,在制作已命名的事物略有不同版本时,会使用此类素数。例如,foldlfoldl'是具有相同签名的函数,它们做本质上相同的事情,只是具有不同的严格性(这通常会影响性能内存使用以及是否允许无限输入,但不会影响实际结果)。

也就是说,对于这个问题

Haskell'符号有什么作用?

– 该'符号实际上也可以做其他各种事情,但前提是它不是作为名称中的非前导字符出现时。

  • 'a'是一个字符文字
  • 'Foo在类型级别使用构造函数。请参阅数据种类。
  • 'bar''Baz引用的名称。请参阅TemplateHaskell。

以上是Haskell'符号有什么作用?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>