ブックマーク / daretoku-unix.blogspot.com (4)

  • 3imp 読書メモ(2)

    今回はチャプター4の最初の第1節について書く。 3imp 未読の人には何が何やらわからない内容だと思う。 読んだことがある人は間違い探しでもしながら読んでもらえればと思う。 チャプター4 はスタックベースモデルの章だ。 ヒープベースモデルでは変数ルックアップと関数呼び出しのコストが大きい。一方でスタックベース言語の代表みたいなCなんかは、 コールフレームや環境にヒープを必要としないのでそのへんが速いようだ。でも(定義場所からリターンした後も使えるような物の)ファーストクラス関数、 TCO, 継続などをスタックベースで実装するのは簡単ではない。(Cなどでそういった機能が限定的なのもそれが理由だろう) そこでチャプター4ではまずこの辺のサポートをしないSchemeライクな言語をスタックベースで実装し、最終的にこれらの機能のサポートを目指す。 つまり 4.1節で考えるのは、 TCO, 継続はな

    nishitki
    nishitki 2015/02/08
  • Gitでpush -fせずにmasterの間違いを修正する方法

    そんなものはない (タイトルは釣りだ。ゴメン)。 でもよく聞く「ミスに気づいて、思わず master に push -f しちゃった」という話は、実はある運用方法で簡単に防ぐことができるんだ。 その運用方法とは・・・ 「使い捨て統合ブランチを作って、最初はそちらにmergeすること」 これだけ。 どのようなやり方なのか、具体的に見ていこう。 1. まず使い捨て統合ブランチを作る。 使い捨て統合ブランチの名前は何でもいいけど、pu (proposed update) がよく使われる。ここではとりあえず pu という名前を使うことにする。チェックアウトしたら push --set-upstream / -u で push しておこう。 % git checkout -b pu master % git push -u origin pu 2. 新しいトピックがあれば、まず pu にマージする。

    nishitki
    nishitki 2015/01/30
  • 仕事で英語を使わないITエンジニアが効率よく英語を習得するには

    タイトルは釣りです。ごめんなさい。 普段英語をまったく必要としない職場にいるのですが、そのメンバー の中では比較的TOEIC点数が高めのため、 「プライベートで英語使うことあんの?」(ないです)とか 「海外経験あんの?」(ないです)とか 聞かれることが増えてきたので、これまで勉強してきた中で「コレ は効いたな」あるいは「気軽にできて続けやすい」という、まぁ自分 の中での勉強法ランキングを主観ですが整理してみたので調子に 乗って紹介します。 その前にまず私のスペックです。 ・学生のときは英語は苦手科目でした。勉強した記憶もなし。 ・入社(10年くらい前)時点のTOEICが500点くらい ・2014年時点のTOEIC(IP)スコアは 845 (L:480, R:365) ・海外留学等経験なし、普段の仕事英語を使う機会なし ・英語を必要とするのは(主に趣味で)技術系のドキュメントを読むとき

    nishitki
    nishitki 2015/01/17
  • 『プログラミングGauche』を読んだ

    フムフムヌクヌクアプアアとしても知られる『プログラミングGauche』を最近読みました(今3周目を読んでます)。 読後の感想ですが、ひとことで言えば『Scheme すごい、Gauche 楽しい』って感じです。 プログラミング自体の初心者には向きませんが、ほかの言語を知っていれば難易度の勾配もゆるやかで、無理なく読み進められる良いだと思います。 とくに面白かったのは7章(手続き)、18章(マクロ)、 19章(継続)あたりです。 関数プログラミングに触れたことがない人は、7章まで読むとその面白さを体験できると思います。Common Lispを触ったことがある自分でも、Lisp-1での関数プログラミングの気持ちよさは特筆すべきものがありました。あとLispのパワーを顕著に体感できるのが18,19章です。こういうのを知ってしまうと Scheme ならアレができるのに、とか思ってしまいそうです。

    nishitki
    nishitki 2014/11/04
  • 1