Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20161124-wajs-fizzbuzz
Search
chikoski
November 25, 2016
Technology
340
0
Share
20161124-wajs-fizzbuzz
FizzBuzz in JavaScript
chikoski
November 25, 2016
More Decks by chikoski
See All by chikoski
20210825_ossx
chikoski
0
340
festudy02-wasm
chikoski
1
1k
An overview of WebAssembly; how it is used, created, and applied?
chikoski
1
770
Functions in JavaScript
chikoski
1
1.2k
20171018-WASM
chikoski
2
1.4k
20171002-wejs
chikoski
1
620
20170924-html5conference-wasm
chikoski
5
10k
Equivalence_in_JS
chikoski
0
1.5k
いまさら振り返るPromise
chikoski
1
610
Other Decks in Technology
See All in Technology
多角的な視点から見たAGI
terisuke
0
130
Agent Skillsで実現する記憶領域の運用とその後
yamadashy
2
1.5k
Oracle Cloud Infrastructure:2026年4月度サービス・アップデート
oracle4engineer
PRO
0
380
データモデリング通り #5オンライン勉強会: AIに『ビジネスの文脈』を教え込むデータモデリング
datayokocho
0
190
大学職員のための生成AI最前線 :最前線を、AIガバナンスとして読み直すためのTips
gmoriki
2
3.9k
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
4
320
小さいVue.jsを30分で作る
hal_spidernight
0
140
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
380
Every Conversation Counts
kawaguti
PRO
0
160
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
180
2026年春のAgentCoreアプデ 細かいやつ全部まとめ
minorun365
3
210
エンタープライズの厳格な制約を開発者に意識させない:クラウドネイティブ開発基盤設計/cloudnative-kaigi-golden-path
mhrtech
0
360
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Marketing to machines
jonoalderson
1
5.2k
Building Adaptive Systems
keathley
44
3k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
170
Crafting Experiences
bethany
1
140
Code Review Best Practice
trishagee
74
20k
Agile that works and the tools we love
rasmusluckow
331
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Transcript
JavaScript を勉強するために最初にやったこと N. Shimizu (
[email protected]
) We are JavaScripters@1st (2016/11/24)
/4IJNJ[V!DIJLPTLJ ˖ 傈劤〷̔04̔فؚٗٓىؚٝ鎉铂 ˖ ⛆加㖩ח֮8FC⡲⠓爡ד⫴ְגְתׅ ˖ 'JSFGPY 'JSFGPYGPSJ04 %FW5PPMT ˖
3VTUBTNKT8FC"TTFNCMZ8FC73(BNJOH ˖ فؚٗٓىؚٝ鎉铂ה؟حؕ٦鋅ךָ㥨ֹדׅ ˖ 㘗ך䓼ְ鎉铂ָ㥨ֹדׅ ˖ IUUQTTQFBLFSEFDLDPNDIJLPTLJ
'J[[#V[[
FizzBuzz 問題 • 3 の倍数:Fizzと出力する • 5の倍数:Buzzと出力する • 3の倍数で、しかも5の倍数の場合:FizzBuzzと出力する •
それ以外:数値そのものを出力する 'J[[ #V[[ 'J[[ #V[[ ˘ ˘
JS GPS MFUJJJ \ JG JJ \ DPOTPMFMPH 'J[[#V[[
^FMTFJG J \ DPOTPMFMPH 'J[[ ^FMTFJG J \ DPOTPMFMPH #V[[ ^FMTF\ DPOTPMFMPH J ^ ^ シンプルなFizzBuzzの実装
JS DPOTUB<
> DPOTUTFRBNBQ GJ[[CV[[ DPOTPMFMPH TFRKPJO =O GVODUJPOGJ[[CV[[ O \ JG OO \ SFUVSO'J[[#V[[ ^FMTFJG O \ SFUVSO'J[[ ^FMTFJG O \ SFUVSO#V[[ ^FMTF\ SFUVSO O ^ ^ 関数プログラミング的なFizzBuzz実装
map:配列のひとつひとつの要素に関数を適用して新しい配列を作る
'J[[ #V[[ 'J[[ #V[[ ˘ ˘
ペアノの公理:自然数の定義 • ジュゼッペ・ペアノ(1858-1932)によって定義された自然数の定義 (1891) • 自然数は次の条件を満たす • 自然数0が存在する • 任意の自然数
a には、その後者 suc(a) が存在する • 0はいかなる自然数の後者ではない • 異なる自然数は、異なる後者を持つ • 0がある性質を満たし、a がある性質を満たせば suc(a) もまたその性質を満 たす時、全ての自然数はその性質を満たす IUUQTKBXJLJQFEJBPSHXJLJآُئحل٥ل،ظ
自然数の構造:はじまりの町と、つぎの町 • スタート地点と、次の地点への移動で定義されるもののことを「自然数」と呼びました • 0:スタート地点 • 後者関数suc: 次の地点への移動 • 線形リストと同じ構造を持ちます
TVD TVD TVD TVD
JS DMBTT1FBOP\ DPOTUSVDUPS QSFW \ UIJTQSFWQSFW ^ TVD \ SFUVSOOFX1FBOP
UIJT ^ ^ 1FBOP@[FSPOFX1FBOP OVMM 1FBOP[FSPGVODUJPO \ SFUVSO1FBOP@[FSP ^ DPOTU[FSP1FBOP[FSP DPOTUPOF[FSPTVD DPOTUUXPPOFTVD DPOTUGPVSUXPTVD TVD 自然数の実装
JS 1FBOPQSPUPUZQFUP@JGVODUJPO \ SFUVSOUIJTQSFW UIJTQSFWUP@J ^ 1FBOPQSPUPUZQFUP4USJOH
GVODJUPO \ SFUVSOUIJTUP@J ^ DPOTUUXP 1FBOP[FSP TVD TVD DPOTPMFMPH UXPUP@J 数値や文字列への変換用メソッドを追加
JS 1FBOPSBOHFGVODUJPO O \ MFUSFU<1FBOP[FSP > GPS MFUUNQ1FBOP[FSP OO
\ UNQUNQTVD SFUQVTI UNQ ^ SFUVSOSFU ^ 1FBOPDSFBUFGVODUJPO O \ MFUS1FBOPSBOHF O SFUVSOSQPQ ^ 範囲や、即値からの作成
JS DPOTUUFYU1FBOPSBOHF NBQ JJUP@J NBQ GJ[[CV[[
KPJO =O DPOTPMFMPH UFYU GVODUJPOGJ[[CV[[ O \ MFUMBCFM JG O \MBCFM 'J[[^ JG O \MBCFM #V[[^ JG MBCFMMFOHUI \ MBCFM O ^ SFUVSOMBCFM ^ FizzBuzz
まとめ:FizzBuzz だけでも奥が深い • 単純に書くだけでもいいけど、工夫するとさらに楽しい! • 順番に出力するだけで満足しててもいいけど • 関数的に書いて見る、クラスを作る • もっとできます
• イテレーター / ジェネレーターにしてみる • リアクティブプログラミング • 並列プログラミング • FizzBuzz サーバー • ✌頭の体操は楽しい!✌