関数型プログラミング言語Haskell Part28at TECH
関数型プログラミング言語Haskell Part28 - 暇つぶし2ch399:デフォルトの名無しさん
15/05/29 21:59:14.56 6mGsQHLK.net
>>390 >>392
ただのあおりだと思うけど、長く続ける話でもないので、一応、一度だけ返答を。
Haskellどころかプログラムコード全般を書くのに、禅や、井上・西田・鈴木の思想に触れる必要なんて、
まったくなく、主張もしてません。そういう類のことをやって悦に入っているのは、件の人物です。
>>387>>383への、>>388>>386への話に対する"例示"として出しただけです。
いわば、プログラムでいうところの、特定の箇所�


400:フみ有効な、ローカル変数としての扱いの話題で、 Haskellスレ全体に及ぶグローバル変数的な話題ではありません、お間違いなく。 なお、Haskellは意図せずに変数がグローバルに扱われることを防ぐ手立てが、独特かつ学びがいも あるので、興味があるのなら、各種情報をあたってください。



401:デフォルトの名無しさん
15/05/29 22:24:42.09 UvEliUlK.net
ありのままを受け入れることと
意図しないことを防ぐことは
両立しないと思うがどうするんだ

402:デフォルトの名無しさん
15/05/29 22:28:07.67 1bdHe0ko.net
>>395
時々ありのままを受け入れて
時々意図しないことを防げば良いだけだと思うが

403:デフォルトの名無しさん
15/05/29 23:00:38.74 5MhrblBL.net
ありのまま受け入れた上で、
意図しないことを防げばよい。
相手の言うことをよく聞いて、十分理解したうえで、
それを否定的に考えるかどうかは当然自由だわな。
それを相手の言っていることが、理解できないからといって、
自分の辞書で再解釈し始めると、
会話が通じなくなってきて、あの人みたいになる。
これは最も相手をイラつかせる方法だろうな。
はっきり言ってケンカになる。

404:デフォルトの名無しさん
15/05/30 00:06:51.02 y2xM1Hhu.net
おれは両立しないと思うから意図は無視する
意図的に作ったものと自然にできたものを区別しない

405:デフォルトの名無しさん
15/05/30 01:53:48.06 /LSFXZZf.net
そろそろHaskellの話してくれませんかね

406:デフォルトの名無しさん
15/05/30 08:55:45.75 I7OEXYWz.net
>>390
岡部健(毛の壁)のような最先端が不在だよね

407:デフォルトの名無しさん
15/05/30 11:19:25.28 99bpmAVW.net
芸人の話はもういい

408:デフォルトの名無しさん
15/05/31 07:54:58.92 tRtL6h/C.net
>>381
>えっ、結城さんそんなことしてるの?
>あの人だけはバカなことに関わらないと思ってたのに。
キリスト教徒は愛とか善とか押し売りするクズばっかりで嫌い

409:デフォルトの名無しさん
15/05/31 09:07:02.06 6v3o16Hx.net
結城さんに手出しできなくてプルプルしとるな

410:デフォルトの名無しさん
15/05/31 09:52:05.60 y0vichKB.net
数学ガール、どうなんだろう、チラ見ではめんどくさそうであきらめたんだが

411:デフォルトの名無しさん
15/05/31 10:22:25.59 /wZ7j18U.net
cabal configure && cabal build && cabal sdistすると、Main.hsしか梱包されないんだけど、ソースを全部梱包するにはどうしたらいいですか?
実際のソース
src/Main.hs
src/Util.hs
src/Hoge.hs
梱包されたソース
dist/hoge-0.1.0.0/src/Main.hs
hoge.cabal
―――――
name: hoge
version: 0.1.0.0
synopsis: hoge
...
build-type: Simple
extra-source-files: README.md
cabal-version: >=1.10
executable hoge
main-is: Main.hs
other-extensions: FlexibleInstances
build-depends: base >=4.8 && <4.9
hs-source-dirs: src
default-language: Haskell2010

412:デフォルトの名無しさん
15/05/31 10:28:49.84 Z+YrU6Ep.net
エセ哲学で煙に巻く、というと青木淳を思い出す

413:デフォルトの名無しさん
15/05/31 11:16:11.11 Y5Q5hqkx.net
>>405
other-modules

414:デフォルトの名無しさん
15/05/31 11:23:47.90 /wZ7j18U.net
>>407
ありがとうございます
other-modules: Util, Hoge
としたら出来ました。.hsつけちゃダメなんですね

415:10人に一人はカルトか外国人
15/05/31 12:47:30.55 gFQ+S0pm.net
★マインドコントロールの手法★
・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖国参拝、皇族、国旗国歌、神社神道を嫌うカルト
10人に一人はカルトか外国人
「ガスライティング」で検索を!

416:デフォルトの名無しさん
15/05/31 23:07:34.36 bhwHs6Kp.net
すみません、分からないので教えて下さい。
MyData型というのがあるとして、
次のような感じの再帰的なデータ構造を
作りたいのですがどうやって
宣言したらいいのでしょうか?
MyData = [A | B | C | MyData]

417:デフォルトの名無しさん
15/06/01 00:37:34.71 7t5thP4d.net
newtype MyData = MyData [MyValue]
data MyValue = A | B | C | D MyData

418:デフォルトの名無しさん
15/06/01 07:49:51.08 2iXePbMK.net
>>402
憎しみと悪が世の中に満ちて欲しい我らとしては目障りよのう^^;

419:デフォルトの名無しさん
15/06/01 08:39:30.47 E7FyS8+c.net
URLリンク(twitter.com)
岡部氏の本、売れているようだが、これでもまだおまえらは否定するか?

420:デフォルトの名無しさん
15/06/01 10:31:20.23 hNOdkfuP.net
URLリンク(i.imgur.com)
金返せだとw
返金保障はしてないの?
FX本で揉め事起こしておいてよくやるぜ

421:デフォルトの名無しさん
15/06/01 15:23:30.31 Z2VsugfR.net
オアゾの丸善行ったら平積みでベストセラーになってからうっかりして『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』買っちゃった。
あの厚さにしては安いし。

422:デフォルトの名無しさん
15/06/01 21:41:48.25 AkSsBG07.net
*釣り中

423:デフォルトの名無しさん
15/06/01 22:06:25.83 K67NswvK.net
@tanakhよ、速やかに岡部健の記事を抹消しろ
最終警告。なめんな

424:デフォルトの名無しさん
15/06/01 23:47:52.81 Y6nutYnE.net
>>417
直接言えよ

425:デフォルトの名無しさん
15/06/02 06:11:38.24 rgUwgwJK.net
タナコフ、kenokabeに関する記事なんて書いてたっけ?

426:デフォルトの名無しさん
15/06/02 06:33:33.99 /sF+2pLL.net
これは私見ですが、田中氏のAskに誰かが昨日、毛の壁関連のリンク付きで質問をしたのに対して、>>417がクレーム付けてるのではと思います
というのは、田中氏はAskとTwitterを同期させているからです。よって(どこかの誰かがした質問に含まれる)毛の壁リンクも田中氏(のアカウントから自動的)に呟かれることになります。

427:デフォルトの名無しさん
15/06/02 10:16:26.38 Tk2gIrJG.net
sandboxのあるディレクトリは移動するとマズい。ってことに気づいた。
$ cd xxx
$ cabal sandbox init
$ cd ../
$ mv xxx yyy
$ cd yyy
$ cabal install hoge
cabal: No sandbox exists at /.../xxx/.cabal-sandbox

428:デフォルトの名無しさん
15/06/03 08:39:22.30 aJoKJBXt.net
誰か岡部健のMMD作ってくれよ

429:デフォルトの名無しさん
15/06/03 10:26:36.81 I/rtMDUu.net
モナド3則って圏論的にはどうやって出てくるの?

430:デフォルトの名無しさん
15/06/03 10:53:49.25 lNaMRMgL.net
順番が逆じゃないか?圏論で言うところのモナドってのは<T,η,μ>の3つ組が
µ(Fµ) = µ(µF) と µ(Fη) = idF = µ(ηF) を満たすもの、と定義されている。
Haskellのモナドクラスってのは単にμとηに相当する関数を持っていることを要請するだけで、
上の式を満たすようにインスタンスを定義しないと圏論で言うモナドにはならない。
Haskellのモナド3則は、上の式をKlisli starを使って書き直すと出てくるんじゃなかったっけな。
一度やったが、ここだけやっても面白くなかった記憶がある。

431:デフォルトの名無しさん
15/06/03 14:12:43.98 I/rtMDUu.net
>>424
> 圏論で言うところのモナドってのは<T,η,μ>の3つ組が
> µ(Fµ) = µ(µF) と µ(Fη) = idF = µ(ηF) を満たすもの、と定義されている。
なぜそんな3つ組を考えてなぜそういう条件をつけるのかというのは、
ここでは聞いちゃいけなかったのかな?w
圏論の本では天下りに書いてあるだけなので教えてくれるとうれしい

432:デフォルトの名無しさん
15/06/03 17:22:57.96 lNaMRMgL.net
>>425 単位元の存在と結合則だから。
Haskellで何故モナド則が必要かは↓を見れば分かる。
URLリンク(wiki.haskell.org)
モナド則を満たさないインスタンスは取り回しが悪い。モナドにする必要性が無い。
f : (Monad m) => ...なジェネリックな関数の振る舞いに何も期待できなくなる。
圏論の話をしたいなら他所でやってくれ。単芝生やす前に>>423>>425の意図が読めるか拙い頭で自省しとけ。

433:デフォルトの名無しさん
15/06/03 18:36:14.98 nbbdPdbj.net
草が自生するわهههههههههههههههههههههه

434:デフォルトの名無しさん
15/06/03 20:40:35.99 o4gP2WaR.net
継続
foo x = ($ x)
bar m f = \ g -> m (flip f g)
おまじない
encode = ($ return)
decode = (>>=)
モナド則
decode (return x) = foo x
encode (decode m) = m
decode (m >>= f) = (decode m) `bar` (\ x -> decode (f x))

435:デフォルトの名無しさん
15/06/04 11:03:34.20 TEKHUXbi.net
>>425
関手圏における対象(元の圏での自己関手)Fたちの「べき乗」 FF, FFF, FFFF, ... たちを
Fにまとめるための積に相当するものとしてμが、そしてそのような「積」が結合法則を
満たすことの要請として
μ(Fμ)=μ(μF)
が,そしてFの「ゼロ乗」に相当するものとしてηが与えられる。ηが「積の単位元」
に該当するための要請が、μ(Fη)=id F =μ(ηF) となる。
半群の代数法則を集合と写像の図式で書き表してみると上のような法則がどのように
して導かれるかわかる。
このような意味でモナドは「一般化された半群」だと言える。
一度モナドFが与えられたとき、Fを利用して X -> F Y 型の射を「合成」する手段が得られることが
わかる。KleisliにちなんでKleisli射などと呼ばれる。
詳しいことはマクレーン「圏論の基礎」を読んで欲しい。例がいちいち高尚なので読みづらいが
どのみちあの全ての例を理解できるひとなどいないと思っておけばいい。

436:デフォルトの名無しさん
15/06/04 12:14:47.63 6HPpoO/k.net
>>429
サンクス
要するに、まず、μはモナド領域における積演算であり、それは結合法則を満たす、でいいよね。
そしてηはその積演算についての単位元、と言いたいが、ηはモナド領域の元ではないので
そうは言えないよね?

437:デフォルトの名無しさん
15/06/04 17:28:26.87 TEKHUXbi.net
>>430
「モナド領域」で何を言いたいのかわからない。
#言葉はなるべく正確に使おう
>>429の補足
モナドと半群Gの類似性を捉えるためには「単位元」を「ゼロ項演算」とみなすとよい:
e : * --> G
ここで、* は単元集合ならなんでもよいのだが、何か一つ決めておく。そして任意の集合Sに対して
  * × S と S
が 1-1 かつontoな写像で結ばれているので同じと「みなす」ことにより、* は「デカルト積における単位元」
とみなせる。(集合A,Bの共通部分 A ∩B を「積集合」と呼ぶ場合があるが、全然違う「積」であることに注意)。
半群Gの「積をとる演算」m はもちろん
m : G×G --> G
となる。
(つづく)

438:デフォルトの名無しさん
15/06/04 17:30:36.75 TEKHUXbi.net
>>431
(つづき)
こうやって考えてみると半群Gの結合法則は、G×(G×G)と(G×G)×Gを(当然の如く)同一視したうえで
  m ○ (idG×m) = m ○ (m×idG)
のように表せる。ただし、○は写像の合成を表すものとする。また、
idG×m : G×(G×G) --------------> G×G
<x, <y,z>> |---> <x, m(y,z)>
など。そして単位元については
   
   m ○ (idG×e) = idG = m ○ (e×idG)
となる。ここで、
 idG×e:G ---------> G×G
g |-------> <g,1>
など。半群というものをこのような視点で捉えて初めてモナドとの関係が見えてくるわけです。
抽象的に見て初めて見えてくるのであってそれを乱暴に「モナドは半群である」と言い切ると、
色々誤解を招くわけです。

