++po
Phonetic base
Container core for providing phonetic syllables and name generators for the
Urbit naming system. The two faces, sis
and dex
, are available to the
contained arms.
Source
~/ %po
=+ :- ^= sis :: prefix syllables
'dozmarbinwansamlitsighidfidlissogdirwacsabwissib\
/rigsoldopmodfoglidhopdardorlorhodfolrintogsilmir\
/holpaslacrovlivdalsatlibtabhanticpidtorbolfosdot\
/losdilforpilramtirwintadbicdifrocwidbisdasmidlop\
/rilnardapmolsanlocnovsitnidtipsicropwitnatpanmin\
/ritpodmottamtolsavposnapnopsomfinfonbanmorworsip\
/ronnorbotwicsocwatdolmagpicdavbidbaltimtasmallig\
/sivtagpadsaldivdactansidfabtarmonranniswolmispal\
/lasdismaprabtobrollatlonnodnavfignomnibpagsopral\
/bilhaddocridmocpacravripfaltodtiltinhapmicfanpat\
/taclabmogsimsonpinlomrictapfirhasbosbatpochactid\
/havsaplindibhosdabbitbarracparloddosbortochilmac\
/tomdigfilfasmithobharmighinradmashalraglagfadtop\
/mophabnilnosmilfopfamdatnoldinhatnacrisfotribhoc\
/nimlarfitwalrapsarnalmoslandondanladdovrivbacpol\
/laptalpitnambonrostonfodponsovnocsorlavmatmipfip'
^= dex :: suffix syllables
'zodnecbudwessevpersutletfulpensytdurwepserwylsun\
/rypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnex\
/lunmeplutseppesdelsulpedtemledtulmetwenbynhexfeb\
/pyldulhetmevruttylwydtepbesdexsefwycburderneppur\
/rysrebdennutsubpetrulsynregtydsupsemwynrecmegnet\
/secmulnymtevwebsummutnyxrextebfushepbenmuswyxsym\
/selrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpel\
/syptermebsetdutdegtexsurfeltudnuxruxrenwytnubmed\
/lytdusnebrumtynseglyxpunresredfunrevrefmectedrus\
/bexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermer\
/tenlusnussyltecmexpubrymtucfyllepdebbermughuttun\
/bylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmyl\
/wedducfurfexnulluclennerlexrupnedlecrydlydfenwel\
/nydhusrelrudneshesfetdesretdunlernyrsebhulryllud\
/remlysfynwerrycsugnysnyllyndyndemluxfedsedbecmun\
/lyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes'
|%
++ind:po
Parse suffix
Produces the byte of the right-hand syllable a
.
Accepts
a
is an atom.
Produces
A unit
.
Source
++ ind ~/ %ind
|= a=@tas
=+ b=0
|- ^- (unit @)
?:(=(256 b) ~ ?:(=(a (tod b)) [~ b] $(b +(b))))
Examples
> (ind:po 'zod')
[~ 0]
> (ind:po 'zam')
~
> (ind:po 'del')
[~ 37]
++ins:po
Parse prefix
Produces the byte of the left-hand phonetic syllable a
.
Accepts
a
is an atom.
Produces
A unit
of an atom.
Source
++ ins ~/ %ins
|= a=@tas
=+ b=0
|- ^- (unit @)
?:(=(256 b) ~ ?:(=(a (tos b)) [~ b] $(b +(b))))
Examples
> (ins:po 'mar')
[~ 1]
> (ins:po 'son')
[~ 164]
> (ins:po 'pit')
[~ 242]
> (ins:po 'pok')
~
++tod:po
Fetch suffix
Produces the phonetic suffix syllable from index a
within dex
as an atom.
Accepts
a
is an atom
Produces
An atom.
Source
++ tod ~/ %tod
|=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] dex)))
Examples
> `@t`(tod:po 1)
'nec'
> `@t`(tod:po 98)
'dec'
> `@t`(tod:po 0)
'zod'
> `@t`(tod:po 150)
'ryg'
> `@t`(tod:po 255)
'fes'
> `@t`(tod:po 256)
! exit
++tos:po
Fetch prefix
Produces the phonetic prefix syllable from index a
within sis
as an atom.
Accepts
a
is an atom.
Produces
An atom.
Source
++ tos ~/ %tos
|=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
Examples
> `@t`(tos:po 0)
'doz'
> `@t`(tos:po 120)
'fab'
> `@t`(tos:po 43)
'pid'
> `@t`(tos:po 253)
'mat'