import Html exposing (..)
import String
type alias Stack = List String
push : String -> Stack -> Stack
push tok stack =
(tok :: stack)
pop : Stack -> (Maybe String, Maybe Stack)
pop stack =
let
top = List.head stack
in
(top, List.tail stack)
reverseString: String -> String
reverseString incoming =
let
stringStack = incoming
|> String.split ""
|> List.foldl push []
in
-- How to use pop() here?
List.foldr String.append "" stringStack
main : Html
main =
"Hello World!"
|> reverseString
|> toString
|> text
我試圖用一個Stack ADT字符串我自己reverse
使用push()
和pop()
字符串。我能夠在函數reverseString
中合併push
,但不能使用pop
。我在這裏做錯了什麼?扭轉榆樹
感謝您的驚人和徹底的答案!使用帶撇號的變量「stack」的任何特定原因? – lifebalance
這只是表明它與原始的'stack'參數不一樣。你不需要,但我認爲它使代碼更清晰一些。 –
(如果你喜歡這個答案,可以考慮提高或接受它,這會讓其他人清楚,他們可能會發現答案很有用,並且它給了我一個+10這麼令人滿意的小綠箱。) –