439:デフォルトの名無しさん
15/06/04 17:33:45.51 TEKHUXbi.net
(全角スペースの連続って無視されるのか。失敗した)

440:デフォルトの名無しさん
15/06/04 17:52:43.81 6HPpoO/k.net
μとηを普通に(自然に)定義すればモナド則は自ずと満たすようになるのではないの?
むしろモナド則を満たさないように定義する方が難しいのでは?

441:デフォルトの名無しさん
15/06/04 18:10:46.82 OGWHpt3Y.net
Haskell入門の中間テストって
リストはモナドであることを証明せよとか
このデータ型はモナドか? 理由と共に答えよ
とか
必要な関数を足して、このデータ型をモナドにせよ
とか出るんでしょ!ひえぇ

442:デフォルトの名無しさん
15/06/04 21:25:30.08 yrg33OPn.net
>Fの「ゼロ乗」に相当するものとしてηが与えられる。
ηと恒等関手の違いがさっぱりわからない
こんなの絶対おかしいよ

443:デフォルトの名無しさん
15/06/04 22:57:11.06 yrg33OPn.net
ηは単位元
恒等関手も単位元
F^n ⇔ F ってことは F も単位元かな
1^n = 1 と同じように

444:デフォルトの名無しさん
15/06/04 23:01:33.99 TEKHUXbi.net
>>436
ηはControl.Monad では return と呼ばれてる。FをモナドとしたときHaskell風に言えば
η :: a -> F a
だよ。ηは「Hask圏における自己関手を結ぶ自然変換」であることを理解しよう。
Haskellとモナドだけに関連しても、
1.Hask圏 (これが議論の基礎となる)
2.Hask圏の自己関手の圏  EndoFunct(Hask)
3.Hask圏のモナド(Hask上の自己関手の一種)Fが作り出す Kleisli圏
という最低でも3つの「圏論的視点」がある。視点を変えると名前が変わったりするので要注意。
たとえば、Hask圏での「自己関手」は EndoFunct(Hask) という圏では「対象」となる。
また、「Hask圏における自己関手を結ぶ自然変換」は EndoFunct(Hask) では「射」となる。
マクレーンの本は「あれも書かなきゃこれも書かなきゃ」って感じでどんどん話が進むし
証明は読者に任せたwwwってノリの箇所も結構あるので一度きちんと自分で整理してみることを
勧める。

445:デフォルトの名無しさん
15/06/05 16:27:16.31 oA4lY9uS.net
Amazonの岡部健氏のレビュー、ようやくまともな力学がはたらくようになったな。
おまえら【自称】関数型コミュニティーのしょーもない組織票も、所詮はごくごく一部の小さな力に過ぎない
「正しさ」ってどんなにおまえらがわめいてもねじ曲げられないのさ

446:デフォルトの名無しさん
15/06/05 16:27:52.01 oA4lY9uS.net
田中もボレロもしょーもないことやってるようだが、騒ぐなら「コード書け」。

447:デフォルトの名無しさん
15/06/05 16:56:46.59 NH+N2vxp.net
>>439
正しい力学w
☆☆☆☆☆ 4 人中、0人の方が、「このレビューが参考になった」と投票しています。
☆☆☆☆☆ 55 人中、7人の方が、「このレビューが参考になった」と投票しています。
☆☆☆ 30 人中、2人の方が、「このレビューが参考になった」と投票しています。
☆☆☆☆☆ 85 人中、9人の方が、「このレビューが参考になった」と投票しています。
☆ 106 人中、97人の方が、「このレビューが参考になった」と投票しています。

448:デフォルトの名無しさん
15/06/05 19:45:34.72 wKAWiqlA.net
URLリンク(www.kenokabe.com)
問い合わせ:05/03/15 04:44:35
1) レビューに対する投票について御社社内で不正な操作があったのか?
2) 不正なユーザによる複数投票があったのか?
3) 外部からの不正アクセスによる投票操作があったのか?
4) なぜ★5のレビューが2件も削除されているのか?
という4点について御社の公式な見解を教えていただけませんでしょうか。
回答:2015年5月3日 8:19
お客様からお問い合わせいただいた「1)」、「2)」、「3)」の件につき
まして、当サイトでは、カスタマーレビューについて、より正確な投票数をカ
ウントするため、投票の傾向をシステムによって監視しています。特定のお客
様が投稿したレビュー、または特定の商品に関するレビューに対して集中的に
投票が行われているなど、不適切な投票とみなされた場合は、自動的に投票が
削除されます。また同一カスタマーや同一カスタマーの複数アカウントからの
投票など不正と認められた場合、自動的に投票数が削除されます。
なお「4)」の件につきまして、当サイトのレビューが非掲載となる場合、投
稿者ご自身でレビューを削除された場合と当サイトのレビューガイドラインに
抵触していると判断したため削除された場合がございます。上記のどちらかで
非掲載となりますが、詳細については、投稿者の個人情報およびプライバシー
を保護の観点から、ご案内できませんことをご了承ください。
参考:URLリンク(twitter.com)
kenokabe 本に好意的なレビューをしている coolio 氏のレビューページ
URLリンク(www.amazon.co.jp) の google
キャッシュを見たらユーザ名が kenokabe で吹き出しそうになった
URLリンク(f.hatena.ne.jp)

449:岡部健
15/06/06 07:00:48.03 /qvfFI9e.net
そんなレビューなんて知らないね
えー加減にせーよ

450:デフォルトの名無しさん
15/06/06 07:04:20.42 EMdVS6mw.net
はいはいなかったことなかったこと
アホか

451:デフォルトの名無しさん
15/06/06 14:03:45.58 /qvfFI9e.net
岡部氏の本を精神病のコーナーに並べて置いたのはおまえだろ?

452:デフォルトの名無しさん
15/06/06 14:04:41.32 /qvfFI9e.net
田中、おまえも共謀とみなす

453:デフォルトの名無しさん
15/06/06 15:09:56.77 EMdVS6mw.net
はいはい、勝手に田中認定すれよ
どアホが

454:デフォルトの名無しさん
15/06/06 16:17:49.33 G0vvOPfV.net
岡部さん、田中と村上に牙を剥くならご一緒に江添もいかがですか?

455:デフォルトの名無しさん
15/06/06 17:04:05.29 QYGhKlvX.net
URLリンク(kenokabe-techwriting.blogspot.jp)
おまえらが国際的にみて異端だとするこの記事について論理的に反論してみて?ほれ?
村上、いつも遠くから吠えるだけだな?たまには立論してみろやクソアマ

456:デフォルトの名無しさん
15/06/06 17:04:35.64 QYGhKlvX.net
マイクロソフトを否定できるか?
これは権威主義のおまえらの試金石だ

457:デフォルトの名無しさん
15/06/06 17:27:34.64 ZV6D40F6.net
否定ならいくらでもできるが、依存を断ち切る行動には結びつかない
前提である【自称】関数型コミュニティが横暴に振る舞っているのかどうかさえ判断はできないのだから反論する必要すらない
マイクロソフトの定義は正しいだろう
しかしそのことが【自称】関数型コミュニティが横暴に振る舞っていることの証拠にはならないのだから
つまり
そもそもこの記事に論点が存在するのかどうかすら怪しい
誰かソースを出してはくれないだろうか

458:デフォルトの名無しさん
15/06/06 17:34:13.60 EMdVS6mw.net
毛は根っからの嘘つき
終わり

459:デフォルトの名無しさん
15/06/06 18:20:24.88 sdR7Jr6e.net
岡部氏の国際的評価
スレリンク(prog板:635-636番)
「全く意味不明」
「完全に不可解」

460:デフォルトの名無しさん
15/06/06 18:59:18.59 GcGbQkec.net
単なる毛の嘘。Microsoftの記事は「命令型」と「関数型」を対比してるだけ。
タイトルからして「関数型プログラミングと命令型プログラミング」。
URLリンク(msdn.microsoft.com)
「一方、C#、Visual Basic、C++、Java などのオブジェクト指向プログラミング (OOP) 言語を含む
ほとんどの主流言語は、主に命令型 (手続き型) プログラミングをサポートするために作成されています。」
「C#、Visual Basic、C++、Java などのオブジェクト指向プログラミング (OOP) 言語を含む」
「ほとんどの主流言語は、主に」「命令型 (手続き型) プログラミングをサポートするために作成」
誰もオブジェクト指向と関数型を対比してない(毛を除く)。毛の読解力が小学


461:生レベルで欠如してるだけ。 そもそもSchemeやHaskellでオブジェクト指向プログラミングしたり、 C++やJavaScriptで関数型プログラミングできるんだから、対立してるわけがない。



462:デフォルトの名無しさん
15/06/06 19:36:56.78 IblTw25F.net
むかしむかしOOPを普及させようとした人達は
「C言語でもOOPできる」みたいな話に全力で反論してたんだぜ
古本屋で買った「オブジェクト指向入門」に
「混血によるアプローチは混血なりの品質しかもたらさない」って書いてある
いま確認したから間違いない

463:デフォルトの名無しさん
15/06/06 19:51:13.31 GcGbQkec.net
確かに「C++やJavaScriptで関数型プログラミング」とかも、
Haskellみたいな専用の関数型言語に比べて不自然な面があるのは
否定はしない。逆に然り。両方ともサポートした言語もあるにはあるが。

464:デフォルトの名無しさん
15/06/06 19:53:20.38 GcGbQkec.net
>>456
× 逆に然り
○ 逆も然り

465:デフォルトの名無しさん
15/06/06 20:03:34.07 0M3+/TFN.net
Ocamlがあるじゃねえか

466:デフォルトの名無しさん
15/06/06 20:19:35.99 uv2S2fjH.net
田中の返答は反論になってない。マイクロソフトの主張は明らかだ。
特権意識・差別意識まみれの根腐れたおまえらが「見たくないものはみえないふり」して小さな島国のごく一部の界隈で、
国際的潮流に乗ってる有識者を【村八分】にしたい、してるだけ。
チョン同然、あるいはチョンそのもので構成されていても別段驚かないし、その傾向がある

467:デフォルトの名無しさん
15/06/06 20:25:57.60 KMNvqcU5.net
>>456
不自然というか、C++とかでも頑張れば関数型プログラミングも可能。
ただしそれは「関数型プログラミング言語をC++で実装」するようなもん。
実際、初期の関数型言語はCで実装されていたりしたしね。
だから今時は最初からHaskellなり使えばいいというレベルの話。

468:デフォルトの名無しさん
15/06/06 20:43:39.24 sdR7Jr6e.net
毛が批判してる「国内」コミュニティの奴らは
フランス情報学研究所で博士号取得して欧米外資銀で関数型プログラマやってたり
米計算機科学会や国連情報処理学会の関数型プログラミング委員とか委員長だからなw

469:デフォルトの名無しさん
15/06/06 20:46:43.22 24cQnkdA.net
岡部関連は他でやってくれ
【茶道モテ】毛の壁ファンクラブ57【孤立無援】 [転載禁止]&amp;#169;2ch.net
スレリンク(net板)
土曜・日曜は岡部健のブログを読み解こう!★2 [転載禁止]&amp;#169;2ch.net
スレリンク(prog板)

470:デフォルトの名無しさん
15/06/06 20:48:26.12 0M3+/TFN.net
いつまで阿呆の相手してるんだ?
もっと有意義な話をしてくれ

471:デフォルトの名無しさん
15/06/06 20:57:41.59 GcGbQkec.net
正直スマンカッタ
どこぞで話題になってたones=1:onesのonesが(1:)の最小不動点(実際には唯一の不動点)という件、
Haskellでも再帰的定義は常に最小不動点という解釈で合ってる? もちろん:とか関数はlazyだとして。

472:デフォルトの名無しさん
15/06/06 22:10:30.32 h/G/zDwf.net
>>460
もっとふざけたことしてるやつもいるからな。VBAで関数型プログラミングとか。

473:デフォルトの名無しさん
15/06/07 05:28:41.31 MhTDgKGm.net
竹塩壁なの?本名

474:デフォルトの名無しさん
15/06/07 12:56:36.19 jVcLNsk7.net
そういや、昔O'Haskellなんてものがあったな
結局あれ流行らなかったね

475:デフォルトの名無しさん
15/06/07 13:37:10.71 lpscvJOy.net
>>467
割と早期にTimberに移行したから。
URLリンク(timber-lang.org)
そもそもサブタイピング便利か? というのもあり。
OlegのHListとか見るとねえ……

476:デフォルトの名無しさん
15/06/08 08:10:38.52 rqAfod0u.net
おまえらは岡部健のポテンシャルに嫉妬してるだけ

477:デフォルトの名無しさん
15/06/08 13:32:32.63 ZD5oJ+MT.net
559 仕様書無しさん 2015/06/08(月) 12:23:22.32
岡部健、チマチマとメールでこっそり罵倒ww
URLリンク(b.hatena.ne.jp)

478:デフォルトの名無しさん
15/06/08 14:13:06.97 pkFJsD/2.net
URLリンク(t.co)
kenokabe こと 岡部健 #毛の壁 のブログにてコメントを出すと、もれなくメールにて毛の壁による罵倒、ならびにヘア告訴されるかもしれない権利が付与されるそうに御座いまする。 桑原桑原。

