問題タブ [common-lisp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lisp - LISPを学ぶための最良の方法は何ですか?
私はPython、PHP、Java、Cで数年前からプログラミングをしていて、ハッカーとペインターを読み終えたばかりなので、LISPを試してみたいと思います。
私が知っていることとはまったく異なること、そしてそれは簡単ではないことを理解しています。また、LISPの周りのコミュニティと開発ははるかに少ないと思います(私が間違っている場合は訂正してください)。だから私の質問は:LISPを学ぶための最良の方法は何ですか?
本を買ったり、時間をかけたりしてもかまいません。無駄にしたくないだけです。
「最終的な」アイデアは、Web開発にLISPを使用することですが、それはそれほど一般的ではないことを私は知っています...最初の本やチュートリアルを選び、そうでないかもしれないことに多くの時間を費やす前に、学習を計画するのは良いことです。最善の方法である!
回答ありがとうございます!
編集:私はPractical Common Lispを読み、次のようになりました:...長く、ハードで、面白く、間違いなくLispで転がりました。その後、小さなスキームを読みました。短く、楽しく、プログラミング全体にとって非常に優れていました。ですから、最初に小さなスキームを読んでから、(数時間でその価値があります)lisp(またはスキームやその他の方言)が探しているものではないと判断した場合でも、非常に楽しい時間を過ごすことをお勧めします再帰についての新しい考え方!
lisp - アレイのアップグレード
Common Lisp標準のセクション15.1.2.1を正しく理解していれば(upgraded-array-element-type '(unsigned-byte 8))
、'(unsigned-byte 16)
それは完全に合法ですt
。したがって、私の質問は、実装の実際の動作についてです。
'(unsigned-byte 8)
現在使用されている、または'(unsigned-byte 16)
アップグレードされた実装はありますか?言い換えれば、以下が誤りである場合:
(この表現は、SBCL、CLISP、Allegro CL、Clozure CL、およびLispWorksに当てはまります。)
lisp - EmacsなしでLispを簡単に使用できますか?
私は現在、PracticalCommonLispを読んでいます。この本は素晴らしく、言語も面白いですが、私はEmacsを学ぶことに夢中ではありません。私はVimを学びました、そしてそれは1つの頭脳のための十分なテキストモードエディタです。私は別のことを学びたくありません。ダブルコントロールコマンドは頭を痛めます。WindowsでLispをプログラミングするための最良の非Emacsソリューションは何ですか?
lisp - コマンドラインからの asdf-installing ライブラリ
Perl のバックグラウンドを持っているので、sbcl を起動するよりも好きだと言わざるを得ませcpan Foo::Bar
ん。これより便利なものはありますか?(require :asdf-install)
(asdf-install:install :foo-bar)
lisp - SBCL の SB-SPROF 割り当てプロファイリングをどのように使用しますか?
更新: SBCL 1.0.24 にアップグレードすると問題が解決しました。(ただし、SLIME を 11-23-2008 リビジョンにアップグレードする必要もありました。安定した 2006-04-20 リビジョンと CVS のヘッドは、SBCL 1.0.24 では動作しないようです。)
SBCL 統計プロファイラーのドキュメントには、CPU 使用率に加えてメモリ割り当てをプロファイルできることが示されています。しかし、私の人生では、些細な Lisp 形式以上のプロファイルを作成することはできませんでした。何が起こるかの例を次に示します。
この時点で、通常はハングします。
誰かがこれで成功しましたか?
lisp - 学習しようとしている: オブジェクトの再配置、および LISP の汎用関数!
別の質問の結果として Practical common Lisp を読んでいます。
LISP がオブジェクトを管理する方法を見つけることができる第 16 章と第 17 章を読みました。しかし、Java がどのようにオブジェクトを管理するかを数年間考えた後、CLOS を使用して LISP でより大きなアーキテクチャを実装する方法を本当に理解できないようです。
そこで、単純な例よりも大きなアーキテクチャに適用される CLOS について 20 ~ 50 ページを読んでほしいとお願いします。たぶん、いくつかのブログ投稿や経験さえあります!
タイ
windows - Windows で common-lisp GUI を入手するにはどうすればよいですか?
私は CLISP と Slime で Emacs を使用しており、画面上に絵を描きたいと思っています。具体的にはグラフを描くことを考えていますが、基本的な形を描いて操作できるものなら何でも始めることができます。
lisp - Common Lisp の動的変数とレキシカル変数
Peter Seibel の「Practical Common Lisp」という本を読んでいます。
第6章の「変数」セクションの「レキシカル変数とクロージャー」と「動的変数、別名特殊変数」。 http://www.gigamonkeys.com/book/variables.html
私の問題は、両方のセクションの例が (let ...) がどのようにグローバル変数をシャドウできるかを示しており、実際には動的変数とレキシカル変数の違いを教えていないことです。
クロージャーがどのように機能するかは理解していますが、この例の let の何が特別なのかはわかりません。
ここでは特に何も起こっていないように感じます。barの外側のfooはグローバルxをインクリメントし、 letのbarで囲まれたfooはシャドウされたxをインクリメントします。大したことは何ですか?これが字句変数と動的変数の違いをどのように説明するのかわかりません。しかし、この本は次のように続けています。
では、これはどのように機能するのでしょうか。LET は、 xをバインドするときに、通常の字句バインディングではなく動的バインディングを作成することになっていることをどのように認識しますか? 名前が特別に宣言されているため、それは認識されます.12 DEFVAR および DEFPARAMETER で定義されたすべての変数の名前は、自動的にグローバルに特別に宣言されます。
「通常の字句結合」を使用してletがxを結合するとどうなるでしょうか? 全体として、動的バインディングと字句バインディングの違いは何ですか? また、動的バインディングに関してこの例はどのように特別なのでしょうか?
unit-testing - Common Lisp の継続的統合?
CL の継続的インテグレーション フレームワークはありますか? 具体的には、私は探しています:
私には、Lisp コミュニティのオープンソース側がソロ開発を擁護しているように思えます。チームのサポートはほとんどありません。任意の開発者がチェックアウトできる lib 依存関係を持つプロジェクト トランクを作成するだけでも、手作業で行う必要があります。
lisp - Lispイメージとは?
本質的に、私はLispイメージが何であるかを知りたいですか? それは Lisp インタプリタと 1 つまたは複数のプログラムを含むメモリのスライスですか、それとも何ですか?