[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 10:27 / Filesize : 244 KB / Number-of Response : 901
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【数学者】Haskellはクソ言語【オナニー】



1 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 01:34:05 ]
C/C++>>>>(越えられない壁)>>>Haskell

331 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 17:06:46 ]
解読できたらごほうびをあげるわ

332 名前:デフォルトの名無しさん [2006/08/19(土) 05:42:40 ]
諸君そろそろ議論に戻りたまえ。

333 名前:デフォルトの名無しさん mailto:sage [2006/08/21(月) 20:21:49 ]
    |┃三             _________
    |┃              /
    |┃ ≡    _、_   < 話は全部聞かせて貰ったぞ!
____.|ミ\___( <_,` ) _ \
    |┃=___    \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |┃ ≡   )   人 \ ガラッ

334 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 11:24:42 ]
入門Haskellの1章目で既に挫折しそうなわけだが。
やはり、アホな俺にはjavaが似合ってるのかもしれん。

335 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 12:05:04 ]
>>334
一章からわりと技巧的なことをやっているので無理もないと思う。
とにかく慣れが重要なので、サンプルコードをコピペしていじりながら
慣れるのが良いんじゃないか。
意味の分からないところは2chで聞けばいいし。

336 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 14:42:25 ]
>>335
アドバイスありがと。
とにかく触りながら地道にやってみるか。

337 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 16:36:09 ]
ふつけるのほうが
入門書としては
出来がいいようなキガスルな

338 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 19:10:52 ]
>>328
うわぁっ、すごぉっ、すげぇー!


339 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 20:34:23 ]
だまれカス



340 名前:デフォルトの名無しさん mailto:sage [2006/08/27(日) 23:24:04 ]
カスケル

341 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 11:37:28 ]
ttp://www.youtube.com/watch?v=eLS6GHXWMpA
みんな本当にこう感じてるのか?

342 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 16:18:31 ]
>>341
カコイイ

343 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:38:49 ]
>>341
すげー
Haskoreってやつを使っているのかな。

344 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:51:04 ]
>>341
最後の別のムービー紹介で
リーリ・カル・マジーロがトップに来てるのにワロタw

345 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 17:55:45 ]
>> 341,342,343
いまサウンドボードがイカれてて何がおもしろいのかサーッパリわからなかったんで
何を紹介しているムービーなのか解説してもらえないでせうか。

346 名前:デフォルトの名無しさん mailto:sage [2006/09/03(日) 18:12:03 ]
>>345
音楽のリズムパート(って正しい表現?)を記述したHaskellのコードがあって、それがBGMとして流れている。
コードを編集してロードしなおすとそれに連動して音楽も変わる。

347 名前:デフォルトの名無しさん mailto:sage [2006/09/04(月) 08:14:34 ]
よく考えればMMLとあんまりは変わらないとも言えるけど…

348 名前:345 mailto:sage [2006/09/05(火) 01:10:24 ]
>> 346
遅ればせながらサンクス。週末にでもサウンドボード調達してこよ。

349 名前:345 mailto:sage [2006/09/14(木) 00:06:08 ]
音付きで拝見しました。あまりよく知らないんだけどあんなのもHaskellが標準で
持ってる範囲内での記述なんですか?Lisp屋さんだとそれ専用のミニ言語平気で
作っちゃったりしてるけど似たようなものなのかな。



350 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 01:16:32 ]
328はpseudo-yamagata

351 名前:デフォルトの名無しさん mailto:sage [2006/09/14(木) 02:12:13 ]
>>343
en.wikipedia.org/wiki/Haskore
こんなものがあったとは。。

352 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 23:56:56 ]
このスレにはイスラエルの工作員が紛れ込んでると聞きましたが。

353 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:02:58 ]
オッス オラ モサド

354 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:28:57 ]
祖国がやべえ状態だってのに
なんだかすっげえワクワクしてきたぞ!

355 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 08:34:08 ]
>>272
www.haskell.org/ghc/docs/latest/html/users_guide/runtime-control.html#rts-options-gc
GHCのマニュアルによると、スタックはヒープ上に取られ、必要に応じて伸長する。
ヒープを使いきっていないのにスタックオーバーフローが起こるのは、無限ループに陥ったときに
メモリを使い尽くさないように上限を定めているだけで、

# スタックの大きさの上限を40億バイトにする
./a.out +RTS -K4G

のように上書きできる。

356 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 17:47:48 ]
syntax sugar

cons :: a -> [a] -> [a]
cons a b = a : b

357 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 23:18:37 ]
諸君、議論したまえ。(プヒョゲラ)

358 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 09:08:42 ]
闇夜に仕事人の目がギロンギロン

359 名前:デフォルトの名無しさん [2006/10/21(土) 02:35:42 ]


 ありがとーおー ぼくのー とーもだちー
 
   ハスカァール にー あわせてー くぅー れー ぇーてぇー





360 名前:デフォルトの名無しさん [2006/10/21(土) 18:26:29 ]
良スレage

361 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 18:55:02 ]
なにこの流れw

362 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 19:09:55 ]
次スレこれでいこうぜ

【Haskell】あらいぐまハスケル【関数型言語】

363 名前:デフォルトの名無しさん [2006/10/24(火) 00:08:44 ]
この言語は何で人気なの?

364 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 00:13:15 ]
別に大して人気はないと思う。
単に話題になることが多いだけじゃないかと。

365 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 00:35:18 ]
ネタにし易いからかな。

366 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 22:24:58 ]
pc8.2ch.net/test/read.cgi/tech/1149263630/909
飽きるまでなら付き合おう。
で、どこまで理解してる?

367 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 22:35:23 ]
module Qsort where
qsort _ [] = []
qsort f (x:xs) = before ++ (x : after)
  where before = qsort f $ filter (not . (f x)) xs
  after = qsort f $ filter (f x) xs

moduleってなによ
whereってなによ


368 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 22:52:17 ]
module Qsort where
ってのは、これからQsortという名前のモジュールを定義する、
詳細は以下である、と言う意味。(whereは「ただし」とでも読むべし)
モジュールというのは、おおざっぱに言うと、
一つのファイル中で定義されたものたちをひとまとめにして名前をつけたもの。
この場合はQsortモジュールはただ一個の定義(qsort)だけからなる。
プログラムの他の部分からqsortを使いたいときは、
import Qsort
として、Qsortモジュールの定義を使うことを宣言する。


369 名前:初心者A mailto:sage [2006/10/24(火) 23:03:51 ]
モジュール・・・機能単位、交換可能な構成部分という意味の英単語(e-wordより)

なるほど。Javaでいうところのクラスみたいな感じか
import文もJavaといっしょだな
モジュール ≒ Javaのパッケージ
定義     ≒ Javaのクラス
関数     = Javaのメソッド


ここで疑問点が発生
下のような2行だけ書いたファイルでもOKのはずだけど
これはなんで module とか where とか 定義名 がいらないの?

foo x y = x + y
hoge = 2



370 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:09:22 ]
>>369
>これはなんで module とか where とか 定義名 がいらないの?
module ... whereの部分は省略することができて、その場合
module Main(main) where
と書かれているとみなされる。
(main)という括弧書きは、モジュール中の定義のうち、mainだけを外部に公開する、
という意味。括弧書きがないときは、全ての定義が公開される。

371 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:25:53 ]
デフォルトではprivate(不可視)にしてるということか

次2行目
qsort _ [] = []

これは qsort が 定義名 でいいのかな
_(アンダースコア) は 変数名っぽいけどそんなわけないよな
そして、 [ ] (配列) = [ ] (配列) 

???
わからない

372 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:39:37 ]
>>371
[]は空リスト。
_は厳密には変数名じゃないけど、そう考えても大して問題はない。
この行では、_がqsortの第一引数、[]が第二引数になっている。

qsort _ [] = []

は、qsortの第二引数が空リストのとき、第一引数に関係なく、結果は空リストである、と読む。
ここで定義しようとしているqsortは、第一引数として比較関数、第二引数としてリストを取り、
ソートされたリストを返す関数だから、この行は、「空リストをどんな比較関数を使ってソートしても結果は空リスト」と
言っていることになる。

373 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 00:04:32 ]
比較関数っていうのがよくわかんない
Webで探したらこんな文章発見

>でも比較関数って何?って思いますよね。
>比較関数とは2つの引数を持ち、
>引数1が引数2より小さい場合は負の整数、
>同じ場合は0、
>引数1が引数2より大きい場合は正の整数を返します。

うーん・・・
 _ (アンダースコア)がどういう役割なのかな、この場合 _(アンダースコア)以外はダメ?

例えば -(ハイフン)とか、ふつうのアルファベットとか

374 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 00:20:58 ]
>>373
>比較関数っていうのがよくわかんない
ここでは、引数を二つとって、第一引数が第二引数より「小さい」ときのみTrue、
そうでなければFalseを返す関数の事。
普通の意味での大小関係にしたがってTrue/Falseを返す関数を比較関数として与えれば
qsortは昇順のソートをするし、逆に数値が大きいほど「小さい」と判断する
関数を与えればqsortは降順のソートをする。さらに、例えば引数の絶対値を比べる関数を
渡せば、絶対値が小さい順にソートすることができる。

> _ (アンダースコア)がどういう役割なのかな、この場合 _(アンダースコア)以外はダメ?
仮引数の名前なので、アルファベットからなる名前を好きにつけても良い。

qsort comparer [] = []

とか。ハイフンは演算子とみなされるのでだめ。

375 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 02:19:46 ]
お札もえいないのか

376 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 10:17:13 ]
お礼を期待して2chで書くのは不毛な行為だとオモタ。

377 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 12:05:22 ]
>>375
「お札萌え居ないのか」?
巫女萌えならここに居るが何か。

378 名前:初心者A mailto:sage [2006/10/26(木) 02:47:04 ]
昨日はねちゃってたよ
サンクス

また明日とかよろ

379 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:59:00 ]
おれい?



380 名前: ◆XbPqxIJuLU mailto:sage [2006/12/02(土) 02:04:39 ]

        ∩___∩
        | ノ|||,,.ノ ヽ、,,ヽ
       /  ●   ● |  このスレは俺がもらうクマ
       |    ( _●_)  ミ  以後、「AAでHaskellのお勉強」クマ
      彡、  ,、、|∪| ,,,ノ   
      /   . ヽノ  ヽ
      |  _r'゚lニニニl]_ ____/l    
fニニニニllニニ|  \[ l===ニニl]}||||||||ll]}コl|====iニコ
|l_,,=-'''~  | \... ヽ'''ニ「_,,,l⌒l。__。_]三i三三iF
      | 〈,,/ヽ___)|ll [`ー'


381 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:06:38 ]

      ∩∩ ; とりあえずHelloWorld書いてみるクマ
      ;|ノ||`      ┬-‖
   __,/●●| __    | | ‖
   | ; |`(_●)/ ミ   . Y ‖
   | .彡|∪||、 , .|     |  ‖
  /:~ ̄ ̄ ̄ ̄:/.|    |  ‖
  ,|:::::.   .......::/>>    /  ‖
 /.:::::  .. ...::::::|'(/\_/  ‖
