タグ付けされた質問 「lisp」

Lispは、ラムダ計算の影響を受けた汎用プログラミング言語のファミリーであり、ソースコードをデータ構造として操作する機能を備えています。

8
Haskell、Lisp、および冗長性[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 HaskellといくつかのLispのフレーバーの両方で経験した人にとって、HaskellとLispのどちらでコードを書くのが(恐ろしい用語を使用するのが)どれほど「楽しい」かが気になります。 背景:今はHaskellを学んでいます。以前にSchemeとCLを使用していた(そしてClojureに少し進出した)。伝統的に、あなたは私が動的言語のファンをそれらが提供する簡潔さと迅速さのためにファンであると考えることができました。Lispマクロにすぐに夢中になりました。冗長性とボイラープレートを回避するためのもう1つの方法になったからです。 Haskellは信じられないほど興味深いものだと思います。これは、存在することを知らなかったコーディング方法を紹介するものです。確かに、部分的な関数を簡単に記述できるなど、俊敏性の実現に役立つように見えるいくつかの側面があります。しかし、私はLispマクロ(私はそれらを失うと思います。真実はまだそれらについて学んでいないかもしれないと言われています)と静的型付けシステムを失うことについて少し心配しています。 両方の世界でまともな量のコーディングを行った人は、経験がどのように異なるのか、好みが状況に応じてコメントすることを気にかけますか?

7
Lispの何がそんなに素晴らしいのですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する Lispが良いか悪いかを言うのに十分なLispを知りません。Lispを使用したすべての人が気に入っているようですが、最近最も人気のある言語はCに由来しています。 では、Lispの何がそれほど優れているのか、そしてなぜそれをより多く使用しないのか?Lispについて明白な悪い点はありますか?
103 lisp 

11
Lispで(深刻な)Web開発を行うことは可能ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ほぼすべての種類のアプリケーションをほぼすべてのプログラミング言語、特にLisp(SchemeやCommon Lispなど)のような強力なアプリケーションで作成することは明らかに可能です。しかし、それをWeb開発に使用することは現実的でしょうか?もしそうなら、何が良い出発点であるべきですか?この種のプロジェクトに適したリソース(ツール、ライブラリ、ドキュメント、ベストプラクティス、例など)はどこにありますか?
99 lisp 


5
Javascriptを含むHTMLファイルを編集するために、emacsをどのように設定しますか?
私はemacsを使用して、HTMLタグとJavaScriptコンテンツの両方を含むHTMLファイルを編集するという苦痛な最初のステップを開始しました。私はnxhtmlをインストールしてそれを使ってみました-.htmlファイルにnxhtml-mumamo-modeを使うように設定しました。しかし、私はそれを愛していません。コードのJavascript部分を編集しているとき、タブのインデントがC / C ++コードの編集時のように動作しません。これは、行内にタブを配置し始め、行の前の空白スペースでタブを押すと、行を再タブ化するのではなくタブを挿入します。 私が気に入らないもう1つの側面は、通常のC / C ++モードのように構文の色分けを行わないことです。私は、HTMLファイルを編集するときのデフォルトのJavaモードの動作を非常に好みますが、HTMLコードではうまく機能しません。:-( 1)JavaScript部分を含むHTMLファイルを編集するためのより良いモードはありますか? 2)nxhtmlがjavascript部分にデフォルトのjavaモードを使用する方法はありますか? よろしく、 M
94 javascript  html  emacs  lisp 

