ブログ引っ越した

3年近くもほったらかしだったけど、衝動的にレンタルサーバを借りてブログを立ち上げた。 cf. blog.panicblanket.com過去記事も一通り移行済みだけど、ここも残しておきます。

本買った

プログラミングClojure作者: Stuart Halloway,川合史朗出版社/メーカー: オーム社発売日: 2010/01/26メディア: 単行本(ソフトカバー)購入: 10人 クリック: 338回この商品を含むブログ (72件) を見る本屋で見かけたのでついうっかりと。Scalaの本は迷った挙…

suffix array ってのは

こないだのを参考にしてくれたらしい。 cf. 「Webサーチエンジン」の講義課題を1-4までやってみた - keqhの日記 なんだか俺のコードよりもHaskellらしく見えるよ。ところで,リンク先のコードだと検索するたびに suffix array というか suffix のリストを作…

簡単なWebサーチエンジンの作り方を試す

気がつけば12月も中旬だよ……。少し前になるけど,「あとで試す」タグをつけといたやつをやってみる。これ↓: cf. 簡単なWebサーチエンジンの作り方 - 加藤 和彦のブログ 具体的な手順はこっちのページで公開されている。 cf. http://www.osss.cs.tsukuba.ac.…

ISBN 出版者記号の割り当て規則

ISBNを扱うのに ISBN Tools というライブラリを使っている。 なんでかっていうと ISBN_Tools.hyphenate_isbn13 っていうメソッドがあって,数字だけのISBNをハイフンの入ったISBNに変換してくれるのが使えると思ったからだ。 こんな感じ: irb(main):006:0> …

急勾配の判定

id:edvakfさんがやってるのを見かけたので久しぶりに。 cf. 急勾配の判定 - どう書く?org cf. 急勾配の判定 - Haskellで遊ぶよ どう書く?org にはこれをポストしたんだけど: import List steep xs = and $ zipWith (>) xs $ map sum $ tail $ tails xs $ …

Windows上のApacheでFastCGIを動かすメモ

自分用のメモ。 cf. Windows + Apache + FastCGI - h4yの日記 cf. WindowsでRuby on Rails その4 Ruby on RailsをFastCGIで動かす - 色々な事を忘れないよう忘備録と日記 FastCGIのダウンロードは公式サイトのダウンロードコーナーから。Apache のバージョ…

Ruby 1.9 で FizzBuzz