../:.:::    .. :.:::/.:/     /‖\
/.:::.   ....:::..:::/.:/
' ̄ ̄ ̄ ̄ ̄ _/
|_| ̄ ̄ ̄ ̄|_|


382 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:09:08 ]

main = putStrLn "Hello, World!"

   ∩___∩
   | ノ      ヽ
  /  ●   ● |   こうですか!?わかりません!
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)


383 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:10:28 ]

  できてんじゃねーかよ!
    .,. -──-、    __
   /. : : : : : : : : :\  〈〈〈〈 ヽ
  /.┛┗: : : : : : : : : :ヽ 〈⊃  ノ
. !.::┓┏,-…-…-ミ: ::', |   |       ∩___∩
 {::: : : : :i '⌒'  '⌒'i: : ::}ノ   !       | ノ --‐'  、_\
 {:: : : : : | ェェ  ェェ |: : :}   /   、   / ,_;:;:;ノ、  ● |
. { : : : : :|   ,.   |:: :;! / ,   ,,・_  |    ( _●_)  ミ
. ヾ: : :: :i r‐-ニ-┐| ::ノ/   , ’,∴ ・ ¨彡、   |∪|  ミ
   ゞイ! ヽ 二゙ノイゞ     、・∵ ’  /     ヽノ ̄ヽ
  / _ ` ー一'´ ̄/          /       /\ 〉
  (___)    /          /        /


384 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:25:44 ]
 
          ,..-──- 、
          /. : : : : : : : : : \      Haskellはmainアクションからはじまるようになっている
        /.: : : : : : : : : : : : : : ヽ
        .,!::: : : :,-…-…-ミ: : : : :',     決まりごとだから深く考えちゃダメさ
        {:: : : : :i '⌒'  '⌒' i: : : : :}     
        {:: : : : | ェェ  ェェ |: : : : :}      そうそう、Haskellは大文字と小文字を区別するよ
     .   { : : : :|   ,.、   |:: : : :;!      
        .ヾ: :: :i r‐-ニ-┐ | : : :ノ       MainでもMAINでもない、mainじゃないといけない
         ゞイ! ヽ 二゙ノ イゞ‐′
    ,.、-  ̄/  入.` ー一'´ |` ┬-、       クマくん わかるかい?
    /  ヽ. /    ト-` 、ノ- |  l  l  ヽ.
  /    ∨     l   |!  |   `> |  i
  /     |`二^>  l.  |  | <__,|  |
_|      |.|-<    \ i / ,イ____!/ \
  .|     {.|  ` - 、 ,.---ァ^! |    | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{   ___|└―ー/  ̄´ |ヽ |___ノ____________|
  }/ -= ヽ__ - 'ヽ   -‐ ,r'゙   l                  |
__f゙// ̄ ̄     _ -'     |_____ ,. -  ̄ \____|
  | |  -  ̄   /   |     _ | ̄ ̄ ̄ ̄ /       \  ̄|
___`\ __ /    _l - ̄  l___ /   , /     ヽi___.|
 ̄ ̄ ̄    |    _ 二 =〒  ̄  } ̄ /     l |      ! ̄ ̄|
_______l       -ヾ ̄  l/         l|       |___|


385 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:30:34 ]

                      _ /- イ、_
  簡単クマ   __        /: : : : : : : : : : : (
          〈〈〈〈 ヽ     /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ
          〈⊃  }     {:: : : :ノ --‐' 、_\: : ::}
   ∩___∩  |   |      {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}  
   | ノ      ヽ !   !   、  l: :ノ /二―-、 |: ::ノ
  /  ●   ● |  /   ,,・_  | //   ̄7/ /::ノ
  |    ( _●_)  ミ/ , ’,∴ ・ ¨  〉(_二─-┘{/
 彡、   |∪|  /  、・∵ ’  /、//|  ̄ ̄ヽ
/ __  ヽノ /         /   // |//\ 〉
(___)   /         /    //   /\ /


386 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:32:43 ]
 
                                              _ /- イ、_
    ∩___∩   あぁたたたたたたたたたたたた  /: : : : : : : : : : : (
    | ノ     ヽ                             /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ
   /    ●   |     r‐っ'つ  _,rノ´)        {:: : : :ノ --‐' 、_\: : ::}
   |      ( _●) ーニ三、_,Eノ‐_r'           {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}
  彡、     |∪||   r'´)  ̄-一ーt_j'´     、   l: :ノ /二―-、 |: ::ノ
    ゝ     ヽノ _三  'ー'´)   _,∩     ,,・_    | //   ̄7/ /::ノ
   /    ー-−ニ ̄‐ヽ   ̄,_)' 一(´,__) `! , ’,∴ ・  ¨  〉(_二─-┘{/
          一 - ―゙ゝ_,.)  ニ(__,.)-''l-‐、・∵ ’    /、//|  ̄ ̄ヽ
                 一‐--(_) ノ`       /   // |//\ 〉
                      (__)'         /    //   /\ /
   putStrLnってなんだクマ?


387 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:34:04 ]

      関数名だボケ!!

       ,..||-ノ─ソ彡〈〈〈〈 ヽ
     &. : : : : : : : : : ミ〈⊃  }
    ミ.: : : : : : : : : : : : : :  |   |
    ,!::: : : :,-…-…-ミ: : : :|   |         ∩___∩
   三 : : : :i ;;;/:'  '⌒' i: : : |   |        | ノ --‐'  、_\ 
   .{:: : : : |:::+;;;  ェェ .|: : : : ニ  !   ,,・,_  / ,_;:;:;ノ、  ● |
    { : : : :|ヾ  ,.、   |:: : : :; ! / ’,∴ ・ ¨ |    ( _●_)  ミ
 / ヾ: :: :i r‐- ┃┐.| : : :ノ/、・∵ ’    彡、   |∪|   ミ
/ __ゞイ!ヽ┃ニ゙ノ イゞ‐            /     ヽノ ̄ヽ
(___)     /`'            /       /\ 〉


388 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:35:05 ]

             .,..-──- 、
           r '´. : : : : : : : : : :ヽ
          /.: : : : : : : : : : : : : :: ヽ
         ,!::: : : : : ,-…-…-ミ:: : :',
         {:: : : : : :i  ,;ノ;´:`ゞ、i: : :.:}  もともと用意されてんだよ〜っ!!
         {:: : : : : :|  ェェ;;;;;;;ェェ|: : : } 
         { : : : : ::|    ,.、 .| : : :;!∫ 
          ヾ: :: : :i   r‐-ニ┐| : riii= 
           ゞイ!   ヽ 二゙ノ イ「 ノ 
          (⌒ ー ̄ ̄´ r⌒ !  〉
           ヽ弋パラッパッパ` ー'
           〔勿\     ヽ        ベキ
               )  r⌒丶)  ベキ
     ドカ   ドカ  /   !   |' ∩__∩   ボキ
       ドカ    /   /|  l| ノ --‐'  、_\
             (    く  ! ~l / ,_;:;:;ノ、  ●| 
           ドカ   \  i   | ‖彡    ( _●_) ミ
            ,__>  ヽヽ从/ 彡 、  |∪|  ミ
            ⊂ _ ⌒ヽ从  ⊃  ヽノ ̄⊃


