@@ -115,6 +115,7 @@ I truth(O o){
115
115
case TD :R o -> d != 0 ;BK ;
116
116
case TS :case TCB :R o -> s .z != 0 ;BK ;
117
117
case TA :R len (o -> a )!= 0 ;BK ;
118
+ default : R 0 ;
Has conversations. Original line has conversations. 118
119
}
119
120
} // is truthy?
120
121
@@ -236,7 +237,7 @@ V take(){O o;if(len(rst)<2)ex("take needs open array");psh(top(rst),pop(rst->st[
236
237
I isnum (S s ){while (* s ){if (isdigit (* s ++ )== 0 )R 1 ;}R 1 ;}//is string number? (helper func)
237
238
V rdq (ST s ,I u ){S e ,i = rdln ();F d = strtod (i ,& e );if (* e )psh (s ,newoskz (i ));else {DL (i );psh (s ,newod (d ));}if (u )v ['Q' ]= dup (top (s ));} //q,Q
238
239
239
- C pec (C c ){static C em []= "abtnvf" ;S p ; if ( p = strchr (em ,c ))R 0x7 + (p - em );else R c ;} //parse escape code
240
+ C pec (C c ){static C em []= "abtnvf" ;S p = strchr (em ,c ); if ( p )R 0x7 + (p - em );else R c ;} //parse escape code
240
241
241
242
typedef V (* SRTF )(V * ,ST ); //sort function
242
243
V dfsrt (V * v ,ST s ){gnop (s ,ltf ,1 ,1 ,ltcx );} //default sort
@@ -340,7 +341,8 @@ S exc(C c){
340
341
case '{' :pcb = 1 ;pcbb = alc (1 );cbi ++ ;BK ; //being codeblock
341
342
case '[' :psh (rst ,newst (BZ ));BK ; //begin array
342
343
case ']' :if (len (rst )== 1 )ex ("no array to close" );pop (rst );psh (top (rst ),newoa (st ));BK ; //end array
343
- case '(' :if (((O )top (st ))-> t == TA ){opar ();BK ;};case ')' :idc (st ,c );BK ;
344
+ case '(' :if (((O )top (st ))-> t == TA ){opar ();BK ;};idc (st ,c );BK ;
345
+ case ')' :idc (st ,c );BK ;
344
346
case 'H' :case 'I' :case 'M' :exc ('[' );exc (c == 'H' ?'Q' :'i' );if (c == 'M' )exc ('~' );BK ; //macros
345
347
case 'L' :pl = 1 ;BK ; //lambda
346
348
case 'N' :exc ('{' );exc ('}' );BK ; //N macro