はてブログ

はてなブックマーク新着エントリーの過去ログサイトです。



タグ 型システム

新着順 人気順 5 users 10 users 50 users 100 users 500 users 1000 users
 
(1 - 25 / 38件)

TypeScriptで知ってコードの安全性が上がったtips集

2024/03/20 このエントリーをはてなブックマークに追加 241 users Instapaper Pocket Tweet Facebook Share Evernote Clip Linter TypeScript Tips TIPS集 向上

TypeScriptを用いた開発では、その型システムを活かしてランタイムエラーを事前に防いだり、実装漏れを防いだりとコードの安全性の向上を図ることができます。 本記事では、個人的に知ったおかげでコードの安全性が増した!と感じたtipsをまとめました。 ※ なお、linterを用いたコードの安全性向上も非常に有効ですが、... 続きを読む

型システム入門」の先へ:TypeScriptの型システムのいくつかの側面 | 雑記帳

2023/12/08 このエントリーをはてなブックマークに追加 80 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript 側面 言語実装 雑記帳 型システム入門

この記事は TypeScript Advent Calendar 2023 の8日目の記事です。言語実装勢にも役立つ内容を含んでいるかもしれないので、 言語実装 Advent Calendar 2023 にも登録しています。 TypeScriptで型システムに興味を持った人が「型システム入門」を読んだという話を時々聞きます。「型システム入門」は、Types and Program... 続きを読む

関数型プログラミングと型システムのメンタルモデル

2023/10/26 このエントリーをはてなブックマークに追加 276 users Instapaper Pocket Tweet Facebook Share Evernote Clip メンタルモデル 関数型プログラミング

Qiita Conference 2023 Autumun での発表資料です 発表時間の見積もりが下手で後半全然説明できませんでした、すみません! 続きを読む

初めてのTypeScript

2023/05/31 このエントリーをはてなブックマークに追加 52 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript プログラマー 本書 パク 入門書

TypeScriptの本格的な入門書。TypeScriptは、世界で最もよく使われ、かつ最も好まれているプログラミング言語の1つです。本書では、JavaScriptの基礎的な知識のあるプログラマーを対象に、「型」や「型システム」の基本から、明快かつ包括的にTypeScriptを解説します。TypeScriptはバグやタイプミスを防ぎ、コードを読み... 続きを読む

TypeScriptにおける配列の共変性

2022/12/15 このエントリーをはてなブックマークに追加 130 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript ANIMAL String 配列 Dog

const animal: Animal = { animal: "string", }; const dog: Dog = { animal: "string", dog: "string", }; いま,Dog <: Animalです. <:という記号は2つの型のあいだに書いて,「左の型が右の型のサブタイプである」と読みます. TypeScriptの型システムは構造的なので,2つのオブジェクトがサブタイプ関係にあるには... 続きを読む

TypeScriptの安全性の穴

2022/06/07 このエントリーをはてなブックマークに追加 6 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript 共通認識 安全性 無い所

TypeScriptの型システムは不完全です。 型システム上しょうが無い所も、どうしてそうなってるのって所もあります。 この記事では共通認識となっているようなものから、あまり認知されていないものも含め、TypeScriptの安全性の穴になり得る所を紹介します。 続きを読む

なぜRustなの?と言われた時のために

2022/02/13 このエントリーをはてなブックマークに追加 202 users Instapaper Pocket Tweet Facebook Share Evernote Clip rust メモリ 言語 コミュニティ コンセプト

20 秒で概要 当記事では、Rust における以下の 4 つのいいところを特徴を紹介します。 他の言語と比較しながらコンセプトを学ぶことで、なぜ今 Rust を学ぶべきかを理解できます。 Rust はメモリ安全な言語です Rust はリッチな型システムがあります Rust はエラー処理が分かりやすい Rust は健全なコミュニティの有るエ... 続きを読む

型安全Storageの実装を通して学ぶ! TypeScriptの型

2021/12/12 このエントリーをはてなブックマークに追加 11 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript 難題 実装 プログラミング言語 言語

まえがき TypeScriptの型システムは、他のプログラミング言語にはないユニークな機能を多く備えています。これは、動的型付け言語であるJavaScriptで書かれたコードの振る舞いを(静的)型によってモデル化するという難題に対する答えであり、結果としてTypeScriptの型は比肩するものがないほど強力な表現力を持つことにな... 続きを読む

Rubyの型システム勉強会を開催した

2021/10/14 このエントリーをはてなブックマークに追加 13 users Instapaper Pocket Tweet Facebook Share Evernote Clip Ruby kokuyouwind Leaner 機運 黒曜

Leaner 開発チームの黒曜(@kokuyouwind)です。 週末のゾンビランドサガLIVEを楽しみに今週を生き抜いています。 Rubyの型システム勉強会 実施背景 先日のRubyKaigi Takeout 2021で機運が盛り上がったこともあり、社内で Ruby の型システムを活用していきたいよねという話が出てきました。 前回書いた記事 で RBS Collect... 続きを読む

Python の型システムの上で Immutable な Python プログラムを作る - 病みつきエンジニアブログ

2020/08/23 このエントリーをはてなブックマークに追加 86 users Instapaper Pocket Tweet Facebook Share Evernote Clip プログラ まえがき immutable 補足 本稿

まえがき 今年の PyCon JP 2020 にて「Python 3.9 時代の型安全な Python の極め方」というタイトルで登壇させていただきます。本稿は、発表の補足となる「型ヒントを使って Immutable な Python を実現する方法」について紹介したものです。 Python の型ヒント Python には「型ヒント」という機能があり、型をプログラ... 続きを読む

TypeScript の型システム / Type system of the TypeScript - Speaker Deck

2020/07/31 このエントリーをはてなブックマークに追加 18 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript Speaker Deck

string number undefined null { x: number, y: number } string[] [ string, number ] type Hoge = { x: number, y: number }; & type HogeProps = { x: number }; type HugaProps = { y: number }; // 2 const props: HogeProps & HugaProps; const props: { x: number, y: number }; & structural typing props 続きを読む

TypeScript の型定義ファイルの探索アルゴリズム - 30歳からのプログラミング

2020/07/15 このエントリーをはてなブックマークに追加 16 users Instapaper Pocket Tweet Facebook Share Evernote Clip npm TypeScript aNy 探索アルゴリズム 恩恵

npm パッケージは基本的に、JavaScript ファイルで配布されている。TypeScript で開発しているパッケージであっても、JavaScript にビルドしたものを配布している。 そのため、型定義ファイルによって型付けしないと、インポートした際にモジュール全体がanyになってしまう。 これでは型システムの恩恵を受けることがで... 続きを読む

TypeScript で型レベル Brainfuck - Object.create(null)

2020/03/10 このエントリーをはてなブックマークに追加 14 users Instapaper Pocket Tweet Facebook Share Evernote Clip Brainfuck TypeScript チューリング 言語

TypeScript の型システムはチューリング完全ということが知られていますが, 同じくチューリング完全な言語である Brainfuck のインタプリタを実装することで, その計算能力を確認することができます. この記事のコードは TypeScript 3.8.3 で動作確認しています. ゴール 型レベルで Brainfuck のインタプリタを実装しま... 続きを読む

TypeScriptを使って嬉しかったこと - Qiita

2020/01/13 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita TypeScript ガードレール 証拠 新人

