Не мисля, че има нещо такова вградено. За щастие е лесно да използвате помощните функции в Hamlet. Например, ако вашите елементи са обикновени низове, можете просто да използвате Data.List.intercalate
, за да добавите запетаи между тях.
The values in the list are
#{intercalate ", " list}
and that is it.
Ако искате да правите по-фантастични неща, можете да напишете функции, които да работят със стойности на Хамлет. Например, ето функция, която добавя запетаи и "и" между стойностите на Хамлет в списък.
commaify [x] = x
commaify [x, y] = [hamlet|^{x} and ^{y}|]
commaify (x:xs) = [hamlet|^{x}, ^{commaify xs}|]
Това използва синтаксис ^{...}
за вмъкване на една стойност на Hamlet в друга. Сега можем да използваме това, за да напишем разделен със запетаи списък с подчертани думи.
The values in the list are
^{commaify (map underline list)}
and that is it.
Тук underline
е само малка помощна функция за създаване на нещо по-интересно от обикновен текст.
underline word = [hamlet|<u>#{word}|]
При изобразяване това дава следния резултат.
The values in the list are <u>foo</u>, <u>bar</u> and <u>baz</u> and that is it.
person
hammar
schedule
23.09.2011