Remove contrib.curry
It's undocumented and of dubious value.
This commit is contained in:
parent
e5c6f733a4
commit
85b4160637
@ -1,21 +0,0 @@
|
|||||||
(import inspect functools sys)
|
|
||||||
|
|
||||||
|
|
||||||
(defn curry [func]
|
|
||||||
(let [sig (.getargspec inspect func)
|
|
||||||
count (len sig.args)]
|
|
||||||
|
|
||||||
(fn [&rest args]
|
|
||||||
(if (< (len args) count)
|
|
||||||
(apply functools.partial (+ [(curry func)] (list args)))
|
|
||||||
(apply func args)))))
|
|
||||||
|
|
||||||
|
|
||||||
(defmacro fnc [args &rest body]
|
|
||||||
`(do (import hy.contrib.curry)
|
|
||||||
(with-decorator hy.contrib.curry.curry (fn [~@args] ~@body))))
|
|
||||||
|
|
||||||
|
|
||||||
(defmacro defnc [name args &rest body]
|
|
||||||
`(do (require hy.contrib.curry)
|
|
||||||
(def ~name (hy.contrib.curry.fnc [~@args] ~@body))))
|
|
@ -19,7 +19,6 @@ from .native_tests.contrib.loop import * # noqa
|
|||||||
from .native_tests.contrib.meth import * # noqa
|
from .native_tests.contrib.meth import * # noqa
|
||||||
from .native_tests.contrib.walk import * # noqa
|
from .native_tests.contrib.walk import * # noqa
|
||||||
from .native_tests.contrib.multi import * # noqa
|
from .native_tests.contrib.multi import * # noqa
|
||||||
from .native_tests.contrib.curry import * # noqa
|
|
||||||
from .native_tests.contrib.sequences import * # noqa
|
from .native_tests.contrib.sequences import * # noqa
|
||||||
|
|
||||||
if PY3:
|
if PY3:
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
(require [hy.contrib.curry [defnc]])
|
|
||||||
|
|
||||||
|
|
||||||
(defnc s [x y z] ((x z) (y z))) ; λxyz.xz(yz)
|
|
||||||
(defnc k [x] (fn [y] x)) ; λx.λy.x
|
|
||||||
(defnc i [x] x) ;; λx.x
|
|
||||||
|
|
||||||
(defnc succ [n] (+ n 1))
|
|
||||||
|
|
||||||
|
|
||||||
(defn test-curry []
|
|
||||||
(assert (= 16 (((((s ((((k s) k) i) i)) (i i)) ((i (i i))
|
|
||||||
((((k s) i) ((s (k s)) k)) i))) succ) 0))))
|
|
Loading…
x
Reference in New Issue
Block a user