[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
69: デフォルトの名無しさん [sage] 2011/10/10(月) 11:36:31.61 AAS
>>6767(1): デフォルトの名無しさん [sage] 2011/10/10(月) 11:34:39.46 AAS
HaskellよりCのほうが難しいと言ってる人は大抵
どっちの言語でもHallo Worldくらいのプログラムしか書けない
誹謗中傷だろ、それ。
85: 中2 [] 2011/10/10(月) 15:58:57.61 AAS
Haskellはじめたよ
はじめた理由聞きたいかな?
88: ◆QZaw55cn4c [sage] 2011/10/10(月) 18:43:59.61 AAS
>>8787(1): デフォルトの名無しさん [sage] 2011/10/10(月) 18:34:37.05 AAS
おすすめのグラフ作成パッケージありますか?
gnuplotやchartを使ってますが
他にあれば知りたいです
R と答えてほしいのかな?
外部リンク:ja.wikipedia.org
107: デフォルトの名無しさん [sage] 2011/10/12(水) 22:24:44.61 AAS
7.4までお預けですねわかります・・・
116(1): デフォルトの名無しさん [sage] 2011/10/14(金) 07:42:48.61 AAS
モジュール内の全ての関数と、import した地のモジュール M を全て公開したいのですが、
その場合は module モジュール名 (***) where の *** の部分に、
関数全てと module M を明示的に記入しないといけないのでしょうか
全ての関数だけなら、 (***) を省略することで全て公開しますが、
import したモジュールもとなると省略記法がわかりません
376: デフォルトの名無しさん [sage] 2011/11/06(日) 01:25:51.61 AAS
外部リンク:repa.ouroborus.net これも使えそうと思ってブックマークしてる。
457: デフォルトの名無しさん [sage] 2011/11/10(木) 23:17:35.61 AAS
>>456ん、んんん?
だったら、>>450450(2): デフォルトの名無しさん [sage] 2011/11/10(木) 21:24:40.76 AAS
>>449
自作の関数作るときとかは、型推論に任せるより自分で決めた方が速かったり、逆に遅い代わりに大きな数を扱えたりする
length関数と同じ機能の関数mylength作るとき、
mylength [] = 0
mylength (_:ns) = 1 + mylength ns
の型は[a]->aだが、
mylength::[a]->Int
mylength [] = 0
mylength (_:ns) = 1 + mylength ns
とすれば、当然ながら型は[a]->Intになる
の通り、先に型を書けば防げてるだろ?
(^(2::Int))は併用すればいい話じゃね?
ごちゃ混ぜに話すなよ
557: デフォルトの名無しさん [sage] 2011/11/15(火) 01:16:49.61 AAS
>>546546(1): デフォルトの名無しさん [sage] 2011/11/14(月) 22:09:25.28 AAS
出番だ、>544
いや、自分、基本バカだから
数学やりたかったんじゃなくて、+演算子を自分で作りたかっただけだから
717: デフォルトの名無しさん [sage] 2011/12/18(日) 08:00:51.61 AAS
少なくともGUIでは終わってる
HaskellでまともにGUIのガワが作れるようになるのはC++11がまともに使えるようになるよか遅いだろうね
785: 778 [sage] 2011/12/22(木) 12:54:37.61 AAS
>>783,784783(2): 778 [sage] 2011/12/22(木) 07:55:25.77 AAS
途中でレスってしまった
>>780 に指摘されて修正案を考えてる時に、
全然違うアイデアが思い浮かんだんだが、
これは今まで出てきたかな(特に >>771 と同類か)
listA から x の位置を探す
x の位置の直後から listB の要素数分の要素をリストとして取り出す listC
x が listB に無い場合、head listB が listC に有れば「前」
head listB が listC に無ければ「後ろ」
784(1): 778 [sage] 2011/12/22(木) 08:55:12.79 AAS
>>783
訂正
> x の位置の直後から listB の要素数分の要素をリストとして取り出す listC
x の位置の直後から末端までをリストとして取り出す listC
式にするとこんな感じ
whereIncluded :: (Eq a) => [a] -> [a] -> a -> Where
whereIncluded as bs@(b:_) x
| elem x bs = Here
| elem b as' = After
| otherwise = Before
where as' = takeWhile (/=x) as
ダサいかな
787: デフォルトの名無しさん [sage] 2011/12/22(木) 21:36:01.61 AAS
QuickCheck を調べてて、ステキなリファクタリング テクニックに出会った
外部リンク:www.haskell.org
リファクタリング前は(インデントに全角スペースを入れた)、
getList = find 5 where
find 0 = return []
find n = do
ch <- getChar
if ch `elem` ['a'..'e'] then do
tl <- find (n-1)
return (ch : tl) else
find n
というコードなんだが、副作用がある処理と無い式とが混ざっててテストし難い
(また、全体の処理もぱっと見分かりにくい)
これがリファクタリングで次のようになる
getList :: IO [Char]
getList = fmap take5 getContents
take5 :: [Char] -> [Char]
take5 = take 5 . filter (`elem` ['a'..'e'])
ちょっと感動した
こういうことがサラっとできるようになりたいもんだ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s