関数を使用して小さな言語ルックアップを作成しました
getValue :: String -> String -> String
getValue lang key = (
head $
filter ((== key) . head) langData)
!! getLangIndex lang
ここで、hamlet ファイル内でこのルックアップ関数を呼び出したいと思います。
これは可能ですか?関数を変更して呼び出し可能にするにはどうすればよいですか?
#{}
補間を使用してスコープ内にある任意の Haskell 式を使用できます。関数がToHTML
インスタンスの何かを生成することを確認してください。
このようなものが動作するはずです:
myhamlet key lang = [hamlet|
<h1> for key = #{key}, lang = #{lang}, value = #{getValue lang key}
|]
... または .hamlet ファイル内:
<h1> for key = #{key}, lang = #{lang}, value = #{getValue lang key}
key
(とが範囲内にあると仮定しlang
ます)。