From a25ed8a75d036de252cfe74b5fa0788215194b41 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Thu, 2 May 2024 21:57:58 +0200 Subject: More math MAATHTHAHHAHA --- std/Number/Wadsworth.bruijn | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 std/Number/Wadsworth.bruijn (limited to 'std/Number/Wadsworth.bruijn') diff --git a/std/Number/Wadsworth.bruijn b/std/Number/Wadsworth.bruijn new file mode 100644 index 0000000..00bd3c3 --- /dev/null +++ b/std/Number/Wadsworth.bruijn @@ -0,0 +1,23 @@ +# MIT License, Copyright (c) 2023 Marvin Borner +# from Wadsworth's "some unusual numeral systems" (p224, see refs in README) + +:import std/Combinator . + +zero [0 [k]] ⧗ Wadsworth + +# increment Wadsworth number +inc [[[2 [2 (1 0) 1]]]] ⧗ Wadsworth → Wadsworth + +:test (inc (inc zero)) ([[[2 (1 (0 (k [[1]]))) 1 0]]]) + +# decrement Wadsworth number +dec [[1 [k (1 0)] i]] ⧗ Wadsworth → Wadsworth + +:test (dec (dec (inc (inc zero)))) (zero) + +# returns true if Wadsworth number is zero +zero? [0 i (k (k [[0]]))] ⧗ Wadsworth → Bool + +:test (zero? zero) ([[1]]) +:test (zero? (inc zero)) ([[0]]) +:test (zero? (inc (inc zero))) ([[0]]) -- cgit v1.2.3