GNU bug report logs - #22961
The read function does not support a lambda argument

Previous Next

Package: emacs;

Reported by: Mihai Călin Bazon <mihai.bazon <at> gmail.com>

Date: Wed, 9 Mar 2016 16:28:01 UTC

Severity: normal

Done: Andreas Schwab <schwab <at> linux-m68k.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Mihai Călin Bazon <mihai.bazon <at> gmail.com>
To: 22961 <at> debbugs.gnu.org
Subject: bug#22961: The read function does not support a lambda argument
Date: Wed, 9 Mar 2016 10:37:28 +0200
[Message part 1 (text/plain, inline)]
Example, I eval this in the scratch buffer (with lexical-binding set true):

    (read (let ((str "TEST")
                (pos 0)
                (prev nil))
            (lambda (ch)
              (cond
                (ch (push ch prev))
                (prev (pop prev))
                ((< pos (length str))
                 (prog1 (aref str pos)
                   (setq pos (1+ pos))))))))

According to the docs [1] an input stream can be a function.  I would
expect the above to return the symbol TEST, but instead I get an error
("end of file during parsing").

[1]
http://www.gnu.org/software/emacs/manual/html_node/elisp/Input-Streams.html#Input-Streams

-- 
Mihai Bazon,
http://lisperator.net/
[Message part 2 (text/html, inline)]

This bug report was last modified 9 years and 78 days ago.

Previous Next


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