技術memo

関数型ゴースト

FSharp

すのとらさんを"なごやか"した話 #nagoyakaeru

弊社に来た人を迎撃する定例(?)イベント、今回はsunotora 迎撃会ということで、いつの間にか発表者にされていたので発表しました。 (前回は体調を崩して参加出来なかったりもしましたね。) 発表資料という名のgist (なお資料は予告なく消される可能性があり…

任意型リストのsplit/join

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

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

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

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

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

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

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

FSharperならこう書く(A Poker Game Program) #FsAdvent

これはF# Advent Calendar 2014の8日目の記事です。 前日はk_disposeさんのF#のlintツールであるFSharpLintを使ってみる - Qiitaでした。 今日は、 「F#をやってる人って普段どんなコードを書いているの?」 「何を考えてプログラミングしてるの?」 とお思…

Macでプログラミング環境を作った話

Mac初心者です。 今までプログラミングは仕事でも趣味でもWindows機を使っていたのですが、せっかくMBAを買ってしまったので、そろそろ開発環境を本気出して作ってみようかと思い立ち、あれこれインストールしてみました。 その辺りのメモ書きです。

基礎プログラミング演習(1),(2)をF# でやってみた

元々お手本コードを割と関数型風に書いていたので、ほとんどそのまま一対一対応で移植する形になりました。 比較すると、記法がどれほど簡潔かわかるんじゃないでしょうか。

コナミコマンドができるまでひたすらランダムなキー入力を生成する

Twitter Webでコナミコマンドが使えると話題になっていたので、演習問題がてらやってみます。 仕様 擬似乱数のシード値は外部から指定する 生成する記号の個数の上限を、外部から指定する キー入力される可能性のある記号の一覧(↑↓←→AB)は、固定とする 特定…

再帰関数のメモ化(Memoization for Recursive Functions)とY Combinatorの速度計測

解説は前記事再帰関数のメモ化(Memoization for Recursive Functions)とY Combinator - 技術memo 以下、F# Interactiveに流し込むだけ。

再帰関数のメモ化(Memoization for Recursive Functions)とY Combinator

Y Combinatorのことを調べていて、気がついたらこんなことに。 目次 関数のメモ化(Memoization)のこと Y Combinatorのこと(不動点コンビネータ) 再帰関数のメモ化(Memoization for Recursive Functions) 参考記事

F# でリフレクション/式木に触れてみる

前置き F# Advent Calendar 2013 8日目の記事になります。 昨日の記事は@brother_nomuさんの「F# で Oracle にアクセスしてみたよ!」でした。 ということで、F# を9月に始めて3ヶ月、ちょっとは関数型プログラミングにも慣れてきましたC#er な私です。 F# …