• 締切済み

プログラムの型について

プログラムの型ってなんですか? 私はプログラミング言語とかは一切触ったのないど素人です... どうか詳しくお願いします。 友達がHaskellつかってて、かたかた言っていました。

みんなの回答

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

Haskellを使っている方が、「プログラムの型」という場合は、 「関数型プログラミング言語」を指していることが多いと思います。 http://ja.wikipedia.org/wiki/関数型言語 それに対して、普通よく使われているプログラミング言語である、C言語やFortranなどは「手続き型プログラミング言語」に分類されます。詳しくはWikipediaなどを参考にしてください。 関数型とは言っても「手続き型プログラミングなどにおける「関数」ではないことをまず注意する」と書かれている様に、これら2つのプログラム言語はずいぶん考えかたが違います。 最初は、No.1で書かれているようにデータの型を指しているのかなと思っていましたが、Haskellを使っている人が言う「プログラムの型」は多分上のようなことだと思います。 ちなみにデータの型は、プログラム言語の仕様で決まっており、一般的には 1234と書くと数値(整数型) "1234"と書くと文字列と判断されます。 数値の場合は四則演算などの計算が可能です。

回答No.1

簡単なこというと、文字、数値。 人間はそれを文字や数値だと判断できるが、コンピュータはできない。 コンピュータに、それは文字だ、それは数値だと認識させるために、『文字型』、『数値型』がある。 数値で言えば、『123』が、人間は数値だと認識する。 コンピュータでは、それを『文字』として扱う時もあるし、『数値』として扱う時もある為、明示的に、『これは数値だ』と命令する必要がある。 同じように、消費するメモリ量の関係もあり、桁数がでかい数値なのか、小数を持つ数値なのかとか認識させる『型』は様々。

doragonnbo-ru
質問者

補足

どうやってコンピューターにこれは数値だと命令するのでしょうか

