Submit Search
Upload
Erlang で再帰
•
0 likes
•
2,326 views
snow long
Follow
Erlang だと100000の階乗の結果もかえってくるよ
Read less
Read more
Software
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
llvm入門
llvm入門
MITSUNARI Shigeo
emcjp Item 42
emcjp Item 42
MITSUNARI Shigeo
HPC Phys-20201203
HPC Phys-20201203
MITSUNARI Shigeo
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
MITSUNARI Shigeo
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
Deep Learning JP
Altanative macro
Altanative macro
Motohiro KOSAKI
立命合宿2016Day3:D問題
立命合宿2016Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
Recommended
llvm入門
llvm入門
MITSUNARI Shigeo
emcjp Item 42
emcjp Item 42
MITSUNARI Shigeo
HPC Phys-20201203
HPC Phys-20201203
MITSUNARI Shigeo
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
MITSUNARI Shigeo
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
[DL Hacks] Deterministic Variational Inference for RobustBayesian Neural Netw...
Deep Learning JP
Altanative macro
Altanative macro
Motohiro KOSAKI
立命合宿2016Day3:D問題
立命合宿2016Day3:D問題
HCPC: 北海道大学競技プログラミングサークル
Emcjp item33,34
Emcjp item33,34
MITSUNARI Shigeo
Coqでsprintf
Coqでsprintf
Masaki Hara
Coqでsprintf
Coqでsprintf
Masaki Hara
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
Slide dist
Slide dist
MITSUNARI Shigeo
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
blackenedgold
Prosym2012
Prosym2012
MITSUNARI Shigeo
Sort
Sort
oupc
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
マーク&スイープ勉強会
マーク&スイープ勉強会
7shi
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)
Shunji Nishimura
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
V6でJIT・部分適用・継続
V6でJIT・部分適用・継続
7shi
Variational autoencoder
Variational autoencoder
Mikio Shiga
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
0614
0614
RIKEN Center for Integrative Medical Science Center (IMS-RCAI)
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16
Mitsuru Kariya
More Related Content
What's hot
Coqでsprintf
Coqでsprintf
Masaki Hara
Coqでsprintf
Coqでsprintf
Masaki Hara
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
Slide dist
Slide dist
MITSUNARI Shigeo
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
blackenedgold
Prosym2012
Prosym2012
MITSUNARI Shigeo
Sort
Sort
oupc
Wavelet matrix implementation
Wavelet matrix implementation
MITSUNARI Shigeo
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
マーク&スイープ勉強会
マーク&スイープ勉強会
7shi
フラグを愛でる
フラグを愛でる
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Yuichi Sakuraba
Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)
Shunji Nishimura
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
Takeshi Yamamuro
V6でJIT・部分適用・継続
V6でJIT・部分適用・継続
7shi
Variational autoencoder
Variational autoencoder
Mikio Shiga
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
0614
0614
RIKEN Center for Integrative Medical Science Center (IMS-RCAI)
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16
Mitsuru Kariya
What's hot
(20)
Coqでsprintf
Coqでsprintf
Coqでsprintf
Coqでsprintf
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Slide dist
Slide dist
(define)なしで再帰関数を定義する
(define)なしで再帰関数を定義する
Prosym2012
Prosym2012
Sort
Sort
Wavelet matrix implementation
Wavelet matrix implementation
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
マーク&スイープ勉強会
マーク&スイープ勉強会
フラグを愛でる
フラグを愛でる
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
Agdaで回路設計(をしたい)
Agdaで回路設計(をしたい)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
V6でJIT・部分適用・継続
V6でJIT・部分適用・継続
Variational autoencoder
Variational autoencoder
LLVM最適化のこつ
LLVM最適化のこつ
0614
0614
Effective Modern C++ 勉強会#3 Item16
Effective Modern C++ 勉強会#3 Item16
Erlang で再帰
1.
erlang で再帰 2015-09-19 第30回ゆるびい会 @snowlong
2.
なぜ再帰か
3.
erlang は for/while といった ループ構造を持たない for
やwhile は甘え
4.
erlang にはfor/while がない •
再帰を使ってループを表現する
5.
再帰がわからないと コードも書けない!
6.
!!!!
7.
再帰関数の条件 • 終了条件 • 自分自身を呼び出す関数
8.
というわけで 階乗を求めるコードから
9.
階乗を求めるコード 実質2行、とてもシンプルに記述できる
10.
階乗を求めるコード(末尾再帰) Accはアキュムレータ(一時変数)
11.
計測 階乗を求める 1000! = 1000*999*998*997*…*1
12.
1000の階乗を求める 末尾再帰なし/あり 計測にはtimer:tc/3 を用いる
13.
計測結果(末尾再帰なし) • timer:tc(recursive, fac,
[1000]). • 2134μs = 2.134ms
14.
計測結果(末尾再帰あり) • timer:tc(recursive_tail, fac,
[1000]). • 1620μs = 1.620ms
15.
もうちょっとやってみる。
16.
100000の階乗を求める 末尾再帰なし/あり 計測にはtimer:tc(3) を用いる
17.
計測結果(末尾再帰なし) • timer:tc(recursive, fac,
[100000]). • 9173636μs = 9173.636ms
18.
計測結果(末尾再帰あり) • timer:tc(recursive_tail, fac,
[100000]). • 8765618μs = 8765.618ms
19.
計測結果 まとめ • 末尾再帰ありの方が高速 •
erlang すごい
20.
おまけ
21.
すごいErlangゆかいに学ぼう!
22.
Web にも日本語訳あります • http://www.ymotongpoo.com/works/lyse- ja/index.html
23.
やったね
Download now