Quantcast
Channel: HaskellとF#について書くmatarilloの日記(アーカイブ)
Browsing all 30 articles
Browse latest View live

ポーカーの役判定(第10回オフラインリアルタイムどう書くの参考問題)

haskellグループなのにF#のエントリ。大目に見てね。F#の練習に http://qiita.com/items/d819d1e5f2378317511eの問題を解いてみた。...

View Article



バス代の計算(第9回オフラインリアルタイムどう書くの問題)

http://qiita.com/items/84255ac417ef25069a3bhttp://qiita.com/items/7385db8cce051cb499d7

View Article

ビットボンバーマン(第8回オフラインリアルタイムどう書くの問題)

http://qiita.com/items/709d61dff282cff7a890http://qiita.com/items/463311ff1ce4dd2cc943

View Article

Haskellのポイントフリー

読みにくいからやめてほしい。 自己満足以外に実用的な意味があるのかどうか。 そもそも、セクションとかflipとかを使いまくらないと実現できないわけでしょう? unlambdaやlazy kは実用言語じゃないでしょう?

View Article

Google Code Jam Japan 2011 予選問題B

日にちを逆から計算するというのは早めに気づいたのだけど、Largeを解けるようにするのにえらく時間がかかった。ループをk回ずつまわさないようにするために、消費期限が長いものから順に何杯ずつ飲むのかを計算して掛け算する方針。

View Article


Poor Mans' Type Classes

.NETのCLRに高階ジェネリクス(型クラス、高カインド)を!という要望はMSから断られているわけだけども。回答にある「Steffenがコメント欄に書いたようなやり方でエンコードできるよ」というのが気になった。時間を見つけてこのコードを勉強してやろう。(おまけ)...

View Article

ジェネリックレコード型

前回の記事のど頭のこれtype'a Num={ ... }はジェネリックレコード型の定義のようだ。'a listとか'a optionみたいに'a Numを定義している。 ところで、Num<'a>と書くのと同じなんだろうけど、そう書かない理由は何だろう。何か使い分けでもあるのかな。

View Article

前回の記事

個々の型に適合する関数群の実装をレコードのいちインスタンスとして渡してるわけね。サンプルでは、intならint、floatならfloat用の実装を用意している。これって目的は果たすのかな?

View Article


関数適用と関数合成

では、こんな関数があったとき replicate 2 (product (map (*3) (zipWith max [1,2] [4,5]))) 関数合成をして、まっとうな記述をするとこう書けるらしい。 replicate 2 . product . map (*3) $ zipWith max [1,2] [4,5]...

View Article


F#の立ち位置

いげ太さんがときどきぼやいてたかと思いますが(追記: 不正確でした。いげ太さんからのコメントは下に)、「F#はなーんかMSに冷遇されてねえ?そのせいか、C#からF#に乗り換える人も少なくね?」みたいな話があります。...

View Article

OKWaveの質問

Graham Hutton著「プログラミングHaskell」の第8章関数型パーサーを勉強しています。 本の中にあるソースコードではdo記法などが使えないため、動きません。 サポートページにプログラムがあります。そのプログラムの意味がよくわかりません。 教えていただけないでしょうか。プログラミングHaskellでHaskellを学んだ私が来ましたよ。...

View Article

貧者の型クラス

去年、こんなのをメモしてた。http://haskell.g.hatena.ne.jp/matarillo/20130524/1369369774http://haskell.g.hatena.ne.jp/matarillo/20130527/1369636675これってオダスキー先生のこれ↓がベースなのか!http://lampwww.epfl.ch/~odersky/talks/wg2.8-bo...

View Article

遅延評価とfoldr/foldl

Haskellの遅延評価のイメージは「まず式を立てる(サンクを作る)けど、値の評価はまた別の話」。foldrは foldr f acc [x0, x1, x2, x3, ... , xn] = x0 `f` (foldr f acc [x1, x2, x3, ... , xn]) = x0 `f` (x1 `f` (x2 `f` (x3 `f`...`f` (xn `f` acc) ... )))...

View Article


モナド構文糖

モナドが便利で、モナド構文糖が便利だってことには特に異論がないんだけど、 それならそれでHaskellのdo-returnみたいに逐次実行に似せるほうが絶対にいいと思う。 そうでなければ、もっとこう、bindとかunitとかそういう語彙を前面に出してほしい。つまり、Scalaのように、for-yieldとかflatMapというリスト中心の語彙でモナドを扱うのは、どう考えてもキモイ。...

View Article

kenokabeさん

kenokabeさんは、自説の組み立て方、参照する先行研究や書籍が普通ではないので突っ込まれやすいにも拘わらず自説が正しいという態度を崩さない、知人だったらわりと面倒なお方だなという印象なんだけど、ここに書いてたことにはそんなに違和感ないな。http://kenokabe-techwriting.blogspot.jp/2015/04/amazon102-93.htmlむしろ書評を書いた人が、ラムダ...

View Article


Image may be NSFW.
Clik here to view.

猫かわいい

http://www.meetup.com/FunctionalKats/

View Article

Minority's hello, worldにF#で挑戦

CodeIQにMinority's hello, worldという問題が出ていました。問題が見れなくなっているので引用すると、こういうもの。■問題の概要「hello, world」と出力するプログラムを提出して下さい。 提出されたプログラムで使われている文字を、全挑戦者について集計します。 各文字には「(その文字を利用した挑戦者の人数)の2乗」というポイントが割り当てられます。...

View Article


演算子のオーバーロード #1

http://stackoverflow.com/questions/11150947/f-overloaded-operater-with-floats-not-working-with-other-floats/11152288#11152288F#の ?<-演算子は「動的プロパティに値を設定する演算子」なんですが、なんでそれがここに?...

View Article

演算子のオーバーロード #2

F#の ?<-演算子(動的プロパティに値を設定する演算子)はわりとキモいことがわかってきた。まずはこんな感じでグローバルな演算子を定義してみる。let(?<-)(d:#IDictionary<'K, 'V>) k v = d.[k]<- v まず、キーとして適当な判別共用体を食わせてみる。typeMyUnion=A|B|Cofintlet testUnion =let...

View Article

演算子のオーバーロード #3

さて、?<-はいったん置いておいて、演算子のオーバーロード解決を勉強した。F# の演算子定義は2通りのパターンがある。1つは(C#と同様に)クラスなどのスタティックメンバーとして書くもの。typeMyRecord={ x: int; y: int}with static member (+)(left: MyRecord, right: MyRecord)={ x = left.x +...

View Article
Browsing all 30 articles
Browse latest View live




Latest Images