[表示 : 全て 最新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

477 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:59:18 ]

             ∩___∩
             |ノ⌒  ⌒ ヽ
             / ●)  ●) |
        Let's  |   ( _●_)  ミ  Haskell♪
            彡、  |∪| 、`
              /  ヽノ  ヽ
             / 人    \\   彡
           ⊂´_/  )    ヽ__`⊃
                / 人 (
               (_ノ (_)

478 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:00:25 ]

            A    B


    ∩___∩   /)
    | ノ      ヽ  ( i )))
   /  ●   ● | / /
   |    ( _●_)  |ノ /
  彡、   |∪|    ,/
  /    ヽノ   /´    ここにオブジェクトAとオブジェクトBがあるクマ


479 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:02:12 ]

           A  →  B


   ∩___∩    
   | ノ      ヽ  
  /  >   < | じつはAさんはBさんを好きなんだクマ
  | //// ( _●_)  ミ
 彡、     l⌒l  ノ
 / __  \ \ヽ
. (___)   \__)


480 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:07:27 ]

   ∩___∩
   | ノ      ヽ
  /  ●   ● |   と、いうように
  |    ( _●_)  ミ   ある対象とある対象がなんらかの関係をもっていることを
 彡、   |∪|  、`\   圏論では「射」と言うクマ
/ __  ヽノ /´>  )
(___)   / (_/
 |       /
 |  /\ \
 | /    )  )
 ∪    (  \
       \_)


481 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:09:55 ]

   ∩___∩
   | ノ      ヽ      A → B
  /  ●   ● |
  |    ( _●_)  ミ  この場合、Aさんを「ドメイン」、Bさんを「コドメイン」と言うクマ    
 彡、   |∪|  、`\


482 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:15:49 ]

      ∩___∩    
      | ノ  _,  ,_ ヽ  
     /  ●   ● |     別にBさんを好きじゃなくてもいいんだクマ
     |    ( _●_)  ミ     Bさんを嫌いでもいいし
    彡、   |∪|  ノ       BさんはAさんの嫁でもいいし
⊂⌒ヽ /    ヽノ  ヽ /⌒つ    AさんがBさんをレイ-プする、という関係でもなんでもいいクマ
  \ ヽ  /         ヽ /
   \_,,ノ      |、_ノ


483 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:19:20 ]

   ∩___∩
   | ノ      ヽ
  /  ●   ● |     A → B
  |    ( _●_)  ミ      ココ!! 
 彡、   |∪|  、`\
/ __  ヽノ /´>  )   この図では「→」がAさんとBさんの関係を表してるクマ
(___)   / (_/    関係というものには方向性が付き物なんだクマ
 |       /         
 |  /\ \        この「関係を表した矢印」こそが「射」クマー!
 | /    )  )
 ∪    (  \
       \_)


484 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:20:05 ]
てらわかりやす

485 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:21:35 ]


    まだまだ続クマ?
\   ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
  \(⌒-⌒)   o       (´⌒(´
   (・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
          ̄ ̄     (´⌒(´⌒;;
      ズザーーーーーッ





486 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:40:43 ]

              / ̄)
     ∩____∩. |  |   AさんからBさんへの「射」は1つとは限らないクマー!
     | ノ        ヽ.|  |
    /  ●   ● ||  |      くニ} {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{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj{fj「エロエロ射」」
     /  ,へ        ̄ ̄`ヽ
      /  /  \    t──┐  |
    (__/     >   ).   |  |_
             /  /   (___)
           (  \
            \__)


487 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 02:56:02 ]

 、   l   _,                 
  ヽ/⌒ヘ~                 
  ., 't,_,ノ丶   ∩、     ∩   
 /  !   '`  |   '──-' '\    
        ,/ ●       'i,
       /    ( _●_) ●   i,  
       彡     しノ     ミ    あたまをやわらか〜くするクマ〜
      |`:、\     'ii   __,/    
      'i、 ̄~~     ij  乙__ノi       
       ^-ァ        __,ノ      
     r^~"i'        'l
     !、 !         l       
      ~^''!,   ,_    ,!_       
         \ l,~^''‐--::,,⊃ ) ) ) )   
            `'‐’              


488 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:02:26 ]

            X  Y  Z       


    ∩___∩   /)
    | ノ      ヽ  ( i )))
   /  ●   ● | / /
   |    ( _●_)  |ノ /
  彡、   |∪|    ,/
  /    ヽノ   /´    ここにオブジェクトXとオブジェクトYとオブジェクトZがあるクマ


489 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:06:57 ]

      ∩____∩    
      /         ヽ    X → Y  YさんはXさんのいとこクマ
     /  ●   ●  |    Y → Z  ZさんとYさんのいとこクマ
     |   ( _●_ )   ミ   
    彡、,,   |∪|   /  
    /__  ヽノ   l\   
   (___u)    (uニ ).  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


490 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:09:49 ]

|:::::::::::::::::::::::::::::::
|" ̄ ゙゙̄`∩::::::::::::::::
|,ノ  ヽ, ヽ:::::::::::::::::::::::::       X  →  Y
|●   ● i'゙ ゙゙゙̄`''、::::::::::::::::          
| (_●_)  ミノ  ヽ ヾつ::::::::::          ↓
| ヽノ  ノ●   ● i::::::::::      
{ヽ,__   )´(_●_) `,ミ:::::::             Z
| ヽ   /  ヽノ  ,ノ::::::
あれ?XさんとZさんは・・・いとこ?


491 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:17:59 ]

                   ∩─ー、
                 / ● 、_ `ヽ
                /  ( ●  ● |つ
                |  /(入__ノ   ミ 所詮、XとZが
                 、 (_/   ノ    いとこだろーと、はとこだろーと
                 \___ノ゙      関係ないのさ・・・
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::   ただひとつ言えることは
               / /へ ヘ/ /:::    XからZへのなんらかの関係があるかもしれない
               / \ ヾミ  /|:::     ってことだ
              (__/| \___ノ/:::
                 /    /:::     これを圏論では射の「合成」と呼ぶ
                 / y   ):::
                / /  /:::
               /  /::::         X  →  Y
              /  /:::::                
             (  く::::::::                  ↓
              |\  ヽ:::::   
                |  .|\ \ :::::               Z
          \    .|  .i::: \ ⌒i::
          \   | /::::   ヽ 〈::     [XからZへの矢印が考えられる]
              \ | i::::::   (__ノ:
              __ノ  ):::::
            (_,,/\


492 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:19:52 ]

|
|.-──-、
| : : : : : : : : \
|: : : : : : : : : : : ヽ
|-…-…-ミ: : : : :',
| '⌒'  '⌒' i: : : : :}
| ェェ  ェェ |: : : : :}
|   ,.、   |:: : : :;!    どこで出ていこうかな・・・・・
| r‐-ニ-┐| : : :ノ
|! ヽ 二゙ノ イゞ‐′
| ` ー一'´丿 \
| \___/   /`丶、
| /~ト、   /    l \


493 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:50:43 ]

                        ,..-──- 、
                     /. : : : : : : : : : \
関数Xは               /.: : : : : : : : : : : : : : ヽ
クラスYを引数にする       ,!::: : : :,-…-…-ミ: : : : :', 
X(Y)                 {:: : : : :i  \ / i: : : : :}
ちなみにYは            {:: : : : | ェェ  ェェ |: : : : :}  合成のほかの例え!!
Zという属性を.    , 、  .   { : : : :|   ,.、  .. |:: : : :;! 
持っている      ヽ ヽ.  _ .ヾ: :: :i r‐-ニ-┐ .| : : :ノ 
              }  >'´.-!、ゞイ! ヽ二゙ノ イゞ‐′
              |    −!   \` ー一'´丿 \ 
             ノ    ,二!\   \___/   /`丶、
            /\  /    \   /~ト、   /    l \
           / 、 `ソ!      \/l::::|ハ/     l-7 _ヽ


494 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 03:52:45 ]

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


495 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:10:53 ]

     _ /- イ、_     
  /: : : : : : : : : : : (   
 /: : : : ::;:;: ;: ;:;: ; : : : ::ゝ;  関数X  →  クラスY
.{:: : : :ノ --‐' 、_\: : ::}         
.{:: : :ノ ,_;:;:;ノ、 ェェ ヾ:                ↓
.l: :ノ /二―-、 |: ::ノ..       
 | //   ̄7/ /::ノ               属性Z
. 〉(_二─-┘{/
/、//|  ̄ ̄ヽ
わかんないかなコレ・・・




496 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:14:39 ]

class X {
 method( Y ) {}
}

class Y {
 Z z;
}

class Z {}


497 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:38:27 ]
 
                                     \  i /
                                    ─── ・ ──  ← ヌッケ
                       ̄ 二─ _          // | \
                          ̄ 、  - 、      / / |
                           -、\   \  /  /
                             \\   \
                  /         \ヾ ヽ     ヽ
                 /         \ ヾ、 |       i
  クマソッ          //          |! `i        |
             ///           |         |
            / (              |         |
           <_,へ 丶-、           |         |
        __●_ rm \   \         |! リ        |
      / ヽ-'⊇) ̄`ヾ    │         /    |    |
    ⊂/ ●           /\_,.-、     / /  /    /
     │            /\  /   _/ / /  //
    ⊂丿     ミ   (⌒)   ̄      /  / /
      \__ミ  / /         //_ /
           \_/        _二─


498 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:39:35 ]

  A → B → C    H

  ↓   ↑   ↑   ↓
    
   D   E → F → J

  ↑        ↑
 
  G   H → I       くまー
                r -、,, - 、
            __    ヽ/    ヽ__
  くまー     ,"- `ヽ, / ●     l )
         /  ● \__ (● ● i"
        __/   ●)      ̄ )"__ "`;
      .(_i  ●    ' __, '"  ̄`'(___/.i⌒i
        丶_ ,i⌒i,,_(_/    ● i ̄ ̄ )_|__
      __, '"   ̄ ヽ! ● ●)  ミ~ ̄_● ヽ)