479:デフォルトの名無しさん
15/06/08 19:10:07.57 dWqRejTW.net
毛の壁先生、お願いですから掲示板荒らすのやめて下さい
2chだけじゃないですよ?

480:デフォルトの名無しさん
15/06/08 20:21:54.95 cjhIgMXy.net
OCamlerはいい加減、荒らすのをやめて欲しい。
MLスレは閑古鳥が鳴いているのに、マ板の岡部スレでは月曜の朝からOCamlerで大賑わい。
少しは自分たちの異常さを認識したほうがいい。

481:デフォルトの名無しさん
15/06/08 21:03:59.90 wHGZFrsF.net
843 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 19:50:18.31 ID:1muq0MvU0
mapからreduceを作るとか、普段どれだけゆるい感じで物事考えているかよく分かるね
こんなの質問する前に1秒でも思考実験していれば分かることだ
844 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 20:13:41.12 ID:1muq0MvU0
reduce :: (a -> b -> a) -> a -> [b] -> a
reduce f z xs = let y = z : map (\(i, x) -> f (y !! i) x) (zip [0..] xs) in last y
試しに挑戦してみたら案外いけましたすみません><
847 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 21:02:29.22 ID:asgdcTzL0
ちょwwHaskellスレが毛の話題で荒れてるからswapしろよwww 👀
Rock54: Caution(BBR-MD5:405b7f1af0f5a85b432d79fa769e9aeb)


482:デフォルトの名無しさん
15/06/08 21:31:31.35 zzT0ePpx.net
なるほどこれ頭いいな。scanlを
scanl z f xs = ys
 where ys = z:(zipWith f xs ys)
と書いてから、zipWith xs ys をmapで書き直せば
確かにこうなるな。最後の要素を取ればfoldlになるわけだ。

483:デフォルトの名無しさん
15/06/09 05:59:45.81 keQMp1Zr.net
858 :名無しさん@ゴーゴーゴーゴー!:2015/06/09(火) 05:58:57.73 ID:FmWR9u6b0
>>852-853
インデックス使わないバージョン(zipは使う)
reduce :: (a -> b -> a) -> a -> [b] -> a
reduce f z xs = f lasty lastx
 where
  (lastx, lasty) = last xys
  xys = zip xs ys
  ys = z : map (\(x, y) -> f y x) xys
っていうかHaskellスレ行けw

484:デフォルトの名無しさん
15/06/09 14:28:52.87 keQMp1Zr.net
まずscanlに相当するものをmyScanl f r xs = ys where ys = r: zipWith f ys xsとして作ります。
zipWith f ys xsをmapを使って書き換えればmap (\(x,y) -> f y x) (zip xs ys)となりますから、
myScanl f r xs = ys where ys = r: map (\(x,y) -> f y x) (zip xs ys)となります。
scanlで得られたリストの最後の要素がfoldlつまりreduceの結果になりますから、
reduce f r xs = last ys where ys = r: map (\(x,y) -> f y x) (zip xs ys)で望みのものが得られます(reduce (+) 0 [1..9] → 45)。
もちろん再帰をこのようにまわりくどく用いた定義をせずに簡明な普通の再帰で書くべきです

485:デフォルトの名無しさん
15/06/09 15:29:01.79 Wpjwmkjs.net
毛の壁ネタは専用スレで。
そこからの転載も不要。

486:デフォルトの名無しさん
15/06/09 16:22:18.33 AVtZDhrR.net
OCaml病人の隔離スレが必要かもしれんな。

487:デフォルトの名無しさん
15/06/09 16:28:45.86 GtnmaKAw.net
関数型隔離病棟はよ

488:デフォルトの名無しさん
15/06/09 17:31:06.57 keQMp1Zr.net
マ板の岡部スレでOCamlerにコテンパンに論破された松沢がこっちに来たな。
Haskellプログラミング以外の話はよそでやれ

489:デフォルトの名無しさん
15/06/09 18:12:13.77 s+m3IBNO.net
reduce f r xs = last ys where ys = r : map (\(x,y) -> f y x) (zip xs ys)
は面白いと思う

490:デフォルトの名無しさん
15/06/09 18:36:24.03 Wpjwmkjs.net
 
しばしば目にするパターンではあるんだよな。
余再帰を巧く使いこなせるようになりたいとは思う。

491:デフォルトの名無しさん
15/06/09 19:37:05.34 YMX6lY//.net
初心者スレが見当たらないのでここに書き込ませてください。
「$演算子による関数適用の区切り」と「.演算子による関数合成」
この違いというか使い分けって
$演算子は括弧対応を沢山省略できて便利
例: sin $ cos $ tan $ x + 1
.演算子は関数合成で変数に束縛可能になるから便利
例: fun = sin . cos . tan . (+ 1)
くらいかなと思ったのですが、後者は
fun x = sin $ cos $ tan $ x + 1
別にこれでも構わないわけですよね。
.演算子の利点って他に何があるんでしょうか?

492:デフォルトの名無しさん
15/06/09 19:46:28.21 Wpjwmkjs.net
>>484
ポイントフリー教信者が使うため。
ってのはともかく、mapみたいな高階関数に関数を
渡さなきゃいけないところで、
map (¥x -> f $ g x) xs
map (f . g) xs
を見比べれば意味がわかるのでは。
なにかに関数を連鎖して適用した結果ではなくあくまで
連鎖した関数そのものが欲しい時には ( . ) が便利。

493:デフォルトの名無しさん
15/06/09 20:00:13.95 YMX6lY//.net
「関数そのものが欲しい時」って
fun x = sin $ cos $ tan $ x + 1
一応これでも目当ての関数 fun が得られてると思うのですが、要は「引数って邪魔だよね」的な感覚?
美的感覚だけでなく実行効率も違ってくるのでしょうか。

494:デフォルトの名無しさん
15/06/09 20:10:23.23 Wpjwmkjs.net
実行効率は一緒。
(f . g) を普通に「gしてfする」とか読むのになれると引数の方がじゃまになる。
「¥x -> f $ g $ x +1 」 より 「 f . g . (+1)」の方が、
「1足してgしてfする」と読みやすいし明瞭でしょ。
そのうちmapの引数にいちいちラムダ式書いてられるかって気になるよ。
よく使うものの構文は軽くなくてはいけない、というだけ(美的感覚とは少し違う)。

495:デフォルトの名無しさん
15/06/09 20:13:23.65 YMX6lY//.net
ポイントフリーでググってみましたが...
例えば
fact :: Integer -> Integer
fact n = product [1..n]
よりも
fact = foldl (*) 1 . enumFromTo 1
のほうがスマートで好まれるのでしょうか。
実行効率同じなのになんだか可読性を犠牲にしすぎのように思えるのですが。

496:デフォルトの名無しさん
15/06/09 20:21:06.13 Wpjwmkjs.net
>>488
ポイントフリー教に入信する理由は全然ない(本当にやめてほしい)。
簡単に「~して…して~する」みたいに読める時だけ使えば十分。
いちいち名前をつける必要のない(むしろ使い捨てなので名前をつけるべきでない)ような
関数のチェインをラムダ式よりも軽い構文で書ける、というのがまずは利点。
もう少し慣れてくると今度は Control.Lensパッケージが 関数合成演算子( . )を
あたかもオブジェクト指向言語のメソッド呼び出しであるかのように見せる
芸当を見せてくれるけど、それはまだ先の話。

497:デフォルトの名無しさん
15/06/09 20:39:29.39 YMX6lY//.net
ありがとうございます。ちょっとだけ感覚が分かってきました。

498:デフォルトの名無しさん
15/06/09 22:00:18.96 On8D0YSk.net
ポイントフリーの理由は、読む能力を上げることだろうね
人間が書いたものは読めないならクレームをつけて書き直させることができるが
自然現象のようなものを読む場合は読む人の能力に全てがかかっている

499:デフォルトの名無しさん
15/06/09 22:31:32.15 lp6qdJfP.net
あまりに自然現象のようなレスなのでびっくりしている

500:デフォルトの名無しさん
15/06/09 23:05:53.18 On8D0YSk.net
驚き最小の法則ってあったけど
なんで驚いた側ではなく驚かせた側を改善しようとするのかね
両方改善した方がいいのに

501:デフォルトの名無しさん
15/06/09 23:31:39.42 nX857Zqc.net
とても自然現象です。すごく。

502:デフォルトの名無しさん
15/06/09 23:31:47.34 s+m3IBNO.net
>>493 驚かせる側=言語設計者より
驚く側=プログラマのほうが圧倒的に人数が多いから、
前者が改善したほうが合理的。
…とかくだらないこと聞くなよ。
mapでreduce実装のほうがまだためになる
>>492はワロタ

503:デフォルトの名無しさん
15/06/09 23:49:25.76 On8D0YSk.net
圧倒的多数が改善するより、少数が改善する方が合理的?
それは自明ではないよね

504:デフォルトの名無しさん
15/06/10 00:12:15.37 4dIY3WJF.net
よそでやれ

505:デフォルトの名無しさん
15/06/10 02:25:01.58 7goP4N8P.net
こうどなあおりあい

506:デフォルトの名無しさん
15/06/10 07:04:49.86 xkthzaZS.net
>>496
合理的かどうかは知らんが、
出来る奴程仕事が舞い込む理屈だよ。

507:デフォルトの名無しさん
15/06/10 10:52:14.97 t1zCKUmg.net
HaskellやOCamlの設計は大部分が重複していて真の設計者が誰なのかわからんから
設計者を探し出して可読性とかを要求するという古典的なやり方が効く保証がない

508:デフォルトの名無しさん
15/06/10 11:04:20.00 McYDyKet.net
ワードサラダ汚染マジうざい>On8D0YSk,t1zCKUmg

509:デフォルトの名無しさん
15/06/10 11:56:36.76 t1zCKUmg.net
どのワードをうざいと思ったか教えてくれ
可読性かな?

510:デフォルトの名無しさん
15/06/10 12:46:16.17 vkTp1NO/.net
端的に意味不明だろ。

511:デフォルトの名無しさん
15/06/10 13:15:55.24 t1zCKUmg.net
意味がわかる人もわからない人もいると思う
後者がすごい自信を持っている理由を教えてほしい
常識的には「わからない」より「わかる」方が有能だと思う
今それが逆転しているのはなぜなのか

512:デフォルトの名無しさん
15/06/10 14:01:51.47 vxCnSfpA.net
荒らしなので無視してね

513:デフォルトの名無しさん
15/06/10 14:08:38.12 YrTGTRFm.net
△ 「意味不明」
◯ 文章の論理が根本的に間違っていてコミュニケーションが成立しない
完全に対話不可能だから二度と出てくんな。

514:デフォルトの名無しさん
15/06/10 14:09:43.52 YrTGTRFm.net
>>505 スマンカッタ

515:デフォルトの名無しさん
15/06/10 17:54:46.33 9PwGA43Z.net
時代はK言語だろ

516:デフォルトの名無しさん
15/06/10 19:36:45.21 Gkss7rSH.net
>>508
つまりハングルか。

517:デフォルトの名無しさん
15/06/10 21:12:55.26 7i1MtT87.net
今までモナドという概念がなかったということは
理論計算機科学ってへぼいということでしょうか?

518:デフォルトの名無しさん
15/06/10 21:22:17.53 vkTp1NO/.net
表示意味論が提示されてから10年ほどで計算効果一般の
モデルをモナドで与えようという発想が提出されてるのだが、
「今までモナドという概念がなかった」とはこれいかに。

519:デフォルトの名無しさん
15/06/11 00:21:14.93 hzM+9d/O.net
>>510 基地外は失せろ
>>511 ScottからMoggiまで十数年ぐらい?
確かに意外と短かったんだな…

520:デフォルトの名無しさん
15/06/11 00:38:40.42 pB1BlG5Q.net
Dana S. Scott. Outline of a mathematical theory of computation. Technical Monograph PRG-2, Oxford University Computing Laboratory, Oxford, England, November 1970.
E. Moggi. Computational lambda-calculus and monads. In 4th LICS Conf. IEEE, 1989.
この間ほぼ20年かな? いずれにせよ「今までなかった」はないw

521:デフォルトの名無しさん
15/06/11 00:53:54.36 QUqBUSLw.net
>>512,513
1980年代初めには応用可能性が知られてて、
1985年にMoggi含む複数人の「圏論とプログラミング」という
ワークショップが開かれてるんで、10年ほど、と計算した。

522:デフォルトの名無しさん
15/06/11 01:06:20.81 pB1BlG5Q.net
しらんかった。後者はこれか。
URLリンク(dx.doi.org)
ぱっと見、まだmonadとは書かれていないが。
URLリンク(www.disi.unige.it)
には
My thanks to M. Hyland, A. Kock (and other participants to the 1988 Category
Theory Meeting in Sussex) for directing me towards the literature on monads relevant
to the subject.
とあるな。

523:デフォルトの名無しさん
15/06/11 03:59:27.71 bOOr6QDN.net
モナドを使うという発想は、C++でテンプレート機構使えばコンパイル時処理できるぞっていう発見と似たようなものではないか
そのために生み出されたのでなく元々そこに(見過ごされたまま)あった

