Submit Search
20160428 html5jwebplat
6 likes
3,580 views
Noritada Shimizu
JavaScript の関数プログラミング要素について解説してます。あとはパフォーマンスツールの例などもあります。
Technology
Read more
1 of 93
Download now
Downloaded 11 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
More Related Content
PPTX
MP2011#01
Noritada Shimizu
PDF
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
PDF
関数型プログラミング in javascript
Ryuma Tsukano
PDF
20150512 webgl-off-the-main-thread
Noritada Shimizu
PDF
20160803 devrel
Noritada Shimizu
PDF
20160601 devtools
Noritada Shimizu
PDF
20160713 webvr
Noritada Shimizu
PDF
Designing Teams for Emerging Challenges
Aaron Irizarry
MP2011#01
Noritada Shimizu
asm.js x emscripten: The foundation of the next level Web games
Noritada Shimizu
関数型プログラミング in javascript
Ryuma Tsukano
20150512 webgl-off-the-main-thread
Noritada Shimizu
20160803 devrel
Noritada Shimizu
20160601 devtools
Noritada Shimizu
20160713 webvr
Noritada Shimizu
Designing Teams for Emerging Challenges
Aaron Irizarry
Similar to 20160428 html5jwebplat
(16)
PDF
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
PPTX
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
PPTX
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
PPTX
クラウド利用も可能になって身近になった超高速リアルタイムEAI「Magic xpi」
Tsuyoshi Watanabe
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
PPTX
The evolution of c#
leverages_event
PDF
Retry monad for transient fault handling
zecl1231
PPTX
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
PDF
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
Staffnet_Inc
PDF
初心者向けGo言語勉強会
leverages_event
PPTX
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
PPTX
第13回 CreatorsMeetup 〜HTML5時代に必要なスキルと考え方〜
Daisuke Yamazaki
PDF
Devsumi 17 d-2
Daizen Ikehara
PDF
devsumi17 d-2
dikehara
PDF
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
PDF
Fxug
satoshi
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
クラウド利用も可能になって身近になった超高速リアルタイムEAI「Magic xpi」
Tsuyoshi Watanabe
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
The evolution of c#
leverages_event
Retry monad for transient fault handling
zecl1231
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
HTML5スマートフォン業務アプリ開発セミナー(応用)テキストの抜粋
Staffnet_Inc
初心者向けGo言語勉強会
leverages_event
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
第13回 CreatorsMeetup 〜HTML5時代に必要なスキルと考え方〜
Daisuke Yamazaki
Devsumi 17 d-2
Daizen Ikehara
devsumi17 d-2
dikehara
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
Fxug
satoshi
Ad
More from Noritada Shimizu
(20)
PDF
Mozilla とブラウザゲーム
Noritada Shimizu
PDF
2016 gunma.web games-and-asm.js
Noritada Shimizu
PDF
20151224-games
Noritada Shimizu
PDF
20151128 firefoxos-handson
Noritada Shimizu
PDF
20151117 devtools
Noritada Shimizu
PDF
Inspection & Tweak: Firefox を使ったフロント開発
Noritada Shimizu
PDF
20150822 osc-shimane
Noritada Shimizu
PDF
20150829 firefox-os-handson
Noritada Shimizu
PDF
20150829 firefox-os
Noritada Shimizu
PDF
20150727 Development tools for Firefox OS apps
Noritada Shimizu
PDF
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Noritada Shimizu
PDF
Firefox OSアプリ開発ハンズオン(Hello World編)
Noritada Shimizu
PDF
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
Noritada Shimizu
PDF
Application submission, management and manetization in Firefox Marketplace
Noritada Shimizu
PDF
つくろう!Firefox OS アプリ
Noritada Shimizu
PDF
20150118 firefoxos-handson-helloworld
Noritada Shimizu
PDF
20141115 fx os-codereading
Noritada Shimizu
PDF
20141030 html5j-firefox os-deviceapi
Noritada Shimizu
PDF
20140830 firefox os-sampler
Noritada Shimizu
PDF
20140801 webrtc on-firefox
Noritada Shimizu
Mozilla とブラウザゲーム
Noritada Shimizu
2016 gunma.web games-and-asm.js
Noritada Shimizu
20151224-games
Noritada Shimizu
20151128 firefoxos-handson
Noritada Shimizu
20151117 devtools
Noritada Shimizu
Inspection & Tweak: Firefox を使ったフロント開発
Noritada Shimizu
20150822 osc-shimane
Noritada Shimizu
20150829 firefox-os-handson
Noritada Shimizu
20150829 firefox-os
Noritada Shimizu
20150727 Development tools for Firefox OS apps
Noritada Shimizu
Firefox OS でアプリを作るときに気をつけたい N 個のこと
Noritada Shimizu
Firefox OSアプリ開発ハンズオン(Hello World編)
Noritada Shimizu
WebVR(html5j TV部、WebVRとかVRのUIとか勉強会)
Noritada Shimizu
Application submission, management and manetization in Firefox Marketplace
Noritada Shimizu
つくろう!Firefox OS アプリ
Noritada Shimizu
20150118 firefoxos-handson-helloworld
Noritada Shimizu
20141115 fx os-codereading
Noritada Shimizu
20141030 html5j-firefox os-deviceapi
Noritada Shimizu
20140830 firefox os-sampler
Noritada Shimizu
20140801 webrtc on-firefox
Noritada Shimizu
Ad
20160428 html5jwebplat
1.
Y=f=>(x=>f(x(x)))(x=>f(x(x))) MozillaJapanテクニカルマーケティング 清水智公(nshimizu@mozilla-japan.org/@chikoski) html5jWebプラットフォーム部第12回勉強会Satisfunction(){...};
2.
Firefox for iOS FirefoxをiPhone、iPad、 そしてiPod
touchでも
3.
N.Shimizu • Mozilla Japan:
L10N / dev-rel in devtools and games • html5j Web プラットフォーム部、 Firefox OS、Firefox OS コードリーディング、 html5j ゲーム部 • @chikoski • プログラミング言語、圏論、分類、ベイジアン、サッカー
4.
データと操作
5.
数学的な関数:変数に依存して決まる値、もしくはその対応関係のこと
8.
得点 得点率 100点 満点 合格点 以上? 採点
11.
関数型言語の代表的特徴 JavaScript 第一級関数 ◯ 参照透過性
×(破壊的な操作が可能) 単一代入 △(constを利用すれば実現可能) 型による制約 ×(duck typing) 遅延評価 ×(常に正格な評価を行う) 直和型 ×
12.
関数定義
13.
function 文:名前付きの関数を定義する文
14.
function 式:無名関数を定義する式
15.
よく見る無名関数の利用例
16.
よく見る無名関数の利用例
17.
式: 評価すると値になるもの
18.
式の例
19.
代入をすることによって値に名前をつける
20.
無名関数の定義も式
21.
関数を変数に代入できる
22.
関数の変数への代入、代入された関数の参照
23.
関数の呼び出し
24.
関数の呼び出し
25.
関数を引数にとる関数
26.
配列の値の合計を求める関数
27.
配列の値の2乗和を求める関数
28.
配列の値の3乗和を求める関数
29.
配列の各要素に関数 f を適用した結果の総和を求める関数
30.
関数を切り替えることで振る舞いを変更する
31.
よく見る関数を引数とする関数の呼び出し
32.
リスト処理
33.
filter:フィルタする判断をパラメータ化
34.
sort:順序の判定方法をパラメータ化
35.
map / reduce:写像方法と左畳み込みの方法をパラメータ化
36.
every / some:条件の判定をパラメータ化
37.
forEach:繰り返す手続きをパラメータ化
38.
関数を返す関数
39.
関数を返り値とする関数を定義できる
40.
引数の片方を固定することで、特殊な関数を定義できる
41.
関数を返す関数の利用例: 関数の一部分を固定し、特殊な関数を作成する
42.
関数を返す関数を利用して、「同じようなことをする」関数を生成できる
43.
関数を引数とし、関数を返す関数
44.
関数を切り替えることで振る舞いを変更する
45.
リストの総和を求める関数を返す関数 sigma
46.
合計、二乗和、三乗和を求める関数の定義と利用
47.
参照透過性
48.
純粋な関数:同じ入力であれば、常に同じ値が出力される
50.
参照透過性のある関数
51.
参照透過性のない関数:呼び出すたびに返り値の値が異なる
52.
破壊的な操作 / 副作用:状態を変更する操作
53.
クロージャを利用して、状態のスナップショットを取る
54.
参照透過なカウンターの利用例
55.
オブジェクト指向で実装したカウンタの利用例
56.
カリー化
57.
足し算を行う関数
58.
関数を返すように書き換える
59.
関数を返す関数
60.
書き換えた add の使用例
61.
カリー化:複数の引数をとる関数を1つの引数をとる関数にかえること
62.
カリー化を利用した条件分岐の実現
63.
自然数の関数表現
64.
Yコンビネータ
65.
再代入:同じ変数に対する代入
66.
x に基づく仕事をしていいのか?
67.
const:ローカルな定数の作成
68.
const:ローカルな定数の作成
69.
コールスタック Call stack consumption
in recursive calls
71.
n * factorial(n
- 1); のバイトコード
82.
コールスタックサイズの調査
83.
Runtime Call stack
size Firefox 50994 Google Chrome 10402 node.js 11034
84.
コンソールで実行すると call stack
があふれる
85.
コンソールで実行すると call stack
があふれる
86.
strict モードの末尾再帰はインライン展開される(ES2015)
87.
インライン展開のイメージ
88.
パフォーマンス
89.
普通のエラーハンドリング
90.
Promiseによるエラーハンドリング
91.
イベント:時系列データ
92.
イベント A B
C D
Download