[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/18 14:14 / Filesize : 205 KB / Number-of Response : 798
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2012/03/16(金) 21:54:23.92 ]
haskell.org
ttp://www.haskell.org/

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

過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/

435 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 11:53:23.62 ]
ワーニングワーニングワーニングワーニング

436 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 20:58:20.92 ]
>>435
ボスキャラでも登場するのか

437 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:11:31.73 ]
ウォーニングって言いたいんだろ

438 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:18:48.90 ]
ワーニングのバッグスバニー

439 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:20:36.83 ]
>>435,436
へいおまち
www.youtube.com/watch?v=lySjinT6f0A#t=1m55s

440 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:22:04.36 ]
某書籍に「だったら、おまえはStar Warsをスターワーズと読むのか」とあって、
そりゃもっともだと思うと同時に、そういう話じゃねぇだろと思ったな。

441 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:33:48.96 ]
『宇宙戦艦ヤマト』が、「ワープ」を「ウォープ」に修正する最後の機会だったんじゃないか、
とか今では言われているが

442 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 21:42:05.41 ]
「ワープ」は1億人が意味を共有できる立派な日本語
修正の必要はない

443 名前:ぬるぽ mailto:sage [2012/05/28(月) 22:03:46.93 ]
バレーボールもボレーボールらしいな
nativeの発音聞いたことないけど




444 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:16:32.09 ]
「グッドマーニング云々」とか言ってたヘミ猫を思い出す。

445 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:28:44.29 ]
ラウターの調子が悪い

446 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:44:59.51 ]
むかし、猫でもわかるプログラミングで、
エディットコントロールをエジットコントロールと言っていて、
もの凄く違和感を覚えた記憶がある。

でもよく考えてみれば、エジソンと同じなんだよな。

447 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 22:46:22.72 ]
>>443
アメリカ人は普通にバーリボーだったけどなぁ。

448 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:34:37.10 ]
♪こわれかけのレディオ

449 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:38:13.93 ]
gtk2hs や wx などの GUI ライブラリのラッパーを作りたい。
下記のことがラッパーでは実現不可能なら一から作ることになる。

例えば、ボタンを押すとラベルの文字が変わる処理を記述したい場合、
素の gtk2hs や wx なら、ボタンのイベントハンドラに登録した関数内で、
ラベルのプロパティに対して set 関数を使って値を書き換える感じだと思う。

これはあまりに手続き的でムカムカしてくる。

こうではなく、ボタンのイベントに反応するプロパティ型を作り、
それをラベルのプロパティに最初に設定した後は変更(再設定)しない。
イベントが起きなくても、起きても、自動的に文字が設定される。

プログラマはイベント時に何が起きるかを時系列にそって設定するのではなく、
プロパティが何に対してどう反応し、どう変化するかを定義する。

これができれば、いくぶん宣言的で心地よい。

私みたいな者が考える事なんて既にいろんな人が考えていると思うんだが、
このような仕組みを作る上で、参考になりそうな資料はないだろうか。

450 名前:デフォルトの名無しさん mailto:sage [2012/05/28(月) 23:48:03.50 ]
wxPython と decorator

451 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 08:41:21.13 ]
まさにそれがFRP


452 名前:432 mailto:sage [2012/05/29(火) 09:40:44.70 ]
chmod 700 .ghci
chmod 700 Haskell/
で解決した。
Haskell/もパーミッションいじらないといけなかった。
なんで設定ファイルがない時は普通に動くのに、
設定ファイルを置くと警告が出るのか意味がわからない。


453 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 09:44:25.92 ]
俺は「***** is writable by someone else, IGNORING!」という警告を読むことが
できない文盲です、って大声で自分で言いふらして嬉しいのか?



454 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:09:31.31 ]
>>453
初心者でごめんね。

455 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:15:28.14 ]
いや初心者とかじゃなくて、英語読めればその警告が何故出たのかわかるだろってことだろ

456 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 10:48:28.72 ]
日本語でお説教する事に何のメリットがあるか、わかるだろ

457 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 11:32:31.62 ]
なでしこで記述する事に何のメリットがあるか、わかるだろ

458 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:02:42.50 ]
英語の初心者ということだろう。

459 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:48:14.86 ]
というか Unix は一つのマシンを複数のユーザーが使うことが前提だから、
初期化スクリプトみたいなファイルを誰でも編集可能だと、たとえば自分の
ファイルを全部消す、みたいな悪意ある記述を追加されるかもしれない、

