[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
894: デフォルトの名無しさん [sage] 2011/12/27(火) 12:44:32.22 >>886 >>884ではないけど、横レスしてみる Lispのような動的型付け言語の場合、2つの要素から構成されるタプルと リスト構成子である cons は同一であり、互いに置き換えることができる Haskellのような静的型付け言語の場合、 タプルは直積構造であるから各要素のデータ型は互いに異なっていてもかまわないが、 リストにおいては各要素のデータ型は同一でなければならない したがって、2要素のタプルとリスト構成子との間に互換性はない http://echo.5ch.net/test/
read.cgi/tech/1317958045/894
895: デフォルトの名無しさん [sage] 2011/12/27(火) 13:38:57.62 無理矢理なぐらい広議にしたモノイドという観点に立てば関連性が無いとも言えない http://echo.5ch.net/test/read.cgi/tech/1317958045/895
896: デフォルトの名無しさん [sage] 2011/12/27(火) 19:54:07.22 cabal で stm をインストールしようとしたら、 Control\Concurrent\STM.hs:0:4: lexical error (UTF-8 decoding error) というエラーで止まってしまい、インストールできません そもそも cabal の lexical error というのはどういう時に起こるのでしょうか [環境] GHC 7.2.2 cabal-install 0.10.2 Cabal library 1.10.2.0 http://echo.5ch.net/test/read.cgi/tech/1317958045/896
897: 896 [sage] 2011/12/27(火) 23:18:53.79 問題がだいぶ絞り込めました {-# LANGUAGE CPP #-} たったこれだけ書かれた Test.hs ファイルを ghci 上でロードすると、 Test.hs:0:4: lexical error (UTF-8 decoding error) Failed, modules loaded: none. と表示されエラーとなりますが、エラーの意味が分かりません {-# LANGUAGE Arrows #-} 例えばこれだけ書かれた Test.hs ファイルなら、普通にロードできます これ GHC 7.2.2 のバグでしょうか それとも意図された振る舞いなのでしょうか 後者なら、このエラーはどのような意味なのでしょ
うか http://echo.5ch.net/test/read.cgi/tech/1317958045/897
898: 829 [sage] 2011/12/28(水) 03:00:47.10 >>829です。解決しました。 原因はIPv6周りだったらしく、Ubuntuの設定をしたら直りました。 自分の対処法としては。参考にしたサイトとは若干違い。 /etc/ufw/ufw.conf にIPV6の記述がなかったので IPV6=yesに。 /etc/NetworkManager/system-connections/Auto eth0の[ipv6]のmethodがignoreになっていたのを、 method=autoにそれぞれ変更し直りました。 参考にしたサイト hackage.haskell.org に繋がるようになりました。 - sirocco の書いてもすぐに忘れるメモ http://d.hatena.ne.jp/si
rocco/20110905/1315255573 http://echo.5ch.net/test/read.cgi/tech/1317958045/898
899: 829 [sage] 2011/12/28(水) 03:12:45.40 まずプロバイダに特定のサイトが繋がらないんだけど?と連絡したら中の人がぐぐってくれたらしく ipv6の設定を変えてみてくれという返事が帰ってきました。なんか検索したらそういうものが見つかったとのこと。 ipv6の問題とか自分の身に降りかかってくるとは思ってなかったのでパニクリました。 向こう側がググったサイトは教えてくれない感じで、Windowsでの設定方法を教えますって言われたので、うは、逆にUbuntuでの設定方法を教えてくれwと思いながらWinじゃないので、と言ってとりあえず引き下が
って自分で対処しようとすることに。 うわー、面倒くさそうと思って、プロバイダ側で何が引っかかったのだろうとぐぐってみたら1番上が思いっ切りUbuntuの人のページでしたw ちなみにAndroidケータイがXperiaなんですが、それでもhackageのサイトに通じなかったので、ipv6の設定がどうかなってるんですかね。 Windowsでipv6とかgoogleのグローバル版で調べてみてもあまりipv6と関連した情報みたいなのは出てきませんが。 外人さんは困ったりしないんだろうか。全くよくわからないところです。日本人・日本語だと困ってる人が少し出てきましたね。
で、結局Ubuntuでipv6の設定しなおしたらなんで繋がるようになったのかは理解してません。w どうしてなんでしょうか? この方のところも参考にしました。 UbuntuでIPv6 - とある技術屋の戯言 http://www.sonorilo.net/2010/05/10/2730 http://echo.5ch.net/test/read.cgi/tech/1317958045/899
900: デフォルトの名無しさん [sage] 2011/12/28(水) 07:16:43.53 馬鹿には無理 http://echo.5ch.net/test/read.cgi/tech/1317958045/900
901: 896 [sage] 2011/12/28(水) 07:35:30.95 >>900 賢い人でしたら >>897 の問題分かるでしょうか ちなみに、ghci -XCPP というオプションで ghci を起動させれば、 たとえ何も書かれていない空白の hs ファイルをロードしても、 全く同じ lexical error になります http://echo.5ch.net/test/read.cgi/tech/1317958045/901
902: デフォルトの名無しさん [sage] 2011/12/28(水) 07:47:55.90 適当に推測すると、cppの出力が非UTF-8の何かを含んでるんじゃないの? cpp -traditional Test.hs の出力を見てみるとか http://echo.5ch.net/test/read.cgi/tech/1317958045/902
903: デフォルトの名無しさん [sage] 2011/12/28(水) 07:49:15.11 まさにそれでした ありがとうございます http://echo.5ch.net/test/read.cgi/tech/1317958045/903
904: 896 [sage] 2011/12/28(水) 07:54:57.28 >>902 ありがとうございます 色々な ghc のバージョンで試す環境が作れたので、 丁度今試していたのですが、どうも 6.12.3 なら OK で 7.0.0 以上なら NG みたいなんです もう仕事に向うので、帰宅したら cpp -traditional Test.hs の方を試してみます http://echo.5ch.net/test/read.cgi/tech/1317958045/904
905: 896 [sage] 2011/12/28(水) 19:09:32.91 >>902 cpp -traditional Test.hs の結果が以下のように出力されました ------------------------------- # 1 "Test.hs" # 1 "<built-in>" # 1 "<command-line>" # 1 "Test.hs" {-# LANGUAGE CPP #-} ------------------------------- 何か問題あるでしょうか http://echo.5ch.net/test/read.cgi/tech/1317958045/905
906: デフォルトの名無しさん [sage] 2011/12/28(水) 19:25:33.17 >>905 わからん。念のためghci -v Test.hsをやってみて、 そこで出てきたプリプロセスコマンドをそのまま打ち込んでみたら出力はどうなる? カレントディレクトリかテンポラリディレクトリのパスに日本語が入ってるとか http://echo.5ch.net/test/read.cgi/tech/1317958045/906
907: 896 [sage] 2011/12/28(水) 19:58:14.00 CPP 言語オプションだけを記述した Test.hs に対して ghci -v Test.hs すると、 *** C pre-processor: でプリプロセスコマンドが表示され、 その直後に次のように表示されて処理が止まります ghc.exe: fd:5: hGetContents: invalid argument (invalid UTF-8 byte sequence) ここで、[Ctrl+C] キーで処理を止めると Interrupted. と表示されてから、 いつもの ghci のプロンプトになります Arrows 言語オプションだけを記述した Test.hs ファイルの場合は、 全く問題なく(処理は止まらず)いつもの gh
ci のプロンプトになります *** C pre-processor: で表示されたプリプロセスコマンドは以下の通りです (見やすさの為適当に改行を入れ、パスに本名がローマ字で入っているので伏せました また、最後の -o の出力パスはテンポラリファイルなので適当に変えました) ------------------------------- "Haskell Platform2011.4.0.0のフォルダ\lib\..\mingw\bin\gcc" -E -undef -traditional -v -I "Haskell Platform2011.4.0.0のフォルダ\lib\base-4.3.1.0\include" -I "Haskell Platform2011.4.0.0のフォルダ\lib/include" -D__GLASGOW_HASKELL__=700
-Dmingw32_BUILD_OS=1 -Di386_BUILD_ARCH=1 -Dmingw32_HOST_OS=1 -Di386_HOST_ARCH=1 -x c Test.hs -o out.hscpp ------------------------------- このプリプロセスコマンドを実行してみたところ、 こちらは止まらず、また特にエラー報告もなく out.hscpp が出力されました このファイルの内容は >>905 の結果の出力と同一です どうも、この現象は私だけみたいですね http://echo.5ch.net/test/read.cgi/tech/1317958045/907
908: 896 [sage] 2011/12/28(水) 20:00:23.21 >>906 > カレントディレクトリかテンポラリディレクトリのパスに日本語が入ってるとか それは無いです http://echo.5ch.net/test/read.cgi/tech/1317958045/908
909: デフォルトの名無しさん [sage] 2011/12/28(水) 20:16:52.26 >>897 暇だったからLANGUAGE CPPの方やってみたけど、問題なかった。当たり前か。ghciはversion 7.0.4でした。 変な制御文字でも埋まってるんじゃない?od -x -c Test.hsで見てみたら? http://echo.5ch.net/test/read.cgi/tech/1317958045/909
910: 896 [sage] 2011/12/28(水) 20:44:13.27 >>909 od コマンドが無いんで(Windows 7 環境)適当なバイナリエディタで見てみた ------------------------------- {-# LANGUAGE CPP #-} ------------------------------- 7B 2D 23 20 4C 41 4E 47 55 41 47 45 20 43 50 50 20 23 2D 7D ------------------------------- 全く問題ないですよね とりあえず、問題の stm パッケージさえインストールできれば作業は進むから、 #ifdef __GLASGOW_HASKELL__ などのマクロを外して自力でプリプロセスしようと思います ですが、ひとつ問題が #if
! (MIN_VERSION_base(4,2,0)) これは今使ってる base のバージョンが例えば 4.3.1.0 の場合、 これと #endif で挟まれている部分のコードは生きるんですよね http://echo.5ch.net/test/read.cgi/tech/1317958045/910
911: 896 [sage] 2011/12/28(水) 21:41:55.67 あかん たとえ stm パッケージが無事インストールできても、 他の必要なパッケージで同じ問題が起きることに気づいた もう OS 再インストールしか方法はないのかも知れん http://echo.5ch.net/test/read.cgi/tech/1317958045/911
912: 896 [sage] 2011/12/28(水) 21:59:15.96 意味も分からず解決してしまった mingw-get-inst-20111118.exe をインストールしていたんだが、 これをアンインストールして、そのインストール先の mingw フォルダも全て削除したら、 何事も問題なく C のプリプロセッサ(CPP オプション)が使えるようになった 環境変数に mingw フォルダ内のどこかへのパスがあったわけでもないんだが、 なんでこれで解決するのか意味が分からない GHC 内の mingw と干渉していたのではないかと思うが、 今まで普通に GHC と外部の mingw は共存できてたと思うんだ
が・・・ まぁいいや お騒がせしました http://echo.5ch.net/test/read.cgi/tech/1317958045/912
913: デフォルトの名無しさん [sage] 2011/12/30(金) 15:54:38.20 windowsなんて捨ててlinux/mac系でやれば楽なのにね。 http://echo.5ch.net/test/read.cgi/tech/1317958045/913
914: デフォルトの名無しさん [sage] 2011/12/30(金) 17:05:32.28 全くだ http://echo.5ch.net/test/read.cgi/tech/1317958045/914
915: デフォルトの名無しさん [sage] 2011/12/30(金) 17:09:47.04 馬鹿には無理 http://echo.5ch.net/test/read.cgi/tech/1317958045/915
916: デフォルトの名無しさん [sage] 2011/12/30(金) 17:30:27.49 むしろ馬鹿ほどmacだと思う http://echo.5ch.net/test/read.cgi/tech/1317958045/916
917: 896 [sage] 2011/12/31(土) 11:39:52.12 wxHaskell を使ってるんだけど、以下のコードの挙動が予想外だ (dc は paint イベントのハンドラの第1引数 DC () 型) drawText dc "abc" (Point 0 0) [ textColor := green , textBgcolor := blue ] 俺の予想だと、青色の背景に緑色の文字が表示されると思ってたんだ でも実際は、透明の背景に青色の文字が表示される これは正しい挙動なのか、それともバグなのか? [環境] OS : Windows7 GHC : 7.2.2 wxPack : 2.8.12.01 wx : 0.12.1.6 wxCore : 0.12.1.7 http://echo.5ch.net/test/read.cgi/tec
h/1317958045/917
918: デフォルトの名無しさん [sage] 2011/12/31(土) 11:48:50.85 wxHaskellは知らないけど wx的にはwxDC::setBackgroundMode()で挙動が変化したような? http://echo.5ch.net/test/read.cgi/tech/1317958045/918
919: デフォルトの名無しさん [sage] 2011/12/31(土) 13:36:42.19 >>918 ありがと ただ、残念なことに、今の wxHaskell では DC の BackgroundMode を設定できないみたいだ それらしい関数やプロパティが見当たらない http://echo.5ch.net/test/read.cgi/tech/1317958045/919
920: デフォルトの名無しさん [sage] 2011/12/31(土) 16:32:13.81 これじゃね http://hackage.haskell.org/packages/archive/wxcore/0.12.1.7/doc/html/Graphics-UI-WXCore-WxcClassesAL.html#v:dcSetBackgroundMode http://echo.5ch.net/test/read.cgi/tech/1317958045/920
921: デフォルトの名無しさん [sage] 2011/12/31(土) 18:43:32.49 >>920 あ、なるほど dcSetBackgroundMode か 頭文字 s とか b で探してた (部分一致とかで検索できないと不便だなぁ) ありがと http://echo.5ch.net/test/read.cgi/tech/1317958045/921
922: デフォルトの名無しさん [sage] 2011/12/31(土) 19:26:08.59 >>918,920 dcSetBackgroundMode 関数に 100(wxSOLID)を設定してみたところ、 文字の背景に色が付きました しかし、これだけでは背景の色は真っ白でした そこで、次の様にしてみたところ、意図通りの結果 背景が黒で文字が赤色になりました withBrushStyle (brushSolid black) $ \b -> do dcSetBackground dc b dcSetBackgroundMode dc 100 dcSetTextForeground dc red dcSetTextBackground dc black drawText dc "abc" (Point 0 0) [] どうも、drawText 関数
とか set 関数で設定する textColor や textBgcolor は 正しく反映されないみたいです (textBgcolor が文字の色になり、textColor が反映されない?) おかげさまで目的は達成できました、ありがとうございました 時間がとれたらバグ報告してみようと思います(英文作るのにかなり時間がかかるんで) http://echo.5ch.net/test/read.cgi/tech/1317958045/922
923: デフォルトの名無しさん [sage] 2011/12/31(土) 23:24:55.57 よいHaskellを! 来Haskellは更に良いHaskellになるよう祈ってます。 http://echo.5ch.net/test/read.cgi/tech/1317958045/923
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 55 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s