くまー   (_/     ● i    ∪  / ⊂{●  | くまー
       l ●( _●) (  ̄)-    /   -'  i
     /ヽ、   |∪l   T      i     ● '")
               くまー

499 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:43:17 ]

    i⌒i⌒i
    |    ヽ
   /   人__ヽ∩
  /  /       ヽ    >>498のように人間は人間同士いろんな関係をもってるクマ
 /  /  ●   ● |      物事だってそうだクマ
 (   |    ( _●_)  ミ      コレとかアレのいろんな関係で成り立っているクマ     
  \  彡、  |∪|   (            
   \    ヽノ   `ー´⌒\     
     \          /\  \、     
      \       /   (     ̄)  
        \     |   ( ̄ ̄ ̄ ̄) 
          \   ヽ/  / ̄ ̄
            \__/  
                   
       

500 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 04:48:31 ]
       
             ∩___∩
            /  ノ   \  ヽ
         | ●    ● |     
           彡  (_●_)    ミ
            /、  |∪|    ,\    複数の「対象」と複数の「射」の集まり
      , -‐- くJ( ヽノ   ゝ-rr- 、、      ~~~~~~      ~~~~~
     /Y  ,r 、 `ー r'"^〃 、  つヒヽ   これこそが「圏」 = 「カテゴリー」
    ,ノ '^` i! =テミ i' 天ニ  ミ、 ='"^ヾ }
   ,/ ''=''" ノ-‐'ヾ-人,,__ノnm、''::;;,,  イ  
  i!   ,∠-―-、、     `ー'フヾ、  j  圏論(カテゴリー論)の基礎となるものだクマ
  f'´    ノし   `丶、 ー=ミ-JE=-  /
  ヾ=ニ- 彡^ 〃   ,,>、、`''ー-::,,_,,ノ
    ``ー--┬:, ''"~´フ ソ´`7'' ''"´
         ,に (`゙゙´ノ   f^ヽ
        ,ハ    ,ィ'   ,;-ゝ、
        /ミ`ーt!,_,ィ-‐彡''"^ヽ
        /  ヾ::::::::::::::::r''"  ぃ ;}
       l   t:::::::::::/    ノ /
       l!   `'T7′   / /


501 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 05:06:35 ]

  圏(カテゴリー)
┏━━━━━━━━━━━━━━━━━━━━━┓
┃クマー        クマー      クマー     ┃
┃~~~~~~        ~~~~~~      ~~~~~~     ┃
┃ ↑[神]       ↑[神]        ↑[神]   ┃
┃      [好き]         [好き]        . ┃
┃ A君   →   Bちゃん   → .  C君     ┃
┃ ~~~~       ~~~~~~~~       ~~~~~ . .  ┃
┃            ↑[好き]       ↓[爆破] ┃
┃     .     .       [保有]         ┃
┃    .  .      D君    →   フェラーリ ┃
┃            ~~~~        ~~~~~~~~~~  ┃
┃            ↓[ペット]  .          .┃
┃      [同類]              .       .┃
┃ヌッケ   ←    犬                 .┃
┃~~~~~~        ~~~               .  ┃
┗━━━━━━━━━━━━━━━━━━━━━┛


502 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 05:16:08 ]

【まとめ】

┏━┓ 射 ┏━┓
┃.A.┃ → ┃.B.┃
┗━┛    ┗━┛
 対象     対象
(ドメイン)  (コドメイン)


上の図が基本要素
これが複数あつまり関係しあったものを圏という


503 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 05:20:23 ]

           ふぅ、つかれたクマー

            ∩___∩
            | ノ      ヽ        (   )
           /  ●   ● |     (  )
        __|    ( _●_)  ミ__   ( )
        (_. 彡、   |∪|  、`__ )─┛
      /  / ヽ   ヽノ  /_/:::::/    
      |::::::::::| / ( ̄ ̄ ̄ヽ  |:::::::| ̄
      |::::::::::| |   ̄ ̄ヽ .ノ |:::::::| /
    / ̄ ̄旦 ̄ ̄ ̄ ̄ ̄ ̄ ̄/|/
  /__________/ | |
  | |-------------------| |


504 名前:デフォルトの名無しさん [2007/02/25(日) 09:49:35 ]
これは分かりやすいw

505 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 12:04:29 ]
GJ!!




506 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 08:23:38 ]
>>502
それがちょっと違う。
たとえば
A → B → C という2つの射があったときに
ここでA → Cという上の2つの射の*合成*が定義されてなかったら圏にならない。
すべてのコドメインとドメインが一致する射の組について合成が定義される
場合について、その全体を圏と呼ぶことが出来る。

↑のAAもがんばってくれw

507 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 19:20:21 ]
オーム社から「クマでわかる圏論」マダー?

508 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 23:59:49 ]
>>506
あー、なるほどね。そういう条件が必要だったのか。
Wikipediaのこの文章をみてちょっと理解しきれなかったんだな。

