技術memo

関数型ゴースト

シーケンスのソート後の順番を、元の順番を保ったまま取得したい

Twitterお題が出されたので、F# でやってみました。

sortして、indexとzipして、またsortし直すなんて、「ずいぶんとダサいコードを書いてるのね!」って思いました。*1

例のコードの「人」と「車」のデータ型にcarRankinghumanRankingとがあるのも、型の利用しやすさを考えるとちょっと微妙に思えるので、それとなく改修したり。単に「元のデータとランキング結果のタプル」として取得することにします。

*1:冗談です。

続きを読む

関数型・オブジェクト指向なプログラミングパラダイムについて思うところ

  • 動機
    1. イメージ論でない言語パラダイムに関する話を書きたかった。*1
    2. まともな意見をインターネット空間に1つでも多く残しておきたかった。*2
  • 要約
    1. オブジェクト指向プログラミングはデータに対する操作をオブジェクト*3として抽象化する。
    2. 関数型プログラミングでは関数による抽象化を基本とする。
    3. 言語設計の問題と概念の問題は、混同すべきではない。

*1:あるいはインターネットスラング的な意味での技術ポエム的話題に一言言いたかったと言っても構いません。

*2:実際にまともかどうかは、自分自身にはわかりようもないことですが。

*3:Java的にはインターフェース

続きを読む