Koşullu Çıktı
GNU Ortak Lisp
~v^
Yukarı ve dışarı yönergesi ~^
en sık geçen Liste öğesinden sonra sona erdirmek için operasyon biçimlendirme liste halinde kullanılır. Bununla birlikte, v
bir bağımsız değişkeni tüketmek için bir değiştiriciyle de kullanılabilir , bu durumda bu bağımsız değişken sıfır ise sona erer. Bu, tarafından üretilen sıfır ile başa çıkmak için özellikle yararlıdır dotimes
.
(loop as n from 1 to 10 do(format t"~d~%"n))
(dotimes(n 11)(if(> n 0)(format t"~d~%"n)))
(dotimes(n 11)(format t"~v^~d~%"n n))
format(condition)
İlk bağımsız değişkeni format
biri olabilir t
, nil
diğer adıyla ()
, veya bir akım üretilir. Tasarı kabul edildiği takdirde t
, bu çıktı olacak stdout
eğer, nil
o dize olarak biçimlendirilmiş çıktı dönecektir. Bu koşullu çıktı kullanılabilir. Yukarıdaki örnek eşit derecede kısa yazılabilir:
(dotimes(n 11)(format(> n 0)"~d~%"n))
Bir değer çıkarıldıysa, dönüş değeri olacaktır nil
. Bu nedenle, bir do
döngü için sonlandırma koşulu olarak da kullanılabilir :
(do((n 11))((<(decf n)1))(format t"~d~%"n))
(do((n 11))((format(>(decf n)0)"~d~%"n)))
~[...~]
Koşullu biçimlendirici bir bağımsız değişken kullanır ve listeden dizine göre bir biçimlendirme dizesi seçer. Yaygın bir kullanım durumu, ~:;
sıfır değil sıfır arasında seçim yapmak için varsayılan biçimlendiricidir .
(dotimes(n 11)(format t"~v^~[~r~:;~d~]~%"n(mod n 3)n))
Koşullu biçimlendiriciler de iç içe yerleştirilebilir, bu durumda her biri sırayla bir argüman tüketir.
~&
Yukarıdaki örneklerin her birinde, ~%
bir satırsonu yayınlamak için kullanılır. Çoğu durumda, bunun yerine gerçek bir satırsonu kullanılabilir. Başka bir seçenek de ~&
, yalnızca çıkış imleci bir satırın başında değilse, yani a fresh-line
.
Her ikisi de ~%
ve ~&
bir v
değiştirici ile veya sabit olarak bir argüman alabilir ve çok sayıda yeni satır üretecektir. İkisi de olumsuz bir argümanı memnuniyetle kabul edeceklerdir, bu durumda hiçbir şey yaymazlar.
Dış Referanslar
Pratik Ortak Lisp
18. Birkaç FORMAT Tarif
Common Lisp the Language, 2. Baskı
22.3.3. Karakter Akışlarına Biçimlendirilmiş Çıktı