本記事は下記イベント進行用の記事です。
Elixir Schoolで基本の記法をやってみよう
Replitでサインアップ(ユーザー登録)しよう
Elixir SchoolではElixirのインストールとiex(対話モード)を使っていますが
今回はElixirのインストールはせず、ブラウザ型IDEのRaplitを使用します。
ユーザー登録がまだの方はサインアップを、ユーザー登録済の方はサインインしましょう。
メールアドレスでの登録のほか、GoogleやGitHubアカウントでの登録もできます。
基本のキ:入門、基本データ型、そして基本的な演算
まずは基本の構文を進めていきましょう。10〜15分くらいもあれば大丈夫です。
途中で出てくる言葉
- 真理値
- 真偽値とも呼ばれる
- アトム、is_atom、is_boolean、div、rem
- Kernel に含まれている。自動的にインポートされる。
- Erlangのビルトインのものも含めたライブラリのモジュール
キラキラさせてみる
さて、基本のキを押さえたので、これからは例題を触ってみて、解説をしていきます。
サンプルコードは @t-yamanashi さんからいただきました!ありがとうございます
1..255
|> Enum.map(& "#{IO.ANSI.color(&1)}*")
|> IO.puts
Replitで実行してみました!
分解してみる
|>(パイプ演算子)とIO.puts
IO.puts("hello")
IO.puts(1 + 2)
"hello" |> IO.puts
1 + 2 |> IO.puts
Enum.map
Enum.map([1,2,3], fn x -> x + 1 end)
Enum.map(1..3, fn x -> x + 1 end)
1..3 |> Enum.map(fn x -> x + 1 end)
IO.ANSI.color
IO.ANSI.colorは出力する文字列の前に置くことで色指定ができます。
Elixir School基本の中で出てきた式展開が使われています。
IO.puts("#{IO.ANSI.color(1)}Hello?")
キラキラの応用:文字を生やす
1..1000
|> Enum.map(fn _ -> "#{IO.ANSI.color(0, Enum.random(1..5), 0)}■" end)
|> IO.puts()
アンダースコアは何?
Elixirでは変数が使われない場合、警告が表示されます。
変数を使わない場合、変数のはじめに「_」をつけると警告の対象外になります。
Enum.random
引数として指定されたリストのうちランダムな要素を返します。
Enum.random([1,3,5])
Enum.random(1..10)
Enum.join
指定されたリストを文字列として結合します。
第2引数にセパレーターが渡すこともできます。
Enum.join(1..10)
Enum.join(1..10, ",")
ライフゲームを動かしてみよう
最後にたまぬぎさん作成のライフゲームを動かしてみましょう。
さいごに
ここまでお疲れさまでした!
コードを動かすのをじっくりやってみると発見があって、それが不思議だったり面白かったりしますね。