Haskellには、入力を変更せずに返す恒等関数があります。定義は簡単です:
id :: a -> a
id x = x
だから楽しみのために、これは出力する必要があります8
:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
数秒後(およびタスクマネージャによると約2 GBのメモリ)、コンパイルはで失敗しghc: out of memory
ます。同様に、通訳は言うghci: out of memory
。
id
は非常に単純な関数なので、実行時またはコンパイル時にメモリの負荷になるとは思わないでしょう。使用されているすべてのメモリは何ですか?
id
ます。VIMで、カーソルをの定義の上に置いてf
、次のようにします:s/id id/id . id ./g
。