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
840
An Applicative Application
bucharestfp
0
10k
Composition in FP
bucharestfp
0
350
Formal Design, Implementation and Verification of Blockchain Languages and Virtual Machines
bucharestfp
1
580
PureScript & Halogen
bucharestfp
1
420
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
410
Equational Reasoning in Programming
bucharestfp
0
890
Other Decks in Programming
See All in Programming
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.2k
概念モデル→論理モデルで気をつけていること
sunnyone
2
180
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
150
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
Kiroで始めるAI-DLC
kaonash
2
590
1から理解するWeb Push
dora1998
7
1.9k
Reading Rails 1.0 Source Code
okuramasafumi
0
210
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
440
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
500
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
530
AI時代のUIはどこへ行く?
yusukebe
18
8.9k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Agile that works and the tools we love
rasmusluckow
330
21k
Designing for humans not robots
tammielis
253
25k
It's Worth the Effort
3n
187
28k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
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