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这么令人满意的小绿箱。) –