use*_*056 10 haskell naming-conventions
报价'
用于什么?我已经阅读了有关curried函数的内容,并阅读了两种定义add函数的方法 - curried和uncurried.咖喱版......
myadd' :: Int -> Int -> Int
myadd' x y = x + y
Run Code Online (Sandbox Code Playgroud)
......但没有引用它同样有效.那有什么意义'
呢?
jro*_*way 22
引用对Haskell毫无意义.它只是该功能名称的一部分.
人们倾向于将其用于"内部"功能.如果你有一个使用累加器参数对列表求和的函数,你的求和函数将需要两个参数.这是丑陋的,所以你创建了sum'
两个args的sum
函数,并且有一个arg 的函数sum list = sum' 0 list
.
编辑,也许我应该只显示代码:
sum' s [] = s
sum' s (x:xs) = sum' (s + x) xs
sum xs = sum' 0 xs
Run Code Online (Sandbox Code Playgroud)
你这样做是为了sum'
尾递归,所以"公共API"很好看.
ago*_*nst 16
它通常被称为"素数",所以这将是"myadd prime".它通常用于表示计算中的下一步,或者替代.
所以,你可以说
add = blah
add' = different blah
Run Code Online (Sandbox Code Playgroud)
要么
f x =
let x' = subcomputation x
in blah.
Run Code Online (Sandbox Code Playgroud)
它只是一种习惯,比如使用int i作为Java,C等for循环中的索引.
编辑:现在我已经添加了所有单词和代码格式,这个答案更有帮助.:)我继续忘记这不是一个所见即所得的系统!
'
在这种情况下,角色没有特别的意义; 它只是标识符的一部分.换句话说,myadd
并且myadd'
是不同的,不相关的功能.
但是,传统上,'
它用于表示某种逻辑评估关系.因此,假设的功能myadd
和myadd'
相关的myadd'
可以从中得出myadd
.这是一种源自学术界的形式逻辑和证明的惯例(Haskell的根源).我应该强调这只是一个惯例,Haskell并没有强制执行它.
quote'只是Haskell名字中另一个允许的字符.它通常用于定义函数的变体,在这种情况下,引用发音为'prime'.具体来说,Haskell库使用quote-variants来表明变量是严格的.例如:foldl
懒惰,foldl'
严格.
在这种情况下,看起来引用只是用于分离咖喱和未发现的变体.
归档时间: |
|
查看次数: |
2518 次 |
最近记录: |