389 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:43:42 ]
;;;;;;;;;;;;;;;;;;;;;(:::::::::::::::::::::::::::::::   ,...ヾ ;;\::           ::l;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;/
;;;;;;;;;;;;;;;;;;;;;;;;;ー-..::::ミミミ、ヾ   ( );;) ヾ;;ヽ、           :i;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;://
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=-゙-`:::::::ミミ\ ゙゚''" i::ヽ;;i  ::         |;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:l /
;;;;;;;;;;;;;;;;;;;;;;;/:::::::    :::::::.ミ::.'ヽ.........::::::::.、'_ノ        l;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:i /
;;;;;;;;;;;;;;;;;,ノ:::::::::::.             :::.`   , 二;ニ= 、   ノ;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ノ /
;;;;;;ー-'',:::::::::::::::              :::  ' ,rェ ヽ`  ヽ /;:;:;:;:;:;:;:;:;:;:;:;:;:// /
;;;;;;;;;;;;/"::::::::::               _i ヽ゚ ン i` /;:;:;:;:;:;:;:;:;:;:;:;:;:ノ / /
ー' ̄:::::::::::::::::     ____    /:;:;:ヽ ー  /;:;:;:;:;:;:;:;:;:;:;:;:;:// / /
:::/:::::::::::::::::::::    /;:;:;;:;:;:;:;:;:;:;:;:;:ヽ、 :;ー:ノミ; ::. /;:;:;:;:;:;:;:ー" ̄ / / / /
:/::::::::::::::::::::::::  /;:;:;/:::::::::::\ \;ヽ/ ̄   : /;:;:;:;:;/"/ / / / / /
:::::::::::::::;;::::::::::::  |:;:;:;:;:l ̄\:::::::::::\ );:ヽ    /;:;:;:;:;:;l/ / /  |\/\/ヽ∧
::::::::::::::::::;;;::::::::.  \:;:;ヽ  ヽ:::::::::::::'/;:;:/    /;:;:;:;:;:;:丿/ / _/ ハ  あ
::::::::::::::::::::;;;;::::::    \;:;\  |:::::::/;/   /;:;:;:.:_,- " / /\    ス  ら
::::::::::::::::::::::;;;;;;:::    、. \;:;\ l::/;/   / ̄/ / /  /    ケ   い
:::::::::::::::::::::::::;;;;;;;;../ ̄ ー\ ;:;:;:/   // /  / /<       ル   ぐ
::::::::::::::::::::::::::::;;/      ゙''ー 、_ /  / / / / /       !!!   ま



