Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Type Providers

e_ntyo
April 17, 2020

Introducing Type Providers

2020/04/17 (金) 型システム祭りオンライン
@e_ntyo

e_ntyo

April 17, 2020
Tweet

More Decks by e_ntyo

Other Decks in Programming

Transcript

  1. Type Providers とはどのような機能か • データソースはリモートにあってもよい • JSON以外にも、様々な構造のデータに対応[4] ◦ JSON, XML,

    CSV, HTML, SQL, Entity Framework, OData, WSDL, etc. ◦ 必要であれば自作することも可能[5](らしい)
  2. Type Providers を使うと何が嬉しいのか • 実データドリブンで型が決まる→信頼性の向上 ◦ 一般に、プログラムからアクセスしようとする外部のデータには型定義がない ▪ “API仕様書”に書いてあったりする •

    JSON Schema[3]が登場、将来的には変わってくる? ▪ 仕様と異なる値が入っていることも • 補完が効くため、未知のデータをシュッと解析したいときに役立つ ◦ 「このcsvファイルの内容をいい感じに集計したグラフを作っておいてください」
  3. まとめ - 今日話さなかったこと • SRTPや測定単位の推論など、F#の型システムについてのその他のトピッ ク • Type Providersはどう実装されているのか ◦

    元論文[2]を確認してください • Type Providersはどういった経緯で提案されたのか ◦ F#の言語デザイナであるDon氏によるF#の歴史についての記事[1]を確認してください ◦ 10万字近い大作ですが、猪股健太郎氏による日本語訳[6]もあります
  4. 参考文献 • [1] Don, Syme.; The Early History of F#:

    The Early History of the F# Language, camera ready. ACM Program. Lang. 2020, HOPL, Article 75(4), p.75-132. https://doi.org/10.1145/3386325. • [2] Petricek, Tomas.; Guerra, Gustavo.; Syme, Don. Types from data: Making structured data first-class citizens in F#. PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2016/05/10, p.477-490. https://doi.org/10.1145/2908080.2908115 • [3] JSON Schema. http://json-schema.org/, (accessed 2020-04-13).
  5. 参考文献 • [4] Cartermp. “Type Providers - F#.” F# |

    Microsoft Docs. https://docs.microsoft.com/en-us/dotnet/fsharp/tutorials/type-providers/, (accessed 2020-04-13). • [5] Cartermp. “Tutorial: Create a Type Provider - F#.” F# | Microsoft Docs. https://docs.microsoft.com/en-us/dotnet/fsharp/tutorials/type-providers/creating-a- type-provider, (accessed 2020-04-13). • [6] DON SYME. 猪股健太郎訳. "The Early History of the F# Language". matarillo.com. 2019-09-10. https://matarillo.com/general/hopl-fsharp.md, (accessed 2020-4-14).