SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
第1回 - 基礎だ -
GMO Pepabo, Inc.
Joe Honzawa
2015/4/30 Elixir勉強会
Elixirだ
Elixirとは
> Erlang VM上で動く関数型言語
> 並列分散
> 高可用性
> 動的型付け
> モダンな文法
> マクロでメタプログラミング
> プロトコル
Elixirをつくった人
> José Valim
> 歩く生産性
> rackやrailsにもコミット
Rubyistの皆さんが
入りやすそうなとこから
Install
> $ brew install elixir
IEx
> $ iex
型
Types(?)
> integer
> float
> atom
> boolean
> binary
> string
> list
> tuple
> map
> range
> function
など
Integer
> 10
> 0b101
> 0o12
> 0x0a
Float
> 1.0
> 3.14
> 6.02e23
> 1.602e-19
> 1e3 ← これダメ
Atom
> Rubyで言うSymbol
> :atom
> :hello
> :’white spaces !?’
> nil == :nil
Boolean
> true
> false
> 実はatom
> :true
> :false
Binary
> <<1>>
> <<256>> == <<0>>
> <<1>> == <<1::size(8)>>
> <<1, 0>> == <<256::size(16)>>
> <<1::float>> ==
<<63,240,0,0,0,0,0,0>>
String
> “hello world”
> “世界を征服だ”
> 必ずダブルクォートしてー
> “hey” == <<104,101,121>>
> ‘hey’ == [104,101,121]
List
> 単方向リスト
> [1, 2, 3]
> [true, [1, 2, 3], “hey”]
> [1 | [2, 3]] == [1, 2, 3]
> [1, 2 | []] == [1, 2]
> 先頭への要素追加は高速
Tuple
> 値の組
> {:ok, 30}
> {1, 2, 3, 4, 5}
> ランダムアクセスはO(1)
> 更新や追加はコスト高
Map
> %{}
> %{“price”=> 3980}
> map = %{price: 100, amount: 2}
> map.price
> Map.get(map, :price)
> map = Map.put(map, :amount, 1)
Range
> 範囲
> 1..3
> 4..-5
> 1.2 .. 3.8
> (1.5 in 1.2 .. 3.8) == true
Function
> 無名関数
> fn (x, y) -> x * y end
> fun = &(&1 * &2)
> fun.(3, 4) == 12
> 定義済み関数のキャプチャ
> IOモジュールのputs関数(arity: 1)
> Enum.each([1, 2], &IO.puts/1)
制御構文
case
case the_number do
1 -> “one”
2 -> “two”
3 -> “three”
end
if
if now == :morning do
“good morning”
else
“hi”
end
cond
cond do
rem(y, 400) == 0 -> “Yes”
rem(y, 100) == 0 -> “No”
rem(y, 4) == 0 -> “Yes”
true -> “No”
end
無いもの
> return
> 最後の評価値が返る
> loop, while
> 再帰で
パターンマッチ
賢く束縛
> [x, y] = [1, 2]
> x == 1
> y == 2
> {1, x, 3} = {1, 2, 3}
> x == 2
アンスコ
> 使わない変数の頭につける
> 何にでもマッチ
> 値は要らない
> [head | _] = [1, 2, 3]
> {y, _m, _d} = {2015, 4, 30}
代表的な
> {:ok, res} = File.read “a.txt”
> [head | tail] = [1, 2, 3, 4]
> head == 1
> tail == [2, 3, 4]
実際的な
case File.read(“a.txt”) do
{:ok, res} -> res
{:error, :enoent} ->
“oh it isn’t here”
{:error, :eacces} ->
“you can’t read it”
_ -> “?”
end
MatchError
> {:ok, res} = File.read “a.txt”
> File.read/1
> {:ok, content}
> {:error, reason}
> (MatchError) no match of right
hand side value: {:error, :enoent}
ピン止め
> x = 1
> [^x, y, 3] = [1, 2, 3]
> y = 2
> [^x, y, 3] = [5, 4, 3]
> MatchError
モジュールと関数
def
defmodule MyModule do
def print(arg) do
iikanjini_hyoji(arg)
end
defp iikanjini_hyoji(arg) do
IO.inspect arg
end
end
MyModule.print %{price: 298}
原則
> あらゆる関数はモジュールに属する
> 名前かarityが違うなら別の関数
> sum/1とsum/2は別物
重要なスライドです
defmodule MyModule.Math do
def sum(list), do: sum(list, 0)
defp sum([], acc), do: acc
defp sum([h|t], acc) do
sum(t, h+acc)
end
end
慣習
> ワーカ関数の名前はdo_xxx
> モジュール名とファイル構造は対応させる
> lib/my_module/math.ex
> MyModule.Math
> 最も関心のあるものを第一引数に
> 例外を投げる関数の名前はxxx!
> 真偽値を返す関数の名前はxxx?
デフォルト引数
defmodule MyModule do
def say(word  “hi”) do
IO.puts word
end
end
MyModule.say(“hello”)
MyModule.say
ガード式
defmodule MyModule do
def sum(list) when is_list(list) do
sum(list, 0)
end
# 略
end
!! ガード式で使える関数は限られている !!
ガードで使える奴ら
> ==
> !=
> ===
> !==
> >
> <
> <=
> >=
> and
> or
> not
> !
> +
> -
> *
> /
> <> (左辺がリテラル)
> ++ (左辺がリテラル)
> in
> is_atom/1
> is_binary/1
> is_bitstring/1
> is_boolean/1
> is_float/1
> is_function/1
> is_function/2
> is_integer/1
> is_list/1
> is_map/1
> is_nil/1
> is_number/1
> is_pid/1
> is_port/1
> is_reference/1
> is_tuple/1
> abs/1
> bit_size/1
> byte_size/1
> div/2
> elem2
> hd/1
> length/1
> map_size/1
> node/0
> node/1
> rem/2
> round/1
> self/0
> tl/1
> trunc/1
> tuple_size/1
directives
defmodule MyModule do
import Enum
alias Enum, as: E
require Integer
use ExUnit
end
import
defmodule MyModule do
import Enum, only: [count: 1]
def kazoeru(list) do
count(list) # Enum.count/1
end
end
MyModule.kazoeru [1, 2, 3]
MyModule.count [1, 2] → ❌
alias
defmodule MyModule do
alias Enum, as: E
def kazoeru(list) do
E.count(list) # Enum.count/1
end
end
MyModule.kazoeru [1, 2, 3]
as無しalias
defmodule MyModule do
alias Phoenix.HTML.Form
alias Phoenix.HTML.Form, as: Form
# 等価
end
requireとuse
また後で…
エコシステム
Mix
> Rubyにおけるbundlerとrake
> 依存性解決
> タスクランナー
> mix new my_app
> mix test
> mix something.i.defined
Hex
> Rubyにおけるrubygems
> パッケージマネージャ
> https://hex.pm
> ErlangのライブラリもOK
> ファイル構成見てよしなにシュッと
Hex on Heroku
はじめての
Elixirプロジェクト
$ mix new please
$ cd ./please
$ ls
Mix project
> lib/please.ex
> test/
> please_test.exs
> test_helper.exs
> config/config.exs
> mix.exs
lib/please.ex
defmodule Please do
def give_me(:sushi), do: “🍣”
def give_me(:beer), do: “🍺”
def give_me(_other), do: “❓”
end
$ iex -S mix
iex(1)> Please.give_me :sushi
“🍣”
余談
> BEAMファイル
> バイトコード
> JavaでいうClassファイル
> _build/の奥のほう
> Elixir.Please.beam
テスト書きましょ
テストライブラリ
> ExUnit
> とりあえずこれ覚えるべき
> ShouldI
> Bruce Tateさん作
> One Experiment, Multiple Measurements
> 中身はExUnit
> ESpec
test/please_test.exs
defmodule PleaseTest do
use ExUnit.Case
alias Please, as: Plz
test “sushi” do
assert Plz.give_me(:sushi) == ”🍣”
end
test “neither sushi nor beer” do
assert Plz.give_me(:hoge) == ”❓”
end
end
$ mix test
Redも見ておきましょう
defmodule PleaseTest do
use ExUnit.Case
alias Please, as: Plz
test “sushi” do
assert Plz.give_me(:sushi) == ”🍕”
end
test “neither sushi nor beer” do
assert Plz.give_me(:hoge) == ”❓”
end
end
ワンダーである
やったこと
> Elixirのインストール
> 型
> 制御構文case, if, cond
> パターンマッチ
> モジュール、関数、ディレクティブ
> MixとHex
> Mixプロジェクトの作成とテスト

