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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 20:28:13 ]
haskell.org
www.haskell.org/

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

過去ログ
関数型プログラミング言語Haskell
Part1 pc.2ch.net/tech/kako/996/996131288.html
Part2 pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 pc11.2ch.net/test/read.cgi/tech/1174211797/

・2chの仕様により、行頭の半角スペースは表示されません。
 コードをインデントしたいときは、代わりに または全角スペースを使うことができます。

302 名前:デフォルトの名無しさん [2007/12/13(木) 02:20:10 ]
割と玉石混淆なイメージだね

303 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 02:23:35 ]
暇つぶしで弄ってる学生がここで暇を潰しているイメージ

304 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 08:17:19 ]
>>299
>>303
そのとうりですすいません……

305 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:07:28 ]
>>268-304
この辺からおかしくなってきてる

306 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:49:46 ]
なんにしてもHaskellerが増えるのは喜ばしいことだ

307 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 11:51:12 ]
rubyみたいになるぐらいなら少なくてもいい

308 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 16:58:02 ]
少数精鋭投入ならこれでいいだろうけど
大人数投入用にコードもデータもブラックボックスにできる仕組み(命令型のオブジェクト指向同等?)誰か作らないのかな

309 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:07:09 ]
大人数投入っていまどき流行らないよ
人海戦術でプログラミングする時代は終わった

310 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:23:49 ]
>>308
ブラックボックス化ってどんなの?
カプセル化なら標準のモジュールシステムがあるけど



311 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:28:42 ]
>>308
そんなにオブジェクト指向がやりたいなら
つ O'Haskell

312 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:30:17 ]
でも、そもそもオブジェクト指向は型理論に包含されるものだから・・・

313 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 17:31:50 ]
デバドラ屋と少数のhaskellerがいればたいていのプロジェクトは成功する
・・・夢を見た

314 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 18:14:01 ]
>>308
そもそもhaskellにはオブジェクト指向は不要なんですよ。
というのも、関数の再利用できる範囲がCやらjavaやらとは桁違いに大きいのが特徴だからです。


315 名前:デフォルトの名無しさん [2007/12/13(木) 21:20:25 ]
Haskellでモジュールつかってカプセル化してコード書いている人あまりいないような気がするんだけど気のせいかな。


316 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:22:03 ]
なにを根拠に?

317 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:35:09 ]
>>315
そもそもhaskellを使って実用アプリを公開してる人があんまりいないんだから
仕方ないだろ。

318 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:49:47 ]
Haskellって関数型言語の勉強用じゃないの?

319 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 23:10:30 ]
それだけのための言語だとどうして思うのですか?

320 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:39:15 ]
GHC 6.8.2が出てるね。
GHCiの機能追加がメインっぽい。



321 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 00:53:25 ]
HaskellはOOじゃなくて、
generic programing指向だからなあ。
Genericsの世界では最強認定を受けてる。

322 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 01:21:07 ]
OfficeがHaskellで書きなおされるまで俺はその有用性を認めない。

323 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 02:29:17 ]
スケーリングのための言語じゃないんだよな
工場制手工業ならOOであることやポピュラリティ(みんなが使ってること)は必須だ。

324 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 13:26:48 ]
別に必須じゃないし。
今流行ってること取り入れたってどうせちぐはぐになるだけ。

325 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 13:28:05 ]
っていうかさ、人海戦術の奴隷商売に慣れすぎていて、理性的な考え方を失ったお猿さんですか?

326 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:15:06 ]
ポピュラリティが必須というのは分かるけど、OOが必須というのはおかしくね?
OOは一手法に過ぎないんだから、もっと良いものが知られればそっちが使われるようになるだろ

327 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:21:57 ]
OOは現時点でのポピュラリティの1つって事ならわからなくもないけど、
わざわざ分けて必須って言うほどのものではないな。

328 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:54:59 ]
つーか、OOはstableなlibrary構築にはいいんだけど、
意外とreusabilityが悪いから、
generic programmingが注目されているのが現状です。
Haskellのtype classとかC++のconceptみたいなやつ。

C++はtemplate/traitsでやってましたが、ちょっと非力なので、
Haskellのtype classそっくりの"concept"が入る事になりました。


