LoginSignup
20
6

More than 3 years have passed since last update.

FizzBuzzと1から100までの足し算をElixirで書いてみる (ElixirLS extensionをいれてみる)

Last updated at Posted at 2020-05-13

はじめに

  • @aaabb6211 さんのfizzbuzzを噛み砕くを拝見しまして、ぜひElixirで書いてみようとおもいました。
  • ↑ こちらの記事にあります「本気でそれをなしたいと思えば世界があなたに味方をしてくれる(アルケミスト)」は、この本の一節でしょうか
  • We are the Alchemists, my friends !!!
  • Elixirは1.10.3-otp-22 を使いました

書いてみる

lib/awesome.ex
defmodule Awesome do
  # Thanks for プログラミングElixir
  def fizz_buzz(n) do
    do_fizz_buzz(rem(n, 3), rem(n, 5), n)
  end

  defp do_fizz_buzz(0, 0, _n), do: "FizzBuzz"
  defp do_fizz_buzz(0, _, _n), do: "Fizz"
  defp do_fizz_buzz(_, 0, _n), do: "Buzz"
  defp do_fizz_buzz(_, _, n), do: n

  def sum_100, do: 1..100 |> Enum.sum()
end
$ iex
iex> 1..15 |> Enum.map(&Awesome.fizz_buzz/1)
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14, "FizzBuzz"]
iex> Awesome.sum_100
5050

ところで

  • 最近、The Pragmatic Studioという動画でプログラミングを教えてくれるサイトがありまして、いまならEarly Access!ということで無料でPhoenix LiveViewの動画教材がみれるのでそこで学んでいます(後半部分は現時点では未公開なのですが有料になるのかも?)
  • そのサイトでの環境構築のおすすめVSCode extensionとして、ElixirLSが紹介されていました
  • さっそく素直にそれをいれてみたのですがなんと、うっすらと @spec なるものがみえるではありませんか!
    • Elixir 界では常識なのかもしれませんが、ついさっき気づいた次第です :rocket: :rocket: :rocket:
    • うっすらのところを押すと、ソースコードに反映してくれます
    • これを自分で書く自信はない。。。

スクリーンショット 2020-05-13 23.48.33.png

Enjoy!!!

20
6
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
20
6