トップページtech
1001コメント334KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/03/16(金) 21:54:23.92
haskell.org
ttp://www.haskell.org/

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

過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/
0052462012/03/21(水) 07:31:22.42
>>51
俺が取り組んだのは、元のリストは要素の対して重複を許し、
そこから選ぶ要素番号に対しては重複を認めないタイプの問題だった

たとえば、元のリスト xs から 3 つ選ぶ場合、
[xs !! 0, xs !! 3, xs !! 8] は許されるけど、
[xs !! 0, xs !! 3, xs !! 3] は認めない

まだ取り組んではいないけど、重複を許した方が多少記述が減るんじゃないかな
0053デフォルトの名無しさん2012/03/21(水) 09:34:51.31
AAAAAAAAAAAAAAAAA `comb` 3
だと酷いことになる

重複するリストから組合せ取り出す局面がどれほどあるか判らないけど
0054デフォルトの名無しさん2012/03/21(水) 15:31:44.99
アナグラム作成装置として使えそうだね。
0055デフォルトの名無しさん2012/03/21(水) 16:36:15.52
let mapcon f xs = concatMap (\i -> f $ drop i xs) [0..length xs -1]
let comb n xs ys | length ys == n = [ys] | xs == [] = [] | True = mapcon (\(z:zs) -> comb n zs $ z:ys) xs
もうあんまりエレガントとも思えないけど
0056462012/03/21(水) 23:06:26.29
自分で作ったのは、こんな感じ

tails' :: [a] -> [[a]]
tails' [] = []
tails' [x] = [[x]]
tails' xs = xs : tails' (tail xs)

comb1 :: [a] -> [[a]]
comb1 xs = map (:[]) xs

combN', combN :: ([a] -> [[a]]) -> [a] -> [[a]]
combN' f (x:xs) = map (x:) (f xs)
combN f xs = concatMap (combN' f) (tails' xs)

comb :: [a] -> Int -> [[a]]
comb xs n = (iterate combN comb1 !! (n-1)) xs

使用例
comb [1,2,3,4,5] 3
==>
[ [1,2,3], [1,2,4], [1,2,5], [1,3,4], [1,3,5]
, [1,4,5], [2,3,4], [2,3,5], [2,4,5], [3,4,5] ]

n重ループを分解した感じ
自分で書いたコードだが、なんか自分でムカツク
0057462012/03/21(水) 23:34:59.74
>>56
あれ、一つ前のバージョンをコピペってしまった
tails' は init . tails で、定義しないで直に使ってます

結局こんな感じ

