SlideShare a Scribd company logo
1 of 48
Download to read offline
F#の基礎(?)
bleis-tift
2016年06月11日
自己紹介
・id:bleis-tift / @bleis
・株式会社オンザロード
・F#が好き
・Excelは便利
今日話すこと
・F#の基礎について?
・(型なし)ラムダ計算の話はもうやったし・・・
・型付きラムダ計算?
・今日思いついたので、その話は次の機会で
今日話すこと
・F#のことをまんべんなく?
・ゆるくいきましょう
F#について
F#ってこんな言語1
・.NET系言語 (C# / VB)
・OCamlを参考にした構文
・静的型 / 型推論
・メインパラダイムは関数型
・VB
・etc
F#ってこんな言語1 - .NET系言語
・コンパイルするとIL(中間言語)になる
・ILは.NET Runtime上で動く
・ILを吐く言語との相互運用可能
・C#
・末尾呼び出しのための命令(prefix)を持っていたりする
・コンストラクタ呼び出しとメソッド呼び出しは別命令
・(F#では統一的に扱える)
・メソッド呼び出しは2種類(call/callvirt)ある
・関数ポインタ経由での呼び出し含めると3種類(calli)
F#ってこんな言語1 -- IL
・スタックマシン
・評価スタック / 呼び出しスタック
・オブジェクトヒープ
・ローカル変数ストア
・CompiledName属性で命名規約を合わせる
F#ってこんな言語1 -- .NET言語との親和性
・F#からの呼び出しは簡単
・F#の呼び出しは注意が必要
・カリー化形式の関数はILでは多引数メソッドで表現
・判別共用体はインターフェイスを実装し公開
F#ってこんな言語1 - 構文
・ML系の文法
・軽量構文
・インデント
・ML系の文法を簡略化
F#ってこんな言語1 -- 冗語構文
// 行コメントが使える
let someFunction arg =
let x = f arg in // let式はinが必要
let y = g arg in
[ x; // リストの要素の区切りには;が必要
y ]
F#ってこんな言語1 -- 軽量構文
// 行コメントが使える(ので、//演算子は定義できない・・・)
let someFunction arg =
let x = f arg // 軽量構文ではinが不要
let y = g arg
[ x // 軽量構文では;を改行+インデントで代替可能
y ]
F#ってこんな言語1 -- matchのネスト
// OCamlerにはうれしい(?)match式のネスト
match f x with
| None -> None
| Some x ->
match g x with
| None -> None
| Some x -> h x
・オブジェクト指向プログラミング
・クラスベース
F#ってこんな言語1 - パラダイム
・関数プログラミング
・正格
・非純粋
・手続き型プログラミング
F#ってこんな言語2
・アクティブパターン
・コードクォート
・コンピュテーション式
・Type Provider
・ScalaのExtractorやHaskellのview patterns
F#ってこんな言語2 - アクティブパターン
・実際の構造と判別方法を切り離して定義
・実装をアクティブパターンの後ろに隠す
・複数の判別方法の提供
・構造のない型に構造を後付け
F#ってこんな言語2 -- アクティブパターン
// アクティブパターンの定義
let (|Even|Odd|) n =
if n % 2 = 0 then Even else Odd
// 定義したアクティブパターンに基づいた分岐
let f = function
| Even -> printfn "even"
| Odd -> printfn "odd"
・小さいコードが巨大な式木を生み出すことがある
・仕様です
F#ってこんな言語2 - コードクォート
・コードをデータとして扱う仕組み
・いわゆる式木
・式木にしてしまうと、標準では実行する手段がない
・外部ライブラリを使えば可能
F#ってこんな言語2 -- コードクォート
let expr =
<@ let x = 42
Console.WriteLine(x.ToString()) @>
// Let (x,
// Value (42),
// Call (None,
// WriteLine,
// [Call (Some (x), ToString, [])]))
F#ってこんな言語2 - コンピュテーション式
・言語の用意する構文をカスタマイズする仕組み
・モナド用の構文としてのコンピュテーション式
・言語内DSLの土台としてのコンピュテーション式
・正しく全部実装するのは難易度高い
F#ってこんな言語2 -- Maybeモナド
// ビルダーを定義して、
type MaybeBuilder () =
member __.Return(x) = Some x
member __.Bind(x, f) = Option.bind f x
let maybe = MaybeBuilder()
// 使う
let someFunc arg =
maybe {
let! x = f arg
let! y = g x
let! z = h y
return z
}
F#ってこんな言語2 -- 言語内DSLの例
// F#向けテスティングフレームワーク
let ``f should throw HogeException`` = test {
let! e = trap { it (f ()) }
do! e.GetType() === typeof<HogeException>
}
let ``g should return correct list`` =
let test (arg, expected) = test {
do! g arg === expected
}
parameterize {
source [
(0, [])
(1, [0])
(2, [0; 1])
]
do! test
}
F#ってこんな言語2 -- Type Provider
・コンパイル時にメタデータから型を生成
・コードの自動生成ではない
・消去型と生成型
F#ってこんな言語2 -- 消去型TP
・型はコンパイル時のみ
・実行時は消去され、ベースの型の操作に置き換わる
・生成型よりも手軽
F#ってこんな言語2 --- 消去型TPの例
type RecordRegex = Regex< @"(?<Name>^[^,]+),s*(?<Address>.+)" >
let res = RecordRegex().Match("山田太郎, どこか")
let name = res.Name.Value
let address = res.Address.Value
(* コンパイルすると、下記のコードと同じコードに展開される *)
// RecordRegexという型は消える
let res =
Regex(@"(?<Name>^[^,]+),s*(?<Address>.+)").Match("山田太郎, どこか")
// 型のプロパティとして見えていたものはただのインデクサを使ったアクセスへ
let name = res.Groups.["Name"].Value
let address = res.Groups.["Address"].Value
F#ってこんな言語2 -- 生成型TP
・実際に型が生成される
・ディスク上にdllファイルが必要になる
・アセンブリ外部にも型が公開できる
F#ってこんな言語2 -- 生成型TPの例
// 実際に型が作られる
type Edmx = EdmxFile<"Model.edmx">
let context = new Edmx.Model.Entities(conStr)
query { for user in context.Users do
where (user.Age >= 20)
select user }
|> Seq.iter (fun user -> printfn "%s" user.Name)
(* Model.edmxを読み込み、メタデータを取得し、
メタデータをもとにdbmlファイル(!)を生成し、
SqlMetal.exeにdbmlファイルを食わせることでC#ファイルを生成(!?)。
最終的に生成されたC#ファイルをコンパイル(!?!?)している。 *)
F#の開発環境
・"An Atom Editor and Visual Studio Code package suite for
cross platform F# development."
・などなど
F#の開発環境
・Visual Studio
・Visual F# Tools(VS標準搭載)
・Visual F# Power Tools
・Ionide
・補完機能
・ツールチップ
・対話環境
F#の開発環境 - Visual F# Toolsの機能
・プロジェクトテンプレート
・参照の管理(NuGet含む)
・簡単なシンタックスハイライト
・リアルタイムのエラー表示(不完全)
・名前の変更リファクタリング
・インデントガイドの表示
・識別子の検索機能
F#の開発環境 - Visual F# Power Toolsの機能
・ドキュメンテーションコメント生成
・コード整形
・同一識別子のハイライト
・printfのプレースホルダーに対応する識別子のハイライト
・すべての参照箇所の検索機能
・未openな名前空間の解決機能
F#の開発環境 - Visual F# Power Toolsの機能2
・リッチなシンタックスハイライト
・未使用openのグレーアウト
・未使用宣言のグレーアウト
・フォルダー機能
・メタデータへの移動
・タスクリストコメント
F#の開発環境 - Visual F# Power Toolsの機能3
・コードの生成機能
・インターフェイスのメソッド群
・レコードのフィールド群
・判別共用体のケース
・Peek Definition
F#の開発環境 - Visual F# Power Toolsの機能4
・FSI用の参照の生成
・クイック情報パネル
・FSharpLint統合
・コードアウトライン機能
・同一識別子のハイライト
・コード整形
・対話環境
F#の開発環境 - Ionideの機能1
・補完機能
・ツールチップ
・シンタックスハイライト
・エラー表示
F#の開発環境 - Ionideの機能2
・プロジェクトテンプレート(F# Yeoman Generator統合)
・参照の管理(Paket統合)
・ビルド機能(FAKE統合)
F#の開発環境 - VS・・・
・VSそのままではいろいろつらい
・VFPTを導入するとか、別のIDEを使うことになる
・VFPTもIonideもGithubで開発されている
・言語開発者ではない人でもIDEの機能は作れる!
F#の開発環境を作るには
F#の開発環境を作るには - 色付け1
・キーワードにマッチしたら色を付ける?
・文字列の中にあるものは?
・文字列に色を付けたい場合は?
F#の開発環境を作るには - 色付け2
・コードを自分で構文解析して、トークン列からキーワード
を探して色を付ける?
・言語がバージョンアップしたら構文解析も更新?
・文脈に依存するキーワードは?
・TypeScriptではtypescriptServices.js
・F#ではFSharp.Compiler.Service (略称FCS)
F#の開発環境を作るには - 言語サービスの必要性
・色付け機能すら面倒
・言語処理系の機能に外部からアクセスできれば・・・
・それを実現するものが「言語サービス」
・C#/VBではRoslyn
・プロジェクトをまたいだ解析
・F# interactiveのホスティング
・F#コンパイラのホスティング
・ファイルシステムAPI
F#の開発環境を作るには - FCSでできること1
・ソースコードからトークン列への変換
・型なしASTの処理
・エディタサービス
・解決済みシンボルの解決
コードからトークン列への変換でできること
・簡単な色付けくらいならこれで
・この資料のF#コードもこの機能を使って色付けしている
・VFPTのTODOコメントの収集はこれを使っている
型なしASTの処理でできること
・もうちょっとリッチな色付けくらいならこれで
・コード整形
・(コードではなく)型なしASTを食うCompileメソッド
・型なしASTを変換したものをコンパイル、とかできる
エディタサービスでできること
・ツールチップ情報の取得
・補完候補の取得
・オーバーロード一覧の取得
解決済みシンボルの解決でできること
・リッチな色付け機能
・型なしAST + 解決済みシンボルで型付きASTの代替
・ローカルな名前の変更リファクタリング
プロジェクトをまたいだ解析でできること
・すべての参照の検索
・名前の変更リファクタリング
・などなど
F#の開発環境を作ろう
・F#の開発環境は自分で作れる
・自分でどんどん便利なツールを作っていきましょう!

More Related Content

What's hot

C-HelperでC言語を効率的に学習しよう
C-HelperでC言語を効率的に学習しようC-HelperでC言語を効率的に学習しよう
C-HelperでC言語を効率的に学習しようKota Uchida
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたいmangantempy
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること信之 岩永
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
型の話
型の話型の話
型の話s_i
 
コピーの話
コピーの話コピーの話
コピーの話s_i
 
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討tsudaa
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日nukaemon
 
楽しいプログラミング
楽しいプログラミング楽しいプログラミング
楽しいプログラミング明洋 庄司
 
正規表現
正規表現正規表現
正規表現bsdhack
 
201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10thSatoru Abe
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話信之 岩永
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会Kiyoshi Ogawa
 
スペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronamaスペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronamaHiroyoshi Komatsu
 
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践LINE Corporation
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説するTaishiYamada1
 
Phperがgoをさわってみた
PhperがgoをさわってみたPhperがgoをさわってみた
Phperがgoをさわってみたyasuo424
 

What's hot (20)

C-HelperでC言語を効率的に学習しよう
C-HelperでC言語を効率的に学習しようC-HelperでC言語を効率的に学習しよう
C-HelperでC言語を効率的に学習しよう
 
Rのコードをキレイに見せたい
Rのコードをキレイに見せたいRのコードをキレイに見せたい
Rのコードをキレイに見せたい
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
型の話
型の話型の話
型の話
 
コピーの話
コピーの話コピーの話
コピーの話
 
C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0C# 9.0 / .NET 5.0
C# 9.0 / .NET 5.0
 
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討○○型言語と呼ばれるために備えるべき最低限の条件についての検討
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
 
2011年10月21日
2011年10月21日2011年10月21日
2011年10月21日
 
楽しいプログラミング
楽しいプログラミング楽しいプログラミング
楽しいプログラミング
 
正規表現
正規表現正規表現
正規表現
 
201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th201903 のの会@関数Talk 10th
201903 のの会@関数Talk 10th
 
C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話C# コンパイラーの書き換え作業の話
C# コンパイラーの書き換え作業の話
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
F#談話室(17)
F#談話室(17)F#談話室(17)
F#談話室(17)
 
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会.NET micro  FrameWork for TOPPERS  (.NET基礎)@基礎勉強会
.NET micro FrameWork for TOPPERS (.NET基礎)@基礎勉強会
 
スペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronamaスペル修正プログラムの作り方 #pronama
スペル修正プログラムの作り方 #pronama
 
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
Phperがgoをさわってみた
PhperがgoをさわってみたPhperがgoをさわってみた
Phperがgoをさわってみた
 

Similar to F#の基礎(?)

Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式pocketberserker
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語RShuyo Nakatani
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライドkoturn 0;
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
Fluent Feature in F#
Fluent Feature in F#Fluent Feature in F#
Fluent Feature in F#igeta
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„和弘 井之上
 
Ocamlでpfffを拡張した話
Ocamlでpfffを拡張した話Ocamlでpfffを拡張した話
Ocamlでpfffを拡張した話Rie Nakau
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documentsbleis tift
 
Perl6で遊ぼう
Perl6で遊ぼうPerl6で遊ぼう
Perl6で遊ぼうVienosNotes
 
GNU Make でも使ってみようか
GNU Make でも使ってみようかGNU Make でも使ってみようか
GNU Make でも使ってみようかY M
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NETm ishizaki
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるKoichi Suzuki
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介sters
 

Similar to F#の基礎(?) (20)

Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
F#のコンピュテーション式
F#のコンピュテーション式F#のコンピュテーション式
F#のコンピュテーション式
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
Yaminabe fortran
Yaminabe fortranYaminabe fortran
Yaminabe fortran
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
Fluent Feature in F#
Fluent Feature in F#Fluent Feature in F#
Fluent Feature in F#
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Ocamlでpfffを拡張した話
Ocamlでpfffを拡張した話Ocamlでpfffを拡張した話
Ocamlでpfffを拡張した話
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documents
 
Perl6で遊ぼう
Perl6で遊ぼうPerl6で遊ぼう
Perl6で遊ぼう
 
GNU Make でも使ってみようか
GNU Make でも使ってみようかGNU Make でも使ってみようか
GNU Make でも使ってみようか
 
Introduction to Erlang/OTP
Introduction to Erlang/OTPIntroduction to Erlang/OTP
Introduction to Erlang/OTP
 
F# で ASP.NET
F# で ASP.NETF# で ASP.NET
F# で ASP.NET
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 

More from bleis tift

PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。bleis tift
 
効果の低いテストの話
効果の低いテストの話効果の低いテストの話
効果の低いテストの話bleis tift
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前にbleis tift
 
札束でExcelを殴る
札束でExcelを殴る札束でExcelを殴る
札束でExcelを殴るbleis tift
 
SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~bleis tift
 
F#事例発表
F#事例発表F#事例発表
F#事例発表bleis tift
 
yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)bleis tift
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話bleis tift
 
F#の基礎(嘘)
F#の基礎(嘘)F#の基礎(嘘)
F#の基礎(嘘)bleis tift
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話bleis tift
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)bleis tift
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)bleis tift
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指してbleis tift
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座bleis tift
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScriptbleis tift
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリbleis tift
 
ぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLbleis tift
 
SCMBC闇LT資料
SCMBC闇LT資料SCMBC闇LT資料
SCMBC闇LT資料bleis tift
 

More from bleis tift (20)

PCさえあればいい。
PCさえあればいい。PCさえあればいい。
PCさえあればいい。
 
効果の低いテストの話
効果の低いテストの話効果の低いテストの話
効果の低いテストの話
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前に
 
札束でExcelを殴る
札束でExcelを殴る札束でExcelを殴る
札束でExcelを殴る
 
SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~SI屋のためのF# ~DSL編~
SI屋のためのF# ~DSL編~
 
F#事例発表
F#事例発表F#事例発表
F#事例発表
 
yield and return (poor English ver)
yield and return (poor English ver)yield and return (poor English ver)
yield and return (poor English ver)
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
 
F#の基礎(嘘)
F#の基礎(嘘)F#の基礎(嘘)
F#の基礎(嘘)
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)VBAを書きたくない話(Excel-DNAの紹介)
VBAを書きたくない話(Excel-DNAの紹介)
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
 
自分戦略
自分戦略自分戦略
自分戦略
 
F#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリF#で始めるスマートフォンアプリ
F#で始めるスマートフォンアプリ
 
ぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLLぼくのかんがえたさいきょうのLL
ぼくのかんがえたさいきょうのLL
 
SCMBC闇LT資料
SCMBC闇LT資料SCMBC闇LT資料
SCMBC闇LT資料
 

Recently uploaded

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

F#の基礎(?)