タグ

ブックマーク / kazu-yamamoto.hatenablog.jp (7)

  • あなたの知らないSemigroupの世界 - あどけない話

    自分で定義するデータの中には、足し算したくなるようなデータがある。たとえば、送信と受信のカウンターを定義したとしよう。 data Metrics = Metrics { rx :: Int , ts :: Int } deriving (Eq, Show) これは以下のように足し算できると嬉しいだろう。 > Metrics 1 2 + Metrics 3 4 Metrics {rx = 4, ts = 6} しかしこれは Num のインスタンスにすべきではない。このデータ型に掛け算は定義できないからだ。かといって、addMetrics みたいな関数を定義するのはかっこ悪い。 > Metrics 1 2 `addMetrics` Metrics 3 4 Metrics {rx = 4, ts = 6} このように演算子が一個だけ欲しいと思ったら、それは多分 Monoid だ。 import

    あなたの知らないSemigroupの世界 - あどけない話
    honeybe
    honeybe 2018/03/06
  • goな関数 - あどけない話

    これは「Haskell (その2) Advent Calendar 2017」の1日目の記事です。遅くなってすいません。 読者として末尾再帰ぐらいは理解しているHaskellerを想定しています。 トップレベルとローカル関数 再帰を用いて関数を書いているとき、トップレベルで再帰するか、ローカル関数で再帰するか、ときどき迷う。この記事では、僕なりの判断基準を示したい。 Data.Listで定義されている再帰が必要な関数は、ほとんどがトップレベルで再帰している。代表例のmapの例を見てみよう。 map :: (a -> b) -> [a] -> [b] map _ [] = [] map f (x:xs) = f x : map f xs mapをローカル関数を使う実装にしてみよう。この記事では、ローカル関数名としてgoを用いる。(loopを使う流儀もある。) map' :: (a -> b)

    goな関数 - あどけない話
    honeybe
    honeybe 2017/12/12
  • POPとIMAP - あどけない話

    ようやく IMAP も普及したようで、POP から IMAP に乗り換える人が増えています。僕の周りのインターネット技術者も、ぼちぼち乗り換え始めました。(gmail が IMAP をサポートしたことが大きな要因でしょうか?) 彼らは優秀なのにも関わらず、こんな間違った表現を使います。 POP はメールをメールリーダに取ってくるもので、IMAP はサーバ側のメールを読むものだ POP だとよかったけど、IMAP は常にネットワークにつながっていないと辛い POP だとよかったけど、IMAP はフォルダ内のメールの数が多くなると辛い その度に、「そうじゃない」と言ってきたのですが、もうそう説明するのにも疲れてきました。そこで、正しいことを書いて、この説明はもう二度としないことにしようと思います。(DRY: Don't Repeat Yourself ですね。) 間違いの根源は、おそらく二つで

    POPとIMAP - あどけない話
  • 正規表現を超える - あどけない話

    まずは、Audrey さんが言った Haskell の殺し文句を思い出して頂きたい。 正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。 15分というのは誇張が入っていると思うが、正規表現が保守しにくく、Haskell の Parsec は強力で保守し易いのは事実だ。その理由を Perl と Haskell のコードを示しながら説明してみたいと思う。 Perl を愛する方に:この記事は Perl を攻撃するために書いたのではない。Perl を選んだのは、正規表現を広めた言語であり、僕がそれなりに Perl のコードを書けるためである。この記事の目的は、正規表現よりも関数型パーサー(Parsec)の方が優れていると示すことだ。 例題 この記事では例題として、IPv4 アドレスを解析する関数を書く

    正規表現を超える - あどけない話
    honeybe
    honeybe 2009/03/10
  • なぜスパマーは儲かるのか? - あどけない話

    今年のEmail Security Conferenceでは、目玉として基調講演に千葉県警の佐藤さんをお招きしました。 「迷惑メール54億通、「タクミ通信」逮捕の舞台裏を千葉県警に聞く」にあるように、月に約1億2000万円も稼いでいたスパマーを捕まえた千葉県警の方です。 今回の基調講演で、なぜそんなに稼げるのか教えて頂きました。手口を公開したページはないそうですし、ブログに書いていいとのことでしたので、ここに書き記しておきます。 出会い系サイトの秘密 日人を標的にした迷惑メールのほとんどは、出会い系サイトへの勧誘です。つまり、なぜ出会い系サイトは儲かるのかというのが問題の質です。 出会い系サイトの勧誘メールでは、男性会員無料と謳っているものがあり、一見儲からないように思えます。確かに、出会い系サイト自体は無料です。そして、登録するとすぐに女性と知り合えます。その女性は、有料のチャットル

    なぜスパマーは儲かるのか? - あどけない話
    honeybe
    honeybe 2008/11/14
    めも。
  • 例として推奨されているドメイン名とIPアドレス - あどけない話

    解説記事や発表資料で、ドメインの例を出す場合、example.jp等を使うことが推奨されているのを知っている人は多いでしょう。しかし、IPアドレスの方は知らない人もいるみたいです。ここでは両方について出典を示しながらまとめます。 知っていて別の例を使うのはいいのですが、知らないで別の例を使うのはよくないです。 gTLDのドメイン名の例 RFC2606で以下のように定められています。 3. Reserved Example Second Level Domain Names The Internet Assigned Numbers Authority (IANA) also currently has the following second level domain names reserved which can be used as examples. example.com exa

    例として推奨されているドメイン名とIPアドレス - あどけない話
    honeybe
    honeybe 2008/11/12
    IPアドレスは初耳。ためになる。
  • 文章の書き方 - あどけない話

    2006年に IIJ の新人研修で「文章の書き方」という講義を担当しました。そのときの資料を何人もの人に個別に差し上げていたのですが、それも面倒になってきました。新人研修の担当者に問い合わせたところ、公開しても問題ないとのことでしたので、資料を公開します。 「文章の書き方」の資料

    文章の書き方 - あどけない話
    honeybe
    honeybe 2008/09/25
  • 1