329 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:59:18 ]
実際これはOOと比べてどうなんだとか思ってたんだけど
実際使ってみたら意外とオブジェクト指向のメリット包含しててSUGEEとか思った

330 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 14:59:57 ]
>>328
日本語でおk



331 名前:328 mailto:sage [2007/12/14(金) 15:35:51 ]
日本語ですよ?

332 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 15:45:42 ]
決して英語が読めないわけではないが、
不自然だ
読みにくい
目が痛い

333 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 16:23:51 ]
理論はそのとおりなんだが、残念だがそんな理論を理解出来る人間は少数派なんだよ。
共産主義みたいなもん。高尚な理屈よりも明日パンが、今日のバグを潰せるかが問題なわけだ。

いいじゃない。Haskellは芸術的な小物を個人で作るのに向いてるってことで。



334 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:07:50 ]
>>333
多数のバカよりも少数の優秀な人間でプログラミングしたほうが安く早くできます。

335 名前:328 mailto:sage [2007/12/14(金) 17:08:28 ]
>>332
そういう意味か。すまん

>>328については、
journals.cambridge.org/action/displayAbstract?fromPage=online&aid=715036
で。探せばピィーディーエフも見つかるようです。

336 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:09:42 ]
>>333
どの辺の理論のことを言ってるの?

337 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:10:46 ]
>>335
不自然だ
読みにくい
目が痛い

お前は日本語文書の常識を勉強したほうがよさそうだな

338 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:16:49 ]
どっちにしろ、今みたいに人気がなくて、そのせいでライブラリも
周辺環境も整っていない状況だと、小物を個人で作るのすら満足にできん。

339 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:43:43 ]
wxhaskellが使いやすい
が、6.8系用が出てない・・6.6系は非公式

340 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:52:21 ]
いまだと.NETやJavaVMに乗せちゃえばライブラリ不足は一挙に解決だな。



341 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:56:18 ]
>>339
普通にdarcs版をビルドできないか?

342 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 17:56:46 ]
>>340
なんで?

343 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 19:53:13 ]
conceptの導入をもってHaskellはC++のサブセットになります
つまりこれで全ての言語がC++のサブセットになるというわけです

344 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 20:54:45 ]
本日をもってHaskellはウジ虫を卒業する
本日からHaskellはC++のサブセットである
兄弟の絆に結ばれる
Haskellのくたばるその日まで
どこにいようとC++は貴様らの兄弟だ
多くはベトナムへ向かう
ある者は二度と戻らない
だが肝に銘じておけ
C++は死ぬ
死ぬために我々は存在する
だがC++は永遠である
つまり―――Haskellも永遠である!

345 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 07:46:00 ]
初心者質問です。

test = flip fun1 . fun2

の場合、

1. test = flip (fun1 . fun2)

2. test = flip (fun1) . fun2

どっちの意味なんでしょうか。(.)が使用されている場合、flipが対象とする
関数がどこまでかかるか分かんなくなってしまいました。

346 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 08:05:18 ]
(.)よりも関数適用のほうが優先度が高いから答えは一応 2.なんだけど、
括弧の付け方としては (flip fun1) . fun2 のほうが正しい。

347 名前:345 mailto:sage [2007/12/15(土) 14:13:25 ]
>>346
ありがとうございます。合成関数全体にかかるのかと思ってました。
もう少しいいでしょうか。

ja.doukaku.org/comment/4621/

にある、

attachIndex = map (uncurry (flip zipWith [0..] . ((,) .) . flip (,))) . zip [0..]

がよく理解できないのですが、

(flip zipWith [0..] . ((,) .) . flip (,)) 0 "abc"

の部分は

zipWith (((,) .) $ flip (,) 0) [0..] "abc"

と考えられると思うのですが、何ででしょうか。(flip zipWith [0..] . ((,) .) . flip (,)) の
第一引数"0"がまず部分適応されてflipされるところが理解できません。


348 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 14:41:26 ]
(flip zipWith [0..] . ((,) .) . flip (,)) 0
から始める。まずこの式は(A . B . C) 0という形だからA (B $ C 0)に直せて、
flip zipWith [0..] ( ((,) .) $ flip (,) 0 )
これはflip A B Cという形だからA C Bと書き換えられて、
zipWith ( ((,) .) $ flip (,) 0) [0..]