Ruby 1.9.1 もリリースされたことだし,新機能(Fiber と Array#cycle)を使ってFizzBuzz を書いてみたよ。d:id:takatoh:20070509:fizzbuzz のRuby版。cf. Ruby 1.9.1 の歩き方 - るびま 0025号 # -*- encoding: utf-8 -*- fizzbuzz = Fiber.new do fizz = […

MXML

AIR

MXML は,ウィンドウの構成を記述する。こんな感じ。 <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" title="Hello AIR"> <mx:Script> </mx:Script> </mx:windowedapplication>

Web上の情報とか

AIR

Adobe AIR -- 公式サイト。AIR(ランタイム)やSDKのダウンロードはここから。 Flexデベロッパー向け Flex用Adobe AIRデベロッパーセンター AIRギャラリー -- AIRアプリがいろいろ。 Flex 3 リファレンスガイド -- ActionScript3のリファレンス。AIRについて…

開発ツール

AIR

無償の開発ツールとしては,Adobe から2つ配布されている。 Adobe AIR SDK Flex 3 SDK AIR SDK のほうは HTML + JavaScript ベースの開発ツールみたい。今回は Flex ベースの Flex 3 SDK を使う。 どっちも http://www.adobe.com/jp/products/air/tools/ か…

Adobe AIRに手を出した

AIR

ブログもOCamlもほったらかし(一応「プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~」は最後まで読んだ)のままだったけど,最近はAdobe AIRに手を出した。 AIR は Adobe Integrated Runtime の略で,RIA(Rich Internet Application…

-1 を 10 で割ったあまりは?

どう書く?org のこのお題,はじめはHaskellで書いた。 modular n l h = l + n `mod` (h - l + 1) すでに投稿があったのでOCamlで書き直したんだけど,そのまま移植したんではうまくいかない。 # let modular n l h = l + n mod (h - l + 1);; val modular :…

METHINKS IT IS LIKE A WEASEL

cf. どう書く?org - METHINKS IT IS A WEASELずいぶん前に「ブラインドウォッチメイカー」を読んだ書いてみたもの。出遅れだし,お題ともちょっと違うので投稿せずにここにさらしておく。 IDEAL = "METHINKS IT IS LIKE A WEASEL" class Individual def ini…

練習問題 10.3 fold コマンド

プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~のp.215より。 wc コマンドはなんか難しいのでこっちを先に。 UNIX の fold コマンドは,ファイル名の列を引数として,その内容を,長い行を複数の短い 行(デフォルトでは80文字)に分…

練習問題 10.1

プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~のp.215より。 UNIXの cat コマンドは,ファイル名の列を引数として,その内容を順次表示する(標準出力 に書き込む)ものです。これを OCaml で実装し,実行可能ファイルを作成しなさ…

Problem 31

今日は Problem 31。cf. Project Euler - Problem 31 cf. Life Goes On - 31問目id:rst76さんのをちょっと改良して1pのコインがない場合にも対応できるようにしてみた。問題の解答には必要ないんだけど。 module Main (main) where euler031 :: [Int] -> I…

Problem 14

今日は Problem 14。cf. Project Euler - Problem 14コラッツ問題の数列を求めるのは以前にやったのを流用。あとは力任せに… module Main (main) where collatz :: Int -> [Int] collatz 1 = 1 : [] collatz n | n `mod` 2 == 0 = n : collatz (n `div` 2) |…

Problem 8

今日は Problem 8。cf. Project Euler - Problem 8 module Main (main) where import Data.List import Data.Char euler008 :: [Char] -> Int euler008 n = maximum $ map euler008' $ nums n where nums = filter (\x -> length x > 4) . map (take 5) . ta…

Problem 13

今日は Problem 13 をやってみた。これは簡単。cf. Project Euler - Problem 13 nums :: [Integer] nums = [37107287533902102798797998220837590246510135740250, 46376937677490009712648124896970078050417018260538, 7432498619952474105947423330951305…

Problem 12

今日は Problem 12をやってみた。cf. Project Euler - Problem 12 via 自堕落系徒然日記 - Problem 12 三角数の約数 import Data.List triangleNumbers :: [Integer] triangleNumbers = snd $ mapAccumL (\a x -> (a+x, a)) 1 [2..] divisors :: Integer -> …

unfold で1から10までのリスト

unfold を覚えたので,こないだの1から10までのリストを unfold を使ってやってみる。 と思ったら unfold が見つからないのでまずはその定義から。 # let rec unfold f init = match f init with Some (a, b) -> a :: unfold f b | None -> [] ;; val unfold…

Sys.argv

コマンドライン引数は Sys.argv に配列として格納される。インデックス0がプログラム名で,以下引数の数だけ続く。 インデックス0を出力する例: let () = print_endline Sys.argv.(0) ^o^ >ocamlc -o argv.exe argv.ml ^o^ >argv argvインデックス1を出力す…

Array.iter

Array.iter は配列に対して 'a -> unit 型の関数を順に適用する関数。List.iter の配列版。これを使えばコマンドライン引数の数だけ繰り返せる。 let () = Array.iter (fun s -> print_endline s) Sys.argv ^o^ >argv2 foo bar buz argv2 foo bar buz

unfold

なるほど,unfold ってこういうふうに使えるのか。cf. ZOETROPEの日記 - Foundations of F#を読む(3)Haskellでやってみる。 *Main> take 10 $ Data.List.unfoldr (\(n0,n1) -> Just (n0, (n1, n0+n1))) (1, 1) [1,1,2,3,5,8,13,21,34,55] unfoldr に与える関…

インターフェイスファイル

ソースファイル(=モジュール)と同名で拡張子が .mli のファイルを用意しておくことで,モジュールにシグネチャを与えることができる。 前にも例に挙げた Table モジュールを例にとると, table.mli type ('a, 'b) t val empty : ('a, 'b) t val add : 'a -…

コンパイラがcmiを探すディレクトリ

次のディレクトリを順に検索する。 ocamlc コマンドを起動したディレクトリ ocamlc コマンドの -I オプションで指定したディレクトリ 標準ライブラリのディレクトリ

Problem 2

今日は Problem 2。フィボナッチ数列のうち4,000,000以下で偶数のみを合計せよ,という問題。cf. http://projecteuler.net/index.php?section=problems&id=2Haskell ではやってる人がいるので,OCaml でやってみた。 let fibs_under_n n = let rec fibs a b …

1から10までのリスト

って OCaml ではどう書けばいいんだろう。 Haskell では簡単に [1..10] と書ける。 Prelude> [1..10] [1,2,3,4,5,6,7,8,9,10]これなら10といわずいくつまででも簡単だ。だけど OCaml こういう書き方はできないらしい。 # [1..10];; Characters 4-6: [1..10];…

分割コンパイル

ソースファイルは1つじゃなくてもいい。次の例では,fact関数を定義している fact.ml と,それを呼び出す main.ml に分けている。fact.ml let rec fact n = if n = 0 then 1 else n * fact (n-1) main.ml let () = print_int (Fact.fact 5) OCamlではファイ…