Formát (Common Lisp) - Format (Common Lisp) - Wikipedia
Formát je funkce v Společný Lisp které mohou vytvářet formátovaný text pomocí formátovacího řetězce podobného formátu řetězec formátu printf. Poskytuje více funkcí než printf
, umožňující uživateli vydávat čísla v angličtině, aplikovat určité specifikátory formátu pouze za určitých podmínek, iterovat přes datové struktury a výstup v tabulkovém formátu. To funkčně pochází z MIT Lisp stroj Lisp, kde to bylo založeno Multics ioa_
[Citace je zapotřebí ].
Příklad
Příklad C. printf
hovor je následující:
printf("Barva% s, číslo 1% d, číslo 2% 05d, hex% x, float% 5.2f, nepodepsaná hodnota% u. n", "Červené", 123456, 89, 255, 3.14, 250);
Při použití Common Lispu to odpovídá:
(formát t „Color ~ A, number1 ~ D, number2 ~ 5, '0D, hex ~ X, float ~ 5,2F, unsigned value ~ D. ~%" "Červené" 123456 89 255 3.14 250) ;; tisky: Červená barva, číslo 1 123456, číslo 2 00089, hex FF, float 3.14, hodnota bez znaménka 250.
Dalším příkladem by bylo vytisknout každý prvek seznamu oddělený čárkami, což lze provést pomocí ~{, ~^ a ~} směrnice:[1]
(nechat ((koloniál '(vejce chléb máslo mrkve))) (formát t "~ {~ A ~ ^, ~}. ~%" koloniál) ; Tiskne velkými písmeny (formát t "~: (~ {~ A ~ ^, ~} ~). ~%" koloniál)) ; Aktivuje výstup ;; tisky: VEJCE, CHLÉB, MÁSLO, MRAK. ;; tisky: Vejce, chléb, máslo, mrkev.
Všimněte si, že seznam není pouze iterován seznamem hodnot formát
, ale čárky jsou vytištěny správně mezi položky, ne po jim. Ještě složitějším příkladem by bylo vytištění seznamu pomocí obvyklého anglického frázování:
(nechat ((šablona „Šťastnými výherci se stali: ~ # [none ~; ~ S ~; ~ S a ~ S ~ ~:; ~ @ {~ # [~; a ~] ~ S ~ ^, ~} ~]. ")) (formát nula šablona) ;; ⇒ „Šťastnými výherci byli: žádný.“ (formát nula šablona 'foo) ;; ⇒ „Šťastnými výherci byli: FOO.“ (formát nula šablona 'foo 'bar) ;; ⇒ „Šťastnými výherci byli: FOO a BAR.“ (formát nula šablona 'foo 'bar „baz) ;; ⇒ „Šťastnými výherci byli: FOO, BAR a BAZ.“ (formát nula šablona 'foo 'bar „baz 'quux) ;; ⇒ „Šťastnými výherci byli: FOO, BAR, BAZ a QUUX.“ )
Zatímco formát
je poněkud nechvalně známý svou tendencí k neprůhlednosti a obtížnosti čtení, poskytuje pozoruhodně stručnou, ale výkonnou syntaxi pro specializovanou a běžnou potřebu.[1]
K dispozici je souhrnná tabulka Common Lisp FORMAT.[2]
Reference
Knihy
- Společné Lisp HyperSpec Oddíl 22.3 Formátovaný výstup
- Praktický Common Lisp Kapitola 18. Několik FORMÁTOVÝCH receptů
![]() | Tento programovací jazyk související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |