haskell - Haskell函数名中'的含义?

标签 haskell naming-conventions

什么是报价'用于?我已经阅读了 curried 函数并阅读了两种定义 add 函数的方法 - curried 和 uncurried。 curry 版...

myadd' :: Int -> Int -> Int
myadd' x y = x + y

...但如果没有报价,它也同样有效。那么 ' 的意义何在? ?

最佳答案

这句话对 Haskell 毫无意义。它只是该函数名称的一部分。

人们倾向于将其用于“内部”功能。如果您有一个使用累加器参数对列表求和的函数,那么您的 sum 函数将采用两个参数。这很难看,所以你做一个 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

你这样做是为了sum'是尾递归的,因此“公共(public) API”看起来很漂亮。

关于haskell - Haskell函数名中'的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207649/

相关文章:

parsing - 在 Haskell 中用 Parsec 解析字符串时如何保留阶乘计算?

java - "com"位于每个 Maven groupid 的开头

c++ - 声明中类型和对象的相同标识符

angular - Typescript 类保护字段命名约定

Haskell:初学者函数语法困惑

haskell - 构造函数中的类型变量?

haskell - 在 newtype 中实现 >>=

haskell - 是的持久: get list of entities from list of keys

css - 在CSS中使用#image-box与#image_box(连字符与下划线)有优势吗?

entity-framework - 如果 EF 5,如何定义自定义命名约定