16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ElixirAdvent Calendar 2022

Day 18

気軽にテンプレートを作って文字列を量産しよう

Posted at

大量にデータを流して特定のテンプレートにしたがって文章を作りたいと思うことありますよね?

ということでさっそく

f = fn x -> """
--------------------------------------
あなたは#{x}番目の訪問者です
--------------------------------------
""" 
|> IO.puts()
end

1..10
|> Enum.each(&f.(&1))

実行結果

--------------------------------------
あなたは1番目の訪問者です
--------------------------------------

--------------------------------------
あなたは2番目の訪問者です
--------------------------------------

--------------------------------------
あなたは3番目の訪問者です
--------------------------------------

--------------------------------------
あなたは4番目の訪問者です
--------------------------------------

--------------------------------------
あなたは5番目の訪問者です
--------------------------------------

--------------------------------------
あなたは6番目の訪問者です
--------------------------------------

--------------------------------------
あなたは7番目の訪問者です
--------------------------------------

--------------------------------------
あなたは8番目の訪問者です
--------------------------------------

--------------------------------------
あなたは9番目の訪問者です
--------------------------------------

--------------------------------------
あなたは10番目の訪問者です
--------------------------------------

定形文章ぽく作るなら

f = fn x, y -> """
#{x} 様

謹啓 
平素は格別のお引き立てを賜り厚く御礼申し上げます。
  ほげほげ ふがふが ほげほげ ふがふが 
  あなたのラッキー番号は#{y}

""" 
|> IO.puts()
end

~w/田中 木下 佐藤/
|> Enum.each(&f.(&1, Enum.random(1..10)))
田中 様

謹啓 
平素は格別のお引き立てを賜り厚く御礼申し上げます。
  ほげほげ ふがふが ほげほげ ふがふが 
  あなたのラッキー番号は2


木下 様

謹啓 
平素は格別のお引き立てを賜り厚く御礼申し上げます。
  ほげほげ ふがふが ほげほげ ふがふが 
  あなたのラッキー番号は5


佐藤 様

謹啓 
平素は格別のお引き立てを賜り厚く御礼申し上げます。
  ほげほげ ふがふが ほげほげ ふがふが 
  あなたのラッキー番号は3

アイデア次第で、単体テストのコードもデータから作ることもできます。

16
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?