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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
chikoski
November 25, 2016
Technology
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20161124-wajs-fizzbuzz
FizzBuzz in JavaScript
chikoski
November 25, 2016
More Decks by chikoski
See All by chikoski
20210825_ossx
chikoski
0
350
festudy02-wasm
chikoski
1
1.1k
An overview of WebAssembly; how it is used, created, and applied?
chikoski
1
790
Functions in JavaScript
chikoski
1
1.2k
20171018-WASM
chikoski
2
1.5k
20171002-wejs
chikoski
1
620
20170924-html5conference-wasm
chikoski
5
10k
Equivalence_in_JS
chikoski
0
1.6k
いまさら振り返るPromise
chikoski
1
610
Other Decks in Technology
See All in Technology
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
580
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
160
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.9k
脆弱性対応、どこで線を引くか
rymiyamoto
0
350
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
170
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.9k
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
2.2k
AIっぽい文章を採点して人間らしく直すアプリを作ってみた
yama3133
2
120
失敗を資産に変えるClaude Code
shinyasaita
0
300
地球に⽣きるAI —GeoAIと「中間領域」— / AI Living on Earth — GeoAI and the “Intermediate Layer” —
ykiyota
0
270
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
720
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
580
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
170
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Why Our Code Smells
bkeepers
PRO
340
58k
Documentation Writing (for coders)
carmenintech
77
5.4k
How to Talk to Developers About Accessibility
jct
2
230
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Typedesign – Prime Four
hannesfritz
42
3.1k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
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 サーバー • ✌頭の体操は楽しい!✌