SlideShare a Scribd company logo
TypeScript で型を上手く使う試み
株式会社coroutine 東川 諒央
featuring ChatGPT and GitHub Copilot
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
自己紹介
1
株式会社 coroutine
東川 諒央
@biwakonbu
大学教員 ゲームバックエンド フリーランス
経歴
Ruby Python JavaScript
実績言語
PHP
技術顧問 エンジニア教育
業務
設計 プログラミング インフラ
etc…
Rust Haskell TypeScript
学習中言語
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
型とは
2
❏ メモリ上のデータの構造や意味を定義する仕組み
❏ コンピュータで扱うことが出来るデータの種類を定義
❏ 同一の型では、同じ演算が適用できる
❏ 型の仕組みとしては、動的型と静的型がある
❏ 利用目的
❏ プログラムの正しさを保証するため:型システムは、型の整合性を確認することで、実行時エ
ラーや予期しない動作を事前に防止することができる。
❏ コードの可読性を高めるため:型付きのプログラムは、変数や関数の役割や目的を明確に示す
ことができるため、理解しやすくなる。
❏ デバッグやリファクタリングの効率化:型付きのプログラムは、コンパイルエラーが起きること
で、問題の特定や修正が容易になる。
型とは - 動的型と静的型
2
❏ 動的型
❏ データの型をプログラム実行時に評価する。
❏ 実行前に決定出来ないため、型違いによるエラーは実行時に実際に評価する事で発生する
❏ 実行前の事前計算が不要な為、実装 -> 実行 -> 修正のイテレーションが早くできる
型とは - 動的型と静的型
2
❏ 静的型
❏ 事前にコンパイルする事で実行する前に型違いなどに起因するエラーが発見できる
❏ 理論的に発生し得る問題を検出できるため、比較的安全なソフトウェアが開発できる
❏ コンパイル待ちが段々辛くなる
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
TypeScript の型
3
❏ 構造的部分型
TypeScriptは構造的部分型を採用しており、オブジェクトの型が同じであれば
互換性があると判定される。 JavaScriptの既存のコードとの互換性が高く、
型の厳密さを調整することができる。
“ 構造的部分型は実際のデータ構造に着目した型付けとなる “
TypeScript の型 - 構造的部分型の例 : type にも置き換えられる
3
SubType
TypeScript の型 - 構造的部分型の例 : 継承利用
3
SubType
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
TypeScript で安全性を高めるコードをどう書くか?
4
❏ コードの安全性について色々考え中
❏ 今年から実用を踏まえた上でRust, Haskell に本格的に入門しました
❏ 安全性を高めるためには型システムへの理解が必要という考え
❏ 学術的価値と実用的価値との距離
❏ エコシステムが成熟していないと実用に耐えないため、検討中
❏ TypeScript は高度に型を扱える言語で、ライブラリと合わせる事で強固に
❏ Rust は言語レベルで強力な安全性を提供、実用面も増えてきた
❏ Haskell は... WEB 領域では多分悟りを開くための言語でストップしそう
❏ Haskell は学術的な話が言語文化的に多いので文献のために入門という感じ
❏ 型レベルプログラミング(Type-level programming)
と代数的データ型 (Algebraic Data Types) の理解が目的
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
型レベルプログラミングと代数的データ型
5
❏ 型レベルプログラミング
❏ 型システムを利用して型をプログラムの値として操作する手法
❏ 型を定義、組み合わせ、操作によって実現する
❏ コンパイル時の型検査によるチェックを厳密に行い、未来にエラーが発生する可能性のある処
理を検出する
❏ コンパイル処理の為ランタイムに影響を与えない
❏ 代数的データ型
❏ 複数の値を組み合わせた型を定義できる
❏ 独自のデータ型も定義できる
❏ 値のパターンマッチによる場合分けに対する処理が定義できる
違い:型同士の組み合わせによって新しい型を生成するのが型レベルプログラミング。
型と値によって新しい型を生成するのが代数的データ型という現状の理解。
型レベルプログラミングと代数的データ型 - TS で API を叩く例
5
型レベルプログラミングと代数的データ型 - 型を厳密に付けた場合
5
型レベルプログラミングと代数的データ型 - 型を厳密に付けた場合
5
型レベルプログラミングと代数的データ型
5
❏ 記述が圧倒的に増えている(10行くらいで書けたコードが100行近くに)
❏ 型を付けまくるというのは定義が非常に多くなり、型の理解が難解になる
❏ ただし、本来存在する難しさが隠蔽されているだけで向かい合う必要はある
❏ テストコードを書いたりするとコードが肥大化するのと同じ現象
❏ 書いた体験談
❏ 型を解決する際に不可解な解決方法が出てくる場合がある
❏ その時は全て自分の目の前の型への不理解が原因
❏ fetch API の戻り値に Result 型を導入する時に結構困った
❏ ChatGPT に聞きながら Copilot でサジェスト貰いながら調査で理解できた
❏ JS / TS は Promise のせいで無闇に難しくなる制御がでてくるので型解決できると
コンパイル時 (やエディタのリント) でエラーが検出できる
❏ 型付けによるエディタ / IDE がプロダクトに特化する感じが非常に体感として良かった
自己紹介
1
TypeScript の型
3
TypeScript で安全性を高めるコードをどう書くか?
4
型とは
2
5 型レベルプログラミングと代数的データ型
6 まとめ
まとめ
6
❏ 型レベルプログラミングは毒でもあり薬でもある
❏ チーム内の理解レベルが離れすぎてると偏重主義は良くない感じは正直ある
❏ 全員が同様のレベルで、堅牢なシステムを書く場合には非常に優位な仕組み
❏ TypeScript は型の扱いの振り幅が大きい
❏ とりあえず使う場合は型の厳密性は低く、
ランタイム時でしか発見できないエラーケースはそれなりに発生する
❏ 緻密に構築された型は非常に堅牢だが、変更容易性は低くなる
(ちょっと変更した場合に連鎖して変更しないとコンパイルが通らないなど )
❏ プロダクト序盤は厳密性を求めず、安定性が欲しくなるフェーズで
型情報をリライトしていくのは結構ありかもしれない
書籍宣伝 (Types-and-Programming-Language)
記事を書く際に見てた参考記事
- 型について (型といえば Haskell)
- 純粋関数型言語の3つの特徴
- TypeScript と型と型が存在する事で嬉しい事
- TS の型とは何か (構造的部分型)
- TS の型について
- TypeScriptの型入門 - Qiita
- TypeScriptの型初級 - Qiita
- TypeScriptで | を使わずにユニオン型を得る方法大全 - Qiita
- TypeScriptで学ぶ代数的データ型
- 型レベルプログラミング
- An Introduction to Type Level Programming
- GitHub - gvergnaud/type-level-typescript-workshop: Interactive exercises to get familiar with
TypeScript's most advanced features
- An introduction to type programming in TypeScript
- Documentation - TypeScript for Functional Programmers
おわり
Twitter: @biwakonbu
Twitter やってます。
良ければ交流してください。