という前提を知らないと、英語が読めてもわからないかもしれない。

ていうか >>434 を華麗にスルーしちゃダメだろ。

460 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 12:52:44.84 ]
>>450
まだ調べ始めたばかりだけど、求めているモノとは何となく違う感じがする。
decorator の機能を使ってイベント処理している例をいくつか見てみたけど、
結局イベントハンドラの中で描画関数を呼んだり、計算したりしている。

つまり、>>449 の「素の gtk2hs や wx なら」の部分と
本質的に何も変わらないのではないだろうか。

もちろん、自分でももう少し詳しく調べてはみるが。

>>451
言葉が足りず申し訳ない。
これが FRP の一つの形態になっている事は分ってた。
(リアクティブシステムの構築を関数型っぽく記述する事)

Haskell で使えるFRPライブラリにも色々あって、
たとえば Yampa の仕組みや実装をいくら調べたところで
>>499 のような事の実現に直接役立つわけではない(実際色々調べた)。

>>499 に繋がるような何かキーワードはないだろうか。

461 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:16:16.96 ]
バグ?
Prelude> succ 1.000022342
2.0000223420000003


462 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:27:06.59 ]
xamlのデータ・バインディングとか?

463 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 15:36:37.09 ]
XAMLファミリは、Bindingに加えてViewModelのプロパティ間で
リアクティブプログラミングする仕組みを導入すると
正に>>449のような書き方になるね。

しかし、あれをHaskellでどうやったら再現できるのかはさっぱりわからん。

やってる事は、依存関係のあるキャッシュの管理と似てるので
キャッシュを持つサーバの仕組みなんかが参考になりそうだが・・・



464 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 16:02:10.76 ]
>>460
色々調べてたのなら既知かもしれんが
プロパティを設定するというのはwxパッケージの提供するインタフェースに似てるな
このプロパティは実質IO aとa -> IO ()のペアにすぎんのだけど、それなりに>>449で述べてるようなのに近いように思う
これとFRPの組み合わせはreactive-banana-wxパッケージでプロパティやイベントをEventやBehaviorとして
リアクティブシステム内で扱えるような補助関数を提供してる
参考になる記事としてはreactive-bananaの作者のblogとか


465 名前:449, 460 mailto:sage [2012/05/29(火) 19:46:57.92 ]
みんな、ありがとう。
知ってるものも、知らなかったものも、色々キーワードが出てきた。
それぞれの関連も含めて調べてみる。

本棚の肥やしになってる "Pro WPF in C# 2008" もやっと役立つ日が来たかも。

アドバイスを受けて、Heinrich Apfelmus のブログをちょっと見てみたけど、かなり面白い。
まとまった時間が取れる休日にでも本格的に読んでみるよ。
(Conal Elliott のブログより読みやすい英語だ)

wx のプロパティは gtk2hs のそれや OpenGL の StateVar と似たようなモノで、
やはり「値」を設定したり取得したりするものという以上のモノではないのでは。
その値はあくまでそのプロパティの意味する値そのもので、
例えば text プロパティなら String 型しか受け付けない。
そこに「ユーザーが何かした時にはある文字になる」という IO String の値を
設定することはできない。

一応繰り返しておくと、次のような考え方が wx や gtk2hs などのものと思う。

ボタンが押されたイベントでは何を処理するのか?
 ・初めにラベルの文字を変え
 ・次にテキストボックスの背景色を変え
 ・最後にボタンを不活性にする

このような手続き的なものを、次のように宣言的にしたい。

ラベルの text プロパティとは何か?
 ・ボタンプッシュイベントで文字を変えるものだ
テキストボックスの bgclolor プロパティとは何か?
 ・ボタンプッシュイベントで色を変えるものだ
ボタンの enable プロパティとは何か?
 ・ボタンプッシュイベントで False になるものだ

466 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 22:36:50.20 ]
>>465
w :: Frame
b :: Button
t :: TextBox
l :: Label
pushEvent :: Button -> Event ()
text :: Prop w String
bgcolor :: Prop w Color
enable :: Prop w Bool

w <- frame [text := const "hoge", show := const () <$> createEvent w]
t <- textbox [bgcolor := changeColor <$> pushEvent b]
l <- label w [text := changeString <$> pushEvent b]
b <- button w [enable := const False <$> pushEvent b]

こういうのが思い浮かんだ

wxのプロパティやイベントの型をEventなりBahaviorの形式にしただけだが
>>465の最後の記述のような捉え方は自然に出来る書き方にはなってると思う
今のreactive-bananaでDoRecが使えるなら
頑張ってwx-coreパッケージ直接叩いてこういうインターフェースの高水準ライブラリ書くのは可能な筈


467 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 22:42:05.22 ]
部品単位でイベントハンドラを書きたいってこと?

468 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 23:08:01.19 ]
*Main> [1,3..6]
[1,3,5]
*Main> ['1','3'..'6']
"135"
*Main> [1.0,3.0..6.0]
[1.0,3.0,5.0,7.0]

なんでFloatのリストでやったときだけこうなるの?

469 名前:449, 460 mailto:sage [2012/05/29(火) 23:21:17.86 ]
>>466
text :: Prop w String

これらは Prop ではなく Attr なのでは?

それはともかく、具体的なアイデアありがとう。
イメージとしてはかなり近いと思う。
参考にして考えてみる。

470 名前:449, 460 mailto:sage [2012/05/29(火) 23:22:12.75 ]
>>467
それも一部に含まれているが、ちょっと違う。
手続き型と宣言型の違いが明確に現れるようにイベントハンドラを例にしたが、
あるプロパティの値が依存する先(ソース)はイベントハンドラだけではなく、
別のウィジェットのプロパティという可能性もある。

例えば、何か絵をプレビューするウィジェットの enable プロパティが、
複数のチェックボックスのプロパティに依存していたり。

この場合、手続き型なら、両方のチェックボックスの check プロパティを調べ、
両方 True ならプレビューウィジェットの enable プロパティを True にする、
という処理を両方のチェックボックスのイベントハンドラに記述する。
(当然実際は、同じひとつのイベントハンドラを両方に設定するなど省力化するが)

これを、例えば次のように記述できたら宣言的で分りやすいと思う。
(擬似的に wx っぽく書くと)

p <- image w [ enable := checked c1 <&> checked c2 ]

本質的には、イベントの発生やプロパティの変化を「伝搬」させたい。
それができれば部品単位でイベントハンドラを書くこともできる、という事。

471 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 23:42:10.94 ]
手続き型ならobserverパターンでやるんじゃないかな。

きっと難しくなる要因は純粋言語だというところにありそう。

472 名前:449, 460 mailto:sage [2012/05/29(火) 23:52:06.14 ]
>>471
すまん例が悪かったか。

べつに手続きっぽく書くのが難しい訳ではない。
observerパターンの様に書くこともできる。

私が単に関数型言語で手続きっぽく書くのをキモイと感じるから、
なんとか宣言的に書けないかと、そっちの方で苦心してるだけだ。

私がもし純粋でない OCaml にはまっていても、
きっと同じように宣言的に書けないか考えていたと思う。

473 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 00:10:30.62 ]
>>446
editはエディットです



474 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 04:38:33.68 ]
Stateモナドで24時間経っても答え出ない処理をMutable Vectorに替えたら20分で答え出したワロタwww

475 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 05:55:52.99 ]
(24 * 60) / 20 = 72
72倍の高速化ならよく聞く話。

476 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 05:57:49.10 ]
さっそくGTAでDPの練習 #Haskell - Qiita
qiita.com/items/a372458d171e373285b1
これとか当社比400倍とか

477 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 07:00:18.28 ]
(/ 20 (* 24 60))

478 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 13:39:02.03 ]
(/ (* 24 60) 20)でしょ

479 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 14:15:16.61 ]
くそう、みんな雲の上に居るようだ
DPが動的計画法のことだと知るまで5分も費やしてしまった
GTAに至ってはグランドセフトオート (ry

480 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 14:28:51.43 ]
すごいHaskell
たのしく学ぼう! ||
     人 _  |-|
     旦/○\日
     目 ァイリ |-|
  / ̄ ̄ ̄ ̄ ̄\  
  □-□ U      |
  | .|ι        |
旦ノノ||  ̄ ̄ ||



AAなんてあったのね

481 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 15:27:23.39 ]
>>480
さっき本屋で見てきたんだけど、B5大型本を想像していたので文庫本+αのサイズが意外だった。電車の中でも読めるね。
中身も読みやすく編集されているようで、これからHaskellやって見ようという人にはお勧めだと思う。

ステマでした

482 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 16:13:11.04 ]
これなら手続き脳の私でもらくらく最後まで読んでしまえそう!
でも...お高いんでしょう?

