Skip to content

Commit

Permalink
Added Fibonacci example and added functions to the default environment
Browse files Browse the repository at this point in the history
  • Loading branch information
mambo committed Jun 22, 2016
1 parent cce235b commit 8e5424b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
4 changes: 2 additions & 2 deletions acid/compiler/compiler.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def execute_compiled_file(cls, path, prelude=default_env, mute_env=False):

with open(path, 'rb') as compiled_file:
code = marshal.load(compiled_file)
exec(code, env)
exec(code, znv, env)

_run_main_function(env)

Expand Down Expand Up @@ -120,7 +120,7 @@ def load(self, env):

code = self.compile()

exec(code, env)
exec(code, env, env)

def execute(self, prelude=default_env, mute_env=False):
"""
Expand Down
7 changes: 7 additions & 0 deletions acid/prelude.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,11 @@
'#~': op.delitem,
'negate': op.neg,
'print': print,
'list': lambda *elts: list(elts),
'tuple': lambda *elts: tuple(elts),
'append': lambda x, xs: [x] + xs,
'foldl': lambda f, xs: reduce(f, xs),
'map': lambda f, xs: list(map(f, xs)),
'filter': lambda f, xs: list(filter(f, xs)),
'range': lambda start, end: list(range(start, end))
}
16 changes: 16 additions & 0 deletions examples/fibonacci.acid
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Suite de Fibonacci
*/

// n-ième terme de la suite de Fibonacci
(define fib (lambda (n)
(if (< n 2)
n
(+ (fib (- n 1)) (fib (- n 2)))
)
))

// Suite de Fibonacci jusqu'au n-ième terme
(define fibSeq (lambda (n)
(map fib (range 0 n))
))

0 comments on commit 8e5424b

Please sign in to comment.