emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why (substring "abc" 0 4) does not return "abc" instead of an error?


From: Pascal J. Bourguignon
Subject: Re: Why (substring "abc" 0 4) does not return "abc" instead of an error?
Date: Mon, 16 Jul 2012 15:10:24 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

Dmitry Gutov <address@hidden> writes:

> Juanma Barranquero <address@hidden> writes:
>
>> On Mon, Jul 16, 2012 at 1:59 AM, Bastien <address@hidden> wrote:
>>
>>> I read (substring "abc" 0 4) as "return the biggest substring
>>> between 0 and 4" -- even if the string does not have 4 characters.
>>
>> "Even if the string does not have 4 characters" is not even suggested
>> in substring's doc.
>
> FWIW, it's common behavior in many other programming languages.

(defun mysubstring (str start end)
  (substring str (max start 0)
                 (if end
                     (min end (length str))
                     (length str))))

and use (mysubstring "abc" 0 4) --> "abc" 
instead of substring.

The point of lisp is to let you define your own language seamlessly.
There's no difference between (mysubstring "abc" 0 4) and (substring
"abc" 0 4), one is not compiled better than the other, or whatever.

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
A bad day in () is better than a good day in {}.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]