390 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:46:09 ]

                         _ /- イ、_
               ,       /: : : : : : : : : : : (
   意味わからんわw  ゚ + `    /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ
            ’, ’,∴ ・ ¨ {:: : : :  : : ::;:;: ;: ;:;: ;: ::}
   ∩___∩     ii  ’,∴  ェェ ( : : : ::;:;: ;: ;:;: ; : ::::} 
   |      : : ;: ヽ  ! | | ! ,・,,  (_l__\(: ::;:;: ;ヽ: ; : ::ノ
  /      : : ;: |く^⌒!|| , ,,・_(_ヽ;:;:)ヽ: ::;:;: ;:; ::ノ
  |       : : ::;:ミ ::;:| !   ∴ ・ ¨C〉 (_二:;: ;::;:/
 彡、     : : ::;:/⌒ ノ||!、 ’  ・∵ (、//|    ̄ヽ
/ /       : : ::;:/!!       /   // |//\ 〉
(_/     : : ::;:/'' ̄         /    //   /


391 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:50:48 ]


           バカ専用      普通  ハッカー ウィザード
             ┝ - - - - ┿━━━┿━━━┥
   ∩___∩   /)
   | ノ      ヽ  ( i )))
  /  ●   ● | / /
  |    ( _●_)  |ノ /   今はここら辺クマーー!!
 彡、   |∪|    ,/
/    ヽノ   /


392 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:52:26 ]

                   ∩─ー、
                 / ● 、_ `ヽ
                /  ( ●  ● |つ
                |  /(入__ノ   ミ そろそろモナドでもはじめるか・・・
                 、 (_/   ノ
                 \___ノ゙
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::
               / /へ ヘ/ /:::
               / \ ヾミ  /|:::
              (__/| \___ノ/:::
                 /    /:::
                 / y   ):::
                / /  /:::
               /  /::::
              /  /:::::
             (  く::::::::
              |\  ヽ:::::
                |  .|\ \ :::::
          \    .|  .i::: \ ⌒i::
          \   | /::::   ヽ 〈::
              \ | i::::::   (__ノ:
              __ノ  ):::::
            (_,,/\


393 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:53:10 ]
    
      まだはえーーよ!
        .,..-──- 、
      r '´. : : : : : : : : : :ヽ
     /.: : : : : : : : : : : : : :: ヽ
    ,!::: : : : : ,-…-…-ミ:: : :',..  _
    {:: : : : : :i  ,;ノ;´:`ゞ、i: : :.:} / /  _____ 
    {:: : : : : :|  ェェ;;;;;;;ェェ|: : : } ./ /  /// \\ ./\ ∩___∩
    { : : : : ::|    ,.、 .| : : :;!./  \  ̄     ̄/./  | ノ --‐'  、_\
     ヾ: :: : :i   r‐-ニ┐| : r / /"\.>   .__/./   / ,_;:;:ノ、  ● |
      ゞイ!   ヽ 二゙ノ イ /__/       <__/     |    ( _●_) ミ
    /⌒  `ー―''´ヽ             \_ ~\彡、   |∪|  ミ
  /           |        //    \_/     ヽノ  ̄\
 (   く"| _____|____,,___ /   ̄Z、   /,,,,,,,,      /ヽ >
  \  ヽノ _|||||_____.爪_|―――゚'ヽ     >  ;;;'''''';;;';';;   / <_/ 
 r' ̄\_ 三〉)) ̄ ||||`ー'       `-、ゝ ̄  ;;'''    ∴。・、
 )__/. ̄ ̄   ||||           \    '':;:;,,,;;;'''`・゚。;;


394 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:59:51 ]

              -― ̄ ̄ ` ―--  _        
          , ´         ,    ~  ̄、"ー 、 
        _/          / ,r    _   ヽ ノ
       , ´           / /    ●   i"
    ,/   ,|           / / _i⌒ l| i  |
   と,-‐ ´ ̄          / / (⊂ ● j'__   |
  (´__   、       / /    ̄!,__,u●   |   モナドって言っただけで撃つことないじゃん
       ̄ ̄`ヾ_     し       u l| i /ヽ、  ちょっと調子にのっただけなのに・・・
          ,_  \           ノ(`'__ノ
        (__  ̄~" __ , --‐一~⊂  ⊃_
           ̄ ̄ ̄      ⊂ ̄    __⊃
                   ⊂_____⊃


395 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:11:55 ]

|
|.-──-、
| : : : : : : : : \
|: : : : : : : : : : : ヽ    次の問題は length関数だ
|-…-…-ミ: : : : :',
| '⌒'  '⌒' i: : : : :}    length [1, 2, 3, 4, 5, 6, 7]
| ェェ  ェェ |: : : : :}    length ["abc", "AAA", "クマ"]
|   ,.、   |:: : : :;!    length [ ""]
| r‐-ニ-┐| : : :ノ     length "ヌケドナルド"
|! ヽ 二゙ノ イゞ‐′     length "kuma"
| ` ー一'´丿 \
| \___/   /`丶、
| /~ト、   /    l \


396 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:14:55 ]

               ,..-──- 、
             /. : : : : : : : : : \
            /.: : : : : : : : : : : : : : ヽ     length関数は要素の数を返す!
           ,!::: : : :,-…-…-ミ: : : : :',     関数の右にあるのが引数だ
           {:: : : : :i '⌒'  '⌒' i: : : : :}     どんな値でも長さを調べられるぜ
           {:: : : : | ェェ  ェェ | : : : : :}     さぁ答えろ! 間違えたら殺す!!
           { : : : :|   ,.、  .| :: : : :;!
_∧        ヾ: :: :i r‐-ニ-┐ | : : :ノ        ∧
(   \       ゞイ! ヽ 二゙ノ イゞ‐ ′     //~⌒ヽ
|( ● )| i\     _,,ノ| ` ー一'´//\     /i |( ● )|
\_ノ ^i | _,,..r''''" ノ | \`', /  /  / ̄`''ー | i^ ゝ_ノ
 |_|,-''iつl/´    ヽノ| /\   / 、│     l⊂i''-,|_|
  [__|_|/〉ヽ、  / |/ );;;;/\/   'く    /〈\|_|__]
   [ニニ〉  ',  ヽ. | /⌒| /   ゚/    / 〈二二]
   └―'                        '─┘


397 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:18:17 ]

                   ∩─ー、
                 / ● 、_ `ヽ
                /  ( ●  ● |つ
                |  /(入__ノ   ミ 上から・・・
                 、 (_/   ノ
                 \___ノ゙     7
                 / 丶' ⌒ヽ:::     7
                / ヽ    / /:::     0
               / /へ ヘ/ /:::     1
               / \ ヾミ  /|:::     1
              (__/| \___ノ/:::
                 /    /:::
                 / y   ):::
                / /  /:::
               /  /::::
              /  /:::::
             (  く::::::::
              |\  ヽ:::::
                |  .|\ \ :::::
          \    .|  .i::: \ ⌒i::
          \   | /::::   ヽ 〈::
              \ | i::::::   (__ノ:
              __ノ  ):::::
            (_,,/\


398 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:18:55 ]

       ちげーーよ!!
        .,..-──- 、
      r '´. : : : : : : : : : :ヽ
     /.: : : : : : : : : : : : : :: ヽ
    ,!::: : : : : ,-…-…-ミ:: : :',..  _
    {:: : : : : :i  ,;ノ;´:`ゞ、i: : :.:} / /  _____ 
    {:: : : : : :|  ェェ;;;;;;;ェェ|: : : } ./ /  /// \\ ./\ ∩___∩
    { : : : : ::|    ,.、 .| : : :;!./  \  ̄     ̄/./  | ノ --‐'  、_\
     ヾ: :: : :i   r‐-ニ┐| : r / /"\.>   .__/./   / ,_;:;:ノ、  ● |
      ゞイ!   ヽ 二゙ノ イ /__/       <__/     |    ( _●_) ミ
    /⌒  `ー―''´ヽ             \_ ~\彡、   |∪|  ミ
  /           |        //    \_/     ヽノ  ̄\
 (   く"| _____|____,,___ /   ̄Z、   /,,,,,,,,      /ヽ >
  \  ヽノ _|||||_____.爪_|―――゚'ヽ     >  ;;;'''''';;;';';;   / <_/ 
 r' ̄\_ 三〉)) ̄ ||||`ー'       `-、ゝ ̄  ;;'''    ∴。・、
 )__/. ̄ ̄   ||||           \    '':;:;,,,;;;'''`・゚。;;



399 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:26:35 ]
                   /. : : : : : : : : : \
                  /.: : : : : : : : : : : : : : ヽ
 そんなバカなクマ     ,!::: : : :,-…-…-ミ: : : : :',
                {:: : : : :i'⌒'  '⌒' i: : : : :}
         ∩___∩ {:: : : : | ェェ  ェェ  |: : : : :}
        | ノ --‐'  、_\: : : :|  ,.、    |:: : : :;!
        / ,_;:;:;ノ、  ●ヾ: :: :i r‐-ニ-┐ | : : :ノ  上の3つは
       |    ( _●_)  ミゞイ! ヽ二゙ノ イゞ‐′   リスト(配列)だから正解!!
         彡、   |∪|  ミ  ⌒゛ /⌒ヽ\
     /⌒    ヽノ`''/ ⌒ ー--、' ,/`/
     / /~〔_彡.ミ⌒ヽー,==-、 ヽ_,zn'  /
    | | /    `^,/  ̄,ノ   ヽ、__^ノ /
    彡ノ |      /⌒ヽ i⌒ ー 、  ヽ
       ヽ     l人  |  .)  `  . |ー┐
        \    `⌒ |  ノヽ、_   ノ.ヽ」

             /. : : : : : : : : : \
           /.: : : : : : : : : : : : : : ヽ
           ,!::: : : :,-…-…-ミ: : : : :',
          {:: : : : :i '⌒'  '⌒' i: : : : :}
          {:: : : : | ェェ  ェェ |: : : : :}   でも下の2つは
          { : : : :|   ,.、   |:: : : :;!     ただの文字列!
           ヾ: :: :i r‐-ニ-┐| : : :ノ     
             ,,,! ヽ二゙ノ イゞ‐′     こういう場合は文字数を
 ひっかけクマ・・・ /      ̄⌒ヽ         数えるんだろーがぁぁ!!
            |      lヽ、 | __
     ∩___∩      L__| |_. `ヽ
     | ノ --‐'  、_\        lヽ‐'〉 .|
     / ,_;:;:;ノ、  ●ヾ     _ \/  .|
    |    ( _●_)  ミ ー-`\  \,,ノギリギリ
     彡、   |∪|  ミ.      `ヽ   )
     彡    ヽノ/      ,//  /



400 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:30:11 ]
             ,、__
            /ヽ   ``ヽ
           // ̄' ̄ ̄ヽ.\
           `i |,_, ,_,、 i .>
           ト|,:ニ/ヽ二|'ー!イ.   やはり所詮はクマ
            | ̄,.レ,..、  )7
            ! ''===i  /'.    ヌケドを殺るのはワシしかおらんな
            ヽ `! !' ,//\_
         _,―イ>`'´‐< /  \_
       _/ _/  /`―「_!―'./  /   `―::、
      _/ |i   |  ///' /  !_      \
  ._∧ノ  | i  i'  ! | | /  ・'/ i'    イi
 /   \| |  |  | | | /  _∧=i |     /|
 |( ● )| i\| i  | | | レ'/   \|       |
 \_ノ ^i || ヽ  | フ |( ● )| i\|     ノ
  |_|,-''iつl|  \/ /\_ノ ^i | ,‐、」  !|
    [ニニ〉|  / /  |_|,-''iつl \\\|
    └―'./ / /    [__|_|/〉  ) ヽ ! |
    \_/ //      [ニニ〉//  ! | 」
       |  |        └―'V | |_,,..::‐''´


401 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:33:18 ]
                                    ,..-──- 、
                         /. : : : : : : : : : \
                        /.: : : : : : : : : : : : : : ヽ
       __,、           ≡   ,!::: : : :,-…-…-ミ: : : : :',     バカめ
    〃ニ;;::`lヽ,,_          ≡ {:: : : : :i '⌒'  '⌒' i: : : : :}     ジジイの命もこれまでだ
    〈 (lll!! テ-;;;;゙fn    __,,--、_  .. {:: : : : | ェェ  ェェ |: : : : :}  ≡
   /ヽ-〃;;;;;;;llllll7,,__/"  \三=ー"{ : : : :|   ,.、   |:: : : :;!  ≡
   >、/:::/<;;;lllメ   \ヾ、  ヽTf=ヽ` : :: :i r‐-ニ-┐ | : : :ノ
  j,, ヾて)r=- | ヾ:   :ヽ;;:     | l |  l ゞイ! ヽ 二゙ノ イゞ‐′   ≡
 ,イ ヽ二)l(_,>" l|    ::\;::    | |  |  ヽ,,` ー一'/ V
 i、ヽ--イll"/ ,, ,//,,    :;;   l //  l く> /::l"'i::lll1-=:::: ̄\
 ヾ==:"::^::;;:::/;;;;;;;;;:::::::::::::: :::::ゞ ノ/   L/〈:::t_イ::/ll|─-== ヾ
  \__::::::::/::::::::::::_;;;;;;;;;;;;;;;;;ノノ   ヘ   >(゙ )l:::l-┴ヾ、ヽ  )
      ̄~~ ̄ ̄/ :::|T==--:::::  //  / ト=-|:|-─ ( l   /
         / ::  ::l l::::::::::::::::::/ /:::::::::::/:::::(ヽ--─  / |  /
         ヽ_=--"⌒ ゙゙̄ヾ:/ /:::::::/:::::::::`<==-- ノ / /
         /   /   \/::::::::::::::::::::::::::::: ̄'''"":://
        /   /     :::: ヾ::::::::::::::::::::::::::::べ__;;;--"


402 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:33:59 ]
        __ ,、
      /''    /ヽ.
     / /' ̄ ̄ ̄ ヽヽ/ ̄)
    <. i  ,_, ,_,|. i' |     くニ} {fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj
     ト,!ー|二/'ヽニ:,|イ. |
      (   ,..J,、 ̄||  |   バカモン! 遅延評価の威力を見せてくれるわ!
     .'ヽ  i==='' !   |
       ヽ, `! !'/    |
 くニ} {fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj
      /  ,へ        ̄ ̄`ヽ
       /  /  \    t──┐  |
     (__/     >   ).   |  |_
              /  /   (___)
            (  \
             \__)


403 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:34:40 ]
        __ ,、
      /''    /ヽ.
     / /' ̄ ̄ ̄ ヽヽ/ ̄)
くニ} {f<. i  ,_,({fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj
     ト,!ー|二/'ヽニ:,|イ. |
      (   ,..J,、 ̄||  |   ・・・・・・
     .'ヽ  i==='' !   |
       ヽ, `! !'/    |
 くニ} {fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj
      /  ,へ        ̄ ̄`ヽ
       /  /  \    t──┐  |
     (__/     >   ).   |  |_
              /  /   (___)
            (  \
             \__)


404 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 03:48:22 ]

           バカ専用      普通  ハッカー ウィザード
             ┝ - - - - ┿━━━┿━━━┥
   ∩___∩   /)
   | ノ      ヽ  ( i )))
  /  ●   ● | / /
  |    ( _●_)  |ノ /   まだここら辺クマーー!!
 彡、   |∪|    ,/
/    ヽノ   /


405 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 13:34:53 ]
>>396,397,399
length [""]
は、空文字列をひとつ含む配列なんだから
1
だよ。

406 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 13:59:22 ]

       //                   |  |      ,イ
      //                    l  |     //
    //        ∩___∩        /  ||ノノ_/ /
   /'"         | ノ      ヽ     /        /
  /         ,/./  ●   ● |    /  ;/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ,. ‐'" |:|    ( _●_)  ミ   / ,< 間違えてんじゃねーかよ!!
       , ィ'"    |:::彡  |∪|  /   , '    \___________
     ,.イ        |:::::::L  ヽノ,,,,ノ  .//´ ̄ ̄`ヽ       \
   //i|      ,.|::::::レ! /:::::/ //        \ ( ̄`ヽ、 \
  ./:::::{ |ヽ   |ヽ∠.|::::::| メ:::::::; '_/// /`''"⌒i  ,.....,_  \、   `ヽ、\
   `''" `'''`ー-|'"  ,':::::::|':::::::; ' / /  ヾ-┤ |'´,. --.、`丶、\     `\
        ノ   {::::::/:::::::/__ノ ∠/  / _ /- イ、_  ヽ  ヽ
       /   ノ/⌒ヽ::::}   /   /: : : : : : : : : : : (' ,ノ,ハ   ガッ
     <    {ム/   }/  ∠/ /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ  |  ヽ
       `ヽ、  'ー'-'‐'′  /   {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}  !`'ー─ゝ、    _
         ヽ       /     l: :ノ /二―-、 |: ::ノ /  _  `丶..ノF'!
          ヽ-‐''" ̄``ヽ       | //   ̄7/ /::ノ ̄ヽ ̄  `i丶、__,.ノ
                          ヾ(_二─-┘{/    ヽ、_   }ヽ、
                             ̄ ̄         ``'"ー-


407 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 21:51:40 ]
length ["abc", "AAA", "クマ"] は 7 じゃなくて 3 だろ!

408 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 22:57:35 ]
                                        | | | |
                         _ /- イ、_      |_|_|_|_
    バカ野郎!             /: : : : : : : : : : : (    / 〉〉〉〉  カスが!
              l⌒)OOo    /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ  {  ⊂〉
   ∩___∩    {  )  )    {:: : : :ノ --‐' 、_\: : ::}  |   |  ∩___∩
   | ノ      ヽ  | ::::::/     {:: : :ノ ,_;:;:;ノ ////ヾ: :::}  l   l /      ヽ |
  /  ●   ● |  /  ::::|   、  l: :ノ /二―-、 |: ::ノ  ヽ  | ●   ●  ヽ
  |    ( _●_)  ミ/    )  ,,・_  | //   ̄7/ /::ノ .・,,; \彡 (_●_ )    |
 彡、   |∪|   /   / ̄, ’,∴ ・ ¨   〉(_二─-┘{/ ∴ ;・, ;  \  |∪|    ミ
/ __  ヽノ  /   /  、・∵ ’   /、//|  ̄ ̄ヽ  、;:,・    ヽ. ヽノ___ ヽ
(___)    /    /        /   // |//\ 〉         ヽ (_____)


409 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 22:58:52 ]

                      うるせーばか!
               __       /- イ、_
  ∩___∩     /  〉〉〉〉 /: : : : : : : : : : : (
 /_ノ  `ー- ゝ\   、 {   ⊂〉/: : : : ::;:;: ;: ;:;: ; : : : ::ゝ〈〈〈〈  ヽ      ∩___∩
 | ●  ゝ:;;;:;:_, ヽ , ,・_ |    {:: : : :ノ --‐' 、_\: : ::}〈⊃   }      | ノ --‐'  、_\
彡   (_●_ ) ''  |, ’ ,∴ l    {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}  |    |    、 / ,_;;;:;ノ、  ● |
彡、   |∪|    ミ、・∵ ’ ヽ    l: :ノ /二―-、 |: ::ノ     !  ,,・_  |    ( _●_) ミ
γ ̄  ヽノ   ヽ)       \    | //   ̄7/ /::ノ    / , ’,∴ ・¨彡、    |∪|  ミ
〈 /i          i         \ 〉(_二─-┘{/  / 、・∵ ’  /      ヽノ ̄ヽ
  ノ        ノ          ヽ 、//|  ̄   /´       /        /\ 〉




410 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 23:07:38 ]
>>395
【問題】
length [1, 2, 3, 4, 5, 6, 7]
length ["abc", "AAA", "クマ"]
length [ ""]
length "ヌケドナルド"
length "kuma"

【答え】
7
3
1
6
4  ∩___∩
   | ノ      ヽ
  /  ●   ● | クマクマ
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
(___)f^f^f^f^f^f^f^f^f^-┐
 |    |~ ~ ~ ~ ~ ~ ~ ~ ~ │
 |    | 配列は要素数 │
 |  / | 文字列は文字数|
 | /  | 正直すまんクマ |
 ∪   |_____________|
        \_)


411 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 01:33:32 ]
. ┌────────────────────┐
つ |   文字列     =      文字のリスト      │
. |   "kuma"   .→     ['k', 'u', 'm', 'a']      |
. | "ヌケドナルド" →  ['ヌ', 'ケ', 'ド', 'ナ', 'ル', 'ド'] .|
. └────────────────────┘

つ [] == ""

412 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 02:50:45 ]
正確には

[] :: [Char] だな

413 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 19:26:12 ]
Ctrl-Dを押すまで結果が出力されないんだが・・・。
mapMを使ってるせいだろうか。

main = do cs <- getContents
     r <- mapM hoge $ lines cs
     putStr $ head r

hoge :: String -> IO String
hoge x = return x

414 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 21:26:50 ]
>>413
その通り。
csの終端を見つけるまでmapM_が終わらないから、
putStrが実行されることもない。

415 名前:414 mailto:sage [2006/12/03(日) 21:27:23 ]
ごめん。mapM_じゃなくてmapMね。

416 名前:413 mailto:sage [2006/12/03(日) 23:45:53 ]
>>414,415
なるほど。ありがとう。
一行入力するごとに結果を返してほしいのだが、いい方法はないのかな。
mapMはsequence . mapらしいので、いろいろ組み合わせて書き直してみた。

main = do cs <- getContents
     mapM_ (putStr . unlines =<<) $ map sequence $ map (:[]) $ map hoge $ lines cs

hoge :: String -> IO String
hoge x = return x

こうすれば望みの結果が得られるようなのだが、ちょっとめんどくさすぎるな・・・(・∀・;)

417 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 00:29:46 ]
>>416
IOは上から順に実行されるのが原則(getContentsは例外)で、
評価と違って「値の要求があって初めて」実行したりはしない。
だから
r <- mapM hoge $ lines cs
とあったら、rが必要とされるか否かにかかわらずmapMは最後まで実行される。
これは、そうでないと動作の順序を予測するのが難しくなって不便だからだ。
どうしてもその挙動が必要なら、unsafeInterleaveIOという関数を使えば実現できる。

ちなみにそのコードは行ごとにputStrしているだけで、
mapM_ putStrLn $ lines cs
と書いているのとかわらない。
何がしたいかをもう少し詳しく教えてくれたら、もうちょっとまともな助言ができると思う。

418 名前:413 mailto:sage [2006/12/04(月) 01:51:46 ]
>>417
>評価と違って「値の要求があって初めて」実行したりはしない。
>だから
>r <- mapM hoge $ lines cs
>とあったら、rが必要とされるか否かにかかわらずmapMは最後まで実行される。

あぁ、なるほど。なんでうまくいかなかったのか、やっとすっきりした。
結果が必要かどうか関係ないのね・・・。
自分が作りたかったのは、ハッシュテーブルに入力されたものを入れて、そのときのハッシュテーブルの中身を返すという関数。
↓こんな感じなのを作ったのだが、入力が終わらないと処理が先に進まなくて困ってる次第。

import Data.HashTable as HashTable

main = do cs <- getContents
     hash <- new (==) hashString
     r <- mapM (hoge hash) $ lines cs
     putStr $ unlines r

hoge :: (HashTable String Int) -> String -> IO String
hoge _ [] = return []
hoge hash key = do insert hash key 1
          h <- toList hash
          return $ show h

419 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 03:03:58 ]
>>418
それと同じことをするだけなら、mapMでハッシュ表の操作と同時に出力もすれば良い。
mapM_ (\line -> hoge hash line >>= putStrLn) $ line cs

元のコードのように、値を生成する部分(mapM hoge)と利用する部分(putStrLn)をプログラム上で分離したい場合は
多少の工夫がいる。例えば、入出力をしながらa型の値を生み出すジェネレータを次のように定義して、
newtype Generator a = Gen (IO (Maybe (a, Generator a)))
mapMで[String]を生み出す代わりにGenerator Stringとして記述するとか。
ただし、標準のリストと違って操作関数が用意されていないので面倒ではある。



420 名前:413 mailto:sage [2006/12/04(月) 14:08:07 ]
>>419
そうか、なるほど、mapM_の中で完結させれば良かったのか・・・。
mapMの返り値を受け取って処理しないといけない、って思いこんでた。
なんて頭が固いんだ、俺はorz
ジェネレータを使って云々かんぬんってのはまだ理解できないので、もっと勉強してみるよ。
ほんとにありがと!

421 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 11:29:31 ]
417を読むまで、doの中に列挙されているものは上から下へ遅延評価されるものだと思ってたorz
getContentsは例外なのね・・・。GHCのソースを見たらunsafeInterleaveIOを使ってたよ。


422 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 17:55:53 ]
本スレを見たあとこっちに来るとなんかほっとする

423 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 18:16:27 ]
んじゃ、そろそろ圏論勉強会をここではじめるか

424 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 18:36:06 ]
AAで頼むわ

425 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 18:42:03 ]
>>423
仕切ってくれるの?
ちょっと期待

426 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 19:18:52 ]
AAじゃなくてもたのむわ
この間友達に訊かれて、Haskell使いでないけど興味持った。

427 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 20:28:19 ]
2ちゃんっぽい解説をわくてかしながら待ってますよ


428 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 21:32:19 ]
おまいら、なんで本スレに行かないんだよw

429 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 00:00:51 ]
だって本スレ2chのノリじゃねーんだもん



430 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 00:12:22 ]
あそこは2chじゃねーよなw

431 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 00:21:23 ]
あそこはプログラミングする気が無い奴らに犯されてしまった
今からここが本スレになります






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<244KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef