GNU bug report logs - #25129
26.0.50; seq-some function

Previous Next

Package: emacs;

Reported by: Pierre Lorenzon <devel <at> pollock-nageoire.net>

Date: Wed, 7 Dec 2016 08:27:02 UTC

Severity: normal

Found in version 26.0.50

Done: Nicolas Petton <nicolas <at> petton.fr>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Pierre Lorenzon <devel <at> pollock-nageoire.net>
Subject: bug#25129: closed (Re: bug#25129: 26.0.50; seq-some function)
Date: Wed, 07 Dec 2016 12:32:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#25129: 26.0.50; seq-some function

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 25129 <at> debbugs.gnu.org.

-- 
25129: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25129
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Nicolas Petton <nicolas <at> petton.fr>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 25129 <at> debbugs.gnu.org, 25129-done <at> debbugs.gnu.org,
 Pierre Lorenzon <devel <at> pollock-nageoire.net>,
 Tino Calancha <tino.calancha <at> gmail.com>
Subject: Re: bug#25129: 26.0.50; seq-some function
Date: Wed, 07 Dec 2016 13:31:30 +0100
[Message part 3 (text/plain, inline)]
Tino Calancha <tino.calancha <at> gmail.com> writes:

> The first line with the repetition of 'non-nil' sounds a little poetic.
> How about?
>   Return non-nil if PRED is satisfied for at least one element of SEQUENCE.
>    If so, return the first non-nil value returned by PRED.

Is poetic bad? ;-)

I'll apply your version, so I'm closing this issue.

