diff options
author | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2017-10-09 23:10:27 +0200 |
---|---|---|
committer | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2017-10-09 23:10:27 +0200 |
commit | ce108e22767232250682c69bf6275f50bffa8232 (patch) | |
tree | be7fa8696524d23316df435ec4566d915fbff614 /modules/language/python/module | |
parent | e4938284cef9e4048528839d29e5930b0e1928f4 (diff) |
iterators refactorings
Diffstat (limited to 'modules/language/python/module')
-rw-r--r-- | modules/language/python/module/python.scm | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/modules/language/python/module/python.scm b/modules/language/python/module/python.scm index 0dab709..ef3b190 100644 --- a/modules/language/python/module/python.scm +++ b/modules/language/python/module/python.scm @@ -23,18 +23,19 @@ #:use-module (language python range ) #:use-module (language python tuple ) - #:replace (list abs min max hash) + #:replace (list abs min max hash round) #:re-export (Exception StopIteration send sendException next GeneratorExit sendClose RuntimeError len dir next dict None property range tuple ) - #:export (print repr complex float int round + #:export (print repr complex float int set all any bin callable reversed chr classmethod staticmethod divmod enumerate filter format getattr hasattr hex isinstance - iter map sum id input oct ord pow super)) + iter map sum id input oct ord pow super + sorted)) (define-syntax-rule (aif it p x y) (let ((it p)) (if it x y))) @@ -202,3 +203,13 @@ (define max py-max) (define list pylist) (define reversed py-reversed) +(define (key-id x) x) +(define* (sorted it #:key (key key-id) (reverse #f)) + (define l (to-pylist '())) + (for ((x : it)) () (pylist-append! l x)) + (pylist-sort! l #:key key #:reverse reverse) + l) + + + + |