Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
Drop-in fast replacement for Peano lengtho when the count fits in a host integer. Two conde clauses: empty list -> 0; recurse, n = 1 + length(tail). Uses pluso-i so the length walks to a native int. 5 new tests, 486/486 cumulative.
29 lines
532 B
Plaintext
29 lines
532 B
Plaintext
;; lib/minikanren/tests/lengtho-i.sx — integer-indexed length (fast).
|
|
|
|
(mk-test "lengtho-i-empty" (run* q (lengtho-i (list) q)) (list 0))
|
|
(mk-test
|
|
"lengtho-i-singleton"
|
|
(run* q (lengtho-i (list :a) q))
|
|
(list 1))
|
|
(mk-test
|
|
"lengtho-i-three"
|
|
(run* q (lengtho-i (list 1 2 3) q))
|
|
(list 3))
|
|
(mk-test
|
|
"lengtho-i-five"
|
|
(run*
|
|
q
|
|
(lengtho-i
|
|
(list 1 2 3 4 5)
|
|
q))
|
|
(list 5))
|
|
|
|
(mk-test
|
|
"lengtho-i-mixed-types"
|
|
(run*
|
|
q
|
|
(lengtho-i (list 1 "two" :three (list 4 5)) q))
|
|
(list 4))
|
|
|
|
(mk-tests-run!)
|