LoginSignup
0

More than 3 years have passed since last update.

すごいHaskellたのしく学ぼう! を学びなおしてみる(第1章)[with Elixir]

Last updated at Posted at 2020-03-20

はじめに

  • Elixirを使いはじめてだいたい1年くらいがたちました
  • すごいHaskellたのしく学ぼう!という本を2015年に買って、一通り読んだあとずっと本棚にしまわれていたままでした
  • 久しぶりに引っ張り出して読んでみると、こんなに愉快な内容だったけ!? という感想を持ちました
  • Elixirで関数プログラミングにだいぶ慣れたので、ユーモアの部分を楽しむ余裕ができたのだとおもいます
  • 少しずつ読み進めながら、興味が向いたところだけElixirで書き換えてみたりして理解を深めていきたいとおもいます

init関数

ghci> init [5,4,3,2,1]  
[5,4,3,2]  

すごいHaskellたのしく学ぼう!から引用

init関数はリストを受け取り、最後の要素を除いた残りのリストを返します

  • Starting Out
    • 原文サイト内の上記ページの中央ほどにある可愛らしい絵をみるとイメージしやすいです

Elixirで書いてみます

defmodule LearnYouAHaskellForGreatGood do
  def init([_ | []]) do
    []
  end

  def init([head | tail]) do
    [head] ++ init(tail)
  end
end
iex> LearnYouAHaskellForGreatGood.init([5,4,3,2,1]) 
[5, 4, 3, 2]
  • 本当にこれ自分で書かないと無いのだろうか? とおもってListを眺めてみました
  • ありました!
iex> [5, 4, 3, 2, 1] |> List.delete_at(-1)
[5, 4, 3, 2]

こんな感じで、少しずつ すごいHaskellたのしく学ぼう! を学びなおしてみようとおもいます :rocket::rocket::rocket:

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
0