5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

関数型言語Part IV

1 :デフォルトの名無しさん:04/05/04 14:53
Lisp Scheme ML Haskell FP Mirranda など
関数型言語について話し合いましょう


関連スレ

関数型プログラミング言語ML
http://pc3.2ch.net/test/read.cgi/tech/1012445015/

関数型プログラミング言語Haskell
http://pc3.2ch.net/test/read.cgi/tech/1013846140/

LISP Scheme Part6
http://pc3.2ch.net/test/read.cgi/tech/1031560687/

Emacs Lisp
http://pc3.2ch.net/test/read.cgi/tech/1004551074/



2 :デフォルトの名無しさん:04/05/04 14:54
2げっと

3 :デフォルトの名無しさん:04/05/04 14:55
前スレ

関数型言語Part3
http://pc5.2ch.net/test/read.cgi/tech/1037527388/

4 :デフォルトの名無しさん:04/05/04 14:58
前スレの最後では、「表示的意味論の定義は、何か。」という基本質問がなされ、
それに対する有効な回答がないままw、スレが終了してしまいました。

このスレでは、煽り厳禁で、学部生に理解できる関数型言語の初歩を、扱っていきましょう。

5 :デフォルトの名無しさん:04/05/04 15:02
仕切り厨うざい。

6 :デフォルトの名無しさん:04/05/04 15:03
>>4
> 前スレの最後では、「表示的意味論の定義は、何か。」という基本質問がなされ、

せからしか話はよか。
プログラムなんてのは見た目で何とのう解った気になればそれで良か、
ちうのが表示的意味論たい。どーせコマか話はわからんっちゃろ?

7 :デフォルトの名無しさん:04/05/04 15:04
【表示的意味論】 http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/denotationalsemantics.html

表示的意味論ではプログラムに対して、既定義の数学オブジェクトを対応付ける
(プログラムオブジェクトから数学オブジェクトへの変換を定義する) 事により意味を定義する。
具体的にはここのプログラムオブジェクトに対して意味関数を対応付ける。
     ┌──────┐
     │ プログラム. │
     └───┬──┘
           │
           │  意味関数
           │
           ↓
     ┌──────┐
     │数学的な表示│
     └──────┘

具体的には構文要素に対応付けられる意味関数の集合として定義する。

 M : T → D

Tは構文要素であり、Dは表示の集合であり、意味ドメインと呼ばれる。



8 :デフォルトの名無しさん:04/05/04 15:12
【操作的意味論】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/operationalsemantics.html

プログラムの実行結果を判定できるような仕組みを与える事で意味を定義する。
すなわちプログラムを解釈実行できるようなオートマトン(自動機械)を定義する事にな る。
しかしながら何らかの意味では、実行すると言う事で、実装等の関わりが強くな りすぎるという欠点を持つ。

     ┌──────┐            ┌──────┐
     │ プログラム. │            │    入力   │
     └───┬──┘            └───┬──┘
           └───────┬───────┘
                       │操作的仕様に基づく解釈実行
                       ↓
                 ┌──────┐
                 │  実行結果  │
                 └──────┘



9 :デフォルトの名無しさん:04/05/04 15:13
一般には次のようなイメージになる。定義域をNとしてProgram pを実行する

 program_effect(p:Program, input:N): N* is
  do
   result := instruction_effect(p.body, input, <>);
  end

rを入力、fを内部状態として、命令iを実行する

 instruction_effect(i:Instruction, r:N, f:N*): N x N* is
  do
   inspect i
   when Double_to_even then result := <2*r, f>
   .......
  end

この様にプログラムをその構成要素に分割し、構成要素毎にどの様な動作をするかを定義する。
この様な定義であるので、必要以上に動作に依存してしま うと言う欠点がある。

10 :デフォルトの名無しさん:04/05/04 15:15
【公理的意味論】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/axiomaticsemantics.html

公理的意味論では意味をプログラムのセオリーとして記述する。
そしてセオリー の証明という作業を通じて、意味の正しさを確かめる。
セオリーは以下の3 つの要素から構成される

  ・構文規則
  ・公理
  ・推論規則

そして、プログラムαを次のような形式で表現する

              {事前条件}α{事後条件}

これをpre-post式と呼ぶ。公理と推論規則はこのpre-post式を利用する。
この式は、事前条件が成り立っている(真である)という条件下でαを実行すると 事後条件が成り立つ、
と言う事を表現している。そして公理的意味論はこの 式を証明する(真偽を判定する)手段を提供している。
具体的にはαが文の列とするし、それをα1、α2、....、αnとすると、次のような式の列を順次証明する事になる

              {事前条件1}α1{事後条件1}
              {事前条件2}α1{事後条件2}
              ......
              {事前条件n}αn{事後条件n}

ここで事後条件iは事前条件i+1と同じものである。
公理としては、プログラミン グ言語の各基本要素に対して、pre-post式を与える事になる。

---------------------------------------------------------------------------------------------

11 :デフォルトの名無しさん:04/05/04 15:17
では例題のプログラミング言語の定義を考える。公理的意味論の場合も個々の命 令に対してpre-post式を定義する事になる

 {P(register,file)} Double_to_even {even(register) ∧ P(register/2 ,file)}

 {P(register,file)} Double_to_odd {odd(register) ∧ P((register-1)/2 ,file)}

 {P(register,file)} Halve {P(2*register ,file) ∨ P(2*register+1, file)}

registerは入力として与えられた変数であり、fileは実行環境における局所的な 値の集合である。またpre、postの条件におけるregisterとfileは各々 Double_to_evenの実行前と実行後の値を意味する。

--------------------------------------------------------------------------------

公理的手法はこの様に意味を定義するためのものとしてだけではなく、
プログラ ムの証明のための手段としても使われている。
すなわちプログラム全体を以下の様にpre-post式で表し、
プログラムが満たすべき条件を事後条件として、
この式を分割し、各式を証明する事により、
プログラムが正しいと言う事が 証明できた事になる、という物である

               {事前条件}プログラム{事後条件}

例えばa,b,cを入力として、それを係数とする二次方程式の解をx,yに求めるプログラムをPとすると、
その証明のための式は次の様に書ける

     {a,b,cは任意の実数、但しb*b-4.0*a*c>0}P{a*x*x+b*x*c=0 AND a*y*y+b*y+c=0}


12 :デフォルトの名無しさん:04/05/04 15:19
【意味論】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Semantics.html

2つの観点から、意味が明確に定められている必要がある。
プログラマの視点:自分の書いたプログラムがどの様な動作をするの かを正確に理解する必要がある。これが曖昧であれば、作成したプログ ラムの動作は実行によってしか確認できない
コンパイラ作成者の視点:プログラムに対してどの様な目的コードを 生成すればよいかを正確に理解する必要がある。これが曖昧であれば、同 じプログラムでもコンパイラによって動作が異なる可能性がある。
ユーザはコンパイラは全て正しくコンパイルすると考えているが、コンパイラの 作成者の立場から考えるならば、作成したコンパイラの正しさを何に基 づいてテストするのか?
例えば次のような命令列を考える

 x = 2;
 x = x++;

x++はxの値を評価した後、その値を1増やすと言う事であるので、...
このように自然言語だけによっていた場合、種々の曖昧性が生じる。この様に意味を正確に定義する事は重要であるが、定義の仕方によって次のよう な手法が考えられている
意味論について述べる前に理解するために必要となる数学 基礎について解説しておく。

  ・操作的意味論 >>8-9
  ・公理的意味論 >>10-11
  ・表示的意味論 >>7


13 :デフォルトの名無しさん:04/05/04 15:20
本章では次の様な極めて簡単なプログラミング言語を例とする。
<Program> ::= PROGRAM <Instruction> END
<Instruction> ::= Double_to_even | Double_to_odd |
Halve | Print | <Compound>
<Compound> := COMPOUND <Instruction>* END

Double_to_evenは入力を2倍する。Double_to_oddは2倍して、1を足す。 Halveは半分にする。そしてPrintは値を表示する。プログラム例としては以 下の様なものがある。
PROGRAM
COMPOUND
Double_to_even; Double_to_odd; Havlve; Print
END
END

このプログラムに対して入力が1の場合、2を出力する。

14 :デフォルトの名無しさん:04/05/04 15:28
>>7-13
長々とコピペご苦労だが、ようするに>>6ってことだろ?

15 :デフォルトの名無しさん:04/05/04 15:32
>>14 頭のおかしい人、キター
    カワイソウだから放置放置・・・

16 :デフォルトの名無しさん:04/05/04 15:33
煽りは厳禁、頭のおかしい人はスルーでどぞー。

17 :デフォルトの名無しさん:04/05/04 15:51
【プログラミング言語の意味論】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Semantics.html

では、意味はどの様に定義されるのか?

--------------------------------------------------------------------------------
【プログラムの正しさ】


構文と意味で述べたように「プロ グラムが正しい」という内容には種々のレベルがある。
しかしながら一般的 にはっきりしている事は、
正しいとは「何らかの形式で定められたルール、 条件に則っている」という事である。
逆に言うならば則っているルール を用意しない限り、正しい、正しくない、という議論は成立しない。
この様 な観点から、意味に関わるルール、条件を記述するものが意味論である。

--------------------------------------------------------------------------------


18 :デフォルトの名無しさん:04/05/04 15:51
【意味とは】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Semantics.html


プログラミング言語の世界では意味とは一般には以下の様な物と考えられている。

                     ┌───────┐
       ┌──────┐  │ プログラム又は.│  ┌──────┐
       │実行前の状態├→│ プログラム要素.├→│実行後の状態│
       └──────┘  │   の実行    │  └──────┘
                     └───────┘

プログラムの実行前にある状態(内部状態:プログラムが持つ変数の値の集合)にある時に、
実行後にどの様な状態になるか。普通は実行前の状態に基づいて実行後の状態を記述する。
例えば、変数aの値を2倍にするプログラムであれば、実行後の状態は次の様に書ける。
正確にはa以外の変数の値は変化していない事を記述する必要がある。

 実行後のa=実行前のa*2

ここで注意すべき事は実行後の状態の記述において、実行前の変数の値を利用すると言う事である。
そのためにaに対して実行前のaと実行後のaを区別する表記が必要となる。
意味とはこの様に各命令の効果を記述する物であるが、
プログラムは基本的な構成要素およびその組み合わせ規則からなる物と言える。
その観点から考えるならば、意味の記述は以下の2つのものの記述からなることになる:

1. 基本構成要素の意味
  例えば++という演算子は何を意味するか
2. 組み合わせ規則の意味
  例えば、IF C THEN S1 ELSE S2 というIF文はC,S1,S2の意味に基づき、どの様な動作をするのか?


19 :デフォルトの名無しさん:04/05/04 15:51
【まとめ】http://kaiunix.cs.shinshu-u.ac.jp/Lesson/ProgLangT/2004/Semantics.html

1. 意味論の目的は次の2点である
  1) プログラマにプログラムの一律で、曖昧性のない正しい解釈を提供する
  2) コンパイラの作成者にプログラムの一律で、曖昧性のない正しい解釈を提供する
2. プログラムの意味は基本構成要素の意味と組み合わせ規則の意味からなる
3. プログラムの意味とは内部状態がどの様に変わるかの記述である
4. 意味は構文的に認識された対象に対してのみ考える事ができる
5. 意味が定義されているプログラミング言語で書かれたプログラムは、その意味を定義する事ができる


20 :デフォルトの名無しさん:04/05/04 16:26
荒らしじみた大量コピペも結構だが、実際には表示的意味論を実用的な
プログラムに適用することはほとんどの場合現実的ではないということ
ぐらい理解してるんだろうな?

その意味では>>6と大差ねえんだよ。

21 :デフォルトの名無しさん:04/05/04 16:28
頭のおかしい人、キター
    カワイソウだから放置放置・・・

22 :デフォルトの名無しさん:04/05/04 16:29
>>20
じゃ、おまぃはこのスレに来る必要がないな。
二度と書き込みすんな。さっさと氏ね

23 :デフォルトの名無しさん:04/05/04 16:31
>>20の本業は、日雇い派遣のCOBOL運用

24 :デフォルトの名無しさん:04/05/04 16:33
>>22
表示的意味論なんて使わんでも関数型言語は色々と便利だと思うが?
それともスレタイは無視してdenotational semantics専用スレにでもするのか?

