我遇到了以下代码片段(函数定义):
choose (x:xs) = choosep x xs
where choosep x [] = x
choosep x (_:_) = x
choosep _ (x:xs) = choosep x xs
在“标准库”中的Curry 编程语言中——/usr/lib/curry-0.9.11/Success.curry 来自Muenster Curry Compiler。这里:
choose :: [a] -> a
和
choosep :: a -> [a] -> a -- BTW, not a _p_redicate
辅助递归函数的“p”后缀choosep
是已知的命名约定吗?也许它来自函数式编程传统(Haskell)或逻辑编程(Prolog?)。那是什么意思呢?