こんにちは、@koga1020です。

【exercism.io】Elixir Trackメモ その3に引き続き、exercismを進めていきます。

ネタバレ

  • 以下、自分が解いた問題とその振り返りを書いています
  • 一切の参考情報を得ずにexercismを取り組みたい!!」という方は解き終わってから読んでいただければと思います

Series

StringSeries.slices("01234", 2) == ["01", "12", "23", "34"] のように、引数に渡した整数だけ左から順にsliceしていく関数をつくる

自分の回答: https://exercism.io/tracks/elixir/exercises/series/solutions/e94ffe72167e420c914d65cec4b7d94a

振り返り

Raindrops

3 or 5 or 7 を約数に持っていた場合のみ文字列に変換するという問題

自分の回答: https://exercism.io/tracks/elixir/exercises/raindrops/solutions/afe5258bba5647c6bd46aae50e9994fa

振り返り

Run Length Encoding

Run-length encoding(RLE)なるデータ圧縮アルゴリズムの実装。”AAAA” ⇄ “4A” のような可逆圧縮。

自分の回答: https://exercism.io/tracks/elixir/exercises/run-length-encoding/solutions/9e233adcbf9049a195904e00dd8a6805

振り返り

まとめ

  • flat_map
  • map_join
  • filter_map

のように、「○○して△△する」系の関数をつかいこなせるとコード量が減りそうですね。やはりEnumを確実に習得すべきだなぁと改めて思った回でした。