>圏 C についてその射(と射の合成可能性)だけでも全部わかっていれば、
>そのうちで恒等射になっているものが対象を示しているので著者によっては
>上の公理を満たす射の集まりを持って圏と定義することもある。

恒等射ってのがなんなのかわからん。ググっても出てこないし!

>>507
クマーとかを本に使って金もらうと炎上しそうだなw

509 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 02:24:05 ]
クマーはGPLってことで

510 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 03:06:50 ]
>>508
恒等射っていうのはドメインとコドメインが等しくて、
何回合成してもそれ自身と等しくなるような射。
圏のすべての対象について、一個ずつ恒等射があること
が必要。逆に言うと、恒等射があるとそれに対応する
対象がちょうどひとつあるので、恒等射と対象は
1対1に対応している。(したがって、人によっては、恒等射を
対象そのものとみなすって言うのが↑の記事、、

511 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 03:15:03 ]
>>510
冪等射と恒等射は別じゃないか?

512 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 04:11:06 ]
あ、そうだわ、・・・集合の圏とかだと冪等射がたくさん・・・orz...

だから、上の条件にプラスして、他の任意の合成可能な射
と合成して相手を変化させないという条件も必要。

ちゃんと書くと、
1:A→Aという射で他の任意の射
f:A→Bと合成して、f1=f
g:C→Aと合成して、1g=g
となるようなもの、・・・