More Related Content

What's hot

2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
Koji Morikawa
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
Daichi OBINATA
 
UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介
Noriyuki Mizuno
 
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
Yoshiki Hayama
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!Genya Murakami
 
Xamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た SwiftXamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た Swift
Tomohiro Suzuki
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4信之 岩永
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
toshihiro ichitani
 
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
KazuoSuzuki6
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
信之 岩永
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
 
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
ESM SEC
 
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
tattaka_sun
 
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界maruyama097
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューMoriharu Ohzu
 
プロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメントプロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメント
Takamasa Hirose
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則
Toru Koido
 

What's hot (20)

2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて2D格闘ゲームにおけるユーザビリティとゲームデザインについて
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
 
UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介UTP(UML Testing Profile)概要紹介
UTP(UML Testing Profile)概要紹介
 
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
「ウチの事業部の商品をWebサイト・アプリで目立たせて!」私だけじゃなかった! 社内政治と落としどころの見つけ方
 
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
 
Xamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た SwiftXamarin.iOS 開発者から見た Swift
Xamarin.iOS 開発者から見た Swift
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
Azure OpenAI ServiceのChatGPT API と OpenAIのChatGPT APIの比較
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
 
C#や.NET Frameworkがやっていること
C#や.NET FrameworkがやっていることC#や.NET Frameworkがやっていること
C#や.NET Frameworkがやっていること
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用ソフトウェア開発を加速させるリーン開発の原則 公開用
ソフトウェア開発を加速させるリーン開発の原則 公開用
 
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
 
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 
プロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメントプロダクトのフェーズとマネジメント
プロダクトのフェーズとマネジメント
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則
 

