Scheme Infix to Postfix

Posted by Cody on Stack Overflow See other posts from Stack Overflow or by Cody
Published on 2010-04-10T03:41:07Z Indexed on 2010/04/10 3:43 UTC
Read the original article Hit count: 440

Filed under:
|

Let me establish that this is part of a class assignment, so I'm definitely not looking for a complete code answer. Essentially we need to write a converter in Scheme that takes a list representing a mathematical equation in infix format and then output a list with the equation in postfix format.

We've been provided with the algorithm to do so, simple enough. The issue is that there is a restriction against using any of the available imperative language features. I can't figure out how to do this in a purely functional manner. This is our fist introduction to functional programming in my program.

I know I'm going to be using recursion to iterate over the list of items in the infix expression like such.

(define (itp ifExpr)
  (
    ; do some processing using cond statement
    (itp (cdr ifExpr))
  ))

I have all of the processing implemented (at least as best I can without knowing how to do the rest) but the algorithm I'm using to implement this requires that operators be pushed onto a stack and used later. My question is how do I implement a stack in this function that is available to all of the recursive calls as well?

© Stack Overflow or respective owner

Related posts about Scheme

Related posts about functional