Remove contrib.curry

It's undocumented and of dubious value.
This commit is contained in:
Kodi Arfer 2016-12-26 14:52:23 -08:00
parent e5c6f733a4
commit 85b4160637
3 changed files with 0 additions and 35 deletions

View File

@ -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))))

View File

@ -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:

View File

@ -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))))