ウェブ表彰は手軽に表彰状を作成出来るサービスです。スゴいと思ったものや頑張ってる人を気軽に褒め称えましょう。
![ウェブ表彰 | 気軽に誰かを称賛しよう](https://cdn-ak-scissors.b.st-hatena.com/image/square/c0bcef00a12fd052999eff6e3abc108d33436e63/height=288;version=1;width=512/https%3A%2F%2Fhyou.show%2Fcert%2Fogp.png)
Rustに入門して2週間くらい経ったぜ TL;DR Rustは普通に便利ないい言語 入門した 入門にあたってはプログラミング言語Rustを読んだ。これの翻訳版ぽい。 読んでRustに対して思ったこと: 読んだやつは古いドキュメントの翻訳版だったようで一部記述が古いっぽかった 構文はシンプルだけど必要なものは揃ってる感 ML風でADTもパターンマッチもあるしtraitもあって言うことナシでしょ 所有権とか借用とかそういう聞いたことあるワードは参照という概念に対するアレっぽい スィー言語を気軽に(unsafe)呼べるのはFFIするとき良さそう 強そう マクロ割と便利そうな雰囲気ある RcとかArcとかCellとかいう便利なものがあるらしい あとBoxはいつ使うんじゃ 参照わかったようでわからない とりあえずスタックとヒープの違いは覚えたぞ 入門書なのに普通にするする読めてしまったし特に難しいこ
最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくまでポエムですので中身はないです 私は型理論専攻で学位はとったものの研究者ではないのであまり信用しすぎないように 型システムの過去 型システムは大まかに次のような利点があるとされてきた(個人的主観) 「異常」なプログラムを検出する仕組み 静的解析による分かりやすいエラーメッセージ 型そのもののドキュメント性 IDEでのcompletionに貢献 最適化に貢献 (数学に正しく裏打ちされたsemanti
このエントリは言語実装Advent Calendar 2015 10日目の記事です κeenです。今日はある程度gcに頼らずメモリを管理する手法、リージョンについて話そうと思います。 リージョン推論とそのアルゴリズムまで話せればよかったのですがサーベイが間に合わず… スタックベースのメモリ管理 gcのない言語、例えばcでも自動で解放される類のメモリがあります。ローカル変数です。 ローカル変数のメモリ確保/解放戦略は単純です。ブロックの開始に確保され、ブロックの終わりに解放されます。 { int x; // <- xが確保される { int y = 2; // <- yが確保される { int z = 3; // <- zが確保される x = y + z; } // <- zが解放される } // <- yが解放される } // <- xが解放される ブロックはネスト構造をとるのでメモリ管理
多相性って何? パラメータ多相 Nick さん曰く: この関数 head は A のリストを取って A を返します。A が何であるかはかまいません。Int でもいいし、String でもいいし、Orange でも Car でもいいです。どの A でも動作し、存在可能な全ての A に対してこの関数は定義されています。 scala> def head[A](xs: List[A]): A = xs(0) head: [A](xs: List[A])A scala> head(1 :: 2 :: Nil) res0: Int = 1 scala> case class Car(make: String) defined class Car scala> head(Car("Civic") :: Car("CR-V") :: Nil) res1: Car = Car(Civic) Haskell
2018年に静的解析をとにかく強力につけまくるのは多分あんまりコストに見合わないのでよくない じゃあ静的解析を窓から投げ捨ててよいかというとそれはただの愚行 (以下、静的解析を普通に使えてる人には自明なことしか言いません) 私が最初に静的解析の限界を感じたのは多分依存型で遊んでいたとき 依存型の力はすごくて、まぁそれもそのはず命題論理から述語論理に進んで元への言及ができるので見かけ上表現力はとんでもなく上がるわけです。例えば「ある方程式を満たす解のみを受け取って何かする」みたいな関数が型として表現できるようになる。 一見すると最強に見えるんだけどこれは実質定理証明をすることなので、制限の強い型をつければつけるほど実装で苦しむ羽目になるということを割とすぐ痛感することになった。 例えば head : Vect (Suc n) a -> a で長さ1以上のvectorの先頭を安全に取り出す関数
はじめにPython3.3 までは、 「あるディレクトリ以下に存在するテキストファイルの一覧を取得して、それぞれを開く」 という処理に、以下の 3 つのライブラリを使う必要がありました。 ファイルパス操作 os.pathファイルの一覧取得 glob.globファイルを開く openしかし、Python3.4 以降であれば、これらを すべて 標準ライブラリpathlibに一任 することができます。 これによって、ファイル操作処理における 書きやすさ・読みやすさが向上 し、それぞれのライブラリの使い方をわざわざ調べる時間や、 ライブラリ間の微妙な仕様の違いに苛まれる心配から解放されます。 今回は、 「../datasets/foo/bar以下に存在するテキストファイルをすべて取得して、内容を表示したい」 という目標に対して、pathlib を利用しない場合、pathlib を利用する場合のコー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く