Name: LuaJIT 2012-02-25 0:48
LuaJIT
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
t = {action = "learn lua before finding fault with it"}
setmetatable(t, {__tostring = function(instructions) return "You should really " .. instructions.action end})
print(t)
You should really learn lua before finding fault with it
char *s = "abc"; putchar(s[1]); works but putchar("abc[1]"); fails. Not understand the lexical conventions of the language you're programming in does not make the language inconsistent.
Lisp | C/C++
-------|-----------------------------------------------------
format | printf fprintf sprintf snprintf vsprintf vfprintf vsprintf vsnprint
| asprintf vasprintf dprintf vdprintf wprintf putchar fputchar putwchar
| putc fputc fputwc puts fputs fputws write fwrite
| ostream ofstream streambuf streingstream ostringstream stringbuf
| fstream filebuf ios ios_base cout cerr std clog << endl ends hex oct
| boolalpha dec flush internal setw noboolalpha noshowbase noshowpos left
| right resetiosflags scientific setbase setfill setiosflags setprecision
| showbase showpoint showpos skipws unitbuf nouppercase uppercase ws
C/C++ | Lisp
---------|---------------------------------------------------
vfprintf | format write prin1 princ print pprint
| copy-pprint-dispatch formatter pprint-dispatch
| pprint-exit-if-list-exhausted pprint-fill
| pprint-linear pprint-tabular pprint-indent
| pprint-logical-block pprint-newline pprint-pop
| pprint-tab print-object print-unreadable-object
| set-print-dispatch write-to-string prin1-to-string
| princ-to-string *print-array* *print-base*
| *print-radix* *print-case* *print-circle*
| *print-escape* *print-gensym* *print-level*
| *print-length* *print-lines* *print-miser-width*
| *print-pprint-dispatch* *print-pretty*
| *print-readably* *print-right-margin*
| print-not-readable print-not-readable-object
(display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline) (display) (newline)
(define (eval exp env)
(cond ((self-evaluating? exp) exp)
((variable? exp) (lookup-variable-value exp env))
((quoted? exp) (text-of-quotation exp))
((assignment? exp) (eval-assignment exp env))
((definition? exp) (eval-definition exp env))
((if? exp) (eval-if exp env))
((lambda? exp)
(make-procedure (lambda-parameters exp)
(lambda-body exp)
env))
((begin? exp)
(eval-sequence (begin-actions exp) env))
((cond? exp) (eval (cond->if exp) env))
((application? exp)
(apply (eval (operator exp) env)
(list-of-values (operands exp) env)))
(else
(error "Unknown expression type - EVAL" exp))))