Things you think should be added to a future version of uLisp.
About the New Features category
Firstly this whole Ulisp project is to admire - great job Mr Davies.
A following suggestions.
- unification with Common Lisp
"This program will also run on any standard Common Lisp implementation with one modification; you need to prefix the function arguments to apply and mapcar with the function macro expression, #’. This isn’t necessary in uLisp because function names and variables share the same
namespace. For example:
(defun dot (v w) (apply #’+ (mapcar #’* v w)))"
It requires going through the whole code, line by line.
Instead of 1 min. it took me about 1 hour, and less advanced user may get lost.
By making things easier = compatible with the CL, Ulisp could gather a broader community.
- unification with Common Lisp (CL) again.
“with-spi” from the above ray tracing is not a part of the CL package.
It would be good to create an universal CL library of the functions like: with-spi, for-millis etc.
When running the specific examples, the download would consist of a two step process:
http://www.ulisp.com/universal-cl-library.lisp (loaded once in a while, until the next update).
The Ulisp is written in C, so a natural way would be to write these Common Lisp functions as the Unix ones.
This would help testing all examples in the CL, before getting physically connected with the boards.
For example: show?27ES, it could be tested in the CL REPL first.
(for-millis () (fftr (let (z) (dotimes (x 16) (push 0 z)) (dotimes (x 16) (push 1 z)) z)))
- creating the REPL-s based graphics display.
“You will also need to replace the definition of plotpoint with a routine to plot to the computer’s graphics display rather than an external TFT display.”
Each CL distribution is different in this area, from a CLX to a very custom made displays.
The Lisp universality is also the Lisp problem, especially when it comes to the graphics.
The Ulisp’s great presentations like:
“Graphics display interface in Lisp
Plotting to a colour TFT display
Ray tracing with uLisp
GPS mapping application”
would be firstly run in the REPL’s graphics.
This is possibly going to be a simple ASCII, or maybe some better Invention.
With the REPL graphic, a strong community would help in developing a “general Ulisp”.
Choosing the board would be the final step, a matter of choices and a current needs.
Another example, Simple arcade game New! 3OGK
It has a simple graphics, which could be run first in REPL, like the Sudoku one.
Or this one, simple data plotter: show?2CYW
Making it running it CL would make the community joining and to add some features to the plotting universal library.
All suggestions have something in common = moving towards simple Robotics.
It would require adding a camera and a voice at some stage, which is not trivial.
But when working in the “general Ulisp”, synchronised with the CL, we could finally get there.