Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Introducing Rust
Bucharest FP
December 17, 2014
Programming
2
350
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
270
An Applicative Application
bucharestfp
0
5.5k
Composition in FP
bucharestfp
0
110
Formal Design, Implementation and Verification of Blockchain Languages and Virtual Machines
bucharestfp
1
230
PureScript & Halogen
bucharestfp
1
250
A Simple Sudoku Solver in Haskell
bucharestfp
0
670
DeviceGraph — Clustering Devices into People at Adobe with Apache Spark
bucharestfp
0
170
Functional Programming Inception
bucharestfp
0
210
Equational Reasoning in Programming
bucharestfp
0
390
Other Decks in Programming
See All in Programming
Milestoner
bkuhlmann
1
200
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
1.1k
偏見と妄想で語るスクリプト言語としての Swift / Swift as a Scripting Language
lovee
2
270
Swift Concurrencyによる安全で快適な非同期処理
tattn
2
320
インフラエンジニアの多様性と評価、またはキャリアへのつなげ方 / Careers as infrastructure engineers
katsuhisa91
0
520
書籍『良いコード/悪いコードで学ぶ設計入門』でエンジニアリングの当たり前を変える
minodriven
3
1.1k
Jakarta EE 10 is Coming Your Way
ivargrimstad
0
2.6k
WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ
oniak3ibm
PRO
0
140
テスト設計技法をなぜ&どのように使うのか体験しよう!
imtnd
0
340
Composing an API with Kotlin (Kotlin Dev Day 2022)
zsmb
0
260
Quartoを使ってみませんか / quarto_get_started
s_uryu
0
210
mrubyを1300円のボードで動かそう
yuuu
0
190
Featured
See All Featured
The Cult of Friendly URLs
andyhume
68
4.7k
The Brand Is Dead. Long Live the Brand.
mthomps
45
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
The Art of Programming - Codeland 2020
erikaheidi
31
5.8k
GitHub's CSS Performance
jonrohan
1020
410k
Fantastic passwords and where to find them - at NoRuKo
philnash
25
1.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
4
2k
What the flash - Photography Introduction
edds
61
10k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Designing on Purpose - Digital PM Summit 2013
jponch
106
5.6k
Why You Should Never Use an ORM
jnunemaker
PRO
47
5.5k
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