Nie rozumiem dlaczego ten kod zachowuje się różnie w różnych implementacjach:Lisp format i siły wyjście
(format t "asdf")
(setq var (read))
W clisp zachowuje się jak można by się spodziewać, z szybka wydrukowane następnie czytać, ale w SBCL odczytuje, , a następnie wyprowadza. Czytałem trochę w internecie i zmieniła go:
(format t "asdf")
(force-output t)
(setq var (read))
To również działa dobrze w clisp, ale w SBCL to nadal czyta, a potem wyjść. Próbowałem nawet oddzielić go na inną funkcję:
(defun output (string)
(format t string)
(force-output t))
(output "asdf")
(setq var (read))
I nadal czyta, a potem wyjścia. Czy poprawnie używam force-output
, czy jest to tylko idiosynkwalencja SBCL?
dzięki, to działało! –
Inną opcją, jak w [Practical Common Lisp] (http://www.gigamonkeys.com/book/practical-a-simple-database.html), jest użycie globalnego '* query-io *' zamiast t lub zero. – lindes