Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@kmizuno0211

Elixir~自分で作ったPJが動いたぞ!~

ここまでのあらまし

前回、

[2, 3, 5] |> Enum.any?(& rem(13, &1)==0)

13を2,3,5で割ってあまりがゼロになる要素がなければfalseを返す、という式を書きました。

今回、これをモジュールに実装していきます。

本題

適当なディレクトリで、

mix new prime

します。

そして、

prime.ex

defmodule Prime do
  @moduledoc """
  Documentation for Prime.
  """

  @doc """
  Hello world.

  ## Examples

      iex> Prime.hello()
      :world

  """
  def hello do
    :world
  end  
  def div
isible_all?  n, list do
    list |> Enum.any?(& rem(n, &1)==0)  
  end
end

前回の13を n[2, 3, 5] のリストをlist としました。

ここでターミナルで

cd prime
iex -S mix

します。

iex(1)> Prime.divisible_all?(13, [2, 3, 5])
false
iex(2)> Prime.divisible_all?(12, [2, 4, 5])
true

ふたつの自由な引数を持ったプログラムができました!!!

なお、divisible_all? という関数名を決める際に、 codic というWebアプリ辞書を使用しました。

これでつまみがふたつついたシンセサイザーができたようなもんです!!

わかるようになったこと

最初はわたしは関数に対しての引数、というものが分かりませんでした。
Enumを学習する過程で第一引数、第二引数、リストがそれに相当する〜、といったことをおぼろげに理解していきました。
しかし今回、ふたつの要素を nlist として可変にすることによって「引数」そのものを理解することができたように思います。

はじめて自分の作ったプログラムが動いた!!感動もひとしおだ!!!
うまずたゆまず、頑張ります。
Kento Mizuno

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?