4
Clojureと他のLispの比較[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 9年前休業。 私の質問の目的は、炎上戦争を開始することではなく、どのような状況で各言語が「仕事に最適なツール」であるかを判断することです。 私はClojureに関するいくつかの本(Programming Clojure、Practical Clojure、The Joy of Clojure、およびManning Early Access edition of Clojure in Action)を読んだことがあり、それは素晴らしい言語だと思います。私は現在、Common Lispマクロを主に扱っているLet Over Lambdaを読んでおり、それも非常に興味深い言語です。 私はLispのエキスパートではありません(初心者の方が多いです)が、関数型プログラミングと同様に、この言語ファミリーは私を魅了します。 Clojureの利点(および「その他」の欠点): JVMで実行されます。 JVMは非常に安定した高性能言語環境であり、Sunの「一度書くとどこでも実行できる」という夢を十分に満たしています。Macbook Proでコードを記述し、それを実行可能なJARファイルにコンパイルして、追加のテストをほとんど行わずにLinuxとMicrosoft Windowsで実行できます。 (ホットスポット、その他)JVMは、高品質のガベージコレクションと、非常に高性能なジャストインタイムのコンパイルと最適化をサポートしています。ほんの数年前、Cで高速に実行する必要のあるすべてのものを書いたのですが、今ではJavaで実行することをためらっていません。 標準のシンプルなマルチスレッドモデル。Common Lispには標準のマルチスレッドパッケージがありますか? 、、、およびでこれらすべての括弧の単調さを分解しますが[]、Common Lispの専門家はおそらく、リーダーマクロを使用すると、それらをCLに追加できると教えてくれます。{}#{} Clojureの欠点: JVMで実行されます。 末尾再帰や継続はありません。Common Lispは継続をサポートしていますか?Schemeは両方のサポートを必要とすると私は信じています。 その他の利点(特にCommon Lisp)(およびClojureの欠点): ユーザー定義可能なリーダーマクロ。 他の利点は? 考え?その他の違いは?


30
PythonとRubyのメタプログラミング[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私は現在主にDプログラマーであり、ツールボックスに別の言語を追加しようとしています。できれば、Dのような静的にコンパイルされた言語では実行できないメタプログラミングハックをサポートする言語を追加してください。 Lispについて少し読んだので、Lispの優れた機能のいくつかを可能にする言語を見つけたいと思いますが、Lispの奇妙な構文などはありません。言語の炎上戦争を開始したくないので、RubyとPythonの両方にトレードオフがあると確信しているので、個人的に重要なことをリストします。Ruby、Python、その他の言語のどちらが最適か教えてください。 重要: 良いメタプログラミング。実行時にクラス、メソッド、関数などを作成する機能。できれば、コードとデータの区別を最小限にとどめる、Lispスタイル。 素晴らしく、クリーンで、健全な構文と、一貫性のある直感的なセマンティクス。基本的に、よく考えられた、楽しくて使える現代的な言語です。 複数のパラダイム。すべてのプロジェクト、またはプロジェクト内のすべての小さな副問題でさえ、1つのパラダイムが適切ではありません。 プログラミングについての考え方に実際に影響を与える興味深い言語。 やや大事な: パフォーマンス。パフォーマンスがまともならいいのですが、パフォーマンスを優先する場合は、代わりにDを使用します。 十分に文書化されています。 重要ではありません: コミュニティーのサイズ、ライブラリーの可用性など。これらはどれも言語自体の特性ではなく、すべてが非常に急速に変化する可能性があります。 ジョブの可用性。私はフルタイムのプロのプログラマではありません。私は大学院生であり、プログラミングは私の研究に正接しています。 100万人のコードモンキーが取り組んでいる非常に大規模なプロジェクトで主に設計された機能。

3
「my other car is a cdr」とはどういう意味ですか?
LISPに精通している人なら誰でもこの冗談を私に説明できますか?私は関数型プログラミング言語についていくつか読んだことがありますが、CAR / CDRがアドレス/デクリメントレジスタの内容を意味することを知っていますが、それでもユーモアがよくわかりません。
89 lisp  cons  cdr 

9
Lispのどの方言を学ぶべきですか?[閉まっている]
クローズ。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前に閉鎖されました。 この質問を改善する Lispにはいくつかの異なる方言があることを私は知っています。Lispを学ぶことは新しい知的経験になると判断したので、どのLisp方言を学ぶべきか、そしてその理由を知りたいと思います。 他より人気のあるものはありますか?それらのいずれかが、より適切に文書化およびサポートされているように、より「完全」ですか?この方言の長所と短所は何ですか?
89 lisp  dialect 

11
Lisp開発のためのVimの使用
私はしばらくの間Lispをオン/オフしてきましたが、Lispで「実際の」作業を行うことに真剣に取り組んでいます。私はVimの大ファンであり、Lisp開発用のエディターとしてVimを使用することで、どのようにして最も生産的になることができるのかと思っていました。プラグイン、ワークフローの提案などはすべて大歓迎です。 私はすでにVimに着手していて、エディターとして本当に楽しんでいるので、「use emacs」と言わないでください。
87 vim  ide  lisp  common-lisp 

12
関数ポインタ、クロージャ、ラムダ
私はちょうど今関数ポインタについて学んでいて、この主題に関するK&Rの章を読んでいたとき、最初に私を襲ったのは「ねえ、これはちょっと閉鎖のようなものだ」でした。私はこの仮定がどういうわけか根本的に間違っていることを知っていました、そしてオンラインで検索した後、私はこの比較の分析を実際には見つけませんでした。 では、なぜCスタイルの関数ポインターがクロージャーやラムダと根本的に異なるのでしょうか。私が知る限り、それは、関数を匿名で定義する慣行とは対照的に、関数ポインターがまだ定義された(名前付き)関数を指しているという事実と関係があります。 関数を関数に渡すことは、名前が付けられていない2番目のケースでは、渡される通常の日常の関数である最初のケースよりも強力であると見なされるのはなぜですか? 2つを非常に密接に比較するのが間違っている方法と理由を教えてください。 ありがとう。

15
OS Xに最適なSchemeまたはLISPの実装は何ですか?
失われたLisp開発スキルを回復するために使用できるSchemeまたはLISPのバージョンを探しています。一部のWeb機能は便利ですが、必須ではありません。 私はPltとMITのスキームを見てきましたが、どちらもかなり見栄えがしますが、Pltの方が機能が豊富なようです。Lispの実装も見てきましたが、どれもかなり高価なようです。 私は無料/安価な実装を好みます。これはたまに趣味のプログラミングになる可能性が高いからです。どのような推奨事項がありますか?
86 macos  lisp  scheme  racket 

16
CommonLispでのLET対LET *
私はLETとLET *(並列結合と順次結合)の違いを理解しており、理論的な問題としては完全に理にかなっています。しかし、実際にLETが必要になったことがある場合はありますか?私が最近見たすべてのLispコードでは、すべてのLETを変更なしでLET *に置き換えることができます。 編集:わかりました、なぜ誰かがLET *を、おそらくマクロとして、昔に発明したのか理解しています。私の質問は、LET *が存在することを考えると、LETが留まる理由はありますか?LET *がプレーンなLETと同じように機能しない実際のLispコードを書いたことがありますか? 私は効率性の議論を買いません。まず、LET *をLETと同じくらい効率的なものにコンパイルできるケースを認識するのはそれほど難しいことではないようです。第二に、CL仕様には、効率を中心に設計されたようには見えないものがたくさんあります。(型宣言付きのLOOPを最後に見たのはいつですか?それらが使用されているのを見たことがないので、理解するのが非常に困難です。)1980年代後半のDick Gabrielのベンチマークの前は、CLはまったく遅かったです。 これは下位互換性の別のケースのようです。賢明なことに、LETほど基本的なものを壊すリスクを冒したいと思った人はいませんでした。それは私の予感でしたが、LETがLET *よりも途方もなく簡単にたくさんのことをしたという私が見逃した愚かな単純なケースを誰も持っていないことを聞いて安心しています。
81 lisp  common-lisp 

4
Common Lispのローカル状態
Common Lispの初心者の質問: 呼び出すたびに独自のローカルバインディングを持つ個別の手続き型オブジェクトを返すようにプロシージャを作成するにはどうすればよいですか?現在、letを使用してローカルステートを作成していますが、2つの関数呼び出しが同じローカルステートを共有しています。これがコードです (defun make-acc () (let ((balance 100)) (defun withdraw (amount) (setf balance (- balance amount)) (print balance)) (defun deposit (amount) (setf balance (+ balance amount)) (print balance)) (lambda (m) (cond ((equal m 'withdraw) (lambda (x) (withdraw x))) ((equal m 'deposit) (lambda (x) (deposit x))))))) ;; test (setf peter-acc …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.