history

青木日記 RSS

<前の日 | この月 | 次の日>

2006-03-06

ふつうの Haskell プログラミング (3)

レビューの話に反応してくださったみなさま、どうもありがとうございます。 人数はツッコミをもらった人 (+ RHG 読書会?) でちょうどいい感じですね。 近日中に概要を書いたメールを送りますので、気が向いたらぜひ参加をお願いします。

(20:32)

Haskell / sleep

まさかと思ったけど、 Haskell でポータブルに sleep する方法ってないのか。 darcs は foreign 使って SleepEx 呼んでるし。

該当部分 (darcs-1.0.5/win32/System/Posix.hs)

foreign import ccall "winbase.h SleepEx" c_SleepEx :: CULong -> CUInt -> IO CInt
 
sleep :: Integer -> IO CInt
sleep n = c_SleepEx (1000 * fromIntegral n) 1

いやすぎる。

Haskell / atomic write

うーん、ポーリングするのはあきらめるか。 どうせ Windows には qmail スタイルの書き込みって通用しないし。 真面目にロックを使おう

……って、ファイルロックもポータブルなのがないじゃん! 結局 Win32API 呼ばないとだめですかそうですか

ああ、そして darcs はどう見てもポーリングしてます。 本当にありがとうございました。

Haskell でシステム関係やるのはつくづく鬼門だ。 darcs の人もよくあきらめずにここまでやったよな。

むっ、O_EXCL で open するのって Windows でも OK なのか。 これが通るならこのへんを使ってなんとかでき

いやだめだ、これは C じゃないか。 さすがに LazyLines で C を使うのはまずい。

あーもういい手抜きだ、Win32 は動けばいいや。 writeFile path content 以上終わり!

(20:50)

ふつうの Haskell プログラミング (4)

ちなみに章目次はこんな感じ。

第一部
 
 1.   18  intro.re ........ Haskell最初の一歩
 2.   24  basic.re ........ Haskell言語の基礎(1)関数とリスト
 3.   31  list.re ......... Haskell言語の基礎(2)型と高階関数
 
第二部
 
 4.   16  lazy.re ......... Haskellプログラムの評価
 5.   22  expr.re ......... 基本的な構文
 6.   23  function.re ..... 関数
 7.   11  type.re ......... 型と値
 8.    7  module.re ....... モジュール
 9.    4  monad.re ........ モナド
 
第三部
 
10.   12  parsec.re ....... 実習:Wikiパーサ
11.   12  wiki.re ......... 実習:LazyLines
12.    2  after.re ........ 本書を読み終えたあとに
 
Total 177 Kbytes

第一部がチュートリアル指向、 第二部が言語リファレンス指向、 第三部が実践となってます。

(22:45)

『入門 Haskell』

向井さんのやつ。

http://book.mycom.co.jp/book/4-8399-1962-3/4-8399-1962-3.shtml

0. Haskellとは
1. Haskellプログラミングひとまわり
2. 型と値と関数
3. リスト
4. 型宣言と型クラス
5. モナド
6. ゲームを作ろう
7. もっともっと Haskell

ううむ。なんかものすごく構成が似ている。 最初に行数・単語数カウントが来るのもそうだし、 ページ数と値段までほとんど同じじゃないか。 違うのは「Haskellプログラムの評価」に相当する章がないことくらい? まあその一番肝心なとこが違うからいいや。 最後の課題も Wiki のが俺好みだし (あたりまえだ)。

(22:49)

本日のツッコミ(全2件) [ツッコミを入れる]
nobsun (2006-03-07 09:24)

Control.Concurrent.threadDelay :: Int -> IO ()
じゃだめ?

青木 (2006-03-07 10:00)

そんなところにあったのカー! orz

ありがとうございます。勉強不足でした。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS