タグ

2019年2月16日のブックマーク (2件)

  • さようなら遅延評価 - あどけない話

    Haskellがとっつきにくい原因の一つに遅延評価がある。入門書では、無限リストと遅延評価がことさら強調される。しかし、Haskellを業務で使ってみると、遅延評価が煩わしくなってくる。遅延評価なしでもほとんどのことは実現できるし、メモリーの使用量は推測できないし、あまりいいことはない。 Haskellの評価戦略が、他の言語と同じように正格評価だったらよかったのに。 今まで、このようなセリフを何度聞いたか分からない。 そもそも遅延評価が役立つことはあるのだろうか? ある。お世辞抜きに、少なくとも以下の3つでは当に役立つ。 リスト(あるいは類似のデータ構造)処理 純粋性に対する暗黙のテスト 効率的なCAS 1.はよいだろう。2.は純粋さを守るために必要だが、コンパイラを開発する人にとって重要なのであり、ユーザには関係ない。3.は、並行プログラミングの奥義である。atomicModifyIO

    さようなら遅延評価 - あどけない話
    slash_01
    slash_01 2019/02/16
    なんてこった。
  • Go Modulesの概要とGo1.12に含まれるModulesに関する変更 #golangjp #go112party - My External Storage

    TL;DR Go Modules(vgo)はGo1.11から導入され始めたGoの新しいバージョン管理 Go1.12ではまだ有効にはなっていない(Go1.13からはデフォルトで有効になる) Go Modulesの概要とTipsなどを簡単にまとめた Go1.12のModules関連の変更をDockerを動かして確認してみた GOPATHi外でgo.modがなくてもgo run可能 replaceディレクティブで依存パッケージをローカルのコードを使って解決 etc… 確認に利用したDockerfileやスクリプトは以下のリポジトリにある。 https://github.com/budougumi0617/gomodules-explore vgo発表前のGoのバージョン管理は以下のような手法が取られていた。 go getでgo1タグ・ブランチもしくは最新のmasterブランチを取得する go g

    Go Modulesの概要とGo1.12に含まれるModulesに関する変更 #golangjp #go112party - My External Storage
    slash_01
    slash_01 2019/02/16
    あー、早くこれに慣れないと。。