関数型プログラミング言語Haskell Part26
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2014/07/27(日) 13:46:32.03ID:deqguEnhhaskell.org (公式サイト)
http://www.haskell.org/
前スレ
関数型プログラミング言語Haskell Part25
http://peace.2ch.net/test/read.cgi/tech/1393313450/
0002デフォルトの名無しさん
2014/07/27(日) 13:46:59.81ID:deqguEnh24) 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
0003デフォルトの名無しさん
2014/07/27(日) 13:47:30.40ID:deqguEnh(英語)
Learn You a Haskell for Great Good! (『すごいHaskellたのしく学ぼう!』の無料オンライン版)
http://learnyouahaskell.com/chapters
Real World Haskell (同名書籍の無料オンライン版)
http://book.realworldhaskell.org/read/
(以下、日本語)
HaskellJP wiki
http://wiki.haskell.jp/
Haskell入門 5ステップ - HaskellWiki (公式サイト内、日本語入門セクション)
http://www.haskell.org/haskellwiki/Haskell%E5%85%A5%E9%96%80_5%E3%82%B9%E3%83%86%E3%83%83%E3%83%97
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/
0004デフォルトの名無しさん
2014/07/27(日) 13:48:41.85ID:deqguEnh(アマゾン米国、主に洋書)
http://www.amazon.com/s/rh=n:283155,n:3839,k:Haskell
(アマゾン日本、主に和書)
http://www.amazon.co.jp/s/rh=n:492352,k:Haskell
----
テンプレは以上です。
0005デフォルトの名無しさん
2014/07/27(日) 14:05:57.69ID:9qpRUKYw●Haskellによる並列・並行プログラミング
Simon Marlow 著
山下 伸夫、山本 和彦、田中 英行 訳
336ページ
定価3,888円(税込)
ISBN978-4-87311-689-1
0006デフォルトの名無しさん
2014/07/29(火) 00:21:24.45ID:60YprUPc0007デフォルトの名無しさん
2014/07/29(火) 10:17:31.50ID:vGNmyN6L0008デフォルトの名無しさん
2014/07/29(火) 12:25:09.20ID:NZfP/Nly0009デフォルトの名無しさん
2014/07/29(火) 13:09:17.04ID:NY6VhvsC0010デフォルトの名無しさん
2014/07/30(水) 04:03:32.33ID:HugqqWEXJavaでいうところの仮装機械が同梱されてるってことじゃね?
0011デフォルトの名無しさん
2014/07/30(水) 07:50:18.87ID:cLkIAZiJ0012デフォルトの名無しさん
2014/07/30(水) 08:51:49.84ID:HugqqWEXMinGWで正規にインストールしとかないと何とかdllが見つかりませんって言われるように
bokunokangaetasaikyounoprogram.exeとrts.dllで動くようにすれば良いんだよ
0013デフォルトの名無しさん
2014/07/30(水) 14:42:30.44ID:cLkIAZiJこんどは実行環境で DLL hell に悩まされるんですね(白目
0014デフォルトの名無しさん
2014/07/30(水) 23:35:59.41ID:OyX0E7FM文法は「型のついたラムダ計算」みたいになると思うけどそういうコア機能の解説した文書って
なかったっけ
0015デフォルトの名無しさん
2014/07/31(木) 00:50:43.58ID:+4UhtKUaあるいはGHCの実装で使ってるこれかな? https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/CoreSynType
0016デフォルトの名無しさん
2014/07/31(木) 01:18:38.30ID:zRIxs7zz例えばletはlambdaのシンタックスシュガーにならない
○ let i x = x in (i 0, i "A")
× (\ i -> (i 0, i "A")) (\ x -> x)
むしろlambdaを使わないpointfreeがコアだ
0017デフォルトの名無しさん
2014/07/31(木) 09:51:43.95ID:v4mxhrx0GHCの実装の説明のページへのリンクをありがとうございます。
Haskell2010 chap3で、シンタックスの説明に使われてるのがそれみたいですね。
>>16
let i x = x in (i 0, i "A") では i が多相関数 i :: α->α になって、in の中で
適切な型に推論されて適用されるのに対してラムダ式 (\ i -> (i 0, i "A")) (\ x -> x) では
「(\ x -> x)を多相のまま適用できない」ためにうまくいかないのでしょうか。
Scheme からの連想で let は lamnda で書けると思い込んでいたので、この面白い例をもっと
研究してみます。ありがとうございます。
0018デフォルトの名無しさん
2014/07/31(木) 10:00:46.45ID:tnsvQYR5schemeだとできるの?動的だからいいのか
0019デフォルトの名無しさん
2014/07/31(木) 10:48:12.90ID:v4mxhrx0Revised5 Scheme 7.3 で let は派生式になってます。(SchemeマニアじゃないのでR6とかは知りませんが)
わかりやすい解説は例えば SICP 1.3.2 。
( ttps://github.com/minghai/sicp-pdf/blob/japanese/jsicp.pdf だと pp.66-67 のあたり )
0020デフォルトの名無しさん
2014/08/03(日) 21:36:58.94ID:Tmfa1Mht0021デフォルトの名無しさん
2014/08/04(月) 19:53:21.28ID:380FSYFH0022デフォルトの名無しさん
2014/08/05(火) 09:31:07.66ID:xIiEYlRKHaskell のカーネル(≒言語から desugar して残るコア機能)は System FC という
System F の変種。 FC が F と違う部分は GADT なんかのための何からしい。
System F については、例えば TaPL に簡単に触れられており let ... in がλ抽象と
別立てになった機能になってる。
こっからは推測だけど(推測なんかしてる暇あったら読めよという話だが)上で触れられてる
ような事情で let ... in を lambda のシンタックスシュガーとは出来なかったのでλ抽象と
別の機能になってるのかなぁ思った。
0023デフォルトの名無しさん
2014/08/06(水) 00:53:41.89ID:9Hv8k9mx0024デフォルトの名無しさん
2014/08/07(木) 09:23:36.30ID:gF5gxzdj東京電力は今後の燃料の取り出しがより難しくなるおそれもあるとして詳しく調べることにしています。
3年前の原発事故を巡り東京電力は未解明の問題の検証を続けています。
このうち、3号機では、バッテリーで動いていたHPCIと呼ばれる緊急用の原子炉の冷却装置を事故の2日後の3月13日の未明に運転員が手動で停止し、
ポンプによる注水に切り替えようとしましたが、うまくいかず、原子炉の冷却の遅れにつながったと政府の事故調査で指摘されました。
これについて、東京電力が原子炉の圧力などのデータを分析したところ、HPCIは手動で停止するより前の3月12日午後8時ごろには、機能を失ったとみられ、
解析の結果、これまでの推定より5時間余り早い3月13日の午前5時半ごろから、燃料が溶け始めて翌14日の午前6時ごろには、原子炉の底を突き破り、
大部分が格納容器にまで溶け落ちた可能性があると分かったということです。
これまでは格納容器に溶け落ちた燃料は一部と考えられていて、東京電力は今後の燃料の取り出しがより難しくなるおそれもあるとして詳しく調べることにしています。
また今回、東京電力は、消防車を使った注水が行われた2号機の原子炉内で燃料と水が反応して水素とともに大量の熱が発生し、メルトダウンに拍車をかけたという新たな解析結果をまとめました。
消防車を使った注水が、原子炉の構造上燃料を十分冷やすことができなかったためと推定していて、深刻な事故の進展を食い止めることの難しさを示す結果として注目されます。
0025デフォルトの名無しさん
2014/08/08(金) 03:04:23.61ID:W/TCi66w0026デフォルトの名無しさん
2014/08/08(金) 06:06:23.58ID:Jx11NGmL東京電力福島第1原発の海側トレンチ(電源ケーブルなどが通る地下道)の凍結止水工事が難航している問題で、
東電は7日、汚染水の水温を下げるため、トレンチと2号機タービン建屋の接続部付近で投入している氷の量を、
これまでの1日当たり約15トンから約27トンと倍近くに増やしたと発表した。ドライアイスも本格的な活用を決め、約1トンの投入を始めた。
東電によると、7月30日から氷を約15トンずつ投入。水温は低下傾向にあるというが、
水面付近で思うように下がらなかったため、投入量を増やした。
第1原発では、2、3号機のタービン建屋につながるトレンチに高濃度の汚染水計約1万1千トンがたまっており、
海洋への流出が懸念されている。東電は接続部を凍結止水後、汚染水を抜き取る予定。
0027デフォルトの名無しさん
2014/08/09(土) 19:19:00.11ID:AoGp5qFdSTAPのデータ捏造もコピペ論文も
こういうある種のストライキの1つなんだけど
経営者視点()な人達だけはすごい剣幕で怒ってるよな
同じ人が、すき屋ストライキでも同じように怒ってた
0028デフォルトの名無しさん
2014/08/10(日) 00:12:50.41ID:D0upaz60経営者視点なんて概念を説明する暇があったら、人権を守れっていう方が効率が良い
犯罪者の人権を尊重しないと、嘘をついた詐欺師が殺される
0029デフォルトの名無しさん
2014/08/11(月) 12:23:07.49ID:yuEuk23d0030デフォルトの名無しさん
2014/08/11(月) 12:41:34.81ID:DFCFAZvQ0031デフォルトの名無しさん
2014/08/11(月) 19:17:00.63ID:nlAZIESh0032デフォルトの名無しさん
2014/08/11(月) 20:27:21.97ID:uEhfkD4p0033デフォルトの名無しさん
2014/08/11(月) 20:37:36.95ID:ybZhJtmE0034デフォルトの名無しさん
2014/08/11(月) 21:12:29.62ID:UhWE92ZL0035デフォルトの名無しさん
2014/08/11(月) 21:59:10.16ID:ybZhJtmEだって楽だし、 Haskell を使うのが目的であって環境構築が目的じゃないもの。
0036デフォルトの名無しさん
2014/08/11(月) 22:57:25.72ID:YYeip9Qz0037デフォルトの名無しさん
2014/08/12(火) 07:28:55.91ID:8BeZUND4国と東電は、高い濃度の汚染水がたまる地下の坑道に金属性の管を設置し、冷却液を流して汚染水ごと凍らせる作業を続けてきました。
しかし効果が表れないため、先月30日からは氷の投入を始め、今月11日朝までの間に、合わせて222tの氷を投入しました。
東電は11日の会見で、凍結の効果について「分からない」としていて、目に見える成果が出ていないことを認めました。
さらに、凍結の“切り札”として7日にドライアイス1tを投入しようとしたところ配管が詰まってしまい、それ以降はドライアイスの投入を見合わせているということです。
一方、汚染水の発生を減らすため、原子炉建屋の周囲の井戸水をくみ上げて浄化する計画について、東電は、12日に試験的にくみ上げを始め、20日にも浄化を始めることを明らかにしました。
0038デフォルトの名無しさん
2014/08/12(火) 10:11:47.08ID:8BeZUND4この装置の導入や維持にかかった費用については「経営にかかわることで公表できない」
0039デフォルトの名無しさん
2014/08/12(火) 15:22:46.18ID:oPINzQjdそれともCabalの管理が稚拙だから砂場が必要になるだけ?
0040デフォルトの名無しさん
2014/08/12(火) 21:58:16.05ID:hAPjyp1O再エクスポートと、高速化の為の激しいinline展開を伴う最適化のせい
0041デフォルトの名無しさん
2014/08/12(火) 23:28:01.46ID:zwRvTzf5こういうことですか?
0042デフォルトの名無しさん
2014/08/12(火) 23:40:13.99ID:eIpNFM7l0043デフォルトの名無しさん
2014/08/13(水) 01:21:14.25ID:+K9v/oty何らかのライブラリ整備組織が存在しない以上、ライブラリのバージョンで挙動が変わるのを
禁止する方法はないし、色々な依存関係を適当に手で書いてそれが正しいという保証がないのも
当然。
根本的解決をするためにはPrelude よりでかい標準ライブラリを制定する必要があると思うけど
それはHaskellが完成するという方向性を目指していて、転石苔を生ぜず的なローリングストーンズ
的ロック・スピリットと合わないわけですよ。
永遠に未完成。それがHaskell道なんや。
0044デフォルトの名無しさん
2014/08/13(水) 11:56:38.29ID:dXRsobnEライブラリで動作していた機能も含めて全てのソースを一人で書いて、
単一のコンパイラでビルドし、
開発環境OSを含めて配布する。
まずはこれが可能かどうかを議論したまへ。
可能でないならばどこまで可能か、あるいは状態の再定義を述べたまへ。
0045デフォルトの名無しさん
2014/08/13(水) 12:21:23.87ID:+hRgNmRJhttp://softwaresimply.blogspot.jp/2014/07/haskell-best-practices-for-avoiding.html
0046デフォルトの名無しさん
2014/08/13(水) 15:04:25.36ID:M/yU7i7Q0047デフォルトの名無しさん
2014/08/13(水) 18:41:12.72ID:TT8FY689挙動の変化が駄目ならあらゆる言語のあらゆるライブラリがdep hellを起こす、が現実はそうでもない
0048デフォルトの名無しさん
2014/08/13(水) 20:56:21.71ID:EvyR27Lg現実はぐちゃぐちゃなので、それを綺麗な枠組みに押込めるのには限度がある。
枠からはみ出る逃げ道をうまいこと作らなきゃならなくて、それは必ずしも綺麗ではないし、ときどきおかしなことにもなったりする。
ま、しょうがないよね。 なるべく上手いことやって欲しいとは思ってるけども。
0049デフォルトの名無しさん
2014/08/16(土) 18:43:48.26ID:IJ96r3S9な変換関数って作れる?
0050デフォルトの名無しさん
2014/08/16(土) 23:15:13.14ID:kmNc6WW8福島県では、放射能に汚染された地域で育つ稲の防御遺伝子が活性化され、DNA複製に作用し、異変が起こったという。
日本全土に分布するヤマトシジミ(蝶)の体長は著しく減少した。 また死亡率も高まり、発育異常もみられるようになった。「ガゼータ・ルー」が伝えた。
福島に巣をつくっているツバメの形態異常も増加している。研究者たちは、チェルノブイリと福島での事故による生物学的影響は似ているとの見解を示している。
0051デフォルトの名無しさん
2014/08/17(日) 01:45:09.04ID:Wn5e8U440052デフォルトの名無しさん
2014/08/17(日) 09:56:49.28ID:Z/8EUSKX無理
0053デフォルトの名無しさん
2014/08/17(日) 13:34:21.25ID:N5Houqazサンクス。
0054デフォルトの名無しさん
2014/08/17(日) 13:35:27.88ID:N5Houqaz0055デフォルトの名無しさん
2014/08/17(日) 13:43:52.38ID:SWriwsrF--f :: Monad m => (m a -> m a) -> m (m a -> a)
f g = do {
h <- f id;
r <- return return;
r (h . \ x -> g x >>= (r . const) >>= \ c -> return (c x))
}
--f' :: Monad m => (a -> m b) -> m (a -> b)
f' g = f id >>= \ h -> return (h . g)
0056デフォルトの名無しさん
2014/08/17(日) 14:15:53.57ID:XkL8f3FM否
たとえば2つのリスト xs と ys が等値であるかを判定する再帰関数は、
fold と unfold だけでは定義できない(.... はず)
0057デフォルトの名無しさん
2014/08/17(日) 17:55:59.62ID:LI/z4tC5質問者とは別人格なんだけど興味沸いてきた。
そういうのが定義できないこと(できること)を証明するのは、どういった学問分野なの?
ちょっと学んでみたい。
0058デフォルトの名無しさん
2014/08/17(日) 17:57:39.57ID:LI/z4tC5すまん、別人格じゃねぇ。別人、赤の他人だ。
0059デフォルトの名無しさん
2014/08/17(日) 18:47:14.74ID:XkL8f3FMいや、証明はしていない(自分じゃ証明できない)
質問が「すべての x についてできるか?」だったから、
その反例を1つ示しただけ
ただし反例といっても、自分のプログラミング技術では
そうあがいても >>56 の再帰関数が書けなかったというだけ
だから末尾に「.... はず」と付け加えた
もし書ける人がいれば、コードで示してもらえばとても嬉しく思う
なお、圏論(という学問分野?)には射(morphism)という概念があって:
・関数 fold の一般化を Catamorphism
・関数 unfold の一般化を Anamorphism
と呼んでいる
このモルフィズムという概念上では整数やリストに関する代数法則が
形式的に定義されているから、その法則の範囲内で全ての関数を定義できるらしい
(ただし自分じゃ証明できないから、この説明はあくまで受け売りにすぎない....)
たとえば >>56 の再帰関数は Catamorphism を使えば書ける
Catamorphism に関しては以下で解説されている
・Catamorphisms - HaskellWiki
http://www.haskell.org/haskellwiki/Catamorphisms
Catamorphism 以外のモルフィズムについては、
上記ページの参考文献の一つ:
" Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire"
で解説されている
0060デフォルトの名無しさん
2014/08/17(日) 19:10:23.56ID:fTsIPyRyfoldとか使わなくても、先頭から1つずつ取り出して一致を調べるだけで、全く使わなくても出来るんじゃないか?
使わないといけないっていう絞り?
0061デフォルトの名無しさん
2014/08/17(日) 20:02:45.55ID:XkL8f3FMHaskell を知らない初心者さんならば
過去に別スレで類似の質問があったから、
先にそちらを一読したほうがいいね
・【アンチ】関数型言語は使えない【玩具】 2
http://peace.2ch.net/test/read.cgi/tech/1330429547/413-418
0062デフォルトの名無しさん
2014/08/18(月) 10:35:15.97ID:9zqJA8S0そうでなく、再帰もループも使わずに、特別なループ処理(fold、unfold)で代替可能か?ということか。
0063デフォルトの名無しさん
2014/08/18(月) 10:51:17.18ID:9zqJA8S0そのfold処理中リストA、Bが参照出来るとすれば、
A、Bの先頭を取り出だして比較してその論理積を求めたらいいのでは?
0064デフォルトの名無しさん
2014/08/18(月) 14:39:42.37ID:xsIOXmUJ質問者ですが、その通りの意図で聞きました。
再帰やループよりも、fold,unfoldの方が簡単です。
再帰やループはかなり力が強いので、できるだけ使いたくない。ならばどこまでfold,unfoldで置き換えられるのか、が気になっていました。
0065デフォルトの名無しさん
2014/08/18(月) 16:32:22.13ID:4Y8RmR8S0066デフォルトの名無しさん
2014/08/18(月) 17:56:30.96ID:2pXqpQB0> 力が強いとは?
できることが多い、という意味です。
0067デフォルトの名無しさん
2014/08/18(月) 18:14:25.07ID:2pXqpQB0fold f xs が停止しないのは、xsが
長いか、あるいはfが停止しない場合に限られる。
unfold f z が停止しないのは、fがNothingを返さない場合に限られる。
再帰は、遅い計算を容易に作ることができる。
チューニングする際には、末尾再帰になるように気をつけなくてはいけない。
fold/unfoldで作れば、融合変換が使える。分かりやすく、自動化も容易。
...というのが、今のところの自分の理解です。
0068デフォルトの名無しさん
2014/08/18(月) 21:02:32.07ID:bozM1Zhvき止めるための「氷のフタ」が、3カ月以上たってもまったく凍らない。
7月末からトレンチの汚染水と建屋の接続部分に300トンに上る氷
を投入、今月7日はドライアイス1トンも投じたがいまだに凍結してい
ない。
19日の原子力規制委員会では別の工法が議題に上がるという。
その工法とは「資材グラウト」の注入が濃厚だ。
「資材グラウト」は水中で固まるコンクリートのこと。
つまり凍結をあきらめ、コンクリ投入によって固めてしまうつもりだ。
「手詰まりが鮮明になったということです。仮にコンクリ投入で一時的
に遮断しても、劣化した隙間やヒビ割れ部分からすぐに汚染水が漏
れ出すでしょう。モグラ叩きみたいなもので、根本解決にはなりません」
(元大阪市立大学大学院教授の畑明郎氏=環境政策論)
さあ、こうなると同じ方式で進めている「凍土壁」造りもどうなるやら。
「寒冷地の川を見ても分かるように、流れている水を凍結させるのは
至難の業です。
東電は地下水の流量と速さの想定を見誤ったのでしょう。
もともと懸念されていた工法を見切り発車した結果がこれですか
ら、目も当てられません」(畑明郎氏)
凍土壁に投じる国の予算は320億円。「残念」では許されない。
0069デフォルトの名無しさん
2014/08/18(月) 23:32:51.97ID:sIBxNP11絶対凍る!
凍らないような間違った世界なら滅ぶべき。
0070デフォルトの名無しさん
2014/08/20(水) 16:53:30.25ID:kxA5WDK0お礼が遅れました。ありがとうございました。
一読してサッパリ意味がわからないのですが(個々の要素は解るのに…)、後で解析してみます。
こういうのがサラッと出てくるのがすごい
0071デフォルトの名無しさん
2014/08/20(水) 17:03:18.41ID:kxA5WDK0zipがunfoldで書けるので、出来そうな気がします。
0072デフォルトの名無しさん
2014/08/22(金) 19:00:20.20ID:JI+TB47e0073デフォルトの名無しさん
2014/08/23(土) 13:15:18.71ID:7c4Srh2g大切なソースコードがうっかり中国のサーバーに送られてるとかない?
0074デフォルトの名無しさん
2014/08/23(土) 16:34:02.27ID:aw2EPyB4Applicative,Monoid,Text,Arrowなどの使える奴らをエクスポートしたモジュールで、NoImplicitPreludeを宣言してPreludeを置き換えて使う。
確かに便利だが、Stringの代わりにTextを文字列入出力のインターフェースにするために、Showクラスを隠蔽しているのが良くない。
Deriving Showのために、クラスはエクスポートされているけど、メソッドは公開されてない。
自分でShowインスタンスを書けないのは辛い。
0075デフォルトの名無しさん
2014/08/23(土) 18:51:05.34ID:QIS6Ua3n俳優西田敏行さん(郡山市出身)ら6人のメンバーが新たに加わった。小泉進次郎復興政務官が21日、発表した。
新メンバーは西田さんのほか郡山市出身のクリエーティブディレクター箭内道彦さん、福島市の詩人和合亮一さん、
東進ハイスクール講師林修さん、作詞家秋元康さん、米国マサチューセッツ工科大メディアラボ所長伊藤穣一さん。
メンバーは既に発表されている世界的建築家の安藤忠雄さん、作家乙武洋匡さんら11人と合わせ17人になった。
同日、復興庁で記者会見した小泉政務官は「生徒たちが海外とつながるような取り組みをしたい、との地元の声を踏まえた人選でもある。
メンバー全員が『前例なき環境には前例なき教育を』との思いを共有している。一人でも多くの志願があることを期待している」と語った。
小泉政務官は秋元さんに校歌の作詞を依頼し、前向きな反応を得ていることも明らかにした。
復興庁と文部科学省、県教委が連携し支援する。双葉郡の教育に地元の子どもの声を反映する「双葉郡子供未来会議」から提案を受けた
双葉地区教育長会が5月に外部講師の派遣などを小泉政務官に依頼していた。
応援団は県立中高一貫校の高校1年生に「総合的な学習の時間」を中心とし、年間計100時間の授業を担当する。
0076デフォルトの名無しさん
2014/08/23(土) 21:16:35.23ID:srcvgKjH0077デフォルトの名無しさん
2014/08/24(日) 00:41:38.35ID:NnEL9u+dnegate $ abs (-5) = negate (abs (-5)) = (negate . abs) (-5)
($)は関数に値を適用する。f $ x = f x
(.)は二つの関数を合成する。(f . g) x = f (g x)
つまり、map (negate . abs) [5,-7,0] でオッケー
007876
2014/08/24(日) 01:39:40.10ID:/I8ON4w5関数合成で行けるのは分かるのですが、mapで$がダメなのはどう理解すればよいのかと思いまして。
で、その後考えたのは…mapでリストの値を negate $ abs に食わせる前に、(negate $ abs) 単体で解釈されて negate に
関数 abs を値として食わせようとしてエラーなんでしょうか
0079デフォルトの名無しさん
2014/08/24(日) 07:10:27.52ID:5BU5W7L5単純に型エラー
008076
2014/08/24(日) 09:19:37.95ID:e58XmNWt0081はちみつ餃子 ◆8X2XSCHEME
2014/08/24(日) 09:40:13.68ID:a2Tu8Eqrfoo a b $ bar c d が foo a b (bar c d) になるのは関数適用の方が優先順位が高いから。
008276
2014/08/24(日) 09:54:07.26ID:e58XmNWt0083デフォルトの名無しさん
2014/08/24(日) 18:33:55.50ID:NnEL9u+d.ghciファイルに :set -XOverloadedStringsとかの言語拡張を並べてghciしてるんですけど、
runghcできないことに気づいて困ってます。
0084はちみつ餃子 ◆8X2XSCHEME
2014/08/24(日) 21:44:28.05ID:a2Tu8Eqr0085デフォルトの名無しさん
2014/08/24(日) 23:52:37.36ID:NnEL9u+d8_20.hs
8_21.hs
8_22.hs
…
みたいに、練習や実験の目的で細かくファイルを作ってるんです。
ライブラリをつくるつもりは無いから、何をインポートするとか、どの言語拡張が必要だとか、いちいち気にするのはめんどくさいです。
importはまとめられるけど、言語拡張はどうにもならなくて悩んでます。
0086デフォルトの名無しさん
2014/08/25(月) 18:28:49.73ID:gFXOELGs必要なフラグを全部まとめてシェルのエイリアス(かシェルスクリプトかバッチファイル)にすればいいんじゃないか
0087デフォルトの名無しさん
2014/08/25(月) 19:51:53.34ID:8juLYpPYやっぱりそれしかないんですかね…
練習用のファイルは一箇所にまとめてあるのですが、
そのディレクトリ内でのみフラグが有効になるシェル関数で包むか、
あるいはghc4etudeみたいなエイリアスをつくってそれを使うようにするか。
前者はディレクトリのパスが変わった時壊れるし、
後者は忘れるというデメリットが。
ディレクトリが切り替わる度、自動的にそのディレクトリ直下の.zshrcを読み込んでくれればいいのになあ
0088デフォルトの名無しさん
2014/08/25(月) 22:52:08.74ID:jOpvdwt6事故調査・検証委員会に対し、非常用の冷却装置が止まっていたことなど
重要な情報を把握できていなかったことを「猛烈に反省している」と述べるとともに、
吉田元所長に判断が集中した事故対応の在り方について課題を指摘していたことが分かりました。
専門家は「新しい知見を生み出しながら、事故の教訓を別の視点から伝え、
解釈していくことが重要だ」と、吉田元所長の証言を公表することの意義を指摘しています。
非常用冷却装置
事故当日、最も早くメルトダウンした福島第一原発1号機では、すべての電源が失われた3月11日の午後3時半ごろから、非常用の冷却装置がほとんど動いていませんでした。
政府の事故調査・検証委員会の調べによりますと、現場の運転員も、当初は1号機の非常用の冷却装置が止まっていたことを明確には疑っていませんでしたが、夕方になって深刻な状況に気付きます。
ところが、この情報は吉田元所長には伝わらず、冷却装置は動いていると信じていて、ようやく事態を把握したのは、格納容器の圧力が異常に上がっていると報告を受けた午後11時50分ごろでした。
こうした重要な情報を把握できていなかったことが、原子炉への注水や格納容器の圧力を下げる「ベント」と呼ばれる作業の大幅な遅れにつながったと指摘されています。
これについて、吉田元所長は政府の事故調査・検証委員会に、「猛烈に反省しているんですけれども、少なくとも現場側からのSOS発信がこちらに届いていなかった」と述べ、
非常用の冷却装置が止まっていることを疑っていた現場の情報を把握できなかったことを悔やんでいます。
そして、「IC(非常用冷却装置)は大丈夫なのかということを何回も私が確認すべきだったと、逆に言いますとね、
今の時点に立って言うとそこは思い込みがあって、水位がある程度確保されているから大丈夫かなと思っていた部分があります」と話し、
現場の責任者として判断を誤ったことを率直に認めています。
0089デフォルトの名無しさん
2014/08/26(火) 02:32:00.76ID:taZpdeNsimport Data.Char (digitToInt)
findTo :: Int -> Maybe Int
findTo n = find ((n==) . sum. map digitToInt . show) $ [1..(10^21)]
findTo' :: Int -> Maybe Int
findTo' n = find ((n==) . sum . map digitToInt . show) $ [1..(10^20)]
ghci> findTo 27
Nothing
ghci> findTo' 27
Just 999
find以外を使えばこういうことは起らないんですかね?
さいきん勉強しはじめたので、まったく原因が分らないです。
ちなみに、すごいHaskellたのしく学ぼう の6章あたりの問題です。
0090デフォルトの名無しさん
2014/08/26(火) 02:51:38.80ID:8Iqh8exiうむむ
俺の環境では両方Just 999...
0091デフォルトの名無しさん
2014/08/26(火) 08:41:01.12ID:taZpdeNsまじですか。
じゃあ、自分のghci(あるいはマシン)がおかしいのかな。
[1..(10^21] の、21をもっと大きくするとどういう挙動をします?
0092デフォルトの名無しさん
2014/08/26(火) 09:11:29.85ID:hD8o6UA4(10^21)::Intがオーバーフローで負の数になるから[1..(10^21)] == []
そこからfind _ [] == Nothingより件の結果になると
一方ghci上で型シグニチャなしならInteger型と解釈されてJust 999になる
0093デフォルトの名無しさん
2014/08/26(火) 10:26:48.77ID:Bz7iEF70名付けておっぱい訓だ!
0094デフォルトの名無しさん
2014/08/26(火) 18:28:29.24ID:taZpdeNsなるほど、納得できました。
ありがとうございます。
0095デフォルトの名無しさん
2014/08/28(木) 00:24:04.81ID:6GGU5CTnprop> のテストできなくなっている?
0096デフォルトの名無しさん
2014/08/29(金) 12:11:01.07ID:iLRKQaF8ネストの深さを調べる関数を作りたいんだけど、いい方法ある?
通らないけどこんなイメージのやつ
nestDepth [] = 1
nestDepth [x] = 1 + nestDepth( x )
0097デフォルトの名無しさん
2014/08/29(金) 21:33:01.98ID:xREiHvuj撤去作業中に重さ約400キロのがれきを誤って落下させたと発表した。
けが人はなく、放射線量の上昇も確認されていないという。
0098デフォルトの名無しさん
2014/08/29(金) 22:18:40.33ID:PzKyZEs+ここのflattenをこねこねしてみたけど僕には無理でした
http://stackoverflow.com/questions/5994051/is-there-a-function-to-flatten-a-nested-list-of-elements
Haskellむずかしい...
0099デフォルトの名無しさん
2014/08/29(金) 22:30:53.46ID:6XulYCBtネストしたリストと考えるよりも、
ツリー(RoseTree型)の高さを求める問題として見た方が
いくらか楽かもしれない
0100デフォルトの名無しさん
2014/08/30(土) 00:31:21.91ID:Y20ucU8ainstance Nest a => Nest [a] where {depth [] = 1; depth (x:_) = 1 + depth x}
instance Nest () where {depth _ = 0}
main = print $ depth [[()]]
これは再帰じゃなくてオーバーロードだから
0101デフォルトの名無しさん
2014/08/30(土) 00:47:16.39ID:uVxlss9L() を消す方法は思いつかない…
0102デフォルトの名無しさん
2014/08/30(土) 01:01:18.23ID:Z2Y9Ssnq0103デフォルトの名無しさん
2014/08/30(土) 01:03:22.56ID:DhxHtAEm0104デフォルトの名無しさん
2014/08/30(土) 05:52:45.84ID:D+i8yOva0105デフォルトの名無しさん
2014/08/30(土) 09:34:01.69ID:eQyqwaUCimport GHC.TypeLits
import Data.Proxy
type family F a :: Nat where F ([] ([] b)) = 1 + F ([] b) ; F a = 1
proxy :: [a] -> Proxy (F [a])
proxy xs = Proxy
depth :: KnownNat (F [a]) => [a] -> Integer
depth = natVal . proxy
main = print $ depth [([]::[()])]
値としての()は消えるが型アノーテーションが必要になり余計に面倒臭くなった
0106デフォルトの名無しさん
2014/08/30(土) 19:35:22.28ID:kHvbMa0vf <*> g = \x -> f x (g x)
って出てくるけど、コンビネータで同じ形のがいた気がする。偶然なの?それとも深いわけあり?
0107デフォルトの名無しさん
2014/08/30(土) 20:49:37.63ID:Y20ucU8a-- type H a b = D (D a) b
type H a b = D a (D a (D a (D a (D a (D a (D a (D a (D a (D a b)))))))))
newtype Foo = Foo {foo :: H [] ()}
bar = print $ depth $ foo $ Foo [[[[]]]]
LiberalTypeSynonymsを使うかどうか迷う
010896
2014/08/30(土) 22:47:26.33ID:qDjO7Zt2>>100 >>101
動いて感動しました!()入れて[]の型が定まるようにしてるんですね
>>102 >>103
問題を簡単にしようと安直に空リストにしたんですが…
よくよく考えると空リストって型決まってなくて厄介ですね
[[0]]、[0]とかならもっとシンプルにできたり?()と同じ効用になりそうだけど…
>>105
動かなかった…どうもData.Proxyないっぽいんで取ってきます
0109デフォルトの名無しさん
2014/08/31(日) 07:08:40.89ID:MBS6riJW1. ドキュメントの本文に日本語は使えますか。
2. hackageにアップしていないモジュールのドキュメントを生成することができますか。
3. それをローカルにあるhoogle(コマンド)から検索することは可能でしょうか。
4. 図の挿入ができるらしいのですが、フォーマットは何が使えますか? svgは含まれますか? gifアニメはどうでしょうか。
0110デフォルトの名無しさん
2014/08/31(日) 09:26:12.72ID:xb4yMGmiコンビネータなら (<*>) と pure から flip を作れるんだが
アプリカティブはなぜか flip に相当するものを作れない
モナドでも作れない >>49
0111デフォルトの名無しさん
2014/08/31(日) 10:17:22.85ID:TRAzYZli型無しラムダ計算をExponential Monadの圏として解釈してlax monoidal functorを構成することで
型無しラムダ計算上のSK計算というのを圏論の言葉で解釈するという話を聞いた事がある
Applicative ((->) a)のpureがKコンビネータ <*>がSコンビネータに対応するのはそういうのと関係あるんじゃね
0112デフォルトの名無しさん
2014/08/31(日) 11:40:29.10ID:vYUR5vqh出力側を固定するような型コンストラクタってどう書けばいいの?
0113デフォルトの名無しさん
2014/08/31(日) 18:28:51.80ID:brh3fiZ20114デフォルトの名無しさん
2014/08/31(日) 21:16:17.89ID:3CF3ekmc0115デフォルトの名無しさん
2014/08/31(日) 21:26:48.38ID:iF/zAKDT1. できる
2. できる
3. 知らん
4. 知らん
0116デフォルトの名無しさん
2014/08/31(日) 21:28:35.80ID:iF/zAKDTそれはできない
0117デフォルトの名無しさん
2014/09/01(月) 10:41:53.79ID:bzFJM8g30118デフォルトの名無しさん
2014/09/01(月) 18:11:02.97ID:5ZyeeTkH型レベルにはラムダがないのでこういうことはできない
((->)a)は単なる部分適用なので大丈夫
0119デフォルトの名無しさん
2014/09/01(月) 18:46:31.84ID:2dhwQfvdバックにある理論と言うか圏論とか(よく分からんけど)で、>>112ができると具合が悪い理由と言うか考え方があるのだろうか
0120デフォルトの名無しさん
2014/09/01(月) 20:14:36.60ID:E+8sD/+J(*)が許されないのは関数的な同値判定っていう決定不能問題が発生して型チェッカがぶっ壊れるという背景がある
ただ(-> b)みたいなセクションすらできないというのはちょっとわからんね
0121デフォルトの名無しさん
2014/09/01(月) 20:16:05.37ID:Q5PeE6kvなんか前スレで同じ質問したかも。
型レベルFix?を使って解決できると教えてもらった
0122デフォルトの名無しさん
2014/09/01(月) 21:51:22.50ID:MqIv2b+S理論じゃないが、C言語の型の記法が批判されたという現実があるね
ゆえに型レベルでは無難な前置記法しか使わないのが主流
中置記法の型コンストラクタだけでも超マイナーなのにセクションなんてとんでもない
0123デフォルトの名無しさん
2014/09/01(月) 23:04:03.22ID:5ZyeeTkHたとえば、
instance Functor (a,)
instance Functor (,a)
がある時、fmap negate (1,2)がどうなるべきか不明
逆に型推論も型クラスもないSystem Fなんかは型レべルのラムダを許す
0124デフォルトの名無しさん
2014/09/01(月) 23:27:18.23ID:bzFJM8g30125デフォルトの名無しさん
2014/09/02(火) 00:28:00.12ID:7zSeNpH5> 逆に型推論も型クラスもないSystem Fなんかは型レべルのラムダを許す
GirardのSystem Fには型レベルのラムダ(型についてパラメタ化された型、つまり型構成子のユーザ定義能力)は存在しないよ。
項で型についてパラメタ化するのは多相型の項を構築する手段だからもちろん許してるけどね。
System Fが型レベルで許しているのは、多相型、つまり型変数を含む型式をその自由型変数について全称束縛する事。
∀t. τ(t) と λt. τ(t) とを混同しては駄目だよ。(ここで t は型変数で τ(t)は型変数 t が自由に出現し得る型式、例えば int × t とかね)
0126デフォルトの名無しさん
2014/09/02(火) 01:06:34.48ID:f704CnQ2そんなこともあろうかと仕様変更の嵐が過ぎるまで動的言語を使う戦略も用意してある
0127デフォルトの名無しさん
2014/09/02(火) 06:25:38.52ID:UooLEgJeごめん、System Fωと言いたかった
0128デフォルトの名無しさん
2014/09/02(火) 09:26:58.14ID:V4vsq9gTうまくライブラリに閉じ込められればいいんだけど、ライブラリの
ユーザにまで不便さを強要せざるを得ないことがあって困る。
0129デフォルトの名無しさん
2014/09/02(火) 19:31:12.41ID:/dSRrT7Zだれか lisp の gensym みたいな関数かそれの代替物を教えてください
呼ばれるたびに確実に異なる数を返す関数です
0130デフォルトの名無しさん
2014/09/02(火) 19:40:09.95ID:TYnEDLky0131デフォルトの名無しさん
2014/09/02(火) 20:16:15.05ID:iD57EJv5GHCのAPIにも似たような名前のものがあって実際にGHC内部で使われてる
0132デフォルトの名無しさん
2014/09/02(火) 20:23:13.54ID:fiFf3Pgj0133デフォルトの名無しさん
2014/09/02(火) 21:32:32.48ID:UooLEgJe「数」でなくてよければ
http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.7.0.1/Data-Unique.html
具体的にIntとかが欲しい場合は、このモジュールの実装をコピペするのが一番楽っぽい?
hackageをさらっと見た限りではなさそう
0134デフォルトの名無しさん
2014/09/02(火) 21:46:06.47ID:/dSRrT7Zgen = mkSplitUniqSupply 'a'
newI :: IO UniqSupply -> IO Int
newI g = liftM (getKey.uniqFromSupply) g
で newI gen を呼ぶ度に再帰の最中でも異なる数が出るようになりました
IOがくっついてるのが面倒臭くなりましたが
0135デフォルトの名無しさん
2014/09/02(火) 22:01:44.23ID:YKEiD9mA薄い割にやたら高いんだが
0136デフォルトの名無しさん
2014/09/02(火) 22:21:05.19ID:UooLEgJegenはIOの中で一回だけ呼んで、後はsplitUniqueSupplyで増やしていくのが意図された使い方だと思う
0137デフォルトの名無しさん
2014/09/02(火) 22:23:07.85ID:UooLEgJe原書の内容読めるので自分で確かめるのがおすすめ
http://chimera.labs.oreilly.com/books/1230000000929/index.html
0138デフォルトの名無しさん
2014/09/03(水) 00:03:13.44ID:laY2S8bO本買うまでもなかったわ
0139デフォルトの名無しさん
2014/09/03(水) 00:09:40.10ID:PvOs3K6+0140デフォルトの名無しさん
2014/09/03(水) 00:50:22.25ID:3yq080ul汎用性の為に、コンストラクタの詳細に立ち入りたくは無いのだけど、どんな制約を想定すれば移せることが保証できるんだろ。
元: Folderble
先: Applicative かつ Monoid
なら、foldMapで移せるのは解るけど、mappendのコストが高そう。
元: Folderble
先: Folderble
でもいけるんだろうか
Traversableというのもあるの? なんだかよくわかんない。
教えて
0141デフォルトの名無しさん
2014/09/03(水) 01:31:01.18ID:Kba/GcgZ0142デフォルトの名無しさん
2014/09/03(水) 02:06:48.51ID:a7zRlsp4s/Folderble/Foldable/
0143デフォルトの名無しさん
2014/09/03(水) 08:12:37.28ID:CPf5LDwT厳密に保証したかったらそれこそ両者のデータ構造同士がisomorphicであるみたいな強い制約が要求されるし
flattenみたいな形でよければ元がFoldableであればfoldでいいわけだし
0144デフォルトの名無しさん
2014/09/04(木) 09:22:46.00ID:2k7T3ybm>>143
データ構造がisomorphic? というのは何でしょう。
ソートされたリストと、二分木はisomorphicでしょうか。
挿入・削除を何回かした後に、データ構造を舐めて結果を出力するというコードを書いています。
元はリストなのですが、削除が遅いので、
それを二分木に移し変えることにしました。
でも、開発を進める内に、挿入・削除があまりに多いので、それらの計算がO(1)なコンテナに変えようかと考え直しました。
そんな風に、計算量の需要でのらりくらりとコンテナを変えるので、アクセスを抽象化したいと思った次第です。
> 俺ならparsecでソースコード全部書きかえる
これが冗談なのか判断できないレベルなので、修行してきます
0145デフォルトの名無しさん
2014/09/06(土) 09:06:48.94ID:7mLPsONf必要な時はいつでも両データ構造を行き来できる、みたいな意味でしょ
0146デフォルトの名無しさん
2014/09/06(土) 10:22:32.78ID:k4mTz2ku有り難うございます。wikipediaの説明が難しかったので、他の解説を探したのですが、下記のような説明を見つけました。
―――――――――――――
http://kinokkory.hatenablog.com/entry/20131203/p1#f-4c58ff88
同型というのは、ふたつのデータ型がある意味で同じものとしてみなせるということです。
AとBが同型であるとは、
・関数 f :: A -> B と g :: B -> A が存在する。
・g . f が A についての恒等関数であり、f . g が B についての恒等関数である。
―――――――――――――
ところで上記の説明の2つ目の条件と、「一対一対応する」は微妙に違うと思うのですが、どうでしょうか.
data Fruits = Apple | Banana | Strawberry
data Number = One | Two | Three
f :: Fruits -> Number
f Apple = One
f Banana = Two
f Strawberry = Three
g :: Number -> Fruits
g One = Banana
g Two = Strawberry
g Three = Apple
― f . g /= id
0147デフォルトの名無しさん
2014/09/06(土) 11:20:41.51ID:LgF+fBKU[a]やBTree aみたいなデータ構造を引数に取る関数を抽象データ型を引数に取るという手法でより一般化したいという事かね
それなら挿入・削除のような共通操作を持つ型クラスを作りってそれとFoldableを用いて実現できる
ただデータ構造によって突っ込める値に関する制約が違うというのがあるからその解決としてConstraintKindや型族みたいな言語拡張使う必要が出てきそうなのが厄介だな
操作にIOを伴うデータ型もサポートするために状態操作も抽象化したから余計面倒になったが以下のような感じで
{-# LANGUAGE ScopedTypeVariables, TypeFamilies, FlexibleContexts, ConstraintKinds #-}
import Control.Monad.State.Class
import Control.Monad.State
import qualified Data.List as L
import GHC.Exts
class RecordLike f where {
type ContentConstraint f :: * -> Constraint
; type Action f a :: * -> *
; add :: forall a. (ContentConstraint f a, MonadState (f a) (Action f a)) => a -> Action f a ()
; delete :: forall a. (ContentConstraint f a, MonadState (f a) (Action f a)) => a -> Action f a ()
}
instance RecordLike [] where {
type ContentConstraint [] = Eq
; type Action [] a = State [a]
; add a = modify $ (a:)
; delete a = modify $ L.delete a
}
これでf :: forall a. (Foldable f, RecordLike f, ContentConstraint f a) => [a] -> Action f a
みたいな形で定義すりゃその関数はリストだろうが二分木だろうがハッシュセットだろうが扱えるようになる
あとは長々と制約書くのが面倒なら型制約シノニムを使うとかで
0148デフォルトの名無しさん
2014/09/06(土) 11:39:05.06ID:io9N8L9wまさにそれが求めていたものです!
なるほど、ちゃんとやるとそのようになるのですね。
ありがとうございます。勉強になります。
0149デフォルトの名無しさん
2014/09/06(土) 11:45:43.70ID:io9N8L9wf . g == id となるf, g が存在する
っていうのが条件だから、いいんですね。
失礼しました。
0150デフォルトの名無しさん
2014/09/06(土) 18:48:33.19ID:5NBdbQM9D3.jsライクというか結果的に同じことができるものです
ちなみにD3はデータ可視化のかなり有名なライブラリです
0151デフォルトの名無しさん
2014/09/06(土) 20:37:15.28ID:k4mTz2kudiagramsです!
http://projects.haskell.org/diagrams/gallery.html
0152デフォルトの名無しさん
2014/09/07(日) 14:42:36.70ID:afaBmEoPありです!
0153デフォルトの名無しさん
2014/09/07(日) 14:59:55.50ID:2nNDq8Bj0154デフォルトの名無しさん
2014/09/08(月) 09:08:51.02ID:E4vtFdYZ東京電力福島第1原発から放射性物質が海に流出している問題で、今年5月までの10カ月間に
第1原発の港湾内に出たストロンチウム90とセシウム137が計約2兆ベクレルに上る可能性が高い
ことが7日、東電の資料などで分かった。
二つの放射性物質だけで、第1原発の事故前の放出管理目標値の10倍を超える。事故に伴う深刻な
海洋汚染が続いていることが浮き彫りとなった。
第1原発では、汚染された地下水が海に流出しているほか、高濃度汚染水がたまった建屋のトレンチ
(ケーブルなどの地下管路)から直接港湾内に漏れている可能性も指摘されている。
東電の資料によると、昨年8月から今年5月にかけ、港湾内の1〜4号機取水口北側で測定した
トロンチウム90とセシウム137の平均濃度を基に試算した1日当たりの流出量は、約48億ベクレルと
約20億ベクレル。10カ月間の総流出量はそれぞれ約1兆4600億ベクレルと約6100億ベクレルの計算に
なる。
合わせると2兆ベクレルを超えるが、汚染水には他の放射性物質も含まれており、港湾内の汚染はより
深刻とみられる
0155デフォルトの名無しさん
2014/09/09(火) 04:14:11.24ID:z58IhyOREmacs上のghciから :view hoge ってすると、
class Visualizable a where visualize :: a -> Diagram B R2
に適合した値であるhogeをEmacsのインライン画像表示機能を使って、その場所に挿入するようにしたら快適でした!
もうShow要らない
0156デフォルトの名無しさん
2014/09/10(水) 13:15:47.59ID:X2zXXHXj0157デフォルトの名無しさん
2014/09/10(水) 18:27:19.20ID:mId1v/4/ごめん嘘ついてた。ghciコマンドにするのは無理だった。
http://lpaste.net/110832
を適当なところに置いて、あなたのhsファイルにそれをインポートし、
表示したい値hogeの型をVisualizableのインスタンスにして、
emacs上で実行しているghci上で
view hoge
するとemacsに図が挿入されます。
こんな風に
http://www.dotup.org/uploda/www.dotup.org5305910.png
0158デフォルトの名無しさん
2014/09/11(木) 10:19:46.51ID:6SKhkqos0159デフォルトの名無しさん
2014/09/11(木) 10:46:01.90ID:DJaVGhTdイイね、emacsclient 使うのか
0160デフォルトの名無しさん
2014/09/13(土) 00:44:54.99ID:1YyhqkXY0161デフォルトの名無しさん
2014/09/13(土) 05:31:28.37ID:xgqiej9kMonadの、って意味。
モナディックな関数とは、モナドの値を返す関数のこと。
print::Show a => a -> IO ()
はモナディックな関数。IOがモナドだから。
0162デフォルトの名無しさん
2014/09/13(土) 20:17:26.18ID:xgqiej9kそもそも無向グラフを扱ったことがないのに気がついた。
試しに
data Graph a = Graph (a,a -> [a])
と定義してみようとおもったけど、これだとFunctorにならない。
data Graph a = Graph [Edge a]
type Edge a = (a,a)
だと探索効率悪いし。
うーん
0163デフォルトの名無しさん
2014/09/13(土) 23:00:45.30ID:1YyhqkXYトン
0164デフォルトの名無しさん
2014/09/15(月) 19:04:17.76ID:7sCZlnMT.libライブラリを静的リンクしたいんだけどどうやるの?
ghcにuser32.lib指定してないのに foreign import ccall "PostQuitMessage" ... が動くし、
同じくkernel32.lib指定してないのにExitProcessが動くし、どうなってるの……
0165デフォルトの名無しさん
2014/09/15(月) 19:45:48.83ID:BdYZ9X/p0166デフォルトの名無しさん
2014/09/15(月) 20:48:55.90ID:7sCZlnMT解決しました……
-l[ライブラリ名*拡張子なし*] を指定したらいけました
スレ汚し失礼しました…
0167デフォルトの名無しさん
2014/09/15(月) 20:58:56.39ID:853zB9Gcwindows良く知らないけど、windows版GHCはMinGWベースなので
MinGWでリンクするのと同じ手順でできない?
http://www.mingw.org/wiki/Specify_the_libraries_for_the_linker_to_use
勝手にライブラリがリンクされる件は、たぶんそのプログラムが依存してるHaskellパッケージが
リンクを要求してる
たとえばbaseパッケージ(あらゆるHaskellプログラムが依存するパッケージ)は、
wsock32, user32, shell32を要求すると指定されてるっぽい
ghc-pkg describe baseとか打つとextra-librariesの項に出てくるはず
0168デフォルトの名無しさん
2014/09/15(月) 21:48:17.23ID:7sCZlnMTできました。拡張子を抜くというので躓きました。
ただウィンドウ作るだけのプログラムで1.8MBとかになってしまうのはそこらへんのライブラリをまとめて静的リンクしちゃってるからかな?と思ったけど、
それは>>10に書いてあるとおりなのかな?
stripしても1MBだし、これくらいならアセンブラで書いたほうが……と思ってしまう。
手続き型言語っぽいことだけしててもhaskellのありがたみは感じられないってことかな
0169デフォルトの名無しさん
2014/09/15(月) 22:09:40.06ID:A6Qjo9u50170デフォルトの名無しさん
2014/09/15(月) 22:27:49.14ID:MGTym664ソフトを立派に配布した経験がないけど。
コード入手先かコード自体を入れとけば基本平気では。
0171デフォルトの名無しさん
2014/09/15(月) 22:51:54.55ID:853zB9Gcランタイムの大きさは大したことなかったはず。仮想マシンじゃないし(ネイティブコード生成)
いずれにしても実行ファイルの大きさが重要な用途ならHaskellというかGHCは向かないと思う
0172デフォルトの名無しさん
2014/09/16(火) 00:59:36.67ID:OYajHQVK趣味でゲーム開発だから問題ないといえば問題ないけどね
あせんぶらだと数KB程度で済むプログラムが1MB超えるのが納得行かなかった
>>170
DLLじゃなくて.libをリンクしたかったのです
>>171
うーむ
jhcというのを検討してみようかな
0173デフォルトの名無しさん
2014/09/16(火) 14:02:51.79ID:VtA2dBig魔女狩りに気をつけてね
0174デフォルトの名無しさん
2014/09/16(火) 16:21:30.20ID:vAQpoh0T0175デフォルトの名無しさん
2014/09/16(火) 17:16:33.33ID:dW7uhwcE0176デフォルトの名無しさん
2014/09/16(火) 22:24:36.75ID:gfWckZld次の等式が成り立つことを証明したいです。
concat . map f . g = concat . map g . f = f
concat . map f . g = f は λx . (concat . map f . g x) として素直に簡約していけば
λx . f x となって f になるのですが、concat . map g . f = f の方のやり方が思いつきません。
具体的には、λx . (concat (map g (f x))) ここから先にどう進めばよいのか分かりません。
concat . map g . f = f はどう示せば良いでしょうか?
0177デフォルトの名無しさん
2014/09/16(火) 22:54:33.82ID:mBp/kqIp数学的に、つまりバードの「関数プログラミング入門」の中に出てくるみたいな
人間にとって readable な証明を望むのか、それとも Coq などのツールを使った
、可読性は低くても疑義のない証明を望むのか
0178デフォルトの名無しさん
2014/09/17(水) 00:38:53.07ID:5Gf85B+Rあとは (f x) >>= return = f x の証明
リストがモナドであることの証明を探してコピペする
0179デフォルトの名無しさん
2014/09/17(水) 08:54:04.70ID:BzLS2AoJ動的型付けよりマシ、というレトリックさえあれば証明などいらぬ
0180デフォルトの名無しさん
2014/09/17(水) 10:10:39.81ID:nqEUaVP0両辺のf xをyと置いてより一般的な命題にしてyに関する帰納法という手もあるな
実質は式変形してモナド則の証明の形に持ってくるのと同じことやってるわけだけど
0181176
2014/09/17(水) 22:03:05.85ID:W44+hj+/その本は読んだことがないので、どのような書き方がされているか分かりませんが、
人間にとって可読性が高い方が良いです。
>>178
モナドというものを学ぶ前段階のエクササイズらしいので、
この段階で return 関数などを使うのはどうかと初めは思いましたが、
どのような順や方法で学ぼうが最後に本質が理解できれば良いと思い直しました。
とりあえずこの方向(Monad クラスの関数を使う)で証明してみることにします。
ありがとうございます。
>>180
>>178 の方法で解けたら、あるいは詰まったら、帰納法でやってみます。
ありがとうございます。
0182デフォルトの名無しさん
2014/09/22(月) 22:27:41.66ID:n9Fda3L9男性は背骨を骨折したが、命に別条はないという。東電が事故の原因を調べている。
東電によると、事故は20日午後0時20分ごろ、構内南側にあるタンク群の建設現場で発生。
協力企業の作業員7人がタンクの溶接などをしていたところ、半自動溶接機を上下に動かすウインチを移動させる際に、固定していた長さ1.5メートル、重さ約4キロの鉄パイプが13メートルの高さから落下し、男性の背中に当たった。
他の作業員にけがはなかった。
男性は福島県いわき市内の病院に運ばれ、重傷と診断されたが、22日から事務作業に復帰した。
0183デフォルトの名無しさん
2014/09/23(火) 18:30:25.58ID:cEQ8bqom「恐竜の細胞が見える!?」が再放送されました。NHKはその理由を公表しません。
0184デフォルトの名無しさん
2014/09/23(火) 18:50:13.31ID:YLZJr4ao0185デフォルトの名無しさん
2014/09/24(水) 03:22:15.06ID:MWybmGkY0186デフォルトの名無しさん
2014/09/24(水) 20:35:29.76ID:Z2e1BcPMヤフオク
0187デフォルトの名無しさん
2014/09/25(木) 03:00:53.63ID:6v2Qf6YW0188デフォルトの名無しさん
2014/09/25(木) 09:36:06.02ID:h/qnH2IAブルセラオンラインショップをイェソドで開発する案件の出番
0189デフォルトの名無しさん
2014/09/25(木) 23:11:12.29ID:YRvO5dcq0190デフォルトの名無しさん
2014/09/26(金) 17:20:13.08ID:KlQFkL2ZParserとPrettyPrinterを同時に定義出来るって聞いた時はワクテカしたのに
0191デフォルトの名無しさん
2014/09/27(土) 08:33:56.37ID:gu4dQPXr0192デフォルトの名無しさん
2014/09/28(日) 00:56:42.71ID:MGIHQutH0193デフォルトの名無しさん
2014/09/28(日) 10:55:51.60ID:Si+4Y7up優勝する為の全通りのシナリオを羅列する関数を書くために便利なライブラリはありますか?
0194デフォルトの名無しさん
2014/09/28(日) 11:29:05.13ID:VcQBZWvOだとしたらmtlみたいなモナドトランスフォーマー系のライブラリが該当するんじゃないかね
0195デフォルトの名無しさん
2014/09/28(日) 13:16:39.20ID:ySImTQuKそれを作る前提は、ショービジネスであるプロ野球が八百長ではない、ですよね
0196デフォルトの名無しさん
2014/09/28(日) 15:08:30.18ID:5GX8p9640197デフォルトの名無しさん
2014/09/28(日) 15:11:09.69ID:c6UlzIEI0198デフォルトの名無しさん
2014/09/28(日) 15:14:42.53ID:ySImTQuK八百長なら、そもそもプログラムを作る必要がない
0199デフォルトの名無しさん
2014/09/28(日) 15:47:44.92ID:FAkptdZZ0200デフォルトの名無しさん
2014/09/28(日) 15:54:56.50ID:6J/u6gTLSimon Marlow, 山下 伸夫, 山本 和彦
価格: ¥ 3,888
ポチるか迷う
0201デフォルトの名無しさん
2014/09/28(日) 17:32:24.50ID:hWxJQNQj原著のオンライン版な無料で読める。
英語が苦手なら、迷ってるくらいならさっさと買って
購入金額分の情報を本から無理にでも搾り取った方がいい。
迷ってたって何も得られないんだし、本から得たものは無くならない。
ネットから情報を集める手間も省ける。
0202デフォルトの名無しさん
2014/09/28(日) 18:22:15.65ID:rvEQwHhg0203デフォルトの名無しさん
2014/09/28(日) 21:10:37.17ID:ySImTQuKかなり前に洋書の方を買った記憶があるから、情報は古いと思うけど、更新されてるんかな
0204デフォルトの名無しさん
2014/09/29(月) 11:38:23.03ID:ZyON6JAaはい、ポチりました
0205デフォルトの名無しさん
2014/09/29(月) 11:49:55.52ID:07LODfKhSimon Marlow, 山下 伸夫, 山本 和彦 ┌(^o^)┐┐カサカサ・・・
Haskellによる並列・並行プログラミング
Simon Marlow, 山下 伸夫, 山本 和彦,┌(|||||)┐シュイン…!
Haskellによる並列・並行プログラミング
Simon Marlow, 山下 伸夫, 山本 和彦,(´・_・`)パッ
Haskellによる並列・並行プログラミング
Simon Marlow, 山下 伸夫, 山本 和彦,田中英行
0206デフォルトの名無しさん
2014/09/29(月) 17:01:29.73ID:ZyON6JAa普段の書き込みはぽよ無しで書いてるだけ?
0207デフォルトの名無しさん
2014/09/29(月) 17:03:45.56ID:sAVGRibI0208デフォルトの名無しさん
2014/09/29(月) 17:08:58.20ID:WITlTI70Haskellに関係ないしネットウォッチ板とかでやって欲しいものだ
0209デフォルトの名無しさん
2014/09/29(月) 17:20:05.88ID:KG/BegC7今年の奇妙なループ。 https://www.youtube.com/watch?v=SWTWkYbcWU0...
私にとって依存型は、基本的には不可欠である。
あなたは、私が知らない何かを、行うためにHaskellの型ファミリを使用できる可能性があります。
https://twitter.com/ikarienator/status/516494512240463872
0210デフォルトの名無しさん
2014/09/29(月) 17:24:11.02ID:pVGLQbPI0211デフォルトの名無しさん
2014/09/29(月) 17:40:44.74ID:SijBaaHO翻訳者がHaskellでプログラミングの真髄が理解できた(キリッ
とか言ってた本と同じ翻訳者っぽいけど大丈夫なの?
0212デフォルトの名無しさん
2014/09/29(月) 18:03:09.54ID:rGEfnDkwまったく同じこと気になって買うの躊躇してる
0213デフォルトの名無しさん
2014/09/29(月) 18:34:27.68ID:BrShvPG90214デフォルトの名無しさん
2014/09/29(月) 18:50:06.56ID:dpnIs8/Xそれ以外でモナドの説明をぶん投げた事いうのは勉強会だとかネットに公開されてるチュートリアルか何かかね
0215デフォルトの名無しさん
2014/09/29(月) 19:49:49.55ID:SijBaaHO原著でも割合が少なかったとしてもせめて補足とか別の本への誘導が欲しかった
「Hsakellを学ぶための最高の入門書(by訳者)」とか
翻訳者も原作者に連絡とってまで丁寧に翻訳したとか書いてあって期待してたんだけどなぁ
0216デフォルトの名無しさん
2014/09/29(月) 19:56:21.14ID:sAVGRibI0217デフォルトの名無しさん
2014/09/29(月) 20:02:50.49ID:tmsJD90hそういうのは説明ぶん投げたって言わねーよアホか
0218デフォルトの名無しさん
2014/09/29(月) 20:31:27.61ID:dpnIs8/Xそもそもどちらの本も古いものだし数多のモナドチュートリアルの失敗からフィードバックを得た新しい記事にはどうしても劣る
やるとしたら訳者注でそんな感じのおすすめのモナド入門の記事のurlを書くとかかねぇ
0219デフォルトの名無しさん
2014/09/30(火) 08:19:08.44ID:HV0QL1Gqいまだに解らん
0220デフォルトの名無しさん
2014/09/30(火) 09:31:51.76ID:P3P6wdce全部同時に教えれば効率いいんじゃねみたいなトップダウン馬鹿に惑わされるな
0221デフォルトの名無しさん
2014/09/30(火) 19:30:17.56ID:uDYMgl/j0222デフォルトの名無しさん
2014/09/30(火) 19:42:53.22ID:PoSTgdmYf' :: (Functor m, Applicative m, Monad m) => (a -> m b) -> a -> m a
fを使ってf'を定義したい。
教えて
0223デフォルトの名無しさん
2014/09/30(火) 20:35:27.12ID:P3P6wdceモナド及びその他全ての定義を使ってもそれを作れないインスタンスを一個示せばよい
0224デフォルトの名無しさん
2014/09/30(火) 23:28:21.44ID:gNA9kBZ6否定の定義は意外と知られていない
0225デフォルトの名無しさん
2014/10/01(水) 03:21:59.24ID:bEMbBwZk0226デフォルトの名無しさん
2014/10/03(金) 20:49:23.58ID:jobz3T2e>悪魔の証明
全称命題のことでしょ存在命題じゃなくて
そら全称命題だからすべての場合をつくさなくてはいけないので大変なのは当たり前だが「悪魔」がどうこういうほど複雑なわけではない‥
>否定の定義
矛盾の定義じゃなくてただの否定ですかね?そんなにむずかしいところがあったっけ?
0227デフォルトの名無しさん
2014/10/03(金) 21:50:35.84ID:UwTYeZ/nこれって実質(∃ f : m a -> a) → ⊥でカレーなんちゃらから¬∃ f : m a -> aってなるから
それをもって否定の証明とすることは言うことはできそう
0228デフォルトの名無しさん
2014/10/03(金) 22:00:19.27ID:s89mrULRWHNF
わかる
リスト→[_, _, _, _]
WHNF
は?
最初の構成子が現れるまで評価して、それ以上は評価しない
のが弱頭部正規形なんじゃないの?
0229デフォルトの名無しさん
2014/10/04(土) 01:17:36.13ID:Rnt/h2V0いろいろやったけど、うまくいかないです。
OSは、windows 8.1 64bit版です。
0230デフォルトの名無しさん
2014/10/04(土) 12:41:02.79ID:aTYfg4h1このバグかな?
https://ghc.haskell.org/trac/ghc/ticket/7143
https://ghc.haskell.org/trac/ghc/ticket/7143#comment:8
にあるような方法で回避できる場合もあるようだ
0231229
2014/10/04(土) 14:11:52.89ID:UDMC2ivhhttp://sourceforge.net/p/clangonwin/activity/?page=0&limit=100#542bd6bb27184666d3e6aa84
ここらへんからLLVMの様々なバージョンのうち、
2個ダウンロードして試しましたが、
GHCの最新版(HaskellPlatform-2014.2.0.0)との相性が悪いようで、
-fllvmオプションでのコンパイルに失敗したり、成功しても実行ファイルが動作しなかったり。
相性のよいバージョンをしらみつぶしで探すのも億劫です。別に問題があるかもしれない。
0232デフォルトの名無しさん
2014/10/05(日) 11:37:46.53ID:bI/avFIb依存関係にある一部のパッケージで勝手に不具合ありの最新バージョンに上げようとして迷惑なんだけど
0233デフォルトの名無しさん
2014/10/05(日) 12:05:19.02ID:gN1jpSkKcabal install foo --constraint=bar==1.0
でいけるらしい
cabal install foo 'bar == 1.0'
とかでもいけたと思う
0234デフォルトの名無しさん
2014/10/05(日) 12:32:43.38ID:bEYOdHBUぶった切れ
0235デフォルトの名無しさん
2014/10/05(日) 13:03:41.56ID:6ABX7oxUもうすでに来ている、FreeBSD を筆頭に奴らはみな gcc を見限った、minix でさえも gcc を突き放した、copyleft 思想は乙女のピンチ
0237デフォルトの名無しさん
2014/10/05(日) 13:54:24.49ID:Vex2igBWStackage使うのは?
http://www.stackage.org/
0238デフォルトの名無しさん
2014/10/07(火) 01:45:39.34ID:4nlgcGJf0239デフォルトの名無しさん
2014/10/07(火) 11:57:13.32ID:NUXh/T9C断られたら初めて『しょうがねえな、自前でなんとかすっか』ってGCするの?
0240デフォルトの名無しさん
2014/10/07(火) 17:39:38.79ID:Rf3+5HS2いや、それをやったら1G/sくらいの勢いでシステムのメモリ全部食うことになる
GC第0世代の領域の大きさは固定だし、第1世代は可変だけど増えるのはゆっくりになってる
https://www.haskell.org/ghc/docs/7.6.3/html/users_guide/runtime-control.html
ここの-Aとか-Fを参照
0241デフォルトの名無しさん
2014/10/08(水) 18:12:25.80ID:XoeCEfVjそういうライブラリある?
0242241
2014/10/08(水) 19:58:32.59ID:iTXSQwmFhttp://lpaste.net/112304
0243デフォルトの名無しさん
2014/10/09(木) 01:28:13.47ID:yI/Jzb2v0244デフォルトの名無しさん
2014/10/09(木) 02:52:19.47ID:yI/Jzb2vありがとうございます。巧く行きました
>>237
駄目でした。サンキューエニウェイ
0245デフォルトの名無しさん
2014/10/10(金) 01:17:38.81ID:Y1+8A3I8一個ずつじゃなくて欲しいパッケージ一気に並べた方がバージョンの調停してくれるんだね
インストール時のコマンドのログ録った方がいいな
0246デフォルトの名無しさん
2014/10/10(金) 08:13:53.70ID:nsfdMwJ/手動なら何もしないものを自動にしても無益どころか有害だ
0247デフォルトの名無しさん
2014/10/10(金) 17:50:39.67ID:s24SpmmQnewtype Op2 b a = Op2 (a -> a -> b)
instance Contravariant (Op2 b) where
contramap f (Op2 x) = Op2 (x `on` f)
とすると、
Op2 (==) >$$< (`mod` 3)
のように書けて面白い。でも
(==) >$$< (`mod` 3)
とできるともっと嬉しいのだけど、なんとかならないかなぁ。
0248デフォルトの名無しさん
2014/10/11(土) 09:43:27.42ID:eNl3sMbS0249デフォルトの名無しさん
2014/10/11(土) 19:35:28.06ID:RVCvQvPcfmap = contramap . contramap
return = contrareturn . contrareturn
join = contramap return
0250デフォルトの名無しさん
2014/10/12(日) 02:36:59.67ID:+5P3aFyP大量の機器点検漏れから事実上の運転禁止命令が出ている日本原子力研究
開発機構の高速増殖炉もんじゅ(福井県)で、1995年のナトリウム漏えい事故を
きっかけに原子炉補助建物に設置された2次系冷却材の監視カメラ計180基のうち、
約3分の1が壊れていることが11日、関係者の話で分かった。
原子力規制庁が9月に実施した保安検査で判明。壊れたまま1年半以上放置
されていたものもあり、保安規定違反の疑いが持たれている。低温停止中のため
実害はないとみられるが、機構の安全管理体制が問われ、命令期間が長期化
する可能性が出てきた。
0251デフォルトの名無しさん
2014/10/13(月) 15:43:57.81ID:ndeR0BElが欲しいのですが、どうやっても作れません。誰か教えて
0252デフォルトの名無しさん
2014/10/14(火) 00:49:51.09ID:gqGRU/mXhogeのソースコードの中にデータコンストラクタはない
concatは呼び出されない
hoge _ = ⊥
0253デフォルトの名無しさん
2014/10/14(火) 03:46:26.83ID:MNjmhKjVなるほど、わかりました!
0254デフォルトの名無しさん
2014/10/17(金) 14:20:14.02ID:TgkQJjfY0255はちみつ餃子 ◆8X2XSCHEME
2014/10/17(金) 14:47:06.70ID:5fX6k6qM0256デフォルトの名無しさん
2014/10/17(金) 21:23:42.16ID:8/jWEK5qノ
0257デフォルトの名無しさん
2014/10/18(土) 12:24:57.09ID:TkQE1CRSなりすまし死ね
0258デフォルトの名無しさん
2014/10/18(土) 12:30:04.02ID:HQiMaXDH0259デフォルトの名無しさん
2014/10/18(土) 12:43:32.41ID:Ae8YNsjN0260デフォルトの名無しさん
2014/10/18(土) 23:11:48.84ID:O3iieulXこの言語あんまり普通のアプリの開発には向いてなさそうだし、使い手はCSとか数学の教養がある人が多いようだし
結構コアな仕事をやっているんでしょうか。
0261デフォルトの名無しさん
2014/10/18(土) 23:18:10.67ID:gQK7gpe00262デフォルトの名無しさん
2014/10/19(日) 10:11:24.38ID:xZSh/37j0263デフォルトの名無しさん
2014/10/19(日) 10:12:32.69ID:Z+cllJIv0264デフォルトの名無しさん
2014/10/19(日) 10:40:53.92ID:YpIvvbfNCSとか教養とかいうピンボケ野郎の敵
0265デフォルトの名無しさん
2014/10/19(日) 14:38:47.63ID:uVcP9PEL0266デフォルトの名無しさん
2014/10/20(月) 06:15:09.89ID:NVo8q+G70267デフォルトの名無しさん
2014/10/20(月) 14:55:16.84ID:2FIBpHJ9東京電力は18日までに、福島第1原発2号機東側の港湾近くに設置した観測用井戸で
16日に採取した地下水から、1リットル当たり26万4000ベクレルのセシウムが
検出されたと発表した。地下水のセシウム濃度で過去最高値。
0268デフォルトの名無しさん
2014/10/20(月) 20:17:41.09ID:M2DZDJ5tこの言語が向いているのは、数学的にモデリングしやすい対象についてのプログラムを組む時じゃない?金融工学とか。
0269デフォルトの名無しさん
2014/10/20(月) 20:32:18.48ID:ArnYxvsK0270デフォルトの名無しさん
2014/10/20(月) 20:44:36.43ID:dL8L/7RF0271デフォルトの名無しさん
2014/10/20(月) 20:52:26.43ID:zqeuiJ+g0272デフォルトの名無しさん
2014/10/20(月) 21:11:08.39ID:1JDYy/6U0273デフォルトの名無しさん
2014/10/20(月) 22:02:29.72ID:NVo8q+G7そう考える人はたくさんいる
>この言語が向いているのは、数学的にモデリングしやすい対象についてのプログラムを組む時じゃない?金融工学とか。
いいえ
0274デフォルトの名無しさん
2014/10/20(月) 22:03:33.56ID:sYr1LscH0275デフォルトの名無しさん
2014/10/20(月) 22:09:30.93ID:NVo8q+G70276デフォルトの名無しさん
2014/10/20(月) 22:09:59.68ID:2FIBpHJ92014年10月20日
福島第1原発4号機の使用済み核燃料プールからの燃料取り出し作業で、
東京電力は20日、使用済み燃料1331体のうち1320体の移送を終了したと発表した。
次回作業で破損燃料3体を含む使用済み燃料すべての移送作業が終わり、
プールに残るのはリスクの低い未使用燃料だけとなる。
4号機プールには原発事故の発生前から、「く」の字に曲がった燃料が1体、
過去に放射性物質漏えいが検知された燃料が2体入っていた。次回の作業では、
変形した燃料が入るように収納スペースを一部広げた輸送容器で、
残る使用済み燃料11体を一遍に別棟の共用プールに運ぶ。11月末までに移送を終える予定。
0277デフォルトの名無しさん
2014/10/20(月) 22:26:39.90ID:HYhBDv5c型の話題を避けてもスクリプト言語が得をするだけだぞ
C#/Javaは毒にも薬にもならん
0278デフォルトの名無しさん
2014/10/20(月) 23:13:50.18ID:Nw2FKi3B0279デフォルトの名無しさん
2014/10/20(月) 23:46:57.66ID:zqeuiJ+g静的型付けされている、とはどう違うのかな
0280デフォルトの名無しさん
2014/10/21(火) 00:19:06.92ID:59ik5Gq1言うまでもない現実
0281デフォルトの名無しさん
2014/10/21(火) 05:32:50.87ID:lJ5j5/+Xghci?あれ値を表示するルールが分かりにくくないですか。
あとλ式くらいShowのインスタンスじゃありません、とかつべこべ言わずに黙って表示しろ!といつも思う…。
0282デフォルトの名無しさん
2014/10/21(火) 09:26:40.20ID:MOstEzxE学習コスト高くて人が寄りつかなくて強力で実用的なの
自分で書いたコード三ヶ月後に眺めて絶望しない奴
0283デフォルトの名無しさん
2014/10/21(火) 09:50:27.14ID:cD3cGaQfATS が最強。
0284デフォルトの名無しさん
2014/10/21(火) 17:54:38.93ID:ATP5nWI5千葉県警佐倉署は21日、強姦未遂の疑いで川崎市麻生区、経済産業省資源エネルギー庁職員仲上京介
容疑者(24)を逮捕した。
逮捕容疑は2010年9月27日午後10時ごろ、千葉県八街市内の路上で、当時高校生だった女性(20)に
後ろから声をかけて人けがない場所に連れて行き、乱暴しようとした疑い。
佐倉署によると、仲上容疑者は当時大学生で八街市内に住んでいた。「脅して乱暴しようとしたことは間違い
ない」と容疑を認めている。女性との面識はなかった。
0285デフォルトの名無しさん
2014/10/21(火) 23:32:44.42ID:MzqOl5t0デスヨネー
0286デフォルトの名無しさん
2014/10/23(木) 15:03:49.80ID:I5sCFcB1寄り付かな過ぎてWindows版コンパイラすら無いじゃん
自分でmakeしろってか
ここにはGHC自前でmakeしてる人居るの?
0287デフォルトの名無しさん
2014/10/23(木) 23:11:23.56ID:NLZm4zf8cygwinでコンパイル済のATSインストーラがmsiであるとはかどる感じです?
0288デフォルトの名無しさん
2014/10/24(金) 00:31:48.45ID:aO1+iu9V中間言語のインタプリタで十分
インタプリタだろうがコンパイラだろうがどうせライブラリの大半がC言語だし
0289デフォルトの名無しさん
2014/10/24(金) 10:11:03.41ID:igKQL6G8いやもうスマホのLinux環境でmakeしたのでいいです
Windowsは諦めてスマホでプログラミングします
インラインC言語が可能な関数型言語すか
Haskellの現実版かな?
0290デフォルトの名無しさん
2014/10/24(金) 11:52:00.17ID:5Sih5aht次期Debian安定版にはパッケージが入るんじゃなかったっけ?
https://packages.debian.org/jessie/ats2-lang
0291デフォルトの名無しさん
2014/10/24(金) 11:54:09.82ID:5Sih5ahtUbuntuもだけどね
http://packages.ubuntu.com/utopic/devel/ats2-lang
0292デフォルトの名無しさん
2014/10/24(金) 18:27:15.54ID:/zvIgrNXん?C言語なんて直接書いたりしないよん
0293デフォルトの名無しさん
2014/10/25(土) 21:34:06.25ID:skuEpUNrHUnit 単体テスト(引数と結果の対応とかをチェック)
QuickCheck. ランダムテスト(ランダムに値を生成してルールに沿っているかをチェック)
doctest コメントにテストコードを書ける
hspec 別のファイルにまとめてテストコードを書ける
test-framework テストコードをグループ分けしたり、見やすくしたりできる
形式的証明とかは無いの? haskell-src-extsでパースして、変形して恒真であることをチェックできる、みたいな
0294デフォルトの名無しさん
2014/10/26(日) 21:40:21.56ID:WKfuD2eEa -> (b -> c) がいるじゃん?
a -> (b, c) は孤独なの?
0295デフォルトの名無しさん
2014/10/26(日) 21:46:53.03ID:u4tbdCa8下記のプログラムで class Cook に型依存性(と言うのかな?) a -> b を指定する必要性が分かりません。
------------------------------
data Nasu = Nasu Int
class Cook a b where
cook :: a -> b
instance Cook Nasu Nasu where
cook (Nasu n) = Nasu (n+1)
main :: IO ()
main = do
let a = Nasu 1
let b = cook (cook a) :: Nasu
return ()
------------------------------
cook (cook a) :: Nasu を cook ((cook a) :: Nasu) :: Nasu に変えればオプション不要でコンパイルが通ります。
ですが、このプログラムなら (cook x) :: Nasu の x は Nasu 以外にありえないので、
現状のままでも cook (cook a) :: Nasu の内側の cook a は Nasu だと推論されても良さそうなんですが・・・
デフォルトでは、cook ::a -> b の a から b も、逆に b から a も推論しないのでしょうか?
0296デフォルトの名無しさん
2014/10/26(日) 22:14:29.56ID:vFcg41hF上の二人ほど親密ではないが ( (a->b), (a->c) ) という親友はいるな
0297デフォルトの名無しさん
2014/10/27(月) 06:54:23.07ID:6YT6iDlsと初心者が嘯くテスト
0298デフォルトの名無しさん
2014/10/27(月) 07:12:16.97ID:6YT6iDls今、Cookはナス×ナスにしかインスタンスを認めていないので
コンパイラはナス×ナス以外の可能性が少しでもあるものにcookを使わせるわけにはいかない
今、aはナスを取るだけで返値の型についてなんら言及していない
従ってナス→?であり、ナス×?をCookの仲間として認めることはできないのでcookを使わせることもしない
コンパイラは考える。そもそもcookってなんだ? Cookの条件となる関数のことかも知れないがその保証もないではないか
もしそのつもりで書いてるなら前もってナス×ナスである保証をくれ。それならcookを使わせてやる
と初心者が嘯いて世を惑わせるテスト
0299デフォルトの名無しさん
2014/10/27(月) 07:14:29.67ID:6YT6iDls今、cook a はナスを取るだけで返値の型についてなんら言及していない
従ってナス→?であり〜か
0300デフォルトの名無しさん
2014/10/27(月) 07:15:21.83ID:pBeepT/B0301デフォルトの名無しさん
2014/10/27(月) 19:28:37.24ID:Ca9vxtbi一般に、「あるインスタンスが存在しない」ことに頼った型推論はしないことになってる
一般論としてはクラスのインスタンスはどこでも宣言できるから、今見える範囲に
インスタンスがないからといって、プログラムのどこにもないとは言い切れない
そのコードの場合はMainしかないプログラムなので全貌が見えてるけど、
そこは特別扱いしないで、あくまでCookのインスタンスが他にある可能性を想定する
0302295
2014/10/27(月) 20:27:57.25ID:xhap4Kxqとても分かりやすい説明で納得できました。
お二人とも、ありがとうございました。
0303デフォルトの名無しさん
2014/10/27(月) 21:59:53.36ID:/wM/F8s2流石上級者様は的確に本質を突くなぁ
0304デフォルトの名無しさん
2014/10/28(火) 09:00:12.01ID:X2R2+570.cabal/config ファイルを修正して
documentation: True
にしたのち、
cabal install world --force-reinstalls --reinstall
で、インストールされている全てのパッケージがドキュメント付きで再インストールされます。
0305デフォルトの名無しさん
2014/10/28(火) 21:07:37.54ID:X2R2+570(?) :: (a -> Bool) -> (a -> b) -> (a -> b) -> (a -> b)
のようにinstanceを作って使えるようにしたいんだけど、どんなclassを作ればいいんでしょうか
0306305
2014/10/28(火) 21:27:22.93ID:X2R2+570class Conditional q a where
type ConditionalExec q a
(?) :: q -> ConditionalExec q a -> ConditionalExec q a -> ConditionalExec q a
-- >> (True ?) 1 2
-- 1
instance Conditional Bool a where
type ConditionalExec Bool a = a
(?) b x y = if b then x else y
-- >> (even ?) (+ 1) (subtract 1) $ 2
-- 3
instance Conditional (a -> Bool) b where
type ConditionalExec (a -> Bool) b = a -> b
(?) = liftA3 (?)
-- >> (((==) ?) (+) (-)) 2 1
-- 1
instance Conditional (a -> b -> Bool) c where
type ConditionalExec (a -> b -> Bool) c = a -> b -> c
(?) = liftA3 (?)
まあこういうものが役に立つかは分かりませんが、
前々スレで質問に答えてくれた方が、"多引数関数のポイントフリー化は上手くいかない"って仰ってたので、ずっと気になっていました。
0307デフォルトの名無しさん
2014/10/28(火) 23:30:10.66ID:m/ikHWHjmap ($ 2) (even, (+ 1), subtract 1)
map (`uncurry` (2,1)) ((==), (+), (-))
0308デフォルトの名無しさん
2014/10/29(水) 13:49:03.62ID:APzrLMN7processが駄目ならWin32も駄目ってわけで。
遂にXPに移行の潮時か
中古のノーパソ1万くらいで探すか
0309デフォルトの名無しさん
2014/10/29(水) 16:39:46.83ID:TgghxHIi0310デフォルトの名無しさん
2014/10/29(水) 21:07:49.16ID:92SS7Xbr0311デフォルトの名無しさん
2014/10/29(水) 21:48:47.81ID:MeZiugk5便所で暮らしていて折込広告入りの新聞もとっている人にとっては同じです。
0312デフォルトの名無しさん
2014/10/30(木) 00:37:54.38ID:BnK4LurPお前らREPLするのに Inf-haskell-mode とか使ってるんだろうけど、それオワコンだから。
代わりに interactive-haskell-mode 使え。捗るぞ。
メリット:
・編集中のコードでコンパイルがコケても、REPL側がクリアされない。
・補完が効く。
0313デフォルトの名無しさん
2014/10/30(木) 00:40:00.14ID:i7GNsy6Q0314デフォルトの名無しさん
2014/10/30(木) 00:42:36.29ID:qxLbdY/2まともなIDEはよ
0315デフォルトの名無しさん
2014/10/30(木) 01:09:20.95ID:YQsuxWlr0316デフォルトの名無しさん
2014/10/30(木) 02:01:04.82ID:PIIL60DQ【翻訳】USトップ大学でも関数型プログラミングが余り教えられていない現実
http://postd.cc/who-teaches-functional-programming/
0317デフォルトの名無しさん
2014/10/30(木) 07:15:16.47ID:Ka8QLUCaIDEを求めるVimユーザ??
Vim使い出すとそこらのテキストエディタやらIDEやらはバカバカしくて使えなくなるもんだと思ってました...
仮にまともなIDEが作られるとするなら、どんな機能が欲しい? グラフィカルCabal?
0318デフォルトの名無しさん
2014/10/30(木) 07:17:02.14ID:Yy7uGwo00319デフォルトの名無しさん
2014/10/30(木) 07:24:14.93ID:8Ui8dVCDアマグラマが暇つぶしに作った開発支援マクロごときじゃ
プロフェッショナル集団が(退屈なところまで)きっちり作りこんだ機能満載のIDEには遠く及ばない
0320デフォルトの名無しさん
2014/10/30(木) 07:44:22.06ID:Ka8QLUCaコレなんだよな
0321デフォルトの名無しさん
2014/10/30(木) 07:50:27.34ID:Ka8QLUCaIn the second argument of ~
In the first argument of ~
In the second argument of ~
とかいうのを何とかしてほしい。気の利いた矢印とかそういう感じので…
あとは、ドラッグ&ドロップでArrowの回路図が組めるとかどう?
少なくともこれよりはいいでしょ
http://scrambledeggsontoast.github.io/2014/09/28/needle-announce/
0322デフォルトの名無しさん
2014/10/30(木) 08:23:40.93ID:02BD2rSI0323デフォルトの名無しさん
2014/10/30(木) 08:37:47.81ID:Xnlz9Lrq言語によるなあ
jsみたいな動的寄りならエディタでもまあいいけど
静的に寄れば寄る程IDEとの格差が開くイメージ
その意味ではHaskellってすごいIDE出来そうだけどね
0324デフォルトの名無しさん
2014/10/30(木) 10:06:54.89ID:u9ATJLhh言語拡張に対応できるのか謎だけど
0325デフォルトの名無しさん
2014/10/30(木) 11:13:55.19ID:qny8Mq3O抽象化は格差を捨象する
0326デフォルトの名無しさん
2014/10/30(木) 12:38:10.20ID:lquEeW13どういう意味?
0327デフォルトの名無しさん
2014/10/30(木) 12:58:20.22ID:qny8Mq3O0328デフォルトの名無しさん
2014/10/30(木) 13:23:40.65ID:dpPD7LuJ抽象化を進めると、テキストエディタでも十分になる、ってこと?
静的な言語の特徴を生かしたIDEの機能といえば、うーん、例えば…
カーソルのある位置に置くことのできる値の型でフィルタして補完する、とかが思いつく。
割と便利な気がするけど、
十分に抽象化するとそういうのも要らなくなるの?
0329デフォルトの名無しさん
2014/10/30(木) 18:33:17.80ID:qny8Mq3O全員こちら側に移住させれば便利だというのは画一化になる
抽象化は画一化とは違い壁自体を無くすので人を動かす必要がない
0330デフォルトの名無しさん
2014/10/30(木) 22:22:57.61ID:Ka8QLUCa興味深いけど、どこか曖昧に聞こえます。
壁は何を意味しますか? 抽象化bヘどのように壁bウくすの?
0331デフォルトの名無しさん
2014/10/30(木) 23:04:07.96ID:Ka8QLUCahttp://honto.jp/netstore/pd-book_26433609.html
0332デフォルトの名無しさん
2014/10/30(木) 23:15:19.78ID:i7GNsy6Qそもそも、プログラミング言語そのものは、もはや教わるモノじゃなくなってる
0333デフォルトの名無しさん
2014/10/30(木) 23:27:08.34ID:H02odoB10334デフォルトの名無しさん
2014/10/31(金) 01:42:47.72ID:kWZ3STh8最初からライブラリが大量にある言語を教える
ライブラリが多いなら言語そのものを教える暇はないと
0335デフォルトの名無しさん
2014/10/31(金) 03:53:55.69ID:It18IbqY東京電力の福島第一原子力発電所の事故で被ばくしたとして
損害賠償などを求めている問題で、米カリフォルニア州の連邦地裁は
同州での訴訟を認める判断を下した。
東電は司法権の問題を理由に米国での集団訴訟ではなく日本での審理を求めていたが、
サンディエゴ連邦地裁のジャニス・L・サマルティーノ判事はこれを退けた。
.
同判事は28日の判断について、「日本での審理は適切な選択肢ではあるが、
公民双方の利益のバランスを勘案したところ、
米国の裁判所で進行する方が都合が良いであろう」と文書で説明した。
0336デフォルトの名無しさん
2014/10/31(金) 06:46:07.96ID:qzXnBU4c0337デフォルトの名無しさん
2014/10/31(金) 07:47:46.69ID:kWZ3STh80338デフォルトの名無しさん
2014/10/31(金) 12:19:48.20ID:6o+/Odkz並列・並行プログラミング買って日が浅いのにまた俺の財布を痛めつける気か
0339デフォルトの名無しさん
2014/10/31(金) 12:44:29.34ID:eFG4AR46http://www.amazon.com/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383/
November 1, 2010
0340デフォルトの名無しさん
2014/10/31(金) 13:07:37.59ID:6o+/Odkzそれ数年前にここの過去スレでも紹介されてましたよね
遂に翻訳されたんだなあ
0341デフォルトの名無しさん
2014/11/01(土) 07:48:35.79ID:k1QlR24bまず、上で定義した(?)。Haskellにはif/then/elseなんていらなかったんや。
>> (True ?) 1 2
>> (even ?) (+ 1) (subtract 1) $ 2
>> (((==) ?) (+) (-)) 2 1
Arrowサポート。(>-),(-<),double。
>> ((+) -<).double (* 2).((+ 1) *** (subtract 1)).(>-) $ 3
12
by演算子。ポイントフリー厨の俺御用達。on並によく使う。
by :: (a -> b) -> (x -> y -> a) -> (x -> y -> b)
たとえば、(/=) = not `by` (==)
unfoldrMより簡単。
untilM :: (Applicative m,Monad m) => (a -> Bool) -> (a -> m a) -> a -> m a
IO計算測る。
bench :: IO () -> IO NominalDiffTime
0342デフォルトの名無しさん
2014/11/01(土) 14:16:38.90ID:Yiae8Qoyhttp://gihyo.jp/book/2014/978-4-7741-6926-2
0343デフォルトの名無しさん
2014/11/01(土) 18:20:45.39ID:W3H01FT0並列・並行プログラミング買って日が浅く、
>>331も買わねばならんのにまた俺の財布を痛めつける気か
0344デフォルトの名無しさん
2014/11/01(土) 19:03:17.94ID:CfUk7pp7もう関数プログラミング三昧で酒池肉林の世界だなw
0345デフォルトの名無しさん
2014/11/05(水) 09:16:47.80ID:+orMvxZhLazy は無限の構造を作れるが、メモリを食う。
Strict は有限の構造しか作れない代わりに、メモリを食わず、速い。
"いつ"、Lazyを使うべきかが、分からないんだなあ。
0346デフォルトの名無しさん
2014/11/05(水) 10:36:54.50ID:O0NTsTrWgetterとpublic変数の違いを考えればよい
「getterはメモリを食う」「public変数は速い」と言ったら何と言い返されるか考える
0347デフォルトの名無しさん
2014/11/05(水) 11:09:50.29ID:uuXXn0N9サーバとクライアントがあったとして、そのどっちでもいいんだけど、
そういったものは要するに、入力としてリクエストのストリームに対して、
出力としてレスポンスのストリームを返す関数として実装できるけど、
遅延でないと、ストリームが伸びてゆくだけでいつまでも本体が動かない。
0348デフォルトの名無しさん
2014/11/05(水) 15:18:30.62ID:+orMvxZh入力には正格 ByteString、出力は遅延 ByteString を用います。そういう風に使えてないとなると、あなたのコードはまだまだアマチュアなのです。
http://d.hatena.ne.jp/kazu-yamamoto/searchdiary?of=5&word=%C3%D9%B1%E4
まだまだアマチュアなんだけど、347のケースで考えて理解を整理しました。こんな感じですかね?
サーバー内部では、クライアントからのリクエストはStrictなデータで保持されていて、対応するレスポンスはLazyなデータとして持っている。サーバーは必要なタイミングでLazyなレスポンスデータを出力する(その時点でStrictに変換される)。
もしレスポンスをStrictなデータにしたなら、場合によっては無限に膨れ上がる。
(なるほど、Lazyはメモリを食う、は間違ってましたね)
もしリクエストをLazyにしたなら?
致命的では無いけど、若干のオーバーヘッドがあって、その分が無駄。
>>346
getterとpublic変数(フィールド?)で迷ったら、ほぼ100%getterにするけど、言いたいのは、
直接扱うか、ラップして扱うか、の違いだってことかな。
ラップしたオブジェクトをごにょごにょして、終わったらgetterで取り出す。
ファイルパスビルダーからパス文字列を作るみたいな。
ああ、なるほど、HaskellではファイルパスビルダーはLazyな文字列の値として表現できるのか。
あれ?ByteString.Lazyって、
(1) a -> ByteString.Strict と同じ?
(2) IO ByteString.Strict で実現できる?
(3) ByteString.Lazy をseq やバンパターンでしょっちゅう評価すれば、それはByteString.Strictを使ってるのと同じこと?
0349デフォルトの名無しさん
2014/11/05(水) 15:33:07.74ID:NLWWBEq7データ構造が無限の長さ?
→ foldr
途中で短絡し得る?
→ foldr
それ以外
→ foldl'
0350デフォルトの名無しさん
2014/11/05(水) 19:19:23.69ID:VU37lBTp>あれ?ByteString.Lazyって、
>(1) a -> ByteString.Strict と同じ?
>(2) IO ByteString.Strict で実現できる?
Lazy.ByteStringは、[Strict.ByteString]とだいたい同じ
つまり、正格なByteStringで表現されたチャンクからなる遅延リスト
>(3) ByteString.Lazy をseq やバンパターンでしょっちゅう評価すれば、それはByteString.Strictを使ってるのと同じこと?
違う。seqやバンパターンは一番外側の構造しか評価しない(厳密にはWHNFまで評価する)
たとえば[Strict.ByteString]をseqで評価しても、一番外側が(:)か[]かが確定するだけで、中身は評価されない
Lazy.ByteStringをseqで評価すると最初のチャンクが評価されるっぽい
(これは仕様というより実装上たまたまこうなってるんだと思う)
0351デフォルトの名無しさん
2014/11/05(水) 22:27:52.27ID:+orMvxZh「レガシーな命令型言語で言う所の”リスト生成機”が、Haskellの[a]に対応している」です。
すると当然、Haskellでも正格データを返す関数やIOを使って、ジェネレータを作れば、それは遅延データと同じものになるのではないか。
もしそうなら何故遅延データが使われているのか。そういう疑問が浮かびました。
関数がcall by needなんだから、データは正格だけで十分では?
>>350
あ、なるほど確かにseqじゃダメですよね。全部のチャンクに至るまで評価しないと(deepseq?とかいうんでしたっけ)。
0352デフォルトの名無しさん
2014/11/05(水) 22:43:18.42ID:+orMvxZhtype String = ByteString.Strict
newtype StringBuilder a = StringBuilder { getter :: a -> String }
cons :: String -> StringBuilder a -> StringBuilder a
cons s (StringBuilder f) = StringBuilder $ (s <>) . f
nil :: StringBuilder a
nil = StringBuilder $ const ""
で、cons,nilをプリミティブにして、多彩な文字列生成機合成を提供する。と。
0353デフォルトの名無しさん
2014/11/05(水) 23:26:09.78ID:+orMvxZhレガシーな言語では、”文字列生成機”は文字列を返す関数(関数オブジェクト)で表すことができるけど、Haskellの a -> String とは違うものですね。それでいうならたんにStringで良い。
xmas :: Text.Strict
xmas = "xmas !!"
merryxmas bocchi = "merry " ++ if (not bocchi) then xmas else "..."
xmas は正格データだけど、状況によっては評価されない。
0354デフォルトの名無しさん
2014/11/06(木) 00:54:30.02ID:mLU2c/k8このため、nullや代入を許容する変数と許容しない変数を区別できないことが多い
0355デフォルトの名無しさん
2014/11/06(木) 05:47:40.95ID:C8h5AOfQ>すると当然、Haskellでも正格データを返す関数やIOを使って、ジェネレータを作れば、それは遅延データと同じものになるのではないか。
遅延データの性質として、
1. 要求されるまで計算されない
2. 複数回要求されても、一度しか計算されない
があるけど、ふつうの関数では(2)を満たせない
IOなら(1)も(2)も満たすようにできるけど、ユーザコードもIOを意識する必要が出てくるので不便
0356デフォルトの名無しさん
2014/11/06(木) 07:47:09.97ID:ZVNa2/n10357デフォルトの名無しさん
2014/11/06(木) 08:21:54.61ID:+3ioqTnw0358デフォルトの名無しさん
2014/11/06(木) 11:06:19.54ID:6vgYQ4+I0359デフォルトの名無しさん
2014/11/06(木) 11:27:34.28ID:el8FQLItな、なるほど! 腑に落ちました。ありがと
0360デフォルトの名無しさん
2014/11/06(木) 11:46:39.88ID:el8FQLItメモ化のことを言ってるんですね。
計算を同じサンクに結びつければ、計算は無駄に行われない。と。
ところで昨日あれから考えてて、もっと良い例を思いついたんですけど、
lazy :: a -> a
lazy a = (\() -> a) $ ()
を使えば、正格データを遅延に変えられますよね?
happyBirthDay :: Text.Strict
happyBirthDay = "Happy Birth Day " ++ lazy "to me..."
>> print $ head 16 happyBirthDay
Happy Birth Day
理解がバージョンアップされました。
「Haskellではナントカ生成機はナントカを弱頭部標準形に包むだけで実現できる。生成機を作る目的でレガシー言語のようにIO計算を作る必要はない。呼び出しをサンクにまとめればOK.」
0361デフォルトの名無しさん
2014/11/06(木) 12:19:08.73ID:ki6zkhTW0362デフォルトの名無しさん
2014/11/06(木) 20:34:57.00ID:MUH9Buffカ
ンデュェットか
0363デフォルトの名無しさん
2014/11/06(木) 21:08:19.53ID:j9zZcG2n0364デフォルトの名無しさん
2014/11/07(金) 02:21:57.92ID:9j/jQs980365デフォルトの名無しさん
2014/11/07(金) 06:23:52.22ID:QrO3W2z+なりすまし死ね
0366デフォルトの名無しさん
2014/11/07(金) 07:24:16.12ID:9j/jQs980367デフォルトの名無しさん
2014/11/07(金) 09:30:21.34ID:LIDPNOLM0368デフォルトの名無しさん
2014/11/07(金) 09:41:06.60ID:XgnNytLv0369デフォルトの名無しさん
2014/11/07(金) 10:37:06.38ID:w9r+UzpWreturn $! に代えたら、20%も高速化したんですけどwwww
前にtanakhさんが foldlは壊れている、正しくはfoldl'、っていう趣旨の翻訳記事を書いてたじゃない。それと同じように、return = (return $!)
で置き換えるべきなの?
0370デフォルトの名無しさん
2014/11/07(金) 10:55:58.91ID:CYOEAapJ0371デフォルトの名無しさん
2014/11/07(金) 15:22:50.72ID:1clwNr+d0372デフォルトの名無しさん
2014/11/07(金) 16:32:32.22ID:w9r+UzpW>>371
あ、わかった
print =<< (head . reverse <$> (return $! reverse [1..] ))
0373デフォルトの名無しさん
2014/11/07(金) 17:00:51.66ID:5EqfDet10374デフォルトの名無しさん
2014/11/07(金) 17:06:11.41ID:6pO9x6h7くらいだと思う
0375デフォルトの名無しさん
2014/11/07(金) 17:06:49.99ID:B3DaCLD40376デフォルトの名無しさん
2014/11/07(金) 18:01:23.96ID:7mel9rlk難しいけど、抑えとかないと致命的になりうるんですよね。
0377デフォルトの名無しさん
2014/11/07(金) 19:55:25.73ID:ehRLeVcRmain = putStrLn (const "fooはthunk" foo)
0378デフォルトの名無しさん
2014/11/08(土) 00:22:16.94ID:fHlqfJbD0379デフォルトの名無しさん
2014/11/08(土) 00:41:10.20ID:vifAICnG0380デフォルトの名無しさん
2014/11/08(土) 01:34:30.44ID:J9TuEpTuコンパイル後のバイナリサイズはチューニングしようがなんだろうがデカいままだろうが
0381デフォルトの名無しさん
2014/11/08(土) 03:09:20.05ID:vifAICnG0382デフォルトの名無しさん
2014/11/08(土) 11:41:08.63ID:LW7xiPF6教えてくれてありがとう。言われなきゃ絶対気づかなかった‥ これは良さそうだわ。
0383デフォルトの名無しさん
2014/11/08(土) 12:36:51.72ID:n7vP28K60384デフォルトの名無しさん
2014/11/08(土) 13:19:08.56ID:u0osiKmL0385デフォルトの名無しさん
2014/11/09(日) 00:17:02.01ID:EqHSZtCW> Android
外国の誰かがSodium でゲーム作ってたような。
0386デフォルトの名無しさん
2014/11/09(日) 10:12:37.51ID:mRPDV88Wリスト操作やタプルを減らしてdo記法とか抽象度あげても、今度は何やってんだか分かんなくなるっていうか
0387デフォルトの名無しさん
2014/11/09(日) 11:35:26.86ID:QOYwRKxw型しか見ない
キーボードを見ないで画面だけ見るのと同じ
0388デフォルトの名無しさん
2014/11/09(日) 12:02:01.62ID:EqHSZtCWHaskell は書くのは天国だが読むのは地獄。バグが出たなら書き直す。
0389デフォルトの名無しさん
2014/11/09(日) 12:17:37.24ID:QOYwRKxw読まなくても再発明できる情報を最大限に脳に焼き付けてから実際のコードを読めばいい
大体予想通りのことしか書いてないから一瞬で読める
0390デフォルトの名無しさん
2014/11/09(日) 12:32:22.24ID:GNDt7Bdm0391デフォルトの名無しさん
2014/11/09(日) 15:11:32.03ID:itJxEnARあとはチラシの裏にでも手で簡約してみる。
これを効率よくやるために、可能な限り徹底的に純粋関数で計算する。
例えば、do の中で IO 入力があれば、入力された値をそこでゴニョゴニョせず、直ちに純粋関数に渡す。
たとえ超単純な計算でも、純粋関数に渡すクセをつけておく。
do の中でゴニョゴニョした方がソースコードの見通しが良いのなら、
バグが無いと確信できたあとでリファクタリングすればいい。
あと、デバッグが無いと確信できるまでは、関数内関数も使わない。
局所的にしか使わないちょっとした関数も全部トップに書く。
0392デフォルトの名無しさん
2014/11/09(日) 15:34:11.22ID:ynWG2VztHaskellが読みやすくするのは計算の構造です
0393デフォルトの名無しさん
2014/11/09(日) 15:38:36.40ID:Wi6Wj++H0394デフォルトの名無しさん
2014/11/09(日) 15:39:29.40ID:81qYhIbT関数型言語こねくり回せるくらい頭いいやつだけで開発するからってオチなのかもしかして
0395デフォルトの名無しさん
2014/11/09(日) 15:48:17.92ID:ynWG2Vztコードと計算の構造は抽象度が違うので、同時に読みやすくなるということの方が例外でしょう
0396デフォルトの名無しさん
2014/11/09(日) 15:54:14.02ID:ynWG2Vzt生産性が上がるのは、関数型だからではなく、クロージャを代入できて値が不変にできるからではなかろうか
0397デフォルトの名無しさん
2014/11/09(日) 17:10:26.68ID:TGkUuDSg>>394
主観だけど、今書いてる100行のコードは、Objective-Cで書いてたころなら1000行くらい掛かってたと思う。ただし、コーディングに掛かる時間は同じくらいなので生産性は変わらず。
0398デフォルトの名無しさん
2014/11/09(日) 17:18:22.10ID:ynWG2Vzt今書いてるコードの行数ではなく、3ヶ月後に自分が書いたコードが保守できるかどうかで判断すべきかと…
0399デフォルトの名無しさん
2014/11/09(日) 18:52:57.83ID:ZFAvQIioSPJ先生の"Wearing the hair shirt - A retrospective on Haskell" に遅延評価の功罪について言及があるね
http://research.microsoft.com/en-us/um/people/simonpj/papers/haskell-retrospective/HaskellRetrospective.ppt
また、letとwhereなど記述に幅を持たせたのは大成功だったとも。
0400デフォルトの名無しさん
2014/11/09(日) 18:54:03.25ID:ZFAvQIio0401デフォルトの名無しさん
2014/11/09(日) 19:00:10.66ID:ZFAvQIiostrip -p --strip-unneeded --remove-section=.comment
すると半分くらいになるよ。
0402デフォルトの名無しさん
2014/11/09(日) 21:27:10.96ID:QOYwRKxwそれは記憶力の問題というより逆境に弱すぎる気がする
少し調子が悪くなっただけで狼狽して何もできなくなるパターン
0403デフォルトの名無しさん
2014/11/09(日) 21:39:01.73ID:VKU6H7RB0404デフォルトの名無しさん
2014/11/09(日) 21:44:21.85ID:QOYwRKxw絶対に記憶しろっていう方が精神論だ
0405デフォルトの名無しさん
2014/11/09(日) 22:00:55.96ID:VKU6H7RB0406デフォルトの名無しさん
2014/11/09(日) 22:08:25.42ID:itJxEnAR主要な関数だけでもドキュメントは書いておいた方がいいぞ。
引数と戻り値の意味、それとは別に計算のごく簡単な流れ。
これを書いておくだけで、後ですげー助かる。
過去の自分に感謝したくなるから。
0407デフォルトの名無しさん
2014/11/09(日) 22:20:45.90ID:mbLWZpZk0408デフォルトの名無しさん
2014/11/09(日) 22:49:35.66ID:EqHSZtCWありがたい。勉強になるわ
>>401
マジ助かる! でも俺の環境(OSX)のstripコマンドにそのオプションはない… 代替を探してみる。
0409デフォルトの名無しさん
2014/11/09(日) 22:50:21.62ID:9LyR+5oz何を言ってるんだお前は
0410デフォルトの名無しさん
2014/11/09(日) 22:56:40.68ID:EqHSZtCW擁護してくれた人には悪いんだけど、これはあるかも。
三ヶ月前のコードは読めない。バグらしき挙動を発見しても、直そうとして大量のtrace文を突っ込むことになる...
でも、書き直すと必ず短くて、わかりやすくなるんだよ。
要は設計がショボかったんだと思う。
0411デフォルトの名無しさん
2014/11/10(月) 22:29:34.56ID:7cnYJA4z0412デフォルトの名無しさん
2014/11/10(月) 22:37:14.36ID:VLesXqGp0413デフォルトの名無しさん
2014/11/10(月) 22:40:26.50ID:7cnYJA4z0414デフォルトの名無しさん
2014/11/10(月) 22:41:29.93ID:A0UHj1LAC言語で3000行/日 の人はいるね。
http://d.hatena.ne.jp/softether/20070324
0415デフォルトの名無しさん
2014/11/10(月) 22:51:55.41ID:i/Dk2pnq詭弁じゃね?
0416デフォルトの名無しさん
2014/11/10(月) 23:05:05.03ID:a0CrBmRgスレチ。っていうか本人に言えよw
その記事は要は、意識的に考えずに指の動くままに、フロー状態で書きまくれ、ってことだろう。
トライ&エラーでコーディングしてコンパイルエラーが出たりバグが出たりしてつまづいてやる気萎えたら無理だと思うけど、
Haskell には、前者の為にhole、後者の為に型チェックとQuickCheckがあるからね。
関数型は脳汁でるしな。
そういう状態には到達しやすいかも。
0417デフォルトの名無しさん
2014/11/10(月) 23:05:58.36ID:f9SpYH13必要なときに思い出せるようなキッカケが用意されていればいいんだ。
0418デフォルトの名無しさん
2014/11/10(月) 23:09:48.57ID:7cnYJA4z0419デフォルトの名無しさん
2014/11/10(月) 23:27:16.41ID:NkZmj/dK1万行を思い出す前にまず1行も読まなくてもわかることを全部思い出すのだ
0420デフォルトの名無しさん
2014/11/10(月) 23:33:47.24ID:a0CrBmRgでもリファクタリングすると、前のモデル忘れちゃわない?
3回くらい書き直した後、日にちが経って思い出そうとすると、最初に出てくるのは一番古いヤツだったり。ああ、あの後書き直したんだっけ、ってなる。
ひょっとして上の登氏みたく、設計は一発でバチっと決められちゃうタイプ?
>>418
意外とHaskell の仕事ってあるんだね。金融系?
>>419
? コードを思い出すんじゃなくて、抽象モデルを思い出せ、ってこと?
0421デフォルトの名無しさん
2014/11/10(月) 23:35:00.73ID:feZKSxME博徒専用言語というイメージだから。
0422デフォルトの名無しさん
2014/11/10(月) 23:37:48.20ID:7cnYJA4zゆえに、他人が書いたコードを保守のしやすさこそがその言語の生産性といえる
0423デフォルトの名無しさん
2014/11/10(月) 23:39:06.85ID:7cnYJA4z大学からの下請け
0424デフォルトの名無しさん
2014/11/10(月) 23:50:29.86ID:a0CrBmRg昨日みた記事では確か、Haskell の生産性はTypeScript、Scalaに次いで3位って話だったけど(ソース失念)、
> ゆえに、他人が書いたコードを保守のしやすさこそがその言語の生産性といえる
その観点でみると、Haskell はどれくらい良い?
0425デフォルトの名無しさん
2014/11/10(月) 23:56:00.83ID:7cnYJA4z理由は、コロコロと根幹部分のモジュールが変わったから
月単位では高い
理由は、同じ機能を実現するためのバリエーションが少ないから
0426デフォルトの名無しさん
2014/11/11(火) 00:05:51.80ID:jUxCk/rZ> >>417
> でもリファクタリングすると、前のモデル忘れちゃわない?
だから、忘れちゃっていいんだよ。
普通は git や Subversion を使ってるから、必要な時は思い出せる。
ドキュメント付いてれば尚更楽に思い出せる。
そういう、思い出すためのキッカケ(仕組み)を予め用意しておくんだよ。
ただ、ドキュメントがヘタッピだとヤバいな。
0427デフォルトの名無しさん
2014/11/11(火) 00:09:57.47ID:AaX4/UOm言語非依存の技術を身につける機会がどれほど失われていることか
0428デフォルトの名無しさん
2014/11/11(火) 00:11:32.49ID:RW6n7dRV0429デフォルトの名無しさん
2014/11/11(火) 00:12:45.97ID:RW6n7dRV言語非依存の技術がなければ、言語に順位は付けられませんよ
0430デフォルトの名無しさん
2014/11/11(火) 00:18:12.17ID:Mc4XktUMコンディットとかの事を言ってるのか。
バリエーション少ない?
http://www.willamette.edu/~fruehr/haskell/evolution.html
例えばグラフを表現するにしても、隣接行列、隣接リスト、さらにリストにするか、セットにするか、ノードはOrd aにするか、単にIntでいいのか、ケースバイケースで色々あると思うんだけど?
0431デフォルトの名無しさん
2014/11/11(火) 00:18:57.33ID:Mc4XktUMカ ンジッット
だったね。
0432デフォルトの名無しさん
2014/11/11(火) 00:26:12.69ID:Red25WNbなるほど。思い出すキッカケとしての、ドキュメント。メモメモ
あんま意識してなかったけど、確かに助けにはなっているかも。個人的には、関数へのコメントより、ファイル冒頭に設計指針を書いておくほうが多いです。
> ただ、ドキュメントがヘタッピだとヤバいな。
…
自信はないけど、自分が読めるから、取り敢えず、いいか、な
0433デフォルトの名無しさん
2014/11/11(火) 00:29:37.46ID:RW6n7dRV断言するが、lispやCやJavaと比べたら、プログラマにある機能を要求したときに提出されるコードのバリエーションが、Haskellは極めて少ない
0434デフォルトの名無しさん
2014/11/11(火) 04:25:03.93ID:m7WVeZhS0435デフォルトの名無しさん
2014/11/11(火) 07:51:04.83ID:XbL/s6PQコアが増えていけば速くなり続けて行くと思ってたのに……
メニーコアとは幻想だったのか…
0436デフォルトの名無しさん
2014/11/11(火) 08:05:50.97ID:/UGcfCAOあっちにも書いたけどこっちにも転載
0437デフォルトの名無しさん
2014/11/11(火) 08:14:04.59ID:IHNztH1r実践的なHaskellコードを読んで絶望しろ
0438デフォルトの名無しさん
2014/11/11(火) 13:58:02.38ID:j+uyDxfA:!でターミナルのコマンドが使えますが、これを関数に組み込むにはどのようにしたらよいのでしょうか?例えば、
foo = :! pwd
と定義したfooを実行したらカレントディレクトリを表示する、というようなことをしたいのですが(もちろん、これはコンパイルできませんが)、どのようにしたら良いでしょうか。
基本的なことで恐縮ですが、ググっても目的の答えに辿りつけなかったので質問しました。
0439デフォルトの名無しさん
2014/11/11(火) 14:19:11.58ID:L4zKGcL9https://www.haskell.org/ghc/docs/latest/html/libraries/process-1.2.0.0/System-Process.html
foo = callCommand "pwd"
0440デフォルトの名無しさん
2014/11/11(火) 18:28:48.53ID:j+uyDxfA希望することができました。
ありがとうございます。
0441デフォルトの名無しさん
2014/11/13(木) 14:25:56.14ID:/hesX7bcpullで何かしたいなら、合成したイベントハンドラにファンクター的に中身に変換掛ければいいじゃない。
0442デフォルトの名無しさん
2014/11/13(木) 14:28:29.72ID:/hesX7bc"時間変化する値"っていう抽象は、一見わかりやすいけど、本質的じゃないよ。
0443デフォルトの名無しさん
2014/11/13(木) 20:12:29.70ID:qEFCMURuそれで済む場合もあるけど、Behaviorがあった方が便利な場合もある
例えば、同じソースを監視するイベントハンドラが複数あったら
全部個別にfmap(実際はcontramap)しなきゃならなくて、
重い関数を適用したい場合はコストが問題になる
0444デフォルトの名無しさん
2014/11/13(木) 20:54:00.50ID:Hgbf31UD型システムのために Behavior a を作ったんだろう
0445デフォルトの名無しさん
2014/11/13(木) 20:54:43.82ID:fBmBaE/Aelereaのシグナルを学んだばかりで、Behavior の概念に馴染めてないから、いまひとつピンとこないんだけど、
複数のイベントハンドラ、がそれぞれEvent、でいいんだよね?
mouseDownとかmouseMoveとかwheelScrollとかかな?
で、マウス位置(xy座標)をストリーム(Eventシグナル)に載せているんだけど、例えばx座標だけを抜きたい時、\(x,y) -> x をそれぞれのEventに対してcontramapする。
こういう認識であってるかな?
もしそうなら、Behavior は重い関数を掛けるときのパフォーマンス劣化の問題を、どうやって解決するんだい?
解説頼む。
0446デフォルトの名無しさん
2014/11/13(木) 21:51:34.46ID:4Xr/dCjqBehavior を(も)使った方が解りやすいというタイプの人のためにある。
Behavior よく解らん、Event 解りやすいという人は、Behavior のことは気にしなくていい。
両方使ったり、片方だけで代用したり、いかようにも表現できる。
0447デフォルトの名無しさん
2014/11/13(木) 22:11:56.86ID:/hesX7bcなんだか、甘味料と砂糖みたいな関係ですね。
晩御飯のすき焼き、甘味料で作ってみようかなあ。
煽りはさておき、Behavior がどういう概念で、どういうシーンでしっくりくるのか、興味があります。
あなたなりの理解を教えていただけると幸いです。
0448デフォルトの名無しさん
2014/11/13(木) 22:48:25.29ID:fBmBaE/A0449デフォルトの名無しさん
2014/11/13(木) 23:19:59.71ID:8WQaaDuGelereaはドキュメントに用例が多くて助かります。
https://hackage.haskell.org/package/elerea-2.7.0.2/docs/FRP-Elerea-Simple.html
特に、A longer example の節は必見
GUIアプリの例。解説のHTMLが同梱されています
https://hackage.haskell.org/package/elerea-examples
0450デフォルトの名無しさん
2014/11/13(木) 23:41:31.63ID:iWKxp8OY多謝
0451デフォルトの名無しさん
2014/11/14(金) 14:21:56.46ID:WNZtrPXa加速度を積分して速度、積分して位置にしたり。
リストのスクロールを摩擦係数をいじって減速度合いを変えたり。
0452デフォルトの名無しさん
2014/11/14(金) 14:36:53.44ID:+69VmKY1elereaのSignalはMonadだからやりたい放題できるからそれに慣れると分ける意味わからんよな
0453デフォルトの名無しさん
2014/11/14(金) 22:26:54.48ID:WNZtrPXaワイ「わーい」
0454デフォルトの名無しさん
2014/11/14(金) 23:05:43.56ID:DkHiTH1Y0455デフォルトの名無しさん
2014/11/14(金) 23:52:30.13ID:qCbHalO3久しぶりに読みにくい日本語に出会った
0456デフォルトの名無しさん
2014/11/15(土) 03:09:27.49ID:TFMH5uTn予約の話をしよう、あれは今から36万・・・いや、1万4000年前だったか、
まぁいい、私にとってはつい昨日の予約だが、君たちにとっては多分明日の予約だ
0457デフォルトの名無しさん
2014/11/15(土) 07:17:39.36ID:YUaatuso6日に http://gihyo.jp/book/2014/978-4-7741-6926-2
と併せて予約したのにまだ片方さえ届かないのか
Amazonは発売日に届くように逆算して発売日前から発送してくれないのかよ
何のための予約だよ(日記帳終わり)
0458デフォルトの名無しさん
2014/11/15(土) 08:34:31.54ID:H+rNrAzt0459デフォルトの名無しさん
2014/11/15(土) 15:15:48.89ID:6XZYIjlt0460デフォルトの名無しさん
2014/11/15(土) 16:10:01.92ID:sWhlw3Sr評価する
0461デフォルトの名無しさん
2014/11/15(土) 16:33:34.62ID:RGetlYiU0462デフォルトの名無しさん
2014/11/15(土) 17:04:09.67ID:VFt6Efys0463デフォルトの名無しさん
2014/11/15(土) 19:09:22.58ID:LR57/AKQ0464デフォルトの名無しさん
2014/11/15(土) 21:11:35.46ID:/FINKz8Gどんな良書も一瞬でただの資源ごみだからな
読みにくいって
文意を理解できないから主語を誤魔化すために省くとか全体の流れが分からないから指示語をそのままとかそういうレベル?
それとも直訳過ぎて日本語に馴染んで無いとか?
0465デフォルトの名無しさん
2014/11/15(土) 21:21:47.87ID:sWhlw3Sr0466デフォルトの名無しさん
2014/11/15(土) 23:55:43.29ID:sS71apjVelerea を使って Event を理解できたのなら、
elerea 以外のも触ってみれば Behavior もちゃんと理解できると思う。
なんで Behavior の方は実物に一度も触れずに人に聞くの?
>>447
「概念」といったら、Behavior は時間を引数にとった連続関数、
Event は時間と値のペアのストリームだ。
Behavior がしっくりくるシーンの代表は >>451 が挙げている。
二人も、その他の FRP に興味がある人も、
古典「The Haskell School of Expression」を読んで、
簡単な FRP の仕組みを自分で作ってみることをお勧めする。
この本に書かれた方法はスペースリークを起こす事が既に知られてるが、
概念とその実装の「基礎知識」を学ぶにはとてもよい本だ。
他の FRP を学ぶ上でもこの知識はきっと役立つ。
0467デフォルトの名無しさん
2014/11/16(日) 00:35:43.95ID:A54MayZ4おお!ありがとう。誤解があるようだけど、俺は445でかつ451なんだ。
FRPは基本的な概念がまだ揺蕩っている気がする。
Conal Elliot がブログで Garbage Collecting the Smantics of FRPとか言っていて、"時間の関数だというなら任意の時刻にタイムスリップできなきゃならないが、実際にはできない、おかしい"って言ってる。
Javascript界隈で定評のあるBacon.jsは同氏によって"紛い物"扱いされている(理由はBehaviorが無いから)。
黎明期のFRPはスペースリークとかあったらしいけど、今のFRPはいろんなテクを駆使して問題を克服したようだ。
シンプルで分かりやすく、ゲームアプリに使われた事のあるelerea は、残念なことにpull式で、アイドリング時の計算力が無駄なので、最近、push版、ordreaが出来た。
しかし驚くなかれ。ordreaのBehavior には、delayがある。
繰り返す、delayがある。
…Behavior は"時間の関数"じゃなかったのか??
ごく最近、FRPはComonadicにすべきだ、という声を聞くようになった。
何故Comonadic? 理由がよく分からないし、その実装は未だ現れていない。
…そんな感じで、色々混乱がみられるようなので、正直突っ込んでいくのが怖い、"差し足忍び足"でにじり寄っている、訳なのです。
0468デフォルトの名無しさん
2014/11/16(日) 00:40:11.44ID:A54MayZ4Arrowだから? なんで?
0469デフォルトの名無しさん
2014/11/16(日) 09:00:25.19ID:0kiSer6o理解できなきゃあまり意味がない、自分が最先端にいるような気になるだけだ。
そんなことより、理解できるところまで時代をさかのぼって、
「自分で実装しながら」ゆっくり学んだ方がいい。
使うだけなら道具の仕組みは知らなくてもいいと安心して言える段階までは、
FRP はまだ発達していないと思う。
そういう意味も込めて古典を勧めた。
0470デフォルトの名無しさん
2014/11/16(日) 10:47:38.97ID:BSgxTQPuhttp://i.imgur.com/9CrKJj8.jpg
http://i.imgur.com/WI4JiPE.jpg
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!(日記帳)
0471デフォルトの名無しさん
2014/11/16(日) 10:49:08.23ID:dZjA1otHこうゆうので何するの?
0472デフォルトの名無しさん
2014/11/16(日) 10:50:11.56ID:BSgxTQPu0473デフォルトの名無しさん
2014/11/16(日) 10:57:29.61ID:O/HDzlyF0474デフォルトの名無しさん
2014/11/16(日) 11:00:06.30ID:BSgxTQPu画質は今本質的問題なのだろうか
0475デフォルトの名無しさん
2014/11/16(日) 11:18:24.45ID:O/HDzlyF( ゚д゚)ポカーン
0476デフォルトの名無しさん
2014/11/16(日) 11:21:30.50ID:BSgxTQPu0477デフォルトの名無しさん
2014/11/16(日) 11:39:39.31ID:0kiSer6o0478デフォルトの名無しさん
2014/11/16(日) 11:54:58.67ID:BSgxTQPu0479デフォルトの名無しさん
2014/11/16(日) 12:04:37.22ID:0kiSer6o第**章は〜〜だから##という人には読む価値あるとか、
〜〜の意味が分からないんだがとか。
0480デフォルトの名無しさん
2014/11/16(日) 12:41:45.03ID:h/BFfBTxhttps://github.com/simonmar/par-tutorial/blob/master/code/Sudoku.hs
0481デフォルトの名無しさん
2014/11/16(日) 18:57:25.78ID:DSW7+wxdどうにも腰を据えてやるのが面倒おじさんだ!
0482デフォルトの名無しさん
2014/11/16(日) 23:46:13.69ID:SPZ76mJJsort([]) = []
sort([a]) = [a]
sort(a:as) = if a<head(sort(as)) then a:sort(as) else head(sort(as)):sort(a:tail(sort(as)))
トレースすれば正しいことは分かるんだけど、ごちゃごちゃしすぎて、いざ自分で書けと言われても書けない
覚え方とかある?vbだともっと簡単に書けるのに〜。
0483デフォルトの名無しさん
2014/11/17(月) 00:11:16.80ID:y9knIlZH0484デフォルトの名無しさん
2014/11/17(月) 00:41:19.55ID:JCmU98W/東京電力福島第一原子力発電所の事故が起きた
直後に茨城県内で採取された大気中のチリから、
ウランのほか原子炉内の構造物の素材が検出され、
分析に当たった研究グループは早い段階から
大規模な原子炉の破損が進んでいたことを裏付ける結果だとして、
さらに分析を進めることにしています。
東京理科大学の中井泉教授らの研究グループは、
福島第一原発の事故直後の3月14日の夜から翌朝にかけて
原発から130キロ離れた茨城県つくば市で
採取した大気中のチリを兵庫県にある
大型の放射光施設「スプリング8」で分析しました。
その結果、放射性セシウムのほか、ウランや
燃料棒の素材のジルコニウム、圧力容器の素材の鉄など、
核燃料や原子炉内の構造物と一致する物質が
検出されたということです。
0485デフォルトの名無しさん
2014/11/17(月) 03:35:50.14ID:hLMcf2Z5MArrayかMVector使えばいいと思うよ
0486デフォルトの名無しさん
2014/11/17(月) 05:38:52.09ID:AbWjP/0Sこのソースのことは忘れて「haskell 挿入ソート」あたりでググるのおすすめ
0487デフォルトの名無しさん
2014/11/17(月) 06:35:19.84ID:QJkSjCVsハッカーの楽しみ以来の脳の軋みwwwwwww
登場する学生四天王が天才過ぎるwwwwwJackにすら勝てる気がしねぇwwwwww
0488デフォルトの名無しさん
2014/11/17(月) 06:50:49.07ID:BFTy11pzordreaにdelayがあるのは、elereaやordreaでは時間は離散的にしか進まないから
0489デフォルトの名無しさん
2014/11/17(月) 08:18:43.21ID:8RP3+bwS短い会話からも、奴らの頭の良さがにじみ出てる
あんな学生が普通にいたら死ねる
0490デフォルトの名無しさん
2014/11/17(月) 11:06:41.87ID:qgSbIZK10491デフォルトの名無しさん
2014/11/17(月) 11:55:09.24ID:JCmU98W/福島県の下水処理場から放射性ヨウ素を744Bq/kg検出
10月下旬頃からヨウ素の検出量が増加傾向
東京や山梨の処理場でもヨウ素
0492デフォルトの名無しさん
2014/11/17(月) 11:57:08.85ID:JCmU98W/2013年11月11日 55万ベクレル
2013年11月25日 91万ベクレル
2013年12月 4日 130万ベクレル
2013年12月12日 180万ベクレル
2013年12月19日 190万ベクレル
2013年12月26日 210万ベクレル
2014年 1月 9日 220万ベクレル
2014年 1月13日 240万ベクレル
2014年 1月16日 270万ベクレル
2014年 1月20日 310万ベクレル
2014年 2月 6日 500万ベクレル
2014年 3月 公表なし←(絶対ここでなんかあったろw)
2014年 4月 公表なし←
2014年 5月 公表なし←
2014年 6月 公表なし←
2014年 7月 ガレキ4兆ベクレル発覚も、公表せず←!?
2014年 8月 公表なし←
2014年 9月 公表なし←
2014年10月 公表なし←
2014年11月 再臨界してたわ←【今ここ】
0493デフォルトの名無しさん
2014/11/17(月) 12:57:56.42ID:OB81v1Lm社会人が八時間働くからそういう設定なんだと
日本のモラトリアムとは格が違うな
0494デフォルトの名無しさん
2014/11/17(月) 13:32:47.89ID:VgYWB20P0495デフォルトの名無しさん
2014/11/17(月) 16:54:09.37ID:AddMZ2qD0496デフォルトの名無しさん
2014/11/17(月) 17:06:16.83ID:QJkSjCVsわかってます。
ordreaでは
Event : pushなシグナル
Behavior : pullなシグナル
に過ぎなくて、完全に実装側の都合になってしまっているんです。
細かいパフォーマンスチューンの為に便利なのは嬉しいけど、Behaviorが本来持っていた概念としての分かりやすさ、エレガントさは失われてる。
今の俺のスキルでは、どうすればいいのか分からないので、勧めてもらったとおりSOEを読んで実装してみることにします。
…でもその前に、目の前にあるキラキラしたグリーンの本をやっつけなくては。
0497デフォルトの名無しさん
2014/11/17(月) 17:09:00.58ID:QJkSjCVs0498デフォルトの名無しさん
2014/11/17(月) 17:20:36.77ID:voo8eoNBhttp://i.imgur.com/DTVCgJ0.jpg
http://i.imgur.com/ASFTXZK.jpg
http://i.imgur.com/3o3vsjy.jpg
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
0499デフォルトの名無しさん
2014/11/17(月) 18:00:23.77ID:QJkSjCVsお!そっちの方も来たんだ!
俺はお金なくて買えなかったけど(ヽ´ω`)、後半が面白そうなんだよねえ
感想よろしく
> 数独
ワロタ
0500デフォルトの名無しさん
2014/11/17(月) 20:54:59.66ID:nGO8OPEK0501デフォルトの名無しさん
2014/11/17(月) 22:31:59.02ID:2JrgHRvL0502デフォルトの名無しさん
2014/11/17(月) 22:34:27.53ID:syCsv4O30503デフォルトの名無しさん
2014/11/17(月) 22:49:14.27ID:nGO8OPEKバリバリの数値計算というと例えば?
0504デフォルトの名無しさん
2014/11/17(月) 23:09:07.19ID:2JrgHRvLとりあえず、ガウスの消去法
IORefやSTモナドなしだと、200×200で反応が返ってこなくなったから
0505デフォルトの名無しさん
2014/11/17(月) 23:19:12.75ID:nGO8OPEK数値計算は手段ではなく目的?
リストだけでどこまで速度上げられるかとか、パズルを解くみたいな?
0506デフォルトの名無しさん
2014/11/17(月) 23:31:00.84ID:2JrgHRvL0507デフォルトの名無しさん
2014/11/18(火) 00:00:04.08ID:tPZakqViHaskellから型推論を取ったら、IORef禁止みたいな風潮だけが残るので
0508デフォルトの名無しさん
2014/11/18(火) 01:48:53.67ID:VVZUudvp0509デフォルトの名無しさん
2014/11/18(火) 02:03:55.59ID:ifNBpZ/j0510デフォルトの名無しさん
2014/11/18(火) 02:17:48.61ID:VVZUudvpよかった。
0511デフォルトの名無しさん
2014/11/18(火) 02:54:53.40ID:wWmOGLrhIORefありだとサンプルコードがたくさん落ちてるんですが
0512デフォルトの名無しさん
2014/11/18(火) 06:19:58.70ID:kNmk90Po0513デフォルトの名無しさん
2014/11/18(火) 06:20:29.45ID:rqEbaZI00514デフォルトの名無しさん
2014/11/18(火) 07:29:07.78ID:VVZUudvpIORef use
IORefuse
0515デフォルトの名無しさん
2014/11/18(火) 11:26:42.95ID:VVZUudvp0516デフォルトの名無しさん
2014/11/18(火) 11:39:31.80ID:/vvH7+qL0517デフォルトの名無しさん
2014/11/18(火) 17:49:10.66ID:VJRmI7w/数値計算することと、その結果を OpenGL が扱える形に加工することは別だと思うが。
0518デフォルトの名無しさん
2014/11/18(火) 20:54:45.29ID:zT9F6uSW人間が見やすく出力することまで含めてアルゴリズムです
0519デフォルトの名無しさん
2014/11/18(火) 22:09:58.52ID:uPPCqZ2T0520デフォルトの名無しさん
2014/11/18(火) 22:23:32.75ID:zT9F6uSW0521デフォルトの名無しさん
2014/11/18(火) 22:41:39.96ID:VJRmI7w/冗談で言っているのは分かっているが、その冗談が全く面白くないので敢えてマジレスする。
問題を幾つかのより小さな部分問題に分けるべきだ。
それはそうと、数値計算した結果を基にポリゴンデータを作り、
それを頂点バッファに入れて描画するんだよな。
どこに IORef が出てくる余地があるんだろ。
0522デフォルトの名無しさん
2014/11/18(火) 23:09:39.35ID:zT9F6uSWグローバル座標に対するポリゴンデータのローカル座標や角度をIORef の変数に入れておく
0523デフォルトの名無しさん
2014/11/18(火) 23:50:49.80ID:rqEbaZI0それならIORefは原理的に避けられないんじゃない?
0524デフォルトの名無しさん
2014/11/19(水) 00:12:45.58ID:iJeLzP9T0525デフォルトの名無しさん
2014/11/19(水) 00:38:14.27ID:+lGGt82vIORefかSTモナドを利用せずに、モデルをくるくる動かす方法を知らない
0526デフォルトの名無しさん
2014/11/19(水) 01:07:49.10ID:iJeLzP9Tイベントハンドラを登録しなおせばいいんだよ。
イベントが発生した時点で、次の状態遷移用のイベントハンドラを新たに作って、それで置き換える。
0527デフォルトの名無しさん
2014/11/19(水) 02:38:01.95ID:xfpEOWrn60年後のごちうさ
0528デフォルトの名無しさん
2014/11/19(水) 06:45:34.30ID:WtffXByM最近日記帳やら原発やら上の画像やらぽよやらスレの私物化が目立ちます
粛清していきましょう
0529デフォルトの名無しさん
2014/11/19(水) 13:11:24.21ID:OfAlx19R0530デフォルトの名無しさん
2014/11/19(水) 13:45:28.57ID:nUINe3lughciやghcが動くことは確認できていて、ghc-mod, hlintを導入してvimの開発環境を整えていざプロジェクトをつくろうとしたのですが、 `cabal install --enable-test`をするとregex-posixのbuildに失敗してしまいます.
エラーメッセージを読んでみましたが改善策がわかりません。ご教授いただけないでしょうか
ghc -- 7.8.3
cabal -- 1.20.0.3
です
以下,
`cabal install --enable-test --only-dependency`時のエラー部分です.
Building regex-posix-0.95.2...
Preprocessing library regex-posix-0.95.2...
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
linking dist/build/Text/Regex/Posix/Wrap_hsc_make.o failed (exit code 1)
command was: /usr/bin/gcc dist/build/Text/Regex/Posix/Wrap_hsc_make.o dist/build/Text/Regex/Posix/Wrap_hsc_utils.o -o dist/build/Text/Regex/Posix/Wrap_hsc_make
-m64 -L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/regex-base-0.93.2 -L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/mtl-2.2.1
-L/Users/nao/.cabal/lib/x86_64-osx-ghc-7.8.3/transformers-0.4.2.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/containers-0.5.5.1
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/bytestring-0.10.4.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/deepseq-1.3.0.2 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/array-0.5.0.0
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/base-4.7.0.1 -liconv
-L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/integer-gmp-0.5.1.0 -lgmp -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/ghc-prim-0.3.1.0 -L/usr/local/Cellar/ghc/7.8.3/lib/ghc-7.8.3/rts-1.0 -lm -ldl
Installed xml-1.3.13
cabal: Error: some packages failed to install:
regex-posix-0.95.2 failed during the building phase. The exception was:
ExitFailure 1
test-framework-0.8.0.3 depends on regex-posix-0.95.2 which failed to install.
0531デフォルトの名無しさん
2014/11/19(水) 14:43:25.94ID:2Q63zwZ5ld: library not found for -lgmp
なんだからgmpが入ってないのでは?
とりあえずgmpがインストールされてるか確認してみて、なければ入れてみれば
0532デフォルトの名無しさん
2014/11/19(水) 14:44:54.00ID:nUINe3luいま調べていたらmacのgccはllvmのwrapper?らしいので, gccを別で入れなおしてそっちでやってみます
0533デフォルトの名無しさん
2014/11/20(木) 00:02:15.34ID:JlnMRpIf-v とか -v3 とかつけると、詳細なエラーメッセージがみれるよ。
パスが違ってるか、libgmpがおかしいか、だと思う。
0534デフォルトの名無しさん
2014/11/20(木) 00:07:57.61ID:Po2bP3CX0535デフォルトの名無しさん
2014/11/20(木) 00:50:38.85ID:OJJlSD0q0536デフォルトの名無しさん
2014/11/20(木) 17:41:56.95ID:sAQTKHkdなら
T(n) = O(n log n)
なの? なんで?
ワカンネ
0538デフォルトの名無しさん
2014/11/20(木) 18:07:33.93ID:sAQTKHkd極限でとけんの? 教えてクレクレ
0539デフォルトの名無しさん
2014/11/20(木) 18:11:13.19ID:SrHOb8b0T(n) = 2T(n/2) + a * n.
U(n) = T(2^n) とおく。log を 2 を底とする対数関数として、
T(n) = U(log n) = 2T(n/2) + a * n = 2U(log n - 1) + a * n.
N = log n とおくと、
U(N) = 2U(N-1) + a * 2^N.
両辺を 2^N で割ると
U(N)/2^N = U(N-1)/2^(N-1) + a.
よって、
U(N)/2^N = a N.
i.e. U(N) = a N * 2 ^ N.
N = log n. U(N) = T(n) より、
T(n) = a log n * n = O(n log n).
高校レベルの知識で解いたらこうなった
0540デフォルトの名無しさん
2014/11/20(木) 18:59:18.90ID:sAQTKHkd何がワカッテネーのかは判った。TやO同士の四則演算とEqインスタンスだ。
上の証明でいうとO(n)をa*nで置き換えるのがまだ解ってない。
0541デフォルトの名無しさん
2014/11/20(木) 19:16:13.26ID:SrHOb8b0見通しが良いからそう変えただけで、別にそこは置き換えなくても無問題だが。
0542デフォルトの名無しさん
2014/11/20(木) 22:12:13.76ID:JlnMRpIfそお?
オーダ記法のまま
> 両辺を 2^N で割ると
をすると、
O(2^N) / 2^N
になるけど、これって何言ってんだかわかんなくない?
0543デフォルトの名無しさん
2014/11/20(木) 22:30:20.76ID:SrHOb8b0O(1) 以外の何物でもない
0544デフォルトの名無しさん
2014/11/20(木) 22:38:16.17ID:JlnMRpIfうーん、やっぱりその辺がわかってないんだよなぁ。O(1)に等しいのはなんとなく解るけど。。
例えば
O(n) + O(n) = O(n)
の左辺は何を意味してるの?
0545デフォルトの名無しさん
2014/11/20(木) 22:40:30.46ID:M0tgSF32nが大きいとき、ある定数 c が存在して c・n と表現できる
0546デフォルトの名無しさん
2014/11/20(木) 22:45:56.04ID:YOls+I/jじゃなくて
O(n) = f(n) where 定数 a が存在し全ての n に対し f(n)/n < a
とすれば
T(n) - 2*T(n/2) = f(n)
2*T(n/2) - 4*T(n/4) = 2*f(n/2)
4*T(n/4) - 8*T(n/8) = 4*f(n/4)
...
(n/2)*T(2) - n*T(1) = (n/2)*f(2)
T(n) - n*T(1) = f(n) + 2*f(n/2) + 4*f(n/4) + ... + (n/2)*f(2)
T(n) - n*T(1) = n*(f(n)/n + f(n/2)/(n/2) + f(n/4)/(n/4) + ... + f(2)/2)
T(n) - n*T(1) < n*a*log2(n)
0547デフォルトの名無しさん
2014/11/20(木) 23:05:58.21ID:JlnMRpIf巧みだ… それなら納得。
0548デフォルトの名無しさん
2014/11/21(金) 01:49:45.87ID:NEpg6FcOなりすまし死ね
0549デフォルトの名無しさん
2014/11/21(金) 11:00:50.89ID:MN55iJxH逆に和と積を排除するか不等式を排除すれば急にやる気が出る
0550デフォルトの名無しさん
2014/11/21(金) 12:49:45.94ID:4J6K1s1K0551デフォルトの名無しさん
2014/11/21(金) 13:22:07.76ID:biiemfBm0552デフォルトの名無しさん
2014/11/21(金) 13:43:15.79ID:QGA3g02X0553デフォルトの名無しさん
2014/11/22(土) 09:41:48.24ID:Wm3XtvsRhttp://www.amazon.co.jp//dp/4274050645/
こんな本出てた。
と思ったらAmazonでベストセラー1位だった。
やっぱ良い本は売れるんだな。
0554デフォルトの名無しさん
2014/11/22(土) 10:12:19.23ID:lvXbHvhcその本、超難しいんですが何で売れてるんだ…
0555デフォルトの名無しさん
2014/11/22(土) 10:21:54.20ID:M5wNKGmVhttps://www.amazon.co.jp/gp/bestsellers/books/3229701051/ref=zg_b_bs_3229701051_1
0556デフォルトの名無しさん
2014/11/22(土) 13:42:11.78ID:WtWGM1SO大学三年以降の教科書レベル
0557デフォルトの名無しさん
2014/11/22(土) 14:57:13.69ID:G2VJHv12ベストセラー1位- カテゴリ 開発技法
関数プログラミング実践入門 2014/11/14
ベストセラー1位- カテゴリ ソフトウェア開発・言語
Haskellによる並列・並行プログラミング 2014/8/21
393位 ソフトウェア開発・言語
0558デフォルトの名無しさん
2014/11/22(土) 14:57:23.06ID:vgJLKWkEその期待を裏切る困難をぶつけるのは衒学的ではないと思う
そうではなく最初から難しいものを期待するのは衒学的といわれても仕方ない
0559デフォルトの名無しさん
2014/11/22(土) 18:45:53.59ID:jhiCG8Ku0560デフォルトの名無しさん
2014/11/22(土) 19:22:56.26ID:RI7DMzoa0561デフォルトの名無しさん
2014/11/22(土) 21:35:07.29ID:c/4FLN04各章の問題提示の部分で、問題の記述をはしょりすぎな気がするから、大学の教科書としてはおすすめできない
0562デフォルトの名無しさん
2014/11/24(月) 11:39:45.16ID:BpjrdalZ0563sage
2014/11/24(月) 14:49:02.32ID:7CKdvrmH完成できずに逝くと思う。すまんな俺は単に弱い一個人なんで。
学術資料読んでそれをまとめる専門の仕事にでもついていればよかったんだけどなぁ。
モジュラープログラミングの部分は誰か文体揃えて書いてくれ。
他もできたらやりたかったなぁ。
0564デフォルトの名無しさん
2014/11/24(月) 14:51:03.00ID:7CKdvrmH0565デフォルトの名無しさん
2014/11/24(月) 21:43:31.83ID:Xe8iqLdXいい仕事じゃん。できれば生きろ。
0566デフォルトの名無しさん
2014/11/24(月) 22:22:48.89ID:tcdjXDxE0567デフォルトの名無しさん
2014/11/24(月) 22:23:53.07ID:7CKdvrmHいい仕事だと言ってもらえると本当うれしい。
一人で意味不明の事をやっているようで、誰とも会話が成立してない気がして
一体なんのためにやっているのかもはやわからん。今まで一体何だったんだ。
0568デフォルトの名無しさん
2014/11/24(月) 22:29:32.33ID:7CKdvrmHなんでそこまで嫌われるのかわかんね。最初っからそうだもの。
モナドって何?って話だったからコツコツ調べてただけじゃないか。
もう本当に疲れた。
0569デフォルトの名無しさん
2014/11/24(月) 22:50:48.59ID:BpjrdalZ0570デフォルトの名無しさん
2014/11/24(月) 22:54:23.23ID:sEfL4Txj0571デフォルトの名無しさん
2014/11/24(月) 23:42:46.25ID:i55zEC9x難解さのおかげで再発明好きな人間が得をしているのだ
0572デフォルトの名無しさん
2014/11/25(火) 07:43:21.45ID:kGwEZ9YHWikipedia の モナド の項目の執筆者降臨!
wikiの説明は専門的で学のない俺には難しかったので、ここで聞きたいんだけど、IOにおけるモナドって何?
計算の順序を保証する仕組み?
0573デフォルトの名無しさん
2014/11/25(火) 13:31:19.23ID:2MCtjx8eモナドも同じではないか。誰かが気づいた
0574デフォルトの名無しさん
2014/11/25(火) 17:24:41.10ID:g14a4Dh30575デフォルトの名無しさん
2014/11/25(火) 17:56:55.18ID:gXyL+Cg00576デフォルトの名無しさん
2014/11/25(火) 18:32:02.19ID:dCk0wk27type Procedure a = a -> Block
newtype MyIO a = MyIO (Procedure (Procedure a))
instance Monad MyIO where ・・・
・型パラメータなしのIOを発見 ←Monadではない
・Procedureを発見 ←Monadではない
・型パラメータありのIOを発明 ←更にパラメータを増やせばIOと直接関係なくなる
というイメージ
MonadとIOの関係は元々どこかにあったのではなく意図的に作られたように思える
0577デフォルトの名無しさん
2014/11/25(火) 20:20:52.85ID:f5oRhixH入出力の計算効果をもつプログラムの合成規則
あとは入出力の計算効果をモジュール化するもの
0578デフォルトの名無しさん
2014/11/26(水) 00:46:34.42ID:/hWk4Wyk>>577
なるほど
勉強になります。この調子で頑張ってください
0579デフォルトの名無しさん
2014/11/26(水) 00:50:21.55ID:/hWk4Wyk入出力は手続き、ってC言語とかが手続きだから鵜呑みにしてたけど、必然性があるか、って言われると…よく分からないですし。
0580名無しさん@お腹いっぱい。
2014/11/26(水) 13:25:44.63ID:c7ypmrrn関数プログラミング実戦入門を買って今読んでるところです。
GHCiは見易いけどWinGHCiはコロンとかが見難いね。
0581デフォルトの名無しさん
2014/11/26(水) 13:45:33.95ID:hgjm25EHフォント変えればいいんじゃないか?
http://saltheads.blog134.fc2.com/blog-entry-79.html
0582デフォルトの名無しさん
2014/11/26(水) 14:01:44.32ID:LAmOcxOuU(0)=0
になってる?
0583デフォルトの名無しさん
2014/11/26(水) 16:03:59.63ID:LAmOcxOu0584デフォルトの名無しさん
2014/11/26(水) 19:07:19.41ID:OeXfM85D公正取引委員会から独禁法違反(不当な取引制限)で課徴金納付を命じられた二社から、計二十四万円の寄付を受けていたことが二十六日、
県選挙管理委員会が公表した一三年の政治資金収支報告書で分かった。
星野剛士前衆院議員が代表を務める自民党神奈川県第十二選挙区支部も、うち一社から十六万円の寄付を受けていた。
公取委は遅くとも一二年二月からの二社の談合を認定。甘利氏の事務所は
取材を受けて談合を知ったとし「疑念を持たれないよう早急に返金したい」としている。二社によると、一二年から一四年分までの寄付は計六十五万円。
星野氏の事務所は一三、一四年分の計四十万円を返還する方針。
二社は横浜市の電気工事会社「共和テクノ」と同県藤沢市の「湘南送電工事」。
第十三選挙区支部への一三年の寄付は十二万円ずつ。第十二選挙区支部へは湘南送電工事からだった。
公取委は一三年十二月、二社を含む計三十六社に計約七億四千万円の課徴金納付を命じた。共和テクノの課徴金は千百五十万円、湘南送電工事は千二十万円だった。
0585563
2014/11/26(水) 22:57:33.79ID:UAnZikAXみっともないことしてしまったよ。
モナドの神秘性というのはイコール計算効果の神秘性だと思う。
夢を見るのはすごいわかるけれど、突き詰めても結局モナドは
モジュラーなプログラミングをするための枠組みでしかない、と思う。
IOとかの計算(効果)って何?といわれるとやっぱりブラックボックス。
だから、モナドってなにといわれるとプログラムの『合成規則』でしかない。
もう書かんよ。じゃな。
0586デフォルトの名無しさん
2014/11/26(水) 23:55:20.06ID:2c1qGuWpUI.WX.Eventsにもともと無いやつはどうやって取ればいいんだ?
0587デフォルトの名無しさん
2014/11/27(木) 00:07:56.35ID:ylWC3W0eGLUTにしよう!
0588デフォルトの名無しさん
2014/11/27(木) 12:38:11.55ID:hCEHi+eJ0589デフォルトの名無しさん
2014/11/27(木) 13:49:57.85ID:IoChLXbuEvent () -> IO ()
とかいう型だけど,そうすると何のイベントなのかどうやって判定するの?
Event型と,EventMouseとかの型はどういう関係なのかわからん
そもそも根本的に何か勘違いしてるんだろうか?
0590デフォルトの名無しさん
2014/11/27(木) 18:12:03.01ID:SL56IrD70591デフォルトの名無しさん
2014/11/27(木) 19:31:51.61ID:gCE9fwaWほぼGUI専門になってるから専門外のイベントを扱うのが難しいんだろう
X11の場合はXサーバーのソケットの扱い方が分かれば何でもできそうだが
0592デフォルトの名無しさん
2014/11/27(木) 22:30:37.86ID:pLZ1757/原因は調査中だが、制限値である65度に到達するまでに13日余りの時間的余裕があると説明している。
東電によると、27日午後4時45分ごろ、2号機使用済み燃料プールの冷却に使われるポンプが自動停止した。
当時のプール水温は16.7度で冷却が停止した状態では毎時0.146度上昇するという。
プールには使用済み燃料が587体、未使用燃料が28体保管されている。
冷却の復旧の見通しは立っていないが、これまでのところ放射線量の値などに大きな変動は確認されていない。
0593デフォルトの名無しさん
2014/11/29(土) 08:33:35.92ID:C97R8Ij+0594デフォルトの名無しさん
2014/11/29(土) 21:13:31.98ID:1Ssmpm6G0595デフォルトの名無しさん
2014/11/29(土) 21:29:34.63ID:JyKeLDr+0596デフォルトの名無しさん
2014/11/29(土) 21:39:22.08ID:1Ssmpm6G0597デフォルトの名無しさん
2014/11/29(土) 21:58:28.40ID:pwVAqDB90598デフォルトの名無しさん
2014/11/30(日) 01:42:54.81ID:WqhK8rv7>関数プログラミング 珠玉のアルゴリズムデザイン
>http://www.amazon.co.jp//dp/4274050645/
この本ほんと難しいな
もう三日でブックオフに売ってきた
0599デフォルトの名無しさん
2014/11/30(日) 05:00:41.84ID:iVEYwzLz0600デフォルトの名無しさん
2014/11/30(日) 14:52:13.56ID:0H+5CMHiと足場を確認しながら、一歩一歩ゆっくり読んでいくもんだよ。
0601デフォルトの名無しさん
2014/11/30(日) 14:55:24.38ID:0H+5CMHi0602デフォルトの名無しさん
2014/11/30(日) 14:58:24.15ID:u/yQuoTr「理解できない」で売ることができるということに驚きだ
絶対に街中の店舗じゃうれないでしょう
もしかして、アマゾンとかも、そういうのを売ってるのかな
0603デフォルトの名無しさん
2014/11/30(日) 16:32:51.63ID:nbrr+8dA新しめの本なら無条件で購入だよチンカス
0604デフォルトの名無しさん
2014/11/30(日) 16:49:57.06ID:u/yQuoTr0605デフォルトの名無しさん
2014/11/30(日) 17:12:13.35ID:nbrr+8dAhttp://www.amazon.co.jp/dp/476490408X/
別にいいけど「世界標準」ってドヤ顔しすぎというか、思い上がりすぎというか、もうちょっと謙譲の美徳はないのかアメリカ人、と思うよね。
0606デフォルトの名無しさん
2014/11/30(日) 17:26:21.51ID:ag7vnAtWMIT海外分校も使ってるって意味でないの
まあその場合MIT世界標準教科書になるだろうが
0607デフォルトの名無しさん
2014/11/30(日) 17:36:09.24ID:0H+5CMHiさすが世界標準というだけあると思える内容なら認めざるをえんだろ。
本当にそんな内容なら、世界中のプログラマに知ってもらうために世界標準を謳うのは当然かと。
0608デフォルトの名無しさん
2014/11/30(日) 18:24:35.73ID:oDSFI/T10609デフォルトの名無しさん
2014/11/30(日) 21:26:14.13ID:0mf1q8+q0610デフォルトの名無しさん
2014/11/30(日) 21:36:10.31ID:7xJZ8Eq5「初版は、専門家が標準的な参考書として用いているものと同じくらい、
世界中の大学で教科書として採用されるようになった」
というような旨のことが書いてあるくらいだね
http://www.amazon.com/dp/0262533057
それをタイトルに持ってきちゃうのが日本の出版社のセンスというか
0611デフォルトの名無しさん
2014/11/30(日) 21:44:07.23ID:pQ52TemY0612デフォルトの名無しさん
2014/11/30(日) 21:59:04.97ID:MoGBaFHcどこかの大学でレクチャーノートとか出してないかな?
0613デフォルトの名無しさん
2014/11/30(日) 22:04:26.94ID:CR+pCvU90614デフォルトの名無しさん
2014/11/30(日) 22:30:27.74ID:0H+5CMHi理解できなくてやる気がなくなったんでなければ、
とりあえずここで質問してみたらどうだ?
0615デフォルトの名無しさん
2014/12/01(月) 04:12:32.36ID:9e1Nt7cE新設の原発の発電コストは世界的には1キロワット時当たり平均14セント(約15円)で
太陽光発電とほぼ同レベル、陸上風力発電や高効率天然ガス発電の8.2セントに比べて
かなり高いとの試算を、エネルギー問題の調査機関として実績のある米国企業系
「ブルームバーグ・ニュー・エナジー・ファイナンス」(BNEF)が16日までにまとめた。
東京電力福島第1原発事故後の安全規制強化もあって建設費や維持管理にかかる
人件費などが世界的に高騰していることが主な理由。再生可能エネルギーのコストの
低下が続く中、原子力の優位性が薄れていることを印象付ける結果となった。(共同)
0616デフォルトの名無しさん
2014/12/01(月) 08:51:33.55ID:9e1Nt7cE東京電力福島第一原発至近の海で、本紙は放射能汚染の状況を調べ、専用港の出入り口などで海水に溶けた状態の放射性セシウムを検出した。
事故発生当初よりは格段に低い濃度だが、外洋への汚染が続く状況がはっきりした。
一方、東電は精度の低い海水測定をしていながら、「検出せず」を強調する。事故当事者としての責任を果たしているのかどうか疑問がある。
本紙は十月二十日、地元漁船をチャーターし、独協医科大学の木村真三准教授(放射線衛生学)と合同で原発周辺五カ所の海水と海底土(砂)を採取。
後日、同大の高性能のゲルマニウム半導体検出器を使い、それぞれ二十四時間、八時間かけ計測した。海水はろ過し、ちりなどに付着したセシウムは除去した。
結果は図の通りで、水、砂とも港の出入り口が最も濃度が高く、ここから拡散していることがうかがえる。
注目されるのは、同地点の海水から一リットル当たり一・〇七ベクレルのセシウムを検出したことだ。「一ベクレルの海水=食品基準の一〇〇ベクレルの魚が捕れる可能性」が一つの目安としてあり、決して無視できない汚染といえる。
東電は原子力規制委員会が定めた基準に沿って海水モニタリングをしているが、日々の公表資料は「検出せず」の記述が並ぶ。
計測時間はわずか十七分ほどで、一ベクレル前後の汚染はほとんど見逃すような精度しかない。大型魚用の網で小魚を捕ろうとするようなものだ。
東電の担当者は「国のモニタリング基準に沿っている」と強調する。
原子力規制委事務局の担当者は「高濃度汚染がないか監視するのが目的。迅速性が求められ、精度が低いとは思わない」としている。
しかし、かつての高い汚染時なら、精度が低くても捕捉できたが、現在のレベルなら、やり方を変えないと信頼できるデータは出ない。汚染が分からないようにしているのではないかとの疑念を招きかねない。
地元、相馬双葉漁協の高野一郎・請戸(うけど)支所長は「何度調べても汚染が検出されなければ、私たちも消費者も安心できる。しかし、国や東電がきちんと調べてくれないと、誰も信用できない」と語った。
0617デフォルトの名無しさん
2014/12/01(月) 10:10:42.96ID:npZaGboV0618デフォルトの名無しさん
2014/12/01(月) 11:21:30.52ID:7qewsS7c0619デフォルトの名無しさん
2014/12/01(月) 12:26:07.39ID:yyoCGOaQ0620デフォルトの名無しさん
2014/12/01(月) 18:18:46.70ID:9e1Nt7cE経済産業省は二十九日、大手電力会社が老朽化した原発の廃炉に取り組むのを支援するため電力小売り全面自由化後も、すべての電力小売会社の電気料金に廃炉費用を転嫁する方向で検討に入った。
費用を確実に確保できる仕組みを整備することで、老朽原発の廃炉を着実に進めたい考え。
ただ新規参入の電力小売会社の契約者にも大手電力の廃炉費用を負担させるのは、公平な市場競争を阻害するとの反対意見も多い。
脱原発を志向して再生可能エネルギー専門の小売会社と契約する消費者からは反発も予想され、激しい議論になりそうだ。
大手電力はこれまで廃炉費用を電気料金の中で徴収してきた。二〇一六年四月に電力小売りが全面自由化されると料金競争が激しくなり、廃炉費用を料金に織り込みづらくなると予想される。
老朽原発は年々増えるため費用が確保できないと廃炉計画に遅れが出かねないと懸念されている。
一八〜二〇年には「発送電分離」で大手電力から送配電部門が切り離され別会社化される。
すべての電力小売会社が送配電会社に託送料を支払い契約者に電気を届けてもらう形になることから、託送料に廃炉費用を上乗せする案が検討されている。
この場合、全電力利用者が大手電力の廃炉費用を負担することになる。
一方、大手電力が原発の発電コストを表面上引き下げて再稼働を進めれば、新旧電力会社間での競争が成り立たない恐れがある。
<原発の廃炉費用> 新規制基準は原発の運転期間を原則40年とし、それ以上運転を継続する場合は特別な手続きを踏むことを定めた。
廃炉費用は小型原発で400億円前後、中型で500億円前後、大型で最大800億円台とされる。
電力会社は想定運転年数に基づいて費用を積み立てており、それより前に廃炉にすると積み立て不足が発生し、損失処理しなければならない。
経済産業省は、現在7基ある稼働40年前後の老朽原発の場合、平均210億円の損失が出ると試算している。
0621デフォルトの名無しさん
2014/12/01(月) 18:23:35.69ID:9e1Nt7cEhttps://archive.today/9k8K6
【ブリュッセルAFP=時事】ベルギー東部のティアンジュ原子力発電所で11月30日に火災が発生し、
原子炉1基が運転を停止した。同国メディアが報じた。同国で稼働が停止している原子炉はこれで4基目となった。
(写真はベルギー・ティアンジュにある電力会社エレクトラベルの原子力発電所)
リエージュ近郊にある原子力発電所のこの原子炉は、フランスのエネルギー大手GDFスエズ傘下の
ベルギー電力大手エレクトラベルが運用する原子炉7基のうちの1つだ。
同発電所に隣接する都市ユイのアレクシス・フーショー市長によると、今回の火災は「原子炉の区域外で発生した」という。
エレクトラベルは、ティアンジュ原発で発生した今回の火災は正午頃に鎮火したと発表。これまでのところ
「原発の安全性および原発職員と近隣住民の安全性への影響は全くない」としている。
予備調査では「人為的な破壊行為」の可能性も排除され、火災は「技術的な原因」で発生したとの結論が下された。
同国では8月、別の原発で原子炉が停止しているが、この原因については「人為的な破壊行為」あったためとされている。
アントワープとティアンジュにある別の原子炉2基も3月以降稼働を停止している。原子炉容器に
微小なひびが発見されたためだ。この2基は2012年6月〜2013年6月の1年間にも稼働を停止していた。
ベルギーは電力の約55%を原子力発電に依存している。
0622デフォルトの名無しさん
2014/12/02(火) 13:17:59.60ID:nkmei8Ed0623デフォルトの名無しさん
2014/12/02(火) 18:15:45.21ID:DCIQUKBh時間毎に別のファイルに出力するような関数はどのように書けば良いでしょうか。
例えば以下のようなタイミングでデータが到着するとします。
1秒目: a(改行)b(改行)c
2秒目: d(改行)e(改行)
このデータを1秒毎に出力すると以下のようなファイルが2つできます
ファイル.1秒目:
> a
> b
ファイル.2秒目
> cd
> e
宜しくお願いします
0624デフォルトの名無しさん
2014/12/03(水) 22:57:56.86ID:CqBm4LFv仮に、[(入力時の時間, 一行文字列)] というリストがあれば、
これを秒数でグループ分け(group)したリストに対して
ファイル出力関数を mapM_ すればいい。
で、このリストをどうやって作るかだが、リアルタイムではなく、
全てのデータの入力を待ってから一気にファイル出力するのなら、
一行読み取る処理と現在時刻を求める処理をループで回せばいい。
(ループで回すというのは、再帰でも何でもいいから、とにかく繰り返すこと)
リアルタイムでやるのなら、unsafeInterleaveIO を使って作ればいい。
使い方はググれば結構出てくるから、とりあえず概略だけ言うと、
f : IO [ (入力時の時間, 一行文字列)]
f = unsafeInterleaveIO $ do
d@(入力時の時間, 一行文字列) <- 読み取り関数
if 終了? then (return []) else (return $ d : f)
という感じの関数 f を作ればいい。
後は、初めに言った group と mapM_ をすれば、遅延評価の働きで、
自動的に一秒毎にファイル出力されるはず。
0625デフォルトの名無しさん
2014/12/03(水) 23:04:20.60ID:CqBm4LFvすまん、修正(これ、よく忘れるんだ)。
> if 終了? then (return []) else (return $ d : f)
ds <- f
if 終了? then (return []) else (return $ d : ds)
0626デフォルトの名無しさん
2014/12/04(木) 05:03:48.38ID:Iv5sqMt50627デフォルトの名無しさん
2014/12/04(木) 08:01:22.79ID:LoTVeS2f「解除なんて、とんでもありません。指定地点の集まる市内西部は、全地域が飯舘村に近い所。
まだまだ線量が高く、地表が毎時10μ(マイクロ)Svを超える場所さえあるのです。
もし指定が解除されれば、賠償は3ヵ月後に打ち切られ、避難している住民も家に戻らざるを得なくなる。
危険に身をさらすことになってしまうのです」
しかも、国は今回の解除の基準を、避難させたときよりも高く設定しているのだという。
「勧奨地点に指定したときの空間線量率は毎時3・22μSvから3μSvの間でした。
ところが、今度の解除はそれより高い毎時3.8μSvを基準にするというのです。
18歳以下の子供か妊婦がいる世帯は、地上50pで毎時2μSv以上なら避難させるなど、
より厳しい基準を適用していたのに、それが毎時3.8μSvで解除。こんなばかな話があるでしょうか」
■自宅から300m地点にプルトニウムが!
原町区大原地区にある佐藤信一さん宅。勧奨地点の指定世帯だ。玄関横に置かれた庭石に
測定器を近づけると、いきなり3000cpmカウント・パー・ミニッツを超える表面汚染が見つかった。
この数値はどのくらい高いのか?
原発施設などに設けられる放射線管理区域では、法律によって1000cpmを超えるものは
汚染されていると判断され、外部に持ち出せない。原発事故の影響がなければ100cpm前後が普通だ。
つまり、庭石は約30倍も汚染されていることになる。
前出の小澤氏が言う。
「アルファ核種でなおかつ半減期が2万4000年と非常に長いプルトニウムが、勧奨地点付近の
土壌に沈着していることは文科省の調査でもはっきりしました。畑仕事などで空中に舞い上がったものを
吸い込んでしまえば、健康リスクは非常に大きい。国は何も対策をしていない、そんな場所に
住民を戻そうとしているのです」
0628デフォルトの名無しさん
2014/12/04(木) 10:57:59.22ID:T99TOUWBghc-modを入れるがよろし
0629デフォルトの名無しさん
2014/12/04(木) 18:44:02.35ID:Iv5sqMt5よろしければ設定方法使い方などのサイト教えていただけますか?
0630デフォルトの名無しさん
2014/12/04(木) 18:48:09.76ID:T99TOUWBhttp://www.mew.org/~kazu/proj/ghc-mod/en/
0631デフォルトの名無しさん
2014/12/04(木) 18:57:59.58ID:Iv5sqMt50632デフォルトの名無しさん
2014/12/06(土) 19:42:37.72ID:L7gHuoOO同じ記述を繰り返し記述することになって格好悪いのですが
なんとかならないものでしょうかという相談です。
import Data.Char (chr)
data X = X A B C D deriving Show
newtype A = A Int deriving Show
newtype B = B String deriving Show
newtype C = C Char deriving Show
newtype D = D Double deriving Show
class F a where f :: Int -> a
instance F A where f = A
instance F B where f = B . show
instance F C where f = C . chr
instance F D where f = D . fromIntegral
> X (f 43) (f 43) (f 43) (f 43)
X (A 43) (B "43") (C '+') (D 43.0)
0633デフォルトの名無しさん
2014/12/07(日) 00:51:50.27ID:dvw2SVo443は固定? つまり A に42 でBに43を入れるってケースがある?
0634デフォルトの名無しさん
2014/12/07(日) 08:01:52.92ID:2Fitxl5E(f 43)が繰り返し何度も書かないといけないのがいやなんです
0635デフォルトの名無しさん
2014/12/07(日) 08:32:19.11ID:NSa/mr830636623
2014/12/07(日) 09:30:06.65ID:8Uy+pRF4ありがとうございます。unsafeInterleaveIOは面白い関数ですね。
ただ、今回は到着したデータを直ちに出力をしなければなりません。
groupByによる出力をする作りだと、
次のレコードが到着するまで最終的な出力がされません。
たとえば、以下のようなタイミングでデータが到着するとします。
>1秒目: a(改行)b(改行)c
>3秒目: d(改行)e(改行)
groupByを使った作りの場合、ファイル.1秒目にデータが出力されるタイミングは
3秒目の最初の改行が届いた後になってしまいます。
2秒目になった後に直ちに書き込みをしたいとおもっています。
今は色々調べていたらtimeout関数という物を見つけたので、
こいつを参考に書いてみれば良いのかと思い試行錯誤しています。
他に何かあったらよろしくお願いします。
0637デフォルトの名無しさん
2014/12/07(日) 09:47:59.50ID:/I0z9RQF0638デフォルトの名無しさん
2014/12/07(日) 09:50:25.29ID:/I0z9RQF0639624
2014/12/07(日) 13:10:39.04ID:on+n1Q0Bそれなら、秒数でグループ分けするのではなく、次のように、
n 番目の要素と n-1 番目の要素でグループ分けすればいい。
as, bs : [a]
bs = zip as (tail as )
このリストに対して、1要素得られる毎に出力する。
ただし、秒数の境界を跨いでいなければ追加書き込みで、
跨いでれば前回のファイルハンドルは閉じて新たに開く。
この判断はタプルの2つの要素を比較すればできる。
まぁ、これだと2秒目になってから1秒目のファイルを出力するのではなく、
改行ごとに(追加書き込みで)出力することになるが、これではダメか?
0640624
2014/12/07(日) 13:17:57.83ID:on+n1Q0Bごめん、ちょっとおかしかったな。
跨いでいなければ追加書き込みモードでファイルを開き、
跨いでいれば書き込みモードでファイルを開く、だ。
もちろん、前回開いたファイルを閉じずにハンドルを使い回してもいい。
0641デフォルトの名無しさん
2014/12/07(日) 16:55:12.67ID:dvw2SVo4ならReaderアプリカティブを利用して、
instance F X where f = X <$> f <*> f <*> f <*> f
-- > (f 43 :: X)
-- X (A 43) (B "43") (C '+') (D 43.0)
ではいかが
0642デフォルトの名無しさん
2014/12/07(日) 18:45:18.88ID:2Fitxl5Eそのやり方で進めてみます、ありがとうございました
0643デフォルトの名無しさん
2014/12/07(日) 23:29:45.14ID:maUG8wVr東電は来年度前半に燃料取り出しに着手する計画だが、除染開始から1年以上が経過しても
大部分の場所で放射線量毎時1ミリシーベルトという目標値を達成できておらず、
プールからの燃料取り出しの見通しが立たない状態だ。廃炉作業が一層遅れる懸念が高まっている。
福島第1原発事故では、1〜3号機で炉心溶融が起きた。3号機では、遠隔操作の重機を使うことによって
最上階のがれき撤去が始まり、1、2号機に比べて作業が進んでいる。今後予定されている燃料の取り出しでは、
遠隔操作クレーンの設置や、トラブルが起こった場合の修理のため、作業員が建屋最上階に立ち入る必要がある。
このため東電は、昨年10月から最上階の除染作業を開始。当初の線量は高い所で毎時100ミリシーベルトを超えていたため、
除染後の線量の目標値を同1ミリシーベルトと決めた。しかし、遠隔操作ロボットを使って壁や床に高圧の水を吹きつけ、
表面を削って吸引したものの、先月末に公表した線量は最大で毎時約60ミリシーベルトもあり、ほとんどの場所で目標値を達成できていなかった。
東電は、汚染が想定以上に床や壁に深く浸透していることが原因とみている。今後、鉄板を置いて放射線を遮り、
それでも線量の高い場所は床面を削るなどの追加除染を実施する計画だが、東電は「作業員の安全のためには線量低減対策が不可欠。
追加除染による工程への影響は分からない」と説明している。
政府と東電は、3号機の廃炉工程を来年3月に見直す方針だが、除染の状況によっては、工程が遅れる可能性がある。
3号機以外でも、1号機は放射性物質飛散防止対策のため、建屋最上階のがれき撤去を中断。
燃料取り出し開始は当初の工程表から2年遅れて2019年度以降になることが既に決まった。
また、2号機は放射線量が最も高く、建屋の除染作業の見通しが立たない。
0644デフォルトの名無しさん
2014/12/11(木) 18:22:20.70ID:3EykmgOVhttp://www.jiji.com/jc/eqa?k=2014121000439&m=rss
原子力規制委員会は10日、原発で重大事故などの緊急事態が発生した際に、
現在100ミリシーベルトとされている作業員の被ばく線量上限値を引き上げる検討を始めた。
田中俊一委員長は「東京電力福島第1原発事故では、250ミリシーベルトに一度決めたこともあるので、
この辺りをベースに検討したらどうか」と述べた。
福島第1原発事故の際は、通常の線量限度では対応が不可能だとして急きょ250ミリシーベルトに引き上げられた経緯がある。
更田豊志委員は「(上限の)数字については申し上げないが、ばたばたと変えないのが大事。ばたばた変えると、
事前の教育や訓練、準備がないのに(従事する作業員に)意思決定を迫ることになる」と指摘した。(2014/12/10-13:06)
0645デフォルトの名無しさん
2014/12/11(木) 23:30:02.29ID:kRBtX0Xr0646デフォルトの名無しさん
2014/12/11(木) 23:40:23.48ID:mbz3wuYKGun = Kata
0647デフォルトの名無しさん
2014/12/12(金) 00:12:15.79ID:zdalzzQ9ワロタw
0648デフォルトの名無しさん
2014/12/12(金) 06:40:32.94ID:q8fYIXm6あと勉強会みたいなのに参加して先生を確保する
0649デフォルトの名無しさん
2014/12/12(金) 06:54:06.33ID:aTgx+BUMサンクス!
自分でも検索しました。
プログラマのための圏論の基礎が読みやすかったが、一向に続きが出ない模様。
WikibooksのHaskell/圏論も良かったが短い。
いま、哲学者のための圏論を読んでます。
勉強会は盲点でした。探してみます。
紹介してくれた本は.... ううむ、やっぱり英語ですか。
(できれば... 日本語で読みたいのですが....)
0650デフォルトの名無しさん
2014/12/12(金) 08:20:25.94ID:wGOQGqb9(´;ω;`)ウッ…
0651デフォルトの名無しさん
2014/12/12(金) 09:05:17.89ID:RkQvbcXU今の「電子書籍」って未だ、電子って付けるレベルじゃないと妄想。
せめて、読者の関心とか理解度に応じて、表示内容がダイナミックに変わってくれないもんかな。
例えば、QuickCheckを真似て、読者の理解の抜けているところや勘違いを自動的に見つけ出して、説明に付け加えてくれる、とか。
イメージは、ホテルフロントのコンシェルジェに近い。
0652デフォルトの名無しさん
2014/12/12(金) 09:12:22.36ID:wGOQGqb9大学の教材にはフツーにあるし、分からなかったら先生に聴きにこいってビジネスモデルが完結してる。
経営ピンチのベネッセに、「Kindle赤ペン先生」システムを提案しよう。
0653デフォルトの名無しさん
2014/12/12(金) 11:47:50.34ID:RdOFT8ml0654デフォルトの名無しさん
2014/12/12(金) 17:27:41.79ID:aTgx+BUMでもまあいいか。
iOSの電子書籍は更新版を配信できるから、間違いが見つかった時点で即訂正してくれるのが嬉しい。
あと、簡易コンパイラを同梱して、練習しながら学べるってのはどうだ?
ていうか
0655デフォルトの名無しさん
2014/12/12(金) 17:35:42.59ID:aTgx+BUM…ってなるからさ、ただのPDFでいいから書いてくんね?
100p 3000円でも買うぞ。
販売は、Gumroad使えばPDFアップするだけでいいし、利益はほぼ95%だぜ。
0656デフォルトの名無しさん
2014/12/12(金) 21:02:59.08ID:3LqsDs/xそういう本を求める段階の人は、Haskell という特殊な題材で学ぶよりも、
より一般的な集合を題材にした普通の圏論本本で既存をしっかり学んだ方が良いのでは?
0657デフォルトの名無しさん
2014/12/12(金) 22:18:01.01ID:hMGpOhKf0658デフォルトの名無しさん
2014/12/13(土) 00:21:09.05ID:tEksvX6Xhttps://www.fpcomplete.com/user/bartosz/lenses-stores-and-yoneda
0659デフォルトの名無しさん
2014/12/13(土) 00:22:52.55ID:wR22PMmy神
0660デフォルトの名無しさん
2014/12/13(土) 00:26:21.40ID:/wm7pCNP0661デフォルトの名無しさん
2014/12/13(土) 00:35:10.93ID:Iq5cIN4q大川 徳之
http://www.amazon.co.jp/dp/4774169269/
この本もHaskell本らしいけど、みんなの評価はどうなの?
Amazonのユーザーレビューだと星5つだが。
0662デフォルトの名無しさん
2014/12/13(土) 09:34:01.31ID:fh3kpS8B0663デフォルトの名無しさん
2014/12/13(土) 09:37:57.92ID:euN2qeLT0664デフォルトの名無しさん
2014/12/13(土) 10:30:07.56ID:xi8pVI25哲学者や数学者の書いた論文をそのまま読むよりは、
Haskellの教科書を読みながら試行錯誤していった方が絶対楽なはず。
Dartmas BASICとかLOGOなんかは元から概念の理解を助けるために作られたっぽい。
0665デフォルトの名無しさん
2014/12/13(土) 10:48:12.32ID:U8eX8arBそしてその命題が真である確率は、はっきりいって低い
0666デフォルトの名無しさん
2014/12/13(土) 10:58:20.64ID:LIw9v9HC圏論を学ぶためにHaskellを使う理由とCoqを使わない理由はなんなの
0667名無しさん@そうだ選挙に行こう
2014/12/13(土) 12:30:19.48ID:tEksvX6X- Haskellを使いこなすのに圏論の知識があると捗る。
- 圏論を応用したHaskellを使う哲学者が存在する。
- HaskellとCoqには圏論を学ぶ上での相違がない。(要出典)
0668名無しさん@そうだ選挙に行こう
2014/12/13(土) 12:51:37.91ID:LIw9v9HCそれは哲学ではない
その問いは思考を促すのではなく停止させるから
0669名無しさん@そうだ選挙に行こう
2014/12/13(土) 13:38:12.68ID:wH93cn7fこれは、ドメインとなるキー型のすべての値について
コドメインとなる型の値との対応が予め定義された Map である、
という認識で良いでしょうか?
0670名無しさん@そうだ選挙に行こう
2014/12/13(土) 14:21:46.00ID:h3jbayEp今のバージョンだと問題なくそういう証明もかけるみたい
でも図式で証明するのに比べて物凄い面倒だから練習問題を添削してもらう環境が無い時に自分の答えを検算するみたいな用途でもない限りお勧めできない
0671名無しさん@そうだ選挙に行こう
2014/12/13(土) 14:59:17.77ID:LIw9v9HC0672名無しさん@そうだ選挙に行こう
2014/12/13(土) 17:52:25.71ID:/wm7pCNP圏論の方が抽象度が高いから
0673名無しさん@そうだ選挙に行こう
2014/12/14(日) 10:28:59.95ID:PzKlrdabあの等式は値が等しいと言ってるだけなんだから型はどうでもいい
型を書かない図式
等式 (モナド則みたいなやつ) を書かない型クラス
両者を継承する圏論
と考えれば抽象度は逆転できる
0674デフォルトの名無しさん
2014/12/15(月) 21:02:58.86ID:KtyxPG0q0675デフォルトの名無しさん
2014/12/15(月) 21:36:53.00ID:/4FvCJJ7圏論じゃなければダメというわけではないが、何を計算できないかを証明するには必要
特に自動プログラミングや、他言語からのトランスレータの設計で必要
0676デフォルトの名無しさん
2014/12/15(月) 21:40:35.98ID:6IIqDdgA0677デフォルトの名無しさん
2014/12/15(月) 22:04:13.49ID:1DBfl/l3逆に言えば、そういう限られた狭い分野にしか今のところ活かせないということだから、
圏論って大半のHaskellプログラマにとっては大した意味のない理論なんじゃね?
0678デフォルトの名無しさん
2014/12/15(月) 22:05:28.79ID:73DNumLs0679デフォルトの名無しさん
2014/12/15(月) 22:09:34.09ID:U6CA+1sN0680デフォルトの名無しさん
2014/12/15(月) 22:14:00.57ID:R+znZwiG型理論は普通にやっててもそれなりに出てくるからなあ
Javaプログラマでも反変と共変くらいは聞いたことあるだろん
0681デフォルトの名無しさん
2014/12/15(月) 22:16:26.43ID:/4FvCJJ7SQLは、論文書くときにSQLじゃなくて関係代数で表現するときに集合論の言葉が出てくる
あと、SQLを使う機械学習でも当然のように集合論の話が出てくる
0682デフォルトの名無しさん
2014/12/15(月) 22:22:02.64ID:/4FvCJJ7計算可能性はプログラミング論全部の根底にかかわる広く深い話です
0683デフォルトの名無しさん
2014/12/15(月) 22:23:26.31ID:U6CA+1sNcovariant return typeしか知らん。
反変ってなんだっけ?
0684デフォルトの名無しさん
2014/12/15(月) 22:40:10.79ID:KtyxPG0q計算可能性と圏論がそんなに関係あるとは思えん。
強モナドを使って数学的になにか導出できるものなのか?
反変はcontravariantだな。
0685デフォルトの名無しさん
2014/12/15(月) 22:50:45.21ID:/4FvCJJ7計算可能性を圏論で表現すると、定理をHaskellでデモできる
0686デフォルトの名無しさん
2014/12/15(月) 23:07:12.43ID:Lw/L1HxZあなた方はどんな教科書で圏論に入門したんですか?
参考にしたいです。
0687デフォルトの名無しさん
2014/12/15(月) 23:13:27.90ID:/4FvCJJ7Gun = Kata
0688デフォルトの名無しさん
2014/12/15(月) 23:19:05.36ID:S/rsk+4o0689デフォルトの名無しさん
2014/12/15(月) 23:20:27.94ID:KtyxPG0q定理を自動証明できるというので便利なのって、ものすごく分岐があったりして
複雑なプログラムの正当性を対外的に主張したいとかそんな時とかなんじゃない
どういう問題解決のツールなのか具体的にわからないんだよな
あと普通に興味なのだけど定理証明系って就職先あるもんなの?
圏論入門は自分で本選ばないと。合わない本を薦めても合わない人には合わないから。
0690デフォルトの名無しさん
2014/12/15(月) 23:23:46.56ID:U6CA+1sN集合論の「成果」が反映されているとか書いてるサイトがあって、そういうのは笑止千万だと思う。
ただのベン図とか直積といったレベルなんだもん。
0691デフォルトの名無しさん
2014/12/15(月) 23:28:56.39ID:Lw/L1HxZワロタw
0692デフォルトの名無しさん
2014/12/15(月) 23:33:45.57ID:/4FvCJJ7スコーレムの定理は自明でない集合論の成果といってもよいけどね
ビッグデータが流行ってるから、関係DBで実装したシステムの、ツォルンの補題や構造論を駆使した論文が量産されるのではないかとにらんでいる
0693デフォルトの名無しさん
2014/12/15(月) 23:35:45.77ID:Lw/L1HxZそんなもんすか…
定義はサクッと短く終わらせて具体例で学べるのが好みかも。
0694デフォルトの名無しさん
2014/12/15(月) 23:43:09.31ID:KtyxPG0qその具体例が興味無いもんだったら全然頭に入らんから。
米田の補題やりたいんだったらホモロジーとかやんないといけないし。
そもそも自分もなんでHaskellでこんな圏論、圏論言ってるのかよくわからん。
0695デフォルトの名無しさん
2014/12/15(月) 23:46:42.93ID:KtyxPG0qどっちかというとカリー・ハワード同型対応とかじゃない。
結局、数理論理学やりたいんでしょ。
0696デフォルトの名無しさん
2014/12/15(月) 23:55:37.92ID:Lw/L1HxZ> Haskell で圏論
他の人はわかんないですけど、例えばlensライブラリに関する記事が流れてきて、
http://patternsinfp.wordpress.com/2011/01/31/lenses-are-the-coalgebras-for-the-costate-comonad/
で、coalgebraってなんだよ、って思ってwikiでググると
http://ja.m.wikipedia.org/wiki/余代数
なんか圏論? 図式? とかあって読めない。
そういう経験が最近多いので、勉強したいなーと。
0697デフォルトの名無しさん
2014/12/16(火) 00:15:08.87ID:p2mzIHwl言葉でうまく説明できないから図式多用して説明してることにしてんの。
そこらへん適当に見抜いて適切な文献にたどり着くようにしないと。
余代数は正直あんまり知らんがPeter Aczelって偉い先生とか調べていくとわかるかもしらん。
0698デフォルトの名無しさん
2014/12/16(火) 00:35:30.17ID:zveiWEB1その通り
関手が無数にある圏論をやる前に
数種類の関手だけで何とかならないか考えればいいのに考えない人が多い
0699デフォルトの名無しさん
2014/12/16(火) 01:10:40.18ID:p2mzIHwl具体的な役立つ例みたいなのを実際作れればいんだろうな。
0700デフォルトの名無しさん
2014/12/16(火) 02:20:01.93ID:AnZisIOt計算というモノを圏論の言葉でArrowやモナドまで抽象化してコードできれいに表現できるようにしたのがHaskellなんです
例えば、ラムダ計算を駆使しても同程度の抽象化は可能だと思いますが、普遍性を提示する段になると、やはり圏論に軍配があがるでしょうね
0701デフォルトの名無しさん
2014/12/16(火) 03:03:28.41ID:FzXuRTWx0702デフォルトの名無しさん
2014/12/16(火) 07:34:48.98ID:EXe/x8vuそれは分かるが、じゃあ実際にHaskellでアプリケーションを作るときに、
その計算可能性の理論を含む圏論はどの程度、どう関わってくるのかが見えてこない。
たとえば、Haskellでゲームを作るとき、年賀状作成アプリを作るとき、
Webストアサイトを作るとき、会計ソフトを作るとき、Office系アプリを作るとき、
Raw現像アプリを作るとき、VFX作成アプリを作るとき、PDF編集アプリを作るとき、
流体シミュレーションをしたり、破壊シミュレーションをしたり、ライフログを管理したり・・・
といったいろんなジャンルのものを作るときに、圏論はアプリを設計し易くしたり、
コードを簡潔にしたり、処理速度や使用リソース量を改善したり、メンテし易くしたり、
といった効果にどのように繋がるのかが分からない。
とりあえず、自動プログラミングやトランスレータで必須なのは >>675 で聞いた(理由は分からん)。
0703デフォルトの名無しさん
2014/12/16(火) 15:09:40.38ID:ZzGZKbIYかなり具体的な例でないと納得しそうもないね
0704デフォルトの名無しさん
2014/12/16(火) 15:12:15.44ID:ZzGZKbIY0705デフォルトの名無しさん
2014/12/16(火) 20:56:00.31ID:EXe/x8vuたとえば、こういうアプリを作っててこういう問題を抱えている場合、
圏論を知らん奴はこう対処するが、知ってる奴はこうやって解決する。
後者の方がメンテし易いでしょ、速いでしょ、簡潔でしょ、etc
みたいな話くらいはここでもできそうかと思って。
ただ、そういう話も無いとなると、じゃあ Haskell プログラマにとって
圏論とはどういった存在なのか? 実用には結びつかないのか? という話になる。
特に >>655 みたいな人たちは圏論に何を期待してるのだろう。
0706655
2014/12/16(火) 21:43:49.08ID:FzXuRTWx0707デフォルトの名無しさん
2014/12/16(火) 23:37:50.03ID:QTuBt/rOHaskellは論文を作るプログラミング言語です
0708デフォルトの名無しさん
2014/12/16(火) 23:39:44.12ID:zveiWEB1HaskellやC++の全てのアプリはtemplateつまり型コンストラクタの問題を抱えている
圏論を知らん奴はFunctorを過小評価するが知ってるやつは過大評価する
後者の方がメタプログラミングのコードを読むのが速い (書くとは言っていない)
0709デフォルトの名無しさん
2014/12/17(水) 00:01:41.57ID:p2mzIHwlCって圏とDって圏があったとする。それはどういうことかというと
バッティングしないモジュールが2つあるってことだ。
その「バッティングしない」という主張を支えているのが「圏を成す」という
数学的証明可能な主張だ。
何言っているのかわからないかもしれないが、わかってしまえば馬鹿みたいなことだ。
つまり、構造化プログラミングの時代から結局ソフトウェアの製作の基本は分割統治だということだ。
証明にしたって、いきなり長大な定理証明するよりも分割した小さい定理から証明する方が楽だろ。
0710デフォルトの名無しさん
2014/12/17(水) 00:40:33.61ID:16FYUzco0711デフォルトの名無しさん
2014/12/17(水) 00:43:00.13ID:16FYUzcocoqとかも同様だと思う。
(ちょっとも活かせないし、有用じゃないとかいう意味じゃないよ)
0712デフォルトの名無しさん
2014/12/17(水) 00:46:51.45ID:JUumI3zm「見えてこない」のは当たり前で、期待するような
現実世界の実用的なアプリケーション開発に適用できるほど、
(Haskell に代表される)純粋関数型言語によるプログラミング技術、
いわゆる「関数プログラミング」は成熟していないのが現実
そもそも圏論のプログラミングへの応用も始まったばかり
しかも Haskell のアローやモナドは、圏論という概念ではほんの一部でしかない
逆の見方をすると、10年先20年先という時間感覚で
挑戦しがいのある分野の一つが「関数プログラミング」だと思う
0713デフォルトの名無しさん
2014/12/17(水) 05:48:06.03ID:eMZNlnHK0714デフォルトの名無しさん
2014/12/17(水) 12:33:52.95ID:2wTiOnxFということは、>>706 のような人たちは今ではなく
10年後20年後を見据えて圏論の勉強をしようとしているのか。
その時に大幅に置いていかれないように、俺もぼちぼちがんばるわ。
0715デフォルトの名無しさん
2014/12/17(水) 13:33:40.74ID:9XkD0r5R0716デフォルトの名無しさん
2014/12/17(水) 14:08:49.35ID:/b4BEh/V現況では我々は幼児の如く砂場遊びに逃げ込むしかないのだ
0717デフォルトの名無しさん
2014/12/17(水) 16:20:21.89ID:xwihDn+Fhttp://qiita.com/ruicc/items/6ba44359d86c3bf84492
0718デフォルトの名無しさん
2014/12/17(水) 18:16:25.49ID:fgSxRbXWGUIに依存しない
これだけで解決
0719デフォルトの名無しさん
2014/12/18(木) 01:01:24.51ID:KNlUpaPW0720デフォルトの名無しさん
2014/12/18(木) 07:16:51.01ID:CMXXyuKT学べるサイトか本かないかな?
0721デフォルトの名無しさん
2014/12/18(木) 07:35:36.06ID:P6rnp9ki俺も気になってる。
取り敢えずこれ読んでる。
http://ja.m.wikibooks.org/wiki/Haskell/Denotational_semantics
0722デフォルトの名無しさん
2014/12/18(木) 08:29:43.98ID:4fvp5mcc0723デフォルトの名無しさん
2014/12/18(木) 10:11:44.66ID:hLMpD6vB0724デフォルトの名無しさん
2014/12/18(木) 16:58:48.33ID:uP2HGx71これが依存関係地獄というものでしょうか
解決方法はこざいますか
0725デフォルトの名無しさん
2014/12/18(木) 17:19:44.60ID:iopRQF0Z0726デフォルトの名無しさん
2014/12/18(木) 20:18:28.89ID:r01MJC3+0727デフォルトの名無しさん
2014/12/18(木) 21:39:10.52ID:CMXXyuKT紹介ありがとう
意味近似オーダーの辺りから急にムズくなった・・・
a [= b が、「b が a より更に定義されているか、同じだけ定義されている」ならば、
なんで 1 [= 2 や 2 [= 1 が成立しないのか分からん。
0728デフォルトの名無しさん
2014/12/18(木) 23:08:33.10ID:CbaqRb4S[=が情報の量のみを比較しているような誤解を生む書き方になってる。
実際は「定義されてる部分に関しては等しく、より定義されている」だよ。
0729デフォルトの名無しさん
2014/12/18(木) 23:20:51.50ID:CbaqRb4S0730デフォルトの名無しさん
2014/12/19(金) 00:36:51.21ID:g9e+0E+y二〇一六年四月の電力小売り全面自由化後も、
大手電力会社の原発廃炉費用を電気料金に転嫁する方針を決めた。
全ての電力利用者に負担してもらう経産省案を大筋で認めた。
大手電力が老朽原発の廃炉を円滑に進められるよう、確実に費用を回収できるようにする。
有識者会議は、転嫁の方針を盛り込んだ報告書を来年一月に取りまとめる予定だ。
原発を持たない新規参入の電力小売会社の利用者も費用を負担することになり、反発も予想される。
経産省は今後、例外を設けるかどうか議論する。
現在の制度は、大手電力がコストを電気料金の原価に算入する「総括原価方式」により、
廃炉費用を電気料金に織り込んで徴収している。電力小売りの全面自由化によって料金競争が激しくなれば、
廃炉費用の上乗せが難しくなると予想されるため、新しい仕組みをつくる。
電力自由化では、一八〜二〇年をめどに実施される「発送電分離」により、
大手電力から分離して送配電会社ができる。
電力小売会社は大手電力のグループ会社である送配電会社に送電線の利用料(託送料)を支払う。
経産省は託送料に廃炉費用をプラスし、回収できるようにする考えだ
0731デフォルトの名無しさん
2014/12/19(金) 09:32:49.97ID:eL8etcpJhttpでファイルダウンロードすると少し遅いので両者には効率に差があるわけですよね
話変わって、遅延評価的に接続と切断を頻繁に行って、クライアントが少しずつ必要に応じて必要な部分を逐次ダウンロードしていくプロトコルってないんですか?
接続をずっと維持しておくとサーバーに迷惑じゃないですか。遅延評価に最適化された形で、プログラマは仮想的にずっと繋いでおくようにコーディングするだけでよく、現実には内部で巧いこと接続と切断を調整してくれるプロトコルってありませんか?
@まずお前は間違いなく通信を理解していない
Aこれはプロトコルレベルで解決すべき問題ではなく、別の層で取り組むべき問題だ
Bその他( )
0732デフォルトの名無しさん
2014/12/19(金) 12:41:38.26ID:WOViO0DCそういうことか
そもそも1と2では定義されているものが違うから比較しようがないのか
納得した
0733デフォルトの名無しさん
2014/12/19(金) 15:27:59.91ID:PxcdzFufHascell楽しすぎる。
理屈の方が。スマン
0734デフォルトの名無しさん
2014/12/19(金) 18:06:05.12ID:04+SghU6A一択。仕事の話か?匿名の掲示板で話ししてもしょうがないだろ。
0735デフォルトの名無しさん
2014/12/19(金) 18:24:48.97ID:04+SghU60736デフォルトの名無しさん
2014/12/19(金) 20:11:44.66ID:rAA+xYtY2
遅延評価はまったく関係ないように思える
C言語だろうとそういうインタフェースは実装できそう
0737デフォルトの名無しさん
2014/12/19(金) 20:50:17.48ID:04+SghU6それにこういうのはやっぱ新しいの挑戦することに意味があるんだと思うぜ。
0738デフォルトの名無しさん
2014/12/19(金) 21:58:16.46ID:tuxkI12w0739デフォルトの名無しさん
2014/12/19(金) 22:03:54.12ID:WOViO0DC「内部で巧いこと接続と切断を調整してくれる」プロトコルにするには、
何を以て「巧い」とするかを明確に定義する必要がある。
でなければ、プロトコルとしてルールにできない。
しかし、巧いと感じる接続と切断のタイミングは人それぞれだし、
同じ人でも作っているアプリや環境によって違ってくる。
つまり、定義できない。
よって、プロトコルとしてルールにはできない。
では、どうするか。
まず、プロトコルから離れること。
そして、どういう環境でどういう時にどういうタイミングなら巧いと言えるか、
多くの事例を可能な限り洗い出し、パターン化すること。
そうすれば、サーバーのデータを必要とする関数をラップする高階関数が作れる。
0740デフォルトの名無しさん
2014/12/19(金) 22:23:01.10ID:04+SghU6不格好でもまずは動くもんつくるのが第一だろう。
0741デフォルトの名無しさん
2014/12/19(金) 22:54:57.81ID:ak9MrmvVFTPにはアクティブモードがあるから
0742デフォルトの名無しさん
2014/12/19(金) 23:06:10.76ID:04+SghU6アクティブモードにするだけならそんなコストもかからんし。
0743デフォルトの名無しさん
2014/12/19(金) 23:17:53.74ID:WOViO0DC適切にパターン化されていれば、誰でも作れるんじゃないかな。
0744デフォルトの名無しさん
2014/12/19(金) 23:32:08.97ID:04+SghU60745デフォルトの名無しさん
2014/12/20(土) 06:27:06.26ID:sNTGK+/8おすすめサイトなど御座いますか?
0746デフォルトの名無しさん
2014/12/20(土) 08:51:52.69ID:KOa1fTF+FTPでの接続制御でどうこうする問題じゃないとおもう
DHT プロトコルじゃないかな
https://github.com/aninhumer/haskell-dht
0747デフォルトの名無しさん
2014/12/20(土) 08:55:24.98ID:XLHq169F圏論の方が簡単だった
0748デフォルトの名無しさん
2014/12/20(土) 08:59:08.96ID:7Yc5eiA80749デフォルトの名無しさん
2014/12/20(土) 10:31:09.38ID:1etDexZj0750デフォルトの名無しさん
2014/12/21(日) 01:54:58.29ID:uz6Dw6AeImplicit モジュールの argPos をひとつのモードでn>=2個以上使ったとき、ヘルプにも
ProgramName [OPTIONS] INT INT
みたいにn個の名前無し引数が表示されます。
またこのとき、n個未満の名前無し引数が与えられてプログラムが実行されると
エラーとして扱われます。
これと同じ挙動を Explicit モジュールの関数を使って実現できるでしょうか?
mode 関数の第4引数で名前無し引数の扱い方を指定できるのですが、
いくつの名前無し引数が必要かを指定する方法が無いような気がします。
しかも、その第4引数で与える Arg a 型の値の argRequire フィールドを True にすると、
ヘルプが見たくて ProgramName -? と実行しても、最低1つの引数が必要だと怒られます。
これはもう、この部分だけは自作するしかないですか?
0751デフォルトの名無しさん
2014/12/21(日) 05:54:20.38ID:L414CFHeおすすめサイトなど御座いますか?
0752デフォルトの名無しさん
2014/12/21(日) 06:28:08.86ID:hjGN2SX+しつこいよ!w
マジで困ってる系か?
haskellのemacs設定は現在のところ
https://github.com/serras/emacs-haskell-tutorial/blob/master/tutorial.md
が一番わかりやすい。日本のブログだとflymakeとか古い奴を推奨しているのがあって、混乱するかもしれん。
emacs一般のカスタマイズは、るびきち氏の著作を読むといい。
また、彼のブログにはカスタマイズの最新流行が随時紹介されるので、その辺も参考になると思う。
個人的にはemacsの設定にあんまり時間をとられるようなら、いっそポイして、モダンなIDE環境に移行した方がよいと思う。
https://www.fpcomplete.com/business/haskell-center/overview/
0753デフォルトの名無しさん
2014/12/21(日) 06:38:33.96ID:L414CFHeありがとうございました。本当に感謝しております。
0754デフォルトの名無しさん
2014/12/21(日) 13:03:51.37ID:uz6Dw6Ae結局、Explicit モジュールの中だけで実現するのは無理だという結論に達し、
processArgs 関数を呼ぶ前に、コマンドライン引数の中に -? または --help があるか調べる方法を採りました。
と言うことでこれは諦めたのですが、別の疑問が出てきました。
Implicit モジュールでコマンドライン引数を解析する際、
enum 関数を使って、複数のコマンドライン引数を排他的に指定するようにできます。
例えば、-a と -b と -c のどれかひとつを指定できる引数の型を設定できるのですが、
これを Explicit モジュールの方で実現する方法はないでしょうか?
0755デフォルトの名無しさん
2014/12/21(日) 13:30:09.57ID:L414CFHe素晴らしい
0756デフォルトの名無しさん
2014/12/21(日) 13:41:19.51ID:L414CFHe英語読めません。
0757デフォルトの名無しさん
2014/12/21(日) 14:36:59.52ID:tfypJLKU0758デフォルトの名無しさん
2014/12/21(日) 14:41:26.60ID:hjGN2SX+0759デフォルトの名無しさん
2014/12/21(日) 15:08:16.22ID:oOIcOLB4自分でどうにか理解しようとしないと
その上でわからないなら質問することはぜんぜん悪じゃないけど
0760デフォルトの名無しさん
2014/12/21(日) 15:38:48.32ID:JX15aD5+それこそが最も価値があり、めざすべきものです
その理由は、努力とは、今すぐやめたいことをやることだからです
それを避けるために脳ミソが最大限に最適化されます
つまり、理解ではなく、理解したと錯覚することに納得するようになります
日本人が、大学に入学するとき、就職したとき、退職したときに劇的にIQを下げるのはそのためであり、鬱病の原因が進学・就職・退職であるのもそのためです
日本人のIQを上げたかったら、一切の努力をさせるべきではありません
0761デフォルトの名無しさん
2014/12/21(日) 15:46:20.18ID:uz6Dw6Ae0762デフォルトの名無しさん
2014/12/21(日) 16:19:38.79ID:L414CFHeなんとか頑張ります。
0763デフォルトの名無しさん
2014/12/21(日) 16:36:00.34ID:82ahHpnMついでにVim版もお願いします。恐縮です
0764デフォルトの名無しさん
2014/12/21(日) 17:15:49.20ID:hjGN2SX+すまんね。Vimは知らないんだ。
0765デフォルトの名無しさん
2014/12/21(日) 17:59:48.04ID:nsbprUQ10766デフォルトの名無しさん
2014/12/21(日) 18:17:39.26ID:82ahHpnM0767デフォルトの名無しさん
2014/12/21(日) 18:45:37.67ID:uz6Dw6Aeモナドに限定してはいないのですが、
それでもシーケンスというニュアンスが合っているということてすか。
ありがとうございました。
0768デフォルトの名無しさん
2014/12/21(日) 21:45:24.94ID:gUjWBnW3分からないなら偶然分かる機会を待つ
この方法は誰も知らない分野でも使えるという圧倒的価値があります
0769デフォルトの名無しさん
2014/12/21(日) 22:36:13.23ID:82ahHpnM0770デフォルトの名無しさん
2014/12/21(日) 23:20:03.82ID:uz6Dw6Ae偶然分かる機会を捕らえるには、アンテナを張り巡らし、
センサーの感度を高めておく努力が必要です。
0771デフォルトの名無しさん
2014/12/22(月) 00:05:55.14ID:5WIHq8Mffirst second right left この辺はよく使う
0772デフォルトの名無しさん
2014/12/22(月) 01:08:32.20ID:+VHqhpCj0773デフォルトの名無しさん
2014/12/22(月) 01:28:15.39ID:oe0TxKqO0774デフォルトの名無しさん
2014/12/22(月) 02:14:55.30ID:iRuCc3wChttp://i.imgur.com/Psp2Hs3.jpg
2 ベータ線を出している危険
http://i.imgur.com/xRY3ThC.jpg
3 肺に溜まる
http://i.imgur.com/WJA2YcZ.jpg
福島第一原発の事故で大量に放出された放射性物質・セシウム。
放射線量などをもとにその汚染状況が調査されてきたが、
実際の化学的形態はよく分かっていなかった。
しかし、電子顕微鏡を用いた巧みな調査で、
不溶性の球形粒子として存在するものも多いことが明らかになった。
従来想定されていた水溶性粒子とは体内や
環境中でのふるまいが異なるため、
健康影響の推定などにも違う考え方が必要だ。
どのくらいの影響が懸念されるのか。
0775デフォルトの名無しさん
2014/12/22(月) 03:15:58.72ID:+VHqhpCj教えて頂けますか?
0776デフォルトの名無しさん
2014/12/22(月) 10:05:10.51ID:sKRdz/+L何かの偶然で鉛筆を使うことをすっかり忘れてしまった
これを偶然ではなく努力不足とするのは冷酷だ
0777デフォルトの名無しさん
2014/12/22(月) 12:42:35.11ID:iRuCc3wC多数の傷病者が発生している。
資源エネルギー庁への情報開示請求で開示された資料からわかった。
そのほとんどが、未公表だった。
開示されたのは、東電から資源エネ庁に
送られた事故発生時の連絡メール。
事故の大小にかかわらず、また労災の適用か
どうかにも関係なく、発生と同時に発生場所や状況、
ケガの程度、治療内容などが連絡されている。
期間は2014年4月1日〜9月23日
熱中症 32件
脱水症 5件
体調不良 18件
ケガ 43件(骨折9件、縫合処置9件)
病院への搬送 22回(救急搬送13回、業務車による搬送4回、ドクターヘリ3回、搬送方法不明2回)
0778デフォルトの名無しさん
2014/12/22(月) 21:59:18.23ID:ZeHTWNeoVim + vim2hs + neco-ghc + ghcmod-vim + ref-hoogle + quickrun でかなり快適です
0779デフォルトの名無しさん
2014/12/22(月) 22:11:51.54ID:+VHqhpCjもう少し頑張ります。
0780デフォルトの名無しさん
2014/12/22(月) 23:52:45.47ID:LJpgVP500781デフォルトの名無しさん
2014/12/23(火) 10:48:35.95ID:LTt8RR1X理解が逆。
関手則なんかは図式で説明すれば「ああなるほど」とすぐ判る。
加えて、まれによくある「合成の順番の間違い」なんかも図式を併記すると
1.書く人が事前に間違いに気づきやすい
2.間違いが放置されても図式から正しい関係式を復元しやすい
という利点がある。
言葉で整理するより適宜図を使うほうがわかりやすいということは
OOPでも知られている。ただし、UMLなどと違って圏論の図式は
「関係の整合性」を非常に意識する/させるものになっている。
ライブラリのコンシューマがあれこれ圏論まで知る必要があるかといえば
別にないとは思うが、ライブラリの生産者になりたいならば、圏論が
示唆してくれる、関係の整合条件は非常に役に立つ。
0782デフォルトの名無しさん
2014/12/23(火) 11:08:54.70ID:aSx5B0NMありがとうございました
0783デフォルトの名無しさん
2014/12/23(火) 11:16:18.62ID:SvNKn2Fi>>697の言ってるのはPCのアイコンとか人の顔とか本当に絵で表現してる「図解」ってやつだ
0784デフォルトの名無しさん
2014/12/23(火) 12:11:45.35ID:dkZcT41A>>697も単なる「図」じゃなくて「図式」っていってるよね。
0785デフォルトの名無しさん
2014/12/23(火) 12:22:15.44ID:p0oEscBy俺は、言葉と図式は両方大切だと思うが。
0786デフォルトの名無しさん
2014/12/23(火) 12:54:08.68ID:Q7XoM0KCもう少し頑張ります。
0787デフォルトの名無しさん
2014/12/23(火) 14:26:17.15ID:Q7XoM0KC0788デフォルトの名無しさん
2014/12/23(火) 15:26:21.45ID:V0LRqITK言っているのは圏論の図式のことだが、関係の整合性を図式で表すのは
いいのだが、関係を図で表しても図のどの記号がどの概念に対応するのか
分かり難いから言葉で補足しないとよんでもわかった感じになるだけで
実際具体的にどうすればいいのかわからなくなってしまう、と指摘してる。
0789デフォルトの名無しさん
2014/12/23(火) 15:34:01.39ID:V0LRqITK大体の関係がわかる図式は意味があるかもしれないが、
やはりそれでも図式のどの記号が何に対応するのかという
対応関係は必要だ。
0790デフォルトの名無しさん
2014/12/23(火) 15:55:49.38ID:V0LRqITK使い所がわかってもらえないという欠点がある。はっきり言ってしまえば
何にでも使えるというのは、特に特化したものがなく何にも使えないという
ことだ。これこれに具体的に使えますというところをアピールしていかないと
いけないといけないのだろう。
0791デフォルトの名無しさん
2014/12/23(火) 17:06:21.56ID:egk/n0nz0792デフォルトの名無しさん
2014/12/23(火) 17:07:59.70ID:dEKTP0i+0793デフォルトの名無しさん
2014/12/23(火) 18:09:10.59ID:SvNKn2Fi0794デフォルトの名無しさん
2014/12/23(火) 19:03:28.19ID:fCOeUT1xわかってない人に図式メインで説明しちゃったりすると…
0795デフォルトの名無しさん
2014/12/23(火) 19:43:26.28ID:aSx5B0NM0796デフォルトの名無しさん
2014/12/23(火) 22:53:47.56ID:EhLsW63J図式メインって・・・
0797デフォルトの名無しさん
2014/12/23(火) 23:15:31.47ID:sisXRsnQ0798デフォルトの名無しさん
2014/12/23(火) 23:18:22.29ID:V0LRqITKあるように、抽象論は得てして現実との壁が問題になる。
だから、大事なのは現実の方を理想に合うように徐々に理解してもらう
ということが大事なのだが、モナドみたいに便利みたいな機構を
一気に見つかることを考えていると一向に進まない。
0799デフォルトの名無しさん
2014/12/24(水) 03:10:09.72ID:eQ8NsaON福島県の子供を対象に東京電力福島第1原発事故による放射線の影響を調べる甲状腺検査で、事故直後の1巡目の検査では「異常なし」とされた子供4人が、
4月から始まった2巡目の検査で甲状腺がんの疑いと診断されたことが23日、関係者への取材で分かった。
25日に福島市で開かれる県の検討委員会で報告される。調査主体の福島県立医大は確定診断を急ぐとともに、事故による放射線の影響かどうか慎重に見極める。
検査の対象は1巡目が事故当時18歳以下の約37万人で、2巡目は事故後1年間に生まれた子供を加えた約38万5千人。1次検査で超音波を使って甲状腺のしこりの
大きさや形状などを調べ、程度の軽い方から「A1」「A2」「B」「C」と判定し、BとCが血液や細胞などを詳しく調べる2次検査を受ける。
関係者によると、今回判明したがんの疑いの4人は震災当時6〜17歳の男女。1巡目の検査で「異常なし」とされていた。4人は今年4月からの2巡目検査を受診し、
1次検査で「B」と判定され、2次検査で細胞などを調べた結果「がんの疑い」と診断された。
また、1巡目で、がんの診断が「確定」した子どもは8月公表時の57人から27人増え84人に、がんの「疑い」は24人(8月時点で46人)になったことも新たに判明した。
0800デフォルトの名無しさん
2014/12/24(水) 06:08:34.15ID:x5jlET52抽象的な書き込みですね
0801デフォルトの名無しさん
2014/12/24(水) 06:13:49.55ID:x5jlET520802デフォルトの名無しさん
2014/12/24(水) 08:39:37.21ID:COrfxw1w複雑な関係を二次元に配置することで、「目で追いやすくする」のが図式の
旨味なのであって、もし機械的に検証したいということであれば図式の
各要素に対応する関係式を並べた「連立関係式」として図式を定式化することは
できる。
0803デフォルトの名無しさん
2014/12/24(水) 11:02:05.72ID:Mlxryodi個人的に Haste を触ってみたことあるけどちゃんと動いてビビる
+ 本体がきちんと haskell なので ghc-mod とか使えて便利
0804デフォルトの名無しさん
2014/12/24(水) 18:39:43.26ID:LWplasa6連立関係式といっても図式の各要素に対応するのは一体なんなの?
関係式がいっぱいあっても主要なものとかあるわけで、
その図式の目的と自分の欲しい性質とズレていないかとか確認できないと
意味ないと思うんだ。
0805デフォルトの名無しさん
2014/12/24(水) 19:04:58.26ID:Wq6i2xwr0806デフォルトの名無しさん
2014/12/24(水) 19:26:45.70ID:6s3MBilM0807デフォルトの名無しさん
2014/12/24(水) 22:45:08.96ID:LWplasa60808デフォルトの名無しさん
2014/12/25(木) 04:38:48.80ID:loGzlscL0809デフォルトの名無しさん
2014/12/25(木) 17:46:11.33ID:U8H2C/ZD0810デフォルトの名無しさん
2014/12/25(木) 18:11:45.47ID:rSdGRMg2>>809
具体的に何が上手くいかないのかを書いてくれれば助けることができるかも。
0811デフォルトの名無しさん
2014/12/25(木) 18:16:22.29ID:U8H2C/ZD分かりやすい最新の日本語サイトなどありますか?
0812デフォルトの名無しさん
2014/12/25(木) 18:29:12.03ID:rSdGRMg2Emacsスレに行けばもっと詳しく教えてくれるかもしれないね。
0813デフォルトの名無しさん
2014/12/25(木) 18:32:21.96ID:U8H2C/ZD0814デフォルトの名無しさん
2014/12/25(木) 19:14:31.32ID:51/AMN5xjenkins で CI 環境を組み、実際のビルドは cabal で行っています。
jenkins のあるサーバーを仮にビルドサーバーと呼ぶことにします。
ビルドサーバーでは下記のコマンドでビルド&テストしています。
cabal configure --enable-tests
cabal build
cabal test --test-option=--jxml=test_result.xml
外部ライブラリを import している *.hs ファイルをビルドする際、
*.cabal ファイルの build-depends の項にそのパッケージ名を書きますが、
ビルドサーバーにそのパッケージがインストールされていなければ、
cabal configure の時点でパッケージが無いと言われて
ビルドプロセスが失敗に終わります。
なので、現在はビルドサーバー側において、
ビルド前に手作業でパッケージのインストールを行っています。
ですが、とても面倒です。せっかくの自動ビルド&テスト環境なので、
未インストールパッケージのインストール作業も自動化させたいです。
そのようなことをスクリプトを組まずに cabal だけで実現する方法は無いでしょうか?
無ければ諦めてスクリプトを組みますが、できれば cabal で済ませたいです。
Setup.hs 内で仕組みを作る方法でも構いません。
ちなみに、自作ライブラリのビルド時、cabal install はしません。
デプロイ先はビルドサーバーではないので。
0815デフォルトの名無しさん
2014/12/25(木) 19:53:42.98ID:U2ewRSz90816_
2014/12/25(木) 21:03:07.10ID:hXzTK8zn0817デフォルトの名無しさん
2014/12/25(木) 22:43:57.72ID:o1f0eY0Pcabal sandboxじゃだめなの?
0818デフォルトの名無しさん
2014/12/25(木) 23:57:58.85ID:X2VFu+qzいますごいH本の7ページ目を読んでます。
0819デフォルトの名無しさん
2014/12/26(金) 02:12:28.61ID:vtMrfWur0820デフォルトの名無しさん
2014/12/26(金) 08:48:48.52ID:7GmGQZy0三国志で例えると郭嘉かな。あと矢印付けるとウインクしてるみたい
0821デフォルトの名無しさん
2014/12/26(金) 08:51:16.19ID:7GmGQZy00822デフォルトの名無しさん
2014/12/26(金) 09:36:01.82ID:uhdbAiNi0823デフォルトの名無しさん
2014/12/26(金) 14:36:40.94ID:vtMrfWur0824デフォルトの名無しさん
2014/12/26(金) 15:05:02.45ID:gos9dDUg0825デフォルトの名無しさん
2014/12/26(金) 18:00:48.27ID:rv+l+9HFアドバイスありがとうございます。
sandbox について調べてみました。
一度ビルドサーバーにインストールしたパッケージは、
同じビルドサーバーで扱う他のプロジェクトでも共有したいので、
どうも今回の目的には合っていないようです。
ただ、調べている過程で、cabal install --only-dependencies をすることで
目的が達成されることが分かりました。
今回はこの方法をとりますが、sandbox はローカルな環境でテストするには良さそうなので、
その際はいただいたアドバイスを活かしたいと思います。
0826デフォルトの名無しさん
2014/12/26(金) 20:34:25.15ID:7vJpfHRF0827デフォルトの名無しさん
2014/12/27(土) 12:21:18.72ID:x5x1r/6h関数プログラミングのたのしみと並列・並行は読んでないけど
ほぼ間違いなくすごいH以上珠玉未満
0828デフォルトの名無しさん
2014/12/27(土) 12:23:40.31ID:x5x1r/6h0829デフォルトの名無しさん
2014/12/27(土) 13:04:43.96ID:Xe8/BGM10830デフォルトの名無しさん
2014/12/27(土) 14:02:56.08ID:JrG0d0YE0831デフォルトの名無しさん
2014/12/27(土) 14:22:28.43ID:cA3tryxgいま足りてないのは洗脳を解くための情報
例えばC言語でオブジェクト指向とか
OCamlでモナドとか
外国にも四季があるとか
0832デフォルトの名無しさん
2014/12/27(土) 14:54:08.25ID:TjPtBoaFかな。
0833デフォルトの名無しさん
2014/12/27(土) 15:10:44.50ID:x5x1r/6hふつケルは当時良い本だったけどもう内容古いしぶっちゃけ読まんでいい
0834デフォルトの名無しさん
2014/12/27(土) 15:15:28.45ID:+eeTs6yQ12月26日 18時53分
http://www3.nhk.or.jp/news/html/20141226/k10014317271000.html
東京電力福島第一原子力発電所で、「トレンチ」と呼ばれる地下のトンネルに高濃度の
汚染水が流れ込んでいる対策として、トンネルの大部分をセメントで埋め立てたにもかかわらず、
依然として水位の変動が続いていることが分かりました。
東京電力は、埋め立てた部分に隙間ができているとみて対策を検討することにしています。
福島第一原発の建屋からトレンチに流れ込んでいる高濃度の汚染水について、
東京電力は当初、一部を凍らせるなどして流れをせき止めたうえで抜き取る計画でしたが、
作業が難航したため、先月から汚染水が入った状態のままセメントを流し込み、
トレンチの埋め立てと汚染水の抜き取りを並行して進めてきました。
26日開かれた原子力規制委員会の会合で、東京電力は、地上とトンネルを結ぶ
4か所の縦穴を除いて埋め立てが終わり、およそ2500トンの汚染水を抜き取ったと
報告しました。
ところが、縦穴から試験的に汚染水をくみ上げたところ、別の縦穴の水位が変動し、
埋め立てた部分でセメントに隙間ができている可能性があるとしています。
東京電力は、縦穴の部分を埋め立てれば汚染水は遮断できると説明しましたが、
委員や専門家からは調査が不十分だとする指摘が出され、東京電力は今後1か月かけて
水位の監視を続け、さらに隙間がないか確認するとともに、汚染水の流れを確実に
遮断する方法を検討することにしています。
0835デフォルトの名無しさん
2014/12/27(土) 15:23:29.28ID:kcXcAVhxHaskellでプログラミングするとこうなるってこと?
0836デフォルトの名無しさん
2014/12/27(土) 16:04:31.24ID:cA3tryxg0837デフォルトの名無しさん
2014/12/27(土) 20:27:50.38ID:Z5TU2mXJ昔はテンプレに School of Expression ってのがあって面白かったけど
0838デフォルトの名無しさん
2014/12/27(土) 22:36:59.91ID:Wg0rqo6T0839デフォルトの名無しさん
2014/12/28(日) 01:34:50.55ID:ZRAzXvYs政府の原子力災害現地対策本部は28日、東京電力福島第1原発事故に伴い、放射線量が局所的に高い
「ホットスポット」として福島県南相馬市に指定した特定避難勧奨地点142地点(152世帯)の指定を解除した。
避難勧奨地点は2011年6月以降、福島県の伊達市や川内村、南相馬市に指定されたが、12年12月に
伊達市と川内村は解除されており今回、避難勧奨地点は全てなくなる。
南相馬市では対象の住民のほとんどが解除に反対しており、住民理解が得られないままの強行となった。
0840デフォルトの名無しさん
2014/12/28(日) 12:20:19.22ID:TtlxAxKYすげー近視眼的。
0841デフォルトの名無しさん
2014/12/28(日) 21:12:56.68ID:yGhAGsqu・パズルゲー作る
・珠玉を読了する
みんなは?
0842デフォルトの名無しさん
2014/12/28(日) 21:21:57.28ID:6IxIWlMA0843デフォルトの名無しさん
2014/12/28(日) 23:50:28.48ID:zst8R7oQ0844デフォルトの名無しさん
2014/12/29(月) 01:05:19.44ID:UfejTaM+送りたいんだけどgoogleにそういう問い合わせするときってどこが
一番可能性高いもん?直接のメールアドレスはわからんのでgoogle経由で
やるしかないのよ。
0845デフォルトの名無しさん
2014/12/29(月) 01:54:36.75ID:+0aaYlGc読了していないコードをスパゲッティなどと罵倒しない
0846デフォルトの名無しさん
2014/12/29(月) 02:00:23.30ID:GtpJGJV9Google経由は可能性低いと思う。
その人を知った経路方面から連絡できそうなもんだが。
0847デフォルトの名無しさん
2014/12/29(月) 02:12:27.35ID:UfejTaM+そうかー。どっか知ってそうな人探していくか。ありがとう。
0848デフォルトの名無しさん
2014/12/29(月) 02:12:35.48ID:4HBx8iThHaskell コミュニティの中に google 関係者の人がほぼ確実にいる。
Haskell 関連のニュースグループとかで呼び掛ければいいと思うよ。
0849デフォルトの名無しさん
2014/12/29(月) 12:35:44.97ID:UfejTaM+おっ、その手があったか。さっそくやってみるよありがとう。
0850デフォルトの名無しさん
2014/12/30(火) 23:34:29.91ID:DyAtZuWT0851デフォルトの名無しさん
2014/12/31(水) 00:02:22.39ID:WNT3VYT+0852デフォルトの名無しさん
2014/12/31(水) 01:04:15.55ID:GCVJ4yxqA
|-B
|-C
↑ABCがサンドボックスで、Aの中のパッケージをBとCで共有できればいいなって思ったんだ
0853デフォルトの名無しさん
2014/12/31(水) 10:18:03.32ID:lcJbVM3e0854デフォルトの名無しさん
2014/12/31(水) 10:22:47.34ID:Z+SsAvdG0855デフォルトの名無しさん
2014/12/31(水) 10:52:37.15ID:lcJbVM3e0856デフォルトの名無しさん
2014/12/31(水) 16:14:08.93ID:Xcj97OXDインタープリトしてアプリの内部機能(関数)を呼ぶ仕組みを作りたいのですが、
そういうことを支援するライブラリってないですか?
0857デフォルトの名無しさん
2015/01/01(木) 00:45:25.99ID:9UEsBz6Apersistent で新規に作ったものなマイグレートできたのですが...
0858デフォルトの名無しさん
2015/01/01(木) 07:17:30.03ID:dTLG2CI10859デフォルトの名無しさん
2015/01/01(木) 11:15:21.99ID:dOFDAbHH0860デフォルトの名無しさん
2015/01/01(木) 11:43:45.40ID:slaO93jU0861デフォルトの名無しさん
2015/01/01(木) 12:56:46.42ID:MuKGxtH/ま,それでもいいのでは.
0862デフォルトの名無しさん
2015/01/01(木) 13:00:08.82ID:MuKGxtH/作ろうかと思ってしまうのは私だけなのかな.
0863デフォルトの名無しさん
2015/01/01(木) 13:49:49.40ID:9nX5wxEB0864デフォルトの名無しさん
2015/01/01(木) 14:07:26.86ID:wXHHaUzE「普及」という観点になると他言語との比較になるので
(Haskellがクソでも他のやり方がもっとクソなら消極的には普及しない理由にならない)
比較優位・劣位が示せないと使ってる人間が大した問題に取り組んでないんじゃねーのという話になる
0865デフォルトの名無しさん
2015/01/01(木) 14:18:00.13ID:kfvwaXN/0866デフォルトの名無しさん
2015/01/01(木) 14:32:11.80ID:9UEsBz6A任意の列をシーケンシャルな整数値型に設定する方法は無いでしょうか。
プライマリキーを明示しなければ、自動的にIdを格納する列が作られ、
それがシーケンシャルになります。
当然、sql の CREATE SEQUENCE 文も発行されます。
これをプログラムの方で制御したいです。
0867デフォルトの名無しさん
2015/01/01(木) 15:07:36.82ID:d7zle5+fコスパが良い90点とコスパが悪い100点を客観的に比較する方法を
真面目に考える人間がいない
客観性に興味がない人間か、客観的?だが不誠実な人間しかいない
0868デフォルトの名無しさん
2015/01/01(木) 15:55:20.42ID:NnfRb1B/それなら少し前に俺も同じ問題にぶち当たったけど、素直にやるのは無理という結論に至った。
自分でシーケンシャルになる事を保証する採番システムを作るか、persistent-mysql等のpersistentとDBの間に入るライブラリを改造するしかない
0869デフォルトの名無しさん
2015/01/01(木) 16:46:31.64ID:9UEsBz6Aなるほど。
今のところ、ふと疑問に思っていろいろ模作していただけなので、
とりあえず諦めることにします。
そのうちまたアップデートされるでしょう。
去年の夏に 2.0 になって大幅に改善されましたし。
ありがとうございました。
0870デフォルトの名無しさん
2015/01/01(木) 20:43:38.34ID:LWrX8qsSweb上にある入門サイトでさらっとやった後すごいH本を読めばいいのかな
0871デフォルトの名無しさん
2015/01/01(木) 23:04:10.82ID:KAFT5WeC0872デフォルトの名無しさん
2015/01/02(金) 00:12:52.66ID:E64/hkZF多分ほとんど二度手間になると思う
入門的な知識ならすごいH本一冊で十分
0873デフォルトの名無しさん
2015/01/02(金) 01:40:45.48ID:4OESuPGN0874デフォルトの名無しさん
2015/01/02(金) 07:28:07.89ID:0y0bMK9q0875デフォルトの名無しさん
2015/01/02(金) 10:17:25.79ID:P90P93Dj0876デフォルトの名無しさん
2015/01/02(金) 10:57:57.77ID:Y1NWcE5T0877デフォルトの名無しさん
2015/01/02(金) 11:49:20.34ID:qMjEYwOF実際にレンダリングされる全体の文字幅を知る方法は無いでしょうか?
(コンソールや端末エミュのフォントが等幅であるという前提です)
例
"aあ" --> 3
"nasu" --> 4
0878デフォルトの名無しさん
2015/01/02(金) 11:55:12.13ID:Gv4nBwoE0879デフォルトの名無しさん
2015/01/02(金) 13:01:18.02ID:K/U8TI6cそれを容認すると設計する人は実装の勉強もしなければならない
設計者とプログラマーの身分が同じになる
0880デフォルトの名無しさん
2015/01/02(金) 13:03:58.29ID:qMjEYwOF私もコンソールや端末エミュ、使用フォントによって変わってくると思います。
そのような環境情報を踏まえて、実際に何文字分で出力されるかを知る方法が知りたいです。
いろんな国のアルファベットが混在したUTF-8エンコード文字列を右寄せで標準させたいです。
0881デフォルトの名無しさん
2015/01/02(金) 13:04:59.99ID:qMjEYwOF標準させたい ---> 表示ささたい
0882デフォルトの名無しさん
2015/01/02(金) 13:38:31.79ID:Gv4nBwoEcursesで右寄せはダメなの?
0883デフォルトの名無しさん
2015/01/02(金) 13:54:58.10ID:WWxidtQAUnicodeなら規格がある。
ただし全角と半角の2種類だけじゃないし、ギリシャ文字のように文脈依存とされているものもある。
0884デフォルトの名無しさん
2015/01/02(金) 14:31:04.40ID:qMjEYwOFcurses(hscurses)は複数の言語に対応しており、
正しく右寄せできるてしょうか?
と言うのも、ただ右寄せ(可能なら中央寄せも)表示するだけに、
CUIライブラリの基礎から使い方を覚えるのは少々気合いとまとまった時間が必要です。
できることなら、取りかかる前に、本当にできそうか見当をつけておきたいです。
>>883
UTF-8 限定で構いません。
種類があるといことは、理論上は、文字列が与えられたら、
どの位置にあるどの文字がどの種類なのかマッピングできるということですよね。
(一回のパースで可能か知りませんが)
そのようなマッピングを行うライブラリはないものでしょうか。
もちろん、HaskellではなくC言語製の外部ライブラリで構いません。
0885デフォルトの名無しさん
2015/01/02(金) 15:36:46.14ID:WWxidtQAそんなライブラリがあるかどうかは知らないが、もし自分でやるなら文字ごとのテーブルを持って
ここに書いてあるような方法で求めることになるだろう。
http://ja.wikipedia.org/wiki/東アジアの文字幅
ただし既存のコンソールを使う場合、それがこの仕様に従っているとは限らないがな。
0886デフォルトの名無しさん
2015/01/02(金) 16:15:20.26ID:P90P93Djhttp://hackage.haskell.org/package/unicode-properties-3.2.0.0/docs/Data-Char-Properties-Misc.html
Hackage でそれっぽいの見たけど、
isIdeographic が近いけどひらがなとかは False って言われそうだし、
他にそれらしいのは無さそう。
他のライブラリはあるかもしれないが。
0887デフォルトの名無しさん
2015/01/02(金) 16:18:16.17ID:qMjEYwOFUTF-8対応を謳っているコンソールや端末エミュでも、
実際はそういう幅の情報を正しく扱っているとは限らない
ということですね。
国際化対応の右寄せ、中央寄は GUI の方がむしろ楽そうですね。
CUI で取り組むのは諦めることにします。
みなさん、ありがとうございました。
0888デフォルトの名無しさん
2015/01/02(金) 16:33:28.18ID:qMjEYwOFisIdeographic 'ぬ' = False
isIdeographic '月' = True
isIdeographic '十' = True
でした。
ただ、文字の意味による分類が分かったところで、文字幅は推測できな誘うてすね。
0889デフォルトの名無しさん
2015/01/02(金) 16:51:12.79ID:/upm+g4tH本とプログラミングhaskellで迷ってる
内容被ってて大きな差はない?
0890デフォルトの名無しさん
2015/01/02(金) 17:44:09.19ID:9VoF1EwGH本の方がえっち
プロハスは文学みたい
0891デフォルトの名無しさん
2015/01/02(金) 18:03:41.10ID:0y0bMK9qまあ慣れの問題だろうけど、プログラムコードに斜字体とか、->を→で表記してたりとか色々頭の中で変換しなきゃならない点が気になる
この本は買う前に一度中をパラパラっと立ち読みして確認するのを推奨したい
「すごいH本」もいいけど「Real World Haskell」も懇切丁寧な解説だし、検討対象に含めるべきではないでしょか
0892デフォルトの名無しさん
2015/01/02(金) 19:13:58.12ID:h0TOXPGSすごいH本はそのまま打ち込めるからわかりやすいかも
0893デフォルトの名無しさん
2015/01/02(金) 19:31:03.40ID:gE/lARkH0894デフォルトの名無しさん
2015/01/02(金) 23:42:05.61ID:9S1+snqgカレイドスター?
0895デフォルトの名無しさん
2015/01/03(土) 00:31:08.05ID:W/QuRkocPersistent のテンプレートでテーブルを作ると、命名規則に困るよね。
share [ゴニョゴニョ] [persistLowerCase |
Record
name String
とかやると、テーブル名がそのまま Record で作られる。
単数形で気持ち悪い。
かといって、
Records
name String
とすると、今度は Haskell ソース内で1行のデータを扱うのに複数形になる。
これもやっぱり気持ち悪い。
0896デフォルトの名無しさん
2015/01/03(土) 00:38:25.72ID:xmK4LLNx分かりやすいサイト
てありますか?
0897デフォルトの名無しさん
2015/01/03(土) 00:47:20.83ID:XTjqDow20898デフォルトの名無しさん
2015/01/03(土) 01:00:40.17ID:plSESCEKRecord sql=records
name String
0899デフォルトの名無しさん
2015/01/03(土) 02:01:15.24ID:6Fxgjg/00900デフォルトの名無しさん
2015/01/03(土) 03:34:04.01ID:xmK4LLNx教えていただけますか?
0901デフォルトの名無しさん
2015/01/03(土) 09:23:35.80ID:W/QuRkocすげー、できた、ありがと
ちゃんと http://www.yesodweb.com/book/persistent に書いてあった。
他の Entity sintax の記事へのリンクも。
完全に見逃してたよ。
0902デフォルトの名無しさん
2015/01/03(土) 11:32:29.88ID:W/QuRkoc合成処理を Haskell でプログラムするか、
rawQuery で SQL を直接書くかするしかないかな?
たとえば、テーブルAの列aがテーブルBのプライマリキーを外部キーとして参照してて、
基本テーブルAの一覧を表示したいんだけど、テーブルAの列aの所だけは
テーブルBのある列の値に置き換えて表示したい。
今までは両方のテーブルを selectList で取って、テーブルB は Data.Map に入れておき、
テーブルAの一覧を表示するときにその Map を参照してたんだけど、
もっといい方法があるのかなと思って。
0903デフォルトの名無しさん
2015/01/03(土) 13:07:02.82ID:W/QuRkocbelongsTo系関数でできたわ。
やっとこの関数の意味が分かった。
0904デフォルトの名無しさん
2015/01/03(土) 13:37:54.59ID:2T/NAfAresqueletoってライブラリも見てみると良いと思う
0905デフォルトの名無しさん
2015/01/03(土) 14:13:42.80ID:W/QuRkoc感動した。
正直言って belongsTo 系関数は使いにくいと思ってたところなんだ。
selectSource を起点とした conduit の中では使えんし、
selectList でとったリストの要素に施すにしてもゴチャゴチャするし。
esqueleto 凄すぎ。
こっちも、ちょっとゴチャゴチャするけど、そんなデメリットなんか吹っ飛ぶわ。
ありがと。
0906デフォルトの名無しさん
2015/01/03(土) 21:23:43.84ID:gBJh/h4vHTML 5エンジンの自作は、ライセンス的にOKですよね?
javascriptエンジンの自作はライセンス的に駄目ですよね。
0907デフォルトの名無しさん
2015/01/03(土) 21:27:35.91ID:XTjqDow20908デフォルトの名無しさん
2015/01/03(土) 21:32:36.94ID:gBJh/h4v公開したいです。
0909デフォルトの名無しさん
2015/01/03(土) 21:45:09.08ID:+skQnDmf再帰呼び出しで無限ループにしてみましたが、関数を抜ける時に、
今まで呼び出した回数分遡っていたので、
いつかスタックオーバーフローになるのではないかと思ってます。
0910デフォルトの名無しさん
2015/01/03(土) 21:49:03.01ID:W/QuRkocJavaScriptエンジンって、オープンソースでいくつかあると思うが
ああいうのとは違うの?
0911デフォルトの名無しさん
2015/01/03(土) 21:55:27.04ID:XTjqDow2GLUTは mainLoopで再帰無限ループしてるけど、今のところオーバーフローでエラーした経験はない
0912デフォルトの名無しさん
2015/01/03(土) 22:21:20.47ID:INvsCKDt末尾再帰になるように書けばいいよ
0913デフォルトの名無しさん
2015/01/03(土) 22:25:08.41ID:gBJh/h4vそういうのです。しかし、ひょっとして、メーカー非公認なのかな(モグリ)
なのかなと思いまして。
0914909
2015/01/03(土) 22:30:54.80ID:+skQnDmf末尾再帰で検索したらサンプルが見つかりました。書き方が違うのですね。
試してみます。ありがとうございました!
0915デフォルトの名無しさん
2015/01/04(日) 03:31:52.05ID:wAnmZa29プログラミング言語に著作権はない(仕様書や処理系にはある)
あったとしても言語利用者がプログラムを公開するのに許諾を得る必要があるかと言うと?
それもあったとしてもJavaScriptを作ってる人達はそんなことを要求する人達じゃない
0916デフォルトの名無しさん
2015/01/04(日) 07:01:59.39ID:A29gOAzW分かりやすいサイト
てありますか?
教えていただけますか?
0917デフォルトの名無しさん
2015/01/04(日) 08:47:57.21ID:XhHDaIDm同じ人だとしたら、もうキミはemacsの設定は諦めたらいいんじゃないかな。その時間でプログラムを書いた方がいいよ。
emacsだけがエディタじゃないしね。
0918デフォルトの名無しさん
2015/01/04(日) 09:58:38.34ID:Y5zWrD8V分
て
教
0919デフォルトの名無しさん
2015/01/04(日) 10:26:44.87ID:1ErtEbM3スクリプト言語自体の話ではないと思うよ。
JITコンパイラとかレンダリングエンジンの類の話でしょ。
こちらは特許をとることもできる。
0920デフォルトの名無しさん
2015/01/04(日) 10:38:44.02ID:JYhmrr12入力モードで Ctl-F を入力すると4つ空白を補完するショートカット的機能は追加したけど。
0921デフォルトの名無しさん
2015/01/04(日) 10:38:59.86ID:1ErtEbM3元の質問をよく読んでみると、その意図が分からなくなったんだが、
ライセンスってどういう意味?
javascriptエンジンなんてもう特許でガチガチに固められてて、
アマチュアが作れる余地ないですよね? どうなんでしょう?
という質問かと勝手に解釈してたんたが。
だから、いやまだ余地あるよ、だってオープンソースのもあるし、と。
もしかして、俺は勘違いしてた?
まぁ何にせよ、スレチも甚だしいから、この辺でレスは止めるが。
0922デフォルトの名無しさん
2015/01/04(日) 10:42:36.23ID:JYhmrr120923デフォルトの名無しさん
2015/01/04(日) 11:00:57.74ID:ApkpjYBhんなことしなくてもタブ設定でどうとでもなるぞ
0924デフォルトの名無しさん
2015/01/04(日) 12:08:11.58ID:1ErtEbM3具体的には、昇順の上位5件の行を取得したく、
テーブルを一度降順に並べて5件取り、その結果のテーブルを昇順に戻したい。
並び替えるだけなら、haskell の方でリストに sort かければいいだけだが、
それは応用が効かないその場しのぎの方法だから、できれば esqueletoでやりたい。
0925デフォルトの名無しさん
2015/01/04(日) 14:50:18.16ID:aCgp4owNon lispのpaul grahamとlet over lambdaのdoug hoyteは
vimじゃないviで書いてるらしい
0926デフォルトの名無しさん
2015/01/04(日) 15:21:12.93ID:TjT1k62E>>925 と知って真似したことがあるけど、直ぐにギブアップしました。w ACL 付随の elisp を使ってます。
>>778 これ良さそうかも。試してみる。
0927デフォルトの名無しさん
2015/01/04(日) 22:26:28.96ID:3J538RJZ0928デフォルトの名無しさん
2015/01/04(日) 22:41:05.52ID:dnput2K70929デフォルトの名無しさん
2015/01/05(月) 12:39:38.40ID:56v1L+Z7とりあえず考えたのは[0..]とzipしてfilterする方法だけど,なんか回りくどいような気もする
目的としては,テキストファイルを一行おきに出力したいんだけど
0930デフォルトの名無しさん
2015/01/05(月) 12:58:02.09ID:wTsbYt9I何をしたくてどううまく行ってないのかを整理してここでなく emacs 界隈に聞きに行くのがお勧めだ
2ch でも stackoverflow でも lingr でもなんでもいいとおもうから
で、「究極の設定にならない」っていううまく行かなさならそれは最初からそれを目指すべきじゃない
使いながら不満を解消していくのが良いよ
0931デフォルトの名無しさん
2015/01/05(月) 13:29:35.01ID:r5Vta5Zshttps://gist.github.com/yantonov/10083524
0932デフォルトの名無しさん
2015/01/05(月) 13:31:02.02ID:PY+NF+zg普通は副作用とヌルがあるから IO (Maybe String)
でも普通の常識を疑うためにHaskellやってるんだろ?
0933デフォルトの名無しさん
2015/01/05(月) 13:38:45.45ID:rVk7ZNEdその方法が一番いい。
1. 素直な方法なので実装しやすくバグが入りにくい。
2. 空リストを考慮しなくてもよく場合分けが必要ない。
3. プログラムソースが見やすく何を求めているのかがよく分かる。
4. 奇数番目だけでなく、x 行おきの場合にも対応でき応用が利く。
0934デフォルトの名無しさん
2015/01/05(月) 13:54:22.37ID:UJnBa08Nリスト走査を1度ですませたいなら融合変換すればよいのでは.
0935デフォルトの名無しさん
2015/01/05(月) 13:57:36.10ID:56v1L+Z7いやあ,ちょっとした使い捨て的な処理なので,そんなに真面目に例外処理を考えてなかったです
>>933
ひどく効率が悪いとか,そういうことはないんですね
じゃあ初心者としてはわかりやすさ優先でいっときます
なんかこう
s <- getContents
putStr $ unlines $ map fst $ filter (odd . snd) $ zip (lines s) [0..]
みたいな感じで
0936デフォルトの名無しさん
2015/01/05(月) 14:03:41.15ID:56v1L+Z7融合変換って初めて聞きました
ちょっと勉強してみます
0937デフォルトの名無しさん
2015/01/05(月) 14:25:19.60ID:rVk7ZNEd>>929 の方法でも走査は一度きりなんだが・・・
0938デフォルトの名無しさん
2015/01/05(月) 15:00:51.08ID:1xEaC2gz一度も具体的な話が出てこないから、Botだと思いますよ。
0939デフォルトの名無しさん
2015/01/05(月) 15:18:52.82ID:r5Vta5Zs0940デフォルトの名無しさん
2015/01/05(月) 15:18:54.70ID:v9pP0JGy0941デフォルトの名無しさん
2015/01/05(月) 15:51:07.05ID:OMSF4NShこれは同感
エディタとかで最初から最高の環境目指すと考えすぎで止まってしまう
0942デフォルトの名無しさん
2015/01/05(月) 15:59:36.20ID:UJnBa08Nzipで一回,filterで一回,計2回ではないでしょうか?
0943デフォルトの名無しさん
2015/01/05(月) 16:26:46.03ID:rVk7ZNEdあぁ走査って、リストの要素数 n に対して、
zip の計算量 n、filter の計算量 n とすると、
全体で 2n の計算量になる、と言う意味なのか。
勘違いしてた。
でもそれだと今度は、融合変換しても走査数は変わらないのでは?
融合変換って、中間データ構造(今の問題ならタプル)を消すことでしょ。
0944デフォルトの名無しさん
2015/01/05(月) 16:29:22.31ID:UJnBa08N中間リストがなくなればその分の走査が減るとおもいます.
0945デフォルトの名無しさん
2015/01/05(月) 17:05:16.52ID:4q+Qt2eNアドバイスありがとうございました
0946デフォルトの名無しさん
2015/01/05(月) 17:43:05.75ID:rVk7ZNEd中間リストって、filter が作る中間リスト?
zip が作る [(String, Int)] に対して「ひとつおきに取り出す処理」は、
あなたの言う走査には含まれない?
融合変換で中間リストが消えて走査数が減ると言うのなら、元々の操作数は、
1. zip が引数のリストを分解する
2. zip がリストを作る
3. filter がリストを分解する
4. filter がリストを作る
の 4 つで、そのうち 2 と 3 が消えて 2つになるのでは?
あるいは、zip は「2つのリスト」に対して処理するから、
元々の走査数は zip 2、filter 1 で計 3 つになるとか?
走査数の意味がイマイチ分からなくなった。
何を以て走査数と言ってる?
0947デフォルトの名無しさん
2015/01/05(月) 18:31:50.63ID:UJnBa08NoddElems :: [a] -> [a]
oddElems = filter' snd (odd . fst) . zip [0..]
filter' _ _ [] = []
filter' f p (x:xs) = if p x then f x : filter' f p xs
このとき,oddElem の入力となるリストを es.その長さを n = length es とします.
zip [0..] は関数で,この関数が結果のリスト全体を作成するには es の全要素を辿ります.
zip [0..] es が生成するリストを es' とすると,そのは長さは es の長さと同じ n です.
filter' snd (odd . fst) es' は結果のリスト全体を生成するのに es の全要素を辿ります.
融合変換して es' という中間リストがなくなれば,辿るべきリストが1つ減っていることが期待できますよね.
0948デフォルトの名無しさん
2015/01/05(月) 18:48:33.68ID:UJnBa08Nfilter' snd (odd . fst) es' は結果のリスト全体を生成するのに es' の全要素を辿ります.
0949デフォルトの名無しさん
2015/01/05(月) 18:49:41.11ID:UJnBa08N0950デフォルトの名無しさん
2015/01/05(月) 19:20:48.83ID:rVk7ZNEdそもそも遅延評価だから、zip に 1回、filter に 1 回というたどり方はしなくて、
走査の定義をハッキリさせておかないと非常にややこしくなるんだが・・・
リストに対する融合で消えるのはあくまで、
「リストの作成」とその直後の「リストの分解」という一対の処理だけだよ。
zip が行う「タプルを作る処理」や filter が行う「奇数番目かどうか判定する処理」は消えない。
この 2 つの処理が全体で何回行われるかというと、融合されようが、されまいが、
きっちり最初に zip に渡されたリストの要素数分だ。
減りも増えもしない。
(正確には、結果のリストをどう評価するかによるが)
融合によってリストの作成分解処理が一対消えるから、
この処理のことを走査と言うのなら確かに走査数は減ることになる。
タプルの作成や奇数判定も走査の中に含めるのなら、走査数は変わらんよ。
で、俺は走査と言えば、たとえば GCC は C 言語の構文解析を一度スキャン(走査)で行える、
とかいう時のスキャンのイメージがあるから、それなら zip と filter の組み合わせは
リストに対して一度のスキャンで行える、と言ったんだ。
遅延評価だから二度もスキャンする必要はないからね。
0951デフォルトの名無しさん
2015/01/05(月) 19:47:30.17ID:UJnBa08N中間リストの生成を除去するといえばよかったですね.
0952デフォルトの名無しさん
2015/01/05(月) 20:19:28.54ID:UJnBa08NoddElems = filter' snd (odd . fst) . zip [0..]
filter' snd (odd . fst) . zip [0..]
⇔ { zipp = uncurry zip とする }
filter' snd (odd . fst) . zipp . (,) [0..]
⇔ { addifodd (i,x) xs = if odd i then x:xs eles xs とする }
foldr addifodd [] . zipp . (,) [0..]
⇔ { phipair (xxs,yys) = if null xxs || null yys then Nothing else Just ((head xxs,head yys),(tail xxs, tail yys)) とする }
foldr addifodd [] . unfoldr phipair . (,) [0..]
⇔ { hylo f e phi x = case phi x of {Nothing -> e; Just (y,z) -> f y (hylo f e phi z)} とする }
hylo addifodd [] phipair . (,) [0..]
まちがえてなければ,これで融合変換できたことになると思います.
oddelems = hylo addifodd [] phipair . (,) [0..]
0953デフォルトの名無しさん
2015/01/05(月) 21:13:52.44ID:KI3U0yKn0954デフォルトの名無しさん
2015/01/05(月) 21:34:27.09ID:rVk7ZNEd内容は調べていないから融合できているかは知らんが、
何のために融合しようとしているの?
本末転倒になってはいないか?
適当なテストプログラムを書いてコンパイルし、
RTS オプション の -s を付けて実行して処理時間を測ってみ。
素直に filter と zip を使った方が速いから。
と言っても、かなり大きなリストで試さないと差は見えてこないから、
>>929 の使い方なら実用上どちらを使っても変わらんが。
0955デフォルトの名無しさん
2015/01/05(月) 21:49:58.07ID:rVk7ZNEdちなみに、それよりも >>947 の方法の方が速い。
また、ヒープ領域の使用量も速さと同じ結果。
素直に実装した方が少ない使用量で済む。
0956デフォルトの名無しさん
2015/01/05(月) 22:23:19.50ID:JId0mbKZ0957デフォルトの名無しさん
2015/01/05(月) 23:47:34.38ID:mLtk6pyNマジすか?
0958デフォルトの名無しさん
2015/01/06(火) 00:02:57.77ID:WjhpL2zQそもそも,計算量オーダーが同じならコードがわかりにくくなった分,劣化してる可能性大ですねぇ.
0959デフォルトの名無しさん
2015/01/06(火) 00:35:30.77ID:WjhpL2zQの処理と unlines . oddelems . lines の部分を融合変換したもの
interact (show . length . hylo addifodd "" numlines)
の処理とを比較してみました.63469440行ある単語データファイル(600MB)を食わせてみたところ
手元の計算機でかかった時間は以下の結果
前者はTotal time 33.59s ( 34.20s elapsed) %GC time 14.6% (24.5% elapsed)
後者はTotal time 27.87s ( 28.38s elapsed) %GC time 7.5% (19.7% elapsed)
IO部分の時間を図ってないのでなんともいえないですが,この場合は差がでるようにみえますね.
コンパイルオプション-O2
0960デフォルトの名無しさん
2015/01/06(火) 00:37:44.25ID:WjhpL2zQ0961デフォルトの名無しさん
2015/01/06(火) 00:45:53.98ID:WjhpL2zQ2つめの処理は
interact (show . length . hylo addifodd "" numlines . (,) [0..])
のまちがい.
numlines (_,[]) = Nothing
numlines (i:is,xs) = case break ('\n'==) xs of {
(ys,_:zs) -> Just ((i,ys),(is,zs));
(ys,[]) -> Just ((i,ys),(is,[]))}
0962デフォルトの名無しさん
2015/01/06(火) 07:12:15.34ID:1NZMwfJDそれはなによりです
[0..]とzipしてfilterする方法では回りくどくないかなと心配してた>>929もさぞ喜んでいることでしょう
0963デフォルトの名無しさん
2015/01/06(火) 09:21:05.66ID:Ap0lJ8Jthaskellでタダシの心と身体を守るんだぞ
0964デフォルトの名無しさん
2015/01/06(火) 09:58:56.58ID:iarVVv2tトイコードで書けるような小さいものを相手にしてる場合はいいけど,
データ量が多くなるとすぐにダメになって,参照型とかモナドのオンパレードにしないといけないのかと思ってた.
0965デフォルトの名無しさん
2015/01/06(火) 10:00:05.28ID:iarVVv2t0966デフォルトの名無しさん
2015/01/06(火) 10:29:48.03ID:+nyULczy0967デフォルトの名無しさん
2015/01/06(火) 12:42:53.16ID:4YMDVwAoRulesプラグマで融合変換して中間リストを除去してるから
自分で再帰を書いたらその部分がボトルネックになる
0968デフォルトの名無しさん
2015/01/06(火) 14:31:17.60ID:gN1CYWxIまあ融合変換は現実的には自分の手でやるもんじゃないよね。
ところで>>959の差ってどこで生まれてるんだろ?
zip して filter は素のリストだと融合変換してくれないの?
unlines のところの中間リストの違い?
http://hackage.haskell.org/package/stream-fusion-0.1.1/docs/Data-List-Stream.html
とかを使うと変わるかな?
0969デフォルトの名無しさん
2015/01/06(火) 17:57:28.03ID:1NZMwfJDfilter が優良生産者として実装されているから、
同じく優良生産者として機能しているときの zip に続けても融合されない、
ということでは?
http://www.kotha.net/ghcguide_ja/latest/rewrite-rules.html#idm140193846702112
0970デフォルトの名無しさん
2015/01/06(火) 19:30:02.76ID:gN1CYWxIああ、他の Data.List 関数と一緒に使うならそうか。
>>969
ソース読めって書いてあるとおり読んでみると、
build を使ってれば優良生産者で foldr を使っていると優良消費者で、
両者になるのは同時に可能ってことだと思うんだけど。
0971デフォルトの名無しさん
2015/01/06(火) 20:06:42.53ID:NJ/kfRzjテストデータの生成に使ったコード: http://codepad.org/2Qljhutm
(1) >>959のコード1つ目 : http://codepad.org/Guy2CswB
(2) >>959のコード2つ目 : http://codepad.org/S3DdUiGL
(3) 素直にData.Listの関数だけで書く : http://codepad.org/7SZtvyJ9
実行結果
(1) Total time 25.02s (25.65s elapsed) %GC time 19.9% (19.8% elapsed)
(2) Total time 23.05s (23.62s elapsed) %GC time 22.0% (21.8% elapsed)
(3) Total time 24.45s (25.06s elapsed) %GC time 20.3% (20.4% elapsed)
>>967で書いた通り、自分で書いた再帰をData.Listの関数と一緒に使うと遅くなる
ほとんど差は無いので手で融合変換する手間を考えたら素直にData.Listの関数だけで書いた方がマシ
以下はおまけ
(4) Text + ByteString : http://codepad.org/WcNZH4zD
(5) Text + ByteString + Vector : http://codepad.org/5lAwD8PI
実行結果
(4) Total time 13.61s (14.18s elapsed) %GC time 2.9% (3.4% elapsed)
(5) Total time 2.21s ( 2.68s elapsed) %GC time 2.2% (2.2% elapsed)
0972デフォルトの名無しさん
2015/01/06(火) 20:43:09.13ID:gN1CYWxI融合変換はちゃんとされてると。
でも差は意外と無かった?
0973デフォルトの名無しさん
2015/01/06(火) 21:27:05.66ID:1NZMwfJDごめん、自分でリンク貼っておいて見落としてた。
filterは優良生産者であると同時に優良消費者でもあった。
0974デフォルトの名無しさん
2015/01/06(火) 21:35:49.65ID:1NZMwfJD融合変換と言っても、トイプログラムや日常のちょとしたスクリプト程度ではあまり意味ないかもね。
Repaみたいな、ああいったもので本当に活きてくる、というかなくてはならない存在だと思う。
0975デフォルトの名無しさん
2015/01/06(火) 21:52:22.72ID:0YpM91P00976デフォルトの名無しさん
2015/01/06(火) 22:06:08.57ID:WLnq9lHu0977デフォルトの名無しさん
2015/01/06(火) 22:08:58.99ID:1NZMwfJD全く役にはたたんが、こういう発想ステキ
0978デフォルトの名無しさん
2015/01/07(水) 07:46:09.67ID:gDzpAQ9k"bfget"の型がどうなっているのかわからなくなってしまいました。
お知恵をお借りしたく... (ghc version 7.6.3, lens-4.3.3)
--------------------
{-# LANGUAGE TemplateHaskell #-}
module A where
import Control.Lens (ALens',makeLenses,cloneLens,lens,to,(.~),(%~),(&),(^.))
import Data.Word (Word32,Word64)
import Data.Bits (Bits,FiniteBits,complement,shiftL,shiftR,rotateL,(.|.),(.&.))
import Test.HUnit (Test,test,runTestTT,(~=?))
data Regs = Regs { _r0 :: Word32, _r1 :: Word64 } deriving (Show, Eq)
$(makeLenses ''Regs)
(.#.) :: (Functor f, FiniteBits a, Bounded a, Integral a) =>
ALens' Regs a -> (Int, Int) -> ((a -> f a) -> Regs -> f Regs)
(.#.) r (lsb, nbits) = let
-- ??? bfget :: Integral a => Regs -> a
bfget rs = rs ^. (cloneLens r) . to (flip shiftR lsb . (.&. complement mask))
bfset :: Integral a => Regs -> a -> Regs
bfset rs x = rs & (cloneLens r) %~ \ w -> (mask .&. w) .|. (complement mask .&. shiftL (fromIntegral x) lsb)
mask :: (Bits a, Bounded a) => a
mask = flip rotateL lsb $ shiftL maxBound nbits
in lens bfget bfset
0979デフォルトの名無しさん
2015/01/07(水) 07:46:43.21ID:gDzpAQ9kmain = runTestTT $ test [
(rs & r0 .#. (4,16) .~ 0xcafe) ^. r0 .#. (4,16) ~=? 0xcafe
, (rs & r0 .#. (8,24) .~ (rs ^. r0 .#. (8,24))) ~=? rs
, ((rs & r0 .#. (0,32) .~ 0xabadcafe) & r0 .#. (0,32) .~ 0xdeadbeaf) ~=? rs {_r0=0xdeadbeaf}
, (rs & r1 .#. (4,16) .~ 0xcafe) ^. r1 .#. (4,16) ~=? 0xcafe
, (rs & r1 .#. (8,24) .~ (rs ^. r1 .#. (8,24))) ~=? rs
, ((rs & r1 .#. (0,64) .~ 0xabadcafe) & r1 .#. (0,64) .~ 0xdeadbeaf) ~=? rs {_r1=0xdeadbeaf}
]
where rs = Regs {_r0 = 0x01234567,_r1=0x0123456789abcdef}
0980デフォルトの名無しさん
2015/01/07(水) 10:16:03.90ID:gDzpAQ9khttp://lpaste.net/117957
0981デフォルトの名無しさん
2015/01/07(水) 18:26:38.49ID:ia1dpi4pperlのラクダ、pythonの蛇のようにマスコット?
レス数が950を超えています。1000を超えると書き込みができなくなります。