関連するQ&A

  • 変数の型を定義しなかった場合どうなりますか?

    現在、VBAを使ってプログラミングを行っているところなのですが、 一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、このように型を定義しなくとも使うことが出来ます。もし定義しなかった場合、その変数の型は何に設定されているのでしょうか? では型を定義するメリット及び、せずに使った場合のデメリットは何なのでしょうか? 私が使っているのはVBAですが、他の言語では型を定義しなければ、その変数を使うことが出来ないというようなものもあるのでしょうか?

  • プログラムを始めるなら

    C言語をある程度知っている人なら、プログラミングは大丈夫だと言われる理由って何でしょう? 別にC言語を元に全てのプログラムができたわけでもないし、 オブジェクト指向のプログラムとは毛色が違うし。 私自身C言語,javaなどのソースが読める程度しかできませんが、 プログラミングが出来るとはお世辞にも言えません。 何故このような事が言われているのでしょう? また、最初に学ぶべき言語としてはやはりC等の言語がいいのでしょうか? それともアセンブリ言語のような物の方がいいのでしょうか?

  • プログラムが頭に浮かぶ感覚

     プログラミングしている皆さんに聞きたいのですが、上級者になってくるとプログラムを造るときにプログラムが自分の頭に浮かんでくるみたいな感覚があるのでしょうか。  あと、プログラミングといっても多くの言語がありますが、例えばC言語を扱っていたのにS言語をやることになったりとかすることに抵抗はないのでしょうか。

  • 関数型言語の普及について

    関数型言語の普及について 趣味でプログラミングを勉強しているものです。今までにJavaやRuby等、オブジェクト指向言語を中心に勉強してきました。 今日、あるきっかけで関数型言語のHaskellを勉強し始めました。 そして、実際にプログラミングをしてみたり、関数型言語について調べてみると、まだ大きなアプリは書けないものの、今までのやり方(手続き指向、オブジェクト指向)が不要なのではないかと危惧する程の斬新さ、強力さが感じられました。 しかし、そんな関数型言語も未だに普及しているとは到底言えません。Haskellは関数型言語の中でも新しいもののようですが、それでもJava、Rubyよりも昔に発表されている言語です。 どうしてHaskell等の関数型言語は主流になっていないのか、関数型言語が従来の言語に劣っている点を中心に、皆さんの意見を聞かせてください。

  • プログラムを作りたい

    検索窓に自動的に単語を入力し、検索結果を自動的にクリックするプログラムを作りたいと思い勉強しようとしています。 しかし種類が色々ありどのプログラミング言語を選べばいいかわかりません。 おすすめのプログラミング言語を教えていただければ幸いです。 よろしくお願いします。

  • 【関数型言語,論理学】推論して関数を自動生成する

    こんにちは。 関数型言語(haskell)や論理学を独学している者です。 勉強中ふと思ったことがあるので質問します。(以降、表記はhaskell文法に倣います) 例えば今、我々に与えられた関数は (x -> Int)型の関数fと、(Int -> y) 型の関数gと((b -> c) -> (a -> b) -> a -> c)型の関数(.)だけだとします(a,b,c,x,yは全て型変数)。それ以外の関数は存在しません。 この時、(x -> y) 型の関数hは例えば(g . f)と表せると思います。 Int=b, x=a, y=cとみなせば、hは簡単に作れます。 しかし、それはあくまで人間にとって簡単だということです。 これを「計算機が作る」ことは可能でしょうか。 つまり、与えられた関数(と型の情報)だけで特定の型の関数を自動生成できるプログラムは存在し得るか、ということです。 カリー=ハワード同型対応という性質がありますね。これは簡単に言うと「ある型を持つプログラム(関数)が一つでも書ければその型に対応した命題は真」ということだと思いますが、僕が聞きたいのは「その命題(型)が真かどうか分からないけど、前提は用意するので証明(プログラム)は計算機に任せてもいいのか」ということです。 CoqやPrologという、計算機で証明を行うプログラミング言語があるというのは知っていますが勉強したことが無いのでよくわかりません。 よろしくお願いします。

  • タグを自動表示させるプログラム

    HTMLのタグを自動に表示させるプログラムをホームページにつくりたいと思っています。たとえば、http://auction.gn.to/APM/の様なプログラムです。プログラミングはまったくの素人なので、勉強しようにも何をどのように(言語など)してよいのか、検討がつきません。ご教授よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • ゲームなどのプログラムを作るために

    こんにちは。 プログラミング初心者です。 簡単なゲームやツールなどの実行ファイル(exeファイル?)を 色々と作ってみたく、そのためC言語を勉強することを考えています。 本屋などでそれに適してそうな書籍を探してみると、 C言語の入門書などと書かれた同じような本がたくさんあり、 全くの素人なので、本の題名や中身をパラパラと見ただけでは、 どれが一番実践に敵しているのか全く分かりませんでした。 一冊や二冊本を買って勉強しただけで、プログラムを作り出すのは難しいですか? 知識などは最小限で良いです。とにかく簡単なプログラムを自力で色々と作れるようになりたいです。 もし、こんな自分におすすめの本などあれば教えて下さい。

  • 好きなプログラム言語は?

    プログラミングが出来る方にお聞きしたいんですが あなたの好きなプログラム言語は何ですか? また、好きな理由も教えて下さい。

  • 少しでも『プログラム言語』を耳にしたことがある人・・・・。

    1,知っているプログラム言語(以下、「言語」)は何ですか?(なるべく、直感で出てくる言語のみ) 2,使ってみたい言語は何ですか?(過去・現在・未来及び、未経験、初心者、プロを問いません) 3,実際に使ったことがある言語は何ですか?(プログラミング経験がある人のみ、卓上プログラミング経験も含めます。) 4,今後、「プログラム言語」はどのようなものになると思いますか?(直感でお答えください) 5,最後に、あなたにとって『プログラム言語』は何ですか?(直感でお答えください)

専門家に質問してみよう