524:デフォルトの名無しさん
15/06/11 09:14:47.16 XjBiZb+W.net
おいおいみんなどうしたんだよw
モナドもしょぼい概念だったとそろそろ分かれよw

525:デフォルトの名無しさん
15/06/11 09:31:44.59 IhjRP6Ev.net
では次のを頼む

526:デフォルトの名無しさん
15/06/11 09:44:54.00 XjBiZb+W.net
>>518
しょぼいっていうのは分かってんだな?
ScottやMoggiにあこがれてるんじゃまだかなと思うんだが

527:デフォルトの名無しさん
15/06/11 10:16:52.40 kAIL8Wh0.net
なんか地獄のミサワっぽい

528:デフォルトの名無しさん
15/06/11 10:57:09.42 npoi0wO0.net
基地外うざいししつこい>bOOr6QDN,XjBiZb+W

529:デフォルトの名無しさん
15/06/11 11:01:20.03 PuDMuD0l.net
こういうマウンティングのためだけに知識を得る底辺層が消えない限り
プログラマの地位は向上しないだろうな

530:デフォルトの名無しさん
15/06/11 12:10:32.39 bAVDGSXl.net
知識を得なければマウンティングできない現状をどう変える?
少なくとも言えることは、知識ゼロでマウンティングできる最悪の状況は回避してほしい

531:デフォルトの名無しさん
15/06/11 12:55:54.03 5wVrf0wy.net
マウンティングした者はLetter to a Young Haskell Enthusiastを1000回音読する刑に処す

532:デフォルトの名無しさん
15/06/11 13:47:53.72 MCnGDuRk.net
なぜマウンティングするのか? なぜならそこに山があるからだ

533:デフォルトの名無しさん
15/06/11 14:26:29.66 bAVDGSXl.net
言っておくがLisperが関数型の知識をいくら詰め込んでもドヤ顔できない
なぜなら動的型だから
ドヤ顔したいやつは静的型に群がっているのであって、関数型はあまり重要ではない

534:デフォルトの名無しさん
15/06/11 17:04:10.51 QUqBUSLw.net
なんで毛スレのキチガイがOCamlじゃあんくてHaskellのスレに紛れ込んでるんだか。

535:デフォルトの名無しさん
15/06/11 18:26:19.74 npoi0wO0.net
>>527
>>481

536:デフォルトの名無しさん
15/06/11 19:26:15.71 bOOr6QDN.net
つまりOCamlerは強いけどHaskellerは嘗められてる?

537:デフォルトの名無しさん
15/06/11 19:45:13.61 yf7swl7Y.net
>>527
キチガイはお前だよ

538:デフォルトの名無しさん
15/06/11 20:02:46.43 npoi0wO0.net
>>527>>514でちゃんと有用な情報を提供している
>>523>>519>>517>>516>>511は情報価値0以下の荒らし。

539:531
15/06/11 20:04:50.35 npoi0wO0.net
>>511じゃない、>>510

540:デフォルトの名無しさん
15/06/11 21:32:50.42 pgVrj2dA.net
悪行は善行で相殺できるという前提があるから
犯人とか功労者とかが誰か調べることに拘ってるのか
すごい納得してしまった

541:デフォルトの名無しさん
15/06/11 22:17:16.64 3DdkuOqE.net
相殺云々以前に、プログラム板なんだから
プログラムの話をまともに出来ない奴は
お呼びじゃない、ってだけだろ。

542:デフォルトの名無しさん
15/06/11 22:48:19.91 QpuB/nCQ.net
コード書けない連中がこういうときだけでかい面して鬱陶しい

543:デフォルトの名無しさん
15/06/11 22:57:20.66 npoi0wO0.net
相殺も何も基地外は善行0、それ以外の人は悪行0。

544:デフォルトの名無しさん
15/06/11 23:43:07.37 pgVrj2dA.net
「プログラムは書く時間より読む時間が長い」なんて言われたら
プログラムを書く話なんてしなくなるでしょ
読んだ人の感想とかそれに対しどう返答するかみたいな事ばかり考えるようになる

545:デフォルトの名無しさん
15/06/12 00:12:07.74 lWqlv+DR.net
全くならない。

546:デフォルトの名無しさん
15/06/12 00:48:31.06 de1HjIPa.net
このスレ、プログラム板でもかなり書き込みが多い方なんだけど、
その割にHaskellで作ったアプリが世の中にないのは、
このスレに書き込んでいる人間の大半は結局喋っているだけで、ちっとも作っていないから?
それとも、ごく少数の口数の多い人間がこのスレに常駐しているということか?

547:デフォルトの名無しさん
15/06/12 01:09:28.05 kpQWF1y9.net
みんな不安なんだよ

548:デフォルトの名無しさん
15/06/12 01:11:49.35 ewifs/WC.net
「アプリ」でどういうものを指しているのかによるだろ。

549:デフォルトの名無しさん
15/06/12 01:14:23.65 3H6DdNeR.net
スレが伸びてるのは単に基地外が粘着してるから。
アプリは URLリンク(wiki.haskell.org) とかあるし、
外資もNTTデータも金融とかclosedなので外に出ないの�


550:熨スいと思うが、 それでもC++とかJavaとかに比べれば実験的な言語だから少ないな……



551:デフォルトの名無しさん
15/06/12 01:29:41.08 ewifs/WC.net
スクリプト言語の代わりに普段使いしてる感じだし、
なによりParsecのお蔭で色々とはかどるのでなあ。
わりと最近3000行程度のGUIのツールを書いたが、
他所で役に立つようなものでもないので、公開するとか
そういうことも特にない。

552:デフォルトの名無しさん
15/06/12 07:19:43.33 1CtSfxjI.net
書くだけならスクリプト言語で十分だが読めない保守できない等の苦情が予想されるので
じゃあ静的型付けなら読めるのか実験したい

553:デフォルトの名無しさん
15/06/12 10:25:49.56 ppIf3q9e.net
NTTデータを入れると、一気にカスっぽく見える。
外資と金融の間に、さりげなくNTTデータを入れるセンスが絶妙。

554:デフォルトの名無しさん
15/06/12 11:52:15.09 lWqlv+DR.net
>>545
URLリンク(www.google.co.jp)
こういう世界でどうなるか、少なくとも実験としてはすごいと思う。
数理システムも買収したし。

555:546
15/06/12 11:54:37.53 lWqlv+DR.net
iOSのSafari、リンクがまともにコピペできねーorz
>>546は「NTTデータ Haskell」の検索結果な

556:デフォルトの名無しさん
15/06/12 12:00:11.55 nIxAy/au.net
NTTデータって人身売買の会社じゃなかったの?

557:デフォルトの名無しさん
15/06/12 12:08:38.69 lWqlv+DR.net
前はHaskellでインドに外注とか言ってて
いろんな意味ですげーとか思ったが
最近はどうなん?

558:デフォルトの名無しさん
15/06/12 12:26:32.05 bMq/lwLt.net
( ゜Д゜)マジカヨ

559:デフォルトの名無しさん
15/06/12 12:46:55.72 ppIf3q9e.net
年金のシステム作ってたのもNTTデータだろ?
NTTデータって、空き巣に絶対に破られない鍵を設置して、
鍵を閉め忘れて出かけるような感じだよね。

560:デフォルトの名無しさん
15/06/13 04:35:41.57 VBb4KC+k.net
あれもうシステムの問題じゃないよなあ
フリーメールで届いた添付.exeダブルクリックする連中とかソーシャルエンジニアリング以前の問題

561:デフォルトの名無しさん
15/06/13 10:21:50.46 +dSTwJzi.net
そんなに蒸し返したいなら言わせてもらう
ユーザが多数で開発者が少数なら、ユーザのせいにするのは非合理的という思想があった
その合理主義の結果がこれ
それとも蒸し返す意図がなくても自然に繰り返されるパターンなのか

562:デフォルトの名無しさん
15/06/13 11:17:16.80 kXcfUXOo.net
結果がこれ ってどれ?

563:デフォルトの名無しさん
15/06/13 11:22:32.93 fmObtMJM.net
はすけるスレだからハスケルの話してね

564:デフォルトの名無しさん
15/06/13 12:05:27.26 +dSTwJzi.net
関数型言語の仕様は意図的かそれとも自然にできたか
衒学的な意図がないならないと正確に説明できれば普及しやすいのでは

565:デフォルトの名無しさん
15/06/13 12:20:08.70 RjEVnwaL.net
>>556
普及するのにそんな御大層なものは要らんよ。
必要なのは次の3つのみ。
・馬鹿でも簡単に始められて、扱いやすいGUIアプリ用フレームワーク
・そのフレームワークと連動するRAD統合開発環境
・数多くのGUIアプリのサンプル
これに加えてスマホアプリも簡単に作れれば尚良い。
逆に、Haskell というアプリ開発環境はこれらが無いから流行らない。

566:デフォルトの名無しさん
15/06/13 13:26:03.85 +dSTwJzi.net
>>557
VBやObj-Cが普及した理由はそれだが長続きしない
それらを終わコンにする圧力があった
MSやAppleでも逆らえない

567:デフォルトの名無しさん
15/06/13 14:42:11.49 gPoekrm5.net
バカに流行る必要なんざ微塵もないだろ。
環境が悪化するだけだわ。

568:デフォルトの名無しさん
15/06/13 14:43:22.99 CpRxCXBF.net
>>559みたいなバカが寄り付いている時点で確かに終わってるな

569:デフォルトの名無しさん
15/06/13 14:55:15.57 fmObtMJM.net
表面じゃなくて内容の話を希望な

570:デフォルトの名無しさん
15/06/13 16:08:55.81 U7fz6F5N.net
「その数式、プログラムできますか?」という本を立ち読みしたら
圏論とSTLがどーたらみたいな謎文章が目に入って困惑している
"圏論 STL"でググれば当該箇所Google Booksで読めるんですけどこれってまともなんですかね?
Haskell関係ないけど圏論がらみということで一つ

571:デフォルトの名無しさん
15/06/13 16:55:46.04 KIURMs4/.net
>>556
何故、普及に拘るの?

572:デフォルトの名無しさん
15/06/13 17:04:10.62 oBvXXQ5V.net
>>562 見たけど、確かに意味不明だ。訳の問題かと思ったが、原文も似たようなもんだな……。
強いて言えば原文の"categorical theories"が和訳では勝手に「圏論(categorical theory)」になってたり、
"not computationally isomorphic"のnotが訳し漏れで「計算上は同型」になってたりと訳の問題も大きくて、
原文のほうは好意的に解釈すればまだ理解可能だけど。

573:564
15/06/13 17:09:54.96 oBvXXQ5V.net
(原文も「好意的に解釈すれば理解可能」なだけで、
For a long time, people believed that only categorical theories were useful for programming
云々は聞いたこともないので違う並行宇宙の話としか思えないw)

574:デフォルトの名無しさん
15/06/13 18:44:09.66 P5CgqW+9.net
普及しないと、ゴミみたいな知識に終わるからだ。
普及させたくない層もいるけど、ごく一部だろう。
普及すると、割を食うのはトップ層だからな。

575:デフォルトの名無しさん
15/06/13 20:11:39.38 sBN7IsLr.net
category theory(圏論)とcategorical theoryは別物なのかw
誤訳するのもわからなくもない
(notの訳し漏れは論外)
URLリンク(en.wikipedia.org)
> "Categorical theory" redirects here. Not to be confused with Category Theory.

576:デフォルトの名無しさん
15/06/13 20:13:41.36 xQVzvj+B.net
>>566 俺は総合的には普及してほしくないとは思わんが、
普及するとゴミが増えるのも事実

577:デフォルトの名無しさん
15/06/13 20:21:22.10 ZkFtP6do.net
>>558
そうは言っても、そうとう長続きしてきたような気がするが。
>>557 は普及する要因ではあってもオワコン化する原因ではないんじゃないか?
それとも、>>557 のせいでオワコン化が早まったということ?
何れにしても、Haskell はその歴史は長いくせに、
アプリ開発という点では未だに始まってすらいないよな。
方法論の研究は行われてるのかな?

578:デフォルトの名無しさん
15/06/13 20:43:48.20 jKGoCo7L.net
なにか適当な GUI のからくりはないものか

579:デフォルトの名無しさん
15/06/13 21:00:56.80 EFCkVZsH.net
GUI開発環境はともかく、「方法論」は手続き型やオブジェクト志向でも
それこそゴミしかないと思うんだが。

580:デフォルトの名無しさん
15/06/13 21:18:01.62 ZkFtP6do.net
>>571
まだまだゴミだと評価しようが、
その方法論で実際に数多くの多種多様なアプリが作られてる。
これからも現場で起きた問題に対して改善案が提案されていくと思う。
... --> 問題 --> 提案 --> 問題 --> ... というサイクルができてる。
で、Haskell(関数型)はどうなのよ、という話。
一歩引いた立ち位置の研究者から提案された方法論が現場で使われ始めた段階なのか、
それとも、そういう方法論すらまだ無い状態なのか。

581:デフォルトの名無しさん
15/06/13 21:19:33.57 jKGoCo7L.net
モナディウスはどうしているのだろう?