Más contenido relacionado

La actualidad más candente

とびだせHaskellの森1
とびだせHaskellの森1とびだせHaskellの森1
とびだせHaskellの森1Shoko Sasaki
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Satoshi Kume
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能hitode909
 
Goの文法の実例と解説
Goの文法の実例と解説Goの文法の実例と解説
Goの文法の実例と解説Ryuji Iwata
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜勝成 鈴江
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方Soudai Sone
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門Hiroaki Murayama
 
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Kenta USAMI
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感31 00
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかKousuke Ebihara
 
Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言Yuya Takeyama
 
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠Takaaki Hirano
 
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発Shinzo SAITO
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.ContextAkira Takahashi
 

La actualidad más candente (20)

とびだせHaskellの森1
とびだせHaskellの森1とびだせHaskellの森1
とびだせHaskellの森1
 
F#のすすめ
F#のすすめF#のすすめ
F#のすすめ
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能
 
Goの文法の実例と解説
Goの文法の実例と解説Goの文法の実例と解説
Goの文法の実例と解説
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
 
Perl勉強会#2資料
Perl勉強会#2資料Perl勉強会#2資料
Perl勉強会#2資料
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門
 
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
01 php7
01   php701   php7
01 php7
 
Stroustrup11章雑感
Stroustrup11章雑感Stroustrup11章雑感
Stroustrup11章雑感
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
 
