diff options
author | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-08-27 18:38:58 +0400 |
---|---|---|
committer | Ian Johnson <ian.johnson@appliedlanguage.com> | 2013-08-27 18:38:58 +0400 |
commit | b99b106564bec82b2342e4cb6840d1549343c8dd (patch) | |
tree | 7a344ce87727502716598ca96dcd00af10343095 | |
parent | 7669d8d91a18236d3a321ab28785eddfb61f88e5 (diff) |
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | src/pypeline/core/types/cont.py | 6 | ||||
-rw-r--r-- | src/pypeline/core/types/tests/cont_tests.py | 11 |
3 files changed, 11 insertions, 8 deletions
@@ -21,7 +21,7 @@ from setuptools import setup, find_packages setup( name = "pypeline", - version = "0.3.0", + version = "0.3.1", packages = find_packages("src", exclude = ["*tests"]), package_dir = {'': 'src'}, diff --git a/src/pypeline/core/types/cont.py b/src/pypeline/core/types/cont.py index 91614f5..3865f1e 100644 --- a/src/pypeline/core/types/cont.py +++ b/src/pypeline/core/types/cont.py @@ -63,9 +63,9 @@ def callCC(f): type(f) is not types.MethodType: raise ValueError("Must be a function or method") - def function(k): + def continuation(k): def function_arg(a): - return Cont(lambda x: k(a)) + return Cont(lambda _: k(a)) return Cont.runCont(f(function_arg), k) - return Cont(function) + return Cont(continuation) diff --git a/src/pypeline/core/types/tests/cont_tests.py b/src/pypeline/core/types/tests/cont_tests.py index 13ad05f..f244d35 100644 --- a/src/pypeline/core/types/tests/cont_tests.py +++ b/src/pypeline/core/types/tests/cont_tests.py @@ -17,8 +17,6 @@ # along with Pypeline. If not, see <http://www.gnu.org/licenses/>. # import unittest -import os -import sys from pypeline.core.types.cont import Cont, return_, callCC @@ -59,7 +57,12 @@ class ContMonadUnitTest(unittest.TestCase): return callCC(lambda ok: callCC(lambda not_ok: not_ok("Divide by zero error") if y is 0 else ok(x / y)) >= (lambda err: k(err))) - error = lambda err: Cont(lambda _: sys.stderr.write(err + os.linesep)) + error = lambda err: Cont(lambda _: self.__set_error_message(err)) self.assertEquals(3, Cont.runCont(divide_cps(10, 3, error), lambda x: x)) - self.assertEquals(None, Cont.runCont(divide_cps(10, 0, error), lambda x: x)) + Cont.runCont(divide_cps(10, 0, error), lambda x: x) + self.assertEquals("Divide by zero error", self.error_message) + + + def __set_error_message(self, err): + self.error_message = err |