(subseq "hello" 0 -1) "hello"
(subseq "hello" 0 -1) "hell"
"hello"[:-1] "hell"
-----
"ruby"[0 .. -1] #=> "ruby" "ruby"[0 ... -1] #=> "rub"
> "hello"[-3..-1] "llo"
> (subseq "hello" -4) "ello"
(subseq "hello" 0 'end) "hello" (subseq "hello" 0 -1) "hell"
> (subseq "foobar" 2 -2) "oba"
(def subseq (seq start (o end (len seq))) ; (if (< end 0) (= end (+ (len seq) end))) (if (isa seq 'string) (let s2 (newstring (- end start)) (for i 0 (- end start 1) (= (s2 i) (seq (+ start i)))) s2) (firstn (- end start) (nthcdr start seq))))