aboutsummaryrefslogtreecommitdiffhomepage
path: root/std/List.bruijn
diff options
context:
space:
mode:
Diffstat (limited to 'std/List.bruijn')
-rw-r--r--std/List.bruijn4
1 files changed, 3 insertions, 1 deletions
diff --git a/std/List.bruijn b/std/List.bruijn
index 39aecf8..bb8bed3 100644
--- a/std/List.bruijn
+++ b/std/List.bruijn
@@ -1,7 +1,6 @@
# MIT License, Copyright (c) 2022 Marvin Borner
# Lists in Church/Boehm-Berarducci encoding using pairs
# implementations are generally lazy (except when they're broken)
-# TODO: Replace fold/map/etc. with faster LC native logic
:import std/Combinator .
:import std/Pair P
@@ -85,6 +84,9 @@ eval-r z [[rec]]
:test (~!(inc : (inc : {}(+1)))) ((+3))
+# returns the element at unary index in list
+index-unary [[P.fst (0 P.snd 1)]] ⧗ (List a) → Unary → a
+
# returns the element at index in list
index z [[[rec]]] ⧗ (List a) → Number → a
rec 0 [[[case-index]]] case-end