aarvid / smacklisp Goto Github PK
View Code? Open in Web Editor NEWYatl - Yet another toy Lisp. Definitely not yet ready for primetime. The name is a homage to Maclisp.
License: MIT License
Yatl - Yet another toy Lisp. Definitely not yet ready for primetime. The name is a homage to Maclisp.
License: MIT License
SmackLisp Version 0.01 SmackLisp is a toy lisp-2 interpreter. Currently Smacklisp is small subset of Common Lisp. That is smacklisp code should run in any common lisp implementation but not vice versa. Smacklisp is designed basically to be a scripting language to be used client-side on a web-site. Long-term plans include a compiler and maybe a scheme interpreter. Smacklisp also plans to be configurable, that is certain parts can be disabled (example: configure without looping macros to force use of recursion). Code/ideas stolen from Norvig, PAIP and Queinnec, Lisp in Small Pieces Currently Implemented: Evaluation and Compilation -- constantp -- lambda -- quote Control and data flow -- and -- apply -- block/return/return-from (not 100% compatible with CL) -- case -- complement -- cond -- constantly -- defconstant -- defparameter -- defun (no &aux, no setf, declares) -- defvar -- eq, eql, equal, equalp -- every -- fboundp -- fdefinition (no setf) -- flet -- fmakunbound -- funcall -- function (no setf) -- functionp -- identity -- if -- labels -- let, let* -- multiple-value-bind -- multiple-value-call -- multiple-value-list -- not -- notany -- notevery -- or -- prog prog* (no declares) -- prog1 -- prog2 -- progn -- psetf -- psetq -- setf (limited setf-able functions) -- setq -- some -- tagbody/go -- unless -- when Structures -- copy-structure -- defstruct (no options) Iteration -- do -- do* -- dolist -- dotimes Symbols: -- boundp Numbers -- + - * / = < > <= >= /= -- decf -- incf -- abs acos acosh ash asin asinh atan atanh -- boole byte -- ceiling cis complex complexp conjugate cos cosh -- decode-float denominator -- evenp exp expt -- fceiling ffloor float floatp float-sign floor fround ftruncate -- gcd -- imagpart integerp isqrt -- lcm log -- max min minusp mod -- numberp numerator -- oddp -- parse-integer phase plusp -- rational rationalize rationalp realp realpart rem round -- signum sin sinh sqrt -- tan tanh truncate -- zerop -- 1+ 1- Conses -- adjoin -- append -- atom -- butlast, nbutlast -- car (setf) -- cdr (setf) -- cxxr (setf) -- cons -- consp -- copy-list -- first, second, ... tenth (setf) -- last -- ldiff -- list -- list* -- list-length -- listp -- make-list -- mapc mapcan mapcar mapcon mapl maplist -- member -- member-if -- nconc -- nreconc -- nth (setf) -- nthcdr -- null -- pop -- push -- pushnew -- rest (setf) -- revappend -- rplaca -- rplacd Conses - Associated Lists -- acons -- assoc -- assoc-if -- copy-alist -- pairlis -- rassoc -- rassoc-if Conses - Sets -- subsetp -- intersection -- nintersection -- set-difference -- nset-difference -- set-exclusive-or -- nset-exclusive-or -- union -- nunion Conses - Trees -- copy-tree -- tree-equal -- subst -- nsubst -- subst -- nsubst -- tree -- sublis -- nsublis Arrays -- adjustable-array-p -- adjust-array -- aref -- array-dimension -- array-dimensions -- array-displacement -- array-element-type -- array-has-fill-pointer-p -- array-in-bounds-p -- arrayp -- array-rank -- array-row-major-index -- array-total-size -- make-array -- row-major-aref -- simple-vector-p -- svref -- vector -- vectorp -- vector-pop -- vector-push -- vector-push-extend Strings -- char -- make-string -- schar -- simple-string-p -- string -- string-capitalize -- nstring-capitalize -- string-downcase -- nstring-downcase -- string-upcase -- nstring-upcase -- string-equal -- string-greaterp -- string-left-trim -- string-lessp -- string-not-equal -- string-not-greaterp -- string-not-lessp -- stringp -- string-right-trim -- string-trim -- string= -- string/= -- string< -- string> -- string<= -- string>= Sequences -- concatenate -- copy-seq -- count -- count-if -- elt -- fill -- find -- find-if -- length -- make-sequence -- map -- map-into -- merge -- mismatch -- position -- position-if -- reduce -- remove -- delete -- remove-duplicates -- delete-duplicates -- remove-if -- delete-if -- replace -- reverse -- nreverse -- search -- sort -- stable-sort -- subseq -- substitute -- nsubstitute -- substitute-if -- nsubstitute-if Hash Tables -- clrhash -- gethash -- hash-table-count -- hash-table-p -- hash-table-rehash-size -- hash-table-rehash-threshold -- hash-table-size -- hash-table-test -- make-hash-table -- maphash -- remhash -- sxhash Printer -- prin1 -- princ -- print -- terpri Reader -- read (but not remotely) System Construction -- load Constants and Variables -- nil -- pi -- t -- * ** *** -- + ++ +++ -- / // /// -- - -- all the constants in SBCL package common-lisp (let ((l nil)) (do-all-symbols (x) (when (and (constantp x) (eq (find-package 'common-lisp) (symbol-package x))) (push x l))) (sort (remove-duplicates l) 'string<)) Non Common Lisp Function -- quit (exit repl loop) Currently Lacks: Plan to implement: Types Tail-recursion Macros (Internal exists, user not yet) Unit tests configurable Hope to implement Documentation strings declarations (at least allow) CLOS Streams Maybe LOOP Eval Debugging lambda list: &aux &allow-other-keys No plans to Implement Condition handling Packages Deprecated functions Read Macros
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.