newLISP Fan Club

Forum => newLISP in the real world => Topic started by: techdir0 on December 17, 2009, 01:36:34 AM

Title: Newbie problem with newLisp-gs
Post by: techdir0 on December 17, 2009, 01:36:34 AM
New to Lisp, and newLisp



Why does (setq res (parse (read-line))) produce expected result in command line version,

but return

( "(" "setq" "res" "(" "parse" "(" "read-line" ")" ")" ")" )



if entered in newLisp-gs?? that is, in the IDE.



I'm using v10.1.7 on WinXP
Title: Re: Newbie problem with newLisp-gs
Post by: Lutz on December 17, 2009, 09:28:02 AM
When running newLISP-GS, the newLISP monitor process in the lower part of the IDE is controlled using STD I/O. This is why 'read-line' and other built-in functions processing STD I/O channels should only be used when running newLISP in a terminal shell.



Ps: welcome to newLISP
Title: Re: Newbie problem with newLisp-gs
Post by: techdir0 on December 18, 2009, 01:09:11 AM
Thanks - I think I understand now what is going on.



Since my interest in newLisp is for natural language interaction, I guess I will work in a terminal until or unless I have a simple graphical interface for the user.
Title: Re: Newbie problem with newLisp-gs
Post by: Kazimir Majorinc on December 18, 2009, 03:54:12 AM
You can find some ways around if you want to work from gs. for example



> (begin (setq z (read-line))(println "parse z=" (parse z)))

Hey man, what are you doing there?

parse z=("Hey" "man" "," "what" "are" "you" "doing" "there?")

("Hey" "man" "," "what" "are" "you" "doing" "there?")

>
Title: Re: Newbie problem with newLisp-gs
Post by: techdir0 on December 23, 2009, 02:44:23 AM
Well, that would be useful, but it doesn't seem to work that way for me.



This is what happens to me
(begin (setq z (read-line))(println "parse z= " (parse z)))
hey this is great
parse z= ("(" "begin" "(" "setq" "z" "(" "read-line" ")" ")" "(" "println" "parse z= " "("
 "parse" "z" ")" ")" ")")
("(" "begin" "(" "setq" "z" "(" "read-line" ")" ")" "(" "println" "parse z= " "("
 "parse" "z" ")" ")" ")")
> nil
nil
nil
nil


Am I missing something obvious here?
Title: Re: Newbie problem with newLisp-gs
Post by: cormullion on December 23, 2009, 04:25:16 AM
This works OK for me:


$ newlisp
newLISP v.10.1.8 on OSX IPv4 UTF-8, execute 'newlisp -h' for more info.

>  (begin (setq z (read-line))(println "parse z= " (parse z)))
this seems to work ok in the terminal
parse z= ("this" "seems" "to" "work" "ok" "in" "the" "terminal")
("this" "seems" "to" "work" "ok" "in" "the" "terminal")
>


although this is less noisy if you're using the terminal:


> (set 'z (parse (read-line)))
this is a test
("this" "is" "a" "test")
>


I confess I don't use newlisp-gs - i prefer the full-on editing environment of a text editor like BBEdit, using the terminal for interaction. I would - not very convincingly and only if pushed - argue that it's better to meet newLISP first of all in the simplest environment possible (the terminal), then move up to editors and stuff later. Something to do with cognitive loading... :)
Title: Re: Newbie problem with newLisp-gs
Post by: Kazimir Majorinc on December 23, 2009, 08:58:28 AM
OK, techdir0, I understand why it didn't worked for you and worked for me.





1. Write (parse (read-line)) and press enter in editor part of IDE.

2. Select (with mouse) and copy (parse (read-line)) together with enter from editor part of IDE.

3. Paste in dialog part of IDE.

4. Write the statement you want parsed and press enter.

5. Goto 3.



---



Lutz will maybe fix it when he came back from travelling. I also use GS IDE only for short programs, and Scite for longer programs. I described how it can be Title: Re: Newbie problem with newLisp-gs
Post by: techdir0 on December 24, 2009, 02:01:53 AM
That seems to work - thank you for finding it.



I think I will go along with the majority opinion, and stick to the terminal view.   I expect I shall end up using TextPad as my

editor, since I'm used to it, and I can modify the syntax files to suit newLisp.