483 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 16:19:47.25 ]
Amazonで出店者が定価3、4割り増しにしてるけど、情弱は買うんだろうかあれ。



484 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 17:21:21.37 ]
少し高くしている奴は海外へ送ってもらえるってことでしょ?

あと今すごいH本第一章読み終わったけど
結構誤植があった。

485 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 17:51:41.91 ]
やっぱりか

486 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 18:14:21.05 ]
重力は存在しない といってる学者がいるみたいだな

やめとけよ
そこの場所のリファクタリング始めたら「引力」だって存在しねーし
熱エネルギーも存在しねーから

その部分は俺が研究してきた事と酷似する
俺はアルゴリズムの中から、変数を抹消し、
ソースコードは再帰で圧縮
そして残ったものは、何もなかった

1が残ると思ってたが、予想を超えて、「それ」は0になった

重力がいらないとかいっちゃうと、0に近づくんだよ
わかるか

いらなくないんだよ

元々、何もないところに「重力」ってものを「わざわざ」冗長させて定義したんだよ

何もわかってねーな科学者
リファクタリングし続けた後に、宇宙に存在する最後の1とは、時空のねじれによって出来る固体のみで
その時空のねじれを解けば1であった存在は0になり、文字通りなにもなくなる 世界の終わり

487 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 18:16:30.43 ]
コテが抜けてるよ

488 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 18:35:37.43 ]
躁病患った友人が似たような事言ってた

489 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 19:26:23.54 ]
ニュートラリーノがダークマターの正体なのか?

490 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:12:32.98 ]
beautiful codeであったな。
コードがなくなる話。

491 名前:449, 460 mailto:sage [2012/05/30(水) 20:38:17.19 ]
>>468
Float と Double の Enum インスタンスにおいて
enumFromThenTo 関数は次のように定義されている。

enumFromThenTo = numericEnumFromThenTo

numericEnumFromThenTo n n' m = takeWhile p (numericEnumFromThen n n')
  where
    p | n' >= n = (<= m + (n'-n)/2)   -- <-- 注目
      | otherwise = (>= m + (n'-n)/2)

numericEnumFromThen n m = iterate (+(m-n)) n

例えば [1.0,3.0..6.0] とやったら、6.0 以下の間は差分ずつ増やすのではなく、
「6.0 + 差分の半分」以下の間は差分ずつ増やす計算になってる。

つまり、7.0 以下の間は差分ずつ増やすので、最後は 6.0 ではなく 7.0 で終わる。

こういう仕様になっている理由は、本当のところは正直よく分らない。
一応理由として思いつくのは、浮動小数点による誤差の蓄積の問題を回避するため
ではないかという事。

492 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 20:57:45.88 ]
>>490
最後は唯の数式になるって話でしたよね
バグ0で何よりも高速に動作し使用メモリも0

493 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 21:28:17.18 ]
欧州ではコンピューターにプログラミングさせるのが今研究されてるとか
そんな話題があったな。



494 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 01:03:20.68 ]
(==) 1 1
1 == 1
上と下が同じなのは面白いなぁ。


495 名前:337 mailto:sage [2012/05/31(木) 02:37:13.13 ]
(1 ==) 1
(== 1) 1

全部同じ (^^)

496 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 07:43:22.77 ]
すごいH、全部読んだ。
誤植が多少あったけど、日本語訳に違和感はなかった。

PerlとJavaScriptで自サイトを作ってる趣味プログラマーだけど、プログラミングの幅を広げようと
思い、プログラミングHaskell -> Real World Haskellの半分までを読んでから、すごいHを読んだ。

後半は全くの初心者には、やっぱりちょっと難しいかなと思った。
これから、Real World Haskellの残り半分を読みます。

497 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 08:34:14.43 ]
違和感ないけど、
直訳のままじゃねーの?って所が所々あったよ。

498 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 09:23:22.24 ]
蛇足な上に正しいとは言い難い訳注が多くて萎えた

499 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 11:03:03.47 ]
誤訳誤植は具体的に書いてくれるとたすかるにゃん

500 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 11:11:02.75 ]
...とか言って具体的に自分も書かないとアレなので一つ見つけたやつ:


p.385 誤:VirePatterns  正:ViewPatterns

501 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:12:22.41 ]
p19の下側
両方を含むリストは作れません。

ここはタプルだろ?

502 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:13:09.98 ]
p20
最下段
ジッパーみたいに一つのリストにします。

ここはタプルだろ?

