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
Option Type
Search
wagyu298
June 01, 2016
Programming
0
1.3k
Option Type
Swift Option Type pitfalls
wagyu298
June 01, 2016
Tweet
Share
More Decks by wagyu298
See All by wagyu298
Swagger Codegen
wagyu298
1
2.7k
HTTP/2 Mobile
wagyu298
0
980
Android VM
wagyu298
0
710
process.nextTick differences between node-v0.8 and node-v0.11
wagyu298
1
1.8k
Other Decks in Programming
See All in Programming
AI巻き込み型コードレビューのススメ
nealle
2
2.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
300
CSC307 Lecture 14
javiergs
PRO
0
440
個人開発は儲からない - それでも開発開始1ヶ月で300万円売り上げた方法
taishiyade
0
120
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
600
atmaCup #23でAIコーディングを活用した話
ml_bear
4
710
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
120
Oxlint JS plugins
kazupon
1
1.1k
AHC061解説
shun_pi
0
260
AIに仕事を丸投げしたら、本当に楽になれるのか
dip_tech
PRO
0
170
Premier Disciplin for Micro Frontends Multi Version/ Framework Scenarios @OOP 2026, Munic
manfredsteyer
PRO
0
190
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
180
Featured
See All Featured
The Curse of the Amulet
leimatthew05
1
9.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
The SEO Collaboration Effect
kristinabergwall1
0
370
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
110
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Amusing Abliteration
ianozsvald
0
120
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Context Engineering - Making Every Token Count
addyosmani
9
720
The agentic SEO stack - context over prompts
schlessera
0
670
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
110
Code Review Best Practice
trishagee
74
20k
Transcript
0QUJPO5ZQF !XBHZV
ࠓͷϙΠϯτ w ओʹ4XJGUͷ͠·͢ w ࠷ۙͷ/VMM͕ೖͰ͖ͳ͍ϓϩάϥϛϯάݴޠ͕૿͑ͯΔ w )BTLFMM 4DBMB ' 3VTU
4XJGU ,PUMJO FUD w ࣮ݱ͢ΔΈͷҰ͕ͭ0QUJPO5ZQF w ʢ4XJGUͰ0QUJPOBMɺ,PUMJOͰ/VMMBCMFͱݴ͍·͢ʣ w ࠷ۙͷྲྀߦΓͳͷͰ+BWB4DSJQUͱ͔ʹ͖͡ʹೖΔ͔ w ϥΠϒϥϦϕʔεͩͱOPEFPQUJPOTͱ͔͋ΔΜ͚ͩͲݴޠαϙʔτ͕ͳ͍ ͱ͠ΜͲ͍ w ͬͯΈΔͱͪΐ͍ͪΐ͍τϥοϓ͕͋ΔͷͰͦͷลΛڞ༗
CJMMJPOEPMMBSNJTUBLF w *DBMMJUNZCJMMJPOEPMMBSNJTUBLF*UXBTUIFJOWFOUJPOPGUIFOVMMSFGFSFODFJO"U UIBUUJNF *XBTEFTJHOJOHUIFpSTUDPNQSFIFOTJWFUZQFTZTUFNGPSSFGFSFODFTJOBO PCKFDUPSJFOUFEMBOHVBHF "-(0-8 .ZHPBMXBTUPFOTVSFUIBUBMMVTFPGSFGFSFODFT TIPVMECFBCTPMVUFMZTBGF XJUIDIFDLJOHQFSGPSNFEBVUPNBUJDBMMZCZUIFDPNQJMFS#VU*
DPVMEOUSFTJTUUIFUFNQUBUJPOUPQVUJOBOVMMSFGFSFODF TJNQMZCFDBVTFJUXBTTPFBTZ UPJNQMFNFOU5IJTIBTMFEUPJOOVNFSBCMFFSSPST WVMOFSBCJMJUJFT BOETZTUFNDSBTIFT XIJDIIBWFQSPCBCMZDBVTFEBCJMMJPOEPMMBSTPGQBJOBOEEBNBHFJOUIFMBTUGPSUZZFBST w ͦΕԯυϧʹ૬͢ΔࢲͷޡΓͩɻOVMMࢀরΛൃ໌ͨ͠ͷͷ͜ͱͩͬͨɻ࣌ɺ ࢲΦϒδΣΫτࢦݴޠ "-(0-8 ʹ͓͚ΔࢀরͷͨΊͷแׅతܕγεςϜΛઃܭ͍ͯͨ͠ɻ ඪɺίϯύΠϥͰͷࣗಈνΣοΫͰશͯͷࢀর͕શʹ҆શͰ͋Δ͜ͱΛอূ͢Δ͜ͱͩͬ ͨɻ͔͠͠ɺࢲ୯ʹͦΕ͕༰қͩͱ͍͏͚ͩͰɺແޮͳࢀরΛؚΊΔ༠ʹ߅Ͱ͖ͳ͔ͬͨɻ ͜Εɺޙʹ͑Εͳ͍աͪɺ੬ऑੑɺγεςϜΫϥογϡΛҾ͖ى͜͠ɺաڈؒͰ ԯυϧ૬ͷۤ௧ͱଛΛҾ͖ىͨ͜͠ͱΈΒΕΔɻ w IUUQXXXJOGPRDPNQSFTFOUBUJPOT/VMM3FGFSFODFT5IF#JMMJPO%PMMBS.JTUBLF5POZ )PBSF
4XJGU w 4XJGUJTBHFOFSBMQVSQPTFQSPHSBNNJOH MBOHVBHFCVJMUVTJOHBNPEFSOBQQSPBDIUP TBGFUZ QFSGPSNBODF BOETPGUXBSFEFTJHO QBUUFSOT w IUUQTTXJGUPSHBCPVU
ҎԼɺ4XJGUͷσϞΛ ަ͑ͳ͕Βߦ͖·͢
/VMMFSSPS w 4XJGUͷී௨ OPOPQUJPOBM ͷม/VMMඇڐ༰Ͱ͢ w 4XJGUͰOJM͕/VMMͰ͢ w OJMΛมʹೖ͢ΔͱΤϥʔʹͳΓ·͢ w
దʹ4XJGU৮Δͱଟ࠷ॳʹૺ۰͢ΔίϯύΠϥΤϥʔ w Α͔ͬͯ͘ͳ͍ͱΠϥΠϥ͢Δ w 4XJGUݴޠʹΈࠐ·Ε͍ͯΔػೳͰ͢
/VMMFSSPS WBSTUS4USJOHOJM
ॳظԽ w มඇOJMͰॳظԽ͠·͢ w ʢͪͳΈʹ4XJGUͰWBS͕WBSJBCMFɺMFU͕ DPOTUBOUͳͷͰ͕͢ɺҰൠతͳมʗఆͱ؆୯ ʹଊ͑Δͱ৭ʑ͍͕͋͜͠Γ·͢ͷͰɺWBS MFUΛ۠ผͤͣมͱදه͍ͯ͠·͢ʣ
ॳظԽ WBSTUS4USJOHl999z
0QUJPOBM w OJMͰॳظԽ͍ͨ͠߹0QUJPOBMܕมΛ༻ ͠·͢ w ܕͷޙΖʹ Λ͚Δͱ0QUJPOBMܕมʹͳΓ· ͢
0QUJPOBM WBSTUS4USJOH OJM QSJOU TUS
0QUJPOBM w ඇ0QUJPOBMܕมʹ0QUJPOBMܕมΛೖ͢Δ ͜ͱͰ͖·ͤΜ w 4XJGUΛͬͯదʹίʔσΟϯά͢Δͱଟ࠷ॳ ʹૺ۰͢Δҙຯෆ໌ͳίϯύΠϥΤϥʔ
0QUJPOBM GVODG TUS4USJOH \ QSJOU TUS ^ WBSTUS4USJOH OJM
G TUS
6OXSBQ w 0QUJPOBMܕม͔Βඇ0QUJPOBMܕͷΛऔΓग़ ͢͜ͱΛ4XJGUͰ6OXSBQͱݺͼ·͢ɻ w 6OXSBQ͢Δʹ0QUJPOBMܕมͷޙΖʹΛ ͚·͢ɻ
6OXSBQ GVODG TUS4USJOH \ QSJOU TUS ^ WBSTUS4USJOH """
G TUS
0QUJPOBM$IBJOJOH w 0QUJPOBMܕมͷϝϯό 1SPQFSUZNFUIPE ʹ ҆શʹΞΫηε͢Δํ๏Ͱ͢ɻ w 0QUJPOBMมͷޙΖʹ Λ͚ͯϝϯόʹΞΫη ε͢ΔͱɺOJMඇOJMΘͣϝϯόʹΞΫηεͰ͖
·͢ɻ
0QUJPOBM$IBJOJOH DMBTT5\ WBSTUS4USJOH999 ^ WBSU5 5 WBSTUSU TUS QSJOU
TUS UOJM TUSU TUS QSJOU TUS
0QUJPOBM$IBJOJOH w 0QUJPOBM$IBJOJOH͕ฦ͢0QUJPOBMܕʹͳΓ ·͢ w 0QUJPOBM$IBJOJOHͰऔಘͨ͠Λඇ0QUJPOBMܕ มඇ0QUJPOBMܕҾΛड͚औΔؔʹͦ͏ ͱ͢ΔͱίϯύΠϧΤϥʔ͕ൃੜ͠·͢ w 4XJGU͕͔͖ͬͯͨͱࢥ͏͜Ζʹૺ۰͢Δͱࢥ
͍·͢
0QUJPOBM$IBJOJOH DMBTT5\ WBSTUS4USJOH999 ^ GVODG T4USJOH \ QSJOU T
^ WBSU5 5 G U TUS
0QUJPOBM$IBJOJOH w ༨ஊͰ͕͢ w ͋͘·Ͱ0QUJPOBM$IBJOJOHͳͷͰඌ ʹ͚Ε·ͤΜ w $P⒎FF4DSJQUॻ͍ͯΔͱΑ͔͘Βͳ͘ͳΔ w 6OXSBQͳͷ͚Ε·͢
0QUJPOBM$IBJOJOH DMBTT5\ WBST4USJOH 99 ^ WBSD5 WBSTDT WBSUDT
JGMFUHVBSEFMTF w 0QUJPOBMܕͷม0QUJPOBM$IBJOJOHͨ͠ʹ ҆શʹΞΫηε͍ͨ͠߹JGMFU͔HVBSEFMTF ߏจ͕ศརͰ͢
JGMFU DMBTT5\ WBSTUS4USJOH999 ^ GVODG T4USJOH \ QSJOU T
^ WBSU5 5 JGMFUTU TUS\ G T ^
HVBSEFMTF GVODG T4USJOH \ HVBSEMFUUTFMTF\ SFUVSO ^ QSJOU U
^ G OJM
*NQMJDJUMZ6OXSBQQFE 0QUJPOBM w *NQMJDJUMZ҉త w ͱ͔ Λॻ͔ͳͯ͘ɺ҉తʹ6OXSBQ͞Ε Δ0QUJPOBMܕͷ͜ͱͰ͢
*NQMJDJUMZ6OXSBQQFE 0QUJPOBM WBST4USJOHOJM JGTOJM\ QSJOU T ^
NPOBE w 0QUJPOBMܕʹNBQͱqBU.BQͱ͍͏ϝιου ͕ఆٛ͞Ε͍ͯ·͢ɻ w NBQ0QUJPOBMܕม͕ඇOJMΛ࣋ͭ߹ʹؔ Λద༻͠0QUJPOBMܕͰฦ͠·͢ɻ w qBU.BQ0QUJPOBMܕม͕ඇOJMΛ࣋ͭ߹ʹ ؔΛద༻͠ඇ0QUJPOBMܕͰฦ͠·͢ɻ
NPOBE WBST4USJOH 999 WBSUTNBQ\ """ ^ QSJOU U
UTqBU.BQ\ """ ^ QSJOU U WBSVTNBQ\ 0QUJPOBM4USJOH """ ^ QSJOU V UTqBU.BQ\ 0QUJPOBM4USJOH """ ^ QSJOU U
࣮໘ͷ w 0QUJPOBM*NQMJDJUMZ6OXSBQQFE0QUJPOBMܕม (FOFSJDͰ࣮͞Ε͍ͯ·͢ w ΛΘͣ(FOFSJDߏจͰมఆٛ͢Δ͜ ͱՄೳͰ͢ w 4XJGUʹݶΒͣଞͷݴޠࣅ༷ͨͳײ͡Ͱ͢
࣮໘ͷ WBST0QUJPOBM4USJOH""" WBSU*NQMJDJUMZ6OXSBQQFE0QUJPOBM4USJOH"""
ϓϩάϥϛϯάαϙʔτ w ͜ͷลͰOJMॳظԽΤϥʔͱ͔ग़ͯ͠·͢ w IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFS JODMVEFTXJGU"45 %JBHOPTUJDT4FNBEFG-- w IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFS MJC4FNB$4%JBHDQQ-
0QUJPO5ZQFͷఆٛ w 0QUJPO5ZQF/POF͔4PNF WBMVF Λฦ͢ 5BHHFE6OJPO λά͖ڞ༻ମ Ͱ͢ return: A
! A? = a 7! Just a bind: A? ! ( A ! B? ) ! B? = a 7! f 7! ( Nothing if a = Nothing f a0 if a = Just a0
͓ΘΓ