Шекспировские шаблоны Йесода (деревня) и IO
В Гамлете, как использовать результат операции ввода-вывода внутри #{...}
?
Например:
someIO :: IO String
-----------------
$with stuff <- someIO
<p>#{stuff}
Сбой с
No instance for (blaze-markup-0.6.0.0:Text.Blaze.ToMarkup
(IO String))
arising from a use of `toHtml'
Я боюсь, что я не подошел к проблеме с правильной точки зрения, может кто-то пролить свет на эту проблему для меня?
Спасибо
1 ответ
Решение
Гамлет просто предоставляет альтернативный синтаксис для нормального кода на Haskell, поэтому, как и в обычном Haskell, вы должны хранить свои нечистые действия отдельно. Другими словами, вам нужно запустить действие ввода-вывода вне шаблона.