25 :デフォルトの名無しさん:04/05/04 16:33
やぁ〜ねぇ〜、
>>20みたいな底辺人生。
あたしが>>20の境遇になったらぁ〜、
んんー、さっさと富士樹海に入って命を絶つだろうな(キャハ

26 :デフォルトの名無しさん:04/05/04 16:36
「Denotational Semantics」という言葉を昨日覚えたてで、
会話で使いたくてたまらない >>24 の居るスレ。

27 :デフォルトの名無しさん:04/05/04 16:52
ネタをネタとして流せないウザい煽り厨がいるスレはここです。

28 :デフォルトの名無しさん:04/05/04 16:54
GWに2ちゃん三昧ぃぃ〜??!

キャー、ここのスレ、ヲタの巣窟だわぁ〜
スレにカキコしただけで妊娠しそう

29 :デフォルトの名無しさん:04/05/04 17:12
おめぇらっ、この糞虫どもっ、

煽りは厳禁でおながいしますヨ

30 :デフォルトの名無しさん:04/05/04 18:20
ははは、あっちの偽スレ、相変わらず文系の糞虫がのたくってるよ。
間違った人生を歩みつづけて、頭がいかれちまったんだろうね。カワイソっと。


31 :デフォルトの名無しさん:04/05/04 18:23
偽スレってなに?

32 :デフォルトの名無しさん:04/05/04 18:39
あっちの偽スレ、あいかわらずアフォが虚勢張ってるよ。
ちょっとでもこの分野でマジメに勉強した人間なら、
聞いちゃいらんないハッタリと虚勢の塊のあのおヒトがw

33 :デフォルトの名無しさん:04/05/04 18:52
>>20,>>24
プッ

きみ、来なくていいから(苦笑

34 :デフォルトの名無しさん:04/05/04 20:05
例の文系のおっさん、まだあっちの偽スレでのたくってるよ。
こっちの質問に逆質問して、悦に入ってる。カワイソウな人だ。

この業界思ってるより狭いから、
もし本当に凄い人が居て何らかの成果が出てるのなら、
とっくに2〜3回は耳に入ってきていて当然なのに、ねぇ(w
ナニを勘違いして虚勢張ってるんだかw


35 :デフォルトの名無しさん:04/05/04 20:11
>>34
何この人?
病気?

36 :デフォルトの名無しさん:04/05/04 20:17
>>35
プッ

きみ、来なくていいから(苦笑

37 :デフォルトの名無しさん:04/05/04 20:23
>>36=35 ?

だったらなんで、
大手メーカは人呼ぶとき派遣会社やA○Cに頼るんだ。
説明してくれよ。

38 :デフォルトの名無しさん:04/05/04 20:25
>>37
君みたいに、そそっかしかったり、現状認識が一般とずれてる人間は、
ややこしいから、このスレに来るな。

39 :デフォルトの名無しさん:04/05/04 20:28
>>38
どこがどう現状認識とずれてる?指摘してくれよ。

40 :!= 38:04/05/04 20:37
>>39
>>36=35 ?
>>36=34 ?のミス -> そそっかしい。
あとの文章 -> 意味不明。

一般人の認識では、>>34==>>36が有名なサイコさんです。

ということではないかな。

41 :1:04/05/04 22:01
この板の常駐粘着って、相手の知性や能力を見抜く力が著しく劣ってるね。
ふつ〜、二言三言会話をすれば、相手がどんなレベルの人間か理解できるもんだけど、
こいつに限っては、周りの人間がとんでもなくアフォーなのか、
あるいは社会から孤立した生活を送ってて、自分のレベルや格ってもんが見えて無いらしい。
そして、どうしようもなく追い詰められると、即座に相手をサイコ呼ばわり。(>>39)

悲惨な人生送ってる惨状が、手に取るようにかいま見えて、吐き気がするよ

42 :デフォルトの名無しさん:04/05/04 22:15
なんでテンプレにCleanがないの?

43 :デフォルトの名無しさん:04/05/05 00:56
前スレの終り頃から延々と名無しで罵り合いを続けてる人達は、一体何がしたいんだ?
いきなり他人をサイコ呼ばわりしたり、俺はお前より格上だとか痛い台詞キメてみたり。
いちいち煽り口調でレス付けて何になるのよ?

44 :デフォルトの名無しさん:04/05/05 01:05
痛い子なんで放置してあげて下さい

45 :デフォルトの名無しさん:04/05/05 02:39
>>43-44
なんか携帯JavaVMの開発者と知り合いっつうのが唯一の自慢の、
可哀想な文系老人コーダーだったよ。

春になると、関数型言語スレにも変な人が出て怖いね。例えば>>43-44

46 :デフォルトの名無しさん:04/05/05 03:01
>>45
変なの相手にしても、彼らの頭の中は被害妄想やらルサンチマンばっかで、
何一つ得る物が無いよ。
例えば、誰もどこにも書いていない「格上」という言葉を聞いたと主張する>>43とか、
いつも自分でサイコなネタ振って、板やスレの雰囲気を最悪にする>>43とか、
リアルに嫌でしょ。
そーゆーのにレス付けると、彼らの悪い部分がスレ全体に広がって、誰も寄り付かなくなるよ。
例えば、偽スレ「関数型言語Part4」がその実例。

47 :デフォルトの名無しさん:04/05/05 03:26
しかし、偽スレ「関数型言語Part4」に粘着してた文系老人コーダー、
なんでよりによって関数型言語に粘着してたのかな?

なんかLisp処理系を研修で作った、とかのたまうから、精一杯相手してあげたけど、
彼なりのルサンチマンなり、強い思いっつうもんは、結局よくわかんなかった。
しかも、ご老体、煽りばっかで、自分では決して関数型言語のネタ振れないのね。

関数型言語の話しないなら、スレに来る必要ないのにねぇ。何考えてるんだ、奴は。

ましてや、>>43みたく鬱病患者で、赤の他人に毒吐くだけが目的で
掲示板巡りしてるサイコは、逝ってヨシですな。

48 :デフォルトの名無しさん:04/05/05 03:38
GWだねえ・・・
そのうちキチガイ(例えば>>47)もそのうち病院が呼び戻すでしょ。
それまでの辛抱だな。

49 :デフォルトの名無しさん:04/05/05 03:40
サイコって、健常者をみると激しい怒りを覚えるらしい。
例えば、>>48がその例。

50 :デフォルトの名無しさん:04/05/05 03:40
サイコって、健常者をみると激しい怒りを覚えるらしい。
例えば、>>49がその例。

51 :デフォルトの名無しさん:04/05/05 03:45
ちなみに、このサイコ>>48は、
>>1は、関数型言語Part1の頃から居る住人だということも知らずに、
>>48のような薄っぺらい煽りをしている。
しかも>>48は、会うたび、事ある毎に、サイコな言動を繰り返して、周囲を引かせている。
これこそ、病気と言わずして、なんと呼ぶべきだろう。


52 :デフォルトの名無しさん:04/05/05 03:46
ちなみに、このサイコ>>50は、
>>1は、関数型言語Part1の頃から居る住人だということも知らずに、
>>50のような薄っぺらい煽りをしている。
しかも>>50は、会うたび、事ある毎に、サイコな言動を繰り返して、周囲を引かせている。
これこそ、病気と言わずして、なんと呼ぶべきだろう。

53 :デフォルトの名無しさん:04/05/05 03:55
>>51
> 私>>1は、関数型言語Part1の頃から居る住人だということも知らずに、

なんてことを恥も臆面もなく言いたければ
せめて名前欄に「1」と入れてからにしる

54 :デフォルトの名無しさん:04/05/05 03:57
>>52ほか
アスペルの可哀想な子供は、自分が大人になって放置してあげるしかありませんよ。
残念ながら、彼らは人間であって人間ではないので、救済してあげることは不可能です。

55 :デフォルトの名無しさん:04/05/05 03:57
>>51
俺もpart1からの住民だが、あんたちょっとおかしいと思うよ。

56 :デフォルトの名無しさん:04/05/05 05:09
この鸚鵡返しコピペ、脳内事実認定にJava擁護。
まさかこいつの正体はム板中で有名なあの人ですか?www


57 :43:04/05/05 05:57
うわ…なんかもう見境なしだな

58 :デフォルトの名無しさん:04/05/05 06:53
>>56
> この鸚鵡返しコピペ、脳内事実認定にJava擁護。

このスレで"Java"という単語を出したのは>>45と君だけなのだが、
どちらが「ム板中で有名なあの人」だと思うのですか?

59 :Aranskは激怒した:04/05/05 07:10
必ず、かの邪智暴虐の粘着を除かなければならぬと決意した。
Aranskはプログラミングがわからぬ。Aranskは、メンヘルの腐女子である。
引きこもり、同人誌で自慰して暮して來た。けれどもアナルに対しては、人一倍に敏感であった。

60 :デフォルトの名無しさん:04/05/05 07:17
>>59
馬鹿の話などどうでもいい。ここは関数型言語スレだ。
キチガイはお引き取り願おう。

61 :デフォルトの名無しさん:04/05/05 07:29
        __,,,,,, __,,,,,,
     ,.-'''"-,.-'''"-─ `ー--─'''''''''''i-、,,
   .,.-,/ ,.-,/         ,     !,,  \''"7
   (  (  ,'                 ノ ヽ-、,,/''ー'''"7
   `''|  `''|           '    ■  ``ー``ー''"
     !   !       '、     i
     '、   '、 `-=''''フ'ー''ヽ、   /ヽ、-─-、,,-'''ヽ
     \_ \_/ ヽ--く ヽ--く   _,,,..--┴-、 ヽ
                 ``""~ ``"   ̄ \> \>  
↑ Aransk 体重110kg

62 :デフォルトの名無しさん:04/05/05 11:07
>>56
自作自演レスだと思うけど、文意には同意。

wwwって、結局あの人本人でしょ。
今はAなんとかの中の人。
昔はプ逝一とか、Java曹長とか、変なコテ使ってた常駐者。



63 :デフォルトの名無しさん:04/05/05 11:08
>>55 は、たぶん午前三時の君だな。

いつも理系板や脳科学スレで、
午前三時〜四時にキモイレス付けまくってる人。

一説には海外島流し中で、
現地時間の午後ティータイムに、サイコなレス付けまくってるとか。。。 コワー


64 :デフォルトの名無しさん:04/05/05 11:47
はやくGW終わって休み厨消えてくれんかなあ。。。

65 :64:04/05/05 11:58
あ、GW厨って >>64の事ね。

関数型言語スレって、Part1から厨房議論の場だったんだけど、
最近の厨房は勘違いしてて、高尚な議論をする場だと思っているらすぃ。

ここって、結局、勘違い厨房が無知無学の醜態を晒す場所なのにねw

66 :デフォルトの名無しさん:04/05/05 12:00
>>65
つーかお前、何で名前欄に他人のレス番入れてんだ?
詐称はやめろ、糞厨。

67 :デフォルトの名無しさん:04/05/05 12:46
更新があると速攻で書き込まれるのは
1日中監視してる?それとも全部自作自演?

68 :デフォルトの名無しさん:04/05/05 12:49
Aranskってマジでキモイ。

69 :デフォルトの名無しさん:04/05/05 13:19
973 名前: デフォルトの名無しさん [sage] 投稿日: 04/05/04 16:26
 表示的意味論は数学の概念に対応付けることがその目的で、
 操作的意味論は全て(数学を含む)を抽象的な機械の動作で表現する
 っていう、まったく反対の方向を向いているっていうことですか?

974 名前: デフォルトの名無しさん [sage] 投稿日: 04/05/04 16:40
 >>973
 やっとこさ「意味論」の意味が判った、知恵遅れの >>973 は、
 もう終わってるスレで今更ナニをしてんの?

 続きは新スレでヤレ

↓前スレ>>973どぞー


70 :デフォルトの名無しさん:04/05/05 14:18
Aranskって何してる人なの?

71 :デフォルトの名無しさん:04/05/05 14:40
Aransk「子供のころからベイブでした。」

72 :デフォルトの名無しさん:04/05/05 15:32
  働 処    // ̄> ´  ̄    ̄  `ヽ  Y  ,  ´     )  腐 え
  き 女    L_ /                /        ヽ  女  |
  ア が    / '                '           i  子 マ
  リ 許    /                 /           く  !?  ジ
  ま さ    l           ,ィ/!    /    /l/!,l     /厶,   
  で れ   i   ,.lrH‐|'|     /‐!-Lハ_  l    /-!'|/l   /`'メ、_iヽ
  だ る   l  | |_|_|_|/|    / /__!__ |/!トi   i/-- 、 レ!/   / ,-- レ、⌒Y⌒ヽ
  よ の   _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ      ,イ ̄`ヾ,ノ!
  ね は  「  l ′ 「1       /てヽ′| | |  「L!     ' i'ひ}   リ
        ヽ  | ヽ__U,      、ヽ シノ ノ! ! |ヽ_、ソ,      ヾシ _ノ _ノ
-┐    ,√   !            ̄   リ l   !  ̄        ̄   7/
  レ'⌒ヽ/ !    |   〈       _人__人ノ_  i  く            //!
人_,、ノL_,iノ!  /! ヽ   r─‐- 、   「      L_ヽ   r─‐- 、   u  ノ/
      /  / lト、 \ ヽ, -‐┤  ノ  キ    了\  ヽ, -‐┤     //
ハ キ  {  /   ヽ,ト、ヽ/!`hノ  )  モ    |/! 「ヽ, `ー /)   _ ‐'
ハ ャ   ヽ/   r-、‐' // / |-‐ く    |     > / / `'//-‐、    /
ハ ハ    > /\\// / /ヽ_  !   イ    (  / / //  / `ァ-‐ '
ハ ハ   / /!   ヽ    レ'/ ノ        >  ' ∠  -‐  ̄ノヽ   /
       {  i l    !    /  フ       /     -‐ / ̄/〉 〈 \ /!

73 :Aransk:04/05/05 15:50
誰か呼んだ?(*^^)v
>7〜13
久しぶりに関数型言語らしい理論的な話ではありますまいか?
7が純粋関数型言語、8が副作用付き手続き型言語、10が制約型言語って
感じなんでしょうか?


74 :デフォルトの名無しさん:04/05/05 15:52
>>73
勘違いくん登場!

75 :デフォルトの名無しさん:04/05/05 15:54
>>73 Aranskを名乗る基地外コテへ

なんでそ〜ゆ〜曲解しかできないの?
向いてないね、きみ

76 :デフォルトの名無しさん:04/05/05 15:57
なんでトリップつけないの?

77 :デフォルトの名無しさん:04/05/05 16:06
社会的シグナルの理解に欠ける
社会的・感情的に適切を欠く行動
没入的で狭い興味・関心
ほかの活動を受けつけない
固執を繰り返す
固定的で無目的な傾向
決まりや興味・関心の押しつけ
言葉と言語表現の問題
発達の遅れ
形式的、もったいぶった言語表現
理解の悪さ:表面的/暗示的意味の間違った解釈を含む

78 :デフォルトの名無しさん:04/05/05 16:10
>>77
 >>77にそのものズバリな具体例が出てるよ。
 メンヘル板に(・∀・)カエレ!!

79 :デフォルトの名無しさん:04/05/05 16:14
おぃ、人格障害のクズ虫ども!

関数型言語の話題を振れないようなクズは、
二度とこのスレに来るな

80 :デフォルトの名無しさん:04/05/05 16:36
      、,r‐''" "。'!`./'i、i、''┴.
     .,,//  ./` .,ヽ  、'!、 -,..,,゙'-、
   .,r'"  、,、  `   | .|  ゙'ハ ヽ
  .,/、  .'"l゙  .,.._ ,l゙ .ヽJ│ `, 、<i、
  丿/    ゙.,_,゙,,,.,`,i、,!" `,,,,,ll,, .""`.♭
  ,/ " ,i´.,ノ ゾ/,i,,,|,,,゙″  ゚゙゙,,,,,\ ." 'i、
 ,l゙ .! ` " ,/` ゙( ●)‐   .゙(● )彳 │|   クワッ
 !  、  |""     _.‐ !、   ゙l i、 |
 │ |  ,.|      (●、●)   .| ".l,|     ____________
 l゙ "" ," ゙l、     ,,,,,,-,、   ,(, l゙.,jリ   /
 `、 l、タ,i´゙l、    f{++++lレ.  ,l゙,l゙,|l゙  <  Object Calm!
  |  l゙ l゙| │    `'''`'″  ,「"".|l゙    \
  l゙ェ'." ,.彳 `"〜 、     ,ィ'゙冫,r゙′      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  フ l ゙l |      `゙'''―'''` ,l゙.| |,i
..,r" !  .、          |-,"゙l、
″  ``'‐ !             " \`″

81 :デフォルトの名無しさん:04/05/05 17:06
Aranskってメンヘル?

82 :デフォルトの名無しさん:04/05/05 17:12
>>81
初代はメルヘンだったが、今のはどっかの学部生の糞厨房が騙ってるだけだろ。


83 :デフォルトの名無しさん:04/05/05 17:14
>>81-82
キチ外ネタは、わざわざ自分でスレ立てたようなので、そこでやりましょう。
http://pc5.2ch.net/test/read.cgi/tech/1083734838/l50

84 :デフォルトの名無しさん:04/05/05 17:14
本人だろ?
ttp://www.geocities.jp/aransk88/link.html
ご存知「2ちゃんねる」(上品で気が弱い方はとても書き込めませんが…ハンドルはAranskとヒーロー勇気です。(^^;)

85 :デフォルトの名無しさん:04/05/05 17:15
>>84
うざい。ここでやれ。
http://pc5.2ch.net/test/read.cgi/tech/1083734838/l50

86 :デフォルトの名無しさん:04/05/05 17:36
Aranskって高卒って本当?

87 :デフォルトの名無しさん:04/05/05 18:06
      、,r‐''" "。'!`./'i、i、''┴.
     .,,//  ./` .,ヽ  、'!、 -,..,,゙'-、
   .,r'"  、,、  `   | .|  ゙'ハ ヽ
  .,/、  .'"l゙  .,.._ ,l゙ .ヽJ│ `, 、<i、
  丿/    ゙.,_,゙,,,.,`,i、,!" `,,,,,ll,, .""`.♭
  ,/ " ,i´.,ノ ゾ/,i,,,|,,,゙″  ゚゙゙,,,,,\ ." 'i、
 ,l゙ .! ` " ,/` ゙( ●)‐   .゙(● )彳 │|   クワッ
 !  、  |""     _.‐ !、   ゙l i、 |
 │ |  ,.|      (●、●)   .| ".l,|     ____________
 l゙ "" ," ゙l、     ,,,,,,-,、   ,(, l゙.,jリ   /
 `、 l、タ,i´゙l、    f{++++lレ.  ,l゙,l゙,|l゙  <  Aなんとかってひと?
  |  l゙ l゙| │    `'''`'″  ,「"".|l゙    \
  l゙ェ'." ,.彳 `"〜 、     ,ィ'゙冫,r゙′      ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  フ l ゙l |      `゙'''―'''` ,l゙.| |,i
..,r" !  .、          |-,"゙l、

88 :デフォルトの名無しさん:04/05/05 18:17
>>86-87
うざい。
Aranskネタ、基地外ネタ、人格障害レスへの反応は、すべてここでやれ。
http://pc5.2ch.net/test/read.cgi/tech/1083734838/l50

89 :デフォルトの名無しさん:04/05/05 18:36
社会的シグナルの理解に欠ける
社会的・感情的に適切を欠く行動
没入的で狭い興味・関心
ほかの活動を受けつけない
固執を繰り返す
固定的で無目的な傾向
決まりや興味・関心の押しつけ
言葉と言語表現の問題
発達の遅れ
形式的、もったいぶった言語表現
理解の悪さ:表面的/暗示的意味の間違った解釈を含む

90 :デフォルトの名無しさん:04/05/05 19:21
Aranskも板張り付き君も、いい加減に罵り合いはやめてどっか行ってくれませんかね。
隔離スレで気の済むまでどうぞ

91 :デフォルトの名無しさん:04/05/05 21:31
25-90は全てゴミ。あぼーんよろ

92 :デフォルトの名無しさん:04/05/06 08:04
>>6, >>14-15, >>24-91 全部スレ違いのゴミ。全削除よろしこ

93 :デフォルトの名無しさん:04/05/07 00:36
ちなみに、このサイコ>>48は、
>>1は、関数型言語Part1の頃から居る住人だということも知らずに、
>>48のような薄っぺらい煽りをしている。
しかも>>48は、会うたび、事ある毎に、サイコな言動を繰り返して、周囲を引かせている。
これこそ、病気と言わずして、なんと呼ぶべきだろう。

94 :デフォルトの名無しさん:04/05/07 01:23
サイコがまたまた意味不明なコピペしてるし。(((;゚Д゚))ガクガクブルブル


95 :デフォルトの名無しさん:04/05/07 01:26















↓つぎ、毎日が日曜日のサイコくんが、朝10:00頃起きてカキコ予定

96 :デフォルトの名無しさん:04/05/07 01:35
一日中張り付いてるの?

97 :デフォルトの名無しさん:04/05/07 01:44
誘導: サイコへのレス、サイコレスへのレス、ネタは、特上のサイコ自身が立てたスレでどうぞ。
     【面減る】ム板廃人列伝【最古】
http://pc5.2ch.net/test/read.cgi/tech/1083734838/

98 :デフォルトの名無しさん:04/05/07 01:49

どうでもいいけどさこのウィルス付きのページ作ったのお前?

ttp:// blog.makuhari.or.jp/sysad/archives/ 000198.html

Aranskでも偽者でもいいんだけどさぁ。
犯罪だよ。
捕まってもしらないよ。

99 :デフォルトの名無しさん:04/05/07 02:01
2ch荒らすのも結構なんだけどさぁ。
お前の事快く思わない奴らがしつこく、警視庁にメール
おくったら如何なると思う?
俺は知らないよ。

100 :デフォルトの名無しさん:04/05/07 05:42
支離滅裂なサイコ犯罪者キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!

101 :デフォルトの名無しさん:04/05/07 05:45
無差別ウィルステロの、犯人を、>>98です。

102 :デフォルトの名無しさん:04/05/07 05:50
(・∀・)>>98タイーホ!!!

103 :デフォルトの名無しさん:04/05/07 05:58
>>98 (・∀・)通報シマスタ!!

104 :デフォルトの名無しさん:04/05/07 06:14
>>98
あ〜あ、ついにやっちゃったね♪

前は国家公務員の名前と身分を詐称して、
スレが即刻削除されてたけど、
今度は>>98タイーホ&板削除かなw

ム板のみんなに謝っとけよw

105 :デフォルトの名無しさん:04/05/07 07:30
100-
今更、あわててウィルス消しても警視庁にログ提出しておきましから。


106 :デフォルトの名無しさん:04/05/07 07:41
>>98が逮捕されるのか。
大変だな。

107 :デフォルトの名無しさん:04/05/07 08:23
>>100-106への反応はこちらへ
http://pc5.2ch.net/test/read.cgi/tech/1083734838/

108 :Aransk:04/05/07 18:14
>7が純粋関数型言語、8が副作用付き手続き型言語、10が制約型言語って
>感じなんでしょうか?
この意見そんなに変かねぇ?機能的意味論の範疇を単に
言語仕様によって分けたように見えるが…。^m^
表示的意味論と言えば何故?
Haskellにおける遅延評価、無限リストや関数部分適用、なんかがさぁ。
どうして話題にならないの?こちらの方がはるかに言語学的には
表示的意味論に近接してると思うけどねぇ?






109 :デフォルトの名無しさん:04/05/07 19:32
↑このAranskの中の人、チンポ生えてそうだなw

110 :Aransk:04/05/11 14:53
Winny作者の上司として、武市さんって人がニュースで
誠に遺憾とか言ってたが、あれ関数型言語で著名な
武市先生だよね?

111 :デフォルトの名無しさん:04/05/11 15:25
つか犯罪ともおもえんけどね。

112 :デフォルトの名無しさん:04/05/11 15:37
つーか具体的な容疑は何よ?

113 :デフォルトの名無しさん:04/05/11 20:53
包丁に罪はないが、
包丁を作った人間に問題がある様だ。


114 :デフォルトの名無しさん:04/05/11 22:17
>110
武市先生キター
上司というより研究科長としてコメント求められたのだろうと思う。
社長が社員についてコメントするようなものだと解釈したが…

115 :デフォルトの名無しさん:04/05/11 23:50
遺憾て、京都府警が?
http://wktm.moe-nifty.com/13hz/cat752960/index.html
http://wktm.moe-nifty.com/13hz/2004/04/post_5.html

116 :デフォルトの名無しさん:04/05/12 04:01
遺憾ていうより、たのしい。
http://wktm.moe-nifty.com/13hz/2004/03/post_25.html

117 :デフォルトの名無しさん:04/05/12 04:25
>>113
包丁屋には住みにくい世の中になりそうだな。
ところで包丁屋が使った金槌(VisualC++か?)を作った人間にも罪は及ぶのか?
その金槌は包丁だけでなく鉄砲やピッキング用具を作るのにもよく使われているようだが。

118 :Aransk:04/05/12 16:33
>117
>VisualC++か?
やっぱ、AlegroLispかなんか関数型言語じゃあWinnyは
ちょっと無理なのかぁ。(-_-;)


119 :デフォルトの名無しさん:04/05/12 20:32
作者はシミュレーション屋さんじゃなかったっけ>Winny

120 :デフォルトの名無しさん:04/05/12 21:55
Frantzのシャチョさんとハーレクインのシャチョさん、どっちが儲かってるんだろう?
というか、関数型言語業界で一番成功したビジネスマンって、何やってる人なんだろう?

やっぱ、APL関連かな(泣笑

121 :デフォルトの名無しさん:04/05/13 00:56
>>113
その例えだと、まるでその包丁そのものには悪意がないみたい。
その包丁には、作った人の悪意が確実に込められてるわけだし、
第三者が手に入れた時点でほぼ確実に凶器なる様に仕組まれている。
そして他の目的で使う人間は事実上いない。
とくれば、その包丁が罪な物に変わりはないと思うよ。


122 :デフォルトの名無しさん:04/05/13 01:19
確かに、例えについてはちんぴら共が逝った通り、包丁よりも拳銃の方が的確。
拳銃所持を基本的権利と考える連中が居るように、それに対する考え方はそれぞれ。

>>118
別に出来ないことはないでしょ、GUIさえあれば。
ライブラリ不足は根性でどうにかなる。
暇なんでnyみたいだけどム板住人向きのファイル共有ソフトつー
のを作ってみるわ。もちろん純粋関数型言語ネイティブな。少しまちなー。(嘘)

123 :デフォルトの名無しさん:04/05/13 01:22
「このソフトを沢山の人が使えば、現在の著作権概念を覆すことが出来るぞ。ヒヒヒ…」
だなんてことは言ってないような>作者
つかスレ違い

124 :デフォルトの名無しさん:04/05/13 02:35
>>120
すでにハーレクィンは以下略な感じだけども。
エクスアナリス?とファンクショナルオブジェクトに分離?

125 :Aransk:04/05/13 15:12
中村正三郎さんって、まあネットでは知られたプログラマー
つ〜か、アンチ・マイクロソフトの塊のような人ですが、
Lisp、Schemeで人生の価値観が変わった!って
どこかで書いていた。関数型言語って嵌る人は嵌るんですね。
アンチMSが多いのもGNU・Lispのせいかな?

126 :デフォルトの名無しさん:04/05/13 18:41
Lispの何処が関数型なんだか。Schemeだって、ちょっと関数型っぽい
だけだろ。

127 :デフォルトの名無しさん:04/05/13 19:39
>>126
Lispが関数型言語かどうかはさておくとして(私には分かりません)、
あなたの関数型言語の定義を教えてください。

128 :デフォルトの名無しさん:04/05/13 21:15
>>126
関数型の定義が昔と今とで変わっただけだよ。


129 :デフォルトの名無しさん:04/05/14 05:34
>>126
でも関数型屋が関数型言語の歴史の話をするときに絶対言うのが
「関数型言語の歴史はLISPから。すなわち手続き型とほぼ同じ長さの歴史がある。」
だという罠

130 :デフォルトの名無しさん:04/05/14 12:50
おまぃら、手垢のついた蘊蓄並べあってて、何が面白いのですか?

やぁねぇ〜、ヲタの会話って評論家みたいでぇ〜。自分ではナニも出来ないくせに(プ

131 :Aransk:04/05/14 14:32
Lispが関数型言語の中では最も実用されているのは
事実です。またIDEにしてもAlegroLispはGUIBuilder
からDB機能までついており他の言語と遜色ありません。
長い歴史と言い、その言語仕様の歪み=実用性の高さ
と言い、他を圧倒しております。(GNULispも含め)
ワタクシFranzから一銭も頂いておりません。
念の為^m^


132 :デフォルトの名無しさん:04/05/14 14:38
>>131
デヴスは自分のスレに帰れよ

133 :デフォルトの名無しさん:04/05/14 19:02
LISP覚えてよかっっっっっっっっっった!
毎日が楽しいです

134 :デフォルトの名無しさん:04/05/14 19:40
私はLispの副作用のせいで末期ガンになり、医者にも「残り半年」と見放されました。
ところが友人の勧めでMLに変えたところ、なんと3ヵ月後ガンが消えてました!
医者もびっくりです。毎朝スッキリ目が覚め、15Kgのダイエットに成功し、
宝くじは3億円当たり、巨乳の彼女もでき、人生が楽しくてしかたありません。
ありがとうML。
(宮城県 酪農家 28才)

135 :デフォルトの名無しさん:04/05/14 20:38
haskell版もよろ

136 :デフォルトの名無しさん:04/05/15 00:40
たかが言語で何能書きたれてるんだ?あん?


137 :デフォルトの名無しさん:04/05/15 03:18
おまぃら、手垢のついた蘊蓄並べあってて、何が面白いのですか?

やぁねぇ〜、ヲタの会話って痴呆性老人の繰り言みたいでぇ〜。

いつまでたっても同じ事を繰り返し言ってるだけぇ〜、

話が面白くない殿方って、勉強も仕事も恋愛も中途半端って感じぃ〜。

138 :デフォルトの名無しさん:04/05/15 03:21
Aranskって実物も痛そうだけど、
2ちゃんの自称Aranskってチンポ生えてるし、
痴呆入ってるし、なんだかとてもきもい。

139 :デフォルトの名無しさん:04/05/15 09:58
俺はチン毛小六の時からはえだしたぜ


140 :デフォルトの名無しさん:04/05/15 11:27
てか、Aranskはあのヘンテコなページ内容も含めて
関数型言語系のスレッドでは結構前から叩かれてきたように記憶しているのですが
なぜか最近「ここのAranskは女、別物」説を声高に主張して、腐女子だのチンポだの
連呼する人が突然わいてきましたね。これって何?

141 :デフォルトの名無しさん:04/05/15 12:33
Aranskのジサクジエン

142 :デフォルトの名無しさん:04/05/15 12:54
>>140
ホムペ見れば、おねたんて判るだろ。
おまぃの目は節穴でつか?

143 :デフォルトの名無しさん:04/05/15 12:57
ホムペのは、私立女子大文学部卒の土方プログラマって感じがぷんぷん。
2ちゃんのは、COBOL運用歴30年もう定年ってな手垢な感じがぷんぷん。

よって、ホムペの中の人と、2ちゃんの中の人は、別物。

144 :デフォルトの名無しさん:04/05/15 13:01
Aranskの話題はあっちでやれよ

145 :デフォルトの名無しさん:04/05/15 13:27
>>142-143
???
あとさ、なんでいつも二回にわけてレスつけるの?

146 :デフォルトの名無しさん:04/05/15 13:36
ほむぺぇー

147 :デフォルトの名無しさん:04/05/15 14:16
aranskは単なる少女マンガオタのデブオタクだろ。
2chのaranskも同じ人物。
頭おかしいんだからそっとしておいてやれ。


148 :デフォルトの名無しさん:04/05/15 15:44
2ちゃんのPSYCHOからかうとおもれぇYOOOOOO!

149 :Aransk:04/05/15 16:48
今日久々に新しいLisp本を本屋で発見!
Cutt社???「楽しいLisp入門」です。
全然楽しくないんですがぁ。(-_-;)
まだ、グレアムのLisp本の方が良かった。


150 :デフォルトの名無しさん:04/05/15 17:42
Cuttの本は、最初っからあんまパッとしないよ。
たしか一冊目は、Lisp処理系の本だけど、何を今更みたいな素人じみた内容だたー。
最近は営業考えて、オプソに接近してたみたいだけど、
まだLispにこだわってるのかぁ〜。Lispファソとして恥ずかしいな、

151 :デフォルトの名無しさん:04/05/15 20:49
カットシステム「やさしいLisp入門」
www.cutt.co.jp/book/4-87783-102-9.html
書名もまともに憶えられないくらい楽しくなかったのですね。

自分は大学生協で見かけたけど、目次をめくって、マクロのマの字も
出てこなかった時点でカス本だと思いました。


152 :デフォルトの名無しさん:04/05/15 22:14
やっぱLISPを使う醍醐味はマクロだよね!

153 :デフォルトの名無しさん:04/05/16 17:21
このスレのテンプレにAransk、ヒーロー勇気は放置と
今度から明記してください。

154 :デフォルトの名無しさん:04/05/16 17:36
Aranskとム板廃人列伝の1が二人で(一人で)会話してるだけのような
気がするんだが。

155 :デフォルトの名無しさん:04/05/16 18:40
>>154
あんた妄想癖が激しいな。
実生活だいじょうぶ?

156 :デフォルトの名無しさん:04/05/17 11:56
あまりにも見事に釣り上げられてますね…

向こうでもこっちでも、何でそんなに手当たり次第必死で噛みついてるんですか?
煽り方がずーっとワンパターンなのは何故ですか?
いちいち口調を変えて名無しで連投し、指摘されると
「ショムニ」を真似してみただけだよ!そんなこともわからないなんてバッカミタイ♪
とか意味不明な開き直りをするのは何故ですか?
>>148は突っ込みに返せなくなっての負け犬の遠吠えですか?

157 :Aransk:04/05/17 16:23
>151,152
正直ワタクシも最初はLISPやSchemeのマクロに感激いたしました。
でも、どうなんでしょう?
C++のオペレーター・オーバーロードでも間違いやすい。
文法まで変更できる能力って?
極端な話、同一言語であるアイデンティティーそのものまで
変更できるってことですよね?
一人で開発するのは良いけど、多人数になった場合に
マクロの徹底なんかどうしておられるのでしょうか?

158 :デフォルトの名無しさん:04/05/17 20:02
てゆうか、プログラム言語ってのは使うための道具で決して飾り物ではないと
思います。なんにもできない(開発しない)のに道具ばかり選んでても意味
ないのでは。最近は Lisp に御執心のようですが ML や Haskell は結局
使いこなせなかったということですか?

159 :デフォルトの名無しさん:04/05/17 21:12
そもそもlispなんてS式なのをいいことに
その場で問題に適した言語を作る
ぐらいの勢いで使うものだと
思うのだが。


160 :デフォルトの名無しさん:04/05/17 22:48
相変わらず、脳内就業時間終了と同時に、暇々サイコが粘着してるのが笑える。
あっちのスレもねw

161 :Aransk:04/05/18 14:54
>158
>ML や Haskell は結局使いこなせなかったということですか?
仰る通りです。結局、言語仕様を読み、ちょこっと試用した
だけで終わってしまいましたぁ。^m^
>159
>その場で問題に適した言語を作る
お差支えなければ、そのご自分でお作りになった
「その場での問題に適した言語」の一端でも
ご披露頂けないでしょうかぁ?(*^^)v


162 :デフォルトの名無しさん:04/05/18 15:01
"Aransk"はアボーン設定しろよ。ここの住人は馬鹿だろ。
構ってチャンにエサやるな。

163 :Aransk:04/05/31 16:11
>213 :デフォルトの名無しさん :04/05/31 12:54
>Aransk様, TXL ttp://www.txl.ca/ の使用レポートおながいします。
向こうのスレはいくらなんでも、「あの顔だけ」はどうしても
許せない!って泣くメンバーがおりまして…。
今のところお出入り禁止命令が…。
全く似てないのか?それとも…似過ぎているのか?(^。^)y-.。o○
そこで代わりに、こっちでご回答を致します。
Queen's University, Kingston, CanadaこれだけでAransk様は
至極お気に入りで御座います。(*^^)v
ただ、define 〜end define構文がどうしても美的センスに
合わないようで…(^_^;)






164 :Aransk:04/06/01 15:25
define 〜end define構文ってさぁ、プリプロセッサコマンドの
マクロ定義を連想させない?(^_^;)

165 :デフォルトの名無しさん:04/06/01 23:21
VBを連想する。
嫌な気持ち。

166 :Aransk:04/06/02 13:11
>165
VBよりは、Parsing機能は高そうですよ。(*^_^*)

167 :デフォルトの名無しさん:04/06/08 21:25
>C言語の特徴を説明する上で、よく「関数型言語」という言葉が用いられます。
>これは、C言語が、関数が集まって形作られる言語であることに由来しています。
ttp://homepage3.nifty.com/mmgames/c_guide/01-01.html


168 :デフォルトの名無しさん:04/06/10 19:51
>>167
>167
お〜 知らんかったよ
「 C言語の特徴を説明する上で、よく「関数型言語」という言葉が用いられます」

Cはずいぶん書いたけど C は使ったことないしな
main関数なんて書いたこともない

169 :デフォルトの名無しさん:04/06/11 19:12
関数型言語っぽいビルドツールってありますか?
makeはちょっとあれなので、他にいいものがあれば
参考にしたいです。

170 :デフォルトの名無しさん:04/06/11 19:26
関数型言語 make
ttp://spa.jssst.or.jp/2003/program/papers/03007.pdf

171 :デフォルトの名無しさん:04/06/11 21:54
C#かJavaから呼び出すのに適した関数型言語ってどれ?
Haskell.netっての試したけどC#から呼び出すのはうまくいかなかった。
逆はかなり簡単だけど。

172 :デフォルトの名無しさん:04/06/11 23:41
試したことないけど F# は?

173 :デフォルトの名無しさん:04/06/18 18:09
>>170
時間がなくて真面目に読んでなかったけど、
これなかなか面白いかも。Perlで書きなおしてみようかな。

174 :デフォルトの名無しさん:04/07/08 00:07
ttp://pc5.2ch.net/test/read.cgi/tech/1036013915/394
394は俺じゃないけど、helloworldとか足し算とかどうやるのか教えてクレクレ。

175 :デフォルトの名無しさん:04/07/08 10:06
ざっと見たけどコンビネータ理論で本当にプログラミング言語つくっちゃったっ
て感じなのか? s とか k とかが乱舞してるね。すげ。

全然読んでないけど、真ん中らへんに helloworld っぽいのがあるし、足し算
もそのちょっと下にあるね。チャーチ数使うのかよ。
The function <add> which adds two Church integers is ^m`$m<inc>, i.e. ``si`k`s``s`ksk
だそうだ。

176 :うーん:04/07/11 22:00
コメントとかで解説されないと
ぜんぜんわかんねえや。

177 :デフォルトの名無しさん:04/08/08 16:28
ちょっと質問があります。
例えば、「お風呂を沸かす」を関数モデルで表現すると、どうなるんでしょうか。
わたしの脳みそでは、

1. 風呂に水を張る
2. 湯沸かし器を点火する
3. いい湯加減になるまで沸かす

のようにしか考えられませんが、これって手続き的ですよね。


178 :デフォルトの名無しさん:04/08/08 17:24
よくわからんが
いい湯加減になるまで沸かす(湯沸かし器を点火する(風呂に水を張る))
じゃだめ?

179 :177:04/08/08 18:32
>>178
どうもです。
関数モデルだと手続き表現は、ただ関数の入れ子が深くなることで表現できる、ってことですね。
この場合、各関数の入力としてお風呂変数(水の高さ、温度、風呂釜の状態)を入れ、それを元に新しいお風呂変数を返す、って感じですか。

いい湯加減になるまで沸かす(湯沸かし器を点火する(風呂に水を張る(お風呂変数)))
→新しいお風呂変数



180 :洩れ車@藤四郎:04/08/09 07:37
>>177
 以下、若干J言語の記述法を用いることをお詫びしますが、できるだけ分りやすくします。

(1)大枠としてはまずこう考えてはどうでしょうか。

 h(x) を h(x) =: f(g(x)) と定義することを h =: f @ g と表記すると、
(「=:」は定義を、「@」は関数の合成を意味する。@ は小さい白丸と似たようなもの)

  お風呂を沸かす =: いい湯加減になるまで沸かす @ 湯沸かし器に点火する @ 風呂に水を張る

 x は「世界」である。「お風呂を沸かす」は、「お風呂が沸いていない世界」に働き掛けて、
「お風呂が沸いた世界」を得るための手続あるいは操作あるいは関数である、と。

つまり、

  お風呂が沸いた世界 = お風呂を沸かす(お風呂が沸いていない世界)
(「=」は相同を意味する)

 途中経過は、

  風呂桶に水を張っただけの世界 = 風呂に水を張る(お風呂が沸いていない世界)
  加熱中の世界 = 湯沸かし器に点火する(風呂桶に水を張っただけの世界)
  お風呂が沸いた世界 = いい湯加減になるまで沸かす(加熱中の世界)

ってことで。「世界」が大袈裟なら「風呂周りの系」でも可(と言うか適切かも)。

181 :デフォルトの名無しさん:04/08/09 07:38
(続き)
(2)ただですね、「新しいお風呂変数」みたいな動的制御っぽい話になって来ると、

  風呂周りの系 =: (0, 20, 0) NB. 初期値の構造体。(初期水量, 初期水温, 初期火力)
  水量 =: 0&from NB. 構造体「風呂周りの系」から水量を取り出す関数。
  水温 =: 1&from NB. fromはn番号の要素を取り出す2変数関数だが、Currying(projection)
  火力 =: 2&from NB. を行う&演算子を用いて具体的な場所を指定済の1変数関数を作った。

  風呂に水を張る =: 250&(0 amend) NB. 構造体の0番目の要素を250で置き換える関数。
  湯沸かし器に点火する =: 0.1&(2 amend) NB. 火力を0.1で置き換える関数。
  いい湯加減になるまで沸かす =: 単位時間沸かし続ける ^: _
(「^: _」は、結果が定常状態になるまで操作を繰り返させる後置演算子です。つまり、
f ^: _(s) は、x=f(x) となるまで f(f(f(...(s)...))) を繰り返し、その時の x を返します)
  単位時間沸かし続ける =: ( NB. 実引き数は仮引き数 y. に代入される。
   if. 41.5<: 水温(y.) do. y. return. end. NB. 終了条件は中で判定(汚いが)。
   y.=. ((水温 + 火力)(y.)) (1 amend) y. NB. 「=.」は局所定義/局所再定義。
   NB. ↑構造体の1番目を、構造体の1番目と2番目との和で置き換える手続。
   y. return.
  )

みたいなやり方がやや関数的と言えるのではないでしょうか。

182 :デフォルトの名無しさん:04/08/09 22:29
けっきょく「あれやってこれやって……」という順番があるのだから、それは
その順序が得られるように書くしかないわけで、関数的に書くというのはちょっ
と変なんじゃないかなぁ。
個々の関数を副作用なしに書く定義を書いといて、

空の風呂 >>= 水を入れる >>= 点火 >>= 火を止める

とかあたりでは。

183 :デフォルトの名無しさん:04/08/09 23:59
「お風呂を沸かす」というのがすでに手続き的な表現かと。

184 :デフォルトの名無しさん:04/08/10 01:02
関数的には? 「湧いたお風呂を得る」?


185 :デフォルトの名無しさん:04/08/10 09:37
>>184
馬鹿


186 :177:04/08/10 10:00
>>180 - 181
ありがとうございます、、でも半分も理解できてないような、、ごめん。

最近、関数モデルの言語で、「手続きモデルを適用したほうがすっきりする問題」をうまく扱えるのかなあ、と思っていました。
結局、「順番に実行する」というのは、関数を順番に適用→関数を入れ子にする、で簡単に置き換え可能、と理解しました(でいいですよね?)。


187 :デフォルトの名無しさん:04/08/11 15:00
Haskell ならモナドでやるよ、ってことで >>182 を書いたんだけどな……。
>>= は演算子で、 Monad a => a b -> (b -> a c) -> a c の型を持つ。ちょっ
とわかりづらいけど、初期の値を順に関数に通して結果を得るための演算子だ
と考えてくれていい。

他にも、関数のリストを作って畳み込むことで結果を得るという考え方もある
と思う。ステートが違うだけで同じ型の変数であると考えれば、
風呂 = foldl apply 空風呂 [ 水を入れる, 点火, 火を止める ]
where apply :: a -> (a -> b) -> b
apply x f = f x
とかね。

もちろん、 Haskell にも do 〜 のような述語があるし、
ML 系にも begin 〜 end が(たしか)あるから、手続的に書こうと思えば割と
簡単に書けるよ。

188 :177:04/08/11 19:04
>>187
あ、ごめんなさい。>>182 で">>="の意味がまったくわからなかったもので。
関数型言語でも、手続き的にしか考えられないものは手続き的に考えるしかない、ってことですか、、
メインが関数モデルで、必要悪で手続きモデルを使う、みたいな。

組み込み屋の戯れ言にお付き合い頂いてありがとう。
少しすっきりしました。

189 :187:04/08/12 00:05
必要悪というか、結局最終的には「これやって」という操作の部分が出てくる
のは当然なわけです。関数の定義それ自体で動くわけではないですから。

なので、スタイルとして
1. 各関数の定義を宣言的に書く
2. 最後にそれをごちゃっとまとめる
というステップで書くとよろしくやってくれる、という考え方なんだと思いま
す。
むろん C でも綺麗に書こうとすればそういうスタイルはありだと思いますが、
関数型言語でやった方が圧倒的に書きやすいのです。


190 :177:04/08/12 07:57
>>187
なるほど、、
私は、関数型言語使う人って、プログラムを全部関数的に構築したいのかなあ、って妙な誤解をしてました。
お話きいてると、その辺は割とあっさりしてる感じですね。

191 :デフォルトの名無しさん:04/08/13 06:05
よく耳にする「(純粋)関数型言語に代入はない」というのはミスリーディングな発言だと思う.

「関数型言語では代入の必要になる場所は少なく,使ったとしても隔離できる」

192 :デフォルトの名無しさん:04/08/13 07:01
それならLispと何も変わらないね。言語機能として隔離方法が
備わってるだけで。

193 :デフォルトの名無しさん:04/08/13 07:07
>>191
>使ったとしても隔離できる

「使う場合は隔離しなくてはいけない」だったりするのがイヤン

194 :デフォルトの名無しさん:04/08/13 11:42
純粋な関数型言語には副作用がないといったほうがいいと思う

195 :デフォルトの名無しさん:04/08/13 16:22
だからそれがミスリーディングな言葉だという話の流れじゃないの?
HaskellにはIO Actionを始めとしてモナド(特殊なコンテナだね)があり、
Concurrent Cleanには一意型変数があって好き放題いじれる。
もちろん(純粋でない)Schemeにはset!が、*MLには参照型変数がある。

196 :デフォルトの名無しさん:04/08/13 18:11
>>195
モナドはIOなどを副作用なく扱うためのものだろ?


197 :デフォルトの名無しさん:04/08/13 19:29
代入が必ずしも副作用を伴うとは限らないことも理解できない人が暴れてるスレはここですな。

198 :デフォルトの名無しさん:04/08/13 19:47
>>197
モナドは副作用を伴わないが代入あるということ?

199 :デフォルトの名無しさん:04/08/14 00:37
Cleanの奴は代入ではなく新しい変数を宣言してるだけ。
でも実質的に破壊的代入だからミスリーディングだということ?

200 :デフォルトの名無しさん:04/08/15 13:23
「(実質|理論)的には」(破壊的(な|でない)(代入|更新)|副作用|参照透明性)が(ある|ない)
とかの話にはもう飽きた。

関数型言語と言えど魔法の弾丸ではない。それだけ。

201 :デフォルトの名無しさん:04/08/15 20:17


202 :デフォルトの名無しさん:04/08/19 16:12
たとえば単語のリストを渡されて出現数を数えろと
いわれたときに、適当にハッシュ表とカウンタ用意
して++とかしますが、これを関数型言語ではどんな
感じでやるのかな?


203 :デフォルトの名無しさん:04/08/19 16:45
>>202
関数的に書くんなら、連想配列を使って、
1. 要素を発見したら、個数を1つ増やした新しいセルを追加し、古いものを削除
2. なければ新しい要素を追加
とかじゃないか。

結局、やることはそう変わらないはず。ただし、++のように破壊的にやるので
はなく、古いものを削除して新しいものを追加するというポリシを取る。

もっとも OCaml の場合には、標準ライブラリにハッシュテーブルがあるから、
これを使って破壊的にカウントすることになるだろうね。


204 :デフォルトの名無しさん:04/08/19 17:58
それだと連想配列が破壊的に書きかえられてるように
見えますが、関数型といってもそんなもんなんすか。



205 :デフォルトの名無しさん:04/08/19 18:31
あらかじめ単語に区切られた文章yの中に単語のリストxの各要素がどれだけ出現するか数える関数。
count x nil = すべて0
count x y::ys = if y ∈ x then (count x ys)のyに対応する単語の出現数を1増やしたもの。 else count x ys

206 :デフォルトの名無しさん:04/08/19 19:14
>>204
たとえば次のように書くと、

let alist = (word, count+1) :: (List.filter (fun (w, c) -> w <> word) alist)

これは破壊的代入ではないよ。元の alist は破壊されなくて、そこの部分を
書き換えたリストを *新しく* 作る。だから、置き換える前のリストや、消し
たセルを参照しているものがあっても副作用は起きない。
ただしこれ、実際にやると新しくリストをコピーすることになるので、著しく
効率が悪いはず。

Concurrent Clean だと、古い方のものが以後使われることがない(他で参照さ
れていない)時には自動的に破壊的代入になるという話を聞いたことがあるん
だけど、もしそうなら同じアルゴリズムで効率的に動作できるのかも。

そういうわけで、こんな感じかな(OCamlのコードです)。
let rec count x = function
| [] -> x
| y::ys ->
try
let w, c = List.assoc y x in
let x' = (w, c+1) :: (List.filter (fun (w', c') -> w <> w') x) in
count x' ys
with Not_found ->
count ((y, 1) :: x) ys

try - with で囲んでるから末尾再帰じゃないので、さらに効率的ではないけ
どね。


207 :206:04/08/19 19:48
しまった。 List.assoc は 'a -> ('a * 'b) list -> 'b だった。真ん中らへんの
let w, c = List.assoc y x in
は、
let w, c = y, List.assoc y x in
とでも読み換えてくれ。

208 :デフォルトの名無しさん:04/08/19 21:02
なるほど、毎回組み替えるわけか。文章の長さに比べて登場単語数が
十分小さければサーチ時間は一定とみなせると強弁できるかもしれない
けれども、組み換えによるメモリの消費や割り当ての手間はけっこう
馬鹿にならないような気がする。貧乏性ですかね?


209 :デフォルトの名無しさん:04/08/19 23:38
再起版のプログラムを書くとリストに破壊的代入を行っても問題ない(cleanで言うところの一意性)を証明して、ループと代入を使ったプログラムに最適化したりするという研究があったな。
プログラムに関するいろんな公理を教えておく必要があるが、デモを見た限り結構賢そう。
どこまでできるのかは知らないけど。

210 :デフォルトの名無しさん:04/08/19 23:46
字面では毎回組み換えるようなことをやっておきつつ中では破壊的更新をおこなう,これ最強.
あとは中で破壊的更新を使いつつも「外側から見ると参照透明な」関数とか.

Haskell標準の配列型
  ttp://www.sampou.org/haskell/tutorial-j/arrays.html
  ttp://www.sampou.org/haskell/report-revised-j/array.html
Concurrent Clean標準の配列型
  ttp://sky.zero.ad.jp/~zaa54437/programming/clean/LanguageReport21/Chap4.html#sc14
純粋関数型言語における「配列」の実現
  ttp://www.nerimadors.or.jp/~kando/TITECH/FuncArray/FuncArrayImpl.html

...なんかを眺めていたらなかなか面白かった.

>>209
ソフトウェア自動生産特論
  ttp://www.futamura.info.waseda.ac.jp/~futamura/lecture/Automation/index.html
とか?

211 :デフォルトの名無しさん:04/08/20 01:49
>>208
最初に書いたように、 OCaml にはハッシュテーブルがあるので、普通にやる
場合にはこれを使うのが普通でしょう。ただ、あまり関数的ではないアルゴリ
ズムになります(下記)。

ちなみに OCaml にも配列はあり、破壊的な代入が可能です。理論の詳しい話
は知りませんが……。

let number2 lst =
let rec main tbl = function
| [] -> tbl
| w::ws ->
if Hashtbl.mem tbl w then
let c = Hashtbl.find tbl w in
Hashtbl.replace tbl w (c+1)
else
Hashtbl.add w 1;
number2 tbl ws
in
main (Hashtbl.create 100) lst
;;

212 :デフォルトの名無しさん:04/08/20 14:01
>>210
配列であれhashであれ通常のループ+破壊書き換えで
動いてるプログラムなら見かけ上配列またはhashを
全コピー+1要素更新しながら末尾再帰するような
プログラムに書き換えられて、それは実はループ変数
を末尾再帰のパラメタにするのと似たような手で
破壊書き換えに最適化できる、という感じなのかな。
なんか一回りしてるようだが面白い(笑)


213 :洩れ車@J算譜工房:04/10/22 09:38:20
(奇しくもLISPと時を同じくして生まれた)APL言語と、その後継言語であるJ言語
(JayLanguage)の開発者、ケン(ケネス)・アイバーソン博士が亡くなりました。黙祷。
J言語のメーリングリストからの引用です:

Ken Iverson passed away Tuesday evening, October 19th at the age of 83. Ken was
at his computer Saturday afternoon working on a new J lab when he had a stroke.
Three days later he died quietly with his wife Jean by his side, along with
other family members. Ken had a wonderful and memorable life. He enjoyed it
fully and he freely shared his joy with so many others.

Many people have contributed to the start, growth, and evolution of J. But Ken's
role was central and inspirational. J exists because of Ken and we will always
remember that.

The J Forum was a particular joy for Ken. He was an avid reader and was amazed
and pleased with the civility.

In his last days Ken expressed confidence that the J seeds he had planted had
taken root and was satisfied that the steady and healthy growth would continue.
Ken has passed a torch and it is now up to us.

Ken's immediate family is having a private memorial service. In lieu of flowers,
please make a memorial donation to the charity of your choosing or to the
Academy of Life Long Learning (www.allto.ca). Ken's life was based on the
importance of education and teaching and in recent years, with Jean's serious
involvement, the Academy was an important part of Ken's wider life outside of J.

/Eric Iverson

214 :デフォルトの名無しさん:04/10/22 20:22:24
黙祷。
LISPの生みの親、Jマッカーシー氏はまだ生きてる、よね?

215 :デフォルトの名無しさん:04/10/23 02:09:48
>>214
元気にサイトの更新なさったりしてます。
ttp://www-formal.stanford.edu/jmc/

216 :デフォルトの名無しさん:04/10/23 04:27:03
すみません、業務でC++とか使ってて
C, Perl, Ruby, Java も一通り触った事はあって、
オブジェクト指向開発とかは好きなんですけど、
関数型言語っていまだに理解できないんです。

ソースの字面を見ても意味が分からないし、
概念もさっぱり分からない。

logさえ分からないヘタレ高卒で数学の素養が
全くない漏れでも理解できる方法ってありませんか?

217 :デフォルトの名無しさん:04/10/23 04:44:19
処理系と解説書を手に入れて動かしてみろ。
スレにでてるコードがそのとおり動くか確かめてみろ。
そのコードの一部を切り取ってみて、どういう動作をするのか調べて確かめてみろ。
部分部分をどういうルールや関数でつなげてるか調べてみろ。
そうすれば理解できるようになる。

218 :デフォルトの名無しさん:04/10/23 04:50:32
>>217
昔オライリーの分厚いEmacs Lisp本を買ったんですけど
Emacsの変態的なUIについて行けずにお蔵入りになりました。。

219 :デフォルトの名無しさん:04/10/23 05:12:17
オライリーの分厚いEmacs Lisp本ってなんだろ?
Emacs Lispリファレンスマニュアルなら一通り読んで全体像をつかんだ後、つまみ食いすればいい。

220 :デフォルトの名無しさん:04/10/23 05:18:46
>>218
Emacs Lispなどという中途半端なものではなく、
Haskellをやりたまえ。
純粋関数型言語なので「これぞ関数型」という書き方ができるようになる。
全く異質なプログラミングパラダイムを味わえるぞ。
http://pc5.2ch.net/test/read.cgi/tech/1076418993/

221 :デフォルトの名無しさん:04/10/23 05:53:36
Haskellを少し勉強したが、全く異質なプログラミングパラダイムは味わってないなあ。

222 :デフォルトの名無しさん:04/10/23 07:36:35
>>221
>>216
> C, Perl, Ruby, Java も一通り触った事はあって、
これだと高階関数やクロージャも使いこなせてないだろう。

Haskellで彼には新しいだろうこと
* 遅延評価、代入のないプログラミング
* Type-driven programming
* コンビネータ(Lispのマクロに相当するが関数)による構文抽象と言語内言語
* モナドによるコントロールフローの抽象化
* Existential type、type class、といった高度な型システムの"創造的な"利用
    (オブジェクトの代替、オブジェクト自体やグローバル変数の実装、コンテナ、型システム内での計算...)

223 :221:04/10/23 08:01:28
私は216じゃないです。

224 :デフォルトの名無しさん:04/10/23 09:05:35
>>222
>Type-drivenprogramming

これってどういう事?
Java を指して Class-driven programming って言っちゃうような感じ?

225 :デフォルトの名無しさん:04/10/23 11:30:48
構文解析するとかなら
MLやSchemeがお手軽だよ

226 :デフォルトの名無しさん:04/10/23 14:31:08
>>223
知ってる。

>>224
まず型から考えて、型が合うようにプログラミングすれば
アルゴリズムがついてくるような感じ。

227 :デフォルトの名無しさん:04/10/23 17:49:17
>>225
そもそも構文解析プログラムなぞ作らなくても、MLなら構文木を
表す型を定義すればいいし、Schemeなら適当にS式にmappingする
やり方を決めてそれで書けばいいと思うのだが...


228 :216● ◆SKjzm2Ah6. :04/10/23 17:49:44
>>219
今段ボール箱から取り出して見たらオライリーじゃなくて
ASCIIの「Emacs Lisp リファレンスマニュアル」でした。。

とりあえず今起きたので、>>220のHaskellスレの>>1
載ってたどっかの大学の日本語サイトを見て勉強してます。

>>222
> 高階関数やクロージャも使いこなせてないだろう
これさえさっぱり分かりませんし、
> Haskellで彼には新しいだろうこと
は当然全部意味不明です。。

これから頑張ってみます。

http://pc5.2ch.net/test/read.cgi/prog/1096545948/
で「漏れって天才!」とかほざいていたんですが、
自信喪失しました。ごめんなさい。

229 :216● ◆SKjzm2Ah6. :04/10/23 18:02:05
>>222
あ、なんかウェブサイトをちょっと読んでて思ったんですけど、
ひょっとしてこうかい(←なぜか変換できない)関数って
C でいう関数ポインタとか Rubyでいう proc (lambda) を
受け取るような関数のこと??
C++ の標準テンプレートでも似たようなことしてるかな。
全然的はずれだったらハズいですけど、、

230 :216● ◆SKjzm2Ah6. :04/10/23 18:08:54
>>222
あ、「クロージャ」で Google 検索したら
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Closures
が出てきました。Ruby では普通に使う手法ですね。
業務じゃ全く使ってませんけど。(C++ じゃ使えない?)

231 :デフォルトの名無しさん:04/10/23 20:44:56
高階(たかしな)関数

232 :216● ◆SKjzm2Ah6. :04/10/23 20:54:22
>>231
ほんとだ、それで変換できました。
漢字の読み方も知らなくって本当に恥ずかしいです。
うっかり人前で「こうかいかんすう」なんて読んでしまう前に
正しい読み方を教えてもらってよかったです。
ありがとうございました!

233 :デフォルトの名無しさん:04/10/23 21:01:37
>>229-230
そうなんだけど、もっといろんな使いかたがあるし、よく使う。
関数型になれると、他の言語でも同じ様な書き方ができることに
気づいたり、あるいは、できないことに気づいたりするよ。

C++は関数オブジェクトを駆使するといろいろできるけど、
ポリモーフィズムが無理だし、第一凄く面倒だからやらないね。

>>232「こうかいかんすう」であってるよ(w。君のIMEの辞書が良くないだけ。

234 :デフォルトの名無しさん:04/10/23 23:10:13

大昔、国語の朗読で

「先ずもって」を「さきづもって」と読んだ奴思い出したさげ

235 :デフォルトの名無しさん:04/10/23 23:20:46
>>231
たかしな関数ワロタww
俺が教わった数学の先生に高階(たかしな)先生という人がいたんだよ。
彼が一大発見して関数に名前がついたら区別がつかんようになるなあ。


236 :デフォルトの名無しさん:04/10/24 01:22:23
>>216
あなたの経験からすればそんなに入門は困難じゃない.
Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ
(そうとは知らずに使ってたんだろうけど).
あと Ruby の Proc はまさに(関数型言語で言う)クロージャの特別な場合.
よく使う用例に特化してる分ちょっと弱い.
Cの関数ポインタとクロージャの決定的な違い,
すなわち「静的スコープ」とか「環境」とかについてゆっくり勉強するといい.
実装を解説してる文書を探すのもといいと思う.

型システムは,あんまり便利で驚くことうけあい.
特にパラメータ型多相(C++のテンプレートと似てる)と
OOPで言う「継承によるポリモルフィズム(部分型)」をうまく統合してるのが特徴.
Javaとか「なぜこんなに表現力がしょぼい?」って気がしてくる(最近変わりつつあるけど).
ただ,ヴァリアント型は構文のせいでよくこんがらがりやすいけどね...
(コンストラクタなのか型の名前なのか,あとtypeとdata)

Haskellはかなりラディカルな言語なんでCとかとはギャップが大きいけど,面白いことは色々あるよ.

237 :デフォルトの名無しさん:04/10/24 01:23:24
sage忘れスマソ

238 :デフォルトの名無しさん:04/10/24 02:04:48
なんかいろいろ勉強するっていうと堅苦しいんで、実際に入門ページとか見て
自分でコードしていきながら概念を掴んでいく方がいいと思うよ。で、大雑把
にわかってから、その辺をキーワードに調べていくといいと思う。
# っていう意味で「ゆっくり勉強」って書いたんだったらスマソ

漏れは Ruby を書いても割と関数型スタイルで書こうとしちゃうんだが、けっ
こう書けるし、 Ruby 知ってるなら抵抗感はそこまでないと思うな。

型について補足すると、このテの関数型言語には型推論という機能があって、
最低限自分が書きたいところだけ「これはこの型」っていうのを提示すれば後
はオーケー(別に型を敢えて指定する必要はない)、っていうところも、プログ
ラマの負担軽減って意味では重要だと思う。


Haskell はラディカルすぎるんで挫折するかもしれないから、 ML 系言語から
攻めて行った方がいいかと思う一方、あれくらいラディカルじゃないと関数型
言語の面白さが全部は伝わらないのかもという気もしていて、どっちを勧める
かは正直、悩むな。
漏れは京大の五十嵐先生の OCaml の講義録から興味を持ったクチなので、
Haskell がなんだかわからなかったら OCaml を勧めとくよ。モナドとか型ク
ラスとかいった小難しそうな(新しげな)のはなんにもない。そんかわり関数型
言語としては綺麗じゃない。


239 :デフォルトの名無しさん:04/10/25 08:31:29
>>236
perlはmy変数(Cのローカル変数と同じスコープを持つ変数)を
無名関数の定義の時点で保存できる。でもグローバル変数は
当然上書きされてしまいます。これはクロージャというには
中途半端な代物なんでしょうか?

perl -e '&{&{sub{my $v=1;$f=sub{print $v};$v=2;$f}}}'
しかも無名関数を定義した後にも、それを上書き出来ちゃうし。

240 :デフォルトの名無しさん:04/10/25 08:47:01
Erlang って全然話題にならないね。やっぱりみんな型付きマンセーなの?

241 :/= 236:04/10/25 09:18:11
>>239
それらの性質は問題ない。
グローバル変数が上書きされたときにクロージャ内のものまで
かわるのは普通だし(Schemeでもそう)、local変数がどうなるのかは意味付けの問題。

Haskellではそもそも上書きされたりしないからそういうことは考えなくていい。
# Perlでのlocal変数に当たるimplicit parameterというものがあって
# それを使うと上書きされたような挙動が実現できる。

242 :デフォルトの名無しさん:04/10/26 02:30:50
>>238
そんなときはConcurrent Clean

243 :デフォルトの名無しさん:04/10/26 02:34:33
>>236
> Ruby 使ったことがあるなら Array#map とか関数型の影響を受けた機能を知ってるハズ

SmalltalkのCollection#collect:の影響とも言われているな

244 :デフォルトの名無しさん:04/11/01 14:28:46
だれかVALIDの言語仕様みられるところ知らない?

245 :デフォルトの名無しさん:04/11/28 00:08:44
型推論のあるOO言語
http://boo.codehaus.org/Home

(http://www.rubyist.net/~matz/20041126.htmlより)
> 新言語。
> * Python文法
> * 静的型
> * 型推論
> * CLI上で動作


246 :デフォルトの名無しさん:04/11/28 13:28:36
つかちゃんと型宣言した方が(・∀・)イイよ

247 :Aransk:04/12/13 19:15:16
関数型言語IoがサーバーとVM,UI付きで発表されました!
ttp://www.iolanguage.com/Downloads/
IoDesktop-2004-12-06 vm + server addons + ui addons 20M
日本語ドキュメント:
ttp://f21.aaa.livedoor.jp/~kizz/prog/io/Docs_ja.html

純粋に関数型かどうかは別にして一応、
Io is small prototype-based programming language.
The ideas in Io are mostly inspired by Smalltalk
(all values are objects), Self, NewtonScript and Act1
(prototype-based differential inheritance, actors and
futures for concurrency), LISP (code is a runtime
inspectable/modifiable tree) and Lua (small, embeddable).
となっています。
ぱっと見、良さ気な言語に思えますが、
少なくともbooよりは…。

248 :Aransk:04/12/13 19:43:09
Ioに興味なくても、この言語の製作者であるデコルテさんの
好きな言葉だけでも必見の価値があると思う。
ttp://www.dekorte.com/Quotes.html
良い言語を作りそうな感じがするでしょう?


249 :デフォルトの名無しさん:04/12/13 21:36:31
ミニマルなプロトタイプベースのOO言語だな。
面白いと思うけどこのスレで扱う内容か?

それにしても非常に検索しづらそうな名前だと思うが……。


250 :デフォルトの名無しさん:04/12/14 13:22:13
Aranskにマジレス禁止

251 :Aransk:04/12/14 16:05:05
LISP (code is a runtime inspectable/modifiable tree)
Ioは一応Lispに影響されたとあります。また、イオってギリシャ語で
月を意味するそうです。Lunaに影響されたとあります。

では,関数型言語の総本山の話題です。
ttp://www.lisperati.com/
見られました?
GNU CLispはお奨めと書いてあります。
ttp://ciapek.uci.agh.edu.pl/~kwlodarc/VisualCLisp/en.htm
IDEツールもあるようです。

and of course it has a few bugs.
If you find one, please, let me know
(a fewとoneに味がある…)

and if you've got any informations about zionist
conspiracies, please, let me know

and if you've got any idea about how to solve
the middle-east conflict or war in Iraq, please, let me know

in other cases, please, don't let me know

VCLisp作者のこのコメントは笑えませんか?
>>250
don't let me know ってか?(藁)


252 :デフォルトの名無しさん:04/12/15 01:31:52
関数型言語ってどこが一番嬉しいところなんだろう。副作用ないとこ?
抽象化が簡単にできるとこ?
クロージャ(無名関数でも可)がつくれるとこ?


253 :デフォルトの名無しさん:04/12/15 07:53:16
言語のコミュニティに馬鹿が少ないとこ。

254 :デフォルトの名無しさん:04/12/15 11:18:58
Aranskがいる

255 :Aransk:04/12/15 13:24:10
関数型言語の良いところ:
マイナー感が適度にあるところ
言語エリート意識をくすぐるところ
仕事で使う必要がないところ
言語コニュニティー構成員の
世間的知名度の低いところ。
雑誌の記事や本には、ならない。
売れない、儲からない。
それでも関数型言語に拘るのは
馬鹿とまでは言いませんが
結構かすっている人々が多いと
思われ。PrologやAPLなんかよりは
まだましですが。今や過去の遺物と
なりつつあるCOBOLやCと比べても
かなり実用性には欠ける。
その点でRubyなんかのファンと
似た心情と考えております。
タイガーズファンとも…。



256 :デフォルトの名無しさん:04/12/15 13:28:00
>>255
他の言語でも応用が効くんだよね。

257 :デフォルトの名無しさん:04/12/15 14:19:53
池沼はスルー

258 :デフォルトの名無しさん:04/12/15 20:04:33
Ioはスレ違い
関数型でもないし目指してるとこが違うだろ
つーか↓過疎スレなんだから盛り上げてやれよw

プロトタイプベース・オブジェクト指向
http://pc5.2ch.net/test/read.cgi/tech/1070886635/

259 :デフォルトの名無しさん:04/12/15 23:23:30
>>256
つーことは、
他の言語にない概念を関数型言語から学べる、というのが一番嬉しい
ってことか。


260 :Aransk:04/12/16 13:52:29
>>259
マイナー言語に嵌るタイプの人々を観察しながら
あぁだぁ、こうだぁ、と評論家的に語るのが
一番嬉しいってこと。これは関数型言語に
限らない。
つまりインドとか中国はまだそんな余裕がない。
JavaやC++なんかの稼げる言語で稼ぐのに
必死であり、マイナー言語なんかをトロトロ
やってる暇がないのです。
関数型言語は特に実用性に欠けるでしょう?
そこが成熟社会における魅力でもある訳です。
やっても世間的に意味のないことが
オタク心理をくすぐる訳なんです。
いってみれば閑散とした田舎の鈍行列車
ですって。
ttp://www.lisperati.com/
これなんかまさにLispの特徴を
うまく表現していると思うけどねぇ。
「だから、どうなの?」って言われると
困るところも含めて…。

261 :デフォルトの名無しさん:04/12/16 21:14:29
>>260
学際的な視点からの意見は?

262 :デフォルトの名無しさん:04/12/17 04:51:08
【計算機プログラムの構造と解釈】 P212

  オブジェクトモデルは、世界をばらばらな部品に分割することで、それを近似する。
  関数型モデルはオブジェクト境界に沿っての部品化はしない。オブジェクトモデルは
  「オブジェクト」の非共有の状態が、共有の状態よりずっと大きい場合に有用である。
  オブジェクトの視点が失敗する場所の例は、量子力学で、そこでは物を個々の粒子と
  考えると矛盾と混乱に陥る。オブジェクトの視点と関数的視点の統合は、プログラ
  ミングより基本的認識論に見るべきものがある。

この「基本的認識論」と呼ばれるものについて知りたいのですが、何か参考になる
文献など、ご存知でしたら教えてください。

263 :デフォルトの名無しさん:04/12/17 05:27:38
>>262
認識論の基本ということであれば、観念論的立場だが、ヘーゲルを
読むのがいいと思う。ただし「精神現象学」から入るのは止めた方が無難。

264 :Aransk:04/12/17 12:49:16
>>262
「ケインズの哲学」伊藤邦武著 岩波書店
お奨めです。いきなりヘーゲルはきついと思われます。
ご承知の通り、ケインズは本来経済学者です。
従って本書中にある確率論はとっつき易い。
すくなくともヘーゲルより
「オブジェクトの視点と関数的視点の統合は、プログラ
  ミングより基本的認識論に見るべきものがある。」
的な視点と近いものがあります。



265 :Aransk:04/12/17 13:18:56
>>261
ttp://www.shiro.dreamhost.com/scheme/trans/power-j.html
簡潔さは力なり---Succinctness is Power---
Paul Graham, May 2002.
Quote:
Arcで階乗を高階関数で次のように書きたくなければ:
(rec zero 1 * 1-)
つぎのような再帰的な表記を使っても良い:
(rfn fact (x) (if (zero x) 1 (* x (fact (1- x)))))
私は例をすぐに思い付けないけれど、言語が簡潔すぎることが
可能かどうかという問いには興味がある。ごちゃごちゃ固まって
理解不能なようにしかコードを書けないような言語なんて
あるだろうか。誰か例を思い付いたら、是非見てみたい。
Unquote:
ttp://sonic64.hp.infoseek.co.jp/2003-06-04.html
Perl one liner 集 perl 1行野郎
Quote:
ファイルを文字単位ですべてひっくり返します
perl -0777e 'print scalar reverse <>' f1 f2 f3 ...
Unquote:
(rec zero 1 * 1-)

perl -0777e 'print scalar reverse <>' f1 f2 f3 ...

簡潔性において上が勝るが可読性では下が勝る。
また上の例など返って間違う可能性が高い。
「さこそ」とぞおおせいでたまいけり。
誰が言っているのか、何を言いたいのか
つぶやいてみたかっただけなのか、
さっぱり分からん、状況に極めて
類似してないだろうか?


266 :デフォルトの名無しさん:04/12/17 18:48:41
よろづに時といふは必らず見るべきものなり -- 樋口一葉

267 :デフォルトの名無しさん:04/12/17 21:09:38
>>263
哲学や物理学のようなものではなくて、認知科学や実験心理学のような
ところの研究成果で、素人にも分かりやすく整理されている何かおもしろい
ものはないかな、と勝手に期待してました。
ヘーゲルは大昔に「論理学」を読んだことがありますが、難しくてさっぱり
分りませんでした。
>>264
>的な視点と近いものがあります。
どう近いんでしょうか?私の知りたいのはアクロバットな認識というよりも、
全ての人が理解しうるようなもっとプリミティブなものです。

というわけで、この話題スレ違いだし電波臭いので終わり、です。

268 :Aransk:04/12/26 17:12:25
ドイツ観念論ばりばりのヘーゲルよりは
イギリス経験論の流れをくむラッセルーケインズ
なんかの方がプログラミングには近いと思うのです。
また、ケインズは本職が経済学ですから
哲学の専門家よりは用語は分かりやすく
基本的なところから入っています。
さらにご承知のとおりケインズは
イギリスの大蔵省に長く勤めた実務家です
から、論理に浮いたところが少ない。
そのケインズの哲学を日本人が解説して
いるいわば新書版感覚で読める本と考えて
推薦しただけで他意はありません。
オブジェクト指向も関数指向も命題の
切り取り方にある訳です。従って
ケインズの説くA−>B命題に帰納される
際の蓋然性の束という概念があるいは
「オブジェクトの視点と関数的視点の統合」
という観点になんらかの寄与をするかも
しれないなと考えている次第です。




269 :デフォルトの名無しさん:05/01/08 12:57:55
Aranskの文章の起承転結をおしえてください

270 :デフォルトの名無しさん:05/01/08 18:34:06
妄想に始まり承、転はなくて妄想に終わる。


271 :デフォルトの名無しさん:05/01/09 18:56:33
全体で見ると恒等写像ですか?

272 :Aransk:05/01/16 15:23:47
>全体で見ると恒等写像ですか?
流動的で不確実な世界を
モデル化するための視点と
方法における蓋然性の束と
考えて下さい。写像そのものに
既に蓋然性と選択性が入りこんで
いるような。

273 :デフォルトの名無しさん:05/01/16 18:14:03
脳の腐りかけた文章発見!!

274 :デフォルトの名無しさん:05/01/17 02:54:01
名前をよく見ろ。腐りかけてるんじゃなくて腐ってるんだ。

275 :デフォルトの名無しさん:05/01/17 05:12:09
>蓋然性の束

これはどういう意味ですか?興味あるので詳しく教えてください。
イジワルではありません。

276 :Aransk:05/01/17 17:28:17
>>275
申し訳ないが「蓋然性の束」を概念を一から
説明するとなると結構大変なんです。
そこでまず以前にご紹介した「ケインズの哲学」の
該当部分をお読み頂くか、宮台先生のBlogにおける
社会学入門の7回以降辺りを読んで頂けないでしょうか?
http://www.miyadai.com/?blogid=1&catid=7&page=4
凡その概念を把握されてから、それをプログラミング
パラダイムにどう応用するのか一緒に考えて
みようじゃありませんか?

277 :Aransk:05/01/18 18:32:30
>>275
ここである程度「蓋然性の束」の概念を
ご理解頂ければ:
ttp://www.nanoelectronics.jp/kaitai/quantumcom/2.htm
「量子力学から確実に分かる唯一の情報は、確率だけということになる。」
このプログラミングパラダイムへの道が開けるのでは
ないでしょうか?
申し訳ありませんが、これ以上は企業秘密と言う事で
ご勘弁下さい。




278 :デフォルトの名無しさん:05/01/19 00:07:36
Arnaskに新書いじょうのものは理解できない
ということはよくわかった。

279 :Aransk:05/01/20 13:52:53
新書以下にも付き合うのが「しんどい」ってことも
分かってくれた?

280 :デフォルトの名無しさん:05/01/20 18:38:23
隔離スレが機能してない。
嫌がらせか?

281 :デフォルトの名無しさん:05/01/21 03:39:07
このスレッドは天才研究者「Aransk」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                         霊長類研究所

282 :デフォルトの名無しさん:05/01/21 03:44:59
>>281
矛盾。

283 :デフォルトの名無しさん:05/01/22 01:35:36
>>279
自分の文章を読むのもしんどそうですね

284 :デフォルトの名無しさん:05/01/23 00:50:54
せっかく本人が削除しやすい名前付けてくれてるんだから
専用ブラウザで見ようぜ。

285 :デフォルトの名無しさん:05/01/23 05:43:47
キチガイはスルーが一番キツイらしいからね

286 :デフォルトの名無しさん:05/02/01 17:16:45
MSのF#もだいぶすっきりしてきた様に思いますが…
UNICODEやDLも使えるそうな、
案外MLの本命になるかもね?
ttp://research.microsoft.com/projects/ilx/fsharp.aspx
1.0リリース直前!MLはF#、ScriptはGroovyで決まりか?(笑)

287 :デフォルトの名無しさん:05/02/01 17:18:48
なんでそこでGroovy?
意味わかんねえ

288 :デフォルトの名無しさん:05/02/01 21:59:58
>>286 書き方が Arnask っぽい
本人ですか?

289 :デフォルトの名無しさん:05/02/01 22:25:26
>>288
アルナスク?だれですか

290 :デフォルトの名無しさん:05/02/02 00:24:55
シャア=アナルスキ

291 :Aransk:05/02/02 15:08:44
>>288
なんで分かるの?正しくは「Aransk」だかんね。
>>287
>なんでそこでGroovy?意味わかんねえ
寄らば大樹の陰です。世の中の常識では?(笑)

292 :デフォルトの名無しさん:05/02/02 15:26:08
アナルスキー関連はこちらへ
超準関数型言語Aransk
http://pc5.2ch.net/test/read.cgi/tech/1082176723/

293 :Aransk:05/02/03 15:26:38
ワカリマセンよ。
気付いたら関数型言語はF#しか残ってないかも?


294 :デフォルトの名無しさん:05/02/03 15:29:36
アナル好き?がいしゅつ(←なぜか変換できない)

295 : ◆AnalSexRiQ :05/02/03 16:15:33
Anarsk関連はこちらへ。以後スルーよろしく
超準関数型言語Aransk
http://pc5.2ch.net/test/read.cgi/tech/1082176723/

296 :デフォルトの名無しさん:05/02/03 23:38:37
ScriptはRuby!きまってんだろ!?
ああ?

297 :デフォルトの名無しさん:2005/04/10(日) 15:39:32
LLLLLLLLLLLLLLLLLLLLLLLLLLL
      A  .  I   .
LLLLLLLLLLLLLLLLLLLLLLLLLLL

298 :デフォルトの名無しさん:2005/04/21(木) 04:36:46
>>264
そりゃケインズの確率論(フェロー応募論文のやつだよね)はほとんど哲学だからな。
数学とはいえないだろう。そういう意味では難解ともいえるな。

299 :デフォルトの名無しさん:2005/04/29(金) 08:40:25
fortran, C, C++, JAVA, Perl, Python で科学計算の経験はあるのですが、
趣味で関数型言語を勉強してみたいと思っています。ML系、Haskellの
どちらかから始めて、次にLispに進もうと思っていますが、前2者のどちら
がお薦めでしょうか?

300 :デフォルトの名無しさん:2005/04/29(金) 10:03:11
どっちでも可。
ただ、言語として綺麗なのは Haskell。また、 ML は「純粋な」関数型言語で
はないので、 Haskell の方を勧める。

つか、挙げてる中では Lisp 系が一番楽だと思う。本もいっぱい出てるし。


301 :デフォルトの名無しさん:2005/04/29(金) 12:03:48
>>299
HaskellよりMLの方が馴染みやすいと思うよ。
MLよりもLispの方が馴染みやすいと思うよ。
でも、何の為にそれらの言語を覚えるの?
確かに、違う言語のパラダイムを見ることはプログラミングテクニックの向上にはなるけれど。

302 :299:2005/05/01(日) 23:43:20
きっかけは Maxima という数式処理プログラムが lisp で書かれているのを
知ったからです。ただ、lispは括弧が多いし何となく古くさい感じがするので
どうせなら新しい言語をと思ったのです。

303 :デフォルトの名無しさん:2005/05/02(月) 03:56:28
言語を覚えるのなんてその先の道程にくらべればたいした手間じゃないんだから
興味のある対象で使われてるものから手をつければいいのに。


304 :デフォルトの名無しさん:2005/05/03(火) 07:02:37
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので
> 何となく古くさい感じがするので

305 :デフォルトの名無しさん:2005/05/03(火) 07:53:47
>>302
古臭いと言われちゃうとなあ……ええ、古いし括弧だらけですよ?
さておき、まずこちら辺りを眺めてみては。

独習 Scheme 三週間
ttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme.html
やさしい Haskell 入門
ttp://www.sampou.org/haskell/tutorial-j/index.html

まあ、他の方が言っているように Lisp 系が一番入り易くはあるでしょう。
善かれ悪しかれ何でもありなので、どんなスタイルでもとりあえず書けるから。
Lisp 系で手続き型っぽい書き方から関数型っぽい書き方に
頭を馴らしていくのが障壁は低めじゃないかなーと。

306 :デフォルトの名無しさん:2005/05/04(水) 18:45:21
>>302
Lispを侮ってはいけない。
確かに関数型言語の思想からはみ出している部分はあるが、
それでも関数型言語の原型であり到達点であることには疑いがない。

若干宗教的偏執はあるが、
http://www.shiro.dreamhost.com/scheme/trans/icad-j.html
が面白い。下記は引用。

>Java、Perl、Pythonと順に見て来ると、おもしろいパターンに気づくだろう。
>少なくともあなたがLispハッカーであればきっと気づくはずだ。
>各言語は次第にLispに近付いてきている。
>PythonはLispハッカーの多くが間違いだと思っている機能さえコピーしている。
>簡単なLispプログラムなら、ほぼ一行毎にPythonに変換することすら可能だろう。
>2002年の今になって、プログラミング言語はようやく1958年に追い付こうとしている。

307 :デフォルトの名無しさん:2005/05/04(水) 21:10:07
関数型言語の勉強を始めたら、Cを書くのが遅くなった。
意味もなく考えすぎてしまうようになった。これはいいことなのか
悪いことなのか・・・

308 :デフォルトの名無しさん:2005/05/08(日) 13:54:06
ポピュラーサイエンスに「プログラマは頭使わね。」
みたいなこと書いてあったからいいんじゃね。


309 :デフォルトの名無しさん:2005/05/24(火) 11:25:14
遅延評価を実装してる言語って、Haskell, Clean, 他に Python もそうなの?
どーせ勉強すんなら普段とは違った性質がある言語がイイと思って。

310 :デフォルトの名無しさん:2005/05/24(火) 18:02:46
>>309
Pythonは違う

311 :デフォルトの名無しさん:2005/05/24(火) 20:00:30
遅延評価なんてちょこっと処理系のコード弄ればできちゃうのに。

312 :デフォルトの名無しさん:2005/05/24(火) 20:56:16
>>311
……………まあ、いいや。

313 :デフォルトの名無しさん:2005/05/25(水) 01:19:04
>>310
> Pythonはリストの内包表記といくつかの遅延評価メカニズムを備えているから
ttp://www.shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html

314 :デフォルトの名無しさん:2005/05/25(水) 01:34:15
とはいっても square(2+3) が (2+3) * (2+3) に
なるわけではないし


315 :デフォルトの名無しさん:2005/05/25(水) 02:05:56
>>313
根拠を挙げるならPythonの遅延評価に関る機能を挙げなさいよ。
「備えている」てだけの発言を引いたって意味ないよ。


316 :309 = 313:2005/05/25(水) 03:41:06
Python 使った事ないでつ。
「遅延評価メカニズムを備えている」って書いてあったから、そーなのかなと思ったでつ。
不勉強で申し訳ないでつ。

317 :デフォルトの名無しさん:2005/05/25(水) 07:33:05
最近 C が関数型言語なんじゃないかって気がしてきた

318 :デフォルトの名無しさん:2005/05/25(水) 15:26:48
そうかもね。でも高階関数の型の構文は変だよ。例えば
  f : (int -> float -> short -> char) * int -> float -> short -> char
みたいな型は
  char (* (* f (char (* (* (*) (int)) (float)) (short), int)) (float)) (short);
みたいに書かなければならないし。

319 :デフォルトの名無しさん:2005/05/25(水) 15:31:59
変つうよりも見にくいつうならまぁ同意。

320 :デフォルトの名無しさん:2005/05/25(水) 21:33:48
> f : (int -> float -> short -> char) * int -> float -> short -> char

これを日本語で読み下してもらえませんでしょうか


321 :デフォルトの名無しさん:2005/05/25(水) 21:44:58
A型とint型のペアからB型への関数型.

ここで
A型は,int型からB型への関数型,
B型は,float型からC型への関数型,
C型は,short型からchar型への関数型.


322 :デフォルトの名無しさん:2005/05/25(水) 22:16:00
あんがとう

f : ((int -> (float -> (short -> char))) * int) -> (float -> (short -> char))

括弧で順位を付けるとこうなるのね


323 :デフォルトの名無しさん:2005/05/25(水) 23:03:58
* って デカルト積 ?

324 :デフォルトの名無しさん:2005/05/26(木) 03:28:02
関数型アセンブラ言語ってないの?

325 :デフォルトの名無しさん:2005/05/26(木) 06:08:09
>>324
関数型CPUがないから、

326 :デフォルトの名無しさん:2005/05/26(木) 08:44:35
ある意味Lisp machine上のLispとか?

327 :デフォルトの名無しさん:2005/05/26(木) 08:55:54
OcamlのZINC VM
 http://pauillac.inria.fr/~xleroy/publi/ZINC.pdf


328 :デフォルトの名無しさん:2005/05/26(木) 17:43:54
確かにLISPマシンはアセンブリと言えるカモナ。

329 :デフォルトの名無しさん:2005/05/26(木) 18:25:55
cleanのabcマシーンとか。他にもいくつか抽象機械はあったはず。良くしらんけど。

330 :デフォルトの名無しさん:2005/05/26(木) 18:56:04
抽象機械とVMは違う概念でしょうか

331 :デフォルトの名無しさん:2005/05/26(木) 21:26:49
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330
>>330

332 :デフォルトの名無しさん:2005/05/26(木) 21:28:58
>>330
同じと思ってよい

333 :デフォルトの名無しさん:2005/05/26(木) 21:35:04
>>332 ?

334 :デフォルトの名無しさん:2005/05/26(木) 21:36:22
英単語の略称とその和訳を知ったかぶるスレはここですか?

335 :デフォルトの名無しさん:2005/05/26(木) 21:36:56
>>331を見て「ループに書き直さなきゃな」とか思う漏れは末期症状?
>>330仮想機械と抽象機械ってどう違うの? 実装と仕様ってこと?

336 :334:2005/05/26(木) 21:37:23
つか、単なる和訳じゃん。

337 :デフォルトの名無しさん:2005/05/26(木) 21:40:21
abstract machine 抽象機械: 操作的意味論を定義するためのもの
virtual machine  仮想機械: ソフトウェアで記述された機械語インタープリタ。
                   もし抽象機械があれば、まず抽象機械と対応のとれる実装をする事が多い


338 :デフォルトの名無しさん:2005/05/26(木) 22:13:46
恥ずかしい>334がいるのはこのスレですか

339 :337=334:2005/05/26(木) 22:25:34
いみふめ

340 :デフォルトの名無しさん:2005/05/26(木) 22:26:44
>>338
おにいちゃん・・・はずかしい・・・

341 :デフォルトの名無しさん:2005/05/26(木) 22:54:03
ごめんね。おにいちゃんSECDとかSKとかGとかBとかCAとかLAとか知らないからごねんね。

342 :デフォルトの名無しさん:2005/05/26(木) 23:02:47
おにいちゃん、必死過ぎ・・・

343 :デフォルトの名無しさん:2005/05/27(金) 05:42:11
結局>331は何を言いたかったん?

344 :デフォルトの名無しさん:2005/06/03(金) 08:24:26
自己準同形と自己同形の違いが分らんですにゃ

345 :デフォルトの名無しさん:2005/07/29(金) 23:06:11
初代1です
ごめんね

346 :デフォルトの名無しさん:2005/09/21(水) 05:36:47
OCamlとHaskellのどちらかを勉強しようと思うのですが
どっちがいいでしょうか?

347 :デフォルトの名無しさん:2005/09/21(水) 06:40:55
OCaml と GHC と MLton(SML) をインスコして試してみたら。
好き嫌いの問題が大きいから、どれがお勧めとかは難しいよ。

348 :デフォルトの名無しさん:2005/09/21(水) 13:35:42
Pugs書いた天才を見習ってhaskell一ヶ月やってみたら?

349 :デフォルトの名無しさん:2005/09/21(水) 17:30:11
>>346
まず「関数プログラミング」を買って読む。
ttp://www.kindaikagaku.co.jp/bookdata/ISBN4-7649-0181-1.htm

それで理解できたらHaskellに進む。
無理だったらOCamlへ進む。


350 :デフォルトの名無しさん:2005/09/21(水) 22:33:41
一応、Lispの経験あります。
Haskellの方が先進的ということなので、
Haskellやってみようかと思います。

351 :デフォルトの名無しさん:2005/09/21(水) 22:42:20
自分が頭がいいつもりになれるしね

352 :デフォルトの名無しさん:2005/09/24(土) 00:43:28
関数型のメリットって、副作用がないことだけ?

353 :デフォルトの名無しさん:2005/09/24(土) 00:46:51
副作用が無いと言うより、副作用を使わないよう強制されるじゃないか。
或は副作用を切り分けられるとか。

354 :デフォルトの名無しさん:2005/09/24(土) 01:18:52
なるほど。
副作用がないことがあらかじめわかってるからこそできることって
なんだろう?

そういう機能をC++とかにいれたりしないんだろうか?

355 :デフォルトの名無しさん:2005/09/24(土) 01:22:55
>>352
why functional programming matters
ttp://www.sampou.org/haskell/article/whyfp.html

356 :デフォルトの名無しさん:2005/09/24(土) 01:57:58
>>354
C++に例えるならテンプレートのコンパイルタイムプログラミング
今流行じゃないのか?

357 :デフォルトの名無しさん:2005/09/24(土) 03:35:43
>そういう機能をC++とかにいれたりしないんだろうか?
まだ研究段階だから。そんなこと言うなら○○入れろとかいくらでも言える。


358 :デフォルトの名無しさん:2005/09/24(土) 11:54:50
>>352
不必要に副作用に頼らなくていいのがひとつの利点だと思う。
たとえばループをまわすときに毎回カウンタ変数を更新するのは直感的でない。
そこで高階関数を使って典型的なループを抽象化する。
この点では副作用が禁止されていることはそれほど重要ではない
(たとえば、副作用を避けて再帰でやっても似た問題がある)ので、
この手法はC++の標準アルゴリズムなんかに取り入れられている。

一方、C++の標準アルゴリズムがそれほど使いやすくない(私見)理由のひとつは、
直感的な「データ構造の値渡し/値返し」が効率上の理由から避けられている事だ。
副作用がなければ、値渡しと参照渡しを区別できないので、
値渡しの直感性を保ったまま参照渡しで実装できる。
さらに、データが変更されないことが保障されていれば、
データ構造の共有もやりやすい。

359 :デフォルトの名無しさん:2005/09/24(土) 12:23:24
値渡しと参照渡しの差が無くなるのって重要ですね。

関数型は関数に副作用がないことを仮定できる時、
どこまでコードが抽象化できるかを考えてるわけですね。

JavaやC#、C++を使っていますが、
やはり何か足りないと感じてます。
そのヒントが副作用にあるといいのですが。

まだまだプログラミング言語って改良の余地ありますよね。

360 :デフォルトの名無しさん:2005/09/25(日) 23:32:37
関数型言語で
HTTPdとかWEBクライアントとか作ってる人っているのかな?

361 :デフォルトの名無しさん:2005/09/25(日) 23:41:16
>>360
web browser
ttp://pauillac.inria.fr/~furuse/jmmm/index.html

362 :デフォルトの名無しさん:2005/09/26(月) 00:39:04
System programming using FP
ttp://lambda-the-ultimate.org/node/view/943
そのキャッシュ
ttp://www.google.com/search?q=cache:lambda-the-ultimate.org/node/view/943+haskell+web-server&strip=1


363 :デフォルトの名無しさん:2005/09/26(月) 06:59:36
>>361
Tkベースで不細工だけど
関数型で書いてる意味あんの?

364 :デフォルトの名無しさん:2005/09/26(月) 07:07:40
もしかして関数型って実用的じゃないの?

365 :デフォルトの名無しさん:2005/09/26(月) 07:12:22
>>363
意味をどのレベルで求めるかに依るんじゃないかな。

ttp://pauillac.inria.fr/~furuse/jmmm/0418/faq-ja.html#caml

以前 ML スレで ML で書いた OS の話が出て来た時も、意味が
有るか無いかって話題になったけど、その議論自体あまり意味が
無いんだよね。要は人それぞれ。
俺は作者の中の人じゃないから、存在するって事以外知らんよ。

366 :デフォルトの名無しさん:2005/09/26(月) 07:14:15
>>364
何でそう思ったのかな。

367 :デフォルトの名無しさん:2005/09/26(月) 08:04:12
http://cleangl.sourceforge.net/
ゲームぐらいは作れるよ。

368 :デフォルトの名無しさん:2005/09/26(月) 12:00:49
ゲームなんかどの言語でも作れるけど?

369 :デフォルトの名無しさん:2005/09/26(月) 12:10:40
言語処理系作るなら関数型がいいよ
なんせhaskell覚えたて厨がPugs1ヶ月で作ってるし

370 :デフォルトの名無しさん:2005/09/26(月) 18:01:28
>>368
whiteで3D格闘ゲームよろ

371 :デフォルトの名無しさん:2005/09/26(月) 20:46:40
>>360
MLでWebサーバ作成
http://pllab.jaist.ac.jp:8080/education/i217-2002/httpd.html

372 :デフォルトの名無しさん:2005/09/26(月) 21:55:34
C,C++の代わりになる関数型言語の処理系はないってことですね

373 :デフォルトの名無しさん:2005/09/26(月) 22:12:03
はいはい何も出来ませんよ

374 :デフォルトの名無しさん:2005/09/26(月) 22:21:24
はいはい(馬鹿には)何も出来ませんよ

375 :デフォルトの名無しさん:2005/09/26(月) 22:36:58
わざわざ馬鹿と断る意味ありませんよ

376 :デフォルトの名無しさん:2005/09/27(火) 00:39:43
関数型言語の代わりになるC,C++もねーだろ

377 :デフォルトの名無しさん:2005/09/27(火) 09:04:21
おらいら、「関数型言語で書いた」と言いたいだけだろ?
TPOをわきまえろ。

378 :デフォルトの名無しさん:2005/09/27(火) 15:32:10
なぜ関数言語は実用的じゃないのか?

379 :デフォルトの名無しさん:2005/09/27(火) 16:04:58
え、実用的じゃないなんて意見は初めて聞いたが・・・
>>378はなんでそう思ったんだ?


380 :デフォルトの名無しさん:2005/09/27(火) 17:39:28
世のアプリは関数型で作られてない。

381 :デフォルトの名無しさん:2005/09/27(火) 18:49:27
Aransk?

382 :デフォルトの名無しさん:2005/09/27(火) 18:59:16
まあ、実際使われてないのは
実用的じゃないからなんだが

383 :デフォルトの名無しさん:2005/09/27(火) 19:21:17
ある程度以上の頭を持っていれば非常に実用的。
そうでないと非実用的。

384 :デフォルトの名無しさん:2005/09/27(火) 21:14:25 0
なこたぁない。
C言語をリプレイスするだけのメリットがないだけだろ。

385 :デフォルトの名無しさん:2005/09/27(火) 22:35:49 ID:0
「CかC++の置き換え = 主流・メジャー・優秀」か。

>>384
お前Win板とかで「Jane最強!!」とか「Opera糞!!」とかいってるタイプ?

386 :デフォルトの名無しさん:2005/09/27(火) 23:24:29
現実から目をそらすな

関数型は使われない、これ事実。
でも俺らは研究する、飯のために。

387 :デフォルトの名無しさん:2005/09/27(火) 23:35:50
だからさ、別に「他の人々があまり使わない」のはどうでもいいのよ。
僅かな人間だけが使いこなせるこの現状のほうが、俺には都合がいいし。

388 :デフォルトの名無しさん:2005/09/27(火) 23:46:34
最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな
関数型の知名度が上がるのはこれから




389 :デフォルトの名無しさん:2005/09/28(水) 00:03:19
と 10 年前も言われてたが Java が出た。

390 :デフォルトの名無しさん:2005/09/28(水) 00:06:34
>最近C#やC++とかメジャー言語でも関数型機能が取り込まれてるよな
もう関数型にこだわってる実用性の低い言語に価値はないね。

391 :デフォルトの名無しさん:2005/09/28(水) 00:09:33
>>387
ヒント:統計

392 :デフォルトの名無しさん:2005/09/28(水) 01:28:20
【研究】「実社会にも応用可」 "ジョルダンの曲線定理"、世界初の完全証明…信州大教授ら
http://news19.2ch.net/test/read.cgi/newsplus/1127835258/l50

この証明の検証に使用された定理証明システムはMLで書かれたプログラムです。

393 :デフォルトの名無しさん:2005/09/28(水) 07:57:21
MLはCで書かれたプログラムです。

394 :デフォルトの名無しさん:2005/09/28(水) 08:51:57
何の事だ?

395 :デフォルトの名無しさん:2005/09/28(水) 10:06:03
マシン語最強ってことだろ

396 :デフォルトの名無しさん:2005/09/28(水) 11:27:17
最強論議は小学生まで。

397 :デフォルトの名無しさん:2005/09/28(水) 18:01:43
関数型言語って使われてるの?

使われてないよ派
├OSが関数型じゃないから派
│├そもそもCPUが手続き的派
│└だからMLでOS作ろうぜ派(古典的行動派(絶滅の危機))
│ └やっぱLISPマシンだよ派(懐古派、第6世代派)
├関数型は遅い派
├関数型は人間の思考と合わないよ派(右派過激派)
│└それは最初に手続き型でプログラミングを習うからだ派
│ └最初にSchemeで教育しよう派(MIT信奉過激派)
│  └最初の教育はLOGOだろ派、Smalltalkだろ派(スレ違い派)
│   └LOGOは関数型言語だよ派(スレ違い修正派)
├機械語最強派(小学生派)
├おまいらは使わなくていいよ派(過激アカデミック派)
└火星人の陰謀だよ派(電波派)

使われているよ派
├定理証明とか言語処理とかはやっぱ関数型だよね派(穏健アカデミック派)
│└HaskellでRubyインタプリタ書きました派(行動派)
├Webサーバーとか実用アプリも書けるよ派
│└Haskellでグラディウス書きました派(行動派)
├C++とかPnutsとかC#とかで関数型は生き続けるよ派(中道派)
│└C++もJavaScriptもRubyも関数型言語だよ派(左派過激派、関数オブジェクトがあればみんな関数型だよ派)
└うちのシェルはeshだよ派


398 :デフォルトの名無しさん:2005/09/28(水) 21:15:26
>>397
君すごい。

関数型って開発環境が無いから使われないのかねぇ。
使われない理由を積極的に考えて、そこを改善していけばいいと思う。
行き着く先はC#みたいなものになるかもしれないけど、
たぶんC#よりちょっといいものができる気もする。

APIが移植されてないとかそういう理由かな。

関数型でTomcatみたいなのを作ろうかと思ってるんだけど、
お勧めの言語とOSってあります?

399 :デフォルトの名無しさん:2005/09/28(水) 21:57:24
OCaml + Linuxでいいんじゃね?

400 :デフォルトの名無しさん:2005/09/28(水) 22:12:08
俺は小学生派

401 :デフォルトの名無しさん:2005/09/28(水) 23:08:08
俺はツンデレ派(日頃関数型言語の悪口ばっかり言ってるけど、
家に帰るとPythonでバリバリラムダりまくっちゃうの)

402 :デフォルトの名無しさん:2005/09/28(水) 23:16:24
純粋関数型以外は関数型言語ではないと思うので,
Haskell & Linux


403 :デフォルトの名無しさん:2005/09/29(木) 00:19:48
迷うなー

そんな時間もないから、OCamlかHaskellのどっちかにしたい。
どっちも気に入ってる言語だから、
誰かもっと決定的な理由が欲しい。

Tomcatのようなミドルウェアを置くか、
ミドルウェアを見せないで、
ASPやJSPみたいなテンプレートエンジンを作ってしまうかでも迷ってる。



404 :デフォルトの名無しさん:2005/09/29(木) 00:43:42
>>398
>関数型って開発環境が無いから使われないのかねぇ。
開発環境いうよりは、まともなフレームワークが少ないからだと思う
関数型便利だ便利だっていってる人の大半はなんだかんだ理屈ならべて
ちっこいプログラムしか書かんから、
そもそもそういうでかいライブラリの需要もすくないんだろーな


405 :デフォルトの名無しさん:2005/09/29(木) 00:49:43
手続き型言語ならCやC++の既存のライブラリを利用する口金合わせも簡単だけど、
関数型はそうもいかんもんねえ。

406 :デフォルトの名無しさん:2005/09/29(木) 02:11:48
>MLはCで書かれたプログラムです。
なんてあるけど、一部のlibraryやoptimizerとしてC言語があるだけで、
別に何の言語でもいいんじゃねー?


407 :デフォルトの名無しさん:2005/09/29(木) 15:08:18
>>406
それはネタだから。
ネタにマジレスかっこ悪いって。

408 :デフォルトの名無しさん:2005/09/30(金) 04:30:28
関数型って日本語処理できないから嫌い

409 :デフォルトの名無しさん:2005/09/30(金) 21:01:16
>>408 がやりたいのは、どの程度の日本語処理だろう。

簡単なテキストフィルターなんかじゃなくて、
もっと高度なことをしたいのかな?


410 :デフォルトの名無しさん:2005/09/30(金) 21:21:46
Shift_JISの文字を読んで文字単位の操作をすることがあんまり気を付けなくてもできるとか、そんな風味

411 :デフォルトの名無しさん:2005/09/30(金) 22:35:30
文字なんて整数で扱えばいいじゃん。
なんだかんだでPerlだってそうしてるでしょ?

412 :デフォルトの名無しさん:2005/09/30(金) 23:48:32
408=410じゃないけど、ポイントになるのは、バイト単位じゃなくて文字単位で扱えることだと思う。
この辺の対応状況については、漏れの知っている限りでは、

OCaml: camomile を入れれば、いろんな文字コードのものをひとまず Unicode
に変換して、統一的に扱うことができる。正規表現だととりあえず PCRE がUTF対応。

Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。
GHCで鬼車を使うパッチはある。

Scheme: Gauche はきちんと日本語をサポートをしているという印象がある。


というところで、まとめると「できんこともない」というところか。簡単なテ
キストフィルタなら問題ないだろうけど。


413 :デフォルトの名無しさん:2005/10/01(土) 00:00:43
smlnjをダウンロードしたのですが、どのようにしたらコマンドプロンプトで使えるのですか??初心者のこんな僕にどうか教えてください!!

414 :デフォルトの名無しさん:2005/10/01(土) 00:28:19
日本語対応は関数型言語の1つの課題だね。

415 :デフォルトの名無しさん:2005/10/01(土) 00:35:46
なんかいきなり賑わいだしたが、なんかあったの?

416 :デフォルトの名無しさん:2005/10/01(土) 01:05:56
> Haskell: Hugs は CVS 版が Unicode をサポートをしているらしい。GHCはまだ怪しい感じ。
GHCで鬼車を使うパッチはある。

GHCはコンパイラ自体の字句解析がEUC以外の多バイトコードに対応してない。

417 :デフォルトの名無しさん:2005/10/01(土) 16:15:33
mod-perlみたいなのがないと
仕事じゃ使えない。

418 :デフォルトの名無しさん:2005/10/01(土) 22:33:20
仕事 == CGI 書き?

419 :デフォルトの名無しさん:2005/10/01(土) 23:13:08
自然言語処理です。

420 :デフォルトの名無しさん:2005/10/01(土) 23:44:18
確かにWEBアプリには使えないね。

421 :デフォルトの名無しさん:2005/10/02(日) 00:12:31
人権擁護法案がとおっちゃいますよ。

この法案聞こえはいいが、日本滅亡の序曲ですよ。


小泉が人権擁護法案早期に提出 (05/9/29・国会答弁)
http://live14.2ch.net/test/read.cgi/liveplus/1127977257/

人権擁護法案ってどんなものなんだ?
http://blog.livedoor.jp/monster_00/archives/cat_847822.html

分かる!人権擁護法案(Flash)
http://www.geocities.jp/kaniku4/

 言 論 弾 圧 に よ り 2 c  h も 閉  鎖 か ! ?

422 :デフォルトの名無しさん:2005/10/03(月) 06:18:24
CPUが関数型ってどういうの?どんなインターフェイスなの?

423 :デフォルトの名無しさん:2005/10/03(月) 14:07:02
全部遅延されているから、キーボードを叩かないと動き始めない。

424 :デフォルトの名無しさん:2005/10/05(水) 14:29:22
>>422
フォン・ノイマン型アーキテクチャだと関数型といえないだろ
CPU,メモリ,入出力という発想から脱却しないと


425 :デフォルトの名無しさん:2005/10/05(水) 22:03:31
リスプマシーンあったじゃん。

426 :デフォルトの名無しさん:2005/10/05(水) 22:31:34
しばらくみてたけど質問の意味がわからないな。>>422

Lispマシーンのinstruction setは関数型じゃありませんって。>>425
それが、hardware Lisp CPUであろうと、Virtual Machineだろうと。

言語としてのLisp自体、制御構造とか副作用とかが
沢山ありますよね。それをサポートするためのinstructionで
いっぱいで、その全体は関数型とは程遠いですよ。
むしろ、ちょっと風変わりな(保守的・古典的な)プロセッサって感じ。

一方、LispマシンorVMの存在は認めた上で、それが関数形言語の
実装という応用に対して便利か?という議論はありえますが、
これにも僕は否定的です。

427 :デフォルトの名無しさん:2005/10/05(水) 23:16:20
マウスの入力ってどうすんの?

428 :デフォルトの名無しさん:2005/10/05(水) 23:30:43
関数型CPUはメモリーもレジスタもないんだよ
値は命令間を直接流れる


429 :デフォルトの名無しさん:2005/10/06(木) 00:42:28
CPUっていうか
FPGAの設計に落とし込んだりできないだろうか。

430 :デフォルトの名無しさん:2005/10/06(木) 02:09:02
環境は?

431 :デフォルトの名無しさん:2005/10/06(木) 02:10:38
関数型っていうのはプログラミングの際に有用な概念であるけれど、計算機の構造上の有用性はあるの?

432 :デフォルトの名無しさん:2005/10/06(木) 02:29:19
ttp://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Shiro 2005/09/30 の所
ttp://homepage3.nifty.com/mogami/diary/d0509.html#28t1

Lisp/Common Lisp は純粋関数型じゃないから置いておいても、
これからのメニーコア CPU には関数型言語がベストマッチだと
いう考えが出て来てもおかしくはないかな。

433 :デフォルトの名無しさん:2005/10/06(木) 02:50:14
そうかなあ。レイトレみたく完全に独立な計算をパラに展開するのは
容易だが、相互に通信したり状態を共有したりするようなのは
純粋関数型で書くのはなかなか難しいと思う。
例えば探索なんか一見パラにできそうでもキャッシュやルックアップテーブルが
きちんと機能して枝刈りできないとつらいっしょ。

>>432のリンク先に書いてあるようなミクロな並列性はスレッドをプールから
ひっぱってきてアサインして完了を待つなんてことやるコストに引き合うか
疑問でしょ。たぶんプロファイルとった上で限られた部分にだけ適用しても
引き合うんじゃないの。行列計算とかならともかく、インタラクティブなもの
はたいがい状態引き回しが必要だろうし。

>>432みたいのはちょっと、裏付けなさすぎの与太話の域を出ないんじゃないかな。


434 :デフォルトの名無しさん:2005/10/06(木) 13:28:45
関数型がくそに思えてきた今日この頃。

435 :デフォルトの名無しさん:2005/10/06(木) 19:15:02
>>428
Tomasulo algorithmは見方によっては命令間で直接データを渡してるな。
見方によってはただのレジスタリネーミングだけど。


436 :428:2005/10/06(木) 21:22:11
ほほぅ。思いつきで言ってみたが、いいセンスしてるな。俺。

437 :デフォルトの名無しさん:2005/10/16(日) 18:58:16
関数型マンセーな人の何割かが実践してプログラム組めば、
関数型が使えないなんてことにはならないかもしれんな
と最近思った。


438 :デフォルトの名無しさん:2005/10/16(日) 19:31:10
そういう面倒なだけで論文の書けないことは、下々の皆様にお任せします。

439 :デフォルトの名無しさん:2005/10/17(月) 23:27:54
研究者でも何割かはまともな論文書いてないだろうし、
って言ったら怒る?


440 :デフォルトの名無しさん:2005/10/18(火) 00:04:29
Common Lispで実践的なプログラムを書いてみる入門書が無料で読めるね。
まだちょっとしか読んでないけどなかなかおもしろいよ。

http://www.gigamonkeys.com/book/

441 :デフォルトの名無しさん:2005/10/18(火) 00:20:32
目次だけ見ましたが、>>440 Common Lispで(Common Lispっぽい)実践的な
コードを書く話かと思います。関数型言語と関係があるように思えませんでした。

Common Lispを関数型言語とは普通呼ばないし、Lispの中でもCommn Lispは
関数型プログラミングはやりにくい部類ですよね。

442 :441:2005/10/18(火) 00:33:53
うげ!
今改めて>>1をみたら、Lispスレや、あろうことかEmacs Lispスレまで
関係あることになってるのな。そういうpositionのスレだとは知らんかった。

てなわけで、関数型に対してカタクナ過ぎる俺は無視して続けてくれい >>440

443 :デフォルトの名無しさん:2005/11/01(火) 22:07:10
そこまで気にする必要ないよ。
多少の派閥があるだけだから。

444 :ハーピィ:2005/11/01(火) 22:23:52
E・∇・ヨノシ <444ゲット♫

445 :デフォルトの名無しさん:2005/11/06(日) 00:08:28
>>442
つうか Lisp の中で特別 Common Lisp が関数型やりにくいってのは誤解だと思
われ。ただ単にマルチパラダイムなだけでやるやつはやる。そんとき特別
Scheme よりやり難いってわけでもない。型推論とかパターンマッチング構文も
いくつか実装があったような


446 :デフォルトの名無しさん:2005/11/06(日) 02:43:18
Ocamlの質問ってここでしていいですか?
ttp://www.kb.ecei.tohoku.ac.jp/~sumii/ocamlbook/book-ora.pdf
の88pの練習問題 字句木をやっているんですが、stringの先頭から
順番に文字を受け取りたいときってどうすればいいんですか。
もちろんstr.[n]ってすればできるんですけど、
リストみたいにもっとスマートにできないんですかね。

447 :デフォルトの名無しさん:2005/11/06(日) 03:08:39
>446
一応より特化したスレがあるが

関数型言語ML(SML, OCaml, etc.), Part 3
http://pc8.2ch.net/test/read.cgi/tech/1103606223/

448 :デフォルトの名無しさん:2005/11/06(日) 03:48:10
>>446
残念ながら、そういう方法はない。ので、
1. str.[n]を駆使する
2. 自分で list_of_string を書いてリスト化してから処理する
3. Stream.of_string を使って Stream で処理する
4. そのほか
のどれかをやるしかない。

この練習問題くらいなら 2 だろうなという気がする。


449 :デフォルトの名無しさん:2005/11/15(火) 15:28:30
String.iter

450 :デフォルトの名無しさん:2005/11/19(土) 16:19:08
何この差wwwww

http://sourceforge.net/softwaremap/trove_list.php?form_cat=160

C++ 16669
Java 16645
C 15876
PHP 12092
Perl 6187
.
.
.
LISP 323


451 :デフォルトの名無しさん:2005/11/19(土) 18:22:43
Ruby 398( ´,_ゝ`)プッ
Visual Basic .NET 289(*≧∇≦)ノ☆ ギャハハ プギャー

452 :デフォルトの名無しさん:2005/12/15(木) 08:10:46
誰か STM(software transaction memory) とはどーいうものか
教えてくれぬか

453 :デフォルトの名無しさん:2005/12/15(木) 09:53:20
>>452
マルチスレッドプログラミングで、スレッド間の(mutableな)共有変数を扱うとき、
コードの特定の部分が他のスレッドに割り込まれることなく(つまり、atomicに)実行されてほしいことがある。
STMの考え方は、その部分で起こった共有変数への読み書きを局所的なログに保存しておいて、
その部分が終了したときまとめてメモリに反映するというもの。
最後に不整合が見付かった場合、ログを捨てて最初からやり直す。

こういうとき普通はロックを使うんだけど、ロックにはいくつか問題がある。
例えば、共有変数を扱う二つの(副作用のある)関数A,Bがあったとして、
A,Bともに正しくロックを使っていたとしても、「Aを呼び、次にBを呼ぶ」ことをatomicに行う
関数を書くには、AとBの抽象化を破壊してどの変数をロックすべきかを調べないといけない。
STMはこの問題を解決する。

http://www.research.microsoft.com/%7Esimonpj/papers/stm/index.htm
俺はこれの前半を読んだだけだから、変なことを言ってたら突っ込んでくれ。

454 :デフォルトの名無しさん:2005/12/15(木) 22:23:18
optimistic lockingでやるってことか。
最後にコミットするときはロックによるatomicityの保証がいる筈だが、
Cで書いたcommit APIの中に閉じ込めるのでHaskellからは見えないということ
みたいだな。
>>453の論文の範囲では、Haskellはuni-processorのみ、かつuser-level
threadが safe pointでしか切り替わらないからCで書いた部分はアトミック
と考えていいらしい。Rubyと同じってことだね。


455 :デフォルトの名無しさん:2005/12/16(金) 10:24:50
誰か関数型プログラミングどんなものか教えてくれ。
普通のウィンドゥプログラムとかかけるの?

456 :デフォルトの名無しさん:2005/12/16(金) 10:28:19
>>455
書けるに決まってるだろハゲ。チューリング完全を何だと思ってやがる。

457 :デフォルトの名無しさん:2005/12/16(金) 10:29:27
>>453
>ログを捨てて最初からやり直す。
うーん、まだpaper読んでないけど、これってどう実現するんだろう
整合性が確かめられるまで無制限にやり直すのだろうか

458 :デフォルトの名無しさん:2005/12/16(金) 19:09:50
それよりコミット(反映)する際には結局ロックが必要そうな…

459 :デフォルトの名無しさん:2005/12/16(金) 19:43:54
コミット中に、他のスレッドに割り込まれないように実装してるんだよ。

460 :デフォルトの名無しさん:2005/12/16(金) 20:53:42
>>456
手続き型と何が違うんだ?3行でわかりやすく書け。このちんかす。

461 :デフォルトの名無しさん:2005/12/16(金) 22:33:11

が違


462 :デフォルトの名無しさん:2005/12/16(金) 22:58:34
>>459
ユーザレベルスレッドでしか使えないのか

463 :デフォルトの名無しさん:2006/01/06(金) 21:07:13
割りかし有名な 3D ポリゴンモデラーで Wings 3d つーのがあるんだけど、
ソース見たら Erlang で書かれてた。Erlang で書かれた本格的なアプリなんて
見た事無かったから少し驚いた。

http://www.wings3d.com/

普通にサクサク動くし、Erlang ちょっと良いかも。
でも、日本じゃ何故か人気無いね。なんでだろう。

464 :デフォルトの名無しさん:2006/01/06(金) 21:31:47
国が国策としてHaskellを支援するべき。
チャイナと戦うためにはそれしかない!
最近、大原麗子見ないけど、どうしてるんだろう?

465 :デフォルトの名無しさん:2006/01/06(金) 21:54:13
いちおう聞くけどなぜ Haskell なの?

466 :デフォルトの名無しさん:2006/01/07(土) 12:03:29
CやJavaは適度にプログラマの職を増やしてくれる。
雇用の創出こそが一番大事で、ものの良し悪しなど二の次なのですよ。
でも、結果として生産性において負けるようなことがあるなら、
それは雇用が減るということで、渋々新しいものが導入される。

467 :デフォルトの名無しさん:2006/01/07(土) 20:30:41
国策ならRubyだろ

468 :デフォルトの名無しさん:2006/01/30(月) 22:11:12
>>467
  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_
  \/    /
     ̄ ̄ ̄


  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
  \/    /

469 :デフォルトの名無しさん:2006/02/12(日) 13:39:24
プログラマの地位向上を国策とすべきだ。

470 :デフォルトの名無しさん:2006/02/12(日) 15:45:35
無能文系プログラマを締め出せばいい。
ハスケル標準
さらにスピード要求の機能はCやアセンブリ

471 :デフォルトの名無しさん:2006/02/12(日) 18:43:42
授業の課題で、
「MLやHaskellに代表される関数型プログラミング言語について調べ、
PascalやC言語に代表される手続き型言語との相違を説明するとともに、
関数型プログラミング言語が広く普及していない理由を議論しなさい。」

というのが出たのですが、さっぱりです。
頭のイイおまいら、教えてください!!

472 :デフォルトの名無しさん:2006/02/12(日) 18:53:40
つ【google】

473 :デフォルトの名無しさん:2006/02/12(日) 21:41:29
>>471
とりあえずラムダ算法がベース。ここまでで広義の関数型言語(関数的、とも云える):Lisp方言やMLなど
参照透明性があるとか副作用がないとか(副作用はモナドや一意型などで解決している):HaskellやClean
普及してない理由はCやJavaやPerlがなんで普及しているかを考えればおk
詳細は ttp://www.shiro.dreamhost.com/scheme/trans/being-popular-j.html
俺の個人的見解では「ある言語しか知らないプログラマはその言語でしか物を考えられない(ほげ言語のパラドクス)」と
関係してると思う。ほげ言語のパラドクスについては ttp://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

474 :デフォルトの名無しさん:2006/02/12(日) 21:43:00
あー、参照透明性があるとか副作用がないとかそういう言語を特に「純粋な関数型言語」とか云うらしいぜ。
Wikipedia とかも見とけ。

475 :デフォルトの名無しさん:2006/02/12(日) 21:57:04
関数型言語の定義は厄介だな。
「関数プログラミングをencourageする言語」と言ったところか。
Basic, C, C++, Javascript, Lisp, ML, Haskell
のうち、適当なところから右が関数型言語ということになるかな。

「ラムダ計算を基礎とする言語」という定義は、Unlambdaという例外があるのでよくないと思う。

476 :デフォルトの名無しさん:2006/02/12(日) 22:04:48
>>475
474ですが、Unlambdaでぐぐったら「Unlambdaは、obfuscated programming languages
(混乱させるプログラム言語、といったところでしょうか) の一種として開発された言語です。
しかしただそれだけではなく、純粋関数型言語というもう一つの特徴も持っています」
とあったのですが……。しかし生産性は高くなさそうですね。

#広義の関数型言語、のもっといい定義というか表現、誰かお願いします

477 :デフォルトの名無しさん:2006/02/12(日) 23:45:47
a href     "


478 :471:2006/02/13(月) 00:53:18
>みなさん
色々ありがとうございます。
今日色々考えてみて、実際問題として、数学的な考えをもてるプログラマが少ないことが一番
関数型プログラミング言語の普及を妨げてるのかな、と思ったんですが、どうでしょうか?

素人なんで、間違っていたらすみません。

479 :471:2006/02/13(月) 01:33:29
レポート記入途中なのですが、
「広義の関数型プログラミング言語とは〜であり、LispやSchemeがこれに含まれる。
より厳密な意味での関数型プログラミングとは〜であり、Haskellが挙げられる。」
という文章を書きたいのですが、〜にはどういう内容を書けば適当でしょうか?

因みに、厳密な定義の要件としては、「参照透過性」を満たすだけでよいのでしょうか?


480 :デフォルトの名無しさん:2006/02/13(月) 01:47:20
>>479
広義の方はラムダ算法とか高階関数とかがごく普通に使われる言語、みたいな感じでいいと思うよ。
厳密の方はWikipedia によれば(ttp://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7)
どうもそうっぽい。宣言型言語とも呼ばれるみたいだね。

#レポートの成功とそう遠くない将来、関数プログラマとしてここに来てくれることを期待する:-)

481 :デフォルトの名無しさん:2006/02/13(月) 01:47:40
http://www.cs.nott.ac.uk/~gmh/faq.html#functional-languages


482 :473:2006/02/13(月) 01:48:39
URL は
http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7
だね。閉じ括弧までURLと見なされる@xyzzy+2ch-mode

483 :デフォルトの名無しさん:2006/02/15(水) 04:54:07
Mirrandaってどんなの?

484 :デフォルトの名無しさん:2006/02/15(水) 04:58:49
Oberon と Mirranda はあるのに Titania は無いのか。

485 :デフォルトの名無しさん:2006/02/15(水) 07:47:17
数論的プログラミングってなんでないの?
くだらない言語ばっかり山のように作って、
それらの上にくだらない意味論を定義して。
ゴミを山盛りにするのが言語屋の仕事ですか?

486 :デフォルトの名無しさん:2006/02/15(水) 09:41:43
言いだしっぺの法則発動

487 :Why not FP ?:2006/03/24(金) 21:35:32
関数型プログラミングがイマイチ流行らない原因について;
手続型に較べて高度な抽象化が要求されるけど、普通の人にはそれほど高度な抽象化ができないから。
高度な抽象化ができるのは極一部のプログラマだけで、マジョリティではないから。
…と思ったんだけど、どーよ?

488 :デフォルトの名無しさん:2006/03/24(金) 22:13:02
わざわざ抽象化しなくても手続き型でごりごり書けちゃうし、そのほうが速い(書くのも実行するのも)
という意識があるからではないだろうか

489 :デフォルトの名無しさん:2006/03/24(金) 22:16:42
>>487 単純に普通プログラマーが目にする言語が関数型じゃないものが多いということだと思われ。
つーか自分がそうなんだが・・・

関数型のプログラムの感じつかめるサイトないでしょうか・・・
長くてもかまいません。

490 :デフォルトの名無しさん:2006/03/24(金) 22:20:07
>>487
それもあるかも知れないが、関数型言語を使えるのに
趣味でコーディングするときには使わない人が多いことを考えると
他にも大きな理由がある気がする。

491 :デフォルトの名無しさん:2006/03/24(金) 23:07:56
趣味の関数型コードを公開しないだけでは?

492 :デフォルトの名無しさん:2006/03/25(土) 04:25:03
XSLTって関数型言語にいれていいか?
あれなら、結構Webに転がってると思う

493 :デフォルトの名無しさん:2006/03/25(土) 23:07:55
グラフィック(GUI)とか日本語処理とか
ライブラリが揃ってれば、、
(日本語ドキュメントつきで)

実験コードからちっとも先に進まない俺


494 :デフォルトの名無しさん:2006/04/10(月) 20:21:55
>>493
それなら日本語ドキュメントは少なめだが(でも今年本が立て続けに出るらしい)Haskellがオススメ。

495 :デフォルトの名無しさん:2006/04/10(月) 20:36:41
いまのGHCは多バイト文字の処理に関してはうんこなのでHaskellは勧められない。

496 :デフォルトの名無しさん:2006/04/10(月) 22:04:14
GHCはたしかに多バイト文字は駄目すぎだが、Hugsだと大丈夫。

497 :デフォルトの名無しさん:2006/04/18(火) 01:42:02
関数型プログラムをC++で実現したいんだけど、遅延評価とかは無理だよね??
lambda をなんとなく実装してみたけど、遅延評価は実装できなかった・・・。


498 :デフォルトの名無しさん:2006/04/18(火) 09:29:51
>>497
無理ではない。

499 :デフォルトの名無しさん:2006/04/18(火) 14:40:09
>>498
どうやるの?

500 :デフォルトの名無しさん:2006/04/18(火) 15:57:49
lamdaができれば遅延評価もできるんじゃね?

501 :497:2006/04/19(水) 00:59:45
ちょっと、説明がわるかったっすね。。

ただの遅延評価(BOOST とかの lambda)はコンパイルレベルで出来るのでOKなんですけど、
たらいまわし関数を最適な形で処理できる遅延評価をC++で実装したいわけなんです・・・。

502 :デフォルトの名無しさん:2006/04/19(水) 01:04:53
ああ、ただのthunk化という意味での遅延評価なら難しくないが
完全遅延、すなわちグラフリダクションを実装するのは難しいな。
Haskellをほぼ全て実装することに等しい。

503 :デフォルトの名無しさん:2006/04/23(日) 01:56:04
Reactive Programmingというものがなんであるかを素人の漏れにも解るように
5分以上かかっても構いませんのでどなたか解説をおながい致します m( _ _ )m

504 :デフォルトの名無しさん:2006/04/23(日) 07:18:36
解説してみようと思ったが、「漏れ」「おながい」という言葉が大嫌いなので止めた。

505 :デフォルトの名無しさん:2006/04/23(日) 10:06:23
Erlangってつかてる人いる?

506 :デフォルトの名無しさん:2006/04/23(日) 13:59:55
>504
そんなこといわないで、お・ね・が・い♥

507 :デフォルトの名無しさん:2006/04/28(金) 00:06:17
C++でムリヤリクロージャーする関数書いたら出来た(・∀・)アヒャ!!

一部 BOOST の Lambda で使われてるテンプレート駆使したらほぼ望みどおりのものが出来ましたよ。

自前の Lambda もつくってみたけど、戻り値をTypeList(BOOST では tuple だっけ?)をつかっててクロージャーには使えなかった('A`)

508 :デフォルトの名無しさん:2006/04/28(金) 11:31:41
早くそのコードを公開するんだ

509 :デフォルトの名無しさん:2006/04/30(日) 02:03:00
>>505
ノシ

まあ、あまり関数型言語という意識はないけど。

510 :デフォルトの名無しさん:2006/05/03(水) 12:12:23
自前じゃない実行環境、特にVM系、の近況が分かるページないでしょうか。
JVM, Parrot, C--など。(C--は中間言語かな)

>>422
すげー亀レスで、しかもちょっと方向が違うけど、
昔九州大学で、データフロー計算機の上で関数型言語動かしてましたよね。

511 :デフォルトの名無しさん:2006/05/03(水) 12:13:30
そういや、一部Haskellを使ったPerl6はあるのに、(Pugs)
Parrot上で動くHaskellはないんですね。
List(cons)の実装が非効率的になるからかな?

512 :デフォルトの名無しさん:2006/05/04(木) 14:21:56
Parrotの魅力を語ってくれ

513 :デフォルトの名無しさん:2006/05/04(木) 19:01:51
Parrotって、Perl6用に使われるVMってことでいいんすか?
ちょっとスレ違いかも知れんけど

514 :デフォルトの名無しさん:2006/07/30(日) 11:27:03
保守age

515 :デフォルトの名無しさん:2006/09/25(月) 07:49:03
学生でも教員でもないんだけどJournal of Functional Programmingって大学の図書館とか研究室くらいにしか置いてないんですかね。

516 :デフォルトの名無しさん:2006/11/04(土) 13:02:33
「関数型プログラム」は「ラムダ計算」と何が違うのですか?

517 :デフォルトの名無しさん:2006/11/04(土) 20:04:30
ラムダ計算はプログラムじゃないねぇ

518 :デフォルトの名無しさん:2006/11/04(土) 22:23:23
え? 違うんですか???

519 :デフォルトの名無しさん:2006/11/05(日) 00:07:07
プログラムの基礎理論 _で重要な_ 論理体系と言うか数学体系と言うか
プログラムが実行されるということの本性をモデル化しようとしたらああなった,ってんだけど
# 歴史的経緯はよく知らない

520 :デフォルトの名無しさん:2006/11/05(日) 00:48:00
>>516
関数型プログラムって何だろう。
まず一括りにするとややこしいから具体的なものを出してちょうだい。

そして、おそらく現存するものは知りうる限りすべてラムダ計算とはちがう。

521 :デフォルトの名無しさん:2006/11/23(木) 19:39:21
>>520
関数を変数として扱えること

522 :デフォルトの名無しさん:2006/11/23(木) 21:24:56
>>521
じゃあCは関数型言語ですね!
qsortとかbsearchとかどうみても関数を値として使ってます

523 :デフォルトの名無しさん:2006/11/23(木) 21:44:42
>>521 でりげーとでいいやん

524 :デフォルトの名無しさん:2006/11/23(木) 22:08:35
第一級の値

525 :デフォルトの名無しさん:2006/11/23(木) 22:12:41
型理論!!!!!!!

526 :デフォルトの名無しさん:2006/11/23(木) 22:14:13
Cの関数は第一級だよな。
実行時に作る手段がないだけで。

527 :デフォルトの名無しさん:2006/11/23(木) 22:17:21
デリゲートの数学的モデルを教えてください

528 :デフォルトの名無しさん:2006/11/24(金) 23:19:32
Haskellは
型付ラムダ式に
いろいろ付け加えたものに
みえるけど。

(型付と形無しは別物ではあるけど)

529 :デフォルトの名無しさん:2006/11/24(金) 23:21:55
やぁ、伊藤君。

530 :デフォルトの名無しさん:2006/11/25(土) 12:20:39
誰?

531 :デフォルトの名無しさん:2006/11/25(土) 13:45:08
>>530
ググレカス

532 :デフォルトの名無しさん:2006/11/25(土) 14:21:56
で。誰?
http://www.google.co.jp/search?hl=ja&q=%E4%BC%8A%E8%97%A4+Haskell&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


533 :デフォルトの名無しさん:2006/11/28(火) 07:00:43
ttp://lambda-the-ultimate.org/node/1853
要約
「最近Lambda the Ultimateへの記事投稿が減ってるんだけど,このまま行ったら消滅しちゃうことになるよ?」

534 :デフォルトの名無しさん:2006/11/28(火) 16:03:28
LtU、度々同じ文句言ってるよなw

535 :デフォルトの名無しさん:2006/12/01(金) 10:25:30
Erlangスレってここでよいでつか?

536 :デフォルトの名無しさん:2006/12/01(金) 20:56:08
Erlang スレではないけどここでいいんじゃない。
答えられる人がいるかどうかは知らんけど。

537 :デフォルトの名無しさん:2006/12/01(金) 22:00:04
erlangのことどう発音してる?
エアランク?
アーラン?

538 :デフォルトの名無しさん:2006/12/02(土) 00:18:29
アーラン。

539 :デフォルトの名無しさん:2006/12/02(土) 00:31:39
あーらん

540 :デフォルトの名無しさん:2006/12/02(土) 01:53:14
ぇろぁん(鼻音で)

541 :デフォルトの名無しさん:2006/12/02(土) 07:10:28
ドイツ語だから、えあらんく

542 :デフォルトの名無しさん:2006/12/03(日) 17:51:57
アッラーフアクバル

543 :デフォルトの名無しさん:2006/12/05(火) 14:19:57
あなあっへんばっく

544 :デフォルトの名無しさん:2006/12/08(金) 01:16:57
λ計算スレを情報学板に立ててみました.
http://science4.2ch.net/test/read.cgi/informatics/1165506353/


545 :デフォルトの名無しさん:2006/12/09(土) 17:53:53
関数型言語ってI/Oが苦手だよね?
キーブレイクで改ページ入れ一定件数ごとにも改ページ入れる帳票出力とか難しくない?


546 :デフォルトの名無しさん:2006/12/09(土) 18:46:24
IOが苦手というのも賛同できんが、それはそもそもIOじゃないだろ。
むしろそういうのは得意な方だと思うんだが。

547 :デフォルトの名無しさん:2006/12/12(火) 18:39:17
関数型って便利だけど使いどころ難しいよね。
関数を動的に作成するのは魅力的だけど、
「じゃあ、どこで使用すれば効率がいいか?」って言われたら、
うーんってなっちゃう。。

今のところ、「株のスクリーニングの条件を自分でプログラムできる」ぐらいしか
アプリケーションへの応用が思いつかないです。
現在の株のスクリーニングとか出来るHPは細かいところまで指定したいのに
なかなか出来ないことが多いので。。

他に何かいい適用個所ってありますか?

548 :デフォルトの名無しさん:2006/12/12(火) 19:01:42
>>547
自分でプログラムできるのは、別に関数型じゃなくてもいい気がするが、
トレード用のソフトは自前のスクリプトを実装している場合が多い。

549 :デフォルトの名無しさん:2006/12/12(火) 19:08:17
>>547
第一級の関数の真価は、そんなマクロというか設計レベルの話じゃなく、
アルゴリズムの実装とか、従来forやらifやらで実現されてきた定型処理のようなものが
簡潔に書けることにあると思う。

145 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)