2010-09-01から1ヶ月間の記事一覧

project euler problem 15

この問題はスタートである左上をを上へ右下を下へ持っていき各点を通る組み合わせは以下の図の様になる。これはパスカルの三角形である。ということで求めるものは一辺nマスの場合、(a+b)^(2*n)の真ん中の係数が求めるもの。パスカルの三角形は以前 id:nobsu…

project euler problem 14

遅延評価の方が遅くなる場合なのがこの問題。 $ echo "main=print $ foldl (+) 0 [1..10^4]" > a.hs; ghc -v0 a.hs ; sleep 1; ./a 50005000 $ echo "main=print $ foldl (+) 0 [1..10^5]" > a.hs; ghc -v0 a.hs ; sleep 1; ./a 5000050000 $ echo "main=pri…

haskell アドホック多相

アドホック多相の意味がわかったかも今までパラメータ多相でf x=x+1を型宣言しても以下の様にエラーが出ていた Prelude> let f::a->a ; f x=x+1 <interactive>:1:21: Could not deduce (Num a) from the context () arising from the literal `1' at <interactive>:1:21 Possible fix: </interactive></interactive>…

project euler problem 10

problem 10をときなおしてみた。 import Data.Time main=do stime <- getCurrentTime print $ sum $ takeWhile (<2000000) primes getCurrentTime >>= return.(`diffUTCTime` stime) >>= print primes = 2:[x|x<-[3,5..],isPrime x] isPrime x = all ((/=0).…

haskellで日時を扱う。

現在の日付を得る Prelude Data.Time> getCurrentTime >>= return.utctDay >>= print 2010-09-09 Prelude Data.Time> getCurrentTime >>= return.toGregorian.utctDay >>= print (2010,9,9)5秒後の時間を得る Prelude Data.Time.Clock> getCurrentTime >>= …

haskell 一行で関数定義

ghci使う上で1行で関数定義したいことが多い。 パターンマッチを一行で行うのにちょっとなやんだ。 まさかセミコロンで二回宣言するとは…って複数行でもそうだもの… if 単なる条件分岐だけどついこっちで書いちゃいそうになる。 *Main> let f x = if x==0 th…

GHCでwaitをかける

GHCだけでしか有効でないみたいなんだけど *Main> :m +GHC.Conc *Main> threadDelay 3000000これで3秒のウエイトがかかる秒単位だと *Main> :m +System.Posix *Main> sleep 3 0

ghci内で実行時間を知る

追記 2010/09/13 読んでなかった orz 2.8.1. GHCiオプションGHCiオプションは、:setで有効化、 :unsetで無効化できる。利用できるGHCiオプションは以下のものである。 (中略) s 一つ式を評価するごとに、経過時間や確保されたバイト数などの統計情報を表示…

haskellのリストと比較

haskellってリストが比較できるのか気がついていなかった。 *Main> [1,2,3]==[1,2,3] True *Main> [1,2,3]==[1,2] False *Main> [1,2,3]==[1..] Falseさすが遅延評価 *Main> [1..]==[1..] ^CInterrupted.やっぱかえってこないよな。 *Main> let factors x=[y…

ネットワーク接続されているBrother MFC-830CLNをubuntu10.04で利用する

ネットワーク接続されているBrother MFC-830CLNをubuntu10.04で利用する なぜそんな古いプリンタがあるのかって?そりゃ、日頃プリンタを使わないからそのままになってるんだよ。FAXと電話にもなるし意外に長持ちする。Brother Solutions Center からMFC-410…

接続先のIPアドレスの一覧を出す

接続先のIPアドレスの一覧を出す $ cat /var/log/auth.log | ruby -e 'STDIN.read.scan(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/){|addr| puts addr}' | sort | uniq #接続先のIPアドレスの一覧を出す

rubyでipアドレスを得る

まあ、nicを複数実装してるとまずいけど… $ ruby -e '`ifconfig`=~/(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})/m;puts $1' 10.168.8.1

GHC-HEAD の追っかけをやってみる

最新のGHCを入れよう。そうしよう。踏み台としてまず 6.12.2をもってきて ~/ghc-6.12 にインストールする。(後で消せるように) $ wget http://www.haskell.org/ghc/dist/6.12.2/ghc-6.12.2-i386-unknown-linux-n.tar.bz2 $ tar xvf ghc-6.12.2 $ cd ghc-6.…