Suche senden
Hochladen
OCamlの多相Variant紹介 #fpstudy
•
Als KEY, PDF herunterladen
•
1 gefällt mir
•
3,695 views
kyon mm
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 68
Jetzt herunterladen
Empfohlen
シェル芸生放送
シェル芸生放送
Suzuki Mitsuhiro
IoT experiment at Nijo-castle, Kyoto
IoT experiment at Nijo-castle, Kyoto
Matsubara Shunya
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
hiroya akita
V-To World - What is V-To - Koinu
V-To World - What is V-To - Koinu
blue sura
RiotでVironというOSSを作ったお話。
RiotでVironというOSSを作ったお話。
Go Ohtani
Lina katayose pyladies3周年LT
Lina katayose pyladies3周年LT
Lina Katayose
Swiftの新機能 Optional
Swiftの新機能 Optional
Yuichi Adachi
Kotlinの紹介
Kotlinの紹介
豊明 尾古
Empfohlen
シェル芸生放送
シェル芸生放送
Suzuki Mitsuhiro
IoT experiment at Nijo-castle, Kyoto
IoT experiment at Nijo-castle, Kyoto
Matsubara Shunya
Pythonでも型をつけたいだけの人生だった
Pythonでも型をつけたいだけの人生だった
hiroya akita
V-To World - What is V-To - Koinu
V-To World - What is V-To - Koinu
blue sura
RiotでVironというOSSを作ったお話。
RiotでVironというOSSを作ったお話。
Go Ohtani
Lina katayose pyladies3周年LT
Lina katayose pyladies3周年LT
Lina Katayose
Swiftの新機能 Optional
Swiftの新機能 Optional
Yuichi Adachi
Kotlinの紹介
Kotlinの紹介
豊明 尾古
今日から始めるClojure
今日から始めるClojure
Kiyotaka Kunihira
Material
Material
_TUNE_
20120519 inverse fizzbuzz を解いてみよう
20120519 inverse fizzbuzz を解いてみよう
HiroSuga
たのしい関数型
たのしい関数型
Shinichi Kozake
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみた
Hiroshi Maekawa
代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
syamino
恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例
Life Robotics
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪
Naoki Kitora
O caml2014 leroy-slides
O caml2014 leroy-slides
OCaml
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
kyon mm
焦らず急いでの意味
焦らず急いでの意味
kyon mm
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
kyon mm
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
kyon mm
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
kyon mm
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
Weitere ähnliche Inhalte
Andere mochten auch
今日から始めるClojure
今日から始めるClojure
Kiyotaka Kunihira
Material
Material
_TUNE_
20120519 inverse fizzbuzz を解いてみよう
20120519 inverse fizzbuzz を解いてみよう
HiroSuga
たのしい関数型
たのしい関数型
Shinichi Kozake
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみた
Hiroshi Maekawa
代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
syamino
恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例
Life Robotics
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪
Naoki Kitora
O caml2014 leroy-slides
O caml2014 leroy-slides
OCaml
Andere mochten auch
(9)
今日から始めるClojure
今日から始めるClojure
Material
Material
20120519 inverse fizzbuzz を解いてみよう
20120519 inverse fizzbuzz を解いてみよう
たのしい関数型
たのしい関数型
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみた
代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
恊働ロボットCOROの開発における形式的仕様の適用事例
恊働ロボットCOROの開発における形式的仕様の適用事例
第一回関数型言語勉強会 大阪
第一回関数型言語勉強会 大阪
O caml2014 leroy-slides
O caml2014 leroy-slides
Mehr von kyon mm
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
kyon mm
焦らず急いでの意味
焦らず急いでの意味
kyon mm
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
kyon mm
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
kyon mm
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
kyon mm
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
kyon mm
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
kyon mm
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
kyon mm
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
kyon mm
契る意味 #pykonjp2014
契る意味 #pykonjp2014
kyon mm
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
kyon mm
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
kyon mm
Mehr von kyon mm
(20)
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
Kaizen process with test #hackt
Kaizen process with test #hackt
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
焦らず急いでの意味
焦らず急いでの意味
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
契る意味 #pykonjp2014
契る意味 #pykonjp2014
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
Kürzlich hochgeladen
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
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
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Kürzlich hochgeladen
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
OCamlの多相Variant紹介 #fpstudy
1.
多相Variantの紹介 うさぎ組 in
#fpstudy 2012/05/19
2.
Self Introduction 名前:きょん(kyon_mm) Blog :
うさぎ組 Target : 開発環境改善 Groovy、テスト、自動化、アジャイル、品質保証 24歳うさみみ系男子 SCMBootCamp、Nagoya.Testing、 StartupGroovy
3.
今日発表する理由
4.
またもや@bleisさんと@mzpさんにはめられた件 http://d.hatena.ne.jp/kyon_mm/20120421/1335018515
5.
ということで
6.
多相Variant
7.
Variant
8.
型安全なenumみたいな
9.
値もてるけどな!
10.
Variant
11.
type irof1 =
Osaka_irof of PG |Fukuoka_irof of PG;;
12.
type irof2 =
Tokyo_irof of PG;;
13.
それぞれにパターンマッチ とか使えて便利!
14.
あー
15.
全国のirof を対象にしたい
16.
つまり
17.
irof を統一したい
18.
書いてみる
19.
type irof =
Irof1 of irof1 | Irof2 of irof1;;
20.
あれ?
21.
Irof1 とか Irof2
とか
22.
ちょっと邪魔ですね
23.
そこで
24.
多相Variantですよ!
25.
type irof1 =
[`Osaka_irof of PG |`Fukuoka_irof of PG];;
26.
type irof2 =
[`Tokyo_irof of PG];;
27.
再度
28.
irofを統一したい!
29.
type irof =
irof1 |irof2 ;;
30.
スッキリ!!!
31.
あれ?
32.
でも、こんなものが。。。
33.
#いろふさん目撃証言
34.
35.
36.
37.
irofを追加したい!
38.
そこで!
39.
多相Variantですよ!
40.
確認
41.
追加したいirof
42.
Okayama_irof Nara_irof
Nagoya_irof
43.
追加しよう
44.
type w_irof =
[`Okayama_Irof ! ! ! ! ! ! ! |`Nara_Irof ! ! ! ! ! ! ! | irof1];;
45.
簡単にirofさんを 追加できます!!
46.
いまのは
47.
要素を追加したけど
48.
クライアント側では
49.
もちろん静的に処理を追加 できるわけです
50.
ちょっと戻ると
51.
多相
52.
Variantで型が被っていると コンストラクタで
53.
type A =
[Foo| Num of int];; type B = [Bar | Num of int];;
54.
let func =
function Num i -> i | _ -> failwith "Not Number";;
55.
このときにAとして 使われる。。。
56.
でも、多相にしておけば
大丈夫!
57.
func を多相的に使えます。
58.
ほかに
59.
多相Variantには3つある
60.
開いている 閉じている 固定
61.
固定
62.
固定 -> 定義されているものと丁度合う
63.
開いている
64.
開いている -> 少なくとも定義されているもの
をもっている
65.
閉じている
66.
閉じている -> 定義されているもののうちどれ
かをもっている (定義以外はダメ)
67.
まぁいろいろ便利です。
68.
ご清聴ありがとうぴょん◆
Hinweis der Redaktion
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Jetzt herunterladen