Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introducing Rust
Search
Bucharest FP
December 17, 2014
Programming
2
450
Introducing Rust
http://bucharestfp.ro/2014/12/17/rust/
Bucharest FP
December 17, 2014
Tweet
Share
More Decks by Bucharest FP
See All by Bucharest FP
The Curry-Howard-Lambek Correspondence
bucharestfp
3
880
An Applicative Application
bucharestfp
0
10k
Composition in FP
bucharestfp
0
360
Formal Design, Implementation and Verification of Blockchain Languages and Virtual Machines
bucharestfp
1
650
PureScript & Halogen
bucharestfp
1
440
A Simple Sudoku Solver in Haskell
bucharestfp
0
1.2k
DeviceGraph — Clustering Devices into People at Adobe with Apache Spark
bucharestfp
0
290
Functional Programming Inception
bucharestfp
0
430
Equational Reasoning in Programming
bucharestfp
0
970
Other Decks in Programming
See All in Programming
TestingOsaka6_Ozono
o3
0
160
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
110
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
130
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
140
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
110
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
120
AIコーディングエージェント(skywork)
kondai24
0
180
Microservices rules: What good looks like
cer
PRO
0
1.4k
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
720
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
230
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.2k
AIコーディングエージェント(Gemini)
kondai24
0
230
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Scaling GitHub
holman
464
140k
Automating Front-end Workflow
addyosmani
1371
200k
Building Applications with DynamoDB
mza
96
6.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
A better future with KSS
kneath
240
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Mobile First: as difficult as doing things right
swwweet
225
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Agile that works and the tools we love
rasmusluckow
331
21k
Statistics for Hackers
jakevdp
799
230k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Transcript
1(7)/,;
3UR[\R
/DQJ"
,I,¶PEHLQJKHOGWRDQRWKHUSUHGLFWLRQLW¶VWKDWWKHLQVXUJHQWODQJXDJHVILYH \HDUVIURPQRZZLOOEH±OLNH*R5XVWDQG-XOLD±XQWHWKHUHGE\DKRVW90 7KHORZSRZHUKLJKFRQQHFWLYLW\,QWHUQHWRI7KLQJVZRUOGZH¶UHPRYLQJ WRZDUGVOHDYHVIDUOHVVURRPIRUIDW90V7KHODQJXDJHVWKDWKDYHQ¶WDEDQGRQHG WKHLUKRVWVE\WKHQZLOOEHWKRXJKWRIDVEDJJDJHIURPWKHUHVRXUFHLQHIILFLHQW HDUO\GD\VRIFORXGFRPSXWLQJ KWWSVDO[QHWWKRXJKWVRQILYH\HDUVRIHPHUJLQJODQJXDJHVKWPO
*R
'
5XVW
IQKHOORBZRUOG ^ SULQWOQ +HOORZRUOG `
IQPDLQ ^ DGGBWZRBWKLQJV ` IQDGGBWZRBWKLQJV DXLQWEXLQW !XLQW^ DE `
IQPDLQ ^ DGGBWZRBWKLQJV ` IQDGGBWZRBWKLQJV DXLQWEXLQW !XLQW^ DE
`
VWUXFW)LOH^ ILOHQDPH6WULQJ ILOHBVL]HX KLGHERRO `
OHWRWKHUBILOH )LOH^ ILOHQDPH-HVXVLVP\VKHSKHUGWRBVWULQJ ILOHBVL]H KLGHIDOVH `
LPSO)LOH^ IQQHZ QDPH VWUVL]HXKLGHERRO !)LOH^ )LOH^ ILOHQDPHQDPHWRBVWULQJ ILOHBVL]HVL]H KLGHKLGH
` ` `
OHWILOH )LOHQHZ 7KLVLVDFKDVHUIDOVH SULQWOQ )LOHQDPHLV^`ILOHILOHQDPH
>GHULYLQJ 6KRZ @ VWUXFW)LOH^ ILOHQDPH6WULQJ ILOHBVL]HX KLGHERRO ` )LOHLV)LOH^ILOHQDPH7KLVLVDFKDVHUILOHBVL]HKLGHIDOVH`
HQXP85,^ +773 6WULQJ +7736 6WULQJ )73 6WULQJ
1RQH `
IQJHWBXUO XUL6WULQJ !85,^ OHWVXEVWU XUL>@>@ PDWFKVXEVWU^ KWWSV !85,+7736 XULFORQH
KWWS !85,+773 XULFORQH IWS !85,)73 XULFORQH B !85,1RQH ` ` IQPDLQ ^ SULQWOQ 8UOLV^`JHWBXUO KWWSVIRREDUWRBVWULQJ SULQWOQ 8UOLV^`JHWBXUO KWWSIRREDUWRBVWULQJ SULQWOQ 8UOLV^`JHWBXUO IWSIRREDUWRBVWULQJ SULQWOQ 8UOLV^`JHWBXUO ZKDWHYHUIRREDUWRBVWULQJ `
>GHULYLQJ 6KRZ&ORQH @ HQXP'LVN6WUXFW^ )LOH 6WULQJ 'LU 6WULQJ `
LPSO'LVN6WUXFW^ IQQHZ SDWK VWU !'LVN6WUXFW^ PDWFKSDWKVOLFHBIURP SDWKOHQ ^
!'LVN6WUXFW'LU SDWKWRBVWULQJ B !'LVN6WUXFW)LOH SDWKWRBVWULQJ ` ` IQSDWK VHOI !6WULQJ^ PDWFKVHOIFORQH ^ 'LVN6WUXFW)LOH V !V 'LVN6WUXFW'LU V !V ` ` IQLQVSHFW VHOI ^ SULQWOQ 6HOILV^`VHOISDWK ` `
IQPDLQ ^ 'LVN6WUXFWQHZ IRREDUED] LQVSHFW `
IQSRLQWHUBW\SHV ^ OHWD ,ORYHPDU\SRSSLQVWRBVWULQJ SULQWPH D SULQWOQ 6XS^`D
` IQSULQWPH V6WULQJ ^ SULQWOQ +H\^`V `
&/21(,7)25$//,7·6:257+
IQSRLQWHUBW\SHV ^ OHWD ,ORYHPDU\SRSSLQVWRBVWULQJ SULQWPH DFORQH SULQWOQ 6XS^`D
` IQSULQWPH V6WULQJ ^ SULQWOQ +H\^`V `
IQSRLQWHUBW\SHV ^ OHWD ,ORYHPDU\SRSSLQVWRBVWULQJ OHWD SULQWPH D SULQWOQ
6XS^`D ` IQSULQWPH V6WULQJ !6WULQJ^ SULQWOQ +H\^`V V `
IQSRLQWHUBW\SHV ^ OHWD ,ORYHPDU\SRSSLQVWRBVWULQJ SULQWPH D SULQWOQ 6XS^`D
` IQSULQWPH V 6WULQJ ^ SULQWOQ +H\^`V `
OHWD ,ORYHPDU\SRSSLQVWRBVWULQJ SULQWOQ 6XS^S` D 䋻6XS[IIIFGII
IQPDLQ ^ OHWD SULQWOQ ,QFUHPHQWLQJ^`DGG D D ` IQDGG
D XLQWE XLQW !XLQW^ D E `
IQDGG D E! D DXLQWE EXLQW ! DXLQW^ DE `
IQDGGBWR D PXWXLQWEXLQW !XLQW^ D DE D
` IQPDLQ ^ OHWPXWD SULQWOQ ,QFUHPHQWLQJ^`^`DGGBWR PXWD D ` 䋻,QFUHPHQWLQJ
OHWPXWDXLQW OHWE D OHWF D
OHWPXWDXLQW OHWE PXWD OHWF PXWD
Ɣ %R[$ORFDWLQKHDSFXXQVLQJXURZQHU Ɣ 5F5HVRXUFHFRXQWHGLQKHDS Ɣ $UF$WRPLFDOO\5HVRXUFHFRXQWHGLQKHDSWKUHDGVDIH XVDJH
IQPDLQ ^ SULQWBLQQDUGV _[XLQW_^ [ ` ` IQSULQWBLQQDUGV IXQ_XLQW_!XLQW
^ SULQWOQ 5HVXOWLV^`IXQ `
>GHULYLQJ 6KRZ&ORQH @ VWUXFW)LOH^ ILOHQDPH6WULQJ ILOHBVL]HX KLGHERRO `
LPSO)LOH^ IQQHZ QDPH VWUVL]HXKLGHERRO !)LOH^ )LOH^ ILOHQDPHQDPHWRBVWULQJ ILOHBVL]HVL]H KLGHKLGH
` ` IQVL]HBLQBPE VHOI !X^ VHOIILOHBVL]H!! ` `
IQPDLQ ^ OHWILOH )LOHQHZ -HUU\BBIDOVH SULQWOQ )LOHVL]HLV^`ILOHVL]HBLQBPE `
LPSO)LOH^ IQQHZ QDPH VWUVL]HXKLGHERRO !)LOH^ ` IQVL]HBLQBPE VHOI !X^
VHOIILOHBVL]H!! ` ` IQPDLQ ^ OHWILOH )LOHQHZ -HUU\BBIDOVH SULQWOQ )LOHVL]HLV^`ILOHVL]HBLQBPE `
IQPDLQ ^ OHWILOH )LOHQHZ -HUU\BBIDOVH SULQWOQ )LOHVL]HLV^`ILOHVL]HBLQBPE `
SXEVWUXFW%DU^ SXEQDPH6WULQJ ` LPSO2SHUDWLRQIRU%DU^ IQ]HUR VHOI !XLQW^ ` `
SXEWUDLW2SHUDWLRQ^ IQ]HUR VHOI !XLQW `
LPSO2WKHU2SHUDWLRQIRU%DU^ ` SXEWUDLW2SHUDWLRQ^ IQ]HUR VHOI !XLQW ` SXEWUDLW2WKHU2SHUDWLRQ2SHUDWLRQ^ IQRQH VHOI
!XLQW^ VHOI]HUR ` `
>GHULYLQJ 6KRZ @ SXEVWUXFW)RR^ SXEQDPH6WULQJ DJHX ` SXEVWUXFW%DU^ SXEQDPH6WULQJ `
LPSO)RR^ SXEIQQHZ QDPH VWUDJHX !)RR^ )RR^ QDPHQDPHWRBVWULQJ DJHDJH ` ` `
SXEWUDLW%DUNDEOH^ IQEDUN VHOI ` LPSO%DUNDEOHIRU)RR^ IQEDUN VHOI ^ SULQWOQ
:RRI ` ` LPSO%DUNDEOHIRU%DU^ IQEDUN VHOI ^ SULQWOQ %RRI ` `
IQEDUN7%DUNDEOH! ] 7 ^ ]EDUN ` IQPDLQ ^ OHWIRR
)RRQHZ 6XS OHWEDU %DU^QDPH6XSWRBVWULQJ ` EDUN IRR EDUN EDU `
IQEDUN7%DUNDEOH! ] 7 ^ SULQWOQ ^`!] ]EDUN `
IQEDUN7%DUNDEOH6KRZ! ] 7 ^ SULQWOQ ^`!] ]EDUN `
>GHULYLQJ 6KRZ @ SXEVWUXFW)RR^ SXEQDPH6WULQJ DJHX `
LPSO6KRZIRU%DU^ IQIPW VHOIIPW PXW)RUPDWWHU !5HVXOW (UURU!^ OHWGHVFULSWLRQ IRUPDW %DU^^QDPH^```VHOIQDPH
IPWZULWH GHVFULSWLRQDVBE\WHV ` `
UHVXOWHUU PRGXO2SHUDWLH IRREDU LIHUU QLO^ RPJGLH `
OHWSDWK 3DWKQHZ 8VHUV]PDFNWKLQJW[W OHWILOH PDWFK)LOHRSHQ SDWK ^ 2N I
!I (UU H !^ SULQWOQ )LOHRSHQIDLOHG^`H UHWXUQ ` `
OHWILOH )LOHRSHQ SDWK XQZUDS 䋻WDVN SDQLFNHGDW FDOOHG5HVXOWXQZUDS RQDQ(UU YDOXHFRXOGQ
WRSHQSDWKDVILOH QRVXFKILOHRU GLUHFWRU\ 1RVXFKILOHRUGLUHFWRU\ SDWK 8VHUV]PDFNWKLQJW[WPRGH RSHQDFFHVV UHDG 8VHUV]PDFNSURMHFWVUXVWVUFOLEFRUHUHVXOWUV
IQPDLQ ^ OHWSDWK 3DWKQHZ 8VHUV]PDFNWKLQJW[W PDWFKRSHQBILOH SDWK ^ 2N
B !SULQWOQ 2N (UU H !SULQWOQ (UURU^`H ` ` IQRSHQBILOH SDWK 3DWK !,R5HVXOW6WG)LOH!^ OHWILOH WU\ 6WG)LOHRSHQ SDWK 2N ILOH `
>GHULYLQJ 6KRZ @ HQXP2SHQ(UURU^ ,R ,R(UURU *HQHULF 6WULQJ `
LPSO)URP(UURU,R(UURU!IRU2SHQ(UURU^ IQIURPBHUURU HUU,R(UURU !2SHQ(UURU^ 2SHQ(UURU,R HUU ` ` LPSO)URP(UURU6WULQJ!IRU2SHQ(UURU^ IQIURPBHUURU
HUU6WULQJ !2SHQ(UURU^ 2SHQ(UURU*HQHULF HUU ` `
IQRSHQBILOH SDWK 3DWK !5HVXOW6WG)LOH2SHQ(UURU!^ OHWVWDW WU\ SDWKVWDW OHWILOH WU\
6WG)LOHRSHQ SDWK UHWXUQ(UU )URP(UURUIURPBHUURU 6RPHWKLQJHOVHJRWEXVWHGWRBVWULQJ ` IQPDLQ ^ OHWSDWK 3DWKQHZ 8VHUV]PDFNWKLQJW[W PDWFKRSHQBILOH SDWK ^ 2N B !SULQWOQ 2N (UU H !SULQWOQ 1RW2N^`H ` `
IQPDLQ ^ VSDZQ PRYH__^ SULQWOQ ,FRQFXU ` SULQWOQ
,GRQ W `
OHWPXWDXLQW VSDZQ PRYH__^ SULQWOQ PRYHG$LV^`D ` D
D SULQWOQ $LV^`D
OHWPXWDXLQW OHWE D VSDZQ PRYH__^ SULQWOQ PRYHG$LV^`E
` SULQWOQ $LV^`E
IQPDLQ ^ OHWD9HFXLQW! YHF>@ VSDZQ PRYH__^ DSXVK DSXVK
IRU[LQDLWHU ^ SULQWOQ !^`[ ` ` IRU[LQDLWHU ^ SULQWOQ !^`[ ` `
䋻8VHUV]PDFNSURMHFWVUXVWVKRZVUFPDLQUV HUURUXVHRIPRYHGYDOXHD8VHUV]PDFNSURMHFWVUXVW VKRZVUFPDLQUVIRU[LQDLWHU ^
IQPDLQ ^ OHWD9HFXLQW! YHF>@ OHWP 0XWH[QHZ D VSDZQ PRYH__^
PORFN SXVK PORFN SXVK IRU[LQPORFN LWHU ^ SULQWOQ !^`[ ` ` IRU[LQPORFN LWHU ^ SULQWOQ !^`[ ` `
IQPDLQ ^ OHWD9HFXLQW! YHF>@ OHWP 0XWH[QHZ D OHWFORQHGBP PFORQH
VSDZQ PRYH__^ PORFN SXVK PORFN SXVK IRU[LQPORFN LWHU ^ SULQWOQ !^`[ ` ` IRU[LQFORQHGBPORFN LWHU ^ SULQWOQ !^`[ ` `
䋻8VHUV]PDFNSURMHFWVUXVWVKRZVUFPDLQUV HUURUW\SHVWGV\QFPXWH[0XWH[FROOHFWLRQVYHF 9HFXLQW!!GRHVQRWLPSOHPHQWDQ\PHWKRGLQVFRSHQDPHG FORQH8VHUV]PDFNSURMHFWVUXVWVKRZVUFPDLQUVOHW FORQHGBP PFORQH
IQPDLQ ^ OHWD9HFXLQW! YHF>@ OHWP 0XWH[QHZ D OHWUF $UFQHZ
P OHWFORQHGBUF UFFORQH VSDZQ PRYH__^ UFORFN SXVK UFORFN SXVK IRU[LQUFORFN LWHU ^ SULQWOQ !^`[ ` ` IRU[LQFORQHGBUFORFN LWHU ^ SULQWOQ !^`[ ` `
䋻 ! ! !
HQXP0HVVDJH^ 1XPEHUV 9HFXLQW! 'LH `
IQPDLQ ^ OHW W[U[ FKDQQHO VSDZQ PRYH__^ OHW[
YHF>XXX@ W[VHQG 0HVVDJH1XPEHUV [ ` PDWFKU[UHFY ^ 0HVVDJH1XPEHUV ] !^ SULQWOQ 1XPEHUV IRU[LQ]LWHU ^ SULQWOQ !^`[ ` ` B !SULQWOQ 6RPHWKLQJHOVH ` `
&DUJR
ȹ JHWPDVWHU KWWSVJLWKXEFRPUXVW ODQJUXVW ȹ FRQILJXUHPDNHWKHZRUNV ȹ QHYHUORRNEDFN