The aim of sfip is to be a language made in common-lisp with the power of lisp, but without prefix notation. But it does not simply use a syntax to convert code to lisp-code and then execute it. In fact, it processes lists in a different way, using triggers, which are so general that they can handle functions, variables, macros, and much more, without requiring the use of prefix notation.
This project is released under the BSD licence.

examples of code


defun fact(n)
    if n==0, 1
    else n*fact(n-1)

print fact(4)

defun append2(la,lb)
	if NULL(la), lb
	else CONS(FIRST(la),append2(REST(la),lb))

print append2('(3 7),'(1 2 4))

presentation of the project

what sfip is
small tutorial
an explanation of how triggers work


code of the interpreter using triggers
the source of the project
a commented example

Project members

Nicolas Prévot, nicolas.prevot@ecl2013.ec-lyon.fr