hoon: add pin and awl arms to test and trim subaxes

This commit is contained in:
Edward Amsden 2023-05-16 18:09:09 -05:00
parent 2fe6cac423
commit cce2b5c9ed

View File

@ -226,6 +226,33 @@
* (add (mod b 2) (mul $(b (div b 2)) 2))
==
::
++ pin
~/ %pin
:: sub axis test
::
:: checks whether {b} addresses a subtree of the tree addressed by {a}.
|= [a=@ b=@]
?< =(0 a)
?< =(0 b)
|- ^- ?
?: =(a 1) %&
?: =((cap a) (cap b))
$(a (mas a), b (mas b))
%|
++ awl
~/ %awl
:: axis after axis
:: computes the remainder of axis {b} when navigating to {a}.
:: (crashes if not `(pin a b)`)
|= [a=@ b=@]
?< =(0 a)
?< =(0 b)
|- ^- @
?: =(a 1) b
?: =((cap a) (cap b))
$(a (mas a), b (mas b))
!!
::
:: # %containers
::
:: the most basic of data types