| best for | ackermann | interactive sum | ? | fibonacci | factorial | ? | ? | fibonacci | |||||||||||||||||||
| class | lexicographic repetition | conditional repetition | primitive repetition | unconditional repetition | |||||||||||||||||||||||
| command | urn lexicographic-recursion | recursion [0] | nat_iter + higher-order functions [0] | while with statement on condition | do | c's for | while without statement on condition | do while | urn alambdaxcond | condnestrec | times 1 | nat_iter | urn times binding 2 | primrec | pascal's for 3 | step 4 | foreach | fold | anonymous recursion | loop-recur | named recursion | goto | simultaneous assignment | trisquel | parabola | web | interpreter |
| language | |||||||||||||||||||||||||||
| urn racket | yes | no | no | yes | yes | no | no | no | yes | no | no | yes | for | no | exclusive: for in-range | exclusive: for in-range | for | yes | local | no | yes | no | set!-values | no | no | yes | |
| urn racket pro | yes | no | no | yes | yes | no | no | no | yes | no | no | yes | for | yes | exclusive: for in-range | exclusive: for in-range | for | yes | local | no | yes | no | set!-values | no | no | yes | |
| coq | no | yes | yes | no | no | no | no | no | no | no | no | yes | no | nat_rec | no | no | no | fold_left, fold_right | local | no | yes | no | no | yes | yes | yes (no shebang) | |
| ruby | no | no | no | while | no | no | no | modifier while | no | no | times, each | no | times, each | no | upto | unsafe: step | for, set | inject, reduce | local | no | yes | no | yes | yes | yes | yes | |
| joy | no | no | no | no | no | no | stack | stack: repeat | no | stack | no | stack: times | no | stack | no | no | step | stack: fold, fold2 | __ANON_FUNCT | no | yes | no | stack | no | no | yes | |
| javascript [1] | no | no | no | yes | no | yes | no | yes | no | no | no | no | no | no | no | yes (no iota) | reduce | arguments.callee | no | yes | no | yes | yes | js52, js60 | yes | yes | |
| clojure | no | no | no | yes | no | no | no | no | no | no | no | no | dotimes | no | no | no | doseq | fold, reduce | local | yes | yes | no | no | yes | yes | yes | |
| ocaml | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | yes | no | iter, iteri | fold_left, fold_right | local | no | safe | no | no | yes | yes | yes | |
| acl2 | no | yes | no | yes | yes (no shebang) | ||||||||||||||||||||||
| ats | no | yes | no | yes | no | ||||||||||||||||||||||
| agda | no | yes | no | no stdlib | no | ||||||||||||||||||||||
| idris | no | yes | no | no | no | no | no | no | no | no | no | no | no | no | no | no | no | foldl, foldr | local | no | yes | no | no | no | yes | no | |
| urn c | no | no | no | yes | yes | no | yes | no | no | yes | no | no | no | no | no | no | no | yes | yes | yes | no | no | yes | ||||
| urn c pro | no | no | no | yes | yes | no | yes | no | no | yes | no | yes | no | times binding range | no | no | no | yes | yes | yes | no | no | yes | ||||
| bash | no | no | no | yes | no | yes | no | no | no | no | no | no | no | no | no | no | for (seq) | no | local | no | yes | no | no | iso | yes | ||
| perl | no | no | no | yes | yes | no | yes | yes | iso | ||||||||||||||||||
| coffeescript | no | no | no | yes | no | no | no | no | no | no | no | no | no | no | reduce | no | yes | no | yes | yes | yes | ||||||
| c++ | no | no | no | yes | yes | no | yes | no | no | no | no | no | no | no | yes | accumulate, ... | *this | no | yes | yes | no | yes | yes | yes (no libraries) | |||
| c | no | no | no | yes | yes | no | yes | no | no | no | no | no | no | no | no | no | local (gcc) | no | yes | yes | no | yes | yes | yes (no libraries) | |||
| python3.8 | no | no | no | yes (no comma) | no | no | no | no | no | no | no | no | no | no | for (range) | no | no | no | yes | module | yes | iso | yes | yes | |||
| java | no | no | no | yes (no comma) | yes | no | yes | no | no | no | no | no | no | no | yes | no | local | no | yes | no | no | yes | yes | obsolete (gcj) | |||
| fontforge | yes (no comma) | no | glyph in selection | yes | yes | ||||||||||||||||||||||
| go | no | no | no | no | yes | for | no | no | no | no | no | no | no | no | for range | no | no | no | yes | dont enter block | yes | yes | yes | yes | |||
| racket | no | no | no | no | yes | no | no | no | no | no | no | no | for | no | exclusive: for in-range | exclusive: for in-range | for | yes | local | no | yes | no | set!-values | yes | yes | ||
| lua | no | no | no | unsafe: for do | yes | yes | |||||||||||||||||||||
| swiftlang | no | no | no | ? | no | no | ? | repeat while | no | no | no | no | no | no | no | no | for-in | no | no | no | no | no | |||||
| pascal | no | no | no | no | yes | yes | yes | yes | no | ||||||||||||||||||
| haskell | no | no | no | yes | yes | yes (no cpp) | |||||||||||||||||||||
| python | no | no | no | no | no | yes | no | no | no | no | no | no | no | no | for (range) | no | no | no | yes | module | yes | iso | yes | yes | |||
| nodejs | no | no | no | no | yes | ||||||||||||||||||||||
| fortran | ? | ? | unsafe: do | ||||||||||||||||||||||||
| php | no | no | no | no | no | yes | yes | yes | no | no | no | no | no | no | no | no | for (range, no zero elements) | no | local | no | yes | no | yes | yes | |||