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
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
810
An Applicative Application
bucharestfp
0
9.8k
Composition in FP
bucharestfp
0
340
Formal Design, Implementation and Verification of Blockchain Languages and Virtual Machines
bucharestfp
1
560
PureScript & Halogen
bucharestfp
1
410
A Simple Sudoku Solver in Haskell
bucharestfp
0
1.1k
DeviceGraph — Clustering Devices into People at Adobe with Apache Spark
bucharestfp
0
270
Functional Programming Inception
bucharestfp
0
400
Equational Reasoning in Programming
bucharestfp
0
880
Other Decks in Programming
See All in Programming
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
110
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
350
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
230
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
おやつのお供はお決まりですか?@WWDC25 Recap -Japan-\(region).swift
shingangan
0
120
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
920
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
670
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
110
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
790
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
700
Team operations that are not burdened by SRE
kazatohiei
1
310
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
250
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Designing for humans not robots
tammielis
253
25k
How GitHub (no longer) Works
holman
314
140k
Unsuck your backbone
ammeep
671
58k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Why Our Code Smells
bkeepers
PRO
337
57k
Gamification - CAS2011
davidbonilla
81
5.3k
Embracing the Ebb and Flow
colly
86
4.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
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