カテゴリ
全体プログラミング scheme verilog 未分類 以前の記事
2016年 04月2016年 03月 2016年 02月 2016年 01月 2015年 12月 2015年 11月 2015年 10月 2015年 09月 2015年 08月 2015年 07月 2015年 06月 2015年 03月 お気に入りブログ
PHPで競技プログラミングメモ帳
最新のトラックバック
ライフログ
検索
タグ
racket
その他のジャンル
ブログパーツ
最新の記事
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
|
#lang racket
#| haskellのコード pyths :: Int -> [(Int, Int, Int)] pyths n = [ (x,y,z) | x<-[1..n], y<-[1..n], z <- [1..n], x^2+y^2==z^2] |# (define (pyths n) (for*/list ((x (in-range 1 (add1 n))) (y (in-range 1 (add1 n))) (z (in-range 1 (add1 n))) #:when (= (+ (sqr x) (sqr y)) (sqr z))) (list x y z))) #| 実行時間計測 [Haskell] *Main Data.Char> pyths 100 ... (2.92 secs, 1,811,409,328 bytes) *Main Data.Char> pyths 500 ... (357.39 secs, 226,074,909,384 bytes) [Racket] (単位はミリ秒) > (time (pyths 100)) cpu time: 63 real time: 52 gc time: 0 ... > (time (pyths 500)) cpu time: 6578 real time: 6586 gc time: 0 ... インタプリタ上での時間計測では、 Racketの実行時間に比べてHaskellの実行時間は 異様に長かった。 というより、Haskellの画面表示は特異で、リストを結果として表示する場合は リストの開き括弧だけがしばらく表示されていたりします。 HaskellというのはLispと似ているものかと思っていましたが、 どうやら内部の構造が相当違っていそうです。 |#
by tempurature
| 2016-01-01 00:43
| プログラミング
| ||||||||||||||||||||||
ファン申請 |
||