349 名前:345 mailto:sage [2007/12/15(土) 15:29:30 ]
>>348
ありがとうございます。しかし、まだちょっと理解できませんw

1.第一引数"0"の部分適応を行う
2.flip する

の順番の根拠がよく分かりません。

(flip zipWith [0..] . ((,) .) . flip (,)) 0 "abc"

の第二引数が最後に適応されるのは何故でしょうか。

あと、これは変な質問なんですけど、

(flip zipWith [0..] . ((,) .) . flip (,)) 0 "abc"

の形を慣れた方は直接記述できちゃうんでしょうか。それとも、

zipWith ( ((,) .) $ flip (,) 0) [0..] "abc"

の形から変形させていく形でプログラム書いていくんでしょうか。


350 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 15:37:45 ]
>>349
Haskellでは基本的にどんな順番で簡約しても結果は同じだから、分かりやすい順序でやっただけ。
もっと実装に即した順序でやることもできるけど、面倒なだけな気がする。

>の形を慣れた方は直接記述できちゃうんでしょうか。
俺はできない。読むのも二分くらい掛かった。



351 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 15:42:07 ]
あ、でもそのnobsunという人は日常的にそういうコードを書いてるみたいだから、
たぶんすらすら書けるんだろう。

352 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 15:46:11 ]
俺思うんだけどさ、デザインパターン中毒みたいにポイントフリー中毒ってあるんじゃないかなあ。
そーいうのって可読性犠牲にしてまでやるものなのか?

353 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 15:47:28 ]
>>350
> Haskellでは基本的にどんな順番で簡約しても結果は同じだから、分かりやすい順序でやっただけ。

(flip zipWith [0..] . ((,) .) . flip (,)) 0 "abc"

自分がどうも腑に落ちないのは、どうして

zipWith ( ((,) .) $ flip (,) 0 "abc") [0..]

こうじゃないんだろう?ってとこなんですね。もちろん、こういう解釈だとダメなんですけど、
引数一つだけ取って、ある関数を返してから、次に行くってのがルールだったりするのかな、
と思ったのですが。

> 俺はできない。読むのも二分くらい掛かった。

そうですかw。いや、直感的に書ける人って凄いなぁって思ったんですが、なかなか
そういう人はいないんでしょうかね。

354 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:02:39 ]
>>352
デザインパターン中毒はどうか知らんが、この書きかたには
記述が簡潔になるという利点があるんだから、別にいいんじゃないかと思う。

>>353
Haskellの関数は常に一引数関数で、多引数関数は
カリー化でエミュレートされているだけだということを思い出すべし。
(.)も両辺を一引数関数として合成するから、
(f . g) a b

f (g a b)
は等しくない。

355 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:05:04 ]
些細なことだけど
> (f . g) a b
この括弧なんとかならないかな

356 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:13:51 ]
>>354
> Haskellの関数は常に一引数関数で、多引数関数は
> カリー化でエミュレートされているだけだということを思い出すべし。

そうでしたw。

いやぁ、ありがとうございます。スッキリしました。

357 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:36:06 ]
>>355
>219に戻れ

358 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 16:43:36 ]
>>357
>>219とは趣旨が違う
> (f . g) a b
この括弧はうっとうしいなぁと言ってるだけなんだよ。
$みたいに括弧省略したい

359 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 17:10:55 ]
俺はその格好が好きだ

360 名前:デフォルトの名無しさん [2007/12/15(土) 17:31:40 ]
ML でも (foo o bar o baz o foobar) quux みたいに書くね



361 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 20:25:33 ]
>>358
お前は何を言っているんだ

362 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 21:14:46 ]
>>361
心で感じろ

363 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:37:28 ]
>>361
風を感じろ

364 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 01:45:32 ]
GHC 6.8.2 Windows版で、コンソールのコードページが英語のになるバグがようやく直ったな。

365 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 20:36:29 ]
Parallel Haskellの拡張されてる点ってどんなとこ?

366 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 08:39:00 ]
>>364
太字になるのは?

367 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 09:27:14 ]
WindowsでGHCなんか使うやつはバカです

368 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:39:39 ]
同感

369 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:47:31 ]
windowsではGHC以外に何が一番いいの?

370 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 16:08:40 ]
>>365
(疎結合の)クラスタ範囲にまで並列化する
(普通のマルチコア・マルチCPU(どっちも共有メモリ)範囲の(半)自動並列化ならGHC本体だけでもできる)
そんなハード持ってなければどっちみち関係ない



371 名前:デフォルトの名無しさん [2007/12/17(月) 22:55:51 ]
        ____
       /      \
      /  ─    ─\     今年もあと一ヶ月だお・・・
    /    (●)  (●) \
    |       (__人__)    | ________
     \        ̄    ./ .| |          |
    ノ           \ | |          |
  /´                 | |          |
 |    l                | |          |
 ヽ    -一ー_~、⌒)^),-、   | |_________|
  ヽ ____,ノγ⌒ヽ)ニニ- ̄   | |  |




      / ̄ ̄ ̄\
    / ─    ─ \
   /  (●)  (●)  \.  俺はこの一年間何をしていたんだろう
   |    (__人__)    | 2chで浪費した莫大な時間を何か有意義なことに使っていたら・・・
   \    ` ⌒´    /
   /           \

372 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 23:18:53 ]
このスレは相当に有意義だと思うんだけどな。
つうか基本的に専門スレしか見ない人も多いと思うんだが。
今年も大変勉強になりました。

373 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 18:46:23 ]
いまさらだが、

>>96
JavaScriptでもできるな

374 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 20:49:40 ]
(>>=´∀`)

375 名前:デフォルトの名無しさん mailto:sage [2007/12/22(土) 23:20:06 ]
そこで具体的な事じゃなく漠然と「有意義な事」って言葉しか出ないなら
2ちゃんやらなくても結果は一緒だったと思うんだよ

376 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 00:04:51 ]
日頃から頑迷そうな意見乙

377 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:55:59 ]
哲板から転載
読んだ人いる?

圏論による論理学 高階論理とトポス

清水 義夫
ISBN978-4-13-012057-9,
発売日:2007年12月中旬,
判型:A5, 232頁


内容紹介
20世紀後半,数学,計算機科学,論理学などの分野で採用されてきている圏論.
関数概念を基本として現象をとらえようというこの方法を,
関数型高階論理とトポスを題材にして丁寧に解説する.
論理学の観点を中心に,圏論の考え方を紹介するテキスト.



主要目次

第1章 関数型高階論理
第2章 トポス
第3章 トポスの基本定理
第4章 プルバック関手f *の右-随伴関与Πf
第5章 リミット、空間性トポス、限定記号
結び
付録1 A∧( ) ┤A⊃( )のイメージ的理解
付録2 各章の課題
主な記号一覧/索引


378 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:57:43 ]
>>377
立ち読みしたが、俺らには全く関係ないよ

379 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:59:29 ]
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●不合格●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
これを見た人は確実に【不合格】です。これをコピペでどこかに1回貼れば回避できます。
これは本当です。やらないと一年無駄になります.

私も最初は嘘だと思ったんですが、一応コピペしました。それで第一志望に合格出来ました。
けどコピペしなかった友達がA判定とっていたのに、おちたんです。(慶応合格h.sさん)

俺はもうE判定で記念受験だったんだけど、コピペを10回くらいした途端に過去問が
スラスラ解けるようになって、なんと念願の開成に受かりました。(開成合格r.kくん)

これを今年の試験前に見てシカトしたら、入試でミスって最悪です。(n.aさん)

380 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 16:34:29 ]
tasukete



381 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 16:37:43 ]
>>380
通報しますた

382 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 08:38:38 ]
>>378
関係ないことないだろ。
Haskellの型システムを理論的に理解する時など。

383 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 08:51:28 ]
しみろん、懐かしいな…

384 名前:デフォルトの名無しさん mailto:sage [2007/12/25(火) 11:43:56 ]
すげー久しぶりに しみろん 見た…

385 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 19:57:10 ]
liftM と fmap が一致しない場合ってあるの?

386 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 21:11:49 ]
>383-384
東大OB乙

