トップページtech
1001コメント316KB

関数型プログラミング言語Haskell Part21

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/01/21(月) 02:16:16.07
haskell.org
ttp://www.haskell.org/

日本語サイト
ttp://www.sampou.org/cgi-bin/haskell.cgi
ttp://www.shido.info/hs/

過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
Part18 ttp://toro.2ch.net/test/read.cgi/tech/1331902463/
Part19 ttp://toro.2ch.net/test/read.cgi/tech/1340760070/
Part20 ttp://toro.2ch.net/test/read.cgi/tech/1350428908/
0685デフォルトの名無しさん2013/03/06(水) 21:03:09.41
>>679 など
このスレはなんかデリケートなオタクが多いようだな
0686デフォルトの名無しさん2013/03/06(水) 21:06:22.10
また来たのかおっさん
0687デフォルトの名無しさん2013/03/06(水) 21:07:03.58
ナイーブだな
0688デフォルトの名無しさん2013/03/06(水) 21:08:42.80
>>684
(´・ω・`)
0689デフォルトの名無しさん2013/03/07(木) 04:10:12.84
>>583
精神的な不義理ってなんだよ
0690デフォルトの名無しさん2013/03/07(木) 07:25:13.65
いまだに「敷居が高い」に突っ込み入れる阿呆居るんだな
0691デフォルトの名無しさん2013/03/07(木) 09:15:52.79
Haskellスレらしくていいじゃないか
0692デフォルトの名無しさん2013/03/07(木) 09:40:40.92
関数型言語は那珂太郎の詩のようなところがあるから。
..の..の..の..の..の..の..の..の..
0693デフォルトの名無しさん2013/03/07(木) 13:14:36.66
>>679
前スレよりはマシだよ……
0694デフォルトの名無しさん2013/03/07(木) 13:15:56.88
Haskellを汎用CPUで動かすの効率どうなの?
そういう最適化の準備あるなら専用プロセッサあった方がいいんじゃないの?
0695デフォルトの名無しさん2013/03/07(木) 13:20:28.26
GHCについて言うなら、基本設計からstock hardwareで最適に設計されてるので、
あまりそういう改善の余地は少ない。
0696デフォルトの名無しさん2013/03/07(木) 13:26:46.67
(´・ω`・)そうなんだー
0697デフォルトの名無しさん2013/03/07(木) 17:45:45.03
679が泣いたりするからつまらんくなったな
なんか言えよおまえら
0698デフォルトの名無しさん2013/03/07(木) 17:50:31.81
ソフトウェアトランザクショナルメモリの欠点について教えて
0699デフォルトの名無しさん2013/03/07(木) 18:46:50.69
口に出すと読みにくい
0700デフォルトの名無しさん2013/03/07(木) 21:33:41.08
遅い
0701デフォルトの名無しさん2013/03/08(金) 00:24:53.46
(´・ω`・)そうなんだー
0702デフォルトの名無しさん2013/03/08(金) 01:49:14.17
なんだその顔は!ふざけてんのか!
0703デフォルトの名無しさん2013/03/08(金) 02:11:11.39
  \|/
  /⌒ヽ   
  | ゜Θ゜) そうなんだー
  |  つ 
  | 噤@|
  \_/
0704デフォルトの名無しさん2013/03/08(金) 09:51:59.79
組み込みHaskell

http://leventerkok.github.com/hArduino/
0705デフォルトの名無しさん2013/03/08(金) 11:48:49.71
http://this-plt-life.tumblr.com/post/44462204757/simon-peyton-jones-adding-the-io-monad-to-haskell
0706デフォルトの名無しさん2013/03/08(金) 18:53:56.06
おっさんがいないと、何をしても心から楽しめないの、、、
0707デフォルトの名無しさん2013/03/08(金) 20:36:19.00
これってもしかして……恋?
0708デフォルトの名無しさん2013/03/09(土) 05:49:08.73
  ξ          ゞシヾ"  ヽ         ,,,....,,,、、...,,,....,,
  !           彡       ヽ:::     ..i'´.        ヾ'''、、、,,,
   シ          彡       ,j:::   ..,/ヾ,            ヽ
   !シ         ,,彡       :シ  ,;''''   ヾ   ,___       ヽ
    j  ,-‐-、   i    ッ三ミ:;j i、'  j-‐    `, , ‐'' = )       ヽ:
     し { !⌒- ヽ! j     ‐-‐'j ヽ、...'       '  .,_//,        !;::
     ヾ丶`-'  ! !        {__,__,!'         -‐' ヾ       ノ:::
      ,ヾ  '  、       ,'  ....,)        ::     ヽ     ノ::::::
 _...-‐‐'''´ :::            ´::(      _... ´       ヽ    /:::::::
        ::              ! .... -‐´           ヽ   /:::::     __,....,,-‐-、
 ::::.       ヽ   !......:-‐ー、 ,,,,,,;;;ヽ __ ...-‐、     ::     `ヽ-、___,--/'´ ,、   , `ヽ、
            !:::,´´´´´:::::`"""´:::::::::::::::;;;;;;;;ヽ、    ;::           ヽ-‐' !  ./   iヽ
07097082013/03/09(土) 05:49:42.46
誤爆しました・・・申し訳ありません
0710デフォルトの名無しさん2013/03/09(土) 07:50:42.74
"nを法とする剰余類環"の型って作れないのかなあ…
"Mod 12" 自体が型になってるようなの( C++風に書くと"Mod<12>" )
でも12の部分は型名じゃなくちゃいけないんだから無理か
0711デフォルトの名無しさん2013/03/09(土) 08:08:22.08
TH を使えばいけるかも あるいは
data Zero
data Succ a

的なのでゴニョゴニョ
0712デフォルトの名無しさん2013/03/09(土) 09:03:13.45
>>710
GHC7.6ならDataKinds拡張で12を型として使える
でも型レベルの加減乗除はまだ実装されてないのでまともに使えるかは知らん

{-# LANGUAGE DataKinds, KindSignatures, ScopedTypeVariables #-}
import GHC.TypeLits

newtype Residue (n :: Nat) = Residue Int {- invariant: 0<=x<n -}
 deriving (Eq, Ord)

-- smart constructor
residue :: forall n. (SingI n) =&gt; Int -&gt; Residue n
residue a = Residue $ mod a $ fromIntegral n
 where
  n = fromSing (sing :: Sing n)

instance Show (Residue n) where
 showsPrec p (Residue x) = showsPrec p x

instance SingI n =&gt; Num (Residue n) where
 Residue x + Residue y = residue $ x + y
 Residue x - Residue y = residue $ x - y
 Residue x * Residue y = residue $ x * y
 signum (Residue 0) = 0
 signum _ = 1
 abs x = x
 fromInteger = residue . fromInteger

main = do
 print (3 + 4 :: Residue 2)
 print (3 + 4 :: Residue 3)
 print (3 + 4 :: Residue 4)
0713デフォルトの名無しさん2013/03/09(土) 09:17:24.88
ほいな
http://ideone.com/O243Zk
0714デフォルトの名無しさん2013/03/09(土) 11:21:45.67
質問です
ファイルをインポートしようとしたのですがエラーがこのようにでました。
Could not find module `Dates'
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
Dates.hsでは
module(
--- data や 関数
) where
のように外部からアクセス出きるようにして、
インポート側はimport Datesを最初の行にいれています。何がいけないのでしょうか?
0715デフォルトの名無しさん2013/03/09(土) 12:03:57.56
>>714
Dates.hsを置いてるディレクトリと、GHCを実行してるディレクトリは同じになってる?
もし違うなら、-iとかを渡さないといけない
0716デフォルトの名無しさん2013/03/09(土) 14:22:34.44
同じディレクトリに移動してやったら出来ました。
ありがとうございます。
0717デフォルトの名無しさん2013/03/10(日) 03:59:11.20
みんなHaskellのことならなんでも知ってるな
0718デフォルトの名無しさん2013/03/10(日) 09:04:58.99
自分で言語を作るならどういう選択肢があるかを知ってる
Haskellの作者がどれを選んだかは知らないので後で調べる

他人が何をしたか調べる時間よりも、自分ならどうするかを考える時間の方が長い
0719デフォルトの名無しさん2013/03/10(日) 10:42:33.73
サーベイをさぼって「もうOlegがやってた」とかで数日無駄にするとかよくあった
0720デフォルトの名無しさん2013/03/10(日) 11:09:26.16
その代わり速読(笑)で数日短縮できるんじゃね
Olegが何を言いたいのか読む前から知ってるんだから
0721デフォルトの名無しさん2013/03/10(日) 17:15:35.63
以下をGHCiにロードすると' Parse error in pattern: n + 1'というエラーがでます
HUGでは通るそうなのですが何が悪いのでしょうか

drop2 :: Int -> [a] -> [a]
drop2 0 xs = xs
drop2 (n + 1) [] = []
drop2 (n + 1) (_:xs) = drop2 n xs
0722デフォルトの名無しさん2013/03/10(日) 17:34:47.51
>>721
(n+k)パターンはデフォルトでは使えなくなったような気がする。

あきらメロン
0723デフォルトの名無しさん2013/03/10(日) 17:36:49.41
NPlusKPatterns を指定
0724デフォルトの名無しさん2013/03/10(日) 17:40:50.58
{-# LANGUAGE NPlusKPatterns #-}

drop2 :: Int -> [a]->[a]
drop2 0 xs = xs
drop2 n [] = []
drop2 n (_:xs) = drop2 (n-1) xs
07257212013/03/10(日) 18:29:24.02
そうだったんですか
オプションが必要になるならあきらめマスクメロン
0726デフォルトの名無しさん2013/03/11(月) 15:13:22.76
関数内で関数定義するとテストできないよね?
みんなどうしてるの?
0727デフォルトの名無しさん2013/03/11(月) 17:03:19.41
テストが要るような関数をローカル定義にしないという解決法
0728デフォルトの名無しさん2013/03/11(月) 17:37:17.22
Javaだとリフレクション使ってprivateメソッドもテスト可能だが
Haskellの関数定義にはそのような抜け穴が存在しないのではないか
0729デフォルトの名無しさん2013/03/11(月) 18:01:03.80
テストが要るほどに非自明な関数はトップレベルに定義すればよい
0730デフォルトの名無しさん2013/03/11(月) 18:11:01.15
テストが困難になるのは使い道が無数にある場合だから
一回ぐらいしか使わないローカル関数のテストは難しくない
0731デフォルトの名無しさん2013/03/11(月) 18:15:33.54
ghc-modでローカル定義拾うのあるし
GHCにも穴はあるんだよ多分
0732デフォルトの名無しさん2013/03/11(月) 19:41:39.12
>>726
関数内で関数定義する場合に、
どういうテストが不可能だと言っているの?
0733デフォルトの名無しさん2013/03/11(月) 19:49:03.11
>>731
ローカル変数は、名前とソースの位置が同じだが値が異なる変数を何個も定義できるよ
トップレベルの変数を一個拾うのとは全然違う
0734デフォルトの名無しさん2013/03/11(月) 23:19:17.34
関数内関数までテストしたくないです
理由は、関数内関数には外部から見える仕様が存在しないからです
0735デフォルトの名無しさん2013/03/12(火) 07:57:44.38
大元の関数をテストすればいいんじゃないの?
0736デフォルトの名無しさん2013/03/12(火) 08:43:58.57
内部関数というのは、他の言語で言えばコードブロックみたいなものだからね
コードブロックの一つ一つまでテストする必要はないし、テストの必要があるほど大きなブロックなら独立させればいい
0737デフォルトの名無しさん2013/03/12(火) 08:58:22.30
Smalltalkだとメソッド内ブロック使わないと何もできない
その後、OOPにブロックは不要という考え方が定着し
OOPと関数型は完全に分裂した
0738デフォルトの名無しさん2013/03/12(火) 09:36:49.37
>>737
最近のOO言語はやっぱりクロージャが必要って流れになってるよ。JavaもC++も。
0739デフォルトの名無しさん2013/03/12(火) 10:43:28.34
三大やっぱり必要
テスト
public
lambda
0740デフォルトの名無しさん2013/03/12(火) 10:55:43.66
リフレクションかな
haskell-src-extsとか使ってローカル定義を参照できるようなツールがあればいける
0741デフォルトの名無しさん2013/03/12(火) 11:55:07.13
>>740
全力で成功を回避しろ
0742デフォルトの名無しさん2013/03/12(火) 12:41:31.93
>>737
その場合、SmalltalkはOOPと関数型のどっちの所属なんだ?w
今でもSmalltalkはブロックがないと何もできないわけだが。
0743デフォルトの名無しさん2013/03/12(火) 13:02:36.67
特定のクラスに所属しないユニバーサルな関数はOOPとは相性が悪い
プリミティブ型がOOPと相性が悪いのと同じ理屈
0744デフォルトの名無しさん2013/03/12(火) 13:14:10.01
>>743
そんなことないよ。Javaとは相性悪いけど、OO言語だからじゃなくて、Javaが糞だから。
0745デフォルトの名無しさん2013/03/12(火) 19:39:31.34
>>743
SmalltalkのクロージャーはSmalltalkと相性悪いの?
Smalltalkってクロージャーがないと条件分岐すらできないんだけど?
0746デフォルトの名無しさん2013/03/12(火) 19:53:49.06
HaskellとSmalltalk、唯一の共通点はモヒカンっぷり
0747デフォルトの名無しさん2013/03/12(火) 21:36:09.68
HaskellとSmalltalkはモヒカンの中でも最弱・・・
本物のモヒカンは静的型とGUIを否定する
0748デフォルトの名無しさん2013/03/12(火) 21:40:50.33
いまだにモヒカンの定義が良く分からんのだよなあ
0749デフォルトの名無しさん2013/03/12(火) 22:20:34.02
良く分からないものの擬人化
モヒカンの陰謀か何かで、分かるはずのものが分からなくなる
0750デフォルトの名無しさん2013/03/13(水) 01:52:45.11
>>745
クロージャーもクラスにできるんだけど、プリミティブなくせに抽象度が違うので、これをクラスとして扱いつづけるといろいろおかしくなる
0751デフォルトの名無しさん2013/03/13(水) 18:24:51.16
>>750
BlockClosureクラスだと何がいろいろおかしくなるの?
SmalltalkってBlockClosureクラスがないと条件分岐すらできないんだけど?
0752デフォルトの名無しさん2013/03/13(水) 19:19:43.13
もしかしてJavaの.classファイルがものすごい数になるのを心配してるんじゃないか
0753デフォルトの名無しさん2013/03/13(水) 19:24:19.19
>>743
どう相性が悪いの?
カプセル化する必要のない関数はクラスに所属させる必然性はないけど
それがOOPの妨げになる理由は?
それにnamespaceとかあるよね?
そのレスただ言いたかっただけに見えるよ
0754デフォルトの名無しさん2013/03/13(水) 20:37:45.01
クロージャをクラスにしても問題ないだろう
単にJavaみたいに1クロージャを1クラスに対応させるのが腐れなだけ
クロージャをリテラルにしてどのクロージャも同じクラスになれば問題なし
0755デフォルトの名無しさん2013/03/13(水) 21:08:47.67
ユニバーサルな関数やクロージャがOOPと相性悪いとか頭悪すぎだろw
Javaしか(もしくはJavaすら)知らないんだろうね
0756デフォルトの名無しさん2013/03/13(水) 21:35:41.02
「いろいろおかしくなる」ってなかなか趣深いフレーズだな
0757デフォルトの名無しさん2013/03/14(木) 00:24:02.48
>>753-754
・ OOPにおけるクロージャは飛び先が隠ぺいされる goto
・ クラスの遠隔に設置される場合は、名前がないのでクロージャのセマンティクスが明確に消失する (\x -> \x +1)は加算? 曜日のシフト?
・ (\x -> \x +1) と (\y -> \y +1) をそれぞれクロージャクラスのオブジェクトにしたときの同値判定
・ (\x -> \x + 1) 1 のとき、 アプライが必要になってクラス表現するときとプリミティブのときでセマンティクスが崩れる ネストしたときのリフト
・ クロージャのオブジェクト生成がクラスのオブジェクト生成と同期しない
・ クロージャの生存期間がクロージャだけを見ても分からない
0758デフォルトの名無しさん2013/03/14(木) 00:42:03.34
頼むからちゃんとした日本語で書いてくれ
0759デフォルトの名無しさん2013/03/14(木) 01:16:40.42
これは早口言葉のようなもので
日本語の読み書きの問題ではない気がする
0760デフォルトの名無しさん2013/03/14(木) 01:22:36.05
>>757
何が言いたいのかよくわからんから最大限エスパーして答えるけど、ほとんどOOPじゃなくてクロージャ自体の話に見える
例えばそれぞれlispのクロージャだと何故問題にならないの?
>・ OOPにおけるクロージャは飛び先が隠ぺいされる goto
そう言いたければ好きにすればいいけど、で?OOPとの関係も不明
>・ クラスの遠隔に設置される場合は、名前がないのでクロージャのセマンティクスが明確に消失する (\x -> \x +1)は加算? 曜日のシフト?
OOPと無関係
>・ (\x -> \x +1) と (\y -> \y +1) をそれぞれクロージャクラスのオブジェクトにしたときの同値判定
なぜ同値判定が必要なの?OOPとの関係も不明
>・ (\x -> \x + 1) 1 のとき、 アプライが必要になってクラス表現するときとプリミティブのときでセマンティクスが崩れる ネストしたときのリフト
何が言いたいのかわからん(何をクラス表現するのか、セマンティクスがどう崩れるのか、何をネストしてリフトするのか)
>・ クロージャのオブジェクト生成がクラスのオブジェクト生成と同期しない
「クロージャのオブジェクト(生成)」の意味がわからん。生成が同期しないことによる弊害も書かれてない
>・ クロージャの生存期間がクロージャだけを見ても分からない
OOPと無関係
0761デフォルトの名無しさん2013/03/14(木) 01:28:31.53
俺も頑張って>>757エスパーしたわ。>>760が答えてるけどエスパーした時間が勿体無いので投下。
・ OOPにおけるクロージャは飛び先が隠ぺいされる goto
→OOPでもオブザーバーパターン使うと飛び先が隠ぺいされる。
・ クラスの遠隔に設置される場合は、名前がないのでクロージャのセマンティクスが明確に消失する (\x -> \x +1)は加算? 曜日のシフト?
→(\x -> x.addNum(1))や(\x -> x.addDay(1))としたらいい。
・ (\x -> \x +1) と (\y -> \y +1) をそれぞれクロージャクラスのオブジェクトにしたときの同値判定
→参照の同値性を実装している言語はあるけど、それだけだとOOPとして困る状況ってある?あと「振る舞い同値性」や「α同値性」でググれ。
・ (\x -> \x + 1) 1 のとき、 アプライが必要になってクラス表現するときとプリミティブのときでセマンティクスが崩れる ネストしたときのリフト
→これは意味不明。
・ クロージャのオブジェクト生成がクラスのオブジェクト生成と同期しない
→「同期しない」が意味不明。newという構文を使わないから駄目だという話か?OOPでファクトリ使うときも使用側にnew無いけど。
・ クロージャの生存期間がクロージャだけを見ても分からない
→OOPもクラス定義だけ見ていては分からない。インスタンスへの参照がどこで消えるか注意深く追う必要がある。
0762デフォルトの名無しさん2013/03/14(木) 01:33:57.27
なんだこの最強エスパー決定戦は
0763デフォルトの名無しさん2013/03/14(木) 02:28:30.07
>>760
・ クロージャが特にOOPで飛び先が隠ぺいされる goto になる理由は、個性のないクロージャがオブジェクトに抽象化されてオブジェクト自身が持ちまわされるから
・ クラスの遠隔に設置される場合に名前がないのでクロージャのセマンティクスが明確に消失するという問題は、裏を返せば、クラスの遠隔に設置される場合と同じリテラスなのにセマンティクスが変わってしまうということ
・ クロージャのオブジェクトとしての同値判定は、クロージャをクラスにしなければOOPとは無関係
・ プリミティブの場合は (\x -> \x + 1)1 でOKだが、クラスにするとただ並べるだけではダメで クロージャのオブジェクトに1を適用するというステップが間に入り、セマンティクスが異なる
・ 他のクラスのオブジェクトと生成が同期しないことによる弊害はリソースを保持するコストの推定が難しくなること
・ クロージャの生存期間がクロージャだけを見ても分からない理由は、OOPではクラスのオブジェクトの生存期間の明示が難しいから
0764デフォルトの名無しさん2013/03/14(木) 02:45:02.81
>>761
OOPでもオブザーバーパターン使うと飛び先が隠ぺいされる。
→ここでの「隠ぺい」はコードを追って保守するのが難しいという意味

(\x -> x.addNum(1))や(\x -> x.addDay(1))としたらいい。
→このように、クロージャを利用するクラスの近くか遠くかにより必要となる記述が異なるので、ユニバーサルなクロージャとOOPは相性が悪い

参照の同値性を実装している言語はあるけど、それだけだとOOPとして困る状況ってある?
→メソッドの出力またはフィールドの値がクロージャのクラスを単体テストする場合

これは意味不明。
→「(\x -> \x + 1) 1」 と 「(インスタンス化(\x -> \x + 1)).apply(1)」 は字面が違うでしょ、という意味

「同期しない」が意味不明。
→リソースを消費するクロージャは、代入のときか、代入が予定されるクラスのオブジェクトが生成されたときか、実行されるときか、いつオブジェクト化されるかが問題になる

OOPもクラス定義だけ見ていては分からない。
→当然そのクラスで回されるクロージャはもっと分からない
0765デフォルトの名無しさん2013/03/14(木) 05:01:53.57
はすけるスレでこんなこと言うのもなんだが
>>763-764はOOPまるでわかってないに1票

恥ずかしいことじゃないよ、ここははすけるスレだから
0766デフォルトの名無しさん2013/03/14(木) 06:04:52.65
うーん。。。要はケースバイケース、使い分けしてナンボだと思うけど。
わざわざクロージャの悪い使い方を上げて、クロージャ自体を批判しなくとも良いのでは?
0767デフォルトの名無しさん2013/03/14(木) 07:13:50.85
>>754
クロージャが問題ならInterpreterパターンを使えば良いよね
0768デフォルトの名無しさん2013/03/14(木) 07:35:56.05
いやOOPが分かってないって問題じゃないだろこれw
プログラミングがまるで分かってない
0769デフォルトの名無しさん2013/03/14(木) 07:40:37.07
こんなに議論ができる人たちが、
プログラミングが分かっていない、状態になるのだとしたら、
OOPもクロージャもなくす方向に向かうほかないのでは。
0770デフォルトの名無しさん2013/03/14(木) 07:49:48.96
>>768
確かに、コード一行も書いたこと無い人が本だけ読んで語るとこういうことになるのかもね

>>769
いや分かってないのは一人だけでしょ
稀にこういうどうしようもない馬鹿が表れるのは仕方無い
0771デフォルトの名無しさん2013/03/14(木) 10:13:01.66
>>763-764に足りないのは論理的思考能力じゃね?
まあ論理的思考能力に欠けてるやつがプログラミングできるとは思わんが
0772デフォルトの名無しさん2013/03/14(木) 10:55:38.74
>>726 あたりから延々と続いている議論はどんなレベルのプログラマに必要な
ものなのかな。
もし関数型を理解することがこんな議論が分かるようになることを含むのだと
すると、関数型言語を勉強しようとする人はほとんどいなくなってしまうだろう。
0773デフォルトの名無しさん2013/03/14(木) 11:02:43.21
バカの妄想にレベルもクソもなかろうもん
0774デフォルトの名無しさん2013/03/14(木) 11:33:21.40
×関数型
○Haskell
頼むから他のまともな関数型言語まで一緒にしないでくれ
0775デフォルトの名無しさん2013/03/14(木) 11:51:25.15
>>772
日本語や英語の議論に飽きた人は、ますますプログラミング言語への興味が増すだろう
0776デフォルトの名無しさん2013/03/14(木) 12:20:22.38
確かに >>760->>764 を読むとHaskell本当に大丈夫か?という気になる。
0777デフォルトの名無しさん2013/03/14(木) 14:28:12.83
生兵法は怪我の素
0778デフォルトの名無しさん2013/03/14(木) 15:33:16.63
生なんだよね
人が作った物というより生物に似ているから、期待通りに動かないのは当たり前
人間以外の生き物を知ってたらどんなレベルの人でも理解できると思う
0779デフォルトの名無しさん2013/03/14(木) 15:54:03.21
また変なやつまで来たし。もうやだこのスレ……
0780デフォルトの名無しさん2013/03/14(木) 17:02:19.25
>>763-764にレスする強豪エスパーはおらんのか!
0781デフォルトの名無しさん2013/03/14(木) 21:06:46.35
>>763-764を納得してしまったのは俺だけか?
とくにクロージャがgotoというのは至言
0782デフォルトの名無しさん2013/03/14(木) 21:20:49.40
何がどうgotoなのかさっぱり話が見えない
0783デフォルトの名無しさん2013/03/14(木) 21:25:42.52
オブザーバーパターンみたいなコールバック使うとOOPでもコード追うの難しいよね
っていうことを言ったはずなのに伝わった気がしない
0784デフォルトの名無しさん2013/03/14(木) 22:31:21.29
>>781
そうだとしてもOOPと関係ないだろって突っ込まれてるんだが……
お前もズレてるな
■ このスレッドは過去ログ倉庫に格納されています