次のコード スニペット (関数定義) を見つけました。
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 from Muenster Curry Compiler。ここ:
choose :: [a] -> a
と
choosep :: a -> [a] -> a -- BTW, not a _p_redicate
ヘルパー再帰関数の"p" サフィックスchoosep
は既知の命名規則ですか? おそらく、関数型プログラミングの伝統 (Haskell) または論理型プログラミング (Prolog?) から来ているのでしょう。それはどういう意味ですか?
(この関数は、Why is the non-deterministic choice function in Curry's std lib not directly definedly but rather with a helper 2-argument function?で検討されました。)