Reputation: 321
Is there any free Logo implementation that offers classic stdin/stdout repl environment under Windows? Like python and ghci are.
As far as I can tell FMSLogo is GUI only and ucblogo is terminal based without ability for external program to capture its output.
The reason I ask the question is that I would like to setup a minimal Logo development environment around SublimeText editor and its SublimeREPL plugin. I have already implemented (some) syntax highlighting, auto-completions and inline help. See here.
I would be interested in hearing others talk about their Logo programming set up.
Upvotes: 1
Views: 210
Reputation: 31
FMSLogo is GUI but it does have command line options that allows it to load a file to interpret. As far as I know it does not allow to read files from stdin. From the help:
-L
-L file1 [file2]
FMSLogo allows you to LOAD one or more filenames on the command line when starting FMSLogo. These files are loaded before the interpreter starts reading commands from the commander. If you load a file that runs a program that includes a BYE instruction, FMSLogo runs that program and exits. You can therefore write stand-alone programs in FMSLogo and run them as new shortcuts. Note, the "-L" switch must follow any other switches.
Example:
fmslogo.exe -L myprog.lgo
I would be interested in hearing others talk about their Logo programming set up.
I use Vim which does have syntax highlighting, and FMSLogo. And have this in my logolib folder:
to CG [:file "%%%] 0
ifelse :file = "%%% [
if not namep "load.file: [make "load.file: "script.lgo]
load :load.file:
] [
make "load.file: :file
bury [[] [load.file:]]
load :file
]
end
bury "cg
I have both applications open at the same time. I add code to the Vim session and save the logo file.
In FMSLogo I initially write
(cg "myfile.lgo)
and later I simply reload with CG
Some times I write:
GC MainProcedureName
and reuse that line by pressing UP arrow, UP arrow, ENTER in the FMSLogo Command Center
If the name of the file is script.lgo, I don't even need to say
(cg "script.lgo)
Upvotes: 0