/*
* UNIX shell
*
* S. R. Bourne
* Bell Telephone Laboratories
*
*/
#define LOCAL static #define PROC extern #define TYPE typedef #define STRUCT TYPE struct #define UNION TYPE union #define REG register
#define IF if( #define THEN ){ #define ELSE } else { #define ELIF } else if ( #define FI ;}
#define BEGIN { #define END } #define SWITCH switch( #define IN ){ #define ENDSW } #define FOR for( #define WHILE while( #define DO ){ #define OD ;} #define REP do{ #define PER }while( #define DONE ); #define LOOP for(;;){ #define POOL } …
気軽に聞かせて (スコア:0)
俺がPASCALに戻れないなと思った理由は、当時、どこでも var できないのはうっとおしいって思ったから
今ならもうできる?
がんばってC++に行ったのもそれが理由だった 今ならCでも、{var {var ... }} みたいに書くことは覚えてる
PASCALは多少は覚えた言語だから、実用になる(俺に使いこなせそう)なら「研いで」おきたい
Re: (スコア:0)
俺の場合はbegin endと書くのがめんどくさい
というもっと頭悪そうな理由だったりする・・・
Re:気軽に聞かせて (スコア:1)
# 下線引いたり太字にしたりして「英字の並びではなく1個の記号」であることを示したいのだけど苦労した例多数
Re: (スコア:0)
その建前、知ってます。どっちにしても、 begin とか while とかいう“記号”を変数名とか手続名には使えませんけどねっ。
Re: (スコア:0)
記号は使えないけど begin とか while とかいう英文字の並びは使えるのでは? 広く普及している文字コードではそれらを“記号”と区別する方法がないというだけで。
現実の文字コードを想定してエスケープの方法などが定義されていないのはまさに教育用だからなのでは
Re: (スコア:0)
ほんとコレ。
ブロックの開始終了ごときで英単語使うなよ。
読むのもめんどくさい。(他の識別子が埋没する)
Re: (スコア:0)
ということは、Ruby は半分めんどくさい?
Re: (スコア:0)
むしろrubyをやらない原因にこれが含まれない理由がない
それを言うなら (スコア:0)
{ } すらもないPythonが手につかない理由はそれ
避けて通れないのはわかってるんだけどねえ。。
Re: (スコア:0)
begin,endと聞くと、プリプロセッサで"{"と"}"を判りやすいからと置換え推奨してた
某書籍の悪夢がよみがえります。
新人が入門書として手に取りやすかったのか、変な癖を矯正する手間が増えて困った。
Re: (スコア:0)
K&Rでも紹介してた貴ガス
推奨じゃないけど
Re: (スコア:0)
Cで
#define begin {
#define end }
とかやってた人がいた気がする
Re:気軽に聞かせて (スコア:2)
一番有名なのは、Bourne 氏が作った Bourne Shell (UNIXの /bin/sh) [tuhs.org]でしょうね。Pascal風にするためではなく、その祖である ALGOL 風にするためだそうですが。
Re: (スコア:0)
そういう人はむしろ Knuth 先生方面へ行くといいかもしれない.
# いまどうなってるんだっけ?
Re: (スコア:0)
一方で、CはC++から取り入れたのかブロック内のどこでもローカル変数を宣言できるようになりましたね(C99より)。
Re: (スコア:0)
昔の言語はどれもそうでしたよっ。