513 名前:デフォルトの名無しさん [2007/03/18(日) 18:43:55 ]
臨時あげ

514 名前:デフォルトの名無しさん [2007/03/18(日) 18:46:41 ]
ここで、Stringableの是非を議論すればいいのか?

515 名前:デフォルトの名無しさん [2007/03/18(日) 18:47:12 ]
馬鹿が本スレ埋めやがったな



516 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 18:47:46 ]
止めれw
次スレが立つまでの避難所ということで

517 名前:デフォルトの名無しさん [2007/03/18(日) 18:54:27 ]
よく読むとアンチスレなのにまともな議論されてるなw

518 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 19:01:05 ]
pc11.2ch.net/test/read.cgi/tech/1174211797/
立てた。

519 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 19:07:59 ]
>518
乙!

520 名前:デフォルトの名無しさん [2007/03/25(日) 15:03:44 ]
型が充実してるって言うから、ちょっと勉強してみたけど、
簡単に実行時例外が発生するじゃん。なんだよこれ。

コンパイルが通れば論理的な誤り以外、
ほとんどバグが取れてるのかと思ったのに。 

実行時に読み込むデータとかの誤りなら仕方ないにしても、
そんなのない静的にすべて決まってるプログラムでも
実行時例外が起きえるなんて、全然だめじゃんwww

521 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 19:04:34 ]
>>520
ボトムのことかな?

522 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:12:50 ]
>>520
例外を起こす可能性のある関数を使わなきゃいいんじゃない?
あるいは、もっと型の強い言語を使ったらどうよ。

523 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 21:53:28 ]
暗黙でも何でも良いから
関数毎の定義域に合ったサブタイプを作るとか、
なんとかならんのかね。

もっと型の強い言語ってどんなの?

524 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 01:54:12 ]
Cじゃね。

525 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:33:01 ]
Cほど型の緩い言語もないだろ。



526 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 10:43:07 ]
Cは緩いけど硬直的

527 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 16:44:20 ]
Dじゃね。

528 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:44:47 ]
void*

529 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:35:13 ]
日本拳法が一番厳格だと思うよ

530 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:05:02 ]
あんまり深く使い込んだわけじゃないけど
俺が出会ったランタイムエラーは
パターンマッチの場合分けの漏ればかりだった。

型がらみで実行時エラーってでる可能性はあるの?

531 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:40:55 ]
>>523
>もっと型の強い言語ってどんなの?
依存型のある言語とかじゃないか?実用化されてるのか知らんけど。

>>530
head []とかdiv 1 0とか。

532 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 20:45:02 ]
計算停止性を決定可能にした天才の>>520がいると聞いて飛んできましたよ。


533 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 21:19:17 ]
依存型って型に普通の値を突っ込めるようなもの?
とすると類に普通の型が混ざるわけ?

534 名前:530 mailto:sage [2007/03/27(火) 21:26:28 ]
>head []とかdiv 1 0とか。

div 1 0は型エラーじゃないじゃん。
head []も型システムの責任なのかい?

そうか
型に値域を限定する機能があればいいのか?

div :: (Num a) (Num b:ただし0を除く) => a -> b -> a
head :: [a] ただし[]を除く

みたいな。

でもどうやっても静的にはチェックできそうにない orz

