emacs-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] seq.el: add seq-last for symmetry with seq-first


From: Philip Kaludercic
Subject: Re: [PATCH] seq.el: add seq-last for symmetry with seq-first
Date: Tue, 14 Mar 2023 15:26:56 +0000

Matúš Goljer <matus.goljer@gmail.com> writes:

> Sometimes I want to get the last element of sequence and
> (seq-elt seq (1- (seq-length seq)) adds too much noise.

Wouldn't it make sense to add a specialised implementation for lists, to
avoid recusing the list twice.

A thing I notice is that seq-first is not consistent on the way it
behaves if the sequence is empty.

        (seq-first '()) ;=> nil

while

        (seq-first [])

raises an error.  seq-last would have the same issue for vectors, except
that it would attempt to index the position -1, which might be
confusing?

> This patch adds a simple wrapper around that.
> -- 
> Best regards,
>   Matúš Goljer
>
> From f3ef1a282d0aa1f4c2a21c946845516d0caf8c31 Mon Sep 17 00:00:00 2001
> From: Matus Goljer <matus.goljer@gmail.com>
> Date: Tue, 14 Mar 2023 13:46:10 +0100
> Subject: [PATCH] seq.el: add seq-last for symmetry with seq-first
>
> ---
>  lisp/emacs-lisp/seq.el | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
> index 6917c541f2e..2571b558c95 100644
> --- a/lisp/emacs-lisp/seq.el
> +++ b/lisp/emacs-lisp/seq.el
> @@ -124,6 +124,10 @@ name to be bound to the rest of SEQUENCE."
>    "Return the first element of SEQUENCE."
>    (seq-elt sequence 0))
>  
> +(defun seq-last (sequence)
> +  "Return the last element of SEQUENCE."
> +  (seq-elt sequence (1- (seq-length sequence))))
> +
>  (defun seq-rest (sequence)
>    "Return SEQUENCE with its first element removed."
>    (seq-drop sequence 1))



reply via email to

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