Similar to TypeScript で型を上手く使う試み.pdf

はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
 
みんなのPython勉強会#62
みんなのPython勉強会#62みんなのPython勉強会#62
みんなのPython勉強会#62
hiroya akita
 
大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】
Mitsuhito Ishino
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
KyutatsuNishiura
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
Masahiro Wakame
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
Keisuke Takahashi
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
Keisuke Umezawa
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
 
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"Ryohei Suzuki
 
HTML5 入門
HTML5 入門HTML5 入門
HTML5 入門
NOAN
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
Fujio Kojima
 
Python勉強会 2015-12-02
Python勉強会 2015-12-02Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法
kazukiTakahashi18
 
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う  ~ 概念モデリング教本を元に ~ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う  ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
Knowledge & Experience
 
プログラマ人生論
プログラマ人生論プログラマ人生論
プログラマ人生論
ymmt
 
生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~hayabusa333
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
Yusuke Naka
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
Preferred Networks
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
Tetsuya Morimoto
 

Similar to TypeScript で型を上手く使う試み.pdf (20)

はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
みんなのPython勉強会#62
みんなのPython勉強会#62みんなのPython勉強会#62
みんなのPython勉強会#62
 
大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】大人の基礎C#【Niigat.NET 2015-10】
大人の基礎C#【Niigat.NET 2015-10】
 
mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応mypy - 待望のPython3.9型ヒント対応
mypy - 待望のPython3.9型ヒント対応
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
 
プログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flowプログラミング言語として考えたTensor flow
プログラミング言語として考えたTensor flow
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"iii_SGMI #5 "OOP & Design Patterns"
iii_SGMI #5 "OOP & Design Patterns"
 
HTML5 入門
HTML5 入門HTML5 入門
HTML5 入門
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
Python勉強会 2015-12-02
Python勉強会 2015-12-02Python勉強会 2015-12-02
Python勉強会 2015-12-02
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
プログラミングを早くする方法
プログラミングを早くする方法プログラミングを早くする方法
プログラミングを早くする方法
 
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う  ~ 概念モデリング教本を元に ~ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う  ~ 概念モデリング教本を元に ~
ChatGPT(LLMによる生成系AI)の追加学習を No Code で行う ~ 概念モデリング教本を元に ~
 
プログラマ人生論
プログラマ人生論プログラマ人生論
プログラマ人生論
 
生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~生存戦略~きっと何者にもなれる~
生存戦略~きっと何者にもなれる~
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 

More from Ryo Higashigawa

新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx
Ryo Higashigawa
 
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptxAWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
Ryo Higashigawa
 
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
Ryo Higashigawa
 
フロントエンド技術の変遷
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷
Ryo Higashigawa
 
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptxAWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptx
Ryo Higashigawa
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
Ryo Higashigawa
 
Ml ch10
Ml ch10Ml ch10
Ml ch7
Ml ch7Ml ch7
Ml ch3
Ml ch3Ml ch3
Ml ch2
Ml ch2Ml ch2

More from Ryo Higashigawa (10)

新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx新しいWEBフロントの開拓.pptx
新しいWEBフロントの開拓.pptx
 
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptxAWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
AWS を始める時に気をつけるべき課金周りの仕組みと設定.pptx
 
``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx``完璧に理解した``WEB の裏側の仕組み.pptx
``完璧に理解した``WEB の裏側の仕組み.pptx
 
フロントエンド技術の変遷
フロントエンド技術の変遷フロントエンド技術の変遷
フロントエンド技術の変遷
 
AWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptxAWS でサーバーレスを使っている話.pptx
AWS でサーバーレスを使っている話.pptx
 
これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境これからはじめるための JavaScript 開発環境
これからはじめるための JavaScript 開発環境
 
Ml ch10
Ml ch10Ml ch10
Ml ch10
 
Ml ch7
Ml ch7Ml ch7
Ml ch7
 
Ml ch3
Ml ch3Ml ch3
Ml ch3
 
Ml ch2
Ml ch2Ml ch2
Ml ch2
 

TypeScript で型を上手く使う試み.pdf