535 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 21:59:15 ]
{-# OPTIONS_GHC -fglasgow-exts #-}

data ZeroT = ZeroT
data SuccT a = SuccT

data Nat n where
  Zero :: Nat ZeroT
  Succ :: Nat n -> Nat (SuccT n)

data List a n where
  Nil :: List a ZeroT
  Cons :: a -> List a n -> List a (SuccT n)

myhead :: List a (SuccT n) -> a
myhead (Cons x xs) = x

mydiv :: Nat n -> Nat (Succ m) -> {- ...型が書けねえ -}



536 名前:保守 mailto:sage [2007/05/26(土) 18:36:56 ]
破壊的代入を使ったら負けかなと思う

537 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 20:43:18 ]
勝ち負けを意識した時点で既にアンタ負けてるよ

538 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:19:22 ]
>…負けてるよ
って言ってるアンタも勝ち負けを意識してるんだから、負けてるよ。


539 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:32:17 ]
俺みたいな奴は勝つ必要なんてねえんだよ

540 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 21:02:25 ]
勝とうよ。haskellがあれば勝てるよ

541 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 00:08:21 ]
けどHaskellって正直なところ負け組だよ

542 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 02:59:58 ]
関数型言語パスカル

543 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 03:24:30 ]
>>543

544 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 03:25:27 ]
            >>544

545 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:16:38 ]
ふつケル読んだけど、後半が理解できなかった。マジで難しい。
言語の設計の根っこがCPUの挙動にぜんぜん当てはめられていないからか、
俺には宇宙語だよこりゃ…。



546 名前:デフォルトの名無しさん mailto:sage [2007/08/22(水) 21:36:33 ]
当てはめられないかもしれないが
C言語もCPUの挙動に当てはめられるかというとそうでもない
そもそもソフトウェア設計用だからな

547 名前:偉そうに語ってみる mailto:sage [2007/08/23(木) 01:19:28 ]
>545
後半、モナドやWikiエンジンの開発のところは急に難易度が上がっているので、
それより前の部分を何度も読んで動かしていると感じがつかめてくると思います。

あとは、メモリとかスタックとか、効率のことを考えるのをひとまずやめて
プログラムでどういうことをやりたいかを考えてみるのはどうでしょうか。


548 名前:デフォルトの名無しさん mailto:sage [2007/08/23(木) 02:46:56 ]
おまえ偉そうだぞ

549 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 01:14:22 ]
えっへん

550 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 09:02:27 ]
つ[龍角散]

551 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 13:01:13 ]
>>550
龍角散は「ゴホン!」だろ
エヘン虫にはヴィックスドロップ。

552 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 09:39:44 ]
高度すぎてわからなかった^^;;

553 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:11:49 ]
クマーが圏論を語ってる、、、。

554 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 23:12:36 ]
MLと比べてどうなの?

555 名前:デフォルトの名無しさん mailto:sage [2007/10/08(月) 21:16:41 ]
クマー落ち防止保守



556 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 02:30:14 ]
ttp://2ch.bluesvirus.com/reserve/view/172

557 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:25:03 ]
>>10
頭の中に同型対応になるものがたくさんあるってことだから
少なくともアホじゃないだろう

558 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:27:08 ]
>>557
あの手の輩は「これは非直感的だからウンコ」て台詞の方が圧倒的に多いよ


559 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 00:28:42 ]
何この良スレ
スレタイでスルーしてて後悔した

560 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:30:08 ]
もっと活用できたらいいんだがなぁ・・・

561 名前:560 mailto:sage [2007/11/20(火) 21:31:14 ]
>>560
560はスレのことね

562 名前:デフォルトの名無しさん mailto:sage [2007/12/11(火) 07:32:07 ]
sage

563 名前:デフォルトの名無しさん mailto:hage [2007/12/23(日) 03:41:42 ]


564 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 11:22:42 ]
クマさんのArrow講義マダ?

565 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 13:33:30 ]
arrow って命令型言語的なフローを書くための機構なんだよね?重要なの?



566 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:23:36 ]
ぶっちゃけ>>8が理解できなくて劣等感にさいなまれた。
でもHaskellをかじったら理解できた。
その経験からつまずいた点を書いてみる。

