全くの初心者ですが、ホームページを作ろうと思い、htmlを少し学びました。

文字や画像を表示したり、リンクを貼ったりする程度のものです。

もう少し、深く学ぼうと思い、「Cの絵本」を買ってみましたが、さっぱり意味が分かりませんでした。

そもそもホームページ作りにC言語は関係のある事なのでしょうか??

あるとしたらどのような機能を発揮するのでしょうか??

質問が成り立っていないかもしれませんが、本当に混乱してます。

御回答よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (5件)

> ホームページ作りにC言語は関係のある事なのでしょうか??


「ホームページ作り」,という意味では,「基本的には」ありません.
どちらかというとそのホームページを見るための「Internet Explorer」とか,
あるいはみなさんお使いの「Windows」とかを
作るための言語です.
ゲームも作れちゃうんですよ!

> 「Cの絵本」を買ってみましたが、
何でも興味を持つのは素晴らしいことですよね.
これを機にプログラミングの勉強ってのもいいかも,です.

さてさて,プログラミングに関する初心者がC言語を学ぶのは・・・という話が出てますね.
多くのプログラミング言語があって,
人よりの言語と,コンピュータよりの言語の2種類があるのですが,
C言語はかなりコンピュータよりの言語です.
コンピュータを理解する必要のある,たとえば情報系の学生さんであれば
C言語を学ぶことは重要ですよ.
ただ,最初に学ぶべきかどうかは,私も疑問です.
Ruby とか Visual C# とか,人よりのプログラミング言語からはじめるのがいいんじゃないかなー.
    • good
    • 0

C言語を動的ホームページ生成に使うのは一部のプロの人の仕事ぐらいですかね。


例えば、この質問掲示板は何らかのプログラミング言語で作られていますが、Perl、PHP、Java、C言語のどれであろうと使う人には関係の無い話なので気付かずに使っていますよね。そういう裏方的な仕事をするのがプログラミング言語の役目です。HTMLだけで作れないものを作るって役目です。
で、今あげた言語の内、比較的難易度は高いのがC言語です。
なので、初めての選択としては大変なほうの言語を選んだと言えると思います。

私としては、HTMLとつながりでJavascriptをお勧めします。
http://www.sumnet.ne.jp/domp/jsbs/
これを使うとホームページにちょっとしたアクセントやおまけがつけられます。間口が広い言語ですが奥が深い言語でもあります。
http://www.tohoho-web.com/js/
で、応用するとブラウザだけで遊べるゲームを公開したり出来ます。
http://www.bluefoun.pos.to/games/howto/howto.html
http://plaza18.mbn.or.jp/~moriban/

それで更に言語に興味が出てきたら、PHPやJavaなどのWEBサイド系のプログラミング言語を勉強されたらと思います。
    • good
    • 0

はじめまして。


質問者様の質問内容から判断して、誤解を恐れずはっきり言わせてもらえばC言語は全く次元の違う言語であると思います。深く学ぶのであれば、まずは、Dreamweaverあたりのツールを使ってホームページを作れるように勉強する方がよほど有効だと思います。そうすると、いろいろ
とHTMLやCSSの知識が増えていくと思います。それでもまだ、プログラミングに興味があるのであれば、C言語ではなく、JavaScriptや、サーバーサイドアプリケーションをも視野に入れるのであれば、PHPあたりを学習された方がよいと思います。C言語はプログラミング初心者にとってはレベルの高すぎる言語、つまり習得困難な言語であると思います。たとえ、挫折しないでC言語の学習が続いたとしても、マスターするまでに個人差はありますが、年単位の時間がかかります。よく情報系の大学生がC言語の簡単な課題をこのサイトに丸投げしてくるのをよく
見受けます。
    • good
    • 0

>もう少し、深く学ぼうと思い、「Cの絵本」を買ってみましたが、さっぱり意味が分かりませんでした。


とある理由により、一冊持ってますが「Cの絵本」はC言語がわからない人が最初に見る本じゃないことだけは確かです。
肝心な部分が抜け落ちすぎてて、わからないことにさらに拍車をかけるだけです。

>そもそもホームページ作りにC言語は関係のある事なのでしょうか??
ありません。

>あるとしたらどのような機能を発揮するのでしょうか??
強引につなげれば、ツールを使わずテキストエディタでのタグ打ちで全部やろうとすれば、
cssとかJaascriptの埋め込みとかプログラミングっぽいところで多少は役に立つかも知れませんが……
    • good
    • 0

>質問が成り立っていないかもしれません



本当に成り立ってないですよ(笑)。

>そもそもホームページ作りにC言語は関係のある事なのでしょうか??

