Enviar pesquisa
Carregar
D言語をたまには真面目に紹介してみる
•
Transferir como ZIP, PDF
•
3 gostaram
•
2,212 visualizações
N Masahiro
Seguir
Aizu.LT 03のロングトークで喋ったスライド
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 37
Baixar agora
Recomendados
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
Recomendados
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
Mais conteúdo relacionado
Mais procurados
[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
Mais procurados
(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
Semelhante a 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
Semelhante a 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
Mais 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
Mais 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
Último
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
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
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
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
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Último
(20)
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
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...
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
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
Baixar agora