• A tail-recursive version written in OCaml that should not reach stack limits easily. (Not an expert in OCaml, so this might be stupid. But I tried it with 10000 iterations, and it worked without any issues.)

    let gnu =
        let rec aux s = function
        | 0 -> s
        | n -> aux (s^" is Not Unix") (n-1)
    in aux "GNU";;