[[Overlay GHC]]

#contents

* 素材突っ込み [#qd157ccc]

#article
**例題(リスト: 以下のFIXMEを補完して、奇数のみを選択する) [#n58996c2]
>[[doi]] (2007-05-12 (土) 14:53:53)~

 main(I) :- only_odd(I, O), output(O, Os)@this_node, io:outstream(Os).
 
 output([X|Xs], Os) :- true | Os = [write(X), nl|Os1], output(Xs, Os1).
 output([], Os) :- true | Os = [].
 
 only_odd(FIXME, Os) :- N mod 2 =:= 0 | only_odd(Ns, Os).
 only_odd(FIXME, Os) :- N mod 2 =\= 0 | Os = FIXME, only_odd(Ns, Os1).
 only_odd(FIXME, Os) :- true | Os = [].

//

#comment

**GHC参考資料! [#c2d11930]
>[[doi]] (2007-05-12 (土) 14:37:06)~
~
- 上田先生自身による入門: http://www.ueda.info.waseda.ac.jp/~ueda/readings/GHC-intro.pdf~
- KLIC講習会テキスト: http://www.klic.org/software/klic/lang/lang.html~

//

#comment

**[wija FAQ]: javaで日本語文字が化ける [#a1c60148]
>[[doi]] (2007-05-12 (土) 14:11:09)~
~
$JAVA_HOME/jre/lib/fonts/fallback というディレクトリを作って、そこにTrueTypeフォントをコピーするといいかも。~

//

#comment

**[wija FAQ]: iTunesが立ち上がるのですが [#b7c98c02]
>[[doi]] (2007-05-12 (土) 14:05:53)~
~
仕様です。もし気になる場合は、tunesプラグインの連携を切ってください。~

//

#comment

**素数生成プログラム [#y9d7da64]
>[[doi]] (2007-05-12 (土) 14:03:01)~
~
http://www2.media-art-online.org/%7Eks91/primes.ghc より~

 :-main(100).
 main(Max) :- primes(Max, Ps), output(Ps, Os), io:outstream(Os).
 
 output([P|Ps], Os) :- true | Os = [write(P), nl|Os1], output(Ps, Os1).
 output([]    , Os) :- true | Os = [].
 
 primes(Max,Ps) :- true | gen(2,Max,Ns), sift(Ns,Ps).
 
 gen(N,Max,Ns) :- N=<Max | Ns=[N|Ns1], N1:=N+1, gen(N1,Max,Ns1).
 gen(N,Max,Ns) :- N> Max | Ns=[].
 
 sift([P|Xs],Zs) :- true | Zs=[P|Zs1], filter(P,Xs,Ys), sift(Ys,Zs1).
 sift([], Zs) :- true | Zs=[].
 
 filter(P,[X|Xs],Ys) :- X mod P=:=0 | filter(P,Xs,Ys).
 filter(P,[X|Xs],Ys) :- X mod P=\=0 | Ys=[X|Ys1], filter(P,Xs,Ys1).
 filter(P,[], Ys) :- true | Ys=[].

//

#comment

**関係するlink [#u4d4ba98]
>[[doi]] (2007-05-12 (土) 13:57:31)~
~
- http://java.sun.com/~
- http://www2.media-art-online.org/nightly/~

//

#comment

**lib-ioの中身を大公開! (as source code example?) [#qbd7de52]
>[[doi]] (2007-05-12 (土) 13:43:05)~
~
% $Id: //depot/scm/main/java/org/media_art_online/ghc/lib/lib-io.ghc#3 $~
% $DateTime: 2007/04/19 05:15:52 $~
~
:- module io.~
~
outstream([write(X)|Os]) :- write(X) | outstream(Os).~
outstream([print(X)|Os]) :- write(X) | outstream(Os).~
outstream([nl|Os])       :- nl       | outstream(Os).~
outstream([])            :- true.~
~
instream([write(X)|Is]) :- write(X) | instream(Is).~
instream([print(X)|Is]) :- write(X) | instream(Is).~
instream([nl|Is])       :- nl       | instream(Is).~
instream([read(X)|Is])  :- read(X1) | X = X1, instream(Is).~
instream([])            :- true.~

//

#comment

** サンプルプログラム [#ybba649f]

- &ref("ave.ghc");  一つのストリームでの加重平均を出す
- &ref("compact.ghc");  一つのストリームから重複する数字を削除する
- &ref("fibo.ghc");  フィボナッチ数を求める
- &ref("merge.ghc"); 二つのストリームを一つのストリームにまとめる
- &ref("prime.ghc"); 素数を求める

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS