Submit Search
Upload
D言語をたまには真面目に紹介してみる
•
Download as ZIP, PDF
•
3 likes
•
2,212 views
N Masahiro
Follow
Aizu.LT 03のロングトークで喋ったスライド
Read less
Read more
Technology
Report
Share
Report
Share
1 of 37
Download now
Recommended
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
Recommended
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
More Related Content
What's hot
[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
What's hot
(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
Similar to 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
Similar to 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
More from 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
More from 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
Recently uploaded
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
GDSC PJATK
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
FIDO Alliance
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
John Staveley
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
David Michel
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
shyamraj55
ECS 2024 Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
Femke de Vroome
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Exakis Nelite
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
CzechDreamin
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
Patrick Viafore
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
FIDO Alliance
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
FIDO Alliance
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
Stephanie Beckett
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
Jennifer Lim
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
marcuskenyatta275
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
Stephen Perrenod
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
Samy Fodil
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
UXDXConf
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
CzechDreamin
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
UXDXConf
Recently uploaded
(20)
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
ECS 2024 Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
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
Download now