newLISP development release 9.1.6
newLISP development release 9.1.6
Version 9.1.6 contains only minor fixes and adjustments, no binary installers are available with this development release.
v.9.1.7, due around the end of May will contain the new GUI modules and come with binary installers.
http://newlisp.org/downloads/development/
Lutz
v.9.1.7, due around the end of May will contain the new GUI modules and come with binary installers.
http://newlisp.org/downloads/development/
Lutz
I got few ideas for improvement:
1) rest with optional number of elements to remove
(rest lst 2) = (rest (rest lst))
2) apply with negative 'int-reduce' - similar to fold right
http://newlisp-on-noodles.org/wiki/inde ... ts_-_folds
(apply op '(1 2 3 4 5) 2) = (op (op (op (op 1 2) 3) 4) 5)
(apply op '(1 2 3 4 5) -2) = (op 1 (op 2 (op 3 (op 4 5))))
3) (++ x) (-- x)
Very common +1 and -1 (for better readability).
4) destructive append
- similar to 'write-buffer', but for lists
(not sure about the name for this function)
5) function 'round' has 'int-digits' optional - currently not documented
> (round 123.49 0)
123
> (round 123.49)
123
Fanda
1) rest with optional number of elements to remove
(rest lst 2) = (rest (rest lst))
2) apply with negative 'int-reduce' - similar to fold right
http://newlisp-on-noodles.org/wiki/inde ... ts_-_folds
(apply op '(1 2 3 4 5) 2) = (op (op (op (op 1 2) 3) 4) 5)
(apply op '(1 2 3 4 5) -2) = (op 1 (op 2 (op 3 (op 4 5))))
3) (++ x) (-- x)
Very common +1 and -1 (for better readability).
4) destructive append
- similar to 'write-buffer', but for lists
(not sure about the name for this function)
5) function 'round' has 'int-digits' optional - currently not documented
> (round 123.49 0)
123
> (round 123.49)
123
Fanda
Heh... and, probably, a way to push a list in the middle of the list :-)4) destructive append
- similar to 'write-buffer', but for lists
(not sure about the name for this function)
Code: Select all
(set 'lst (append (0 n lst) (lst-pushed) (n (length lst) lst)))
WBR, Dmi
-
- Posts: 95
- Joined: Wed Oct 13, 2004 8:02 pm
- Location: Bellingham WA
Add this to the list too:
1. Enhance the NOT function so that if it has multiple arguments it evals all of them so that you can write (not (= a 2)) as (not = a 2). This will get rid of a pair of parentheses almost every time.
2. Allow a negative integer in EXPLODE so that we break from the end rather than the beginning.
(explode "NewLISP" 2) -> ("Ne" "wL" "IS" "P")
(explode "NewLISP" -2) -> ("N" "ew" "LI" "SP")
1. Enhance the NOT function so that if it has multiple arguments it evals all of them so that you can write (not (= a 2)) as (not = a 2). This will get rid of a pair of parentheses almost every time.
2. Allow a negative integer in EXPLODE so that we break from the end rather than the beginning.
(explode "NewLISP" 2) -> ("Ne" "wL" "IS" "P")
(explode "NewLISP" -2) -> ("N" "ew" "LI" "SP")
I do not get this.Enhance the NOT function so that if it has multiple arguments it evals all of them so that you can write (not (= a 2)) as (not = a 2).
(eval =) only returns the symbol adress. (eval a) returns nil.
(eval 2) returns itself.
So you want a (not(and(eval =)(eval a)(eval 2))) ?
Maybe your way is is less typing, but not easy to read and understandable at the first look. Also when the logik gets more complex with nested expressions it seems not real lispy.
Hans-Peter
-
- Posts: 95
- Joined: Wed Oct 13, 2004 8:02 pm
- Location: Bellingham WA
I'm sorry that I explained myself badly. Perhaps I'll do so again but I will retry. What I had in mind was that with multiple arguments the first one should be a boolean function name and the rest of the arguments should be the arguments to that function. The idea was that for simple logic expressions like the one I gave that one can throw out the parentheses. Obviously you are not required to do so if you don't want to. As for "unlispy" I can't judge that because I thought LISP was all about finding simplifications of expressions.
It might not be necessary to redo 'rest'. N-rest can be done using 'slice' and implicit rest.Fanda wrote:1) rest with optional number of elements to remove
(rest lst 2) = (rest (rest lst))
Code: Select all
> (set 'lst '(1 2 3 4 5))
(1 2 3 4 5)
> (rest lst)
(2 3 4 5)
> (rest (rest lst))
(3 4 5)
> (2 lst)
(3 4 5)
> (slice lst 2)
(3 4 5)
Re: newLISP development release 9.1.6
Lutz wrote:v.9.1.7, due around the end of May will contain the new GUI modules and come with binary installers.
...The beer just hit the fridge... Im ready.. ;-)
-- (define? (Cornflakes))
newLISP development version 9.1.7
newLISP development version 9.1.7
Not the GUI version yet but some bug fixes I wanted to get out:
http://newlisp.org/download/development/
You can see a preview of what is coming next week here:
http://newlisp.org/download/development ... opment.png
The new GUI console app is entirely done using the new GUI facilities. The beautiful icons are created (*) by Michael Michaels from http://neglook.com
Lutz
(*) this is work in progress, not licensed for usage/distribution yet
Not the GUI version yet but some bug fixes I wanted to get out:
http://newlisp.org/download/development/
You can see a preview of what is coming next week here:
http://newlisp.org/download/development ... opment.png
The new GUI console app is entirely done using the new GUI facilities. The beautiful icons are created (*) by Michael Michaels from http://neglook.com
Lutz
(*) this is work in progress, not licensed for usage/distribution yet
The beer has to wait a few days.
Still curious what the communication technic between newLISP and the GUI-Server will be?
2 processes communicating?
1 process with a GUI-Lib?
And of cource curious on the list of the supported GUI-elements.
The preview shows us:
gs:frame
gs:button
gs:panel
Tabbed pane?
gs:set-flow-layout seems also very interesting!
So what is used for the GUI-Server and has this project its own documentation?
Still curious what the communication technic between newLISP and the GUI-Server will be?
2 processes communicating?
1 process with a GUI-Lib?
And of cource curious on the list of the supported GUI-elements.
The preview shows us:
gs:frame
gs:button
gs:panel
Tabbed pane?
gs:set-flow-layout seems also very interesting!
So what is used for the GUI-Server and has this project its own documentation?
Hans-Peter
I wonder nobody has figured it out so far :-)
several of the terms used in the API gave it away ;-)
Lutz
several of the terms used in the API gave it away ;-)
yes, thats where the name server comes from. The server process links to a popular platform independent libray which comes preinstalled on Win32 and Mac OSX. On UBUNTU it also has been announced for 7.04, but not all kinks are worked out yet (have only been able to experiment with the life disk).2 processes communicating?
yes, that library used does have its own documentation, but that documentation (which is rather huge) is not necessary to study when building newLISP GUI apps. The newLISP GUI API is a high-level abstraction of the original API. I am working on the newLISP documentation right now, and only that documentation will be required....and has this project its own documentation?
yes, it supports tabbed panes as the icon demo shows and also split-panes and scroll-panes. A split-pane is used in the console app to the left. You can drag the bar between the 2 windows up or down.Tabbed pane?
Lutz
Re: newLISP development version 9.1.7
Ah yes, and it looks soooo good on the Mac! (No offense to other platforms.) :-)Lutz wrote:newLISP development version 9.1.7
You can see a preview of what is coming next week here:
http://newlisp.org/download/development ... opment.png
(λx. x x) (λx. x x)
-
- Posts: 2038
- Joined: Tue Nov 29, 2005 8:28 pm
- Location: latiitude 50N longitude 3W
- Contact:
I realy cant figure it out..
What GUI run default on Windows and Mac and Ubuntu?? Beats me ;-)
Other Unices needs perhpas extra addons...? I realy dont know what that is...
Mmmmmm no the example names dont ring any bell yet....
I do know a lot of widget/GUI's but none of those fit in the above...
Ill start drinking..perhpas that lightens the mind ;-)
What GUI run default on Windows and Mac and Ubuntu?? Beats me ;-)
Other Unices needs perhpas extra addons...? I realy dont know what that is...
Mmmmmm no the example names dont ring any bell yet....
I do know a lot of widget/GUI's but none of those fit in the above...
Ill start drinking..perhpas that lightens the mind ;-)
-- (define? (Cornflakes))
-
- Posts: 2038
- Joined: Tue Nov 29, 2005 8:28 pm
- Location: latiitude 50N longitude 3W
- Contact:
Not true, Java comes preinstalled on Mac OSX and installed on every Win32 computer I have tried (e.g. Dell machines out of the box). Guiserver just needs the Standard Java RE (runtime environment) as also used by browsers as MS IE and FireFox. Here some more facts about Java and the guiserver:But it cant be JAVA..because JAVA is not default on Win32..
..It isnt default on any system...
- standard installed/shipped on Win32 and MacOS X and UBUNTU since 7.04
- full featured, mature, open source (SUN is GPLing it)
- well supported by a large community
- guiserver is built on swing libs
- can switch look-and-feel between platform native, swing-metal and motif, guiserver by default shows platform native look and feel.
- good execution speed on a 2 year old PPC Mac/1.42GHz, very fast on the new Intel Macs, very fast on a 3 1/2 year old 1.8GHz XP-Home machine.
- startup speed on a fresh booted PPC is the first time 10+ seconds but all startups after that only about 2 seconds. On an Intel Win32 or Mac OSX machine 1.8GHz machine startup the first time about 7 seconds, but after that about 1 second or less.
- initially guiserver only supports GUI stuff, 2D graphics are added during June. A feature complete newLISP console for stable release 9.2 in August.
- The Tcl-tk stuff will be discontinued but example files show how to write Tcl/Tk apps (using Fanda's runtk, which is also featured here: http://newlisp.org/index.cgi?page=Tk_and_newLISP
Lutz