感想

名古屋開催だったのに東京の人が多くて驚いた 第一級モジュールの話はよくわかんなかったですけど、すごそうな気がしました OCamlTシャツありがとうございます ラムダプラスありがとうございます

OCamlMeeting 2010 NagoyaでLTしてきました

OCamlAPISearchの紹介View more presentations from mzpi.OCamlMeeting 2010 NagoyaでOCamlAPISearchのLTをしてきました。半年前に書き捨てたコードなので、よく覚えてなかったです。もうちょいコード読んで記憶を取り戻してから発表に挑むべきだった気がし…

改行しかしない

30分プログラム、その797。anarchy golf - Carriage no returnにインスパイアされました。 使い方 - no_return "abc\ndef"; val it = "abc\n def" : string ソースコード fun lines s = String.tokens (fn c => c = #"\n") s; fun unlines xs = String.conca…

ローマ数字の変換

30分プログラム、その797。anarchy golf - Roman numeralにインスパイアされました。 ローマ数字をIntに変換します。面倒だったので、I,V,Xにしか対応していません。 使い方 scala> Roman.toInt("II") res39: Int = 2 scala> Roman.toInt("IIV") res40: Int …

Googolからの引き算

30分プログラム、その796。anarchy golf - Substract from a Googolにインスパイアされて、Googolからの引き算をやってみます。 きっと、32bitの整数しか扱えない処理系でやるとエキサイティングなんでしょうけど、Gaucheだとあっさりできてしましました。ス…

各文字の出現回数を数える

30分プログラム、その795。anarchy golf - asunderにインスパイアされました。 入力中のアルファベットの出現回数を数えます。たぶん暗号解読に便利な頻度表の作成に便利なんじゃないですかね(適当)。 使い方 $ echo abc | python asunder.py A: 0 B: 0 C: 0…

ブロックソートの復号

30分プログラム、その794。id:mzp:20100814:bwtの続きでブロックソートの復号。 ブロックソート - Wikipediaには『復号は簡単』って書いてあったけど、普通に難しかったよ! あとなんかキレいに書けなかったよ! 使い方 $ perl block_sort.pl 3 ccoaa cacao ソ…

ブロックソートによる符号化

30分プログラム、その793。anarchy golf - BWTにインスパイアされて、ブロックソートによる符号化にチャレンジしてみました。 復号は明日やります。 使い方 1> bwt:bwt("cacao"). {3,"ccoaa"} ソースコード -module(bwt). -compile([export_all]). shift(N, …

単語の削除

30分プログラム、その792。anarchy golf - delete wordsにインスパイアされました。 使い方 *Main> deleteWord "golf" "flogwaiurhgm" " waiurh m" ソースコード replace :: Eq a => a -> a -> [a] -> [a] replace _ _ [] = [] replace old new (x:xs) = if …

『CSNagoya 第5回GC本読書会』に行ってきました

Proove Mark&Sweep GC with CoqView more presentations from mzpi.CSNagoya 第5回GC本読書会 - nariさんスペシャル - : ATNDでだらだらとLTしてきました。Coqのコードは少なめにして、Coqの魅力について語るのを目標にして作ってみました。が、もうちょい練…

文字を重複させる

30分プログラム、その791。anarchy golf - Duplicate charactersにインスパイアされました。 使い方 - dup_str "hello";; val it = "hheelllloo" : string ソースコード fun dup [] = [] | dup (x::xs) = x :: x :: dup xs; fun dup_str str = String.implod…

Excel順ソート

30分プログラム、その790。AAがZのあとにでてくるExcel順ソートを書いてみました。 Excelの列ラベルはZのあとにAAがでてくるから、辞書順ソートじゃうまくいかないよねー、というお話。[twitter:@ueda51]さんのつぶやきにインスパイアされた気がするけれど、…

今年は名古屋でOCamlMeeting!

um2010 - OCaml.jp 去年は東京で開催されたOCamlMeetingですが、今年は名古屋で開催されるそうです。上記URLでプログラムも公開されていますが、かなり豪華なことになっています。 http://igeta.cocolog-nifty.com/blog/でおなじみのF#のいげ太さん。Windows…

n日後の日付を調べるプログラム

30分プログラム、その789。n日後の日付を調べるプログラムを作ってみました。 EMチャージの30日定額の終了日が知りたかったので作ってみました。もっとも、作ったあとで管理画面で見れることを知りましたけれども。 使い方 $ gosh 789-after.scm 0 2010-08-0…

『萩乃露 特吟 Etude(エチュード)無濾過生』飲んだよ

感想 味は濃い目 甘めの味がする 値段/買った場所 酒泉洞堀一shusendo 日本酒・ナチュラルワイン・国産ワイン・焼酎 造り手の想いを伝える珠玉の酒セレクトショップ名古屋市西区 醸し人九平次、而今、新政、鍋島、射美、風の森 、獺祭、二兎、、たかちよ、大…

TwitterのDM送信プログラムを書いてみた

グリーンバンドが届きました! ほいで、賛同者の方々に住所を聞くDMをがんがん投げたくなったので、自動送信プログラムを書いてみました。もちろんTDDです。 テスト #! /opt/local/bin/ruby -w # -*- mode:ruby; coding:utf-8 -*- require 'dmsender' $sleep …

ハミング数のリストアップ

30分プログラム、その788。ハミング数の列挙をやってみました。 Regular number - Wikipediaによると2^n・3^m・5^rで表せる整数のことをハミング数と呼ぶらしいです。 なんか遅延リストとfilterを組合せたクールな方法でやりたかったんですけど、うまくいき…

エンディアンの変換

30分プログラム、その787。anarchy golf - Little Endian Calculatorにインスパイアされて、エンディアンの変換をやってみました。 8ビットごとに区切って順番をひっくりかえしているだけです。 使い方 >>> "%x" % flip_endian(0x3310) '1033't2 ソースコー…

テキストのn行目以降を取得する

30分プログラム、その786。http://aligach.net/diary/20100617.html#p01:tilteにインスパイアされました。 tailでできるらしいけど、あえてPerlで。ついでにコマンドラインオプションのパースもやってみた。 使い方 $ jot 10| perl rest.pl -n 0 1 2 3 4 5 6…

文字列の入れ替え

30分プログラム、その785。anarchy golf - permutaterにインスパイアされました。 文字列に対してpermutationを適用します。 使い方 1> permutater:permutater("hoge"). ["hoge","hoeg","hgoe","hgeo","heog","hego","ohge","oheg", "oghe","ogeh","oehg","o…

魔方陣を作ってみる

30分プログラム、その784。魔方陣を作ってみた。 最初はリストモナドでベタ書きしようかと思ったけど magicSquare = do a <- [1..9] b <- delete a [1..9] c <- delete b $ delete a [1..9] .... guard ... return ... みたいなひどいことになりそうだったの…

グリーンバンド共同購入まとめ

発端 TDDブートキャンプで「テストを書くのはつらい。Bob Martinもacts_as_professionalと刻んだグリーンバンドを身につけて、自分を戒めてるんだ」というエピソードが紹介される ボクも欲しい! http://mixbuzz.com/wristbands.htmlで20個から作ってもらえる…

omake + oUnitでTDD!

明日は、TDD Bootcamp名古屋です。 というわけで、自分のoUnit + omakeでTDDな環境を晒してみます。もっとクールな方法があったら教えてください>ちなみに、構築したサンプルはGitHub - mzp/ounit-example-1: OUnit exampleに置いてあります。 ディレクトリ…

括弧の対応のチェック

30分プログラム、その782。anarchy golf - Bracket Matchingにインスパイアされました。 問題の詳細はリンク先を参照してください。要するに括弧の対応がとれているかどうかのチェックです。正規表現じゃ無理なことで有名なアレです。 簡易パーサコンビネー…

n乗根を求めてみた。

30分プログラム、その781。n乗根を求めてみた。 n乗根なんてどうやって求めるんだろう、と思って調べてみたけど、ニュートン法で解いてた。あああ、なるほど。 使い方 scala> NthRoot.nthRoot(4,2) res7: Double = 2.0000000929222947 scala> NthRoot.nthRoo…

最小公倍数

30分プログラム、その780。 最小公倍数を求めてみました。 使い方 gosh> (lcm 3 2) 6 gosh> (lcm 21 6) 42 ソースコード #! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- (define (gcd x y) (if (= y 0) x (gcd y (modulo x y)))) (define (lc…

文字列を斜めに表示する

30分プログラム、その780。anarchy golf - slope linesにインスパイアされました。 xs.reverse()は破壊的な操作なのでぐんんよりですけど、reversed(xs)は反転したイテレータを返してくれるのでいい感じです。 使い方 $ python slope-line.py hello o l l e …

FMLの最新の投稿を表示(RSSのダウンロードと表示)

30分プログラム、その779。英語のお勉強になる気がしたので、FML : Your everyday life storiesの最新の投稿を表示するプログラムを書いてみました。 RSSをダウンロードして本文部分を表示してるだけです。 使い方 $ perl fml.pl Today, I broke my nose ope…

文字を全部0に置き換える

30分プログラム、その778。anarchy golf - zero linesにインスパイアされました。 改行を除く全ての文字を0に置き換えます。sedでいいじゃん、とか言わないで> 使い方 $ jot 10 | escript all_zero.erl 0 0 0 0 0 0 0 0 0 00 $ python -m this | escript all…

縦書き出力

30分プログラム、その777。anarchy golf - Vertical writingにインスパイアされて縦書き出力をやってみました。 使い方 - run "Hello"; H e l l o ソースコード fun interperse x [] = [] | interperse x (y::ys) = y::x::interperse x ys; fun vertical s =…