あると言えばあるけど、無いと言えば無い、です。
まあ、一般的に望まれる回答だとすると「無い」って言った方が良いんでしょうね。
そもそも、どう言う経緯で

>「Cの絵本」を買ってみました

と言う事になるんでしょう?誰かに薦められたんでしょうか?

まあ、この質問が特にそうだ、ってわけじゃないんですが、プログラミングに関する初心者が

「Cが一番メジャーだから」

ってんで無意味にC言語関連を勉強しよう、とするのはおかしい、とは思っています。
また、全くのプログラミング初心者に無自覚に「Cを薦める」ってのもある種悪行ですよね。痛切にそう思います。
まあ、異論もあるでしょうが、次のような話もあるんで、参考にしてください。

C言語が嫌いな理由:
http://www.geekpage.jp/blog/?id=2007/1/4
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLISPのマクロと他の言語のマクロの違い

LISPのマクロは強力と言われていますが、他の言語の言うマクロとはどう違うのでしょうか?

Aベストアンサー

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはできません。

一方、Lispのマクロは、Lispそのもので書くことが可能で、
任意のプログラムをマクロとして書くことができます。
マクロの中で条件分岐やループなど、なんでも出来てしまいます。
これにより、コンパイル時にマクロの引数の型や値に応じて
生成するプログラムを変えることで最適化を行ったり、
新たな言語機能(と対応する文法)を追加するようなことが可能です。

例えば、昔のLispにはオブジェクト指向の機能がありませんでしたが、
マクロを使うことで、後からオブジェクト指向の機能を付け加えることができました。
また、Common Lispのオブジェクト指向の機能が独特で嫌いな人は、
マクロを使うことでJava風のオブジェクト指向の機能を追加するようなことも可能です。
極端な話、Lispの上で別の言語が作れてしまうわけです。

コンパイル時に任意のプログラムを実行できるという点では、
C++のテンプレートとも似ているといえますが、
C++のテンプレートはテンプレート専用の文法を用いる必要ある点がLispと異なります。
C++をそれなりに書ける人でも、テンプレートで任意のプログラムを書こうとすると、
かなりの苦労を強いられます。テンプレートの文法がC++の文法と異なるのが苦労する原因の一つです。
一方、Lispのマクロは、Lisp自身で書けるため、
Lispが書ける人なら誰にだって書けてしまうわけです。

以上がLispのマクロが強力と言われる要因(の一部)です。
実際に使われてみると色々と実感できると思いますよ。

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはで...続きを読む

Q現在、C/C++ で作成したプログラムを C# に移植しているのですが

現在、C/C++ で作成したプログラムを C# に移植しているのですが
基本的な部分が分からずに困っています。

C# のバイト配列に対し、C/C++ で言う memmove 関数を行う方法
が知りたいのです

C/C++ で下記のような事を
char a[] = {1,2,3,4,5};
char b[5];
memset( b,0x00,sizeof(b));
memmove( &b[2], &a[3],2);

C# のバイト配列でやる場合
byte[] a = { 1, 2, 3, 4, 5 };
byte[] b = new byte[5];
memmove( &b[2], &a[3], 2);
memmove の部分はどのようにして行うのでしょうか?

Aベストアンサー

Array.Copy( a, 2, b, 3, 2);

のような感じでできると思います。

Qlispとその他関数型言語について

「lispを学べば悟りが開ける」という言葉をよく聞きます。

l他のプログラミング言語哲学とは一線を画すほどの教示をもった言語という印象を持ちます。

僕もlispを少し学んだだけですが「悟り」は開けませんでした。

しかし他の関数型言語(haskellとか)ではそういう話は聞きません。

なぜでしょうか。

やっぱ括弧ですか。

Aベストアンサー

他の言語が、まだまだ歴史が浅く、使っている人、特にカリスマと呼べるような人が少ないからではないでしょうか。
それに「haskellを学べば..」などといまさら言っても、二番煎じになってしまいますし。

Q配列で混乱しています

c言語を勉強中のものです。文字列を配列で扱う場合とポインタで扱う場合の違いにこんらんしています。
たとえば
char str[] = "hello";
str = "goodby";
のように文字列の再格納はダメですが、
char *str = "helllo";
str = "goodby"
は大丈夫です。
また
char[100];
scanf("%s",str)
は大丈夫ですが
char *str;
scanf("%s",str)
はいけません。この2つの違いは何によるのでしょうか?
またポインタはそもそも
int a;
int *pa;
pa = &a;
のように、宣言したあとはアドレスを入れる専用のハコのように考えていたのですが、
char *str = "helllo";
str = "goodby"
のようにいきなりアドレスでない文字列を代入するのも納得がいきません。誰か解説をお願いします。