582:デフォルトの名無しさん
15/06/13 21:22:43.08 SsnyuIbc.net
単体テストは関数的なほうが副作用ないから簡単だよな。
ミクロなデザインパターンとかも、そもそも不要か自明になるってよく言われてるとは思う。
マクロな開発プロセスは普通と変わらないんじゃない?

583:デフォルトの名無しさん
15/06/13 21:32:42.37 ZkFtP6do.net
>>573
あれは、取りあえず作ってみただけで、その後が続かなかったよね。
あれを叩き台にして色々議論されることもなく、
Haskell でこんなこともできるんだと言われて、それで終わり。

584:デフォルトの名無しさん
15/06/14 00:34:08.79 RWIDraJH.net
モナディウスって名前だけで方法論がわかる
他のアプリを真似すればいいんだろ

585:デフォルトの名無しさん
15/06/14 08:27:51.02 OtrhG80a.net
スーパートップ層 普及を望んでいる
トップ層 普及を望んでいない
中堅層 普及を望んでいる
下位層 普及を望んでいないか、どっちでも良い

586:デフォルトの名無しさん
15/06/14 09:07:11.87 kkYM1O8c.net
>>577
proof it!

587:デフォルトの名無しさん
15/06/14 10:09:03.75 Pjcz0hD2.net
>>573
コード読めないの?馬鹿なの?

588:デフォルトの名無しさん
15/06/14 10:32:05.79 SL/F9php.net
プログラムなんてのはツールなんで
用途に応じた使い方ができればそれでいい。
一番売れるのは安くてシンプルな電卓だろうが
使う用途や人間を選ぶ高機能な関数電卓や、
ソロバンや計算尺にもそれぞれ需要がある。
計算尺振り回して「使い方が分からん。
こんなモンはゴミだ」と喚いても
メーカーもユーザも苦笑か失笑しか出来ん。

589:デフォルトの名無しさん
15/06/14 15:29:34.67 L5Y5b9kK.net
sm26445256

590:デフォルトの名無しさん
15/06/15 02:53:59.25 LOIdsEui.net
基地外に愛されてしまうのもHaskellの業の深いところだ

591:デフォルトの名無しさん
15/06/15 07:50:18.85 Hdxb2Sdn.net
基地外を呼び寄せる言語‥どういうところがそうなんだろう?
prolog とかにはなぜ寄らないのか?

592:デフォルトの名無しさん
15/06/15 08:34:53.82 9GGhHIhr.net
一言で言えば、Haskell使える俺カッコイイみたいな言語だから

593:デフォルトの名無しさん
15/06/15 09:14:23.05 IHPL8idc.net
俺カッコイイとかいう常套句に、異常さを伝える力はない
まあオオカミ少年みたいに常に言い続ければそのうち当たるわな

594:デフォルトの名無しさん
15/06/15 22:02:16.43 vBLMZKIz.net
Haskell使える俺TUEEEEEEE

595:デフォルトの名無しさん
15/06/15 22:04:05.10 Hdxb2Sdn.net
lisp/scheme じゃないのはどうして?

596:デフォルトの名無しさん
15/06/15 23:00:49.05 q35vzvCm.net
田中死ね
ボレロレイプされろ

597:デフォルトの名無しさん
15/06/16 00:19:10.77 WwZ8EXS4.net
>>580
いまどき計算尺はごみでしょ。

598:デフォルトの名無しさん
15/06/16 01:06:35.60 nO6QHrwV.net
>>589
需要があるから生産も販売もされてる訳で。

599:デフォルトの名無しさん
15/06/16 08:02:12.01 4c+taF0x.net
言いたいことはあってると思うしわかりやすいが
さすがにHaskellは計算尺じゃないだろw

600:デフォルトの名無しさん
15/06/16 21:51:02.26 CcjDjnqw.net
まあ計算尺もわからないような奴がHaskell学んでもたいした事できないだろう
ところで計算尺ってなんだ

601:デフォルトの名無しさん
15/06/16 22:34:00.92 0ci32UBo.net
計算尺、今ではほとんど使わないんだろうけど、あの仕組みを考えた人は天才だと思う

602:デフォルトの名無しさん
15/06/16 23:17:45.09 MDYhP0lu.net
ghciのコマンドのヘルプみてたんだが、なんでこれコンポーザブルになってないんだ?
:browse や :info で得た情報を他のコマンドに渡して処理できれば便利やん。
っていうか、:list hoge でhogeのソースを見れるのに:edit hogeは無理なのか...
いちいちファイル名を探してこなきゃならんのは面倒だよ。

603:デフォルトの名無しさん
15/06/17 00:38:11.14 iYY4vjEN.net
シェルが便利すぎてCを書く必要があまりない某OSで型が厳格でない言語が流行したから
型のためには便利なコマンドを規制するべきと判断したのではないだろうか

604:デフォルトの名無しさん
15/06/17 06:02:52.89 UUD++cQ/.net
reduce を map で実装して何か意味あるの?

605:デフォルトの名無しさん
15/06/17 08:06:07.46 iYY4vjEN.net
敵が来てから武器を作ると間に合わないという理由で、使わない無駄な武器を作ってる

606:デフォルトの名無しさん
15/06/17 08:28:31.12 6y+hRJoT.net
reduceとmapを持ってなきゃいけない型クラスのminimal complete definisionsに使えるかも

607:デフォルトの名無しさん
15/06/17 09:11:03.75 0QSt0PBy.net
普通にreduceでmapを実装すればいいやん

608:デフォルトの名無しさん
15/06/17 11:54:20.02 FwmlJS0O.net
>>598
Control.Functor.Zipの下に来なきゃいけなくなるから超不便だと思う。

609:デフォルトの名無しさん
15/06/18 11:51:58.85 zIn+ti7/.net
「b を a で実装可能」という関係は
反対称律「a <= b かつ b <= a ならば a = b」を満たさない

610:デフォルトの名無しさん
15/06/19 15:33:03.81 dN77ILvV.net
                  ,.-―: ̄`ー::::::::::、
                /::::::::::::.::::::::::::::::::::::::::::`::、、
               /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
               l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
               l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
              l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
              l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
              ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
             ヽ:::::    ̄ .)::;  l  ̄   l::::/
              、:::::..   /:::; .,-、     l:::/、
               ::::::::  ゝヽ- ー' 、     l::/,
                ,:、:: / ,--、,-.、_ l     /
    ,.:':'゙'゙'゙:゙'゙':';.        、::、 `ー ̄-'    /
   r゙ ,.: :;;;:: : : :           、::ヽ      /:
   | : ::::~';::--ー'ー-----ーー;;:'゙ .: :` ‐- 、  |
  ,i    ::::::::::::::::::::::::::::::: ::: :ヾ        i
  r'     ::::::::::::::::: : : :::::: :::::  ::::. .      /
  |      :::::::::: : : : : ::: ::  ::         イ
  i      : : ::::::::::: : : ::::::: :         |
  |      ,.;イ-- .,           ,... -' i
   i      ,.;':/   ゙'ー-.,_ i    ,.イ::  /
  .i::::   /:/        ̄i   / ゙i   |
  │::  ノ::/         |   i   |  |
 r':: イ:::::i゙            |  |   i   |
 |:: | ヽ '-.,         ヽ 〈    ヽ ヽ.,
 i, , '-, ゙'ー'ー'          ヽ、`,ー、  `'ー'ー'

611:デフォルトの名無しさん
15/06/19 20:00:49.31 rvqvJJVS.net
岡部犬ってか

612:デフォルトの名無しさん
15/06/21 14:34:33.88 yL+fCFF6.net
ポイントフリー信者はmapが1変数関数かもしれないと思っている
g = map f
引数 :: a -> b
結果 :: [a] -> [b]
しかし決め付けやレッテル貼りを嫌うのでmapが2変数関数である可能性も否定しない
彼らにとって引数を書くことはレッテルを貼ることに等しい

613:デフォルトの名無しさん
15/06/21 20:14:27.96 HwEzsZwl.net
意味ワカンネ
つうかポイントフリー信者がどうだろうが
Haskellにはそもそも1変数関数しかないのだが

614:デフォルトの名無しさん
15/06/21 20:18:32.21 RBHwsW1q.net
>>605
>Haskellにはそもそも1変数関数しかないのだが
どういう意味?

615:デフォルトの名無しさん
15/06/21 20:33:23.95 HwEzsZwl.net
Haskellではa->b->c は常にa->(b->c)であって
(nullary constructorをとりあえず脇に措けば)
普通の関数のアリティは本質的に1だけだ。

616:デフォルトの名無しさん
15/06/21 21:08:54.24 pK1SDj/K.net
たしかすごHにもそんな説明あったな

617:デフォルトの名無しさん
15/06/21 21:12:32.01 7XsQ/1hl.net
607を補足すると、
f :: X -> Y -> Z
は 「X型変数とY型変数を取ってZ型の値を返す関数」 というより
「X型変数を一つ取って『Y型変数を一つ取ってZ型の値を返す関数』を返す関数」 ということだな。
言葉で書くと却ってわかりづらいな。

618:デフォルトの名無しさん
15/06/21 21:12:49.77 HwEzsZwl.net
正確ではなかったので訂正しておく。
関数型の値としての関数は常に1引数だ。
データ構築子はそもそもこの意味の関数ではない。

619:デフォルトの名無しさん
15/06/21 21:14:20.58 HwEzsZwl.net
あと、関数は常に1引数なのでHaskellにカリー化はそもそも存在しない。

620:デフォルトの名無しさん
15/06/21 21:22:10.14 7XsQ/1hl.net
>>611
そのように言われてしまった
curry :: ((a, b) -> c) -> a -> b -> c
さんの気持ちを答えよ(140字)

621:デフォルトの名無しさん
15/06/21 21:24:27.97 Sh7VBIsF.net
(それは雰囲気一緒なのでそういう名前になってるのでいわゆるカリー化とはちょっと別では)

622:デフォルトの名無しさん
15/06/21 21:40:32.89 HwEzsZwl.net
>>612
それはカリー化でもなんでもない。
見ての通り
(a,b) -> c
のアリティは1だ。

623:デフォルトの名無しさん
15/06/21 21:42:45.93 7XsQ/1hl.net
・多引数関数が存在するかどうか、の議論の前に「多引数関数とは何か」を定義したほうがいい。
・立場や考えた方によって「多引数関数とは何か」は異なりうる。
・一つの答えは「タプルを引数に持つ関数」
・「タプルという一つの引数を持ってるだけですよね?」というツッコミ。
よーく気をつけないと「多引数関数とは何か」 という話を蒸し返してしまう。

624:デフォルトの名無しさん
15/06/21 21:51:01.56 HwEzsZwl.net
Haskellの関数型構築子(->)の性質から関数型の値としての
関数の引数は常に(->)の左に来る型なんだからな。
タプルを引数にとるのが多引数だと言い出せば
リストを引数にとるのは可変長引数だということになる。
後者がおかしいと思うなら前者もおかしい。

625:デフォルトの名無しさん
15/06/21 22:16:31.58 X7jEdUgs.net
Text.Printf 「呼んだ?」

626:デフォルトの名無しさん
15/06/21 22:29:13.88 yL+fCFF6.net
mapは単項演算を可変長引数にする
reduceは二項演算を可変長引数にする
というのは別におかしくない
Haskellにこだわらない人ならそう思う可能性がある

627:デフォルトの名無しさん
15/06/22 00:13:49.02 egF2isgn.net
         ,.-―: ̄`ー::::::::::、
       /::::::::::::.::::::::::::::::::::::::::::`::、、
      /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
      l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
      l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
     l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
     l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
     ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
    ヽ:::::    ̄ .)::;  l  ̄   l::::/    < 排便ダン
     、:::::..   /:::; .,-、     l:::/、
    ,―::::::::  ゝヽ- ー' 、    l::/,、ヽ
     l,、,、,,:、:: / ,--、,-.、_ l    /::::::,、,、l
   l,、,、,、,、,、::、 `ー ̄-'   /:::::::::::,、,、l
   l,、,、,、,、,、,、::ヽ      /::::::::、,、,、,、,ノ:\
      /⌒\〆',  `  ̄ ´  ゝ/⌒\
    /  ノつ\ ・    ・  /⊂  ヽ!
