私はHaskellでis_prime
関数を定義しようとしています。誰でも関数を使用して問題を指摘できますか?Haskell 'any' function - primality check
さらに、私は以下のコードはナイーブであることを知っていますが、私はbabystepsから始めて言語を学んでいます。 any
の
is_prime 0 = False
is_prime 1 = False
is_prime 2 = True
is_prime n = any [n `mod` k == 0 | k <- [2.. sqrt n]]
'' any''の使用に関する@ Janの修正を除けば、 '' any''から期待していたような機能は 'or'と呼ばれ、' sqrt'の使用あなたのチェックは間違っていて、 'not'が足りなくなっているので、合成数は' True'を返し、素数(2以外)は 'False'を返します。 –
また、解はすべての除数のリストを作成し、そのリストがnullであるかどうかをチェックすると考えることもできます: 'null [k | k < - [2.sqrtn]、n \ 'mod \' k == 0] ' –
良い質問です。この場合はエラーを見るのが難しくありませんでしたが、将来はエラーメッセージが含まれるはずですので、問題の内容を確認するのが簡単です。 – Boris