Aベストアンサー

ひとつづつ、解説していきましょう。

●配列の宣言の場合
>char str[] = "hello";
これは、"hello"で初期化された、配列を宣言しています。
"hello"を格納するのに必要な分だけ、領域が確保されています。
この時の、
>str = "goodby";
は、strは配列であり、"goodby"は、文字列は"goodby"が格納されている場所
であるから、代入しようとしても、型が違う事になり、ダメです。

●文字列へのポインタの宣言の場合
>char *str = "helllo";
strを文字列を指し示す変数として宣言してあります。
それとは、別に、"hello"と言う文字列を領域を確保して、宣言してあり、
strの初期値として、"hello"が格納されている場所を代入しています。
ですから、この時の
>str = "goodby"
は、"goodby"と言う文字列が格納されている場所を、
文字列を示す変数であるstrに代入している処理、と言う事になります。

●scanfの使い方
>scanf("%s",str)
scanfに渡す、strは、「char str[100]」でも、「char *str」でも、
問題ありませんが、str[100]の場合には、領域が100確保されているのに対して、
*strを渡す場合には、先に、文字列を確保可能なだけの領域を確保しておいてあげる
必要があります。
# 例えば、malloc()などを用いてです。

●ポインタはアドレスを入れる専用の箱?
>int a;
>int *pa;
>pa = &a;
そのイメージは、正しい捉え方です。

が、
>char *str = "helllo";
>str = "goodby"
この場合、*strとは、別に、
"hello", "goodby"と言う文字列が領域を確保され、存在します。
>char *str = "helllo";
はstrを文字列を指し示す変数として、宣言しています。
strの初期値として、"hello"が格納されている場所を代入している。
ですから、
>str = "goodby"
も、strと言う文字列を指し示す変数に、"goodby"が格納されている場所を
代入している、と言うわけです。
「アドレス=場所」と言うイメージが掴めれば、この代入も、納得できるのでは、
ないでしょうか。

ひとつづつ、解説していきましょう。

●配列の宣言の場合
>char str[] = "hello";
これは、"hello"で初期化された、配列を宣言しています。
"hello"を格納するのに必要な分だけ、領域が確保されています。
この時の、
>str = "goodby";
は、strは配列であり、"goodby"は、文字列は"goodby"が格納されている場所
であるから、代入しようとしても、型が違う事になり、ダメです。

●文字列へのポインタの宣言の場合
>char *str = "helllo";
strを文字列を指し示す変数として宣言してあります。
それ...続きを読む

QLISPで C言語のフォーマット書式の"%02d"

LISPで C言語のフォーマット書式の"%02d"にあたる記述の仕方がわかりません。どのようにすればよいのでしょうか?

Aベストアンサー

Common Lisp で良いのですよね?

