История изменений
Исправление
Crocodoom,
(текущая версия)
:
λ> let x = push 3 $ push 2 emptyQ
λ> x == Queue [] (3 : 2 : [])
True
λ> toList x
[3,2]
λ> let y = snd. pop $ push 3 $ push 2 $ push 1 emptyQ
λ> y == Queue (2 : 3 : []) []
True
λ> toList y
[2,3]
Не совсем понимаю, что вы хотели показать своим примером...
Queue [] (3 : 2 : [])
трансформируется в [3,2]
, а Queue (2 : 3 : []) []
в [2,3]
.
В полном соответствии с тем, как должен работать toList t
, если следовать моему принципу (который вы пытаетесь оспорить)
Дерево конструкторов любого данных можно записать в строчку (и именно так мы и задаем их в хаскеле), и эту строчку можно прочитать слева направо .. toList должен выдавать в точности такой же порядок элементов
Исходная версия
Crocodoom,
:
λ> let x = push 3 $ push 2 emptyQ
λ> x == Queue [] (3 : 2 : [])
True
λ> toList x
[3,2]
λ> let y = snd. pop $ push 3 $ push 2 $ push 1 emptyQ
λ> y == Queue (2 : 3 : []) []
True
λ> toList y
[2,3]
Не совсем понимаю, что вы хотели показать своим примером...
Queue [] (3 : 2 : [])
трансформируется в [3,2]
, а Queue (2 : 3 : []) []
в [2,3]
.
В полном соответствии с тем, как должен работать toList t
, если следовать моему объяснению
Дерево конструкторов любого данных можно записать в строчку (и именно так мы и задаем их в хаскеле), и эту строчку можно прочитать слева направо .. toList должен выдавать в точности такой же порядок элементов