diff --git a/docs/Replacing.html b/docs/Replacing.html index 657674b..3bdad9b 100644 --- a/docs/Replacing.html +++ b/docs/Replacing.html @@ -11775,7 +11775,8 @@ div#notebook {
For now, there is no way to define new functions from within the Joy language. All functions (and the interpreter) all accept and return a dictionary parameter (in addition to the stack and expression) so that we can implement e.g. a function that adds new functions to the dictionary. However, there's no function that does that. Adding a new function to the dictionary is a meta-interpreter action, you have to do it in Python, not Joy.
+x to Generate Values","Hylomorphism","Thun: Joy in Python","Newton\u2019s method","No Updates","Treating Trees I: Ordered Binary Trees","Quadratic formula","Replacing Functions in the Dictionary","Treating Trees","Treating Trees II: treestep","Traversing Datastructures with Zippers","Essays about Programming in Joy","Parsing Text into Joy Expressions","Tracing Joy Execution","Stack or Quote or Sequence or List\u2026"],titleterms:{"1st":[],"2nd":[],"3rd":[],"4th":[],"5th":[],"6th":[],"case":[9,11,14],"final":[],"function":[2,3,7,8,9,11,12,13,14,15],"long":13,"new":11,"void":2,"while":2,Adding:[11,14],One:[6,11],The:[5,7,8,11,14,15],There:8,Use:14,Using:6,With:15,about:17,abov:7,add:[2,11,14],adding:[11,14],address:16,advent:[],all:[],altern:15,ana:7,analysi:5,anamorph:[2,7],app1:2,app2:2,app3:2,appendix:[7,11],approxim:9,automat:14,averag:2,base:[9,11,14],befor:[],better:7,binari:[2,11,15],block:[],both:11,branch:[2,11],breakdown:[],btree:14,can:[11,14],cata:7,catamorph:7,categor:4,chatter:2,check:12,child:[11,14],choic:2,cleanup:12,clear:2,cleav:2,cmp:[11,14],code:[8,11],combin:[2,7,11,14],compar:[11,14],comparison:2,compil:6,comput:9,con:[2,14],concat:2,consecut:9,continu:8,count:[],crap:14,current:[11,14],data:14,datastructur:[8,11,14,16],decemb:[],defin:[11,12,14,15],definit:12,delet:[11,14],deriv:[7,12,14,15],determin:16,develop:5,dialect:0,dictionari:13,dip:[2,16],dipd:2,dipdd:2,direco:6,disenstacken:2,div:2,document:0,doe:[11,14],down:[],down_to_zero:2,drive:[],drop:2,dup:2,dupd:2,dupdip:2,els:[11,14],empti:[11,14],enstacken:2,equal:[11,14],essai:17,euler:[5,6],eval:8,even:6,exampl:[2,8,11,15],execut:19,express:[8,18],extract:[14,15],factor:[7,14],factori:7,fibonacci:6,filter:5,find:[7,9,11],first:[2,5],five:6,flatten:2,flexibl:15,floordiv:2,form:[7,14],formula:12,found:11,four:7,from:7,ftw:[],fun:7,further:5,fusion:7,gcd:2,gener:[5,6,7,9,14],genrec:2,get:[11,14,15],getitem:2,given:[14,15],gotten:[],greater:[11,14],group:2,have:[11,15],help:2,highest:11,host:0,how:[5,6],hylo:7,hylomorph:7,ift:2,increment:[],index:[],indic:0,inform:0,infra:[2,14,16],integ:5,interest:6,interlud:[11,14],intern:18,interpret:[1,8],isn:14,item:16,iter:[5,11,14],joi:[0,1,3,5,7,8,16,17,18,19,20],just:[5,14],kei:[11,14],languag:0,law:7,least_fract:2,left:[11,14],less:[11,14],let:5,librari:[3,8],like:[11,14],list:[2,14,20],literari:8,littl:5,logic:2,loop:[2,8],lower:11,lshift:2,make:[6,9,14],mani:5,map:2,math:2,method:9,min:2,miscellan:[2,14],mod:2,modif:14,modulu:2,more:11,most:11,mul:2,multipl:[5,6],must:[11,14],name:[12,14],nativ:12,neg:2,newton:9,next:9,node:[11,14],non:11,now:[11,14],nullari:2,number:7,offset:[],one:8,onli:8,order:[11,14,15],osdn:0,our:[11,14],out:[],over:2,pack:5,pam:2,paper:[],para:7,paramet:14,parameter:[11,14,15],paramorph:7,pars:[2,18],parser:[8,18],pass:8,path:16,pattern:7,per:[11,14],piec:[],pop:2,popd:2,popop:2,pow:2,power:6,preambl:7,pred:2,predic:[5,9,11,14,15],pretty_print:19,primrec:2,print:8,problem:[5,6],process:[11,14],product:2,program:[4,5,12,14,15,17],project:[0,5,6],pure:8,put:[11,14,15],python:[8,13],quadrat:12,quick:0,quot:[2,20],rang:[2,5],range_to_zero:2,rank:[],read:8,recal:[],recur:[9,11,14],recurs:[7,11,14,15],redefin:[11,14,15],refactor:[5,11,14],refer:3,regular:8,reimplement:15,rem:2,remaind:2,remov:2,render:5,repeat:[],repl:8,replac:[11,13],rescu:[],reset:6,rest:[2,7],revers:2,right:[11,14,16],rightmost:11,roll:2,rolldown:2,rollup:2,root:[],rshift:2,run:[2,6],sat:[],second:2,select:2,sequenc:[6,20],set:[9,11,14],shorter:13,should:8,shunt:2,simplest:5,simplifi:12,size:[2,13],slight:14,sourc:11,sqr:2,sqrt:2,squar:[],stack:[2,8,20],start:0,state:[],step:[2,7,15],straightforward:12,structur:11,style:8,sub:[2,11],succ:2,sum:[2,5],swaack:2,swap:2,swon:2,swoncat:2,symbol:[7,8],sympi:[],tabl:0,tail:7,take:2,term:[5,6,14,15],ternari:2,text:18,than:[7,11,14],thi:[11,14],think:[],third:2,three:6,thun:[0,8],time:[2,6],todo:14,togeth:[11,14,15],toi:14,token:8,toler:9,trace:[13,19],traceprint:8,travers:[11,14,15,16],treat:[11,14,15],tree:[11,14,15,16],treegrind:15,treestep:[14,15],triangular:7,tricki:[],truediv:2,truthi:2,tuck:2,two:6,type:14,unari:2,uncon:2,unfinish:7,unit:2,unnecessari:5,unquot:2,unstack:2,updat:10,use:7,usual:7,util:[19,20],valu:[6,11,14],variabl:12,variat:6,version:[5,11,13,14],view:8,want:[],within:9,word:2,write:12,xor:2,zero:6,zip:2,zipper:16}})
\ No newline at end of file
+Search.setIndex({docnames:["index","joy","lib","library","notebooks/Categorical","notebooks/Developing","notebooks/Generator_Programs","notebooks/Intro","notebooks/Newton-Raphson","notebooks/NoUpdates","notebooks/Ordered_Binary_Trees","notebooks/Quadratic","notebooks/Replacing","notebooks/Treestep","notebooks/Zipper","notebooks/index","parser","pretty","stack"],envversion:52,filenames:["index.rst","joy.rst","lib.rst","library.rst","notebooks/Categorical.rst","notebooks/Developing.rst","notebooks/Generator_Programs.rst","notebooks/Intro.rst","notebooks/Newton-Raphson.rst","notebooks/NoUpdates.rst","notebooks/Ordered_Binary_Trees.rst","notebooks/Quadratic.rst","notebooks/Replacing.rst","notebooks/Treestep.rst","notebooks/Zipper.rst","notebooks/index.rst","parser.rst","pretty.rst","stack.rst"],objects:{"joy.joy":{joy:[1,1,1,""],repl:[1,1,1,""],run:[1,1,1,""]},"joy.library":{"void":[3,1,1,""],BinaryBuiltinWrapper:[3,1,1,""],DefinitionWrapper:[3,2,1,""],FunctionWrapper:[3,1,1,""],SimpleFunctionWrapper:[3,1,1,""],UnaryBuiltinWrapper:[3,1,1,""],add_aliases:[3,1,1,""],app1:[3,1,1,""],app2:[3,1,1,""],app3:[3,1,1,""],b:[3,1,1,""],branch:[3,1,1,""],choice:[3,1,1,""],clear:[3,1,1,""],cmp_:[3,1,1,""],concat:[3,1,1,""],cond:[3,1,1,""],cons:[3,1,1,""],dip:[3,1,1,""],dipd:[3,1,1,""],dipdd:[3,1,1,""],divmod_:[3,1,1,""],drop:[3,1,1,""],dup:[3,1,1,""],dupd:[3,1,1,""],dupdip:[3,1,1,""],first:[3,1,1,""],floor:[3,1,1,""],genrec:[3,1,1,""],getitem:[3,1,1,""],help_:[3,1,1,""],i:[3,1,1,""],id_:[3,1,1,""],ifte:[3,1,1,""],infra:[3,1,1,""],initialize:[3,1,1,""],inscribe:[3,1,1,""],loop:[3,1,1,""],map_:[3,1,1,""],max_:[3,1,1,""],min_:[3,1,1,""],over:[3,1,1,""],parse:[3,1,1,""],pm:[3,1,1,""],pop:[3,1,1,""],popd:[3,1,1,""],popdd:[3,1,1,""],popop:[3,1,1,""],pred:[3,1,1,""],remove:[3,1,1,""],rest:[3,1,1,""],reverse:[3,1,1,""],rolldown:[3,1,1,""],rollup:[3,1,1,""],select:[3,1,1,""],sharing:[3,1,1,""],shunt:[3,1,1,""],sort_:[3,1,1,""],sqrt:[3,1,1,""],stack_:[3,1,1,""],step:[3,1,1,""],succ:[3,1,1,""],sum_:[3,1,1,""],swaack:[3,1,1,""],swap:[3,1,1,""],take:[3,1,1,""],times:[3,1,1,""],tuck:[3,1,1,""],uncons:[3,1,1,""],unique:[3,1,1,""],unstack:[3,1,1,""],warranty:[3,1,1,""],words:[3,1,1,""],x:[3,1,1,""],zip_:[3,1,1,""]},"joy.library.DefinitionWrapper":{add_def:[3,3,1,""],add_definitions:[3,3,1,""],parse_definition:[3,3,1,""]},"joy.parser":{ParseError:[16,4,1,""],Symbol:[16,2,1,""],text_to_expression:[16,1,1,""]},"joy.utils":{pretty_print:[17,0,0,"-"],stack:[18,0,0,"-"]},"joy.utils.pretty_print":{TracePrinter:[17,2,1,""]},"joy.utils.pretty_print.TracePrinter":{go:[17,5,1,""],viewer:[17,5,1,""]},"joy.utils.stack":{expression_to_string:[18,1,1,""],iter_stack:[18,1,1,""],list_to_stack:[18,1,1,""],pick:[18,1,1,""],pushback:[18,1,1,""],stack_to_string:[18,1,1,""]},joy:{joy:[1,0,0,"-"],library:[3,0,0,"-"],parser:[16,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","classmethod","Python class method"],"4":["py","exception","Python exception"],"5":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:classmethod","4":"py:exception","5":"py:method"},terms:{"0b11100111011011":5,"4ac":11,"5bkei":10,"\u03b5":8,"abstract":[7,10],"boolean":[2,3,7,10],"break":7,"byte":5,"case":[2,3,13,18],"class":[3,7,16,17,18],"default":[3,6,10,18],"export":[3,16],"final":[2,10],"float":[3,7,14,16],"function":[0,1,4,5,6,9,14,15,16,17,18],"g\u00e9rard":14,"import":[2,5,6,8,10,11,12,13,14],"int":[6,7,14,16,18],"long":[10,15],"new":[2,3,6,7,9,12],"public":9,"return":[1,3,5,7,10,11,12,13,16,17,18],"short":11,"static":[2,9],"switch":2,"throw":10,"true":[2,3,5],"try":[6,8,13],"void":[0,3],"while":[3,7,10,16,18],Adding:[7,12,15],And:[5,6,8,10,14,18],But:[0,4,5,6,7,10,12],CPS:7,For:[2,3,10,12,15,18],Has:3,Its:3,One:[2,7,15],TOS:[2,3],That:[5,10],The:[0,1,2,3,4,6,8,9,11,14,15,16,18],Then:[2,3,10,11],There:[13,18],These:[15,18],Use:[3,8],Using:[0,8,10,15],With:[8,15],__str__:17,_tree_add_:10,_tree_add_e:10,_tree_add_p:10,_tree_add_r:10,_tree_add_t:10,_tree_delete_:10,_tree_delete_clear_stuff:10,_tree_delete_del:10,_tree_delete_r0:10,_tree_delete_r1:10,_tree_delete_rightmost:10,_tree_delete_w:10,_tree_get_:10,_tree_get_p:10,_tree_get_r:10,_tree_get_t:10,_tree_iter_order_curr:10,_tree_iter_order_left:10,_tree_iter_order_r:10,_tree_iter_order_right:10,_tree_t:10,_treestep_0:13,_treestep_1:13,_within_b:8,_within_p:8,_within_r:8,abbrevi:13,abl:11,about:[0,7,10,14,18],abov:[0,5,8,10,11],abs:8,absolut:7,accept:[1,2,3,5,6,7,10,12,13,14],accomplish:11,accordingli:10,accumul:5,action:[7,12,14],actual:[2,5,7,10],adapt:15,add:[3,5,6,7,11,12,17],add_alias:3,add_def:3,add_definit:[3,10,13],added:[4,10],adding:9,addit:[0,2,3,5,7,12,13],address:15,adjust:10,after:[5,6,7],afterward:7,again:[2,3,5,7,10],aggreg:[3,14],aka:[7,14],albrecht:0,algorithm:7,alia:3,alias:[3,7],align:[7,17],all:[3,5,6,7,10,12,13,17],allow:[9,10],almost:10,along:7,alphabet:3,alreadi:[8,11,12,14],also:[0,5,7,10,18],altern:4,although:[4,10],altogeth:6,alwai:[5,9],amort:10,analysi:[4,15],anamorph:7,ani:[4,5,7,9,10,14,16],annual:7,anonym:10,anoth:[10,18],anyth:[2,3,7],api:9,app1:3,app2:[3,7,11,12],app3:3,app:7,appear:[2,4,5,10],appendix:15,appli:[2,3,5,6,10],applic:6,approach:5,approxim:15,archiv:0,aren:14,arg:[2,3],argument:[2,3,7,8,17,18],arithmet:2,ariti:2,around:[5,18],arrang:13,arriv:[6,13],articl:[0,4,6],ask:[4,6],aspect:0,assign:18,associ:10,assum:8,asterisk:13,attack:7,attempt:[0,1],attribut:3,automat:4,auxiliari:13,avail:0,averag:[7,12],avoid:10,awai:10,awar:2,awkward:10,azur:15,back:10,backward:[9,10,13],bag:7,base:[0,2,3,9,13],basic:[1,2,3,7,10],becaus:[2,3,7,10,13,14,18],becom:[10,11,13,18],been:[8,9,10,11,14],befor:[6,7,10],begin:[10,13],behavior:[9,13],behaviour:[0,1],being:0,below:[2,3,5,6,10,14],bespok:7,best:0,better:[5,10],between:[0,5],beyond:6,biannual:7,binari:[0,6,7,15],binary_search_tre:10,binarybuiltinwrapp:3,bind:7,bingo:14,bit:[5,6,10],block:5,bodi:[2,7,10],body_text:3,borrow:7,both:[2,5,7,11,12,18],bottom:6,bracket:[7,16],branch:[3,5,6],breakpoint:7,bring:[5,7],btree:[10,13],buck:10,bug:[0,7],build:[6,7,14,18],built:11,bundl:[2,3],burgeon:7,calculu:4,call:[2,7,9,10,17,18],caller:10,can:[0,2,3,4,5,6,7,8,9,11,12,13,14,15,18],captur:7,card:7,care:[5,18],carefulli:14,carri:[6,10],cartesian:4,categor:[0,11,15],categori:4,ccc:4,ccon:10,certain:[7,18],certainli:10,chain:3,chang:[2,9,10,14],charact:14,chat:7,chatter:0,check:[6,8],child:13,choic:3,choos:9,cinf:10,circuit:4,cite_not:10,classmethod:3,claus:3,clear:[3,5,7],clear_stuff:10,cleav:[7,11,12],close:[0,1,4],clunki:5,cmp:[3,13,15],cmp_:3,code:[0,1,4,15],codireco:[6,8],collect:[4,6,7],combin:[0,3,5,6,7,8,13,14,15],come:[7,10],command:[7,10,11],common:[2,5],compar:[3,4],comparison:[0,10],compel:4,compil:[2,4,7,10,12,15],complet:4,complex:[3,14],compound:10,comput:[2,4,5,7,11],con:[3,5,6,7,8,10,11,13,14,18],conal:4,concat:[3,6,7,13],concaten:0,concatin:[0,3,18],concurr:2,cond:[3,10],condit:[3,7],conflict:10,consecut:15,consid:[5,6,10,13,14],consist:[2,6,7,13],constant:10,contain:[0,2,3,6,7],context:2,conting:10,continu:[0,14],control:7,conveni:4,convert:[12,13,16,18],cool:10,copi:[2,3,5,10,13,15],copyright:7,correspond:4,could:[2,4,5,7,9,10,14],count:3,counter:5,coupl:13,cours:[5,10],crack:10,crash:10,creat:[0,2,3,5,8,10],crude:[10,16],current:[2,3,7,13,14,17],custom:9,cycl:[5,6],cython:7,dai:7,data:[2,3],datastructur:[0,2,15,16,18],datatyp:18,ddididi:14,deal:[0,10],decid:10,decor:3,decrement:3,deduc:5,deeper:0,deepli:4,def:[3,7,11,12,18],defi:3,defin:[2,3,4,5,6,7,8,9,12,14,15],definit:[2,3,5,6,7,9,10,13,15],definitionwrapp:[3,10,13],deleg:7,delet:15,demonstr:4,depend:[3,10],deposit:13,der:10,deriv:[2,3,5,7,8,10,15],describ:[3,4,10,13,16],descript:[5,7],design:[2,3,10],desir:[7,13],destruct:10,detail:[7,10],detect:[6,10],determin:15,develop:[0,6,7,15],diagram:5,dialect:1,dict:[1,3],dictionari:[0,1,3,7,11,15],differ:[0,4,5,8,10,11,18],differenti:4,dig:[10,14],digit:5,dinfrirst:7,dip:[3,5,6,7,8,10,11,12,13,15],dipd:[3,6,7,10,11,14],dipdd:[3,10],direco:15,direct:7,directli:[5,13,18],disappear:2,discard:[3,6,8,10],disciplin:10,disenstacken:7,disk:7,displac:2,ditch:10,div:[3,7],dive:13,divis:10,divmod:3,divmod_:3,doc:[2,3,7],document:[15,16,18],doe:[0,1,4,6,7,12,15,17],doesn:[5,9,10,13,18],doing:[4,5,7,14],domain:4,don:[5,7,10],done:[2,5,7,9,11],door:7,dot:17,doubl:[5,7],down:[2,3,8,14],down_to_zero:7,dozen:7,draft:[4,9],dream:7,drive:[6,8],driven:5,driver:6,drop:[3,10],dudipd:7,dup:[3,5,6,7,8,10,11,14,18],dupd:3,dupdip:[3,5,10,11],duplic:[3,10],durat:2,dure:2,each:[2,3,4,5,7,12,13,17],easi:[0,10,13,14],easier:[3,10],easili:4,edit:15,effect:[2,3,7,14],effici:[6,12,14],either:[1,2,3,10],eleg:[7,10,11],element:[2,3],elliott:4,els:[2,3],embed:[4,10,14],empti:[3,7,13,18],encapsul:7,enclos:7,encod:6,end:[5,10,13,18],endless:6,enforc:[2,7],engend:7,enough:[7,11,17],enstacken:[6,7],enter:7,entir:18,entri:[3,14,17],epsilon:8,equal:[5,13,18],equat:[7,8],ergo:10,err:10,error:[7,16],essai:0,etc:[3,13,14,16],euler:15,eval:0,evalu:[1,2,3,7,8,10,11,12,13],eventu:11,everi:6,everyth:[3,10],evolv:9,exampl:[0,3,5,15,16,18],exce:6,except:[7,10,16],execut:[0,1,2,3,7,12,13,14,18],exercis:10,exist:[4,10],expand:10,expect:[2,3,13,18],experi:[7,13],explan:7,explor:7,express:[0,1,2,3,4,10,12,14,17,18],expression_to_str:18,extra:[5,6],extract:[10,15],extrem:7,extrememli:7,facet:0,facil:7,fact:16,factor:[2,5,7,10],fail:[2,3,10,16],fals:[2,3,5],far:[8,10],fascin:0,fear:10,few:[5,7,8],fewer:[3,7],fib:6,fib_gen:6,fibonacci:15,figur:[2,3,10],filter:10,fin:5,find:[2,3,5,6,13,15],finder:8,fine:[0,5,10],finish:11,first:[3,6,7,8,10,11,12,13,14,15],first_two:10,fit:[5,7,11],five:[5,7,15],fix:[2,3],flatten:[7,13],flexibl:15,floor:3,floordiv:5,flow:7,follow:[0,2,3,7,9,13,14],foo:[7,9,10],foo_ii:9,form:[2,3,4,5,6,13,18],forman:7,format:[15,17],formula:[0,5,15],forth:7,forum:0,found:7,four:[2,3,5,6,7,10],fourteen:5,fourth:[2,3,10],fractal:7,fraction0:7,fraction:[2,7],framework:7,free:[4,7,10],freeli:2,from:[0,1,2,3,5,6,7,8,10,11,12,13,14,15,18],front:[2,3],full:5,functionwrapp:3,funtion:10,further:[8,15],futur:11,garbag:7,gari:10,gcd:7,gener:[0,2,3,4,15,18],genrec:[3,7,10,13],geometr:5,get:[2,4,5,6,7,15],getitem:3,getrecursionlimit:18,getsourc:7,ghc:4,give:[4,5,10,13,18],given:[2,3,5,6,8,10,14,15],glue:7,going:[10,13,14],good:[5,10],grab:3,grammar:16,grand:7,great:[0,7,15],greater:18,group:0,gsra:8,guard:10,had:[5,14],haiku:7,half:[5,14],hand:[7,11,12,15],handi:8,handl:[10,18],happen:7,hard:14,hardwar:4,has:[0,2,6,7,8,9,10,11,14,18],haskel:4,have:[2,3,5,6,7,8,9,12,14,15,18],head:18,help:[7,10],help_:3,helper:3,herd:7,here:[5,6,10,13,14],hide:10,higher:[7,10],highli:7,histori:17,hmm:10,hoist:3,hold:5,hood:10,hope:[0,5,7,15],host:15,how:[0,4,8,10,14,15],howev:12,html:[2,3,6,11,15],http:10,huet:14,huge:10,hugh:[8,13],human:7,hypothet:2,id_:3,idea:[4,5,7],ident:3,if_not_empti:10,ift:[3,10,13],ignor:[3,10],imagin:14,imit:13,immut:[7,10],implement:[0,1,2,3,4,7,9,10,11,12],implicit:7,includ:[4,10,13],inclus:5,incom:18,incompat:9,increas:5,increment:[3,4,5,9],index:[0,7,18],indexerror:18,indic:13,inform:3,infra:[3,6,7,10,11,12,13,15],infrastructur:3,initi:[2,3,7,8,10],inlin:10,input:[1,8],inscrib:3,inspect:7,instal:0,instanti:[4,17],instead:[5,6,10,14,18],integ:[2,3,7,13],integr:3,intend:[0,7],interact:[7,15],interest:[0,5,10,15],interlud:15,intern:[0,17,18],interpret:[0,4,9,12,16,17],interrupt:7,interv:[4,5],introduc:9,introduct:0,invari:3,invers:3,ipf:7,isn:[10,14],item:[2,3,7,10,13,15,18],iter:[1,3,7,13,15,18],iter_stack:[12,18],its:[0,2,3,4,5,7,10,13,18],itself:[0,2,7,10],j05cmp:[2,3],job:15,john:[8,13],joi:[2,4,9,10,11,12],joypi:[7,14],jupyt:15,just:[0,2,3,6,7,9,10,13,14],keep:[10,14],kei:[13,15],kevin:0,key_n:10,keyerror:10,kind:[2,4,7,10,13],kleen:13,know:[5,10],known:4,l_kei:10,l_left:10,l_right:10,l_valu:10,lambda:4,languag:[4,7,9,10,11,12],larger:18,largest:3,last:[5,10],lastli:6,later:[7,13],law:2,lazili:8,lcm:5,lead:7,leaf:10,lean:7,learn:0,least:[2,5,18],least_fract:7,leav:5,left:[7,13,14,17,18],length:[3,5,18],less:[5,6,7,18],let:[6,8,10,11,13,14],level:[4,10],librari:[0,12],like:[2,3,5,7,11,13,15,16],line:[3,7,10,17],linear:18,link:0,linux:0,list:[0,3,5,7,8,10,13,14,17],list_to_stack:18,liter:[1,10,13,14,16],littl:[6,10,15],live:15,lkei:13,load:[5,7],locat:2,locu:17,log_2:10,logic:[0,5],longer:10,look:[6,7,8,10],lookup:7,loop:[0,1,3,5],lot:[7,10,11,14],love:5,low:4,lower:5,lowest:10,machin:0,machineri:10,macro:7,made:[0,7,14],mai:2,mail:0,main:[0,3,7,14],mainloop:9,maintain:14,major:9,make:[2,3,4,5,7,10,12,13,14,15],make_gener:8,manfr:[0,2,3,4],mani:[0,7],map:[1,3,5,7,9,13],map_:3,marker:7,mask:[5,6],match:[0,1],materi:0,math:[0,7,8,10],mathemat:7,matter:[5,8,10,13],max_:3,maximum:3,mayb:10,mean:[4,5,7,8,10,13,18],meant:[7,10,11,13],member:[2,3],mental:7,mention:2,mercuri:0,meta:[7,10,12],method:[0,3,7,15,17],midpoint:5,might:[4,6,10],mike:10,million:6,min_:3,minimum:3,minor:10,minu:[3,11],mirror:0,miscellan:0,mix:7,mod:3,model:[4,7],modern:0,modif:6,modifi:[7,10,14],modul:[0,1,3,7,16],modulu:7,month:7,more:[0,3,4,5,6,7,8,11,12,13,16,18],mostli:0,move:10,movement:2,much:[5,6,10],muck:10,mul:[7,11,14,17],multi:3,multipl:15,must:[2,3,5,9,13],name:[1,3,7,9,10,14,15,16,18],natur:[5,6,10],navig:14,neat:10,need:[2,3,5,6,8,9,10],neg:[3,11],nest:[3,7,10,14],network:7,never:9,new_kei:10,new_valu:10,newton:[0,15],next:[5,13],nice:[0,18],niether:2,node:[13,15],node_kei:10,node_valu:10,non:13,none:[1,3],nope:13,notat:[7,10],note:[2,5,8,10,18],notebook:[5,6,7,14,15],notebook_preambl:[2,5,6,8,10,11,12,13,14],noth:[2,10],notic:5,now:[5,6,7,12,13,15],nth:[3,18],nullari:[7,10],number:[1,2,3,5,6,8,18],object:16,observ:5,obviou:6,occur:10,odd:[5,6],off:[2,3,5,6,14],old:[2,12],old_k:10,old_kei:10,old_valu:10,onc:[3,9,10,11],one:[2,3,5,6,10,13,17,18],ones:6,onli:[2,3,5,10,14,18],onto:[1,2,3,7,18],open:7,oper:[3,7,10,18],optim:10,option:[1,7,10,18],order:[0,2,3,7,15,18],org:[0,10],origin:[0,1,2,3,10,14],other:[0,2,3,4,7,10,13,18],otherwis:[3,5,6,10,13],our:[5,6,7,8,13],out:[2,3,4,5,6,7,8,10,14],outcom:13,output:8,outsid:4,over:[3,4,5,6,7,8,10,11,13,15],own:10,pack:18,packag:[0,7],page:[0,10,11,18],pair:[2,3,5,6,10],palidrom:5,palindrom:5,pam:7,paper:[4,7,14],parallel:2,paramet:[1,2,3,12,16,17,18],parameter:15,parenthes:[10,18],pariti:6,pars:[0,3,7],parse_definit:3,parseerror:16,parser:0,part:[2,3,8,11,13],particular:14,pass:[0,10,17],path:15,pattern:[5,13],pe1:[5,6],pe2:6,pearl:14,pend:[3,7,14,17],peopl:15,per:[7,13],perhap:6,period:7,permit:18,persist:10,phase:2,pick:[5,6,18],pickl:7,pictur:10,pip:0,place:[3,5,7],plai:0,plu:[3,11],plug:[6,13],point:[4,7,10],pointless:2,pop:[3,5,6,7,10,11,12,13,18],popd:[3,7,8,10,12],popdd:[3,6,11],popop:[3,5,6,7,8,10,13],posit:[3,5,7],possibilit:10,possibl:[10,13,15],post:7,potenti:3,power:7,pragmat:5,preambl:8,precis:[0,1],pred:3,predic:[2,3,6],prefix:17,preserv:[4,13],pretti:[8,10,11,13,17,18],pretty_print:0,previou:7,prime:8,primit:[2,3,11],primrec:[3,6,7,8],print:[0,1,2,3,17,18],probabl:[6,7,10],problem:[7,15],proc_curr:10,proc_left:10,proc_right:10,proce:5,process:[7,13,17],produc:[5,10,13],product:[6,7],program:[0,2,3,6,7,8,10,14],project:15,prompt:7,proper:[2,3],properti:0,provid:[0,3,4,7],pun:[0,7],pure:0,puriti:7,purpos:7,push:[2,3,7,14,18],pushback:[7,18],put:[1,2,6,7,15,18],pypi:0,python:[0,2,3,10,11,14,15,16,18],quadrat:[0,15],queri:[10,13],query_kei:13,quit:[0,1,13],quot:[0,3,6,7,10,11,13,14,17],quotat:[2,3],quotient:3,r_kei:10,r_left:10,r_right:10,r_valu:10,rais:[10,16,18],rang:7,range_to_zero:7,raphson:8,rather:[5,7,13],ratio:7,reach:[5,6],read:[0,1,5,6,10,14],readabl:12,reader:10,real:10,realiz:[4,10],rearrang:[2,10],reason:[5,7],rebuild:[13,14],rec1:[2,3],rec2:[2,3],recogn:16,record:[7,17],recurs:[2,3,6,7,8,15,18],recus:7,redefin:15,redistribut:[3,7],reduc:2,redund:18,refactor:[7,9],refer:[0,2],regist:2,regular:16,reimplement:15,rel:11,releas:9,remain:[2,3,7,9],remaind:[3,8],remov:[3,10,18],render:15,repeat:5,repeatedli:5,repl:[0,1],replac:[0,2,3,6,13,14,15,18],repositori:0,repres:[2,7,10,16,17],represent:18,reprod:6,requir:18,resembl:7,respect:5,rest:[3,5,6,7,10,14,15,18],rest_two:10,restor:2,result:[1,2,3,5,10,11,13,14],resum:7,retir:2,retri:7,reus:10,revers:[3,5,6,14,18],rewrit:[3,7],rewritten:7,rid:10,right:[6,7,13,15,17,18],rightest:10,rightmost:5,rkei:13,roll:[3,8,10,11,13],rolldown:3,rollup:3,root:[3,8,11],run:[0,1,3,5,7,8,10,13,14],runtimeerror:18,sai:[6,10,13],same:[2,4,5,10,18],sandwich:[2,3],save:[2,5,7],scan:3,scanner:[7,16],scenario:14,scope:[6,10],search:[0,10],second:[3,7,10,13,18],see:[0,6,7,8,9,12,14,17],seem:[0,5,7,13],seen:14,select:3,semant:[2,3,7,9,10],semi:7,send:7,sens:[0,2,5,14],separ:7,sequenc:[0,1,2,3,5,7,10,12,14,15,16],seri:[5,6,10,14],set:[2,3,15],seven:[5,6],sever:[0,4,7],share:[3,7],shelf:2,shift:[5,6],shorter:15,shorthand:10,should:[2,3,5,10],shouldn:7,show:[4,14],shunt:[3,14],side:10,signifi:[7,10],similar:[10,13],simon:7,simpl:[7,18],simplefunctionwrapp:[3,12],simpler:13,simplest:15,simpli:4,simplifi:[5,10,14,15],sinc:[2,5,10,11],singl:[3,6,7,12,16],situ:10,situat:10,six:[5,6,7],sixti:[5,6],size:[7,15],skeptic:7,slight:8,slightli:10,smallest:3,smart:10,softwar:7,solei:2,solut:[5,6],solvabl:7,some:[2,3,6,7,10,13,15,18],somehow:10,someth:[2,9,10],sometim:10,somewher:[10,15],sort:[3,10,11],sort_:3,sourc:[0,1,3,15,16,17,18],space:[5,17],span:5,special:[6,10],specif:[0,4],specifi:10,speed:12,spell:13,sphinx:[15,18],spirit:[0,1,13],sqr:[7,8,11,14],sqrt:[3,8,11],squar:[3,8,16],stack:[0,1,3,5,6,8,10,11,12,13,14,16,17],stack_:3,stack_to_str:18,stage:13,stai:[0,1],stand:4,standard:[7,10],star:13,stare:10,start:[5,6,7,8,10,13],state:7,statement:3,step:[3,5,7,10,11,12,14,15],still:10,stop:10,storag:[5,10],store:5,str:[1,16,17,18],straightforward:[1,6,8,15],stream:5,stretch:10,string:[1,2,3,7,14,16,17,18],structur:[7,13,14,15,18],stuff:10,style:[0,4],sub:9,subclass:7,subject:14,substitut:10,subtract:5,succ:3,success:8,suffici:10,suggest:[4,10],suitabl:[3,4,5],sum:[3,6,7,11,12,13],sum_:3,summand:5,sumtre:13,suppli:[10,16],support:[7,17,18],suspect:2,swaack:[3,11,12,14],swap:[3,5,6,7,8,10,12,13,14],swon:[3,6,7,13,14],swoncat:[6,7,8,13],symbol:[2,3,11,14,16],symmetr:[5,10],sympi:11,syntact:7,syntax:[7,18],sys:18,system:[7,10],tail:[10,18],take:[3,5,7,8,10,11,18],talk:[7,10,18],target:14,tast:4,tbd:7,technic:2,techniqu:[4,14],technolog:2,temporari:14,ten:5,term:[1,2,7,8,15,16,18],termin:[2,3],ternari:7,test:[2,3],text:[0,1,3],text_to_express:[7,16],textual:7,than:[0,3,5,6,7,8,11,13,18],thei:[2,5,6,7,10,14,16,18],them:[2,3,5,6,10,14,15],theori:[2,3],therefor:6,thi:[0,1,2,3,4,5,6,7,8,11,13,14,15,16,17,18],thing:[2,6,10,11,14,16,18],think:[2,5,7,10,13],third:[3,6,7,10],thirti:5,those:[2,3,10,15],though:5,thought:7,thousand:5,thread:2,three:[2,3,5,7,10,13,15],through:[1,5,7,13,14,18],thun:[2,3,4,9],thunder:7,time:[3,5,7,8,10,14],to_set:10,todai:7,todo:[7,16],togeth:[6,7,15],token:16,toler:15,tool:7,top:[2,3,7,17,18],total:5,trace:[0,7,11,14,15,18],traceprint:17,track:14,tracker:0,transform:4,translat:4,travers:[0,15],treasur:0,treat:[0,2,3,15],treatment:6,tree:[0,7,15],treegrind:15,treestep:[0,15],tri:5,trick:5,trobe:0,trove:0,truediv:11,truthi:[3,7],tuck:[3,7],tupl:[3,7,18],turn:[2,3],twice:10,two:[2,3,5,7,8,10,13,14,15,18],type:[1,4,7,10,16,17,18],typic:[2,3],unari:7,unarybuiltinwrapp:3,unbalanc:[10,16],unchang:10,uncon:[3,6,7,10,13,14],under:[2,3,7,10],understand:[0,10],undistinguish:10,undocu:7,unfortun:18,uniqu:[3,10],unit:7,univers:[0,7],unnecessari:15,unpack:[2,3,10,18],unpair:5,unquot:[7,13],unstack:3,until:6,unus:5,unusu:10,updat:[0,15],usag:7,use:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,18],used:[3,4,7,10,14,16,18],useful:0,user:13,uses:[2,5],using:[3,6,10,11,13,14],usual:[0,2],util:[0,12],valu:[0,2,3,5,7,8,12,13,15,18],value_n:10,valueerror:18,variabl:15,variant:10,variat:15,varieti:[4,7],variou:0,vener:18,verbos:4,veri:[0,1,4,7,10,18],versa:2,version:[0,1,2,6,9,11,13,14,15],via:7,vice:2,view:[10,15],viewer:[1,7,9,17],von:[0,2,3,4],wai:[0,2,3,4,5,7,12],want:[2,5,6,8,10],warranti:[3,7],wash:7,wast:7,web:18,websit:[0,5],welcom:7,well:[0,4,7,8,10,16],were:[7,14],what:[2,3,4,7,10,11,13,17],whatev:[2,3,13,18],when:[5,6,7,10,14,16,18],where:[2,3,7,10,15,18],which:[0,1,3,5,7,8,10,13,14,18],whole:[2,3,5,13],whose:6,why:[8,13],wiki:10,wikipedia:[0,10,14],wildli:7,wind:7,within:[7,10,12,15],without:[2,7,10],won:[10,18],word:[0,3,5,7,14],work:[0,3,5,6,7,8,10,13,14,18],worth:5,would:[2,5,6,7,8,10,14,18],wrap:[3,7],write:[4,8,10,13,14,15,18],written:[0,1,8,10,12,18],wrong:2,year:7,yet:[10,14],yield:[2,3,18],you:[0,2,3,5,6,7,9,10,12,13,14,17,18],your:[2,3,7],yourself:[7,10],zero:[3,10,13,16,18],zip:5,zip_:3,zipper:[0,15],zstr:14},titles:["Thun 0.2.0 Documentation","Joy Interpreter","Functions Grouped by, er, Function with Examples","Function Reference","Categorical Programming","Developing a Program in Joy","Using x to Generate Values","Thun: Joy in Python","Newton\u2019s method","No Updates","Treating Trees I: Ordered Binary Trees","Quadratic formula","Replacing Functions in the Dictionary","Treating Trees II: treestep","Traversing Datastructures with Zippers","Essays about Programming in Joy","Parsing Text into Joy Expressions","Tracing Joy Execution","Stack or Quote or Sequence or List\u2026"],titleterms:{"case":[8,10],"function":[2,3,7,8,10,11,12,13],"long":12,"new":10,"void":2,"while":2,Adding:10,One:[6,10],The:[5,7,10,13],There:7,Using:6,With:13,about:15,add:[2,10],adding:10,address:14,altern:13,analysi:5,anamorph:2,app1:2,app2:2,app3:2,appendix:10,approxim:8,averag:2,base:[8,10],binari:[2,10,13],both:10,branch:[2,10],can:10,categor:4,chatter:2,check:11,child:10,choic:2,cleanup:11,clear:2,cleav:2,cmp:10,code:[7,10],combin:[2,10],compar:10,comparison:2,compil:6,comput:8,con:2,concat:2,consecut:8,continu:7,current:10,datastructur:[7,10,14],defin:[10,11,13],definit:11,delet:10,deriv:[11,13],determin:14,develop:5,dialect:0,dictionari:12,dip:[2,14],dipd:2,dipdd:2,direco:6,disenstacken:2,div:2,document:0,doe:10,down_to_zero:2,drop:2,dup:2,dupd:2,dupdip:2,els:10,empti:10,enstacken:2,equal:10,essai:15,euler:[5,6],eval:7,even:6,exampl:[2,7,10,13],execut:17,express:[7,16],extract:13,fibonacci:6,filter:5,find:[8,10],first:[2,5],five:6,flatten:2,flexibl:13,floordiv:2,formula:11,found:10,further:5,gcd:2,gener:[5,6,8],genrec:2,get:[10,13],getitem:2,given:13,greater:10,group:2,have:[10,13],help:2,highest:10,host:0,how:[5,6],ift:2,indic:0,inform:0,infra:[2,14],integ:5,interest:6,interlud:10,intern:16,interpret:[1,7],item:14,iter:[5,10],joi:[0,1,3,5,7,14,15,16,17,18],just:5,kei:10,languag:0,least_fract:2,left:10,less:10,let:5,librari:[3,7],like:10,list:[2,18],literari:7,littl:5,logic:2,loop:[2,7],lower:10,lshift:2,make:[6,8],mani:5,map:2,math:2,method:8,min:2,miscellan:2,mod:2,modulu:2,more:10,most:10,mul:2,multipl:[5,6],must:10,name:11,nativ:11,neg:2,newton:8,next:8,node:10,non:10,now:10,nullari:2,one:7,onli:7,order:[10,13],osdn:0,our:10,over:2,pack:5,pam:2,parameter:[10,13],pars:[2,16],parser:[7,16],pass:7,path:14,per:10,pop:2,popd:2,popop:2,pow:2,power:6,pred:2,predic:[5,8,10,13],pretty_print:17,primrec:2,print:7,problem:[5,6],process:10,product:2,program:[4,5,11,13,15],project:[0,5,6],pure:7,put:[10,13],python:[7,12],quadrat:11,quick:0,quot:[2,18],rang:[2,5],range_to_zero:2,read:7,recur:[8,10],recurs:[10,13],redefin:[10,13],refactor:[5,10],refer:3,regular:7,reimplement:13,rem:2,remaind:2,remov:2,render:5,repl:7,replac:[10,12],reset:6,rest:2,revers:2,right:[10,14],rightmost:10,roll:2,rolldown:2,rollup:2,rshift:2,run:[2,6],second:2,select:2,sequenc:[6,18],set:[8,10],shorter:12,should:7,shunt:2,simplest:5,simplifi:11,size:[2,12],sourc:10,sqr:2,sqrt:2,stack:[2,7,18],start:0,step:[2,13],straightforward:11,structur:10,style:7,sub:[2,10],succ:2,sum:[2,5],swaack:2,swap:2,swon:2,swoncat:2,symbol:7,tabl:0,take:2,term:[5,6,13],ternari:2,text:16,than:10,thi:10,third:2,three:6,thun:[0,7],time:[2,6],togeth:[10,13],token:7,toler:8,trace:[12,17],traceprint:7,travers:[10,13,14],treat:[10,13],tree:[10,13,14],treegrind:13,treestep:13,truediv:2,truthi:2,tuck:2,two:6,unari:2,uncon:2,unit:2,unnecessari:5,unquot:2,unstack:2,updat:9,util:[17,18],valu:[6,10],variabl:11,variat:6,version:[5,10,12],view:7,within:8,word:2,write:11,xor:2,zero:6,zip:2,zipper:14}})
\ No newline at end of file
diff --git a/docs/sphinx_docs/notebooks/Replacing.rst b/docs/sphinx_docs/notebooks/Replacing.rst
index 5ed8d14..966431f 100644
--- a/docs/sphinx_docs/notebooks/Replacing.rst
+++ b/docs/sphinx_docs/notebooks/Replacing.rst
@@ -2,6 +2,14 @@
Replacing Functions in the Dictionary
=====================================
+For now, there is no way to define new functions from within the Joy
+language. All functions (and the interpreter) all accept and return a
+dictionary parameter (in addition to the stack and expression) so that
+we can implement e.g. a function that adds new functions to the
+dictionary. However, there's no function that does that. Adding a new
+function to the dictionary is a meta-interpreter action, you have to do
+it in Python, not Joy.
+
.. code:: ipython2
from notebook_preamble import D, J, V
diff --git a/docs/sphinx_docs/notebooks/Trees.rst b/docs/sphinx_docs/notebooks/Trees.rst
deleted file mode 100644
index 7f87ef4..0000000
--- a/docs/sphinx_docs/notebooks/Trees.rst
+++ /dev/null
@@ -1,1898 +0,0 @@
-
-**************
-Treating Trees
-**************
-
-Although any expression in Joy can be considered to describe a
-`tree