(dolist (num '(5 10 200))
(princ (format nil "~2,'0D~%" num)))

実行結果:
05
10
200


format関数
http://www.yuasa.kuis.kyoto-u.ac.jp/~hiraisi/format-func.html

Q配列がさっぱりわかりません。

自分は今大学でC言語を習っていますが、ポインターと配列のところがさっぱりわかりません。
問題で、連立一次方程式a_11*x_1+a_12*x_2=b_1,a_21*x_1+a_22*x_2=b_2の解x_1,x_2を求めよ。
このプログラミングで、
void sol1(double a[][2],double b[]){
double det ,x[2];int j;
det=a[0]*a[1][1]-a[0][1]*a[1][0];
x[0]=(a[1][1]*b[0]-a[0][1]*b[1])/det;
x[1]=(-a[1][0]*b[0]+a[0][0]*b[1])/det;
for(j=0;j<2;j++)b[j]=x[j];
return;
}
void main(){
double a[2][2],b[2];
a[0][0]=a11;a[0][1]=a12;
a[1][0]=a21;a[1][1]=a22;
sol1(a,b);
・・・・・・・・・・・・・
    ・・・・・・・・・・・・・
}
という感じになってるんですが。
でも自分は先ず第一に(1)for文のカッコのあとのb[j]=x[j]の意味がわかりません。
また(2)main関数の定義からが意味が不明です。なにをすればいいのかがわかりません。(3)これはあとでf(x,y)=x^3-5xy+y^2-150 g(x,y)=x^2+6xy-y^3+30の(4.0、-3.0)の近傍の零点をもとめるプログラムを作らないといけないんです。もちろん配列を使って。それを求められるようにするにはどこをどうキチンと理解しておかないといけないかよければおしえてください。初心者ですのでやさしくお願いします。

自分は今大学でC言語を習っていますが、ポインターと配列のところがさっぱりわかりません。
問題で、連立一次方程式a_11*x_1+a_12*x_2=b_1,a_21*x_1+a_22*x_2=b_2の解x_1,x_2を求めよ。
このプログラミングで、
void sol1(double a[][2],double b[]){
double det ,x[2];int j;
det=a[0]*a[1][1]-a[0][1]*a[1][0];
x[0]=(a[1][1]*b[0]-a[0][1]*b[1])/det;
x[1]=(-a[1][0]*b[0]+a[0][0]*b[1])/det;
for(j=0;j<2;j++)b[j]=x[j];
return;
}
void main(){
...続きを読む

Aベストアンサー

 初めに、大事な事を1つ。
 ちゃんと回答を何回も読み、理解を使用とされましたか?
 また、読む前から、「解らない」「理解なんてできない」って、思っていませんか?
 ANo.#2の補足で書かれている質問は、ANo.#2の中に答えがありますよ。
 それでも、解らないのでしたら、どこまで理解出来たかを書いて、質問する方がいいですよ。

 さて、本題ですが、(1)及び(3)の質問は、ANo.#2で回答されているので、がんばって下さい。

 (2)のmain()という定義ですが、どんなC言語の本にも載っているのでよく読めば解るとは思いますが、説明します。
  ソースをコンパイル・リンクする(コンパイラというツールを使って、実行ファイルを作ること)と実行ファイルが出来上がります。それを実行するとプログラムが処理されます。
  その処理がどのように行われるかは単にソースで書いた通りに動作しますが、ソースのどこから始めるかを決めておかないと、処理しようがないですよね!C言語の場合、関数単位に動作しますから、初めに実行する関数名を定める必要があります。これが、main()という関数に当たります。(これは、世界共通の文法規格で決まっています)
  また、C言語で初めに実行する関数を定めることになっているのは、何故かというと、C言語文法を守っている限り、関数は、ソースファイルの中で、先頭の方にあっても、ファイルの末にあっても、どこにあってもOKになっています。(習ったとは思いますが)そのため、main()という関数名で定めています。

 以上で理解出来ましたでしょうか?

 C言語特有の単語がいくつか出てきたかも知れませんが、それも、学習の一環だと思って調べて下さい。本やインターネットで簡単に見つかる表現しかしていないと思いますので。。。

 がんばって下さい。

 初めに、大事な事を1つ。
 ちゃんと回答を何回も読み、理解を使用とされましたか?
 また、読む前から、「解らない」「理解なんてできない」って、思っていませんか?
 ANo.#2の補足で書かれている質問は、ANo.#2の中に答えがありますよ。
 それでも、解らないのでしたら、どこまで理解出来たかを書いて、質問する方がいいですよ。

 さて、本題ですが、(1)及び(3)の質問は、ANo.#2で回答されているので、がんばって下さい。

 (2)のmain()という定義ですが、どんなC言語の本にも載っているので...続きを読む

Qlispの入門書

lispの入門書を探しています。

lispの書き方をただ説明するだけでなく、他の言語と違ってどういう利点が
あるのかを説明したものがいいです。

なにかおすすめの本があったら教えてください。

Aベストアンサー

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数型プログラミングを実践していきます。
日本語で勉強したいならこちらです。

・リスト遊び
日本語だとこの辺も入門書です。あまり詳しく知りませんが、Emacs Lispの本です。
筆者はEmacs上でemailを読めるMewというソフトウェアの開発者でもあるそうです。

Lispの良さについてはネット上の文章を読む方がよろしいかと。適当に、LispとかPaul GrahamとかShiroとかのキーワードを探してみてください。
「ハッカーと画家」を読むのも良いですね。


Lispコミュニティにコミットするのがいちばんですが。

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数...続きを読む

Qポインターがさっぱりです><

C言語歴約2週間なのですが、
関数を見ていてさっぱりなので、3点ほど教えて下さい><

(1)CMediaPlayer * pme = (CMediaPlayer *)pi;

pmeは、CMediaPlayer型のアドレスを入れる変数だと思うのですが、
正しいでしょうか?
また、この部分、何で

CMediaPlayer *pme

のようにくっつけて書いてないのでしょうか?
さらに、
(CMediaPlayer *)piは、一体何なのでしょう?@@;
特にこのカッコが良く分かりません…

(2)AEEApplet_New(sizeof(CMediaPlayer), ClsId, pIShell,po,(IApplet**)ppObj,(AEEHANDLER)CMediaPlayer_HandleEvent,(PFNFREEAPPDATA)CMediaPlayer_FreeAppData));

(IApplet**)ppObj<この部分が分かりません。
これも(1)に似ているカッコの付き方なのですが、
**が2つあり、
これは何なのでしょう?

(3)CMediaPlayer_CreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj);

