VB > C言語 これだけは確実。
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
関数型言語でパターンマッチという言葉がでてきた なにかと思ったらただのswitch文だったでござる。
パターンマッチは変数束縛。 ADTが無い劣った言語しか使った事が無いPGが 自分の知ってる言語機能に対応づけて理解しようとする(アホの典型的行動)と switch文に見えるかもな。
じゃあ、switch+変数束縛ってことで。
Prolog
7 :
デフォルトの名無しさん :2012/05/31(木) 08:50:04.95
Prologのユニフィケーションが最強。異論は認めない
JavaScript
Tclのは正規表現が使える。
>>8 switchという観点だけでいうと、PrologのそれにはHaskellも
遠く及ばない。
単項のswitchばかりでなく、複合的なもの、変数に置いてルールで
解決してから評価するもの。値を自在に引数から返すこと。
値を生成しながら返すもの。一度解決した値を別に置き換えてから
実行し直すこと。考えられるほとんどすべてのことが可能。
nilアクセスをラップしてから使うmethod呼び出しであればsmalltalkが最強
13 :
uy :2012/06/01(金) 04:50:35.98
マジレスすると switch文は冗長だろ IFかイテレータでかく頭がない or IF や イテレータでまとめると後から自分が理解できなくなる からswithcでだらだら行数ふくらませて書くしかないんだよ プログラミングでいらねー概念その1
14 :
デフォルトの名無しさん :2012/06/01(金) 11:36:48.63
Scalaだとこんなかんじ sealed abstract class Exp() case class Add(a:Exp,b:Exp) extends Exp case class Mul(a:Exp,b:Exp) extends Exp case class Val(a:Int) extends Exp def eval(e:Exp):Int = { e match { case Val(x)=>x case Add(x,y)=>eval(x)+eval(y) case Mul(x,y)=>eval(x)*eval(y) } } println(eval(Add(Val(1),Mul(Val(2),Val(3)))))
場合分けはメソッドディスパッチで、というのが最近の流行ではあるか
うん
Pascalのcase文 書きにくくてかなわん。
>>17 俺には
>>15 は、デザパタ飽きたって人の発言に見える。
「流行」という表現には「そのうち廃る」という意味を微妙に内包するからね。
>>20 いや、違うが気持ちは解るからな
メソッドディスパッチも流行に過ぎないのではないか、という気持ちは
ところで、switchと言えば何気にCOBOLのEVALUATE〜WHENが
無駄に複雑な仕様で興味深い
…と言うか
THRUの仕様や、EVALUATE側にTRUE書いてWHEN側に条件式までは使いそうだが
ALSO、ANYとか実際のCOBOLerさんたちは使うのだろうか
やっぱ時代はCOME FROM文だろ?
かなりなデシジョンテーブルが一発で書ける仕様だがな、EVALUATEは。 つーかCOBOL全般に強力な機能はたくさんあるけど、 cOBOLerが使えないという理由で使用禁止にしてるとこばかりだw
>>23 せっかく強力なのに、なんだか勿体ないなあw
>>23 >>24 このスレ的な結論としては、COBOLerさんたちのskillupには
Prologを勉強させることが一番ということになる。
昔ALTER文を駆使したソースに当たったよ。まさに動的言語w
いっそ世の中のブロック構造はすべて関数にしてしまえばいいんじゃね?
>>13 >マジレスすると
>プログラミングでいらねー概念その1
概念その1、、、恥ずかしくないのか?www
二ヵ月半も前のレスにわざわざ書いてる奴の方が…
お、俺は恥ずかしくねーよw
ああ、恥ずかしいのは俺だ!
いや俺だろ
それは、その構文がverilogで役に立つケースが少なくないからそうなってるわけで、 verilogの世界では理にかなっているとは思うが、面白さが分からない。 特徴的ではあるが、では C/C++ や Java、Ruby や Python、Haskell などにも 是非取り入れてほしいと思うかと言われると、べつに要らんと思うだろうし。
PowerShell ていうか、構文じゃなくて言語機能の話だな。
最強なのはやはり、 指標部分で単一化という強力なパターンマッチッングできて、節がOR関係で 順に実行されて、本体部分の記述が強力で値を自由に複数返すことのできる Prologの述語ではなかろうか
ラダーチャート最強。
40 :
デフォルトの名無しさん :
2012/10/14(日) 16:42:15.65 COBOLが最強ということで。