疑わしい心を持っている人にとっては、これは宿題ではなく、好奇心が強いだけです。無限のカウンターの無限リスト
与えられた有限アルファベットは、逆アルファベット順でアルファベットから作られた無限に長い単語のリストを構成することは可能ですか?アルファベット"ab"
所与
すなわち、それが可能リストを構築することである:...
は無限の長さに延びるリスト(およびリストのリスト)を表し
["aaaaaa...", "baaaaa...", "abaaaa...", "bbaaaa...", "aabaaa...", ...]
。
ナイーブ試みがある:
counters alphabet = [c:ounter | ounter <- counters alphabet, c <- alphabet]
それが再帰残っているので、これは動作しません。
もちろん、実際のバージョンでは、結果を印刷しようとすると、アルファベットの最初の要素の無限リストとして印刷されている最初の要素のみが表示されます。
mapM_ (print . take 2) . take 4 . counters $ "ab"
と出力を参照してください:おそらく
aa
ba
ab
bb
あなたは非可算多くの単語がある認識しているので、リストには、それらのすべてが含まれていないのだろうか? – sdcvvc
は、正の整数の集合と同型写像はありませんか?最後のbの右にあるaは、整数の先頭にゼロのようです。 – pat
はい、「すべての無限に長い単語」という質問に書いてあります。それはすべてではなく、ある点から「a」で構成されているものだけです。 – sdcvvc