zsh とわたし
zsh とわたし zsh とわたし
zsh とわたし
 
Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言
 
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
 
CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発CakePHP+Smartyハイブリッドによるラクラク開発
CakePHP+Smartyハイブリッドによるラクラク開発
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.Context
 

Destacado

Elixirだ 第3回
Elixirだ 第3回Elixirだ 第3回
Elixirだ 第3回Joe_noh
 
おれおれIFTTT
おれおれIFTTTおれおれIFTTT
おれおれIFTTTJun Tomioka
 
Elixirだ 第5回
Elixirだ 第5回Elixirだ 第5回
Elixirだ 第5回Joe_noh
 
Elixirだ 第4回
Elixirだ 第4回Elixirだ 第4回
Elixirだ 第4回Joe_noh
 
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだScalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだyoshiaki iwanaga
 
Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話tod esking
 
Nyandoc: Scaladoc/Javadoc to markdown converter
Nyandoc: Scaladoc/Javadoc to markdown converterNyandoc: Scaladoc/Javadoc to markdown converter
Nyandoc: Scaladoc/Javadoc to markdown convertertod esking
 
アクターモデルについて
アクターモデルについてアクターモデルについて
アクターモデルについてTakamasa Mitsuji
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Tsunenori Oohara
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後Joe_noh
 
DBにseedするライブラリつくった
DBにseedするライブラリつくったDBにseedするライブラリつくった
DBにseedするライブラリつくったJoe_noh
 
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)Tsunenori Oohara
 
はじめようGit
はじめようGitはじめようGit
はじめようGittechscore
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門dsuke Takaoka
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 

Destacado (20)

Elixirだ 第3回
Elixirだ 第3回Elixirだ 第3回
Elixirだ 第3回
 
おれおれIFTTT
おれおれIFTTTおれおれIFTTT
おれおれIFTTT
 
Elixirだ 第5回
Elixirだ 第5回Elixirだ 第5回
Elixirだ 第5回
 
Elixirだ 第4回
Elixirだ 第4回Elixirだ 第4回
Elixirだ 第4回
 
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだScalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
 
Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話Scalaのコンパイルを3倍速くした話
Scalaのコンパイルを3倍速くした話
 
Nyandoc: Scaladoc/Javadoc to markdown converter
Nyandoc: Scaladoc/Javadoc to markdown converterNyandoc: Scaladoc/Javadoc to markdown converter
Nyandoc: Scaladoc/Javadoc to markdown converter
 
アクターモデルについて
アクターモデルについてアクターモデルについて
アクターモデルについて
 
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
Shibuya.ex #1 Elixirを本番環境で使ってみたという事例紹介
 
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
 
DBにseedするライブラリつくった
DBにseedするライブラリつくったDBにseedするライブラリつくった
DBにseedするライブラリつくった
 
Deploy to Lobi
Deploy to LobiDeploy to Lobi
Deploy to Lobi
 
地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)地獄のElixir(目黒スタートアップ勉強会)
地獄のElixir(目黒スタートアップ勉強会)
 
はじめようGit
はじめようGitはじめようGit
はじめようGit
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 

Similar a Elixirだ 第1回 - 基礎だ -

F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~Nobuhisa Koizumi
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミングOuka Yuka
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swiftnecocen
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~Fujio Kojima
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかHisashi Aruji
 
Everyday Life with clojure.spec
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.specKent Ohashi
 
初めてのHaskell (表)
初めてのHaskell (表)初めてのHaskell (表)
初めてのHaskell (表)karky7
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Nagi Teramo
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4Kenta Hattori
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみたina job
 
for JSDeferred Code Reading
for JSDeferred Code Readingfor JSDeferred Code Reading
for JSDeferred Code ReadingKenichirou Oyama
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateepocketberserker
 

Similar a Elixirだ 第1回 - 基礎だ - (20)

F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
 
R language definition3.1_3.2
R language definition3.1_3.2R language definition3.1_3.2
R language definition3.1_3.2
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているか
 
Everyday Life with clojure.spec
Everyday Life with clojure.specEveryday Life with clojure.spec
Everyday Life with clojure.spec
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
 
初めてのHaskell (表)
初めてのHaskell (表)初めてのHaskell (表)
初めてのHaskell (表)
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)
 
