[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
200: デフォルトの名無しさん [sage] 2011/10/21(金) 11:19:02.96 AAS
>>192
192(1): デフォルトの名無しさん [sage] 2011/10/21(金) 00:05:06.91 AAS
よーしパパFizzモナドとBuzzモナドを合成しちゃうぞー
のアイデアを水平合成とみて>>186
186(10): デフォルトの名無しさん [sage] 2011/10/20(木) 22:49:20.89 AAS
FizzBuzzを剰余使って書くのはすぐ思いつくけど、以下のは新鮮だった。
どうやったらこんな発想が出来る様になるんだろ。

fizz = cycle ["","","Fizz"]
buzz = cycle ["","","","","Buzz"]

f s n
| s == "" = show n
| otherwise = s

main = print $ zipWith f (zipWith (++) fizz buzz) [1..100]
のに適用するとこんな感じ?

type Magma a = a -> a -> a
class MonadZero m where
mzero :: m a
class MonadZero m => MonadOr m where
mor :: Magma (m a)
class MonadZero m => MonadPlus m where
mplus :: Magma (m a)
instance MonadZero [] where
mzero = []
instance MonadOr [] where
mor xs = if null xs then id else const xs
instance MonadPlus [] where
mplus = (++)

fizz = cycle $ replicate 2 mzero `mplus` return "Fizz"
buzz = cycle $ replicate 4 mzero `mplus` return "Buzz"
fizzbuzz = zipWith mplus fizz buzz

main = print $ zipWith mor fizzbuzz $ map show [1..100]

listモナドの和を論理和(つまりMaybeモナドの和)、数値和の二通りに見ることで数値和で作ったfizzbuzzのパターンと数字のパターンを論理和で合成する・・・と
Listを信号としてみれば、もろor回路による信号の合成だよな。始まる場所が変わることに対してはdrop等で開始位置をずらしてつまり信号のdelay回路か
SignalArrowを使った抽象化でもいけそうに見えるな
それはさておき垂直合成、つまりモナド変換子を使うのはどうなるんだろうか
FizzT (FuzzT Identity Int) [String]みたいな型になればそれっぽいんだけど
208: デフォルトの名無しさん [sage] 2011/10/21(金) 18:27:55.96 AAS
たとえばMatzあたりがよく引き合いに出すが、そんなに支持されてる仮説じゃない

あと、エキスパートの思考は言語化できないことが多い
360: デフォルトの名無しさん [sage] 2011/11/04(金) 13:01:35.96 AAS
削切 はつきる
605: デフォルトの名無しさん [sage] 2011/11/22(火) 13:35:30.96 AAS
>>585
585(2): デフォルトの名無しさん [sage] 2011/11/18(金) 12:58:16.17 AAS
>>584
入れてません
GLUTによる「手抜き」OpenGL入門
をみてXcodeに入ってると思っていました
(引文)
シンボリックリンクを張っておく必要があります.〜
この最後のシンボリックリンクを作成しない場合は, 以下のソースプログラムにおいて GL/glut.h ではなく GLUT/glut.h を #include するようにしてください (Mac OS X ではそうするのがスジでしょう).
が原因でしょうか

もっと調べてみます!
>>586
586(1): デフォルトの名無しさん [sage] 2011/11/18(金) 13:00:44.76 AAS
>>585
すまない。実はMacはよくわからないが答えてるんだ。
.soがHaskell側で読み込まれてないのか?と思った。
そのシンボリックリンクは必須だと思うよ。
解決しました
インデントとwindow初期化に問題があったようです
726: デフォルトの名無しさん [sage] 2011/12/18(日) 18:09:43.96 AAS
ここで話すことじゃない
議論に戻りたまえ
912: 896 [sage] 2011/12/28(水) 21:59:15.96 AAS
意味も分からず解決してしまった

mingw-get-inst-20111118.exe をインストールしていたんだが、
これをアンインストールして、そのインストール先の mingw フォルダも全て削除したら、
何事も問題なく C のプリプロセッサ(CPP オプション)が使えるようになった

環境変数に mingw フォルダ内のどこかへのパスがあったわけでもないんだが、
なんでこれで解決するのか意味が分からない
GHC 内の mingw と干渉していたのではないかと思うが、
今まで普通に GHC と外部の mingw は共存できてたと思うんだが・・・

まぁいいや
お騒がせしました
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s