1

私はこのHaskellスクリプトを持っています:

prime :: Integer -> Bool    
prime 1 = False
prime n = [ x | x <- [2..n-1], n `mod` x == 0 ] == []

最後の行の最初の行は何xを表していますか? 「文字列」に置き換えても、関数全体が機能するのはなぜですか?

4

1 に答える 1

6

リスト内包表記の前の部分|は、結果のリストの各要素を生成するために使用される式です。

この場合、関数はリスト内包表記の結果が空のリストになるかどうかのみを気にするため、リストの要素は重要ではありません。()x1またはそこに実装する任意のタイプの任意の値を配置できEqます。null空をチェックする代わりにを使用していた場合== []、それは何でも可能undefinedでした。

于 2013-04-23T12:53:27.570 に答える