11

だから、私はある種の統計プログラムを書いています(実際にはそれをよりエレガントなものに再設計しています)そして私はその種のもののために作成された言語を使うべきだと思いました(統計の膨大なデータ、それらの間の接続を扱うある種の遺伝的/ニューラルプログラミング)。

実を言うと、私はlisp / smalltalkに飛び込む言い訳が欲しいだけです(smalltalk / lisp / clojureは同じではありませんか?-pythonとrubyのように?-セマンティクス的に)が、言語も簡単に理解できるようにしたいですBASIC言語が好きな他の人々によって(それが私がLISPを選択しなかった理由です-まだ:D)。

私もPrologをチェックしましたが、それはかなりクールな言語(データ間の関係を行うのが簡単で、Lispよりも簡単)のようですが、あなたの考えを聞きたいです。

どうも

編集:私はいつも一般的なlispをSmalltalkと混同しています。これらの2つの言語を組み合わせて申し訳ありません。また、「BASIC言語が好きな他の人々 」が意味するのは、lisp(CSのバックグラウンドを持たない人々)のようなセマンティクスを持つ言語を好まないということです。Prologはもう少し直感的です(しかし、それは私の私がそれらの両方を少しいじった後の意見)。

4

5 に答える 5

10

Rを使用しない特別な理由はありますか? これは、ビルドと購入 (またはこの場合はダウンロード) の決定のようなものです。統計計算を行っている場合、R には既製のパッケージが多数あります。これらには、さまざまなタイプのデータ ソース用の多くのライブラリとインターフェイスが含まれます。Python などの他の言語に R を埋め込むためのインターフェイス ライブラリもあるため、Python の GUI (たとえば)と R を使用するコア計算エンジンを備えたハイブリッド アプリケーションを構築できます。

この場合、実装に必要な労力を削減して、より柔軟なアプリケーションを作成できる可能性があります。

他の言語を学びたいと思っているなら、是非ともそうしてください。Smalltalk、 Prolog、およびLISPには、いくつかの優れた無料の実装 (スピーチのように、ビールのように) がいくつかあります。

システムにユーザー インターフェイスを配置する場合は、Smalltalk の方が適している可能性があります。アプリケーションの一部として大規模なルール セットを作成したい場合、Prolog はこのような目的のために設計されています。プログラミングについての考え方に影響を与えるLISP のひらめきについて、さまざまな人が書いていますが、経験からこれを保証することはできません。

于 2009-01-02T10:25:11.003 に答える
8

一部の人を怒らせる危険を冒して、 「 BASIC言語が好きな他の人々が簡単に理解できる」ことを、あなたが言及した言語と調和させるのに苦労しています。これは批判を意図したものではありませんが、言及した各言語には、BASIC とはまったく異なるスタイルと自然なイディオムがあることを観察したものです。

  • Smalltalk - ゼロからの純粋な OO で、通常 (Squeak など)、同時に IDE とランタイムである統合環境と結合されています。IOWでは、単に「ソース コード」であるテキストを記述するのではなく、Smalltalk VM に入り、その内部で作業します。

  • LISP - 関数型プログラミングにはるかに近い (ただし、命令的な倍音を含む)。接頭表記は、他の言語を「好む」ほとんどの人にとって最初の障壁ですが、マクロの概念と使用法は、はるかに実質的なものです。

  • Clojure - LISP、OO、および JVM 統合の組み合わせにより、これはさらに BASIC らしくなくなります。

  • Python と Ruby - 私はこれらをひとくくりにします (いずれかのファンをさらにいらいらさせるリスクがあります ;-)。どちらも OO 言語であり、部外者には少し学習曲線が必要な明確な表記法を備えています。Python でのコントロールのネストに対するインデントのみの使用と、Ruby での Perl のような特殊文字の使用は、多くの場合、新規参入者からの不満のポイントです。どちらも命令型のスタイルで記述できますが、経験豊富なユーザーには非標準と見なされます。

  • Prolog - これは、言及されているすべての言語の中で最も BASIC とは異なります。あなたが言及した他のすべての言語は、半手続き型のスタイルで (ab) 使用できますが、Prolog ではそれは本質的に不可能です。自明ではないことを行うには、再帰を完全に理解し、再帰に慣れている必要があります。

基本的にこれらすべての言語 (特に Prolog、IMHO) で「ネイティブ アクセント」を使用して記述されたコードは、従来の BASIC プログラミングの標準外のイディオムや概念を使用します。別の言い方をすれば、これらのいずれかを選択して「BASIC アクセントで」コードを記述した場合、その言語が提供できる利点をほとんど無駄にしていることになります。

それらはすべて、教えることができる概念について学ぶ価値があると思います(または、あなたのバックグラウンドに応じて、少なくとも強化します)。しかし、言語 X との類似性 (X の値の範囲が広い場合) は、得られるものではありません。

于 2009-01-02T14:55:16.827 に答える
3

部分的にお答えできます

(Smalltalk/Lisp/Clojure は同じではありませんか? - python と ruby​​ のように? -semantics-wise)

いいえそうではありません。Smalltalk は、メソッド呼び出しの代わりにメッセージ パスを使用するオブジェクト指向言語です。Lisp は Lisp です ;-) それは、強力なマクロ システム、他の言語 (CL) では決して見られない OO サポート、およびその他の多くの機能を備えた、真に関数型の言語を意味します。Closure は Lisp に似た言語で、多くの Lisp 機能はありませんが、JVM との統合は良好です。たとえば、テールコールの最適化はサポートされていません。そして python や ruby​​ は古典的な命令型オブジェクト指向言語であり、機能が制限されています。単語制限に注意してください。たとえば、Guido は関数型プログラミングが好きではなく、バージョン 2.5 と 2.6 でいくつかの関数型機能を削除しました。

Python などの命令型手続き型プログラミングに慣れていて、パラダイムを変更したい場合は、慎重に決定する必要があります。

于 2009-01-02T10:45:25.797 に答える
2

Prolog は非常に異なる言語です。主に、非常に基本的なタスクを実行するために再帰に大きく依存しているため、把握するのが非常に難しい場合があります。本当にやる気があるなら、やってみよう。関係を表現し、複雑な問題を簡単に解決できるため、非常に強力です。典型的な例は、ハノイの塔やクイックソートです。命令型言語に慣れていると難しいかもしれない考え方が変わります。

于 2009-01-02T17:20:28.283 に答える
0

Prolog に興味がある場合は、Visual Prologの無料バージョンが利用可能で、商用バージョンは手頃な価格です。

これは Prolog の強力なタイプの派生物であるため、言語の古典的な実装ではありませんが、立派な歴史があります。Borland は、80 年代後半に、その DOS の祖先を Turbo-Prolog として販売しました。

これも Windows 専用ですが、標準の Windows DLL を作成するために使用できるため、コードを「通常の」Windows プログラミング言語にリンクできます。私は自分自身でパッケージを使用したことはありませんが、Uni で Prolog コースをいくつか行ったので、時々ダウンロードして遊んだり、可能な用途を探したりしましたが、十分にしっかりしているように見えます. あなたが探している歯車のセットかもしれません。

于 2009-01-02T10:46:07.793 に答える