503 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:15:22.87 ]
p22
bが斜辺より長いような不要なトリプルを調べないような

ここはaだろ?



504 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:21:40.86 ]
ここに書いてもフィードバックされる保証はないけどな

505 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:26:11.65 ]
>>501
"…ペアとトリプル両方を含むリストは作れません。このため、
ベクトルを表すにはタプルを使ったほうがはるかに有利です。"

何もおかしいことは言ってないと思うよ。

p.19上の方では図形を表すのに頂点のリストとして図形を表す試みとして
[[Int]] なんかを考えようとしてる。つまりベクトルをリストとして与えようとしてる。
この方式について検討するとベクトルの表現に使われてるリストは長さ
固定ではないので2次元と3次元のベクトル(頂点データ)が混在したリストが
出来てしまうという難点があることが指摘されている。

一方、頂点の表現としてリストの代わりにタプルを使うならば標準のリストは
homogeneousでなければならないという縛りのおかげで2次元と3次元の
頂点データが混在したリストは作れない事になり、コンパイラがはねてくれる。
[(Int,Int)] か [(Int,Int,Int)]のどっちかになるはずだからな。

そんなわけで
"…ペアとトリプル両方を含むリストは作れません。このため、
ベクトルを表すにはタプルを使ったほうがはるかに有利です。"
という事になる。

506 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:30:42.06 ]
>>502
タプルのリストにしてくれるという意味で「一つのリストにしてくれます」と言ってると思うんだけど。

んーあれだな、本気でわからないのか些細な説明省略を鬼首で騒いでるのかわからん。
前者なら真面目に相手するけど後者ならあんま相手にしたくないなぁ。

後者ならSICPの日本語訳がクソすぎる和田は日本語がわかってない
とか該当スレで騒いでるほうが賛同者多くて楽しいと思うよ。

507 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:36:10.34 ]
> 後者ならSICPの日本語訳がクソすぎる和田は日本語がわかってない
> とか該当スレで騒いでるほうが賛同者多くて楽しいと思うよ。
YA・ME・TE
SICPスレが機能停止しっぱなしでげんなりしてるんだから

508 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:46:06.63 ]
諸君、ホットなライブラリは何かね?

509 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 12:55:15.84 ]
> 正しいとは言い難い訳注
むしろこっちの詳細はよ

510 名前:502 mailto:sage [2012/05/31(木) 12:59:07.14 ]
>>506
p21の
zipの使用例で作成されているのはタプルだから
一つのタプルにしますという意味のほうが
日本語として自然なのではないですか?

:t zip
zip :: [a] -> [b] -> [(a, b)]
と:tで見ると2つのリストを受け取って、返り値がタプルになってます。

表現方法で、
(a, b)はタプルで
[(a, b)]もタプルですよね。



511 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:01:16.68 ]
>>510
いやいや、(a, b)はタプルで[(a, b)]は 「タプルのリスト」だよ

512 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:02:58.60 ]
そもそもタプルとリストをひとつにして使っていますが、
>>タプルのリスト

p18のタプルの説明で
タプルにはリストと似ている点がいくつかありますが、
リストとタプルには根本的な違いがありますと。

別のものとして説明しているのに
なぜタプルのリストという言葉が出てくるのですか?


513 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:05:27.09 ]
p19の
先ほどのベクトル角括弧を丸括弧に変えて、
[(1,2),(8,11),(4,5)]
のようにすれば、タプルになります。
と書いてあります。




514 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:07:02.52 ]
本の訳が正しいのか、
>>511さんが正しいのか。
さてどっちだ?

515 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:13:15.41 ]
>>505
p19
この方法の問題点は、[[1,2],[8,11,5],[4,5]]のようなリストが作れて、
これを2次元ベクトルのリストが〜
を受けての

>>501
p19の下側
両方を含むリストは作れません。

と作れると書いてしまっては矛盾します。

GHCiで
Prelude> [[1,2],[8,11,5],[4,5]]
[[1,2],[8,11,5],[4,5]]

Prelude> [(1,2),(8,11,5),(4,5)]

<interactive>:137:8:
Couldn't match expected type `(t0, t1)'
with actual type `(t2, t3, t4)'
In the expression: (8, 11, 5)
In the expression: [(1, 2), (8, 11, 5), (4, 5)]
In an equation for `it': it = [(1, 2), (8, 11, 5), (4, 5)]
ghci>

リストだと通るが、
タプルだと作れません。