ここの、void ** ppObjの部分は、
(2)と似ていますが、
何故カッコがないのでしょうか?

文法的な質問ばかりなのですが、
ぜひよろしくお願い致します。

C言語歴約2週間なのですが、
関数を見ていてさっぱりなので、3点ほど教えて下さい><

(1)CMediaPlayer * pme = (CMediaPlayer *)pi;

pmeは、CMediaPlayer型のアドレスを入れる変数だと思うのですが、
正しいでしょうか?
また、この部分、何で

CMediaPlayer *pme

のようにくっつけて書いてないのでしょうか?
さらに、
(CMediaPlayer *)piは、一体何なのでしょう?@@;
特にこのカッコが良く分かりません…

(2)AEEApplet_New(sizeof(CMediaPlayer), ClsId, pIShell,po,(IApplet**)pp...続きを読む

Aベストアンサー

>(1)CMediaPlayer * pme = (CMediaPlayer *)pi;
>
>pmeは、CMediaPlayer型のアドレスを入れる変数だと思うのですが、
>正しいでしょうか?

正しいです。

>CMediaPlayer *pme
>
>のようにくっつけて書いてないのでしょうか?

くっつけてもくっつけなくても、同じ意味です。
どちらでもかまいません。

>(CMediaPlayer *)piは、一体何なのでしょう?

pi という、おそらくは CMediaPlayer * 型以外の型を持つ変数を、
CMediaPlayer *型に「キャスト」しています。
何か参考書をお持ちであったり、インターネットを使って勉強されているのでしたら、
「キャスト」の項を読むなりググるなりしてみてください。

>**が2つあり、
>これは何なのでしょう?

「ポインターへのポインター」を表わします。

>ここの、void ** ppObjの部分は、
>(2)と似ていますが、
>何故カッコがないのでしょうか?

キャストではないからです。
ppObj は、任意の型へのポインターへのポインターです。

>(1)CMediaPlayer * pme = (CMediaPlayer *)pi;
>
>pmeは、CMediaPlayer型のアドレスを入れる変数だと思うのですが、
>正しいでしょうか?

正しいです。

>CMediaPlayer *pme
>
>のようにくっつけて書いてないのでしょうか?

くっつけてもくっつけなくても、同じ意味です。
どちらでもかまいません。

>(CMediaPlayer *)piは、一体何なのでしょう?

pi という、おそらくは CMediaPlayer * 型以外の型を持つ変数を、
CMediaPlayer *型に「キャスト」しています。
何か参考書をお持ちであっ...続きを読む

Q初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?

初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?
JavaScriptをやっていて、関数型言語に興味を持ちました。

いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい)
現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。

今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。

よろしくお願いします。

Aベストアンサー

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06721-1
にAllegro Serveと言うライブラリを利用したWebプログラミングの例があり。HTML生成の例もあり。
原著のサイトでは、
http://www.gigamonkeys.com/book/practical-web-programming-with-allegroserve.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-compiler.html
辺り。

プログラミング言語Lisp: http://ascii.asciimw.jp/books/books/detail/4-7561-3926-4.shtml
CL-HTTPと言うライブラリを用いたWebサーバーの説明が載っています。
ただし、本自体はMacintosh用の商用実装、Mac Common Lisp

Mac Common Lisp:
http://www.digitool.com/

を用いたものなんで、注意する必要があります。Macを持ってないならあまりお薦めしません。また、若干古い本ですね。

Haskellの方は良く分かりませんが、Common LispならそれなりにWeb関係の簡単なアプリの書き方も紹介されている、と言う事です。

参考までに。

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://s...続きを読む

QCString型で混乱しています

今CString型で設定した変数を使ってこのように書きました
CStrig tt;
tt=1;
pDC->TextOut(20,20,tt);
このように書いたのですが、画面には・のようなものしか表示されません。
これは自分がおかしいのでしょうか?

Aベストアンサー

これは"1"という文字をウィンドウ上に描画すると理解して。。。

tt=1;
の代入している1は数値(intとかlongの値)ですよね。
(文字の'1'を表すASCIIコードは16進数で31です)
CStringは文字列を管理するクラスですから代入は文字列
となります。
(ビルド時に何かerrorなりwarningなりのメッセージが出ませんでしたか?)
なので

tt = "1";
とするか
CString tt( "1" );
pDC->TextOut(20,20,tt);

となります。


人気Q&Aランキング