新人「先輩、TypeScriptのコーディングできました!」 先輩社員「どれどれ」 先輩社員「いやそこら中コンパイルエラーだらけ...なのは型システムが働いてる証拠だ!」 先輩社員「そうだろ?」 先輩社員「型は...ガードレールだ」 先輩社員「進むべきじゃない場所へ進もうとしたら、ちゃんとブロックしてくれる...」 (ぺ... 続きを読む

ポケットモンスター ソード/シールドにHaxeが採用されていた - terurouメモ

2019/11/16 このエントリーをはてなブックマークに追加 249 users Instapaper Pocket Tweet Facebook Share Evernote Clip haXe 顛末 シールド terurouメモ ポケモン

顛末 昨日、こういう感じのツイートを見かけかました。 ポケモンほどの大規模なゲームでHaxe採用されるの初めてなのではhttps://t.co/i8lCJx0NWh— neguse (@neguse) 2019年11月14日 結果、このような形となりました。 これは、Haxeという高度な型システム及びマクロシステムを持つ静的型付き言語であり、マルチプラット... 続きを読む

Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita

2019/01/09 このエントリーをはてなブックマークに追加 23 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita SCA Scala 述語論理 実験

Scalaの型システムには興味深い型が存在します。Scalaの型で述語論理を表現できないか、表現できるとしたら集合論をScalaで書けてしまわないだろうか、という興味から、Scala-proofsというプロジェクトを立ち上げて実験をしています。この記事は、Scala-proofsの中で使用する論理体系の表現手法について解説します。 Sca... 続きを読む

型システム 〜プログラムの安全性を支える数学〜 - Laborify

2018/12/09 このエントリーをはてなブックマークに追加 410 users Instapaper Pocket Tweet Facebook Share Evernote Clip 概念 京都大学大学院 Laborify 種類 大学

京都大学大学院 情報学研究科 通信情報システム専攻 修士2回生の五十嵐雄です.大学では,プログラミング言語理論,その中でも特に型システムの研究をしています. この記事では,私が特に力を入れて研究している漸進的型付けという種類の型システムについて紹介します.プログラムや型システムといった基本的な概念から... 続きを読む

線形ラムダ計算の型システムを実装してみた - NKaml's diary

2018/11/15 このエントリーをはてなブックマークに追加 22 users Instapaper Pocket Tweet Facebook Share Evernote Clip OCaml いまいち理解

はじめに 最近Advanced Topics in Types and Programming Language(ATTaPL)という本を読んでいるのですが、この本のはじめのSubstructural Type Systemの章で解説されているLinear Lambda Calculus(線形ラムダ計算)について、イマイチ理解が進まなかったので、せめて概形でも掴もうと思い、OCamlを使って型システム... 続きを読む

Swiftの型システムに入門する - iOSDC Japan 2018 - Speaker Deck

2018/08/31 このエントリーをはてなブックマークに追加 43 users Instapaper Pocket Tweet Facebook Share Evernote Clip Swift Speaker Deck

All slide content and descriptions are owned by their creators. 続きを読む

F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam

2018/07/07 このエントリーをはてなブックマークに追加 170 users Instapaper Pocket Tweet Facebook Share Evernote Clip マイクロソフト 世間 言語 Amosapientiam 現状

マイクロソフトが開発中のF* という依存型プログラミング言語を少し触ってみました。 この言語には強力で複雑な型システムが組み込まれています。 現状、依存型言語は世間にはあまり広まっていませんので F*とは? 複雑な型ってなんだろう? 複雑な型システムを組み込んで何が嬉しいんだろう? 何が嬉しくないんだろう?... 続きを読む

漸進的型付け言語の時代に必要なもの - mizchi's blog

2018/07/05 このエントリーをはてなブックマークに追加 417 users Instapaper Pocket Tweet Facebook Share Evernote Clip mizchi's blog 言語 時代 Facebook 動機

最近では、Gradual Typing、漸進的型付けと呼ばれる型システムを備えた言語(拡張)が増えてきています。 次のようなもの JavaScript: TypeScript / Flowtype Python: mypy / pyre-checker PHP: hack / php-storm flow/pyre-checker/hack と facebook 製が多いですね。 この記事は、それらを使う動機と運用について書きま... 続きを読む

私と型システムとポエム - The curse of λ

2018/06/02 このエントリーをはてなブックマークに追加 271 users Instapaper Pocket Tweet Facebook Share Evernote Clip ポエム あくま 時流 tl;dr 言及

最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくま... 続きを読む

ジェネリクスと配列 - プログラマーの脳みそ

2018/02/14 このエントリーをはてなブックマークに追加 69 users Instapaper Pocket Tweet Facebook Share Evernote Clip ジェネリクス 脳みそ Java プログラマー 配列

Javaのジェネリクスは一般に配列と混ぜてはいけないとされるが、混ぜて用いた場合に何が問題となるのか。 歴史的な問題 Javaが1995年に登場した当時、Javaに配列はあったがジェネリクスはなかった。 1990年代から2000年代にかけてJavaのバージョンアップの時期に並行して、ジェネリクスを含む型システムの理論的な整備が行われていた。これはJavaが産まれた当初時点1995年になぜより良いジ... 続きを読む

Haskell でのデバッグ手法あれこれ | 雑記帳

2018/01/24 このエントリーをはてなブックマークに追加 48 users Instapaper Pocket Tweet Facebook Share Evernote Clip Haskell GHC デバッグ手法 関数 パク

プログラムにバグはつきものです。強力な型システムを備えている Haskell でもそれは同じです。この記事では、 Haskell プログラムのデバッグ手法をいくつか挙げてみます。 なお、使用している GHC は 8.2.2 です。より新しいバージョンで追加されるであろうより便利な機能は、この記事の対象外です。 心構え:処理を分割せよ Haskell は純粋な言語です。IOが絡まない関数であれば、同... 続きを読む

「後付の型システム」の活用についてFlowtypeとReduxから考える - Qiita

2017/01/23 このエントリーをはてなブックマークに追加 93 users Instapaper Pocket Tweet Facebook Share Evernote Clip redux Qiita TypeScript Lintツール

FlowtypeやTypeScriptは静的解析によって事前に型違反を検知することができる。JavaScriptは動的型付けの言語であり、本来はランタイムにしか型が出現しない。 FlowtypeとTypeScript、ともに「それ自身がランタイムではない」というのが特徴であり、一種のLintツールだと言うことができる。ランタイムではないがゆえに、嘘の事前条件を与えることでそれらを騙すことができるし... 続きを読む

 
(1 - 25 / 38件)