Cheers,
Nico
[signature.asc (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
From: Pierre Lorenzon <devel <at> pollock-nageoire.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.0.50; seq-some function
Date: Wed, 07 Dec 2016 09:09:54 +0100 (CET)
Is documentation in following seq-somme function not ambiguous
? One might believe taht it returns the element and not the
test result as it does. Moreover I suspect even if I did not
verify that it was not so in a previous implementation since I
had no error in my code before using seq-some.


I well understand now that I must use seq-find instead of
seq-some but I think that I will not be the only one being
confused by these functions specifications !

In fact there is a very subtle difference between two
documentation : value not equal element .... But what means
value ? Is it obvious taht it means test result ?


Regards

Pierre
>>>  -- Code 

(cl-defgeneric seq-some (pred sequence)
  "Return the first value for which if (PRED element) is non-nil for in SEQUENCE."
  (catch 'seq--break
    (seq-doseq (elt sequence)
      (let ((result (funcall pred elt)))
        (when result
          (throw 'seq--break result))))
    nil))

(cl-defgeneric seq-find (pred sequence &optional default)
  "Return the first element for which (PRED element) is non-nil in SEQUENCE.
If no element is found, return DEFAULT.

Note that `seq-find' has an ambiguity if the found element is
identical to DEFAULT, as it cannot be known if an element was
found or not."
  (catch 'seq--break
    (seq-doseq (elt sequence)
      (when (funcall pred elt)
        (throw 'seq--break elt)))
    default))

>>>  -- End Code 









In GNU Emacs 26.0.50.1 (x86_64-unknown-linux-gnu)
 of 2016-11-15 built on jabberwocky
Repository revision: db43613307bb05d0f43d2d5649b5bb2f29876cee
Recent messages:
Mark set
Making completion list...
Type "q" in help window to restore its previous buffer, C-M-v to scroll help.
line-move-visual: End of buffer
mouse-2, RET: find function's definition
uncompressing seq.el.gz...done
Note: file is write protected
Unable to find location in file
Mark saved where search started
Making completion list...

Configured using:
 'configure --prefix=/usr --libdir=/usr/lib64 'CC=gcc -m64'
 PKG_CONFIG_PATH=/usr/lib64/pkgconfig'

Configured features:
JPEG SOUND NOTIFY GNUTLS LIBXML2 ZLIB

Important settings:
  value of $LANG: C
  locale-coding-system: nil

Major mode: Emacs-Lisp

Minor modes in effect:
  gpm-mouse-mode: t
  global-ede-mode: t
  ede-minor-mode: t
  desktop-save-mode: t
  global-speechd-speak-mode: t
  speechd-speak-mode: t
  global-speechd-speak-map-mode: t
  speechd-speak-map-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/local/share/emacs/site-lisp/customization/site-start hides /usr/share/emacs/site-lisp/site-start

Features:
(shadow emacsbug sendmail thingatpt eieio-opt
j++-packages-sound-alsa-enumerated
j++-packages-sound-alsa-iec958 j++-packages-sound-alsa-boolean
j++-basic-widgets-synchronized-switch j++-basic-parsers-slot
j++-packages-sound-alsa-two-integer
j++-basic-widgets-synchronized-two-incdec
j++-packages-sound-alsa-integer
j++-basic-widgets-synchronized-incdec
j++-basic-widgets-bar-title
j++-basic-widgets-synchronized-object
j++-packages-sound-alsa-item j++-packages-sound-alsa-amixer
j++-interfaces-pointed j++-packages-sound-alsa-cclient
j++-packages-sound-alsa-client j++-basic-parsers-parser
j++-basic-parsers-utils utils/regexp utils/string
j++-basic-synchronized j++-basic-processes-synchronous
j++-basic-processes-command help-fns radix-tree debug vc-cvs
vc-rcs misearch multi-isearch pp qp mew-varsx mew-unix
inversion make-mode ede/srecode compile comint ansi-color
log-edit easy-mmode message rfc822 mml mml-sec epa derived epg
epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader ring pcvs-util add-log
j++-packages-subsystems-descriptors-creator dired-aux
j++-packages-scmel-results j++-packages-scmel-output
speechd-el-extension t-mouse term/linux vc-dir ewoc ede/dired
semantic/lex-spp pln-w3m mew-w3m w3m regexp-opt doc-view dired
dired-loaddefs image-mode timezone w3m-hist w3m-fb bookmark-w3m
w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc w3m-util
mew-auth mew-config mew-imap2 mew-imap mew-nntp2 mew-nntp
mew-pop mew-smtp mew-ssl mew-ssh mew-net mew-highlight mew-sort
mew-fib mew-ext mew-refile mew-demo mew-attach mew-draft
mew-message mew-thread mew-virtual mew-summary4 mew-summary3
mew-summary2 mew-summary mew-search mew-pick mew-passwd
mew-scan mew-syntax mew-bq mew-smime mew-pgp mew-header
mew-exec mew-mark mew-mime mew-edit mew-decode mew-encode
mew-cache mew-minibuf mew-complete mew-addrbook mew-local
mew-vars3 mew-vars2 mew-vars mew-env mew-mule3 mew-mule
mew-gemacs mew-key mew-func mew-blvs mew-const mew pln-mew
pln-eww url-file url-dired eww mm-url gnus nnheader gnus-util
rmail tool-bar rmail-loaddefs rfc2047 rfc2045 ietf-drums
mail-utils mm-util mail-prsvr url-queue url url-proxy
url-privacy url-history url-cookie url-domsuf mailcap shr svg
xml dom browse-url format-spec url-expand url-util url-methods
url-parse url-vars Tss-TeX-remap tex-style-system tex-site
auto-loads j++-packages-databases-actions
j++-basic-widgets-bar-object
j++-packages-subsystems-descriptors-descriptor
j++-packages-subsystems-descriptors-class
j++-packages-databases-items-item j++-basic-mastered
j++-basic-widgets-open-close-title j++-basic-widgets-title
j++-basic-widgets-open-close-object
j++-packages-subsystems-subsystems
j++-packages-databases-database j++-packages-databases-mutable
j++-interfaces-loadable-basic-logger
j++-interfaces-basic-logger
j++-interfaces-loadable-basic-lists-pointed
j++-interfaces-basic-lists-pointed
j++-basic-widgets-lists-pointed j++-basic-lists-pointed
j++-basic-creator j++-interfaces-loadable-basic-lists-list
j++-interfaces-basic-lists-list j++-basic-widgets-lists-list
j++-basic-lists-list j++-basic-mapable j++-basic-sortable
j++-project j++-packages-project-project j++-basic-files-file
edext-project-latex edext-project-project edext-utils-vc vc-svn
vc vc-dispatcher edext-target-exercise edext-target-history
edext-target-student edext-target-latex edext edext-automake
edext-srecode semantic/edit srecode/srt-mode semantic/analyze
semantic/sort semantic/scope semantic/analyze/fcn semantic/db
semantic/format srecode/template srecode/srt-wy semantic/wisent
semantic/wisent/wisent semantic/ctxt edext-compat pln-ede
srecode/insert srecode/filters srecode/args srecode/find
srecode/map srecode/ctxt semantic/tag-ls semantic/find
srecode/compile srecode/dictionary srecode/table srecode
semantic/util-modes semantic/util semantic semantic/tag
semantic/lex semantic/fw mode-local find-func ede/proj-elisp
ede/pconf ede/proj-misc ede/proj-shared ede/proj-prog ede/pmake
ede/proj-obj ede/proj ede/make ede/proj-comp ede/autoconf-edit
autoconf autoconf-mode pln-auctex pln-customization
ede/speedbar ede/files ede ede/detect ede/base ede/auto
ede/source eieio-speedbar speedbar sb-image ezimage image
dframe cedet desktop frameset cus-start cus-load time-date
j++-packages-scmel-efm-parameters
j++-packages-scmel-efm-connection network-stream puny nsm
subr-x auth-source password-cache starttls tls gnutls
j++-packages-scmel-efm-driver j++-packages-scmel-efm-efm
j++-packages-scmel-monitor j++-packages-scmel-scmel
j++-basic-logger j++-basic-processes-network-filtered
j++-basic-processes-filtered j++-basic-processes-put-and-get
j++-basic-processes-network-stream j++-basic-processes-process
j++-packages-subsystems-subsystem
j++-interfaces-loadable-loadable j++-interfaces-interface
j++-basic-widgets-object warnings j++-basic-files-loadable
j++-basic-state j++-basic-files-serializable
j++-basic-files-stringifiable j++-basic-files-load eieio-base
eieio-custom wid-edit speechd-speak advice speechd-brltty
speechd-braille braille mmanager brltty speechd-ssip speechd
speechd-out eieio-compat cl-seq speechd-common jka-compr j++
j++-compat j++-precompat eieio eieio-core cl-macs
eieio-loaddefs seq byte-opt bytecomp byte-compile cl-extra
help-mode easymenu cconv cl gv cl-loaddefs pcase cl-lib
mule-util disp-table tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese
eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp
files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable
backquote inotify multi-tty make-network-process emacs)

Memory information:
((conses 16 402793 68817)
 (symbols 48 40865 109)
 (miscs 40 1386 237)
 (strings 32 90674 7379)
 (string-bytes 1 2616687)
 (vectors 16 45189)
 (vector-slots 8 963465 20687)
 (floats 8 1962 250)
 (intervals 56 8907 541)
 (buffers 976 76)
 (heap 1024 45549 1348))



This bug report was last modified 8 years and 204 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.