387 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 18:50:21 ]
二ヶ月ほど前に撮った写真です
場所はバトルロワイヤルの撮影地にもなった
軍艦島での一枚です。
www.uploda.net/cgi/uploader1/index.php?file_id=0000278909.bmp
撮影し現像した物を
心霊写真がないかな〜っと面白半分で探していると
偶然にも一枚だけ物凄い写真が在りました
最初に見えたのは右下の子供の様な顔です
左にはボーっと立ち尽くし
こっちを見ている子供がうっすらと写っています
上部には青白い叫び顔があります
それだけではありません
探せば探すほど気持ち悪い顔があるのです
私は現在で約30ほどの顔を見つけました、全てこっちを見ています
探せば探すほどあまりにも出てくるので
気持ち悪くなり頭が痛くなりました
この写真ですが、ある友人に貸した所
夜に1時間程笑い声の様なものが聞こえてかなり
怖かったらしいです・・・
霊感がある方はぜひ鑑定をお願い致します。

因みに、スキャナーで高画質でスキャンした上で
見易いように画質調整をしています
ですのでファイルサイズが9MBにもなります・・・

388 名前:デフォルトの名無しさん mailto:sage [2007/12/28(金) 21:23:54 ]
>>387
スレ違い

画像処理 その10
pc11.2ch.net/test/read.cgi/tech/1197759782/

389 名前:デフォルトの名無しさん mailto:sage [2007/12/29(土) 00:40:56 ]
ワロタ

390 名前:デフォルトの名無しさん [2007/12/31(月) 18:01:51 ]
初心者レスです。
既出や意味不明な質問でしたらすみません。

ポイントフリースタイルって言葉がありますよね。
仮引数を無くして、関数を関数だけで定義するという意味で。

firstNLines n cs = (unlines . take n . lines) cs

上のような関数が定義されていたとして、
仮引数を減らす仮定で

firstNLines n = unlines . take n . lines

上のように書けますよね。
更に仮引数 n を無くす場合

firstNLines = (. lines) . (unlines .) . take

と書けると思うんですが
ポイントフリースタイルとなった最後の定義式を見て
理解しやすくなったとは思えないのです。
積極的に使うべきなのでしょうか。



391 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 18:07:32 ]
わかりやすいほうでいいんじゃない?
ごちゃごちゃしてるのがいやならポイントフリーで。

392 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 19:15:14 ]
なんでもポイントフリーにするのは難読化への道を歩んでしまいかねん。
とりあえず二つ目のfirstNLines nみたいに普通に使ううちは
型を明示してれば分かりにくくなることも無いけど、
度を過ぎた奴はコードの修正とかも考えると扱いにくいわ読みにくいわでいろいろと面倒だし、
ポイントフリースタイルが時にはポイントレス(要領の悪い)スタイルといわれることもある

ってHaskellWikiに書いてた
俺もflipとかドットとか使いまくったコードを読むのは嫌い。
でも書いてる奴からするとパズルみたいで楽しいんだろうなあ、とか。

393 名前:389 mailto:sage [2007/12/31(月) 19:29:48 ]
ポイントレススタイル・・・。
書くときは頭の体操になるかもしれませんが
読む方からすると大変ですよね。

394 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 21:34:10 ]
ポイントフリースタイルにすると点 . がどんどん増えてぜんぜんポイントフリーじゃないよ(笑

395 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:03:28 ]
map ($ 3) [(+1),((-)2),(/3),(*4)] とか書くと単純なことなのになんか愉快だよね、たしかに

396 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:38:55 ]
なんだその記号だらけの読みにくい奇怪なコードは

397 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:16:55 ]
あけましておめでとうございます。
今年は Haskeller になれるように頑張りまふ(`・ω・´)!!

398 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 10:27:49 ]
俺もだ!
今年こそはHaskellマスターになる

399 名前:デフォルトの名無しさん [2008/01/01(火) 11:08:26 ]
>>395
少し愉快になれた(゚∀゚)

400 名前:デフォルトの名無しさん [2008/01/01(火) 17:35:39 ]
今更だけど
>>52
の説明に感動した。



401 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 18:08:19 ]
>>394
ポイントって確か関数合成演算子じゃなくて「値」のことだったかと
まあそれを踏まえて言ってるのかもしれないけど

402 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:26:20 ]
モナド難しいよ。
みんなエディタは何使ってる?
Emacs が多いのかな。






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

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

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