516 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:14:45.79 ]
ここのサイトは
書き込み毎にtwitter上に流れるような仕組みになっているよ。


517 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:15:48.47 ]
>>513
「ベクトルの角カッコを丸括弧に変えて」
 : つまりベクトルを表すときにリストを使うのではなくタプルを使うように変更して、という事です。

つまり「座標(ベクトル)のリスト」 のデータ型を [ [Int] ] から [ (Int, Int) ] に変更したわけです。

各種の言語で配列的なものを「ベクトル」と呼ぶ事がありますがこの箇所ではそのような
言葉使いはしていません。「ベクトル」は幾何的な座標を指した言葉です。

[Int] は 「整数のリスト」 ですね。
[ [Int] ] は 「「整数のリスト」のリスト」 です。

(Int, Int) は「サイズ2の整数タプル」 ですね。
そして [ (Int, Int) ] は 「「サイズ2の整数タプル」のリスト」 です。

518 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:16:09.52 ]
Functional 2ch (functional2ch) は Twitter を利用しています
https://twitter.com/#!/functional2ch



519 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:18:37.00 ]
原書19ページから引用
> We can change our vectors to tuples by surrounding them with parentheses
> instead of square brackets, like this: [(1,2),(8,11),(4,5)].

日本版の正確な引用文がないとなんとも言えないけど
訳すときに複数形がどっかに行ってしまったということじゃないか

520 名前:518 mailto:sage [2012/05/31(木) 13:20:13.73 ]
Hideyuki Tanaka ? @tanakh
PFIで働く社員。妹わんこ系Haskeller。今すぐフォローすべき競技プログラミング界のスーパーエンジニア。
ttp://tanakh.jp/ d.hatena.ne.jp/tanakh

Functional 2ch (functional2ch) は Twitter を利用しています
ttps://twitter.com/#!/functional2ch
のフォロワーにいるから、まず間違い無く見ているね。


521 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:23:38.99 ]
>>517さんが言いたいことは、
本の方は省略して書いていて、
タプルのリストと書くほうが正しいということかな?

本ではただのタプルだけど。

522 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:29:04.34 ]
[...] の中の各ベクタについて言ってるんだよ

523 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:34:06.19 ]
ある数以上フォローしてたら、TwitterのTLを全部チェックするなんて無理だから



524 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 13:40:39.78 ]
>>521
そういうことになりますかね。

紙の本の原文で見ると

We can change our vectors to tuples by surrounding them with parentheses
instead of square brackets, like this: [(1,2), (8,11),(4,5)].

となっているので

(拙訳)ベクトルの角括弧を丸括弧に変更してタプルに変えられます: [(1,2), (8,11),(4,5)].

ってな調子なので原文でも「ベクトル...」で始めた文脈のスコープがベクトルに維持されている
事を前提とした説明ですね。

525 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 15:26:18.20 ]
なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね

526 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 15:53:45.08 ]
ユーザーが増えると必然的にそうなる

527 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 15:59:29.72 ]
あちこちのスレで同じこと書いてる荒しだぞ

相手にするな

528 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 16:16:11.40 ]
Haskellの板ってここ以外あったっけ?w

529 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 16:27:13.25 ]
>>525
>>なんでこのレベルの奴がこの板にいんだよ年々レベル下がってるじゃねーか死ね
感情丸出しで書き込んでいて、自分が一番食物連鎖の最下層にいるって気付かないのかな?

530 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 17:30:12.27 ]
>>528
Haskell以外の言語や他ジャンルのスレに無差別に投稿してるみたい。

531 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 17:54:01.83 ]
>>525
だったらHaskell初心者質問スレ立てろって日頃言ってるだろ
立てないなら黙って初心者の斜め上の発言の諫め役に甘んじてろや

532 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 18:57:17.51 ]
>>501,502はHaskell関係なしに読解力の問題だから
初心者スレなんていらんよ

533 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 19:00:45.29 ]
>>530
相手をしてくれるところに来るんだよな



534 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 19:07:41.09 ]
>>532
>>501,502が読解力の問題というのなら、
お前は本を買っていない貧乏人だろ。
本文を読めばおかしいと分かる。

535 名前:デフォルトの名無しさん mailto:sage [2012/05/31(木) 19:22:06.41 ]
おかしくないよって丁寧に説明してくれてる人が既に現れてるだろ

ていうか・・・
自分の読解力は問題ない、きっと相手が本を買っていないに違いないって
すごい考え方をする人がいるんだな






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

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef