- Scott Chacon on the Interwebs(リンク切れ)
- Scott Chacon on the Interwebs
- GitHub Flow - The best way to use Git and GitHub
31 Aug 2011
| 原文: | http://www.sdtimes.com/link/36534 |
|---|---|
| 著者: | Larry O'Brien |
僕は関数型プログラミングが好きだ。次の10年にかけてコードの革命を起こしていくだろうと考えている:言語はより関数型の機能を採用していくだろうし、開発者はより関数型の技術を導入していくだろうし、いくつかの点では、関数型プログラミングの原則はコードを組み立てていく上で「自然で」もっとも明確なやり方だとみんな考えるようになっていくだろう。
だけど、僕はもうこのシナリオを本気にしちゃいない。関数型プログラミングは、ワクワクするものを学ぶことに興味があると言っている主流のプログラマにとって明白な、大きな問題を抱えている:関数型プログラマーは自惚れ野郎どもだってことだ。
| 原著者: | Adrian Holovaty |
|---|---|
| 原文: | Why I left Heroku, and notes on my new AWS setup |
金曜日、私は Heroku から Amazon Web Services(AWS) を直接使うように Soundslice を移行しました。私はこの変更ができてとても、そうとても嬉しくて、私がどうやったかということと、もし皆さんが同じような立場だったら何故それを検討すべきかということについて広く伝えたいと思います。
| namespace FSharp.Monad | |
| type CoYoneda<'U> = | |
| abstract Run: obj -> 'U | |
| type CoYoneda<'F, 'A>(fi: 'F, k: CoYoneda<'A>) = class end | |
| module CoYoneda = | |
| let apply fa k = |
original: Robustness principle
コンピューティングの世界において、堅牢性原則はソフトウェア設計のガイドラインである:
あなたが為すべきことには保守的であれ、あなたが他から受け入れることには寛容であれ(しばしば「あなたが送るものには保守的であれ、あなたが受け取るものには寛容であれ」と言い換えられる)
この原則は、TCPの初期の仕様を執筆したジョン・ポステルに因んで、ポステルの法則としても知られている:
| use orbtk::prelude::*; | |
| use std::cell::Cell; | |
| // `Rust のマルチプラットフォーム UI ライブラリ OrbTk の使い方 - A Memorandum<https://blog1.mammb.com/entry/2019/12/16/090000>` | |
| // で紹介されている、Rust用クロスプラットフォームUIツールキット `OrbTk<https://github.com/redox-os/orbtk>` | |
| // が興味深かったので写経したところ、上記記事では OrbTk のバージョンは 0.3.1-alpha1 でしたが、 | |
| // 現時点(2020/08/13)では v0.3.1-alpha4 まで上がっており、そのまま書くだけでは動かないところが | |
| // あったので、「イベント処理」のサンプルに v0.3.1-alpha4 なりの修正を入れて書き直してみました。 | |
| static ID_INPUT: &'static str = "input"; |
| def obsolete(message=None, deprecated=False): | |
| """今後使用しない関数やメソッドにマークを付けます。 | |
| @message 警告に表示するテキスト | |
| @deprecated すでに非推奨の場合、True | |
| 今後非推奨になる予定の場合、False | |
| @see http://msdn.microsoft.com/ja-jp/library/system.obsoleteattribute.aspx | |
| """ | |
| def outer(fn): | |
| import warnings | |
| def inner(*args, **kwargs): |
| Get-ChildItem -Recurse | where { $_.Directory } | %{ [System.String]::Format("{0}`t{1}`t{2}", $_.FullName, $_.Length, $_.LastWriteTime) } | %{ Write-Output $_ } |
| let catch (expr: Lazy<'T>) = | |
| try | |
| Choice2Of2(expr.Force()) | |
| with | |
| | ex -> Choice1Of2(ex) | |
| let parameterizedTest(input, expected) = test { | |
| let actual = catch (Lazy.Create <| fun () -> fut input) | |
| match (expected, actual) with | |
| | (Choice1Of2 ex, Choice1Of2 ex') -> |