RFC open on newLISP documentation

Started by kazemori, November 28, 2003, 02:34:32 PM

Previous topic - Next topic

nigelbrown

#165
A suggestion:

instead of

Without using step (1) the RPM package manager will issue warning

message but correctly install the package.



perhaps

Without using step (1) the RPM package manager will issue signature warning

messages to which it is safe to reply OK. The package will correctly install.



Just to make the safety of it explicit.

Nigel

Lutz

#166
thanks Nigel, I worked it in



lutz

nigelbrown

#167
As a freshmeat announcement is palnned which will attract those from

outside the lisp community and new users perhaps a FAQ would be

worth having on the documentation page (or directly in link list).

If I look at a new language/program I often look for a FAQ as it is

usually set up as a quick intro (which could also be delt with on an

"About" page) and highlights if any issues apply.

Most of it could be extracted from the current manual but be in more

question and answer form.

Topics beyound usual Installation etc could be

Relation to other Lisps and Scheme.

Approach to GUI implementation.

Scoping.

CGI Scripting.



Thoughts?

Nigel

Lutz

#168
For some time I have two pages in the works (1) Why newLISP? and (2) Myths about newLISP. I haven't been very happy with these mostly because of the format, they are written in. I think redoing the info contained in these pages in a FAQ format is the idea I needed. It also gives me the opportunity to merge both pages into one format, thanks Nigel.



Lutz

Lutz

#169
There is a new version of the 8.1.0 manual in: http://newlisp.org/downloads/development/newlisp_manual.html">http://newlisp.org/downloads/developmen ... anual.html">http://newlisp.org/downloads/development/newlisp_manual.html which has new paragraphs "UDP Communications" in the functions 'net-listen' and 'net-connect'.



Except for updating the Mac OSX library import interface code, there have been no code changes since version 8.1.0-rc2. The plan is, to release 8.1.0 during the coming week. I am still working on an FAQ.



I wonder If Todd from Arizona State U. is reading this to give me a feedback about the new UDP functionality and the updated Mac OSX interface. I have re-tested the library 'import' function on OSX 10.2 - Darwin 6.8, but not used it else.



Lutz

nigelbrown

#170
A couple of FAQ typos



uses onlyu the most



 Westenr World



Also



(define (double c) (+ x x))   ; defines a new function to double numbers



runs over the dotty margin.





Nice FAQ





Nigel

Sammo

#171
I agree ... nice FAQ!



    (define (double c) (+ x x))



should be



    (define (double x) (+ x x))

Lutz

#172
Thanks Nigel and Sam for your corrections and encouraging comments about the FAQ, it will probably grow over time.



Lutz

nigelbrown

#173
Further FAQ typos



"most deal with Common LISP or Scheme, to different older standards of LISP"

? should be

"most deal with Common LISP or Scheme, two different older standards of LISP"



"but for a few applications with big data amounts a random access in lists gets to slow."

? should be

"but for a few applications with big data amounts a random access into lists gets too slow."



newLISP has very powerful scaleable symbol processing.

is?

newLISP has very powerful scalable symbol processing.



you will only need to set uou locale lovale using the newlISP function set-locale.

???

you will only need to set your locale using the newLISP function set-locale.



Nigel

nigelbrown

#174
Memory management corrections:



from de-referencing memory objects due to new assignments or change of those memorys object in there contents.

?is

from de-referencing memory objects due to new assignments or change of those memory objects in their contents.



If this un-referenced memory were not taken care of by deletion than newLISP would run out

is?

If this un-referenced memory were not taken care of by deletion then newLISP would run out



stored directly in newLISPs LISP cells

is?

stored directly in newLISP's LISP cells



Matrix function in newLISP will allocate memory for matrix space than perform matrix operations like multiplication or inversion more efficient on those matrices before converting them back to LISP cells and freeing memory space for the matrices.

is?

Matrix functions in newLISP will allocate memory for matrix space then perform matrix operations like multiplication or inversion more efficiently on those matrices before converting them back to LISP cells and freeing memory space from the matrices.



You may not agree with all suggestions.

Nigel

Sammo

#175
In the v8.1.2 manual section on 'expand', the phrase "expand is when composing lambda expressions:" should be "expand is useful when composing lambda expressions:". Also, it appears that (expand list sym1 sym2) is equivalent to (expand (expand list sym1) sym2) instead of simultaneous expansion as the following illustrates:



> (set 'a 'b 'b 'a)

a

> a

b

> b

a

> (expand '(a b) 'a)

(b b)

> (expand '(a b) 'a 'b)

(a a)

> (expand '(a b) 'b 'a)

(b b)

Lutz

#176
thanks for the correction and your observation is correct: expand works incrementally:



(set 'a '(b c))

(set 'b 1)



you will get:



(expand '(a b c) 'a 'b) => ((1 c) 1 c)



I will mention this in the manual



Lutz



ps: expand 'reduces' like apply:



(apply expand '((a b c) a b) 2) => ((1 c) 1 c)

newdep

#177
Hello Lutz,



In the manual "net-select" the example below is

confusing because net-listen is none-blocking by itself aleady..



==== net-select ====



set 'listen-socket (net-listen 1001))



; wait for connection

(while (not (net-select listen-socket "read" 1000))

        (if (net-error) (print (net-error))))

(set 'connection (net-accept listen-socket))

(net-send connection "hello")
-- (define? (Cornflakes))

Lutz

#178
Yes, but the 'net-select' checks the listen-socket for the blocking 'net-accept' call. The (net-listen ..) is before the net-select. So is waits in the (while ...) loop until something is ready to accept on the listen-socket.



Perhaps the naming of the socket as 'listen-socket' is confusing? perhaps I just should call it 'socket' ?



Also, just posted 8.1.3 with the Solaris 'get-url' fix



Lutz

nigelbrown

#179
In Manual definition of define

"define

syntax: (define (sym-name [sym-param-1 ...]) [body-1])

syntax: (define sym-name exp )

Defines a new function sym-name with optional parameters sym-param-1 .... define is equivalent to assigning a lambda expression to sym-name. When calling a defined function, all arguments are evaluated and assigned to the variables in sym-param-1 ..., then the body-1 ... expression(s) are evaluated.

"

it probably should be

syntax: (define (sym-name [sym-param-1 ...]) [body-1 ...])



as this is consistent with "then the body-1 ... expression(s)"



and with how it works viz.

> (define (sayhello) (setq thehello "hi") "hello2")

(lambda () (setq thehello "hi") "hello2")

> thehello

nil

> (sayhello)

"hello2"

> thehello

"hi"

>



Maybe a comment along the lines that "the return value from a

function is the value of the last evaluated body-1 ... evaluation".



Nigel