The tail! marker gives you compile time checking that you haven't broken a tail call!
(fn process-all [data i] (case (process (. data i)) :done (print "Process completed.") :next (process-all data (+ i 1)) :skip (do (tail! (process-all data (+ i 2))) ;; ^^^^^ Compile error: Must be in tail position (print "Skipped" (+ i 1)))))
=> More informations about this toot | View the thread | More toots from Olical@mastodon.social
text/gemini
This content has been proxied by September (3851b).