Dla tych, którzy mają podejrzane umysły, to nie jest praca domowa, tylko ciekawa.Nieskończona lista nieskończonych liczników
Biorąc pod uwagę skończony alfabet, czy możliwe jest skonstruowanie listy nieskończenie długich słów wykonanych z alfabetu w odwrotnej kolejności leksykograficznej?
to podano alfabetu "ab"
możliwe jest skonstruowanie listy:
["aaaaaa...", "baaaaa...", "abaaaa...", "bbaaaa...", "aabaaa...", ...]
gdzie ...
przedstawia listę (i listę listy) rozciągający się w nieskończonej długości.
naiwna próba jest:
counters alphabet = [c:ounter | ounter <- counters alphabet, c <- alphabet]
ale to nie działa, ponieważ pozostało rekurencyjne.
Oczywiście, w wersji roboczej, jeśli próbowałeś wydrukować wynik, zobaczyłbyś tylko pierwszy element drukowany jako nieskończona lista pierwszego elementu z alfabetu. Jednakże, powinieneś być w stanie to zrobić:
mapM_ (print . take 2) . take 4 . counters $ "ab"
i zobaczyć wyjście:
aa
ba
ab
bb
jesteście świadomi są uncountably wiele słów, więc lista nie będzie zawierać wszystkie z nich? – sdcvvc
nie ma izomorfizmu do zbioru liczb całkowitych dodatnich? A na prawo od ostatniego b są jak wiodące zera w liczbie całkowitej – pat
Tak, ale pisałeś w pytaniu "wszystkie nieskończenie długie słowa"; to nie wszystko, tylko te, które składają się z "a" z pewnego punktu. – sdcvvc