Don't use `==` for definitions.
This commit is contained in:
parent
98a3da138e
commit
2c75a0d858
|
|
@ -224,43 +224,43 @@ def yin_functions():
|
||||||
|
|
||||||
|
|
||||||
definitions = ('''\
|
definitions = ('''\
|
||||||
? == dup truthy
|
? dup truthy
|
||||||
*fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons
|
*fraction [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons
|
||||||
*fraction0 == concat [[swap] dip * [*] dip] infra
|
*fraction0 concat [[swap] dip * [*] dip] infra
|
||||||
anamorphism == [pop []] swap [dip swons] genrec
|
anamorphism [pop []] swap [dip swons] genrec
|
||||||
average == [sum 1.0 *] [size] cleave /
|
average [sum 1.0 *] [size] cleave /
|
||||||
binary == nullary [popop] dip
|
binary nullary [popop] dip
|
||||||
cleave == fork [popd] dip
|
cleave fork [popd] dip
|
||||||
codireco == cons dip rest cons
|
codireco cons dip rest cons
|
||||||
dinfrirst == dip infra first
|
dinfrirst dip infra first
|
||||||
unstack == ? [uncons ?] loop pop
|
unstack ? [uncons ?] loop pop
|
||||||
down_to_zero == [0 >] [dup --] while
|
down_to_zero [0 >] [dup --] while
|
||||||
dupdipd == dup dipd
|
dupdipd dup dipd
|
||||||
enstacken == stack [clear] dip
|
enstacken stack [clear] dip
|
||||||
flatten == [] swap [concat] step
|
flatten [] swap [concat] step
|
||||||
fork == [i] app2
|
fork [i] app2
|
||||||
gcd == 1 [tuck modulus dup 0 >] loop pop
|
gcd 1 [tuck modulus dup 0 >] loop pop
|
||||||
ifte == [nullary not] dipd branch
|
ifte [nullary not] dipd branch
|
||||||
ii == [dip] dupdip i
|
ii [dip] dupdip i
|
||||||
least_fraction == dup [gcd] infra [div] concat map
|
least_fraction dup [gcd] infra [div] concat map
|
||||||
make_generator == [codireco] ccons
|
make_generator [codireco] ccons
|
||||||
nullary == [stack] dinfrirst
|
nullary [stack] dinfrirst
|
||||||
of == swap at
|
of swap at
|
||||||
pam == [i] map
|
pam [i] map
|
||||||
tailrec == [i] genrec
|
tailrec [i] genrec
|
||||||
product == 1 swap [*] step
|
product 1 swap [*] step
|
||||||
quoted == [unit] dip
|
quoted [unit] dip
|
||||||
range == [0 <=] [1 - dup] anamorphism
|
range [0 <=] [1 - dup] anamorphism
|
||||||
range_to_zero == unit [down_to_zero] infra
|
range_to_zero unit [down_to_zero] infra
|
||||||
run == [] swap infra
|
run [] swap infra
|
||||||
size == 0 swap [pop ++] step
|
size 0 swap [pop ++] step
|
||||||
sqr == dup mul
|
sqr dup mul
|
||||||
step_zero == 0 roll> step
|
step_zero 0 roll> step
|
||||||
swoncat == swap concat
|
swoncat swap concat
|
||||||
ternary == unary [popop] dip
|
ternary unary [popop] dip
|
||||||
unary == nullary popd
|
unary nullary popd
|
||||||
unquoted == [i] dip
|
unquoted [i] dip
|
||||||
while == swap [nullary] cons dup dipd concat loop
|
while swap [nullary] cons dup dipd concat loop
|
||||||
'''
|
'''
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
|
@ -376,10 +376,7 @@ class DefinitionWrapper(object):
|
||||||
Given some text describing a Joy function definition parse it and
|
Given some text describing a Joy function definition parse it and
|
||||||
return a DefinitionWrapper.
|
return a DefinitionWrapper.
|
||||||
'''
|
'''
|
||||||
name, proper, body_text = (n.strip() for n in defi.partition('=='))
|
return class_(*(n.strip() for n in defi.split(maxsplit=1)))
|
||||||
if not proper:
|
|
||||||
raise ValueError('Definition %r failed' % (defi,))
|
|
||||||
return class_(name, body_text)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def add_definitions(class_, defs, dictionary):
|
def add_definitions(class_, defs, dictionary):
|
||||||
|
|
@ -408,7 +405,11 @@ class DefinitionWrapper(object):
|
||||||
|
|
||||||
|
|
||||||
def _text_to_defs(text):
|
def _text_to_defs(text):
|
||||||
return (line.strip() for line in text.splitlines() if '==' in line)
|
return (
|
||||||
|
line.strip()
|
||||||
|
for line in text.splitlines()
|
||||||
|
if not line.startswith('#')
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue