リスト内包表記は方程式を解くのではなく、特定のセットに属するアイテムのリストを生成するだけです。セットがそのようなものとしてx
[1..20]
x^2==4
定義されている場合、それが得られます。
0.01
からまでの実数の完全なリストを使用してこれを行うことはできません。その2.0
ような実数リストは、無限の精度で無限の数を持っているため、haskellで表すことができないためです(またはより良い:どのコンピューターでも表すことができません)。
[0.01,0.2..2.0]
次の番号で構成されるリストです。
Prelude> [0.01,0.2..2.0]
[1.0e-2,0.2,0.39,0.5800000000000001,0.7700000000000001,0.9600000000000002,1.1500000000000004,1.3400000000000005,1.5300000000000007,1.7200000000000009,1.910000000000001]
そして、これらの数字のどれもあなたの条件を満たしていません。
[0.1,0.2..2.0]
おそらくの代わりに意味していることに注意してください[0.01,0.2..2.0]
。まだ:
Prelude> [0.1,0.2..2.0]
[0.1,0.2,0.30000000000000004,0.4000000000000001,0.5000000000000001,0.6000000000000001,0.7000000000000001,0.8,0.9,1.0,1.1,1.2000000000000002,1.3000000000000003,1.4000000000000004,1.5000000000000004,1.6000000000000005,1.7000000000000006,1.8000000000000007,1.9000000000000008,2.000000000000001]