Soumettre la recherche
Mettre en ligne
D言語をたまには真面目に紹介してみる
•
Télécharger en tant que ZIP, PDF
•
3 j'aime
•
2,212 vues
N Masahiro
Suivre
Aizu.LT 03のロングトークで喋ったスライド
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 37
Télécharger maintenant
Recommandé
D vs OWKN Language at LLnagoya
D vs OWKN Language at LLnagoya
N Masahiro
Fantom on the JVM Devoxx09 BOF
Fantom on the JVM Devoxx09 BOF
Dror Bereznitsky
Contravariant functors in scala
Contravariant functors in scala
Piotr Paradziński
Extensible Effects in Dotty
Extensible Effects in Dotty
Sanshiro Yoshida
C++20 the small things - Timur Doumler
C++20 the small things - Timur Doumler
corehard_by
Project Fortress
Project Fortress
Alex Miller
Golang勉強会
Golang勉強会
Shin Sekaryo
Intro to Functional Programming with Scala - #psuweb
Intro to Functional Programming with Scala - #psuweb
DerekMorr
Recommandé
D vs OWKN Language at LLnagoya
D vs OWKN Language at LLnagoya
N Masahiro
Fantom on the JVM Devoxx09 BOF
Fantom on the JVM Devoxx09 BOF
Dror Bereznitsky
Contravariant functors in scala
Contravariant functors in scala
Piotr Paradziński
Extensible Effects in Dotty
Extensible Effects in Dotty
Sanshiro Yoshida
C++20 the small things - Timur Doumler
C++20 the small things - Timur Doumler
corehard_by
Project Fortress
Project Fortress
Alex Miller
Golang勉強会
Golang勉強会
Shin Sekaryo
Intro to Functional Programming with Scala - #psuweb
Intro to Functional Programming with Scala - #psuweb
DerekMorr
[C++ korea] effective modern c++ study item 4 - 6 신촌
[C++ korea] effective modern c++ study item 4 - 6 신촌
Seok-joon Yun
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Piotr Paradziński
Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”
Platonov Sergey
Quines—Programming your way back to where you were
Quines—Programming your way back to where you were
Jean-Baptiste Mazon
Swift for tensorflow
Swift for tensorflow
규영 허
Monte Carlo C++
Monte Carlo C++
Dmitri Nesteruk
Category Theory in 10 Minutes
Category Theory in 10 Minutes
Jordan Parmer
ALF 5 - Parser Top-Down (2018)
ALF 5 - Parser Top-Down (2018)
Alexandru Radovici
Idiomatic C++
Idiomatic C++
Federico Ficarelli
[C++ Korea] Effective Modern C++ Study item 34 36
[C++ Korea] Effective Modern C++ Study item 34 36
Seok-joon Yun
Lab 3
Lab 3
vishal choudhary
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Sergey Platonov
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov
Introduction To Lisp
Introduction To Lisp
kyleburton
Garbage Collection
Garbage Collection
Eelco Visser
Lisp
Lisp
sonukumar142
Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...
Piotr Paradziński
Fluent14
Fluent14
Brendan Eich
Gentle Introduction To Lisp
Gentle Introduction To Lisp
Damien Garaud
Scala implicits
Scala implicits
nkpart
Vim Script Programming
Vim Script Programming
Lin Yo-An
拡張ライブラリをD言語で作るとリア充
拡張ライブラリをD言語で作るとリア充
N Masahiro
Contenu connexe
Tendances
[C++ korea] effective modern c++ study item 4 - 6 신촌
[C++ korea] effective modern c++ study item 4 - 6 신촌
Seok-joon Yun
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Piotr Paradziński
Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”
Platonov Sergey
Quines—Programming your way back to where you were
Quines—Programming your way back to where you were
Jean-Baptiste Mazon
Swift for tensorflow
Swift for tensorflow
규영 허
Monte Carlo C++
Monte Carlo C++
Dmitri Nesteruk
Category Theory in 10 Minutes
Category Theory in 10 Minutes
Jordan Parmer
ALF 5 - Parser Top-Down (2018)
ALF 5 - Parser Top-Down (2018)
Alexandru Radovici
Idiomatic C++
Idiomatic C++
Federico Ficarelli
[C++ Korea] Effective Modern C++ Study item 34 36
[C++ Korea] Effective Modern C++ Study item 34 36
Seok-joon Yun
Lab 3
Lab 3
vishal choudhary
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Sergey Platonov
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov
Introduction To Lisp
Introduction To Lisp
kyleburton
Garbage Collection
Garbage Collection
Eelco Visser
Lisp
Lisp
sonukumar142
Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...
Piotr Paradziński
Fluent14
Fluent14
Brendan Eich
Gentle Introduction To Lisp
Gentle Introduction To Lisp
Damien Garaud
Tendances
(19)
[C++ korea] effective modern c++ study item 4 - 6 신촌
[C++ korea] effective modern c++ study item 4 - 6 신촌
Why functional programming and category theory strongly matters
Why functional programming and category theory strongly matters
Bartosz Milewski, “Re-discovering Monads in C++”
Bartosz Milewski, “Re-discovering Monads in C++”
Quines—Programming your way back to where you were
Quines—Programming your way back to where you were
Swift for tensorflow
Swift for tensorflow
Monte Carlo C++
Monte Carlo C++
Category Theory in 10 Minutes
Category Theory in 10 Minutes
ALF 5 - Parser Top-Down (2018)
ALF 5 - Parser Top-Down (2018)
Idiomatic C++
Idiomatic C++
[C++ Korea] Effective Modern C++ Study item 34 36
[C++ Korea] Effective Modern C++ Study item 34 36
Lab 3
Lab 3
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Александр Гранин, Функциональная 'Жизнь': параллельные клеточные автоматы и к...
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Introduction To Lisp
Introduction To Lisp
Garbage Collection
Garbage Collection
Lisp
Lisp
Big picture of category theory in scala with deep dive into contravariant and...
Big picture of category theory in scala with deep dive into contravariant and...
Fluent14
Fluent14
Gentle Introduction To Lisp
Gentle Introduction To Lisp
Similaire à D言語をたまには真面目に紹介してみる
Scala implicits
Scala implicits
nkpart
Vim Script Programming
Vim Script Programming
Lin Yo-An
拡張ライブラリをD言語で作るとリア充
拡張ライブラリをD言語で作るとリア充
N Masahiro
From Ruby to Scala
From Ruby to Scala
tod esking
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Hiroki Mizuno
Python教程 / Python tutorial
Python教程 / Python tutorial
ee0703
Google Go Overview
Google Go Overview
Moritz Haarmann
Onsg10 Intro Termtter
Onsg10 Intro Termtter
Shota Fukumori
A Plan towards Ruby 3 Types
A Plan towards Ruby 3 Types
mametter
Denis Lebedev, Swift
Denis Lebedev, Swift
Yandex
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
Wanbok Choi
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Taro Matsuzawa
Should i Go there
Should i Go there
Shimi Bandiel
Angular2 for Beginners
Angular2 for Beginners
Oswald Campesato
Front end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript core
Web Zhao
Verification with LoLA: 1 Basics
Verification with LoLA: 1 Basics
Universität Rostock
Introduction to C++
Introduction to C++
Sikder Tahsin Al-Amin
Javascript
Javascript
Sunil Thakur
Python3
Python3
Jiayun Zhou
Python Fundamentals - Basic
Python Fundamentals - Basic
Wei-Yuan Chang
Similaire à D言語をたまには真面目に紹介してみる
(20)
Scala implicits
Scala implicits
Vim Script Programming
Vim Script Programming
拡張ライブラリをD言語で作るとリア充
拡張ライブラリをD言語で作るとリア充
From Ruby to Scala
From Ruby to Scala
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Python教程 / Python tutorial
Python教程 / Python tutorial
Google Go Overview
Google Go Overview
Onsg10 Intro Termtter
Onsg10 Intro Termtter
A Plan towards Ruby 3 Types
A Plan towards Ruby 3 Types
Denis Lebedev, Swift
Denis Lebedev, Swift
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
[Let'Swift 2019] 실용적인 함수형 프로그래밍 워크샵
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
スマートフォン勉強会@関東 #11 どう考えてもdisconなものをiPhoneに移植してみた
Should i Go there
Should i Go there
Angular2 for Beginners
Angular2 for Beginners
Front end fundamentals session 1: javascript core
Front end fundamentals session 1: javascript core
Verification with LoLA: 1 Basics
Verification with LoLA: 1 Basics
Introduction to C++
Introduction to C++
Javascript
Javascript
Python3
Python3
Python Fundamentals - Basic
Python Fundamentals - Basic
Plus de N Masahiro
Fluentd Project Intro at Kubecon 2019 EU
Fluentd Project Intro at Kubecon 2019 EU
N Masahiro
Fluentd v1 and future at techtalk
Fluentd v1 and future at techtalk
N Masahiro
Fluentd and Distributed Logging at Kubecon
Fluentd and Distributed Logging at Kubecon
N Masahiro
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
N Masahiro
Presto changes
Presto changes
N Masahiro
Fluentd at HKOScon
Fluentd at HKOScon
N Masahiro
Fluentd v0.14 Overview
Fluentd v0.14 Overview
N Masahiro
Fluentd and Kafka
Fluentd and Kafka
N Masahiro
fluent-plugin-beats at Elasticsearch meetup #14
fluent-plugin-beats at Elasticsearch meetup #14
N Masahiro
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
N Masahiro
Technologies for Data Analytics Platform
Technologies for Data Analytics Platform
N Masahiro
Docker and Fluentd
Docker and Fluentd
N Masahiro
How to create Treasure Data #dotsbigdata
How to create Treasure Data #dotsbigdata
N Masahiro
Fluentd v0.12 master guide
Fluentd v0.12 master guide
N Masahiro
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
N Masahiro
Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015
N Masahiro
Fluentd Unified Logging Layer At Fossasia
Fluentd Unified Logging Layer At Fossasia
N Masahiro
Treasure Data and OSS
Treasure Data and OSS
N Masahiro
Fluentd - RubyKansai 65
Fluentd - RubyKansai 65
N Masahiro
Plus de N Masahiro
(20)
Fluentd Project Intro at Kubecon 2019 EU
Fluentd Project Intro at Kubecon 2019 EU
Fluentd v1 and future at techtalk
Fluentd v1 and future at techtalk
Fluentd and Distributed Logging at Kubecon
Fluentd and Distributed Logging at Kubecon
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
Fluentd v1.0 in a nutshell
Presto changes
Presto changes
Fluentd at HKOScon
Fluentd at HKOScon
Fluentd v0.14 Overview
Fluentd v0.14 Overview
Fluentd and Kafka
Fluentd and Kafka
fluent-plugin-beats at Elasticsearch meetup #14
fluent-plugin-beats at Elasticsearch meetup #14
Dive into Fluentd plugin v0.12
Dive into Fluentd plugin v0.12
Technologies for Data Analytics Platform
Technologies for Data Analytics Platform
Docker and Fluentd
Docker and Fluentd
How to create Treasure Data #dotsbigdata
How to create Treasure Data #dotsbigdata
Fluentd v0.12 master guide
Fluentd v0.12 master guide
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
Treasure Data and AWS - Developers.io 2015
Treasure Data and AWS - Developers.io 2015
Fluentd Unified Logging Layer At Fossasia
Fluentd Unified Logging Layer At Fossasia
Treasure Data and OSS
Treasure Data and OSS
Fluentd - RubyKansai 65
Fluentd - RubyKansai 65
Dernier
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
Pixlogix Infotech
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Dernier
(20)
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
D言語をたまには真面目に紹介してみる
1.
D
Thu, September 22, 2009
2.
• tama :
repeatedly • T • • ( ) • D ...
3.
• •D
4.
5.
D • Digital Mars
Walter • M$ • • ( •
6.
•
DMD • GDC • • GCC • D.NET • → LDC • • LDC • DLI • LLVM • … • GDC
7.
DMD • • 1-2
• • 1 2 3
8.
1
2
9.
• •
• arr + 10 • • Ruby arr[1..7]
10.
const / immutable •
const • const • immutable • • ( )
11.
• pure • nothrow •
ref int foo() { ...; return *p; } ref foo = 3; • •
12.
• op* • override •
alias this ( ) class Foo { Foo foo; Bar bar; foo.func; // bar.func call alias bar this; }
13.
Template • C++ •
!() → Foo!(int)(args); • C++ +α • template • Mixin
14.
Template •
template Foo(T) { class Foo { } void foo() { } } • template Foo(T) { class Foo { } class Foo(T) { } }
15.
Mixin •
• Template • D • Ruby mixin • TMP mixin
16.
TMP •
• • static if • • is • • concept if • • • etc... • alias etc...
17.
static if •
if
18.
is •
19.
concept if • template
20.
•
TLS • shared • shared • __gshared • synchronized
21.
•
enum • • final switch • •
22.
enum enum Foo :
string { A = “a”, B = “b”, C = “c” } final switch (foo) { case Foo.A, Foo.B: ... break; case Foo.C: ... break; // break // default: }
23.
• Eiffel •
in/out invariant • • release
24.
void func(int v)
int func() class Foo in out(r) { { { int v; assert(v); assert(r); } } invariant() body body { { { assert(v); ... return 0; } } } }
25.
• unittest {} •
int foo() { return 0; } unittest { assert(foo == 0); }
26.
GC • •
GC • GC ML • GC
27.
DIP • D improve
proposal • • • •
28.
• • • • • etc...
29.
•
2 • Andrei ML • •3 • • Noop C# (ry
30.
Phobos
31.
std.range • Range •
Phobos • R.I.P opApply • Iterators must go • Range • etc...
32.
range • Recurrence auto fib
= recurrence!("a[n-1] + a[n-2]")(1, 1); foreach (e; take(10, fib)) { writeln(e); } • random int[] a = [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]; auto rnd = Random(unpredictableSeed); foreach (e; randomCover(a, rnd)) { writeln(e); }
33.
std.contract • enforce
auto file = fopen(“hoge.d”) if (file is null) throw new Exception; auto file = enforce(fopen(“hoge.d”)) // null
34.
std.regex •
std.regexp • PCRE ECMA standard auto r = regex("ab"); foreach(m; match("abcabcabab", r)) { writefln("%s[%s]%s", m.pre, m.hit, m.post); }
35.
• std.algorithm •
STL • std.variant • Variant • std.traits • TMP template
36.
• Andrei •
Boost::Optional • net • replace • Tango …
37.
Appendix • D official
site • • The Case for D • • C/C++ D 2.0
Télécharger maintenant