技術memo

関数型ゴースト

2015-01-01から1年間の記事一覧

9月で転職しました

わかりやすいまとめ きょんさん「うちにこない?」 私「いきます!」 そしてなごやへ 誰? ねのといいます。今年度で28歳。最終学歴=学部卒。 東京都内の小さなソフトウェアハウスで4年ほど、C#(.NET)等で業務システムを開発したりしていました。 何があった…

Visual Studio 2012/2013でEmacsキーバインドを使う方法(暫定)

環境 Windows 8.1(64bit) Visual Studio 2012/2013 Ultimate (32bit)

任意型リストのsplit/join

ご無沙汰してます。忙しさにかまけて、あまり技術の勉強メモすら捗らない昨今です。 Twitterでお題が出されていたので、それとなくF# でやってみました。

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

Twitterでお題が出されたので、F# でやってみました。 sortして、indexとzipして、またsortし直すなんて、「ずいぶんとダサいコードを書いてるのね!」って思いました。*1 例のコードの「人」と「車」のデータ型にcarRankingとhumanRankingとがあるのも、型…

プログラミングパラダイムの話への補足、あるいは「正しさ」について

先日の記事 関数型・オブジェクト指向なプログラミングパラダイムについて思うところ - 技術memo で誤魔化したいくつかのことについて、補足します。

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

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

FireFox + KeySnail でEmacsキーバインドなWebブラウジング環境を作った話

昨年末からEmacsを使い始めて以来5ヶ月ほど、すっかり洗脳完了し、今ではEmacsキーバインドがなければ生きていけない状態になっています。 普段Webブラウジングに使っていたGoogle Chromeでは良い方法がなさそうだったのですが、FireFoxのKeySnailという拡張…

Scala言語を急ぎ足で学ぶ(勉強メモ 2/2)

勉強メモその2です。 その1に戻る

Scala言語を急ぎ足で学ぶ(勉強メモ 1/2)

普段はC#, F#, Java辺りを書いてる目線から、Scalaを勉強してみたので、コードメモを晒してみます。 動作環境はこの記事のPlayFramework無し(JDK + Scala + IntelliJ IDEA)です。

IntelliJ IDEA(無償版)でScala+PlayFramework2.3の開発環境を作った話

何故かScalaを始めることにしたので、環境構築メモです。意外と躓きました。

Haskell PlatformをWindowsにインストールしたらCabalがupdateできなかった話(解決済)

一時はもうダメかと思いましたが、解決しました。

実務に使うプレーンテキスト→Microsoft Word変換、あるいはPandocを使い始めた話

SIerのお仕事で、設計書を書いたりするときに、Microsoft Office Wordのdocxファイルを使うことがあります。 そんな中でも、ドキュメントのフォーマットがある程度自由にできる場合に*1、Wordで直接書くのをやめて、プレーンテキスト(Markdown)で書いて、Pan…

テキストメモツール比較、あるいはhowm(一人お手軽wikiもどき)を使い始めた話

考え事をメモしたり、各種記録をつけたりといった、メモツール界隈(?)には以前から関心がありました。 ここ最近Emacsを使い始めたタイミングで丁度良さそうなツールを見つけたこともあり、各種情報をまとめてみることにしました。

今、F# で関数型プログラミングをはじめるなら

F#をはじめてみたい人向け、2015年初頭現在の言語関連情報への参照をまとめてみます。 おおむね日本語です。

Scheme(Gauche)でポイントフリースタイル風味

;; リスト(ツリー)を平坦化する。 (define flatten (letrec ((flatten-rev (fold$ (lambda (x acc) (if (list? x) ;; xがlistなら再帰呼び出し結果をaccの先頭に追加 ((compose (fold$ cons acc) reverse flatten-rev) x) ;; それ以外なら単にxをaccの先頭に…

継続渡しスタイルの再帰関数の読み解き方、あるいは多値で済む場合

Scheme手習い(The Little Schemer) 8章に、multirember&coという関数が出てくるのですが、何だか急に難しさが跳ね上がったようで、正直わけがわからなかったので、自分用に解説をメモしておきます。 動作環境はGauche 0.9.4です。

「同じようなswitch文があちこちにあると改修が困難」って本当?(Expression Problem)

概要 プログラムの設計では、よく「同じようなswitch文があちこちにあると改修が困難になる」と言われています。そういった場合は、「switchの分岐を、オブジェクトの多態性を利用して無くすべきだ」とも言われます。 しかし、それは本当でしょうか。「すべ…

WindowsでEmacsにテキストファイルを関連付けする

Windows 7でemacsclientを導入しようとして困った話です。 やりたいこと Windowsのエクスプローラーでテキストファイルをダブルクリックすると、起動済みのEmacsでそのファイルを開いてほしい。