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
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard37
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
UiPathCommunity
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Remote DBA Services
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Zilliz
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
AnitaRaj43
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
WSO2
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
Sandro Moreira
Dernier
(20)
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.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