[Haskell-beginners] Using stack inside a function without declaring it as input

Emanuel Koczwara poczta at emanuelkoczwara.pl
Mon Mar 11 11:29:27 CET 2013


Dnia 2013-03-11, pon o godzinie 09:36 +0000, doaltan pisze:
> Hi I have a function like this : 
> myfunc :: [Char] -> [Char] 
> It  is supposed to work pretty much like this : 
>      1. Take a string
>      2. Put some elements of this input string to output string and
>         put others to stack.
>      3. Pop elements to that output string too.
>      4. Do 2 and 3 recursively until stack is empty.
>      5. Print the output string when stack is empty.
> I couldn't figure out where to define stack and output string. Can you
> help me with that? I'm new to Haskell so I can't think in Haskell's
> logic very well.

  You can try to define a second function inside myfunc with the stack
as an argument:

myfunc :: String -> String
myfunc str = myfunc' [] str
  where myfunc' stack str = ...

  myfunc' can take the stack as an argument, myfunc can call myfunc'
passing the empty stack.

  You should describe your problem more precisely to get more accurate


More information about the Beginners mailing list