1 名前:デフォルトの名無しさん [2015/04/09(木) 08:31:01.42 ID:4yjREsCN.net] 関数型プログラミング言語 Haskell について語るスレです。 ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ < 毛の壁(岡部健)の話は禁止な 、:::::.. /:::; .,-、 l:::/、 ,―:::::::: ゝヽ- ー' 、 l::/,、ヽ l,、,、,,:、:: / ,--、,-.、_ l /::::::,、,、l l,、,、,、,、,、::、 `ー ̄-' /:::::::::::,、,、l l,、,、,、,、,、,、::ヽ /::::::::、,、,、,、,ノ:\ haskell.org (公式サイト) www.haskell.org/ 前スレ 関数型プログラミング言語Haskell Part27 peace.2ch.net/test/read.cgi/tech/1420718555/
2 名前:デフォルトの名無しさん [2015/04/09(木) 08:33:16.96 ID:4yjREsCN.net] 関連サイト (英語) Haskell - Wikibooks, open books for an open world (ページ内に内容をまとめたPDFあり) en.wikibooks.org/wiki/Haskell Learn You a Haskell for Great Good! (『すごいHaskellたのしく学ぼう!』の無料オンライン版) learnyouahaskell.com/chapters Real World Haskell (同名書籍の無料オンライン版) book.realworldhaskell.org/read/ (以下、日本語) Haskell入門 5ステップ - HaskellWiki (公式サイト内、日本語入門セクション) www.haskell.org/haskellwiki/Haskell%E5%85%A5%E9%96%80_5%E3%82%B9%E3%83%86%E3%83%83%E3%83%97 Haskell - Wikibooks (先述Wikibooksの日本語版。未編集の項目、多) ja.wikibooks.org/wiki/Haskell Programming in Haskell www.sampou.org/cgi-bin/haskell.cgi Haskell のお勉強 www.shido.info/hs/ Haskell Programming www.geocities.jp/m_hiroi/func/haskell.html 本物のプログラマはHaskellを使う:ITpro itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/
3 名前:デフォルトの名無しさん [2015/04/09(木) 08:34:30.02 ID:4yjREsCN.net] 関連書籍検索一覧 (「米」は米国amazon、主に洋書。「日」は日本amazon、主に和書) Keyword = "Haskell" (米) www.amazon.com/s/rh=n:283155,n:3839,k:Haskell (日) www.amazon.co.jp/s/rh=n:492352,k:Haskell Keyword = "functional programing" (米) | "関数 プログラミング" (日) (米) www.amazon.com/s/rh=n:283155,n:3839,k:functional%20programing (日) www.amazon.co.jp/s/rh=n:492352,k:%E9%96%A2%E6%95%B0%20%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0&ie=UTF8 ----
4 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 08:52:46.19 ID:6OGmwsxh.net] なんでこここんなに勢いあるの?
5 名前:デフォルトの名無しさん mailto:sage [2015/04/09(木) 12:37:43.43 ID:SXMrA4Vi.net] 新しいおもちゃ見つけて はしゃいでるだけだよ
6 名前:デフォルトの名無しさん [2015/04/09(木) 18:23:19.49 ID:M2ohLgg+.net] これが関数型にプログラミングに対するアレコレを防ぐ盾Haskellちゃんですか
7 名前:デフォルトの名無しさん mailto:sageteoff [2015/04/10(金) 00:05:35.97 ID:rXOjr/Cy.net] >>1-2 に不備や誤りがあり、その個所のみを正していくと見た目が煩雑になるので、 以下でまとめて書き改めておきます(>>3 はそのまま使用)。
8 名前:デフォルトの名無しさん mailto:sageteoff [2015/04/10(金) 00:06:42.77 ID:rXOjr/Cy.net] 関数型プログラミング言語 Haskell について語るスレです。 haskell.org (公式サイト) https://www.haskell.org/ 前スレ 関数型プログラミング言語Haskell Part27 peace.2ch.net/test/read.cgi/tech/1420718555/
9 名前:デフォルトの名無しさん mailto:sageteoff [2015/04/10(金) 00:11:18.13 ID:rXOjr/Cy.net] 過去スレ一覧 26) http://peace.2ch.net/test/read.cgi/tech/1406436392/ 25) http://peace.2ch.net/test/read.cgi/tech/1393313450/ 24) http://toro.2ch.net/test/read.cgi/tech/1382705669/ 23) http://toro.2ch.net/test/read.cgi/tech/1376111807/ 22) http://toro.2ch.net/test/read.cgi/tech/1364009659/ 21) http://toro.2ch.net/test/read.cgi/tech/1358702176/ 20) http://toro.2ch.net/test/read.cgi/tech/1350428908/ 19) http://toro.2ch.net/test/read.cgi/tech/1340760070/ 18) http://toro.2ch.net/test/read.cgi/tech/1331902463/ 17) http://toro.2ch.net/test/read.cgi/tech/1325510368/ 16) http://toro.2ch.net/test/read.cgi/tech/1317958045/ 15) http://hibari.2ch.net/test/read.cgi/tech/1310199414/ 14) http://hibari.2ch.net/test/read.cgi/tech/1299385928/ 13) http://hibari.2ch.net/test/read.cgi/tech/1286706874/ 12) http://hibari.2ch.net/test/read.cgi/tech/1272536128/ 11) http://pc12.2ch.net/test/read.cgi/tech/1252382593/ 10) http://pc12.2ch.net/test/read.cgi/tech/1231861873/ 09) http://pc11.2ch.net/test/read.cgi/tech/1211010089/ 08) http://pc11.2ch.net/test/read.cgi/tech/1193743693/ 07) http://pc11.2ch.net/test/read.cgi/tech/1174211797/ 06) http://pc11.2ch.net/test/read.cgi/tech/1162902266/ 05) http://pc8.2ch.net/test/read.cgi/tech/1149263630/ 04) http://pc8.2ch.net/test/read.cgi/tech/1140717775/ 03) http://pc8.2ch.net/test/read.cgi/tech/1076418993/ 02) http://pc2.2ch.net/test/read.cgi/tech/1013846140/ 01) http://pc.2ch.net/tech/kako/996/996131288.html
10 名前:デフォルトの名無しさん mailto:sageteoff [2015/04/10(金) 00:14:16.42 ID:rXOjr/Cy.net] 関連サイト (英語) Haskell - Wikibooks, open books for an open world (ページ内に内容をまとめたPDFあり) http://en.wikibooks.org/wiki/Haskell Learn You a Haskell for Great Good! (『すごいHaskellたのしく学ぼう!』の無料オンライン版) http://learnyouahaskell.com/chapters Real World Haskell (同名書籍の無料オンライン版) http://book.realworldhaskell.org/read/ (以下、日本語) Haskell入門 5ステップ - HaskellWiki (公式サイト内、日本語入門セクション) https://wiki.haskell.org/Haskell%E5%85%A5%E9%96%80_5%E3%82%B9%E3%83%86%E3%83%83%E3%83%97 Haskell - Wikibooks (先述Wikibooksの日本語版。未編集の項目、多) http://ja.wikibooks.org/wiki/Haskell Programming in Haskell http://www.sampou.org/cgi-bin/haskell.cgi Haskell のお勉強 http://www.shido.info/hs/ Haskell Programming http://www.geocities.jp/m_hiroi/func/haskell.html 本物のプログラマはHaskellを使う:ITpro http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/ [入門]関数プログラミング―質の高いコードをすばやく直感的に書ける! http://gihyo.jp/dev/feature/01/functional-prog
11 名前:デフォルトの名無しさん mailto:sageteoff [2015/04/10(金) 00:28:02.86 ID:rXOjr/Cy.net] 以上、>>8-10 、及び>>3 が正しいテンプレです。 なお、>>9-10 は(一部の専ブラを除き)URLがリンク化されていないと思いますが、2ちゃんねるの 新規制で1レス内の外部リンク数が制限されるようです(スレ立ての場合を除く?)。そこで当該URLの 一部分に数値文字参照を用いて回避したための産物です。ご了承を。
12 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 03:29:01.19 ID:KZNYLMbm.net] 関数型プログラミング言語Haskell Part28 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1428597032/
13 名前:デフォルトの名無しさん [2015/04/10(金) 06:51:05.28 ID:CIf+UAaH.net] アホな質問でスマンが、 すごいhaskell本のp140 7章 木を植えよう の treeInsert関数が 型引数a と 引数xを比較してるように見えるんだけど haskell初心者の自分にしては意味不明なんだけど どういう事なんだ。。。
14 名前:デフォルトの名無しさん [2015/04/10(金) 07:05:02.76 ID:ZILiwe6J.net] 関数型は銀の弾丸なのか?
15 名前:デフォルトの名無しさん [2015/04/10(金) 12:09:31.13 ID:tgPQdxTN.net] おい、毛の壁のブログが更新されたぞ なんか、脳内の関数型コミュニティーと戦っとる
16 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 12:31:20.47 ID:ff5t5Whl.net] >>13 aは型引数じゃなくてパターンマッチで用いてる方だと思われ treeInsert x (Node a left right) のa
17 名前:デフォルトの名無しさん [2015/04/10(金) 13:04:40.10 ID:C/bkXAcX.net] 次立ったんだ、乙
18 名前:デフォルトの名無しさん [2015/04/10(金) 13:18:21.19 ID:y7KG2L/p.net] >>15 開いた口が塞がらない。
19 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 13:18:42.90 ID:apwty0cJ.net] ドン毛ホーテには風車がドラゴンに見えるんだよ
20 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 13:50:13.44 ID:R8l9PNq/.net] そんなものいちいち報告しなくてよろしい >>13 そう見えて紛らわしいのでyに読み替えていい
21 名前:デフォルトの名無しさん [2015/04/10(金) 15:25:29.23 ID:iRFxon+y.net] 俺の友達の友達が、某まつもと氏と知り合いなんだけど、この前、岡部氏の事を高く評価されていた。 ちゃんと見てる人は見てるし、世界クラスにもなると岡部氏の記事が容易に理解できるんだろうね。
22 名前:デフォルトの名無しさん [2015/04/10(金) 15:27:33.90 ID:iRFxon+y.net] おまえら関数型コミュニティのチャイルディッシュな発想からは 岡部氏のような創造には至らない
23 名前:デフォルトの名無しさん [2015/04/10(金) 19:43:04.83 ID:/T7b06ac.net] このエントリの内容は概ね正しいの? qiita.com/sct/items/44ed6fedb3c315e80705
24 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 20:59:25.97 ID:JUcvVYvq.net] もっとエンタープライズおじさんが好みそうな感じの売り込み方すれば流行る Haskellは最先端の計算機理論にもとづいた システム開発の効率化とプログラムの自動生成および プログラムの標準化を実現する高機能な関数型言語です ・高速で高信頼性 コンパイル型言語のため高速なデータ処理が行え 型安全なため信頼性の高いプログラムが生成できます。 これによりシステムの信頼性・整合性が向上します。 さらに保守フェーズにおける効率化も実現します
25 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 21:00:15.54 ID:JUcvVYvq.net] ・プログラミングレス 処理ではなくデータに対して注
26 名前:目し どのように処理したいのか宣言的に記述を行います。 これにより設計書ベースでの業務プログラム開発を行う環境を提供します。 ・ダウンサイジングへの対応 ホストコンピュータ、オフィスプロセッサだけでなく UNIXマシンを実行環境とするソフトウェア開発が行える開発環境を実現できます これにより異なるOSへのソフトウェア移植も容易に行えます ・業務に最適化した記述 単一の言語にて各種の業務に合わせた専用の記述形式を用意できるため 旧来の基幹システム開発のジェネレータ言語で問題になっていた 実際の業務との不整合のための非効率な作業を排除できます [] [ここ壊れてます]
27 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 21:03:34.25 ID:dP0/e/so.net] 学習コストwwwwwwwwww
28 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 21:09:22.58 ID:JpfDZLA2.net] このスレは天才禁止
29 名前:デフォルトの名無しさん mailto:sage [2015/04/10(金) 21:18:45.46 ID:JUcvVYvq.net] よし、学習コストが問題なら COBOL風のDSLを書けばすべて解決するな!
30 名前:デフォルトの名無しさん [2015/04/11(土) 00:32:26.25 ID:yKCF81vS.net] www.amazon.co.jp/dp/4798043761 この本がテンプレに入ってないとかにわかの集まりかよここ
31 名前:デフォルトの名無しさん [2015/04/11(土) 00:50:21.52 ID:EIYF0vjB.net] >>24-25 こういう紹介されるとすげーつまんなそう聞こえるなw
32 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 00:55:28.45 ID:QE/0qqyV.net] Haskellerにエンタープライズしぐさが備わり最強に見える
33 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 02:29:30.13 ID:tV+Qw8l4.net] 本スレ誘導 peace.2ch.net/test/read.cgi/tech/1428597032/
34 名前:デフォルトの名無しさん [2015/04/11(土) 05:25:12.70 ID:3ysa7CQc.net] ハスケルって読むのこれ?
35 名前:デフォルトの名無しさん [2015/04/11(土) 14:47:55.18 ID:7QTRUsgm.net] 『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』 www.amazon.co.jp/dp/4798043761/ 名著の予感
36 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 15:12:12.25 ID:OMIW7dLX.net] Haskellはその本に関係ないじゃん javascriptスレに貼りなよ
37 名前:デフォルトの名無しさん mailto:sage [2015/04/11(土) 17:35:37.54 ID:BHEErXA4.net] Kaleidoscopeのチュートリアルやってるけどsoがリンクできねー
38 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 12:14:23.85 ID:1ufa80Mz.net] Halcyon使ってる人いる?
39 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 12:31:57.57 ID:ZMVnoNXo.net] 諸君、議論したまえ
40 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 17:48:53.46 ID:c/eluCW1.net] >>37 公式HP見たが、結局何をするものなのかよう分からんかった。 Haskellで作られたアプリケーション専用のインストーラ?
41 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 19:14:22.05 ID:B8mBNkjP.net] データベース接続先などの外部設定ファイルを起動時に一度だけ読み取ってその後はその値を使いまわしたい 純粋関数型言語のHaskellらしい設計や解決法を教えてください
42 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 19:37:41.19 ID:1ufa80Mz.net] >>39 やっぱり? 俺も公式見たけど分からなかった ググっても日本語まったく引っかからないけど Cabalの公式ページで紹介されてるくらいだし使ってる人居るのかなって
43 名前:デフォルトの名無しさん mailto:sage [2015/04/12(日) 19:55:27.61 ID:c/eluCW1.net] >>40 それは Configurations Problem といって、 アプリケーションを作る上で言語問わずぶち当たる問題。 (解決の難しさは言語によるが) Haskell でもいくつか解法が提案されているから、ググってみて。
44 名前:デフォルトの名無しさん [2015/04/12(日) 21:33:01.14 ID:skbmhi5R.net] >>40 起動時に読み込んで後は変更がないならunsafePerformIO使う。
45 名前:デフォルトの名無しさん [2015/04/13(月) 07:09:06.13 ID:2F6fpEK8.net] 154 名無しさん@ゴーゴーゴーゴー! 2015/04/11(土) 11:41:16.75 ID:XmyizTso0 わかってない奴多いけど、岡部がQiitaアカウントを剥奪されたのは、 間違ったことを書いたからではなく、批判と向き合わなかったからでもなく、 単にコメント欄に、他者の個人情報含めた暴露と、根拠のない言い、誹謗中傷レベルの言いがかりを名指しで続けたからだよ。 あそこで野田の名前出すか普通?
46 名前:デフォルトの名無しさん [2015/04/13(月) 07:16:38.90 ID:WAzsEDwP.net] Haskell 初心者です。分からない事があるのですが、すごいHaskell本のp93の import Data.List wordNums :: String -> [(String,Int)] wordNums = map (\ ws -> (head ws, length ws)) . group . sort . words このwordNums関数がよく分かりません、wordNums関数を使う場合、何故String(=[Char]?)を渡してwords関数がちゃんと適用されるのでしょうか? mapの定義は map :: (a -> b) -> [a] -> [b] map f xs = foldr (\ x acc -> f x : acc) [] xs こんな感じだと思っているのですが、 それだとStringの一文字毎にfが適用されていく事になり全く意味が無いと思ってしまいます…(実際はちゃんと文字列に対するwordsになっているのですが) 日本語が分かりにくくて申し訳無いのですが、分かった方はどなたか解説して頂けたら頂けたら嬉しいです…
47 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 07:51:32.36 ID:sSjAttKF.net] >>45 その少し下の方に書いてある、ポイントフリーじゃない版を見れば mapがどう適用されてるか理解できるはず
48 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 10:17:44.49 ID:gz5WXRUc.net] cabal build で自分でgccを使って生成した.soファイルをリンクすることってできますか? ghcではghc ~.so --make Main.hs -o Mainでやっていたのですが、同じことをcabalで行う方法が分かりません
49 名前:デフォルトの名無しさん [2015/04/13(月) 13:56:46.50 ID:H7xRrVnS.net] >>45 そこんところに適用されていく様子が書いてあるでしょ。 wordNums "wa wa wee wa"なら words "wa wa wee wa" → ["wa", "wa", "wee", "wa"] sort ["wa", "wa", "wee", "wa"] → ["wa", "wa", "wa", "wee"] group ["wa", "wa", "wa", "wee"] → [ ["wa","wa","wa"], ["wee"] ] map (¥ws->(head ws, length ws)) [ ["wa","wa","wa"], ["wee"] ] → [("wa",3),("wee",1)] で、一目瞭然だと思うんだけどなにが分かんないの? ポイントフリーだから混乱してるとかそういう話? wordNums xs = map (¥ ws -> (head ws, length ws)) $ group $ sort $ words xs 敢えて最後に引数補ってこう書いてあればわかったりするのかしら。
50 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 15:56:16.90 ID:5UiTPbcQ.net] これが巷で噂の新人君を三ヶ月で辞職に追い込んでいくスタイルだ。 だがちょっと待って欲しい、 >>48 をスタイル抜群女パイセンの台詞に脳内変換してみるとどうだろう?
51 名前:デフォルトの名無しさん [2015/04/13(月) 18:51:08.84 ID:H7xRrVnS.net] >>49 こんなんで辞職に追い込まれないだろw で、>>45 の疑問がわかった気がする。wordsNumの定義を (f = ¥ ws -> (head ws, length ws) として) map (f . group . sort . words) だと思ってるんだな。 String(=[Char])に対して、合成された関数をmapしてるかのように読んでるんだろう。 正しい構文解析はそうではなくて (map f) . group . sort . words だというだけの話だ(関数適用の結合は関数合成演算子より強いのでそうなる)。
52 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 20:18:57.06 ID:mroSQvvT.net] kenokabe-techwriting.blogspot.jp/2015/04/blog-post.html これマジ読んでみ。飯噴出すから。
53 名前:デフォルトの名無しさん [2015/04/13(月) 21:05:27.45 ID:WAzsEDwP.net] >>50 ありがとうございます!その通りで、おかげで完全に挙動を理解出来ました…! >>46 さんもありがとうございました!
54 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 21:06:37.25 ID:HtEQcKP3.net] >>51 噴き出したwww
55 名前:デフォルトの名無しさん mailto:sage [2015/04/13(月) 22:33:35.71 ID:g1+aVity.net] Yesod の Yesod.Core.cleanPath 関数について2つ質問です。 1つ目 この関数はどのようなタイミングで呼ばれるのでしょうか。 2つ目 この関数の戻り値 Either [Text] [Text] 型の値(の [Text] の部分)に joinPath 関数が第3引数として適用されると考えて間違いないでしょうか。
56 名前:デフォルトの名無しさん [2015/04/13(月) 22:36:15.84 ID:fLjhhhkx.net] だからkenokabeはhaskellもocamlもmlもcoqもscalaも一行も書けないんだから このスレや関数型の言語のスレには全く関係ないだろ javascriptのスレでやれよ 彼はjavascriptしか書けんみたいだし
57 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 19:21:20.43 ID:7ObaBR0M.net] 君達は毛の壁を煽って何がしたいのだ。召喚したいのか?
58 名前:デフォルトの名無しさん mailto:sage [2015/04/14(火) 22:39:30.34 ID:hfFhnDD4.net] 関数型コミュニティに対するポエムの続きが読みたいんでしょ
59 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 01:36:25.39 ID:RG2QVuzc.net] ヲチスレでやってくれないかな
60 名前:デフォルトの名無しさん [2015/04/15(水) 06:30:15.96 ID:MJe1PTeI.net] おい、あの岡部健のアプリだぞwwww www.appjenny.com/Android/App/com.kenokabe.costcobb
61 名前:デフォルトの名無しさん [2015/04/15(水) 06:31:39.99 ID:MJe1PTeI.net] www.iphoneapp.xyz/free/com.kenokabe.costcobb.apk 毛の壁のiOSアプリ、みんな使え〜
62 名前:デフォルトの名無しさん [2015/04/15(水) 10:01:46.78 ID:wcd6okB3.net] あいつアプリ作ってたのか objectivecできるのかあいつ?
63 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 11:14:04.24 ID:32OEEOG2.net] >>60 なんで拡張子がapkなわけ?
64 名前:デフォルトの名無しさん [2015/04/15(水) 14:35:06.68 ID:zDoLrJPm.net] なんちゃって関数型クラスタども、これが世間だよ https://twitter.com/buroburo6/statuses/588156083350458369
65 名前:デフォルトの名無しさん [2015/04/15(水) 23:13:46.91 ID:4gfphDFh.net] 本屋に平積みにされてたら買っちゃう奴いそう
66 名前:デフォルトの名無しさん mailto:sage [2015/04/15(水) 23:27:52.69 ID:Q89pzmWa.net] まだ発売されていないのにいい本とかわかるのか?
67 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 05:47:12.05 ID:J3guke8p.net] え!?もうreturnって書かなくていいの!?pureでいいの?
68 名前:デフォルトの名無しさん [2015/04/16(木) 07:17:46.98 ID:7jUqfvFj.net] スーパークラス化で感心するところそこなのかよwww でもまあ、実のところリストの[]みたいに(pure a)を<a>と書けたりすると Applicativeスタイルにはマッチすると思うんだけどな。
69 名前:デフォルトの名無しさん [2015/04/16(木) 08:50:37.52 ID:0XHfZc1W.net] 毛の壁の事をよく知りたい方は、このまとめPDFもご覧ください。 nmuta.dip.jp/~muta/tog288.pdf
70 名前:デフォルトの名無しさん [2015/04/16(木) 10:28:10.38 ID:Uxi3XrZK.net] [WikiJA-l] Suisui氏より即時無期限ブロックを発動されたFXSTです Ken OKABE xxxxxxxx @ xxxxx.xxx 2006年 9月 9日 (土) 17:31:10 UTC lists.wikimedia.org/pipermail/wikija-l/2006-September/000919.html
71 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 22:13:00.24 ID:9N3+Oa4T.net] wholemeal programming というのは、データ型に対する演算を、 ある構造を受け取って別の構造へと変換する関数によって表現すること、 と捉えて間違いないでしょうか。 Thinking Functionally with Haskell という本に数独ソルバーを作る章があり、 そこで wholemeal programming が出てきました。 行のリストとして表現された9x9行列 type Matrix a = [[a]] に対して、 列のリストや、3x3小行列のリストを得る関数が定義されます。 その際、m :: Matrix a に対して m !! i !! j などとインデックス計算をして個々の要素を参照するのではなく、 行列を転置して列のリストを得たり、3要素ずつグループ化する関数などを合成して小行列リストを得たり、 そうやって構造そのものの形を変換しており、そのようなプログラミングスタイルが wholemeal programming だと紹介されていました。 wholemeal programming というのは、このような構造変換だけでなく、 もっと広い意味を持っているのでしょうか。
72 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 22:25:21.10 ID:9N3+Oa4T.net] >>70 ちなみに、本では構造を変換するとは書かれてなくて、 (インデックス計算するのではなく)行列それ自身を complete entity として扱う関数を定義する と書かれていました。 しかし、言っている意味がよく分からず、実際にやっていたのが構造全体を組み替える処理だったので、 とりあえず >>69 のように捉えてみたしだいです。
73 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 23:22:05.24 ID:3W63KRV6.net] 鶏を裁くのに牛刀を用いるのがwholemeal approach。 最初に効率を一切考えない、正しい解法も含むがいらない処理も沢山してしまう解法を作り、 その後不要な計算をしないよう改良していく手法。 数独ソルバーなら、空欄に1-9の全てのパターンを網羅した9x9行列のリストを作り、 その中から数独のルールに適合するものを取り出す、という方法がスタートになる。 10^(空欄の数)のパターンを全て計算するのは現実的ではないから、必要ない計算をしないようにしていく。 www.cs.nott.ac.uk/~gmh/sudoku.lhs これがその本の元ネタでしょう。
74 名前:デフォルトの名無しさん mailto:sage [2015/04/16(木) 23:41:27.15 ID:C8wOR+dQ.net] 牛刀の例えはネガティブなイメージ出ちゃうんじゃない? 文字通り全粒粉アプローチって訳せば、 最初はゴミ(モミとフスマ)だらけの全粒粉から開発スタートってイメージがわかるかと。
75 名前:デフォルトの名無しさん [2015/04/17(金) 08:20:31.78 ID:xoZHp2iY.net] 1から9を繰り返し足していくのに、ループを使うような原始人から進化するべき 「アルゴリズム」「フロー」を捨てろ。 でないと関数型を追求することは不可能だよ
76 名前:デフォルトの名無しさん [2015/04/17(金) 08:22:08.56 ID:xoZHp2iY.net] 「フロー」というものがプログラミングには不可欠だという固定観念を捨てなきゃ。
77 名前:デフォルトの名無しさん [2015/04/17(金) 08:40:08.59 ID:2I4pOBqW.net] >>72 完全に逆だ。 Huttonのそれが元ネタにしてるのが Richard Birdの本なんだからな。
78 名前:デフォルトの名無しさん [2015/04/17(金) 08:57:05.88 ID:va7l7l3W.net] >>75 フローだのアルゴリズムだの、無い言語があるの?
79 名前:デフォルトの名無しさん [2015/04/17(金) 09:07:42.22 ID:IlVLp4fy.net] ___ | 岡
80 名前:@| | 部 | | 家 | | 先 | | 祖 | | 代 | | 々 | ,,,. | 之 | ,'"';, 、''゙゙;、). | 墓 | 、''゙゙;、),、 ゙''!リ'' i二二二二!゙''l!リ'''゙ ‖ `i二二二!´ ‖ 昌 |: ̄ ̄ ̄ ̄:| 昌 | ̄:|_|;;;l"二二゙゙l;;|_| ̄:| | :|::::::| |;;;;;;;;;;| |::::| :| | :|::::::|┌─┐|::::| :| __ ./゙゙└‐┴ ┴l,,,,,,,,,,l┴┴‐┘゙゙゙゙\ / ̄ \ | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| 〜 & | :::|  ̄|三|三三|三三三三|三三|三| ̄ ~ | 健 ::::| | |::: |: : : : |:: | | | ::::: | | |::: |: : : : |:: | | | ∬ ∬::| /_|::: |: : : :.|:: :|_ヽ |ii,,≦≧、 :ii :::| _|___|;;;;;;;;;;|,;,;,,,,,,,,,,,,,,,;,;,|;;;;;;;;;;|___|_ _ |旦‖===‖旦:| _ l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l -W-----┘二二二二二二二二二└--ff---\-- [] [ここ壊れてます]
81 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 11:31:42.74 ID:NBcEkCSw.net] Haskell というより英語の話。 Maybe aについて、 NothingはいいんですけどJust aの "Just" がどういう気持ちなのか あんまりはっきり理解できていないのですが、みなさんどんなかんじですか? Nothingじゃない方のコンストラクタに使う英単語として選定されたこのjustの(英語としての)意味はどんなもの?
82 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 13:15:32.90 ID:ki8iVvfx.net] アルゴリズムもフローもいらんとなると、演繹というものが存在しなくなるんと違うか
83 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 13:17:48.16 ID:H3Beje5C.net] やっぱり初心者にもはすける ビジネスシーンにもはすけるだろう!
84 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 13:22:59.36 ID:H3Beje5C.net] プログラミング初心者向けのhaskell本で 「はじめてのH」って本だれか書いて?
85 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 13:25:07.77 ID:PzasXWb4.net] 権威に泥を塗られたスピノザという被害者への憐憫は見過ごされがちだ
86 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 15:31:40.71 ID:HcT4Z6BJ.net] >>79 「単なる〜」とか「ただの〜」みたいな意味では ejje.weblio.jp/content/It 's+just+a
87 名前:デフォルトの名無しさん [2015/04/17(金) 16:31:48.10 ID:nxIB1yc7.net] 395 名無しさん@ゴーゴーゴーゴー! 2015/04/17(金) 07:14:27.41 ID:9SxWDYYT0 毛の壁初心者の方へ 現役の弁護士によるツイートをご覧ください そしてRTを https://twitter.com/motoken_tw/status/452009450313097216 https://twitter.com/motoken_tw/status/453696338489016321
88 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 17:31:36.64 ID:1Smloeqb.net] >>84 もしかしたら〜 から まさに〜 になるんだろ
89 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 18:19:06.44 ID:s+nJaO1V.net] Just Systems May-Be SOFT
90 名前:デフォルトの名無しさん mailto:sage [2015/04/17(金) 20:44:35.19 ID:PLmfZzGD.net] >>72 >>73 私の理解は全くの見当はずれでしたね。 本ではことさら indexing との対比が書かれていたので勘違いしてしまいました。 おかげさまで納得できました。 ありがとうございました。
91 名前:デフォルトの名無しさん mailto:sage [2015/04/18(土) 01:23:36.46 ID:cIanB9vz.net] 他言語のdata Option a= Some a | None の方が馴染んでいるのは秘密
92 名前:デフォルトの名無しさん [2015/04/18(土) 20:00:24.92 ID:zBL4xnwg.net] 417 名無しさん@ゴーゴーゴーゴー! 2015/04/18(土) 19:59:37.86 ID:LNSLKYsZ0 岡部ちゃんのブログ更新 kenokabe-techwriting.blogspot.jp/2015/04/lispspinoza.html?m=1 あらら、手抜きコピペの再利用ですね。 一つ前の記事に後悔しちゃって、消すことも出来ないので「目立たなくするように」するためかな? 岡部ちゃんさ、「すでに【脱アルゴリズム宣言】シリーズで述べたように、」 ってあるけど、それはどこを参照すれば良いのかな?(爆笑) コピペリサイクル記事でもさ、せめて、この程度の修正はしようぜ?
93 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 12:21:14.03 ID:BDx+P9mq.net] 原発コピペが去ったと思ったら入れ替わりで毛の壁が来たな
94 名前:79 mailto:sage [2015/04/19(日) 14:41:18.79 ID:pB/4TY1x.net] >>84 反応ありがとうございます。なんか「なんにもない」と「単に5!!!」がやっぱりしっくりこないんですよねえ… もう少し訓練をつんでみます
95 名前:デフォルトの名無しさん [2015/04/19(日) 19:25:20.36 ID:TqE05fjB.net] >>92 Intが入っているかもしれない箱を渡されて、開けたら中身が 「なんにもない」 「ちょうど5」 なだけだろ。なんでそれがしっくりこないのかこそがわからんわ。
96 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 19:44:35.88 ID:g7ko6rYD.net] Justって言葉がしっくりくるかこないかは人の感覚次第だろう 自分もHaskellの文法だからってのを忘れたとすると Maybeの中身がNothingかJust xだというのはいいとして xをMaybeにするためにJust xってするのはもやっとする
97 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 19:47:51.06 ID:HUQoVR+2.net] 紛れもない
98 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 19:49:46.90 ID:HUQoVR+2.net] 分かった。Obvios a に変えよう
99 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 19:56:54.50 ID:bs5hwhjS.net] >>93 そこで「ちょうど」と言うのがしっくりこないのかと。 日本人ならその状況で「ちょうど5」とは言わず、単に「5」と言う。 「ちょうど5」と言うと、では、ちょうどではない曖昧な5もあるのか、 という事になりかねない。 まぁ、Haskell だと何らかの値構築子が必要なわけで、 Just 以外ならどんな名前にするかと訊かれると、返答に困るが・・・ >>96 は冗談だろ
100 名前:デフォルトの名無しさん [2015/04/19(日) 20:33:51.59 ID:TqE05fjB.net] >>97 Maybeが曖昧で、それを無曖昧化した結果がNothingかJust xなんだから、 まさにJustでいいんだ、というのが命名者の発想だろ。 Justの代わりにSomeの方が日本人にはわかんないんじゃないの? 「なし None」と「なんらかの・ある Some」って語感がわかるならいいけど。