X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;ds=sidebyside;f=scheme.4th;h=3c5c6a95c90f863d54bc4e351c4e88e79a127acc;hb=13e038552e84df8c480b101b09e4c5a650bad2d0;hp=3c4744e59f464c61d47dfe44ab6ce61899b4f421;hpb=41a8ffdeecfc1bf848f83a9ccbf97f73a2e8e739;p=scheme.forth.jl.git diff --git a/scheme.4th b/scheme.4th index 3c4744e..3c5c6a9 100644 --- a/scheme.4th +++ b/scheme.4th @@ -166,18 +166,15 @@ false gc-enabled ! : gc-mark-obj ( obj -- ) - pairlike? if - pairlike-marked? if 2drop exit then - - mark-pairlike + pairlike? invert if 2drop exit then + pairlike-marked? if 2drop exit then - 2dup + mark-pairlike - car recurse - cdr recurse - else - 2drop - then + drop pair-type 2dup + + car recurse + cdr recurse ; : gc-sweep