[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
141: デフォルトの名無しさん [sage] 2011/10/15(土) 12:33:57.49 AAS
GUI=WEBページ
142
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 12:35:01.18 AAS
正直F#がうらやましい
143: デフォルトの名無しさん [sage] 2011/10/15(土) 12:37:27.67 AAS
これは>>142がH#
144: デフォルトの名無しさん [sage] 2011/10/15(土) 13:07:58.01 AAS
GHCとMS製コンパイラで別々の言語拡張オプション指定するのやだ!
145
(2): デフォルトの名無しさん [sage] 2011/10/15(土) 14:33:22.57 AAS
変数名スレで訊こうか迷いましたが、こちらで訊きます

リストのそれぞれ隣同士の2要素を使って新たな値のリストを作る関数

f :: (a -> a -> b) -> [a] -> [b]
f g (x1:x2:xs) = g x1 x2 : f g (x2 : xs)
f _ [_] = []
f _ [] = []

このような関数 f は、どのような名前が適当でしょうか
146
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 14:50:11.50 AAS
>>145
 f k l = zipWith k l (tail l)
なので zipTailWith とでも名づけるかな
147: デフォルトの名無しさん [sage] 2011/10/15(土) 14:54:53.86 AAS
zipなんとかAdjacentなんとか 
みたいなのを思いついたけどAdjacentっていう単語そのものが冗長だからうんk
148: デフォルトの名無しさん [sage] 2011/10/15(土) 16:04:13.69 AAS
zipNextTo でええやん
149: デフォルトの名無しさん [sage] 2011/10/15(土) 17:19:24.27 AAS
>>145
フィボナッチ数列と性質が似てるから、fibZipWithってのは?
150: デフォルトの名無しさん [sage] 2011/10/15(土) 18:00:48.60 AAS
ありがとうございます

みなさんの意見を参考に、mapA に決定しました (A = Adjacent)
151: デフォルトの名無しさん [sage] 2011/10/15(土) 18:01:59.00 AAS
まっぱ!
152
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 18:05:14.33 AAS
ところで、なんで皆さん、これに zip の単語を付けようとなさったのでしょう?

私は、[a] を [a] に変換するから map を名前に付けようと思いました
(当然、要素数は1つ減りますが)
153
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 18:06:20.12 AAS
>>152
あ、すいません

[a] を [b] に変換です
154: デフォルトの名無しさん [sage] 2011/10/15(土) 18:22:17.68 AAS
>>153
>>146に乗っかっただけ
155: デフォルトの名無しさん [sage] 2011/10/15(土) 18:27:44.90 AAS
セルが半シフトしたリニア・セルラー・オートマトンだよな。
156
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 18:33:46.42 AAS
mapだと単なる写像とか関手って意味しかなくて、そんなものは型みりゃ一目瞭然でそんなのを型と名前で二回も使ってると
頭痛が痛いみたいな違和感が出てきてちょっとDRY的によろしくない感じ
zipだともうちょっと意味が狭くなって [a] `f` [b] -> [a `f` b]的なリストとfの分配法則みたいな意味が出てくるけど
これも型みりゃだいたい入ってる、こちらは入れてもいい気もするけど
だから隣り合ったを示す言葉とか二つ目を一個ずらすみたいな命名ができると余すところ無く名前と型両方に無駄なく意味をこめることができていいかなぁ
とか思った
157
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 19:01:54.05 AAS
Aは haskellerならappricativeを想像するんじゃないかな。
158: デフォルトの名無しさん [sage] 2011/10/15(土) 19:04:04.21 AAS
perlninja2
メンバ
登録日: 2011-09-30
投稿: 10
E-mail

いまCD-R 700MBとガリガリ君ソーダ味かってきました

Ubuntu入れなおしたほうが早いと思いました

回答ありがとうございました
159: デフォルトの名無しさん [sage] 2011/10/15(土) 19:05:30.71 AAS
perlninja2
メンバ
登録日: 2011-09-30
投稿: 10
E-mail

Ubuntuを起動するとフリーズしていまいます
ターミナルの画面が真っ白で、ちょっと動かすと元の色にもどります
そしてウインドウを動かしたり ターミナルにコマンド打ち込んだり フォルダ開いたりしようとすると反応がありません
上のメニューバーの再起動とかログアウトはボタン選べるんですが まったく応答がありません
いろいろデスクトップのフォルダを開こうとしても開けないです
どうすればいいんですか?教えてください
直しかた教えてください

昨日まで普通に使えてたのに突然使えなくなりました
再起動したりなんかいも起動しなおしても同じ現象です
160: デフォルトの名無しさん [sage] 2011/10/15(土) 19:14:16.51 AAS
Perl忍者はHaskellができません。
ですが、ここのスレに来てはいけないというルールはありません。
161: デフォルトの名無しさん [sage] 2011/10/15(土) 19:17:23.16 AAS
>>157
では、mapAdj や mapN (N = Neighborhood) で

>>156
「名前と型両方に無駄なく意味をこめる」
なるほど、そういう考え方もあるのですね

わたしは、改めてこの関数を使うプログラマの立場に立って考えてみると、
型シグネチャはライブラリ ドキュメントを見ることでしか確認はせず、
普段ソース中でこの関数を使っている時は関数名しか見ないと思いました
そして、ライブラリ ドキュメントはソースに比べてそう頻繁に見るものではない
(自分がそうなので)

だからソースを眺めた時、この関数を使っているところで、
「何がどのような結果になるのか」という情報が仕舞われた頭の抽斗が開けやすくなる、
抽斗の場所がぱっと思い浮かぶようなキーワードがいいなと
ポイントフリーで使っていると余計にそう感じます

というわけで、私はむしろ型シグネチャで分かる意味・ニュアンスも、
積極的に関数名に入れていこうと、皆さんの意見を聞いて思いました
162: デフォルトの名無しさん [sage] 2011/10/15(土) 19:18:30.54 AAS

163: デフォルトの名無しさん [sage] 2011/10/15(土) 20:12:34.89 AAS
セルラーオートマトンの文脈では、fがevolverでgがtransducer
164
(1): デフォルトの名無しさん [sage] 2011/10/15(土) 21:42:48.20 AAS
変換って、いろいろな言葉があるよね。

translator
tramsformer
transducer

厳密な使い分けはあるのだろうか?
165: デフォルトの名無しさん [sage] 2011/10/15(土) 22:11:44.66 AAS
>>164
converter、diverter などもありますね
1-
あと 813 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s