qsort [] =
qsort (x:xs) =
とqsortの定義が2つ並んでいるのが理解できなかった。

これはHaskellの階乗を見て場合分けだと理解した。
fact 0 = 1
fact n = n * fact (n - 1)

int fact(int n) {
if (n == 0) return 1;
else return n * fact(n - 1);
}

567 名前:566 mailto:sage [2007/12/29(土) 12:45:46 ]
[]が意味不明だった。
配列を[1, 2, 3]と書くと知って初めて空配列だと理解できた。

(x:xs)が意味不明だった。
他の部分で配列はすべて[]なのにここだけ()なのに違和感があった。
()はfact(n-1)のn-1と同じでx:xsが一つの要素だとくくっていると解釈した。
この辺はC言語だとコンマで区切るような所が空白で区切られているため
意識しないといけない部分だというように感じた。
そして++が配列の結合だと覚えた上で、
x:xs とはxが要素でxsが配列で [x] ++ xs という意味だと解釈した。

qsort elts_lt_x ++ [x] ++ qsort elts_greq_x
の構文木が初見でイメージできなかった。
演算子++の優先度が高いため A ++ B ++ C と3つの配列が結合していると解釈した。
C言語風にqsort(elts_lt_x) ++ [x] ++ qsort(elts_greq_x)と書いてあれば
初見でも自力で解釈できたかもしれない。

>>10のいうように自分の知っているC言語に近いかどうかというバカの壁がある。
だからと言ってC言語を知らない人の方が先入観がなく理解しやすいとは思えないが。

568 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:55:10 ]
>>567
[1,2,3]は配列じゃなくてリスト
配列とリストの違いはググレ

569 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:57:10 ]
文法を知らなきゃ理解できんのは当然だろ

それから、細かいが、
>演算子++の優先度が高い
低い、の間違いだよな?

570 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:58:12 ]
>>10
「自分が知ってるものと似てる」=メタファ
「見たら使い方がわかる」=アフォーダンス

571 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 12:58:27 ]
配列とリストなんて計算量が違うだけじゃん。
初心者は気にしなくていいよ。

572 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:00:14 ]
>>571
だったらお前はmalloc,freeひたすら繰り返してろ

573 名前:566 mailto:sage [2007/12/29(土) 13:01:50 ]
>>569
小学校で1+2*3のとき+より*の優先度が高いと習ったと記憶していますが
これはひょっとして大間違いですか?

574 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:03:26 ]
>>573
どこに+と*が出てきてるんだ?

575 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 13:05:15 ]
>>573
もし(++)の優先度が関数適用より高いなら、
qsort elts_lt_x ++ [x] ++ qsort elts_greq_x
は、
qsort (elts_lt_x ++ [x] ++ qsort) elts_greq_x
と解釈されるはずだよ。



576 名前:566 mailto:sage [2007/12/29(土) 13:07:20 ]
>>574
Haskellとは関係なくて「優先度が高い」という言葉の定義の確認で、
+と*を比較すると*が優先度が高いという言い回しが正しいかどうかです。

>>575
すみません、それ以前のレベルで、
優先度という言葉の定義があやふやでした。

よく考えたら++の優先度が低いという意味が理解できました。
1+2*3で+は後で計算していますがqsortでの++もそれと同じですね。

混乱してしまってごめんなさい。

577 名前:566 mailto:sage [2007/12/29(土) 13:14:41 ]
>>568
ご指摘ありがとうございます。
日本語のHaskell本を2冊とも買ったのでよく勉強します。

>>569
それはそうなんですが、自信たっぷりな>>8の書き方を見て、
普通の知能の人間なら文法も含めて推測できるはず
それができない俺はアホだ。
という劣等感を感じたんです。

色々とつまずきましたが、読み方が分かるようになると、
Haskellのインデントの文法はとても美しいと感じられるようになりました。
今まで好きだったPythonが糞に思えてきました。






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

前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