Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

array input/output to files

1 view
Skip to first unread message

Erik Naggum

unread,
Aug 15, 1999, 3:00:00 AM8/15/99
to
* go...@sip.medizin.uni-ulm.de (kp gores)
| how can i fix this?

since the standard reader macro for arrays only creates simple arrays,
you would need to call ADJUST-ARRAY afterwards to set further options, or
create a specialized reader macro or even use #. and write out a call to
MAKE-ARRAY with the :INITIAL-CONTENTS keyword to include the contents.

#:Erik
--
(defun pringles (chips)
(loop (pop chips)))

Kent M Pitman

unread,
Aug 15, 1999, 3:00:00 AM8/15/99
to
go...@sip.medizin.uni-ulm.de (kp gores) writes:

> when reading from the file, the fill-pointer gets lost:
> [...]


> how can i fix this?

by not using read/print, which are not required to preserve the fill pointer.

Erik Naggum

unread,
Aug 16, 1999, 3:00:00 AM8/16/99
to
* kp gores
| why has the new array no fill-pointer?

ADJUST-ARRAY is specified to signal an error if one attempts to add a
fill-pointer to an array that doesn't have one. sorry.

| 2nd: how would one create a reader macro?

see SET-MACRO-CHARACTER and SET-DISPATCH-MACRO-CHARACTER.

Erik Naggum

unread,
Aug 18, 1999, 3:00:00 AM8/18/99
to
* go...@sip.medizin.uni-ulm.de (kp gores)
| to change the reader i have to modify the meaning of "#", right?

no.

| (defun |#(-reader| (stream subchar arg)
| (declare (ignore subchar arg))
| (make-array :adjustable T
| :fill-pointer T
| :initial-contents (read stream t nil t)))

try READ-DELIMITED-LIST, instead of READ.

| second, the arguments to make-array are wrong.

yes, you would need to read the list first, then use its length as the
dimension.

| i believe this are ignorant questions, but having never ever thought
| about modifying the reader, i have to ask for more help.

I think you should hold back on modifying the reader. it's not a good
_first_ thing to try.

0 new messages