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
870
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
640
PureScript & Halogen
bucharestfp
1
430
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
960
Other Decks in Programming
See All in Programming
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
140
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
240
関数の挙動書き換える
takatofukui
4
770
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
470
connect-python: convenient protobuf RPC for Python
anuraaga
0
360
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
310
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
400
Level up your Gemini CLI - D&D Style!
palladius
1
170
GeistFabrik and AI-augmented software development
adewale
PRO
0
250
[SF Ruby Conf 2025] Rails X
palkan
0
440
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
18k
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
210
Featured
See All Featured
BBQ
matthewcrist
89
9.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Automating Front-end Workflow
addyosmani
1371
200k
Speed Design
sergeychernyshev
33
1.4k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Writing Fast Ruby
sferik
630
62k
Being A Developer After 40
akosma
91
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
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