Recommended
PDF
F#によるFunctional Programming入門
PDF
PDF
PDF
PDF
PDF
PPTX
PPTX
解説?FSharp.Quotations.Compiler
PDF
PDF
PDF
PDF
Template Meta Programming入門から応用まで
PDF
PPTX
C#や.NET Frameworkがやっていること
PDF
Define and expansion of cpp macro
PPTX
PPTX
PPT
PPTX
PPTX
PPTX
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
PDF
PDF
PPT
PDF
PPT
PPTX
PDF
PDF
PPTX
More Related Content
PDF
F#によるFunctional Programming入門
PDF
PDF
PDF
PDF
PDF
PPTX
PPTX
解説?FSharp.Quotations.Compiler
What's hot
PDF
PDF
PDF
PDF
Template Meta Programming入門から応用まで
PDF
PPTX
C#や.NET Frameworkがやっていること
PDF
Define and expansion of cpp macro
PPTX
PPTX
PPT
PPTX
PPTX
PPTX
Trema day#4 Pio盛り ~Tremaのパケットパーサ~
PDF
PDF
PPT
PDF
PPT
PPTX
PDF
Viewers also liked
PDF
PPTX
PDF
PDF
PPTX
C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~
PDF
Similar to .NET系開発者から見たJava
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
PDF
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
PDF
PDF
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
PDF
PDF
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
PDF
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
PPTX
Visual Studio 2008による 開発環境・プログラミングの進化
PPTX
KEY
PPTX
Xamarin.iOS/android+F#で作る関数型アプリ
PDF
PPTX
PDF
Unity2015_No10_~UGUI&Audio~
PDF
PPTX
Visual Studio による開発環境・プログラミングの進化
PPTX
PPTX
PPTX
PDF
More from bleis tift
PDF
PDF
PDF
VBAを書きたくない話(Excel-DNAの紹介)
PDF
PDF
PDF
PDF
PDF
PDF
PDF
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
PDF
PDF
PDF
PDF
PDF
yield and return (poor English ver)
PDF
PDF
PDF
PDF
PPTX
.NET系開発者から見たJava 1. 2. 3. 4. わたしとJava
今すぐダウンロード
2002 年~2003 年Java を始める(1.3~1.4)
2003 年~ デザインパターン厨
2007 年Sun Tech Days 2007 in Tokyo
2009 年第一回名古屋Scala 勉強会
5. 6. 7. 8. 9. 10. 11. 12. ダイアモンド構文のだささ
.
Java のダイアモンド構文
.
.List<String> strs = new ArrayList<>();
.
C#のvar .
.var strs = new List<string>();
ださい
13. ダイアモンド構文の利点
.
C#のvar? .
public class SomeClass
{
.
// コンパイルエラー・・・
var strs = new List<string>();
}
C#のvar はフィールドに使えない
.
Java のダイアモンド構文
.
public class SomeClass {
.
// OK!
List<String> strs = new ArrayList<>();
}
まぁ、F#のlet はフィールドにも使えるんですけ
どね!
14. 15. 16. プリミティブ型がオブジェクトとして扱えない
のはJavaの怠慢
.
Java ではないコード
.
int x = 42;
.
String s = x.toString();
.
こういうコードと等価とみなす
.
int x = 42;
.
String s = Integer.toString(x);
まぁ、拡張メソッドですね
17. enum
列挙型
null が入る以外は、C#のenum より素敵
まぁでも判別共用体の前では・・・
Java のenum もC#のenum も、ケースごとの値
が持てない
18. 19. 20. 21. use 束縛
.
F#の例
.
let f path =
.
use x = new StreamReader(path)
// x を使って何か素敵なことをする
// スコープを抜けるとx.Dispose が自動で呼び出される!
.
更に素敵な例
.
let f path =
.
// スコープは割と自由自在
let body =
use x = new StreamReader(path)
x.ReadToEnd()
// body を使って何か素敵なことをする
22. 23. ラムダ式とジェネリック
.
F#の例
.
let f () =
.
// これができる
let id = fun x -> x
let a = id 42
let b = id "hoge"
()
24. 25. Value Types
ユーザ定義できる値型
それなんてstruct
ただ、use cases を見ると・・・
Algebraic data: optional(no box), choice-of,
unit(no bits)
Tuples: multiple-value return!(requires specialized
machinery also)
26. Specialization
Value Types とかプリミティブ型もジェネリク
スの型引数として渡したい
.NET では普通にできている
既存ライブラリとの互換性を考えると問
題も・・・
Map.get() など、null を返すメソッドどうする
よの?
Conditional Methods を強力にすれば解決できそ
うな気もするがはたして
27.