言語処理系入門4
言語処理系入門4言語処理系入門4
言語処理系入門4
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみた
 
for JSDeferred Code Reading
for JSDeferred Code Readingfor JSDeferred Code Reading
for JSDeferred Code Reading
 
FP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIterateeFP習熟度レベルとFSharpxのIteratee
FP習熟度レベルとFSharpxのIteratee
 

Más de Joe_noh

パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことパフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことJoe_noh
 
Vue.jsのユニットテスト
Vue.jsのユニットテストVue.jsのユニットテスト
Vue.jsのユニットテストJoe_noh
 
Vuexと入力フォーム
Vuexと入力フォームVuexと入力フォーム
Vuexと入力フォームJoe_noh
 
サイクルOJTイントロダクション
サイクルOJTイントロダクションサイクルOJTイントロダクション
サイクルOJTイントロダクションJoe_noh
 
お産ウィークイントロダクション
お産ウィークイントロダクションお産ウィークイントロダクション
お産ウィークイントロダクションJoe_noh
 
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションモバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションJoe_noh
 
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクションWebオペレーション研修イントロダクション
Webオペレーション研修イントロダクションJoe_noh
 
Web開発研修イントロダクション
Web開発研修イントロダクションWeb開発研修イントロダクション
Web開発研修イントロダクションJoe_noh
 
リーンキャンバス
リーンキャンバスリーンキャンバス
リーンキャンバスJoe_noh
 
もっとgit
もっとgitもっとgit
もっとgitJoe_noh
 
できないことはPortで外注
できないことはPortで外注できないことはPortで外注
できないことはPortで外注Joe_noh
 
やってみた -URL外形監視-
やってみた -URL外形監視-やってみた -URL外形監視-
やってみた -URL外形監視-Joe_noh
 
Elixirだ 第6回
Elixirだ 第6回Elixirだ 第6回
Elixirだ 第6回Joe_noh
 
Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)Joe_noh
 
いつかどこかで使えそうな英語
いつかどこかで使えそうな英語いつかどこかで使えそうな英語
いつかどこかで使えそうな英語Joe_noh
 
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告NUTハッカソン2014成果報告
NUTハッカソン2014成果報告Joe_noh
 
@nukokusa_botを支える技術
@nukokusa_botを支える技術@nukokusa_botを支える技術
@nukokusa_botを支える技術Joe_noh
 
孤独のgem開発
孤独のgem開発孤独のgem開発
孤独のgem開発Joe_noh
 
DNSキャッシュポイゾニングについての話
DNSキャッシュポイゾニングについての話DNSキャッシュポイゾニングについての話
DNSキャッシュポイゾニングについての話Joe_noh
 

Más de Joe_noh (20)

パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったことパフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
 
Vue.jsのユニットテスト
Vue.jsのユニットテストVue.jsのユニットテスト
Vue.jsのユニットテスト
 
Vuexと入力フォーム
Vuexと入力フォームVuexと入力フォーム
Vuexと入力フォーム
 
サイクルOJTイントロダクション
サイクルOJTイントロダクションサイクルOJTイントロダクション
サイクルOJTイントロダクション
 
お産ウィークイントロダクション
お産ウィークイントロダクションお産ウィークイントロダクション
お産ウィークイントロダクション
 
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクションモバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
 
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクションWebオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
 
Web開発研修イントロダクション
Web開発研修イントロダクションWeb開発研修イントロダクション
Web開発研修イントロダクション
 
リーンキャンバス
リーンキャンバスリーンキャンバス
リーンキャンバス
 
もっとgit
もっとgitもっとgit
もっとgit
 
できないことはPortで外注
できないことはPortで外注できないことはPortで外注
できないことはPortで外注
 
やってみた -URL外形監視-
やってみた -URL外形監視-やってみた -URL外形監視-
やってみた -URL外形監視-
 
Elixirだ 第6回
Elixirだ 第6回Elixirだ 第6回
Elixirだ 第6回
 
Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)Declaimerっていうやつつくった(つくってる)
Declaimerっていうやつつくった(つくってる)
 
いつかどこかで使えそうな英語
いつかどこかで使えそうな英語いつかどこかで使えそうな英語
いつかどこかで使えそうな英語
 
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
 
@nukokusa_botを支える技術
@nukokusa_botを支える技術@nukokusa_botを支える技術
@nukokusa_botを支える技術
 
孤独のgem開発
孤独のgem開発孤独のgem開発
孤独のgem開発
 
DNSキャッシュポイゾニングについての話
DNSキャッシュポイゾニングについての話DNSキャッシュポイゾニングについての話
DNSキャッシュポイゾニングについての話
 
working
workingworking
working
 

Elixirだ 第1回 - 基礎だ -