그런 식으로 내장 된 것이 없다고 생각합니다. 다행히 Hamlet에서 도우미 함수를 사용하는 것은 쉽습니다. 예를 들어 항목이 일반 문자열 인 경우 Data.List.intercalate
을 사용하여 쉼표를 추가 할 수 있습니다.
The values in the list are
#{intercalate ", " list}
and that is it.
멋진 것들을하고 싶다면, 햄릿 값으로 작업 할 수있는 기능을 작성할 수 있습니다. 예를 들어, 다음은 쉼표를 추가하고 목록에서 햄릿 값 사이에 "and"를 추가하는 함수입니다.
commaify [x] = x
commaify [x, y] = [hamlet|^{x} and ^{y}|]
commaify (x:xs) = [hamlet|^{x}, ^{commaify xs}|]
이 다른 하나 개에 햄릿 값을 삽입 ^{...}
문법을 사용한다. 이제 이것을 사용하여 쉼표로 구분 된 밑줄 친 단어 목록을 작성할 수 있습니다. 여기
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.
감사합니다. 솔루션 하스켈 (Template Haskell)이 제공하는 것만 큼 만족 스러울 지 모르지만, 솔루션의 훌륭한 컬렉션이라고 생각합니다. 어쩌면 특별한''loop'' 변수에 대한 패치를 hamlet에 제출해야합니다. –