(08-02-2013 01:42)Python писал(а): Відсутність heredoc
Доречі, я недавно довідався, що в Chicken Scheme хіадок таки є (див.
Non-standard read syntax: Multiline String Constant):
Код:
(define msg #<<END
Це мій рядок.
І ось він ще.
END
)
Це еквівалентно ось цьому (теоретично
\n
в рядках теж не входить в R
5RS, але на практиці всюди підтримується):
Код:
(define msg " Це мій рядок.\n І ось він ще.")
І є навіть з інтерполяцією (слава богу, ніхто нею не користається):
Код:
(define msg #<#END
Два плюс два — #(+ 2 2), а два плюс три — #{5}.
END
)
Це еквівалентно ось такому:
Код:
(define msg (string-append " Два плюс два — "
(number->string (+ 2 2))
", а два плюс три — "
(number->string 5)
"."))
Якщо чесно, мені це не подобається, особливо другий формат (він автоматично вибирає процедуру конвертації в рядок, а це вже зовсім недобре).
(08-02-2013 02:25)Agrest писал(а): Ви так кажете, ніби в heredoc’ах підсвітка синтаксису працюватиме...
Був неправий. Останнім часом багато користався PhpStorm’ом, і в ньому підсвітка HTML/CSS/SQL/JavaScript в рядках включається автоматично.
І справді зручно, хоч це й неправильний підхід.