我遇到了以下代码片段(一个函数定义):


choose (x:xs) = choosep x xs
  where choosep x [] = x
        choosep x (_:_) = x
        choosep _ (x:xs) = choosep x xs


在“标准库”中的Curry programming language中-/ 中的/usr/lib/curry-0.9.11/Success.curry。这里:


choose :: [a] -> a





choosep :: a -> [a] -> a -- BTW, not a _p_redicate


辅助递归函数choosep的后缀“ p”是已知的命名约定吗?也许它来自函数式编程传统(Haskell)或逻辑编程(Prolog?)。那是什么意思呢?

(在Muenster Curry Compiler中考虑了此功能。)

最佳答案

在这种情况下,我相信p代表“素数”。他们使用choose'而不是调用帮助程序chooseprimechoosep

关于recursion - “傻瓜”:命名约定?它是“foo”的辅助递归函数;后缀“p”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5279286/

10-09 05:07