Bob Tolbert
62f1f40830
Add set of new core functions
...
Add set of new core functions to the stdlib.
Moved the auto-import code from compile_expression to
HySymbol so that "even?' in this style expression will
be found and imported.
(list (filter even? [1 2 3 4 5]))
The core functions are documented in 2 sections, one
for basic functions like (even?..) and (nth ...) and
one for all the sequence functions.
Update: This removes all the caching decorators, misnamed as
'lazy-seq' from the core. All sequence methods now just use
yield to return a generator, so they are Python-lazy
Further refinements of core functions
Cleaned up the docs to use 'iterator' instead of 'generator'
Fixed drop to just return the iterator instead of an extra
yield loop. But also added a test to catch dropping too
many.
2013-07-13 09:55:16 -06:00
Paul Tagliamonte
b78be9a594
Jank @olasd's hack, clean up core.
...
The core shall from now on be only for the core language bits. Macro
bits shall live in hy.macros and in hy.compiler. This cleans up
garbage.
2013-07-06 14:00:11 -04:00
Paul Tagliamonte
86af7eacf1
Add in a new core language file.
...
This will let us implement common functions seen in other lisps,
and allow them to be importable, without explicit imports. The goal
is to keep this as small as we can; we don't want too much magic.
I've added `take' and `drop' as examples of what we can do.
2013-06-29 18:51:11 -04:00
Konrad Hinsen
269da19d76
Make macros module-specific.
...
A macro is available in the module where it was defined and
in any module that does a require of the defining module.
Only macros defined in hy.core are globally available.
Fixes #181
2013-05-16 15:34:14 +02:00
Nicolas Dandrimont
0986f9001e
Change macros to be called with separate arguments
...
This provides free argument-length checking for macros.
2013-05-11 09:09:34 +02:00
Julien Danjou
a0285903e6
Cleanup
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-05-05 20:42:48 +02:00
Nicolas Dandrimont
510ad53c71
mangles kthxbye
2013-05-05 20:42:48 +02:00
Julien Danjou
2ef9a0fdaf
Rename decorate-with' to
with-decorator'
...
Fixes #158
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:14:22 +02:00
Julien Danjou
f25177e9a6
Add a `unless' macro
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:04:35 +02:00
Julien Danjou
f68e3b972b
Add a `when' macro
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:04:35 +02:00
Julien Danjou
c241236bf5
Remove useless class attribute
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-22 14:58:05 +02:00
John Jacobsen
8d8dd62168
Move take and drop from AST impl. in compiler.py to macros in core/bootstrap.py
2013-04-21 19:08:30 -05:00
Julien Danjou
07860b5ce6
Allow variable without value in `let' declaration
...
Fixes issue #138
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-20 05:18:45 -07:00
Paul R. Tagliamonte
aadf47ed99
documenting hy.core.mangles
2013-04-18 22:50:46 -04:00
Paul R. Tagliamonte
d3a019b3dd
Don't quote things in (quote) - Closes #129
2013-04-17 23:20:56 -04:00
Paul R. Tagliamonte
db3e2bd346
updating the nested mangles
2013-04-11 22:25:23 -04:00
Paul R. Tagliamonte
e22a0ff73c
Mangle a macro until it stops moving
...
this helps if we use a macro in something that got tree-mangled
back out.
2013-04-07 18:41:41 -04:00
Paul R. Tagliamonte
bfc71e4a60
Add tail threading (->>)
2013-04-07 15:05:30 -04:00
Paul R. Tagliamonte
03dfbde1b8
style voodoo
2013-04-06 23:11:43 -04:00
Paul R. Tagliamonte
e0ed7cac40
Revert "Make HySymbol bytes free!"
...
This reverts commit 8b144a4f3dd815abbc29b2bdb18eb619ecd25ec7.
2013-04-06 20:02:08 -04:00
Julien Danjou
8b144a4f3d
Make HySymbol bytes free!
...
We can know use any amount and type of bytes to build a HyString, meaning we
can use Unicode and UTF-8 for our function and variables.
Eat that, snake!
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 23:37:34 +02:00
Paul R. Tagliamonte
4b57fd0a51
Adding in an If mangle
2013-04-06 11:10:33 -04:00
Paul R. Tagliamonte
7abc472336
Implementing `let'
2013-04-05 21:54:04 -04:00
Paul R. Tagliamonte
d762625aeb
also ignore setf / setv
2013-04-05 20:00:19 -04:00
Paul R. Tagliamonte
1d01d8874a
Bugfix for #50 . I'm slowly starting to take a shine to this.
2013-04-05 19:29:31 -04:00
Paul R. Tagliamonte
7c9fa3758c
Print is for loosers.
2013-04-04 21:50:01 -04:00
Paul R. Tagliamonte
256506ede0
Sketch for #50 - branch mangler
...
This is only slightly better. The insert point needs to walk
with the for loop.
2013-04-04 21:47:00 -04:00
Christopher Allan Webber
f8be07b643
Defun is now an alias for defn
2013-04-01 16:36:56 -05:00
Christopher Allan Webber
9416422330
Changing cond to be more common lisp / emacs lisp like
...
Instead of:
(cond (condition-1) (body-1)
(condition-2) (body-2))
We now work like:
(cond ((condition-1) (body-1)
(condition-2) (body-2)))
2013-04-01 10:33:45 -05:00
Paul R. Tagliamonte
83a9bdc87d
adding in rest macros
2013-03-18 19:49:36 -04:00
Paul R. Tagliamonte
8f6c77831b
Adding first' /
car'
2013-03-18 16:11:29 -04:00
Paul R. Tagliamonte
4cb4e7384e
holy shit it's 2013
2013-03-18 10:27:14 -04:00
Paul R. Tagliamonte
0bc2dd8d00
Moving `for' to a "macro"
2013-03-13 20:41:53 -04:00
Paul R. Tagliamonte
a238ac53c3
Adding back Python 2.6.
2013-03-13 20:02:16 -04:00
Paul Tagliamonte
57775a95a6
Fiddling with the threading macro
2013-03-13 10:11:14 -04:00
Paul R. Tagliamonte
daa6443e7c
Adding in a Threading macro (->)
2013-03-12 22:04:51 -04:00
Paul R. Tagliamonte
276df1b103
thinking through some manglers.
2013-03-09 16:34:35 -05:00
Paul R. Tagliamonte
a19d085620
Adding in better things.
2013-03-09 15:10:49 -05:00
Paul R. Tagliamonte
ab2cf5beda
futzing with condlike things.
2013-03-09 00:17:02 -05:00
Paul R. Tagliamonte
8c07829ff9
thinking about some new stuff.
2013-03-08 23:07:21 -05:00
Paul Tagliamonte
67b803b99a
Breaking things to start again.
2013-03-08 18:18:43 -05:00
Paul R. Tagliamonte
3166fec53e
Thinking some ideas out.
2013-03-07 22:52:47 -05:00