o0○ノ  /  3  \ (::::⌒ヽ / とノ\ ヽ○0o
(    /、_ノ\   Y `(_、_)   /  \´  )゚
 \_)    `ヽ   : :;;*:;   : : : |    (_ノ
         人__;;:;;、___ノ          ヽヽ        ヽヽ
             ;:;;:;;:;,,           ─┐ |  |   ─┐ |  |
          ∬ ;;:;::.;::.::;::..:;:..: ∬          /  |  |      /.  |  |
      ・~   ;::;.:;:;:;:;:.:;:.:::.;:;:;.:.:.:          ノ    ノ  ┐ ノ    ノ  ┐
          ∬;;;:::;;;:;:.:;:.::.:;;.:.;.:;.:; ∬                 ┴    ヽヽ     ┴
              :"

628:デフォルトの名無しさん
15/06/22 07:30:14.32 7ItaFFjL.net
不毛な議論はやめろ

629:デフォルトの名無しさん
15/06/22 07:38:37.78 8relXNjB.net
毛の壁だから不毛な訳ない

630:デフォルトの名無しさん
15/06/22 08:33:39.76 jkkSdEVt.net
不毛な議論はやめて早く契約をという
きみたちはいつもそうだ

631:デフォルトの名無しさん
15/06/22 10:49:06.51 HczZ6Mad.net
>>607
有り体に言えばそうなるわな

632:デフォルトの名無しさん
15/06/22 16:22:57.80 uDj89vD5.net
         ,.-―: ̄`ー::::::::::、
       /::::::::::::.::::::::::::::::::::::::::::`::、、
     /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
     l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
     l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
    l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
    l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
    ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
   ヽ:::::    ̄ .)::;  l  ̄   l::::/
    、:::::..   /:::; .,-、     l:::/、
     ::::::::  ゝヽ- ー' 、     l::/,
      ,:、:: / ,--、,-.、_ l     /        
       、::、 `ー ̄-'    /
         、::ヽ      /:
    /´⌒´ヽゝ ─ 'ヽ⌒ヽ
   /   ィ   ,  ヽ  , )` `ヽ
  /    ノ^  ー   '` ー 'ヽ   ゙i
.. ノ  ,,,ノ            Y´゙  )
 (   < |             !  /
  ヽ_  \           ノ_/
    ヽ、__ ヽ.ー     @  ノ  ソ、
      〈J .〉  ヾ、.::;;;;;;::.ノ |ヽ-´
      /""     ;ミシミッ  .|
      レ    .イ、_∪ノ  .リ
     .,ゝ    ,ノ   |  ' ヽ ノ
    / ` レリ  i´   リ
    i    /    `、   i'
     〉  イ      〉  |
    /  ::|      (_ヽ \、
   (。mnノ       `ヽ、_nm

633:デフォルトの名無しさん
15/06/22 20:02:55.77 yB0CTLEJ.net
毛の壁を風化させない勢、なんなんですかね

634:デフォルトの名無しさん
15/06/23 02:22:17.45 wiF7wKM1.net
rubyで言うところのcase文はhaskellでどう書くとスマートですか?
case x #長さ1の文字列とする
when 'a'..'z'
...
when '0'..'9'
...
when '#'
...
else
...
end

635:デフォルトの名無しさん
15/06/23 05:33:12.62 EWNumgnc.net
引数の性質で場合分けするなら素直なのはガードだけど
もっとかっこいいやり方はあるかも
f :: Char -> a
f x
| x `elem` ['a'..'z'] =
| x `elem` ['0'..'9'] =
| otherwise =

636:デフォルトの名無しさん
15/06/23 11:17:40.69 30kOauSN.net
reduce関数やrange関数やmap関数は、
命令型のループでしか書けません。なぜならば、ノイマン型コンピュータという
ハードウェアは究極的には命令型でしか動作しないからです。
関数型の機械語なんて存在しません。

637:デフォルトの名無しさん
15/06/23 12:56:24.51 HcqKhimH.net
オブジェクト指向言語の機械語も存在しないけどな。
究極的には人間は原子でてきてますとか言われてふーんとかはーとかしか思わんし
目の前�


638:フ人が美人かどうかは原子関係ないすね。



639:デフォルトの名無しさん
15/06/23 13:34:07.31 DUXK3D31.net
>>628を見てこれを思い出した↓
>あのさー、「二次元はただの絵」なんて言葉には何の意味もないわけよ。当たり前すぎる。
>ただの絵って、そりゃ絵だよ。そんなの誰にでもわかるって。
>これは言い換えるとね、例えば友達が彼女の写真を見せてくれたとして、
>「これはただのインクの集合だ」と言ってるのと同じなわけよ。
>もっと言うと、友達の恋人を指差して、「こいつはただのタンパク質だ」と言ってるのと同じなわけよ。
>別に間違ってないよ。写真はインクだし、人間はタンパク質だ。でもそれがなんだっての?
>インクだから感情を抱くのは間違いだ、タンパク質だから好きになるのは間違いだ、とでも言うの?
>それはちょっとバカすぎるね。バカすぎる。「二次元はただの絵」ってのはそういうのと同じなんだよ。
>好きになるのは人格としての、存在としての彼女だろうが。物理的構造なんてどうだっていいんだよ。
>そんな当たり前のこともわからないわけ?

640:デフォルトの名無しさん
15/06/23 13:47:23.60 6v7jQlnd.net
ノイマン型じゃないアーキテクチュアとか普通に存在するし、
FPGAのお蔭で個人レベルでもできるんだが。

641:デフォルトの名無しさん
15/06/23 14:35:28.11 GZlJHPMK.net
まあ関数型言語が機械語のようなもので定義されることが多いのは事実だよね
あとは
「定義の循環なんて存在してはならない」
という思い込みを否定できるかどうか
それさえ否定できれば、逆に機械語を関数型で定義する可能性も理解できると思う

642:デフォルトの名無しさん
15/06/23 14:49:11.65 rMQdQ9WV.net
import Data.Char で isAlpha とかが使えるからちょっとだけ楽になるね(構造としての格好良さではない)

643:デフォルトの名無しさん
15/06/23 14:50:45.63 5/w+bsnn.net
>>628は毛の壁ブログのコピペ
URLリンク(kenokabe-techwriting.blogspot.jp)

644:デフォルトの名無しさん
15/06/23 18:05:36.94 x4Ozc/Jn.net
エロ漫画でヌいてる奴に、「それむっさいオッサンが描いた絵だよ」って言って萎えさせる奴いるけどさ、
むっさいオッサンが生み出したものでヌいておかしいっていうなら、そのむっさいオッサンに可愛い娘さんがいたらセックスしたいと思わないのかね

645:デフォルトの名無しさん
15/06/23 19:55:42.17 909KpOvq.net
定義が循環しちゃまずいだろ

646:デフォルトの名無しさん
15/06/23 21:15:50.96 6v7jQlnd.net
>>632
>まあ関数型言語が機械語のようなもので定義されることが多いのは事実だよね
なにいってんだか意味がわからん。
関数型言語の意味論が機械語で与えられた例なんかないだろ。

647:デフォルトの名無しさん
15/06/23 21:17:42.47 AaIPqvR+.net
多分定義と実装取り違えてる

648:デフォルトの名無しさん
15/06/23 21:37:51.41 rcOEv9Ao.net
ひょっとして(e?)BNFのことを言ってるのかな?

649:デフォルトの名無しさん
15/06/23 23:28:11.76 GZlJHPMK.net
仕様書に未定義とか書いてあるのは
完全な定義は実装で決まるという意味なんじゃないの

650:デフォルトの名無しさん
15/06/23 23:35:23.41 FjdLJNiv.net
その実装にはどんな非決定的な穴があってもいいんだよ

651:デフォルトの名無しさん
15/06/24 00:16:40.45 KkHlevhV.net
>>640
それは実装依存で未定義とは区別することが多い

652:デフォルトの名無しさん
15/06/24 00:26:39.98 MR5fwWu8.net
実装が定義、ソース読め
ってことじゃないの

653:デフォルトの名無しさん
15/06/24 01:16:05.07 k2PpIK+f.net
>>643
そんな(少し前までの)Rubyみたいなこと言われても。
>>640
未定義っつうのは文字通り未定義。
言語仕様にないので、なにが起きようが関知しない。
未定義動作の結果オレの財布が空になっても富士山が噴火しても構わない。
というか、もっと正確に言えば、未定義部分は言語仕様がないのだから
そこがどうなっていようが、それはその言語の「実装」とすら言えない。

654:デフォルトの名無しさん
15/06/24 02:27:11.04 zaWMLH1h.net
>>640
(まともな言語における)未定義ってのは、その部分については、各実装によって内部表現が異なっても構わないという明言だよ
要は速度と効率のために各ベンダに独自の最適化が許される、意図的に定義されない部分
そういう未定義部分に依存しないコードを書くのはプログラマの責任

655:デフォルトの名無しさん
15/06/24 02:58:03.53 k2PpIK+f.net
そりゃ意味と機能の問題を取り違えてる。
未定義動作を許すことが何の役に立つかと未定義動作そのものが何かは別の問題だ。

656:デフォルトの名無しさん
15/06/24 07:27:51.62 uN9f53jR.net
現実に起こる問題といえば
未定義の部分はコンパイラ作成時点でテストして保証されてないから
出力が一意になるかわからんし最悪実行不可能なファイルが生成されるかもしれないってくらいか

657:デフォルトの名無しさん
15/06/24 07:37:20.43 NJ59k6EW.net
>どんな非決定的な穴があってもいい
>オレの財布が空になっても富士山が噴火しても構わない
実装がどうなるか予知できないと書いてあるだけだが
「予知能力がない」ではなく「全知全能の筆者が許可した」と解釈すると大変な事になる

658:デフォルトの名無しさん
15/06/24 11:36:01.73 Dk9G0+2n.net
数学で
0以外の実数を0で割れば解なし
0を0で割れば未定義
みたいな

659:デフォルトの名無しさん
15/06/24 13:33:31.02 q/iymKMR.net
それはどっちも未定義

660:デフォルトの名無しさん
15/06/24 13:41:36.12 RcaJrYdV.net
仕様が未定義ならどんな実装してもかまわないので「0を0で割ると富士山を噴火させる」実装もOK

というだけ。

661:デフォルトの名無しさん
15/06/24 15:06:59.29 4h3P/eVf.net
URLリンク(twilog.org)

662:デフォルトの名無しさん
15/06/24 18:30:23.37 jBd8hVQL.net
非決定性プログラミングしたい場合
Lisp系だとambや継続使って解を1つみつけて終了だけど
モナド使うと全ての解を列挙できるってことでいいのかな

663:デフォルトの名無しさん
15/06/24 21:39:12.60 RcaJrYdV.net
>>653
わりとマジであなたが言ってることイミフ。
「非決定性」だとか「継続」だとか難しげな言葉を振りかざすのではなく
基礎からきちんと学ぶことをおすすめします。

664:デフォルトの名無しさん
15/06/24 22:58:58.61 +CIvGoel.net
>>653
妙な思い込みをしているようだけど…
グレアムのOn Lispに、簡易Prologみたいなのを実装する非決定性プログラミングの例が載ってるから、
ちょっと勉強してみたら?

665:デフォルトの名無しさん
15/06/25 01:30:55.42 L5oPYlD8.net
二重ループの内側で無限に列挙してしまったら外側は1個めでフリーズする
Haskell使ってもこの問題はなくならない

666:デフォルトの名無しさん
15/06/25 01:49:40.68 tWs5pbMG.net
それ、ただの単純ループですやん
非決定性ともバックトラックとも遅延評価とも関係ない…

667:デフォルトの名無しさん
15/06/25 08:02:56.67 L5oPYlD8.net
というか、ただの問題だから
出題範囲とか関係ない

668:デフォルトの名無しさん
15/06/25 09:34:06.79 En38UG6V.net
質問なのですが、HASKELLはJAVASCRIPTと比べてどのぐらい力強いですか?

669:デフォルトの名無しさん
15/06/25 10:42:57.71 GMFUAARU.net
>>659 (haskell の戦闘力は) 53万です

670:デフォルトの名無しさん
15/06/25 12:46:25.61 jSlSTYLT.net
CPUヘビーなことは向かないなんて泣き言いわない

671:デフォルトの名無しさん
15/06/25 13:31:24.59 X9iBWgn+.net
>>659
JavaScriptがフリーザだとしたら、Haskellは18号くらい

672:デフォルトの名無しさん
15/06/25 16:41:37.97 YBkNncXP.net
以下の関数をCPSに書き換えよ。
とか、その後の難しい話の下準備の為に修行できるドリルみたいなサイトありませんか?
なるべく解答付きで。

673:デフォルトの名無しさん
15/06/25 17:09:47.33 B9JLKsO8.net
>>663
qiita 7shi で検索。

674:デフォルトの名無しさん
15/06/25 17:20:28.66 B9JLKsO8.net
あ、あとCPSは階乗とフィボナッチのCPS版を見つけてきて、
fac(3)とかfib(4)あたりを手で簡約して見ると原理がわかる。
いったん理解すれば、あとは殆ど機械的に変換できるようになるよ。
そういや最初にCPS理解したときはその後しばらくCPS猿みたいなコード書いてたな……

675:デフォルトの名無しさん
15/06/25 17:32:34.99 5pnqx1ov.net
でも a -> b -> c を a -> b -> m c に書き換えるのは
arityが見えるとかいう意味不明な能力がないとできないよね

676:デフォルトの名無しさん
15/06/25 21:38:45.58 YBkNncXP.net
stack がパッケージの依存地獄を解決すると聞いて駆けつけました!

677:デフォルトの名無しさん
15/06/25 21:40:43.48 YBkNncXP.net
>>664
頑張ります

678:デフォルトの名無しさん
15/06/25 23:22:04.84 LfFLypOB.net
Freeモナドを上手に役立ててる例、ってなんかないですか?

679:デフォルトの名無しさん
15/06/25 23:33:50.49 eM2m5jCT.net
不便だと思うところに役立てればいいんじゃないかな

680:デフォルトの名無しさん
15/06/26 00:28:21.26 bFSe+PPP.net
>>670
料理のレシピのためのミニ言語、は楽しくてよかったんですが、便利か、実用的か、っていうとそうでもない感じがしました。
モナド的側面、つまり、前のコマンドの結果に応じて後に続くコマンドを変えられる、って性質を有効利用できれば良い、と思うのですが、いい案が浮かばず…
たまごを焼きすぎたらスクランブルエッグは諦めてたまご焼きにする。
うーん

681:デフォルトの名無しさん
15/06/26 01:05:51.23 sGcqyMBf.net
Freeモナドが使えそうなところでは大抵の場合、
finally taglessな表現/Symanticsを使う方がいい。

682:デフォルトの名無しさん
15/06/26 20:39:02.22 hymME7nU.net
なんとなくわかった
returnとjoinを作れないまたは作れるが使いたくない場合にFreeモナドを使うんだろ

683:デフォルトの名無しさん
15/06/28 07:58:01.92 UfM5xTqU.net
ほざけ無能ども

684:デフォルトの名無しさん
15/06/28 09:29:10.20 PsA9Isd2.net
>>674
どうした突然。何かつらいことでもあったのか。

685:デフォルトの名無しさん
15/06/28 14:22:33.44 eK2mTTNw.net
HaskellerはOCamlerを見下してますか?

686:デフォルトの名無しさん
15/06/28 14:45:38.67 oAeIj0m7.net
HaskellerかつOCamlerですが何か?

687:デフォルトの名無しさん
15/06/28 15:08:18.01 CsAfdxFY.net
オーキャメルってすごいの?

688:デフォルトの名無しさん
15/06/28 15:45:29.76 sCkqyjMf.net
ほとんど同じ
型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ
全然すごくない

689:デフォルトの名無しさん
15/06/28 17:40:06.78 A43RH85D.net
開発環境は、その上で作られた成果物と、
作るのに使ったリソース(人、時間、金など)で比較すべき
まぁ、たいした成果物が挙げられないようでは話にならんがな

690:デフォルトの名無しさん
15/06/28 18:22:42.20 sCkqyjMf.net
どうせそう言われるだろうと思って
言われても平気な言語を二つも三つも覚えるんだよね
観賞用、保存用、予備みたいなあれ

691:デフォルトの名無しさん
15/06/28 18:45:49.13 TzgnuxBg.net
寄らば大樹の陰(笑)

692:デフォルトの名無しさん
15/06/28 20:48:17.29 sCkqyjMf.net
同じのを三個買ってきたのに使用頻度のデータを取るのは時間と金の無駄だろ

693:デフォルトの名無しさん
15/06/28 22:57:53.15 GoQYkhEF.net
>>677
あなたはHaskellを知ってるOcamlerです。Haskellerではありません。

694:デフォルトの名無しさん
15/06/28 23:08:27.40 PermaxaH.net
宗教かよ

695:デフォルトの名無しさん
15/06/28 23:24:45.18 CsAfdxFY.net
じゃあ、ここでEmacsとVimの雌雄を決しようぜ

696:デフォルトの名無しさん
15/06/29 05:59:50.21 Qi5/2Z+9.net
Ocamler = 岡村

697:デフォルトの名無しさん
15/06/29 06:43:23.70 brwnweVx.net
>>684
調査する側が答えを決めてるなら世論調査とかビッグデータとか無意味だな

698:デフォルトの名無しさん
15/06/29 10:57:15.25 8+Jbzv8W.net
>>679
>型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ
>全然すごくない
才能を感じるw

699:デフォルトの名無しさん
15/06/29 20:28:54.62 UsldY24Z.net
おまえらえらそうにほざいてるけど、HaskellでGUIアプリ作れんの?

700:デフォルトの名無しさん
15/06/29 20:34:47.53 I6LM+XSd.net
>>690
ほざいてないし作れない

701:デフォルトの名無しさん
15/06/29 22:11:01.07 6j3t6Ku/.net
ほざいたし作った

702:デフォルトの名無しさん
15/06/29 23:37:46.91 dOBb6but.net
今 Haskell で GUI アプリを作ることにどれほどの意味がある?
無駄に苦労するだけで、たいしたメリットは得られないと思うが。
C# や Java などの方が意図したことを素直に書けると思うぞ。

703:デフォルトの名無しさん
15/06/29 23:43:17.21 8+Jbzv8W.net
>>690
作れるし作っているが楽しくはない。

704:デフォルトの名無しさん
15/06/29 23:46:32.90 QGo7kC4a.net
GUI原理主義なんなの?

705:デフォルトの名無しさん
15/06/29 23:56:20.64 NIwVXw8K.net
(Haste で javascript にコンパイルして)作ってる

706:デフォルトの名無しさん
15/06/30 00:41:54.66 xJJVLGS/.net
>>695
EmacsとVimを懲らしめる主義(適当)

707:デフォルトの名無しさん
15/06/30 01:13:42.18 Jhz+vTOP.net
Autocadは基本コマンド。

708:デフォルトの名無しさん
15/06/30 07:58:21.93 c40dQzwL.net
>>693 状態のセーブがすげー簡単
苦労は特にない

709:デフォルトの名無しさん
15/06/30 08:02:38.09 c40dQzwL.net
というかHaskellだろうが何だろうが
GUIなんかロジックの部分に比べれば簡単

710:デフォルトの名無しさん
15/06/30 12:03:29.96 xY5YXWOJ.net
そうやって【自称関数型】のヤカラはいつも逃げる
GUIで使えるアプリも書けない

711:デフォルトの名無しさん
15/06/30 12:19:59.61 avn7235t.net
Gtk2hsとか

712:デフォルトの名無しさん
15/06/30 12:55:10.53 g8mVBFW2.net
いや普通にwxHaskellでもなんでも使って書けるから。
ただ抽象化が巧く嵌らないから楽しくないだけ。

713:デフォルトの名無しさん
15/06/30 15:13:39.82 X6br0/jB.net
ウィンドウシステムで動く以上、オブジェクト指向が一番いいんじゃないの。
ウィンドウってオブジェクトそのものだし。

714:デフォルトの名無しさん
15/06/30 17:14:12.45 vxf+DpiB.net
メッセージを受け取る関数 Message -> IO () で引数をパターンマッチすればいいよ
Cのswitch文を使うウィンドウシステムと同じ

715:デフォルトの名無しさん
15/06/30 18:20:38.25 c40dQzwL.net
GUIどころかOSごとHaskellで書いた例:URLリンク(programatica.cs.pdx.edu)

716:デフォルトの名無しさん
15/06/30 18:42:24.07 X6br0/jB.net
>>706
2chで作ってたOSにも及ばない感じに見える。
世界の一流研究者が集って10年かけて作ったものがこれでは、Haskellの
実力が低いように見える。
ドヤって感じで出されると余計。
少なくとも2chで作ってたOSは、もう少し実用性があった。

717:デフォルトの名無しさん
15/06/30 18:51:10.78 X6br0/jB.net
昔、JSはCの二倍速いとか、JavaはCの20倍速いとか言われてて、ベンチマークが
2chのスレに貼り付けられてた。
今のHaskellは同じような感じがする。
JSは、アプリケーションを拡張するのに使えばとても楽な言語だし、Javaは
互換性やわかりやすさに焦点をあてた言語。
良い部分を宣伝したらいいと思うのだけど、どうも原理主義の人は欠点を
否定することに一生懸命になる。
Haskellはこういうことに向いてないね、でも出来ないわけじゃないよって
位で良いんじゃないのかな。

718:デフォルトの名無しさん
15/06/30 19:02:56.27 c40dQzwL.net
>>706 言いたいことはわからなくもないが全然「一流研究者が集まって」ないからw

719:デフォルトの名無しさん
15/06/30 19:04:08.01 c40dQzwL.net
>>707 のまちがいスマソ

720:デフォルトの名無しさん
15/06/30 19:10:15.18 9foLA8yU.net
2chのOSってhigeponが作ってたmonaでしょ。目的が違うし、実用性も同程度だと思うが。
そういえばhigeponさんも関数型erになったが最近どうしてるんだろう

721:デフォルトの名無しさん
15/06/30 19:55:09.60 FWhQ2ahg.net
Haskellが得意とする(向いている)アプリケーションとは何でしょうか。
また、なぜそれが他言語に比べてHaskellが有利だと言えるのでしょうか。

722:デフォルトの名無しさん
15/06/30 20:01:42.67 g8mVBFW2.net
>>712
構造を持ったデータの処理・操作。
理由は人智を超えない範囲で充実した型システム。

723:デフォルトの名無しさん
15/06/30 20:34:52.77 vxf+DpiB.net
リスクの高いアプリケーション
得意なことは何かではなく最悪のケースは何かを考えること
理由は型システム

724:デフォルトの名無しさん
15/06/30 20:54:40.33 FWhQ2ahg.net
>>714
リスクというのは人命ですか?
もしかして医療関係のアプリケーションでよく使われていますか?

725:デフォルトの名無しさん
15/06/30 21:54:36.59 vxf+DpiB.net
人命というのは何か違う気がする
単に死ぬことと意図的に殺すことを区別できなくなる

726:デフォルトの名無しさん
15/06/30 21:57:27.47 X6br0/jB.net
F-35にHaskellが使われたなら信じる。

727:デフォルトの名無しさん
15/07/01 00:19:00.28 hCLvX6t9.net
>>699
>> 状態のセーブがすげー簡単
これどういう意味? MonadIOの中だったらどこでもliftIO でファイル保存アクション実行できるよ、ってこと?

728:デフォルトの名無しさん
15/07/01 08:39:27.15 tJW6CsdE.net
>>704←固定観念に囚われてる愚か者の事例。

729:デフォルトの名無しさん
15/07/01 08:49:50.77 wl+QWyy/.net
ちょこっとかじった初心者ですが、
型システムのおかげでバグが出にくいっていう長所は
GUIアプリ作るときにも活かされますか?

730:デフォルトの名無しさん
15/07/01 09:37:31.97 I91Dcp9K.net
>>720
Haskellつかったらバグが自動的に減るのではなく、
強力な型システムのお陰で、型レベルのバグがコンパイル時に
検出できるだけ。Cなんかではポインタへの誤ったキャストが
コンパイルを通ってしまい実行時(システムが稼働したとき)にようやく
発見されるという惨事が相次いだので、コンパイル時に前倒し
してエラーを補足できるという点が期待されていた。
現実には型が合っていても実装を間違うことはあるので、
Haskell使ったら「自動的に」高品質になるというのは完全嘘だと思ってる。

731:デフォルトの名無しさん
15/07/01 10:28:08.57 tOajYpeJ.net
自分でHaskell書いたことのない奴が多すぎだろ
713くらいしかまともなこたえがない

732:デフォルトの名無しさん
15/07/01 11:45:24.51 gMCljQ/I.net
>>720
GUIはコロコロ仕様が変わるので
むしろバグっぽいコードも書けるというメリットのほうが大きい

733:デフォルトの名無しさん
15/07/01 11:45:40.65 zqTVEjze.net
型が強力なので、バグ以前に、適切な型を考えて、それに従って関数書けば
自然にプログラム書けて楽なことが多い。Type-directedプログラミングというか。

734:デフォルトの名無しさん
15/07/01 11:48:56.78 zqTVEjze.net
>>718 いや単に状態が陽だから、何をセーブすれば良いかわかりやすい、というだけ。
まあGUIアプリに限った話ではないか。

735:デフォルトの名無しさん
15/07/01 12:00:05.77 XEDFaQMZ.net
テスト駆動とかだったらテストをHaskellで書く筈だが
Type-directedはHaskellを書く機会を減らしてしまう諸刃の剣

736:デフォルトの名無しさん
15/07/01 14:49:29.48 rMwDHu3x.net
Haskellで書けばバグが完全に駆逐できるという話をよく聞く。
Haskellは並列化が効率的に行えるのでC++の10倍速いと言う記事を見た。

737:デフォルトの名無しさん
15/07/01 16:22:48.22 YQJkkFEW.net
リスクの最たる例が人命というなら、地球を一人の人間と捉えた場合、経済はその血流であろう。血流を止めると地球さんがヤバい
経済界に寄与するソフトウェアを他言語版より多く送り出しているならばHaskellはリスクと戦う最前線の言語だといえよう

738:デフォルトの名無しさん
15/07/01 18:22:25.85 NjN/zNsy.net
で、おまえらGUIアプリ書けるのか?
Haskellでカットアンドペーストできるエディタやペイントソフト書けんの?

739:デフォルトの名無しさん
15/07/01 18:22:57.88 NjN/zNsy.net
おまえらは「机上」でしか語れない

740:デフォルトの名無しさん
15/07/01 18:35:28.08 wHMLdS0x.net
クリックカウンターおじさんのエミュレーションやめろ

741:デフォルトの名無しさん
15/07/01 18:38:03.08 tOajYpeJ.net
GUIライブラリのコンポーネント使っていいなら誰にだって書ける。
もちろんHaskellでも問題なく書ける。エディタでバイト列収納しとくための
ロープから実装しろという話ならHaskellはかなり有利だ。

742:デフォルトの名無しさん
15/07/01 19:31:24.61 W0dcBNHQ.net
>>730
確かに、机上の空論からのぶっつけ本番は非常に危険だ
しかし机上を危険視するのは間違っている

743:デフォルトの名無しさん
15/07/01 19:53:03.17 XO0z7h0V.net
そもそも情報処理って机上がものいう世界だろ

744:デフォルトの名無しさん
15/07/01 19:53:39.62 XO0z7h0V.net
クリックカウンターおじさん本人なんじゃないか?

745:デフォルトの名無しさん
15/07/01 20:02:00.78 I91Dcp9K.net
机上の空論よりヘボくても動けるものを作れる奴が偉いとか典型的なマウンティング

746:デフォルトの名無しさん
15/07/01 20:16:46.99 zqTVEjze.net
>>726 QuickCheck?

747:デフォルトの名無しさん
15/07/01 20:18:47.95 zqTVEjze.net
>>727 それは嘘かhype

748:デフォルトの名無しさん
15/07/01 20:25:01.06 N2f2t6hF.net
>>732
Haskellが凄いという話はよく聞く


749:し、現代的なGUIエディタの実装に超有利という話も出てきた。 ところが、Haskellで書かれた著名なエディタは無いし、ライブラリやコンポーネントを使うなどと言うけど、 そのライブラリやコンポーネントはHaskellで書かれた著名なものがあるの? 極端な話、そんなに有利なら、Haskellで書かれたコンポーネントをそして APIを他の言語から使ってるんじゃないの。 凄い凄いという話をよく聞くものの、最終的にC/C++で書かれたライブラリを 呼び出せますよって話になる。 C/C++を呼び出してて本当にHaskellの凄いところであるゼロバグを実現できるの? 言っとくけど、C/C++は容易にバグが紛れ込むし、Haskellのようにゼロバグなんてことは無いよ? Haskellから呼び出すだけで、C/C++のバグも本当に消えるの?



750:デフォルトの名無しさん
15/07/01 20:30:36.90 WaFLqKtq.net
ぐうの音もでん

751:デフォルトの名無しさん
15/07/01 20:35:48.17 hkSyx5v6.net
C/C++ラッピングに頼るのは、国産OSを開発せずWindowsやUnixやLinuxに頼るようなものだ
Haskellネイティヴなライブラリへの置き換えが必要ではないか

752:デフォルトの名無しさん
15/07/01 20:40:40.77 RlBRpOsX.net
>>739 誰もそんなこと言ってない。
どこかよそで読んだなら、まともな話かどうか判定するからソース教えて

753:デフォルトの名無しさん
15/07/01 20:45:43.16 hhCpaelW.net
この世界、技術的に良いものが必ずしも広まらないことは日常茶飯事。
逆に、マイナーだから優れている、も成り立たないが。

754:デフォルトの名無しさん
15/07/01 20:56:44.98 4S8xRTlr.net
>>739
Haskellで自動回避できるのは型の不整合にまつわるバグであって、算法上のバグを回避できるわけじゃあないよな
システム記述言語としてのHaskellは、他言語に比べて特に凄いということはないよ
動かしながらバグを取る必要があるのはC/C++と同じ

755:デフォルトの名無しさん
15/07/01 20:59:56.29 WaFLqKtq.net
まあ、最近Facebookが出して世間を賑わしてるリアクティブプログラミングも元はHaskellで作られたやつだ。
あと、テストライブラリのQuickcheckも色んな言語に輸出されてるね。
思うんだけど、Haskellerのみんなの興味が、売れるアプリ、広く使われるソフト、
で必要とされるもんとズレてんじゃないかな。
1. その言語を使える技術者の確保が容易
2. ハード(スマホ)の最新機能がすぐ使える、
ドキュメントが豊富

756:デフォルトの名無しさん
15/07/01 22:46:09.54 SBuzyDQs.net
ArrowがあればMonadは要らんのやな
最初からArrowにしとけばよかったやん

757:デフォルトの名無しさん
15/07/01 22:54:31.49 hkSyx5v6.net
元はHaskellで作られたのに実践は他言語だったの?
Haskellは何か実践的開発上の問題を抱えてるの?

758:デフォルトの名無しさん
15/07/01 23:08:08.48 1n3wggjU.net
つまんない煽り愛してないでまともな話しろ

759:デフォルトの名無しさん
15/07/01 23:09:21.21 WaFLqKtq.net
>>747
もちろんHaskellのリアクティブライブラリもそれなりに使えるもんだったし、以降今に至るまで派生ライブラリがたくさん作られた。
でも、javascriptの方がより賑わっていて(開発者が多くて)Facebookにも資金力がとても高い、ってことさ。
つまり、Haskellの弱さは人がいないことだ、と俺は思う。
なぜ人がいないかは、理由は色々あるけど、外から見て何が得意なのかがよくわかんないつーのが大きくて、それはHaskellでの目に見える成果があんまり無いからで、その理由は人がいないからで、つまり

760:デフォルトの名無しさん
15/07/01 23:32:51.19 W0dcBNHQ.net
>>747
逆に他言語で実践できない部分にガラパゴス化という問題があるとも言える
ガラパゴスが強いと思うか弱いと思うかは人それぞれ

761:デフォルトの名無しさん
15/07/01 23:50:13.91 j1v8qj3k.net
つまりクリックカウンターおじさんの言ってることは正しい面もある、と?

762:デフォルトの名無しさん
15/07/02 01:00:22.82 xB5xsyxT.net
言語仕様の話がしたいのか、ライブラリ群の話がしたいのか。

763:デフォルトの名無しさん
15/07/02 01:43:36.68 0H4A+sBi.net
技術的内容を理解していない知ったかぶりの言葉遊びは無用。よそでやれ

764:デフォルトの名無しさん
15/07/02 06:15:08.75 0QJ6vZJG.net
言葉遊びをやめさせるには沈黙するインセンティブが必要
黙秘権とか
逆に、対案を出せなど沈黙しないことが強く求められれば言葉遊びはもっと酷くなる

765:デフォルトの名無しさん
15/07/02 09:19:10.46 RsQjnldo.net
”クリックカウンターおじさん”という名誉棄損の呼び名を確認。

766:デフォルトの名無しさん
15/07/02 09:50:57.63 L8xarZNp.net
クリックカウンターのような状態遷移をHaskellでは作れないという批判?

767:デフォルトの名無しさん
15/07/02 10:03:54.46 u7x11Nqb.net
クリックカウンターおじさんの問題提起については評価しないとだめだな。

768:デフォルトの名無しさん
15/07/02 10:28:08.52 zhB7tSAg.net
環境構築(cabal)がクソでライブラリを探すのも入れるのも更新するのも面倒くさいってのも有ったんじゃない
Stackでどうなるか

769:デフォルトの名無しさん
15/07/02 11:10:25.42 e+SQ5knv.net
著者が挙げている「クリックカウンター」や「お絵かき」の類を作成するのに特別なexpertiseは不要で、
単に使用するGUIライブラリ・グラフィックスライブラリのドキュメントが読めれば充分なので、
その趣旨は私にはまったく判然としません(当該の記事で著者がOCamlで「お絵かきロジック」を
実装してみせよと要求する一方で自身ではJavaScriptによるそれを公表していない点も気になります)。
もちろん、OCamlであれHaskellであれ破壊的代入の類の副作用を使用せずに書くのもなんら困難ではありません。

770:デフォルトの名無しさん
15/07/02 13:57:23.04 y1SlVF6x.net
字数増やせば賢く見えるわけじゃないんですよ

771:仲本だいすけ
15/07/02 15:06:12.36 ZQFEgiVc.net
あの疑似科学野郎を黙らせるのになぜ半年もかかったのか?

772:デフォルトの名無しさん
15/07/02 17:11:55.72 L8xarZNp.net
>>758
環境のクソさのお陰でわりと布教しづらかったので stack にはマジ期待してる
>>759
なんら困難ではない。。。かなぁ???

773:デフォルトの名無しさん
15/07/02 17:35:08.64 xB5xsyxT.net
破壊的代入なしで書くのは別に困難じゃないだろ。
入出力そのものを副作用だと言い出すならどんな言語でも無理だしな。

774:デフォルトの名無しさん
15/07/02 17:46:38.81 FcRiDZyX.net
>>759
当事者ご降臨ですかw
確かに保身第一、全く相手にしてませんが何か?っていう答え方だな

775:デフォルトの名無しさん
15/07/02 18:22:32.80 aW/wUO6R.net
>>761
おまえらの不徳の致すところ

776:デフォルトの名無しさん
15/07/02 18:30:48.79 e+SQ5knv.net
おいおい、単に URLリンク(qiita.com) からのコピペだぞ。検索もできんのか…

777:デフォルトの名無しさん
15/07/02 18:55:57.21 y1SlVF6x.net
宣言型プログラミング言語スレで脳内設定エスパーしろとな

778:デフォルトの名無しさん
15/07/02 19:00:17.41 xB5xsyxT.net
Ocamlアイドル ‏@no_maddo 24時間
追記部分があるのを知らなかった、めっちゃ面白かったです
関数型言語 - 『関数型プログラミングに目覚めた!』のレビュー(Day-1)
on @Qiita URLリンク(qiita.com)

kenokabeさんの謎クリックカウンタとお絵かきのネタは仙台でも大人気だ!

779:デフォルトの名無しさん
15/07/02 19:26:05.17 gqhA8KsA.net
これが何に使えるのかよくわからない。

780:デフォルトの名無しさん
15/07/02 21:46:14.33 E90eWw9y.net
>>766-767
その程度のために Googleモナドを持ち出すなど軟弱な

781:仲本だいすけ
15/07/03 01:48:03.52 RZmOyo0m.net
                  ,.-―: ̄`ー::::::::::、
                /::::::::::::.::::::::::::::::::::::::::::`::、、
               /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、
               l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l
               l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l
              l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l
              l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l
              ヽ:::: ´、ひ> ;:  l .<ひ>'  、::::::::/
             ヽ:::::    ̄ .)::;  l  ̄   l::::/
              、:::::..   /:::; .,-、     l:::/、
               ::::::::  ゝヽ- ー' 、     l::/,
                ,:、:: / ,--、,-.、_ l     /
                 、::、 `ー ̄-'    /
                   、::ヽ      /:
                 r‐''''^¨^⌒ ̄ ̄ ̄ヽ
               ,ノ`,           \
              ノ/             ヽ
             ι.}           λ    )
             ヽ(,.          ノ!   r'
               (          l  .,/
              ノ,,,,,,,,,,,,,,,,,,,,,,,,,,,,丿へ
             ノ              ,)
             (  ∵ ∧∵    /,,丿
             \,,,,/人\__ノ   /
             (  ) (__)    (   )
            《  l (___)   《 ̄ ̄》
           《__(____)  《____》

782:デフォルトの名無しさん
15/07/03 03:37:23.69 aag7hyI7.net
180°回る首

783:デフォルトの名無しさん
15/07/03 08:29:08.65 8+5j5k8x.net
>>761
相手が弱者だと思って戦いを始めるやつは撤退する口実を作れないから泥沼化する
強敵ならいつでも撤退を正当化できるのに

784:デフォルトの名無しさん
15/07/03 08:38:57.07 R0ApVOfB.net
>>763
入出力は副作用でしょ普通
入出力無しにGUIを描くと言ってるのと同じで矛盾してる

785:デフォルトの名無しさん
15/07/03 08:39:40.10 uImfavx2.net
あほか

786:デフォルトの名無しさん
15/07/03 08:41:04.32 wl7u/SNJ.net
>>774
意味論による。

787:デフォルトの名無しさん
15/07/03 08:46:11.05 R0ApVOfB.net
>>776
言ってる事が理解できないので詳しく
入出力で参照透過性を維持できる説明もよろ

788:デフォルトの名無しさん
15/07/03 09:04:39.28 wl7u/SNJ.net
>>777
IOモナドの仕組みくらい自分で調べたらよろしい。
そして、グラフ書換系のどこにも副作用なんかない。

789:デフォルトの名無しさん
15/07/03 09:11:48.16 R0ApVOfB.net
>>778
グラフ書換系はGUIとは関係ないだろう
はぐらかさないで説明ヨロ

790:デフォルトの名無しさん
15/07/03 09:15:30.38 wl7u/SNJ.net
>>779
IOモナドは世界状態RealWorldを取るStateモナドと同じ意味論を与えることができる。
Stateモナドに副作用がないのと同様にIOモナドはモナドにも副作用はない。これが1。
IO a を RealWorld -> (RealWorld, a) と元の形に直した上で
Haskellのグラフ書換系上で入出力がどう見えるか考えてみればいい。これが2。
これでわからんなら私のせいではない。

791:仲本だいすけ
15/07/03 09:46:07.14 6Fdm7Fxt.net
疑似科学おじさんまだいるの?病院行こうよ

792:デフォルトの名無しさん
15/07/03 09:57:24.37 p7lUbcZE.net
岡部氏の「もっと世界観を」には賛成。
しかし関数プログラミングやFRPは銀の弾ではないとも思う。
なぜこうも銀の弾が出てこないのか?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch