[racket] Simple Scheme Interpreter written in Drracket
As an example, I want have most of the functions for Plus, Minus already
written.
Here is the code for it.
(define (plus num1 num2)
(+ num1 num2))
That is childs stuff... Here is where I am having the problem, and please
keep in mind I am new to DrRacket...
If my program accepts input such as
(plus 13 5)
I need to parse it so that I know what it is asking for. If It is a left
parent, then I need to move on, if it is a right parent, move on to the next
character, once i get to the next character I can see it is an alphanumeric
character, but then I need to somehow read the whole word, so that I can
store that value in a variable so that I can read the next number. If the
numbers are single digits, it is easy, because they are only one charater
each and read-char works perfect, but I need something like a read-word, or
read-number and I can't seem to figure out how to do it.
So really I need to know how do I read the words when there are characters
present, and read the whole numbers when there is a number present.
On 9 November 2010 15:00, John Clements <clements at brinckerhoff.org> wrote:
>
> On Nov 9, 2010, at 11:48 AM, Peter Breitsprecher wrote:
>
> > I am in the process of writing a simple scheme interpreter for a class I
> have. I am running into an issue with regards to parsing the input
> properly. I will try and explain what I want to do and tell me if I am way
> off base or not. I have a procedure set up to read the input from the user.
> Which is just a simple display read function. I want to pass that read
> value in, and then read it character by character. If it is a "(" then up a
> counter(to make sure there is an equal number of ")", if it is a number, i
> want to read the number and store it into a variable, and if it is an
> operator I want to pass the variables to the proper functions I have written
> to evaluate the input.
> >
> > I'm really stuck at step 2... I can read the input, however I can't seem
> to pass that input to another function and then break it down character by
> character.. I thought read-char should do it, but it only seems to work if
> it is in the function to read the input.. and it doesn't seem to work if
> passed to another function..
>
> I understand your big picture, but I have no idea what kinds of functions
> you're trying to write. Can you describe the function you're trying to
> write in one line, then specify what it takes and what it returns, and
> provide a few examples of what you expect it to produce on certain inputs?
>
> In the book "How To Design Programs", these are the first few steps of the
> "Design Recipe," and it sounds like they would help you clarify what it is
> you're trying to do.
>
> All the best,
>
> John Clements
>
>
--
Kurt Breitsprecher
(807) 474-9601
pkbreits at lakeheadu.ca
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20101109/1ed5e1c9/attachment.html>