[過去ログ] 関数型プログラミング言語Haskell Part4 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
684(2): 2006/05/01(月)10:57 AAS
二分探索を書こうとしたのだが、どうも上手くできない。
--リストの中央インデックスを求める
middle :: [a] -> Int
middle [] = -1
middle x = (ceiling half) - 1
where half = fromIntegral (length x) / fromIntegral 2
--リストの中央値を返す
省10
685(2): 2006/05/01(月)11:13 AAS
>>684
bsearchの最後の等式で、再帰的に呼ばれたbsearchが-1を返したときにまずいことになる。
これを防ぐには、結果が-1かどうかを明示的にテストすればいい。
bsearch k [] = -1
bsearch k x
| median x > k = bsearch k (take (middle x) x)
| median x == k = middle x
省7
686: 2006/05/01(月)11:15 AAS
よくわからんのだけど、Haskelの場合、数学の証明とかのように定義を延々と書いていってつじつまが合うと、そのとおりに動作すると考えればよろしいのでしょうか?
687: 685 2006/05/01(月)11:18 AAS
>ceiling (fromIntegral (length x) / fromIntegral 2) は div (length x) 2と書ける。
嘘でした。
div (length x + 1) 2
が正解。
688: 2006/05/01(月)11:20 AAS
>>685
おお。素早い回答ありがとう。
689(3): 2006/05/01(月)12:46 AAS
Haskellでパーサでも書こうかと思ってるんですけど
どのくらい簡単に書けるものなんですかね?
四則演算程度の簡単なパーサのサンプルとかありませんか?
690: 2006/05/01(月)13:38 AAS
>>689
つ外部リンク[html]:www.cs.uu.nl
691: 2006/05/01(月)16:07 AAS
>>689
つ 外部リンク[html]:www.lab2.kuis.kyoto-u.ac.jp
692: 2006/05/01(月)21:43 AAS
>>689
このあたりとか
外部リンク:d.hatena.ne.jp
外部リンク:d.hatena.ne.jp
693: 2006/05/01(月)21:45 AAS
男には一生に一度、Haskellしないといけないときがある。
694(1): 2006/05/01(月)23:11 AAS
六歳の誕生日から、何故か毎日20行ずつコンパイラを書き始めた僕の数奇な生涯。
『Haskell Boy』
映画化決定
695: 2006/05/02(火)09:53 AAS
>>694
享年14歳
696: 2006/05/02(火)10:17 AAS
ネイティブアプリ作成できるよね?勿論
697: 2006/05/02(火)10:44 AAS
うん
698: 2006/05/02(火)11:52 AAS
こ
699: 2006/05/02(火)11:53 AAS
うする
700: 2006/05/02(火)18:50 AAS
つもりなのか?
701: 2006/05/02(火)18:51 AAS
Curry 喰うか?
702(1): 2006/05/02(火)20:01 AAS
Windowsで日本語が表示できるGUIライブラリってないですか?
でないとまともなアプリなんて作れません。
703: 2006/05/02(火)21:24 AAS
>>702
WxHaskell。
でも、たぶん、Shift_JISをバイトごとに分けてCharに入れないとちゃんと動かない。
704(2): 2006/05/02(火)23:58 AAS
ほんの数時間前にHaskellかじり始めました。んでちょっと質問です。
quicksort [] = []
で空リストは空リストでマッチさせるのに対して
quicksort (x:xs) = ...
と空ではないリストについての表記が`('と`)'で囲まれてるのが
ペアみたいでいまいち納得いかないんですが、これは何でですか?
書いててふと思ったけど結合強度の関係でx:xsをグルーピングしてるだけとかいう落ち?
705: 2006/05/03(水)00:15 AAS
>>704
そのとおり。
「宣言の左辺の時だけ結合度変えてよ」なんて無茶言ったらだめよ。
706: 704 2006/05/03(水)01:00 AAS
やはりそうでしたか。
普段はLISP使ってるので()[]{}を使い分けたりインデントを意識する習慣が
まったくないのですが、このあたりのつまらない約束事を乗り越えたら
新しい境地が広がっているといいなぁ。Haskell. OCamlとどっち勉強しようか
微妙に迷ったけど。
707: 2006/05/03(水)01:42 AAS
Lisp でインデントを意識しないって、マヂで言ってる?
708: 2006/05/03(水)01:46 AAS
Lispのインデントはただ単に見やすくするだけの意味しかないでしょ。
709: 2006/05/03(水)01:56 AAS
Python でもやっとけ
710: 2006/05/03(水)09:32 AAS
Haskell人気だな。
違う意味で使えそう。
2chスレ:tech
711(1): 2006/05/03(水)21:20 AAS
普通emacsまかせだからLispでインデントなんて意識しないよ
シンプルそうに見えて割と変な記号多いのは嫌だな、いつか治るのかな?
712: 2006/05/03(水)22:58 AAS
他人のソースを読まない人?
713: 2006/05/03(水)23:02 AAS
lispを型付き言語に改造するラッパってありますか?
714: 2006/05/03(水)23:07 AAS
Common Lisp なら最初から型あるじゃん...
715(2): 2006/05/03(水)23:34 AAS
Monadクラス(>>=, return)のシグネチャには合うけど、Monad則を満たさないサンプルってどんなものがありますか?
716(1): 2006/05/03(水)23:44 AAS
>>715
いくらでもあると思うが。自明な例は、
data Id a = Id a
instance Monad Id where
return = undefined
(>>=) = undefined
もうちょっとまともな例は、ListT IO。
省1
717(1): 2006/05/03(水)23:47 AAS
>>711
変な記号を駆使してやたらと簡潔なコードを書けるのがHaskellの良いところの一つだと思うので、なくなると困る。
718: 2006/05/04(木)00:05 AAS
>>716
おお、ありがとうございます。リンク先の方、じっくり読んでみます。
719: 2006/05/04(木)00:23 AAS
>>717
それってどこの Perl ?
720: 2006/05/04(木)00:47 AAS
ネタなのかマジなのか…
721(1): 2006/05/04(木)20:59 AAS
「数値リスト内の全ての要素が同じ数字」ってどう書きますか?
722: 2006/05/04(木)23:31 AAS
isSameNumber :: (Num a) => [a] -> Bool
isSameNumber (x:xs) = all (==x) xs
723: 2006/05/05(金)00:54 AAS
リストが空の場合は?
724: 721 2006/05/05(金)01:57 AAS
そう言えばリストが空の場合「同じ」で良いのだろうか…
何はともあれ参考にします。
725: 2006/05/05(金)02:47 AAS
>>715に関連して
Monad則を絶対に満たしてるという証明はどうやってするの?
726(1): 2006/05/05(金)11:22 AAS
普通に式変形するんじゃだめなのか?
例えば、
return = Just
Just x >>= f = f x
Nothing >>= f = Nothing
と定義されているとき、 x >>= return = xを証明する。
x >>= return
省8
727(1): 2006/05/05(金)20:54 AAS
今月にまたHaskellの書籍が出ると聞いて待ち望んでおります。
詳しく。
728: 2006/05/06(土)00:38 AAS
>>726
> = case x of -- パターンマッチの性質から
> Just r -> x
> Nothing -> x
これが思いつかなかった。
729(1): 2006/05/06(土)00:41 AAS
>>727
こういう内容らしい。
外部リンク[html]:i.loveruby.net
730(2): 2006/05/06(土)00:52 AAS
ちょっと質問いいでしょうか。
Haskellで作ったバイナリは、ライセンスはどうなるでしょうか。
731: 2006/05/06(土)01:08 AAS
>>730
それは処理系のライセンスによるでしょ。
732: 2006/05/06(土)02:34 AAS
>>729
楽しみ。
733: 2006/05/06(土)08:04 AAS
>>730
Haskellに限らず、コンパイラ系が吐き出した実行ファイルに
コンパイラの製作者側のライセンスが及ぶ場合ってあるのか?
734: 2006/05/06(土)08:13 AAS
exeにリンクされるスタートアップルーチンやライブラリが
LGPLではなくGPLに汚染していたらそのプログラムもGPLにしないとまずい。
例えばCygwinのgccは問答無用でGPLなdllに依存してしまう。
735: 2006/05/06(土)08:31 AAS
ライブラリはそうだろうけど、基本的なスタートアップで縛りの強い
ライセンスってある? Cygwinのgccはdllに依存しないようなオプ
ションがなかったっけ?
具体的な質問に直すと(おれは730じゃないけど)Helloworldレベルの
EXEでGPLに感染しちゃうようなEXEしかはけない(他に選択肢の無い)
コンパイラあったら教えて。
736: 2006/05/06(土)08:37 AAS
Cygwinのgcc
737: 2006/05/06(土)08:47 AAS
ランタイム必須な言語では helloworld だろうが web browser だろうが一緒。
GNAT が確かそうだったような気がする >> 強制 GPL
738(1): 2006/05/06(土)11:59 AAS
新刊はいつ発売
739: 2006/05/06(土)15:42 AAS
GPLが感染するコンパイラなんか使うか
740: 2006/05/06(土)16:00 AAS
えっ?GHCで作ったプログラムってexeにできるの?
741: 2006/05/06(土)16:26 AAS
>>738
今月末
外部リンク[html]:i.loveruby.net
742: 2006/05/06(土)16:36 AAS
ghcの出力したバイナリはlibgmp(LGPL)に依存してるはずだが
これってWindowsで問題にならないのか?
743(1): 2006/05/07(日)18:46 AAS
Haskell での文字コード変換はどうするのが一般的でしょうか?
744(1): 2006/05/07(日)19:23 AAS
何故Haskellでは日本語が使えませんか?
745(1): 2006/05/07(日)19:45 AAS
>>744
GHCで使えないのはコンパイラの字句解析器とIOライブラリが日本語を解さないから。
字句解析器は6.6で改善されるはず。
HugsだとWindowsやLinuxでは日本語が普通に使えると思う。
746: 2006/05/07(日)22:41 AAS
>>745
HEAD branch snapshotの
ghc-6.5.20060328-i386-unknown-mingw32.tar.gz
だと、UTF-8なら読み込めるが、6.4でOKだったeucが駄目になってる。
747: 2006/05/09(火)00:14 AAS
Haskellかじり始めの者ですがいきなりWrite Yourself a Scheme in 48 Hoursから
取り掛かるのはやっぱり無謀ですか? 3. Parsingから途端について行けなくなったけど
リファレンスとか調べながら読んで行ってどうにかなるものかしら。
748: 2006/05/09(火)07:12 AAS
自分のやりたいことをやれ
手強かったら、一時撤退すればよい。
749: 2006/05/09(火)08:00 AAS
50歳ですが、haskellを学ぶといいことがありますか?
750: 2006/05/09(火)08:18 AAS
極楽浄土へ行ける
751: 2006/05/09(火)10:20 AAS
人生が静的になる
752: 2006/05/09(火)10:51 AAS
型推論で人生が決まる!
強く型付けされた人生で幸福をあなたの元へ
753: 2006/05/09(火)11:03 AAS
人は中身ではなく型が重要です。
754: 2006/05/09(火)13:00 AAS
>>743
つ 外部リンク:www.ruby-talk.org
iconv の FFI
755: 2006/05/10(水)04:20 AAS
人生が停止することが保証されますか?
756: 2006/05/10(水)07:49 AAS
必要とされない人生は評価されません
757: 2006/05/10(水)21:33 AAS
停止するか否かはこの時重要ではありません
必要に応じてプロシージャを走らせます
758: 2006/05/11(木)09:53 AAS
Haskellを勉強すると金になりますか?
759: 2006/05/11(木)09:58 AAS
オペレータを自由に定義できます。
760(1): 2006/05/11(木)14:02 AAS
えっ!?俺オペレータなんだよ…困ったな
761: 2006/05/11(木)20:49 AAS
>>760
762(2): 2006/05/11(木)20:53 AAS
むしろVisual Haskell使ってる人いる?
763(1): 2006/05/11(木)21:03 AAS
日経を多値読みしたら向井氏の記事の脚注に nobsun も Haskell 本を執筆中らしい。
かなりの期待あげ。
764: 2006/05/11(木)21:30 AAS
nobsunって何者?
上下前次1-新書関写板覧索設栞歴
あと 237 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.016s