From: refun on
In article <hno5pt$lqo$1(a)news.eternal-september.org>, refun(a)nospam.gmx.com
says...

I was a bit bored, so I took a quick look at the documentation. Here is a
complete listing of all functions/special forms:
CAR/CDR/CONS - seems to work on lists instead of cons cells. The documentation
seems to allude that a list might not be built out of CONSes, but it's actually
an array of pointers to objects. Testing (CONS 1 2) in the REPL seems to
generate a list of 2 elements (1 and 2).
READ - seems to either read something from the console or from a string and
coerce it into a list.
QUOTE - Prevents evaluation of the parameter. Strangely, typing random things
which can't be evaluated at the REPL seems to just return them as if quoted..
EVAL - The usual meaning, evaluates an object/quoted list.
PRINT - Prints an object. Strings seem to come with some standard C-like escape
sequences (\n \r \t \\ \")
SETF - I'll quote from manual:
>Sets value of object VAL to the value of object ID. If ID is identifier, then
function will search for the object with that name, going up through the stack
to higher addresses memory block, where global variables defined. If such an
object is found, its value will be changed to VAL. If such an object doesn?t
exist, then it will be created in local memory of current function. If ID is
list, then it will be evaluated, and assignment will be made to that evaluation
result.
LET - Misleading name. It's actually an assignment operator:
>Sets value of object VAL to the value of object ID. If such an object is found
on the local stack frame, its value will be changed to VAL. If such an object
doesn?t exist, then it will be created in local memory of current function. If
ID is list, then it will be evaluated, and assignment will be made to that
evaluation result.
> Example:
> (LET myvar ?(3 4 5)) ; assign list to ?myvar? atom
>(LET (CAR myvar) 5) ; replace the first element of ?myvar?
list to 5.
DEFUN/DEFBIN/DEFMACRO - Defines a global function, DEFBIN seems to define a
callback (arranges for the executable to have an export with that name that
calls the interpreter). DEFMACRO seems* to make the function inlined.
STRREAD - reads a string from the console
AND/OR - logical and/or, not short circuiting!
NOT - logical not
PLUS/MINUS/DIV/MUL - integer operations
LESS/MORE - comparsion functions
AREF - Returns nth character in a string or nth element in a list
LEN/LENGTH - List or string length
STRCAT - Concatenates strings.
LOOP - C while loop equivalent.
IDIV/IMUL/MOD - Unlike DIV and MUL, these only take 2 arguments.
MALLOC/FREE - Allocate/free a block of memory.
GETBYTE/GETWORD/GETDWORD/GETSTRING/SETBYTE/SETWORD/SETDWORD/SETSTRING -
read/write to logical memory of the application. Will work with any memory
pointer it seems, but I suspect they're meant to be used with malloc/free.
CALL - calls a pointer.
CALLAPI - Resolves and calls a Win32 API or DLL function.
S - Quote from documentation:
>Converts A to string and forbids automatic type conversion for resulting
object.
> Example:
> (CALLAPI "MessageBoxA" "User32.dll" 0 "Hello World" "12" 0) ; error! 12 is passed as number
> Solution:
> (SETF str (S ?12?) )
> (CALLAPI "MessageBoxA" "User32.dll" 0 "Hello World" str 0)

FREECONSOLE - "Detaches console from the process"
UNTYPED - "Cancels automatic type conversion for resulting object."
CHR - "Returns string, consisting of object A, which represents symbol ASCII
code"
ORD - "Returns ASCII code of first symbol of string S."
HEX - "Returns hexadecimal number represented by string S."
EXIT - Returns a value from a function.
EXITBLOCK - Returns from a block of code if the passed expression is true.
JMP - "Jumps to k-th function within current block and continue successive
execution."
JMPREL - "Jumps to k-th function relative to the current one within current
block and continue successive execution. Zero means next instruction."
CJMP/CJMPREL - Like JMP, but relative. The semantics of these functions are a
mystery to me.
$EVAL_ERROR$ - A global variable which contains the current evaluation error.
GET-PROGRAM-CODE - "Returns program code"
GET-PROGRAM-MEMORY - "Returns virtual machine memory (as object list)"

Other functions/special forms:
COND,EQ,EQUAL,ATOM,BOUNDP,ISSRING,ISNUMBER,ISINTEGER,BITWISE-AND/BITWISE-
OR/BITWISE-NOT/BITWISE-XOR

* - The documentation is not perfectly clear about the exact semantics of many
such forms, for example, the only line in the DEFMACRO's documentation is:
>Defines marco and returns its body. Unlike function, macro body is inserted in
place of its call.
>Example:
>(DEFMACRO println (text)
> (PRINT text)
> (PRINT ?\n?)
>)

This seems considerably more low-level than I expected.
From: Pillsy on
On Mar 16, 9:51 am, Tamas K Papp <tkp...(a)gmail.com> wrote:

> On Tue, 16 Mar 2010 05:11:45 -0700, Mark Carter wrote:

> > I'm not really a Lisp programmer, but I saw an ad for Bee Lisp. Anyone
> > heard of it? Is it any good?

> I am curious where you saw the ad.  Based on first impressions, Bee
> Lisp is either a scam or a misguided attempt.  In either case, it seems
> surprising that they advertise.

It's right next to the Google Groups "sponsored links" for speech
therapists. I glanced through the documentation I found on the linked
website, and concluded that it's a worthy commercial competitor for
Newlisp.

Cheers,
Pillsy
From: Mark Carter on
On 16 Mar, 13:51, Tamas K Papp <tkp...(a)gmail.com> wrote:

> I am curious where you saw the ad.  

Gmail ad (not an actual spam email itself). I have been fooling around
with Lisp and a couple of Schemes lately, which explains why the ad
appeared.
From: Mark Carter on
On 16 Mar, 13:51, Tamas K Papp <tkp...(a)gmail.com> wrote:
> I am curious where you saw the ad.  

I saw it on a Gmail ad. I've been toying around with Lisp and some
Schemes recently.
From: cbbrowne on
On Mar 16, 9:51 am, Tamas K Papp <tkp...(a)gmail.com> wrote:
> On Tue, 16 Mar 2010 05:11:45 -0700, Mark Carter wrote:
> > I'm not really a Lisp programmer, but I saw an ad for Bee Lisp. Anyone
> > heard of it? Is it any good?
>
> I am curious where you saw the ad.  Based on first impressions, Bee
> Lisp is either a scam or a misguided attempt.  In either case, it seems
> surprising that they advertise.

For a while, I saw it as an ad on GMail, evidently because I had
enough Lisp-ish stuff in my inbox.
--
Christopher Browne
First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9
Prev: A pascal generator in CL ?
Next: lightweight database