Hi!

Mark H Weaver <m...@netris.org> skribis:
> For example, look at what Guile 1.8 does:
>
>   guile> (let loop ((i 0))
>            (define y "hello")
>            (display y)
>            (newline)
>            (string-set! y i #\a)
>            (loop (1+ i)))
>   hello
>   aello
>   aallo
>   aaalo
>   aaaao
>   aaaaa
>   <then an error>
>
> So you see, even in Guile 1.8, (define y "hello") didn't do what you
> thought it did.  It didn't fill y with the string "hello".  You were
> actually changing the program text itself, and that was a serious
> mistake.

Indeed, funny example!

Ludo’.


Reply via email to