comb1 xs = map (:[]) xs
combN' f (x:xs) = map (x:) (f xs)
combN f xs = concatMap (combN' f) (init $ tails xs)

comb xs n = (iterate combN comb1 !! (n-1)) xs
0058デフォルトの名無しさん2012/03/22(木) 01:58:12.62
combination だけはポインタある方が楽だわ
0059デフォルトの名無しさん2012/03/22(木) 08:19:30.23
comb 0 _ = [[]]
comb _ [] = []
comb n (x:xs) = map (x :) (comb (n-1) xs) ++ comb n xs
どうしてもってんならlength xsを最初に数えて持ち回せ。
0060462012/03/22(木) 12:40:04.54
>>59
美しいですね

こういうセンスあるコードがスラスラと書けるようになりたい
0061デフォルトの名無しさん2012/03/22(木) 22:49:41.00
(x :)
ストライクウィッチーズのあの人に見えた
0062デフォルトの名無しさん2012/03/25(日) 04:51:06.13
(;x;)
0063デフォルトの名無しさん2012/03/25(日) 09:08:01.99
(:[]) ← 口を開けた顔; データを1つ食べて内容物のリストを返す
0064デフォルトの名無しさん2012/03/25(日) 22:18:09.21
書籍「関数型プログラミングの楽しみ」の練習問題 3.1 を考えてみました

これが非正格関数 h に対しては成り立たないのは、
h が実際にどのような関数なのか定義が分からないことには変換が進まないからでしょうか

例えば xs = Nil とした場合でも、

(h . foldL f e) xs
--> h (foldL f e xs)
--> ・・・ h を何に変換すれば良いのか不明 ・・・

もし h が正格関数なら、ここで

--> h (foldL f e xs)
--> h (let g zs = case zs of Nil -> e; Cons y ys -> f y (g ys) in g xs)
--> h (let g zs = case zs of Nil -> e; Cons y ys -> f y (g ys) in g Nil)
--> h e
--> e'

と変換が進む
もちろんこの場合は foldL f' e' からの逆方向の変換もできて等号が成り立ち、
また xs = Cons y ys の場合も構造的帰納法で等号が成り立つことが証明できる

非正格関数 h に対しては、h から先に評価しなければならず、
例えば極端な話 h = h では一向に簡約が進まなくなるから成り立たない場合もある

という理解で良いでしょうか
0065デフォルトの名無しさん2012/03/25(日) 23:14:33.16
hの正格性が必要なのは以下の等式が必要だからでしょう

q (case e of { p1 -> e1; ... pn -> en }) = case e of { p1 -> q e1; ... pn -> q en }
0066642012/03/25(日) 23:21:45.04
すいません、けっこう混乱しています

それは、単に問題文を言い換えただけではないのですか?
結局 >>65 の場合も「なぜ q が非正格関数だとその等式が成り立たないのか」
を説明しないと練習問題 3.1 を説明したことにはならないような気がするのですが
0067デフォルトの名無しさん2012/03/26(月) 08:28:16.54
xs := ⊥
で両辺計算してみな
0068デフォルトの名無しさん2012/03/26(月) 22:04:32.42
64じゃないけど、

foldL f' e' ⊥ = ⊥
foldLは第三引数について正格な性質を持ってる。
ところが、例えばh = const xで非正格な関数とすると
(h . foldL f e) ⊥ = x
だから、h . foldL f e = foldL f' e'の融合則が成り立つには
hは正格関数でないといけない、ってことかな?
0069デフォルトの名無しさん2012/03/27(火) 03:34:38.13
Haskellを新しく勉強しようと、
まず日本語マニュアルhrefのインストールを下のサイトを参考に
「Haskellのリファレンスマニュアルを検索するツール href」
http://d.hatena.ne.jp/pcmaster/20090215/p2

$ make
$ mkdir -p /usr/local/share/href
$ export HREF_DATADIR=/usr/local/share/href
$ make bindir=/usr/local/bin install
$ sudo mkhref ref/*
mkhref: HREF_DATADIR: getEnv: does not exist (no environment variable)
このエラーが出て、ここから先に進めません。
こちらの環境はubuntuでghc7.0.3、libghc-network-devのパッケージがインストール済みです。
getEnv関数が手持ちのパッケージでは用意されていないのでしょうか、環境変数の与え方は大丈夫でしょうか
どなたかインストールできない原因分かりましたら教えていただけるとありがたいです
0070デフォルトの名無しさん2012/03/27(火) 19:41:43.97
漏れもハスケるためにう分津にGHCとか入れて準備万端だぜ
0071デフォルトの名無しさん2012/03/27(火) 21:53:06.47
>>69
sudoでmkhref ref/*したときに、
export HREF_DATADIR=/usr/local/share/hrefが効いてないと思う。
それと、ubuntuって/usr/local/share/href が一般ユーザで作れるのかね?
make instalもスーパユーザでやる必要があると思う。

適当にやるならこんな感じか。
$ make
$ sudo bash
# mkdir -p /usr/local/share/href
# export HREF_DATADIR=/usr/local/share/href
# make bindir=/usr/local/bin install
# mkhref ref/*
おわったらスーパユーザを抜けること

使うときもexport HREF_DATADIR=/usr/local/share/hrefが有効になるよう、
~/.profileかどっかに書いておく。
0072デフォルトの名無しさん2012/03/27(火) 22:40:37.45
>>71
Haskell とは何の関係もないが、

$ sudo bash
これやるくらいなら
$ su -
でいいと思うんだが
0073デフォルトの名無しさん2012/03/27(火) 23:34:13.91
>>72
su - だと、cdしなおさないといけないじゃん。
まあ、suだけにすればいいかもだが、rootのパスワードはなるべく入力したくないな。
0074デフォルトの名無しさん2012/03/28(水) 02:38:54.37
sudo -s はどう?
0075デフォルトの名無しさん2012/03/28(水) 03:12:56.50
スーパユーザになれれば何でもいいだろw
>>69は良く分かってないみたいだから、suでrootのパスワード入力させとくのが確実
sudoは設定ちゃんとしてないとうまく動いてくれないかもしれない

まあ、でも、sudo mkhref ref/* が一応実行されてるみたいだから、たぶんsudo -sでもsudo bashでもいいかな
0076デフォルトの名無しさん2012/03/28(水) 08:12:21.70
sudo -E でしょ
0077デフォルトの名無しさん2012/03/28(水) 23:03:43.68
Control.Exception に bracket 関数があるけど、
これって第1引数のアクション(イニシャライザ)で例外が発生しても、
第2引数のアクション(ファイナライザ)は実行さないよね

bracket 関数と同じ形で、
イニシャライザで例外が発生してもファイナライザが実行される関数は
標準ライブラリで用意されてるの?

それとも自作する必要がある?

同じ形というのは、イニシャライザの戻り値が
ファイナライザやコンピュテーションの引数として利用できるという意味
0078営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 08:51:07.11
初期化が終わってないのにファイナライズとな…?
0079営利利用に関するLR審議中@詳細は自治スレへ2012/03/29(木) 12:38:05.02
>>78
あぁそうか
言われてみれば設計がおかしいな・・・

見直してみるよ
ありがと
0080営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 18:39:21.66
yesodの中の人がcabalの代わりのcabalaって記事出してたけど、
あれエープリルフールなんか?
0081営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 18:52:29.02
cabal は実際に改善点が少なくないわけで、
エープリルフールならもっと分かりやすいネタにして欲しいもんだ
0082営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 19:15:16.28
yesodくらいは、もうはじめからHaskellプラットフォームに入れておいてほしい
0083営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 20:55:29.57
>>82
なんで?
0084営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 21:07:15.70
>>83
スタンドアロン環境で使いたいから
0085営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 21:11:00.55
yesodにcabalaでゆだやんってよく分かるんだけど、宗教色が強いのは
ちょと苦手かも。CLISPも同じなんだがな。
0086営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 21:30:33.12
>>84
なんだよ、それなら Haskell Platform に hmatrix 入れろよとか、
yamapa 入れろよとか、wx や gtk2hs 入れろよとか、iteratee 入れろよとか

そういう単なる「〜だったらいいなぁ」というチラ裏と変わらんじゃん

いや、べつにそういうのがダメとは言わないけど、
もう少し Haskell 全体を考えたり、
もう少し本質的なことから論理的に導き出した要望かと思って期待してた
0087営利利用に関するLR審議中@詳細は自治スレへ2012/04/01(日) 21:32:41.92
そう言えば、久々に yampa がバージョンアップしたな
0088営利利用に関するLR審議中@詳細は自治スレへ2012/04/02(月) 05:31:58.67
>>87
ホントだ。
でもAnimasの改良取り入れただけかな?
コメントは書いてんのに、ドキュメントのスカスカっぷりは相変わらずゆがみねぇな…。
0089営利利用に関するLR審議中@詳細は自治スレへ2012/04/02(月) 12:45:15.77
>>86
「Haskell 全体を考えたいなぁ」もチラ裏と変わらない
0090営利利用に関するLR審議中@詳細は自治スレへ2012/04/02(月) 18:36:33.86
プログラミングHaskell とかゆー本買って来たぜ
今夜から枕の下に敷いて勉強する
これで漏れも立派なハスケラーだ
0091営利利用に関するLR審議中@詳細は自治スレへ2012/04/03(火) 01:13:37.94
「プログラミングHaskell」って教科書としては優れてるとおもうけれど、
自習書としてはどうなんだろう。
新しい構文とかがけっこう説明なしにでてくるよね。
まあ文法は別の本で見ればいいのか。

あと8章が……

0092営利利用に関するLR審議中@詳細は自治スレへ2012/04/03(火) 06:28:43.11
>>91
パーサーは難しいけど、モナドと同じで動かしてみないと、どういう働きか実感できない所があるな
ふつケルでも結局Wiki作る時に書かされるから、この本だけの特別ではない
(初心者置いてきぼりにしないように頑張ってる分だけプログラミングHaskellの方が親切ではある)
0093営利利用に関するLR審議中@詳細は自治スレへ2012/04/03(火) 18:52:31.15
HaskellWikiを流し読みしてると色々面白そうなプロジェクトを見つけるのだけれど、
ほとんど開発が止まっているように見えるのは何故だろう
0094営利利用に関するLR審議中@詳細は自治スレへ2012/04/03(火) 18:58:32.29
他の言語と違って研究の類いも含まれてるからね。
大学の研究ならほとんどが死んでいるプロジェクトで当然。
卒業したら放置なものが多いから。
これには悪い面もあるが、常に新しい風が吹き込む理由にもなってる。
そういうことも理解して使いこなしたほうがよい。
HaskellWikiも単なる道具に過ぎないのだから。
0095営利利用に関するLR審議中@詳細は自治スレへ2012/04/04(水) 08:26:36.31
そのまま枯れたものとして扱っていいものもあると思うよ。
常に更新されている方がいいとも限らないのでね。
依存関係でおかしくなってるものを放置されてると困るけどね。
0096営利利用に関するLR審議中@詳細は自治スレへ2012/04/05(木) 22:47:55.68
みんなHaskellに飽きたんだよ
0097営利利用に関するLR審議中@詳細は自治スレへ2012/04/06(金) 23:06:06.65
ghc7.2から[リスト内包表記]をモナドにも使えるようになったんだね
有用な使い道を教えてくれ
0098営利利用に関するLR審議中@詳細は自治スレへ2012/04/07(土) 07:53:10.20
対角版リストモナドなんかも内包表記で書ける、とか
0099営利利用に関するLR審議中@詳細は自治スレへ2012/04/07(土) 08:50:43.42
論理プログラミングDSLを自作モナドで簡単にかくためのもの
0100営利利用に関するLR審議中@詳細は自治スレへ2012/04/08(日) 15:11:00.50
cabal の executable-profiling オプションって何に使うの?
0101営利利用に関するLR審議中@詳細は自治スレへ2012/04/08(日) 15:50:48.11
cabal で何かパッケージをインストールすると gcc.exe が起動するけど、
インストール処理が終わった後も gcc.exe のプロセスが消えない

これって、正常じゃないよね
0102営利利用に関するLR審議中@詳細は自治スレへ2012/04/08(日) 16:32:35.76
>>101
どうも、インストール処理の途中で強制終了させた場合に、
ghc.exe のプロセスは消えるけど gcc.exe のプロセスが残るみたいだ

理由はよく分かんないけど、まぁいいや
スレ汚してすまん、気にしないことにして自己解決した
0103営利利用に関するLR審議中@詳細は自治スレへ2012/04/08(日) 22:45:37.91
gtk パッケージにある Graphics.UI.Gtk.Abstract.Widget.onExpose とかの関数って、
Deprecated のカテゴリに分類されてるんだけど、これって非推奨なんだよね

再描画要求のイベントが来た時に反応したいんだけど、
本当は何使えば良いの?

それとも非推奨じゃなくて、近い将来消える予定だけど、
とりあえず今のところはこれ使っとけって意味?
0104営利利用に関するLR審議中@詳細は自治スレへ2012/04/10(火) 13:50:38.88
普通のhaskellにあるdata型フィールドの更新

data Anchor = A{aUrl,aLabel ::String}

href :: Anchor
href = A "http://hoge.com/" "hoge page"

main = do
print href
print (href {aLabel = "that"})

このコードだけだとAnchor型がprintの引数になるShowクラスのインスタンスではないから、
表示されないのはいいとして、
再代入(実際は再定義)「href{ aLabel = "that"}」
この上のコードでhrefのaLabelフィールドが"that"に変わって、aUrlはそのままになるらしいんだけど
普通にコンパイルエラー、これは可能なの?
0105営利利用に関するLR審議中@詳細は自治スレへ2012/04/10(火) 14:22:21.53
href { aLabel = "that" }の型はAnchorだ
aLabelを更新してaLabelの値が返ってくるわけじゃない
Cの構造体とかはこうだけど

レコード更新構文は、既存の値から一部を変更しただけの新しい値を作りたいとき、
A { aUrl = aUrl href, aLabel = "that" }
と書かなきゃいけないところを
更新する必要のあるフィールドだけ書けばいいだけにする、というただの構文糖衣。
0106営利利用に関するLR審議中@詳細は自治スレへ2012/04/10(火) 14:44:21.12
>>105
printが可能かではありません、誤解を招いてすいません(原文のままコードを記述したため)

href { aLabel = "that"}は実質、A { aUrl = aUrl href, aLabel = "that" }で
これはhrefを再定義する構文ではなくて、hrefとは別のAnchor型で,hrefのaLabelフィールドだけ変えた値を作っているということですね
hrefの再定義だと思っていたので、
href {aLabel = "that"}を単文でdoの中に入れたときにエラーでん?と思ったのですが納得しました
0107デフォルトの名無しさん2012/04/13(金) 18:13:46.76
なんかコメントあしばらく出てないけど、haskellの皆さんどうしたの?
0108デフォルトの名無しさん2012/04/13(金) 21:31:53.54
Windows7 で ghc や ghci を起動させようとすると、
初めの1回だけ、よく 0xc0000142 のエラーが出るよね

あれ何なの?

どちらももう一回トライすれば普通に起動するから、
そのまま使い続けてるけど、なんかマズイかな
0109デフォルトの名無しさん2012/04/13(金) 23:26:35.58
wx パッケージが 0.90 にバージョンアップして、
とうとう wxWidgets 2.9 only になった
0110デフォルトの名無しさん2012/04/14(土) 16:01:19.30
>>107
特に質問することが無いんだもん・・・
初心者でも簡単に書けるようになるのは良いけど、スレが盛り上がらないのも確かだな・・・
0111デフォルトの名無しさん2012/04/14(土) 16:10:39.33
>>108
出たこと無い・・・32ビットの頃では何も問題なかったし、今の64ビットでもghci上で(横に)長めの入力すると挙動が怪しくなるくらいかな
それでもrubyのirbよりは安定してるが・・・(すぐ激重になって使い物にならん)
0112デフォルトの名無しさん2012/04/14(土) 17:12:23.96
wx が ghc 7.4.1 環境にまともにインストールできるようなったのは喜ばしいし、
styledTextCtrl などのコントロールもちゃんと使えるようになったのはいいんだが、
ghc のリンク処理と、出力された実行ファイルの起動に時間がかかるようになった

特にリンクは時間かかりすぎ
コンパイル自体は普通に速いのに、リンクでフリーズしたかと思った
これは、wxWighets の方のビルド設定で改善できるんだろうか

あと、相変わらず ghci 上では実行できない

まぁ些細な問題だ
あとは wxPack が 2.9 にバージョンアップすれば初心者にも勧められる
0113デフォルトの名無しさん2012/04/14(土) 23:40:32.24
>>112
今 GLCanvas の対応とかどうなってるのか色々試してるけど、
前言撤回、些細な問題ではなかった

このリンクの遅さは異常だ、イライラする

メインウィンドウをひとつ表示するだけのプログラムでも、
オプション無しで ghc を実行して exe ファイルへのリンクするのに 50 秒以上、
その exe ファイルを実行してからウィンドウが表示されるまで 5 秒以上かかる

wxWidgets のビルドオプションをモノリシックと非モノリシックで両方試したけど、
どちらもリンクや起動の時間に対して目に見える影響はなかった

これ、俺だけ?
なにか改善する方法は無いんだろうか

とくに無ければ、少なくともバージョンアップするまでは gtk2hs を使うしかないな

[環境]
Windows7
ghc 7.4.1
wx-0.90
0114デフォルトの名無しさん2012/04/15(日) 08:47:17.26
副作用論争は、読んでいて面白かったが。今論争はないのか?。

不毛かもしれない宗教論争とはいえ、純粋志向のハスケラをおちょくっているのを見るのは楽しい。

この論争はハスケルには処理系を含めてあらゆるレベルで副作用がない、
という無理な主張から始まったと思う。

言語自体には副作用がない、でも、処理系には副作用があるようにみえる。
でも、それは勘違いだ。ハスケル処理系にもまったく副作用がないのだ。
副作用が発生しているのはハスケル処理系でなく、ハスケル処理系が
生成したDanoMoi処理系だ。

という主張がありましたね。
0115デフォルトの名無しさん2012/04/15(日) 09:33:43.50
釣れますか?
0116デフォルトの名無しさん2012/04/15(日) 09:34:37.44
頭悪そうw
0117デフォルトの名無しさん2012/04/15(日) 10:14:32.40
ごめんなさい

隔離スレ  http://toro.2ch.net/test/read.cgi/tech/1333801607/
で暴れてた馬鹿がこっちに逃げて来たみたいです
FizzBuzzすら書けない口だけ野郎なんで無視してもらって結構です
0118デフォルトの名無しさん2012/04/15(日) 11:13:37.90
>>114
http://www.kmonos.net/wlog/65.html
> 15:49 06/09/08 DanoMoi と Haskell
>決して「実際にそういう実装/理論になっている」という話ではなく、
>「こういう風に考えとけばわかる気がする」みたいな話なのでよろしくお願いします。
> ・Haskell プログラムには、一切いかなる意味でも副作用は存在しない
> ・Haskell プログラムは、"DanoMoi" というプログラミング言語のプログラムを生成する。
>"DanoMoi" という名前および概念は今私が勝手に考えたので適当ですよ。

プログラムと処理系は同じ意味だと思っているのですか?
0119デフォルトの名無しさん2012/04/15(日) 13:41:43.29
スパコンの世界じゃ、OSとハードウェアは同じ意味だしな…
0120デフォルトの名無しさん2012/04/15(日) 13:43:34.33
>スパコンの世界じゃ、OSとハードウェアは同じ意味だしな…
ないない。
0121デフォルトの名無しさん2012/04/15(日) 14:04:53.77
>>120
新しく世界一のスパコンを作った = ハードウェアとそれ専用のOSを作った(むしろハードウェアはそのままでOSだけを改良した)
0122デフォルトの名無しさん2012/04/15(日) 14:15:40.44
SISCマシンの設計図はハードウェアの設計図だろうか? ソフトウェアの設計図だろうか?
0123デフォルトの名無しさん2012/04/15(日) 15:59:38.46
>>119
アホ丸出しで恥ずかしくないの?
0124デフォルトの名無しさん2012/04/15(日) 16:04:00.61
>>123
大学でスパコンの講義受けるとOSとハードは同じだと教わるよ
0125デフォルトの名無しさん2012/04/15(日) 16:13:02.27
システムソフトウェアとハードウェアを一緒に開発しているだけの話で「同じ」ではない。
0126デフォルトの名無しさん2012/04/15(日) 16:24:20.62
>>125
スパコンは、ファイル管理システムとハードウェアとは不可分
逆に言うと、OSだけを取り出せと言われたら、LSIをペンチでいくつか取り出すことになる

DOS/V機やUNIXを使っていると分かりずらいが、UNIXで言うと、常駐ソフトとカーネルの一部がハードウェアそのものになってる
0127デフォルトの名無しさん2012/04/15(日) 17:03:17.98
何というデマ…
0128デフォルトの名無しさん2012/04/15(日) 17:08:26.97
通常ならOSで実現されている機能の一部がハードウェア上で実装されているとしても、
それを「OSとハードウェアは同じ意味」とか言っちゃうのは痛い。
さらにスパコンと呼ばれるものがすべからくそういう構成をとってると思い込んでるのも痛い。
0129 ◆0uxK91AxII 2012/04/15(日) 18:19:56.27
>>126
誰が教えたの?
0130デフォルトの名無しさん2012/04/15(日) 18:33:14.08
> UNIXで言うと、常駐ソフト

デーモンという言葉すら知らない幼稚園児レベルのド素人は、まずは幼稚園に行けば?
0131デフォルトの名無しさん2012/04/15(日) 18:36:50.24
だえもんさんなめてんの?
0132デフォルトの名無しさん2012/04/15(日) 18:38:20.84
>>126
ノードやバスのファームウェアも含めてアップデートするんで、ソフトウェアだけで配布されてますが?
使ったことないんじゃないの?
0133デフォルトの名無しさん2012/04/15(日) 18:43:44.98
スレチなやつは全員立ち去れ
0134デフォルトの名無しさん2012/04/15(日) 19:25:43.97
>>126, >>128
内容云々より、分かりずらいだのすべからくだの
日本語が気になってしょうがない
0135デフォルトの名無しさん2012/04/15(日) 20:38:41.03
ああ、日曜日だ・・・
0136デフォルトの名無しさん2012/04/16(月) 07:13:57.36
月曜日です。
関数型言語使いには無職が多いと聞きます。
皆が働いている時間に勉強や議論ができます。良かったですね!
今日も有意義に過ごしましょう!
0137デフォルトの名無しさん2012/04/16(月) 07:23:29.97
働いてるから、という不勉強の言い訳は、頭のおかしい企業以外では通らないよw
0138デフォルトの名無しさん2012/04/16(月) 07:23:33.83
みんな賢いからyoung retireして、余生を関数型言語のプログラミングで楽しんでるんだよ。知らなかった?
0139デフォルトの名無しさん2012/04/16(月) 07:53:15.45
>>136
今日も一日ドカタ仕事頑張ってね!
0140デフォルトの名無しさん2012/04/16(月) 07:54:30.89
匿名掲示板で職業なんてどうでもいいので少しはHaskellの話でもしませんか
0141デフォルトの名無しさん2012/04/16(月) 09:22:55.36
Haskellの話なんざHaskell Cafeだの#Haskell等で好きなだけしてろ
0142デフォルトの名無しさん2012/04/16(月) 10:07:06.63
ボクの分からないむずかしい話しちゃだめー
0143デフォルトの名無しさん2012/04/16(月) 21:46:45.82
>>128
実は正確にいうとスパコンに限らず、そこら辺のAT互換機もハードウェアとOSは同一
(スパコンはハードウェアとOSをセットで開発しないと、ハードウェアを作ったとは言わない)
特にHaskellを扱うようなソフトウェア科学から言えば同一と言わなければならない
理由はハードウェアを抽象化したモノがOSだから

ゲート回路だけでOS全部を構築しててもC言語でOS全部を書いていても、プログラムからは一切区別できない
区別できないってことは同じということ
0144デフォルトの名無しさん2012/04/16(月) 22:36:02.49
意味わかんない。日本語でおk、レベル。

たとえばforkシステムコールをどうやって論理回路で実装するのか、論文が一本でもあったら示してくれ。
0145デフォルトの名無しさん2012/04/16(月) 22:42:55.75
>>144
相手にしちゃダメ
0146デフォルトの名無しさん2012/04/16(月) 22:46:57.64
>>144
論理回路でチューリングマシンを実装すればいいじゃん
0147デフォルトの名無しさん2012/04/16(月) 22:52:33.55
forkってメモリコピーするだけじゃん
0148デフォルトの名無しさん2012/04/16(月) 23:00:17.85
>>144 >>146
USBメモリと同等のモノはFFとNANDゲートだけで構成できる
USBメモリの中にOSを入れることができる
つまり論理回路しかなくてもOSは構成できる
0149デフォルトの名無しさん2012/04/16(月) 23:06:10.28
紙と鉛筆でも構成できそうだな
0150デフォルトの名無しさん2012/04/16(月) 23:12:15.14
>>148
OS → Haskellの言語処理系

USBメモリと同等のモノはFFとNANDゲートだけで構成できる
USBメモリの中にHaskllの言語処理系を入れることができる
つまり論理回路しかなくてもHaskllは構成できる

>>150 相手しちゃダメっ
0151デフォルトの名無しさん2012/04/16(月) 23:13:33.35
なんやその矢印は
シミュレーション関係とかΣ代数ホモモルフィズムとかちゃんと意味かけやぼけー
■ このスレッドは過去ログ倉庫に格納されています