De « Erlang Programmation » par exercice Cesarini 3-2création de la liste en Erlang
Comme je passe par « Erlang programmation » je reçois des questions bizarres de création de liste. De l'exercice 3-2, j'ai écrit deux fonctions similaires.
create(0) -> [];
create(N) when N > 0 -> [ N | create(N-1) ].
reverse_create(0) -> [];
reverse_create(N) when N > 0 -> [ reverse_create(N-1) | N ].
alors créez (3) génère comme je m'attendais.
exercice3: créer (3).
[3,2,1]
mais reverse_create ne génère pas la liste attendue.
exercice3: reverse_create (3). Que dois-je changer pour que reverse_create (3) renvoie [1,2,3]?
Merci d'expliquer.
OK, eu l'exemple de travail. Toute idée de pourquoi les deux fonctions similaires ci-dessus renvoient des réponses si différentes? Pourquoi create retourne-t-il une liste propre alors que reverse_create renvoie des listes de listes? – Superpolock
vous pouvez lire ceci pour l'explication: http://learnyousomeerlang.com/starting-out-for-real#lists et regardez également ceci: http://stackoverflow.com/questions/3232786/how-to-concat-lists -en-erlang-sans-créer-imbriqué-listes et http://stackoverflow.com/questions/1919097/functional-programming-what-is-an-improper-list –