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

Lispは、ラムダ計算に基づく汎用関数型プログラミング言語(のファミリ)であり、ソースコードをデータ構造として操作する機能を備えています。

5
スキームvs Common Lisp:どの特性がプロジェクトに違いをもたらしましたか?[閉まっている]
StackOverflowとこのサイトの両方で、あいまいな「Scheme vs Common Lisp」の質問が不足しているわけではないので、これにもっと焦点を当てたいと思います。質問は、両方の言語でコーディングした人向けです。 Schemeでコーディングしているときに、Common Lispコーディングエクスペリエンスで最も見逃した要素は何ですか?または、逆に、Common Lispでコーディングしているときに、Schemeでコーディングすることから何を逃しましたか? 言語機能だけを意味するわけではありません。以下は、質問に関する限り、見逃してはならない有効なものです。 特定のライブラリ。 SLIME、DrRacketなどの開発環境の特定の機能 CコードのブロックをSchemeソースに直接書き込むGambitの機能など、特定の実装の機能。 そしてもちろん、言語機能。 私が望んでいる種類の答えの例: 「Common LispでXを実装しようとしていたので、もしSchemeの第一級の継続があれば、Yをやっただけでしたが、代わりにZをやらなければならなかったので、苦労しました。」 「Schemeプロジェクトでのビルドプロセスのスクリプト作成は、ソースツリーが成長し、Cライブラリをより多くリンクするにつれてますます苦しくなりました。次のプロジェクトでは、Common Lispに戻りました。」 「既存の大きなC ++コードベースがあり、私にとっては、Gambit SchemeコードにC ++呼び出しを直接埋め込むことができたのは、SchemeがCommon Lispに対して持っていた短所、SWIGサポートの欠如を含めて、まったく価値がありました。」 ですから、「スキームはもっとシンプルな言語です」などの一般的な感情ではなく、戦争の物語を望んでいます。
155 lisp  scheme 

15
LISPは今日の世界でまだ有用ですか?どのバージョンが最も使用されていますか?
私は自分自身に新しいプログラミング言語を定期的に教えようとしています。最近、私はLispとその方言がC / C ++のような言語とはまったく反対の立場にあることを読みました。ただし、2つのことは私には不明確であり、それらに関するガイダンスを探しています。 LISPは今日でもまだ実践/使用されていますか、それともFORTRAN / COBOLなどのレガシー言語ですか?つまり、既存のコードを維持することとは別に、新しいプロジェクトでまったく使用されますか? 最も広く使用されている方言は何ですか?最も一般的な2つの方言としてSchemeとCommon Lispに出会いましたが、どちらが最も好まれ/有用な方言であるかについてのあなたの意見が欲しかったです-そして、あなたが最初のランク初心者のためのリソースを提案できるなら、非常に満足します。 私が慣れ親しんでいる手続き言語とは根本的に異なる言語を習得したいのですが、もし完全に時代遅れであれば何かに過度の労力を費やしたくはありません。しかし、学術的観点からのみ...

17
Lispが便利なのはなぜですか?[閉まっている]
Lispは明らかにAIの利点ですが、LispがJava、C#、またはCよりも高速であるとは思えません。 Lispでビジネスソフトウェアを書くことになります。 しかし、それはハッカーの言語と見なされています。 Paul GrahamがLispを擁護するのはなぜですか?ITA Softwareが他の高級言語よりもLispを選んだのはなぜですか?これらの言語に対してどのような価値がありますか?
64 lisp 

11
なぜLispはもっと普及していないのですか?[閉まっている]
私はSICPビデオでSchemeを学び始めています。次にCommon Lispに移りたいと思います。 この言語は非常に興味深いようであり、ほとんどの人々はそれについて本を書いており、比類のない表現力を持っていると主張しています。CLにはまともな標準ライブラリがあるようです。 なぜLispはもっと普及していないのですか?それが本当にそんなに強力であるならば、人々はそれを全面的に使用するべきですが、代わりに、例えば、Lisp求人広告を見つけることはほとんど不可能です。 しばらくしてからは大きな問題ではないので、括弧だけではないことを願っています。

9
Lispから始めるにはどうすればいいですか?[閉まっている]
私は何年もプログラミングを行っており、Blubのさまざまな繰り返し(BASIC、アセンブラ、C、C ++、Visual Basic、Java、Rubyは「Blub-ness」の特定の順序ではありません)を学習しています。舌足らずの発音。しかし、私は限られた時間(家族、フルタイムの仕事など)と私の現在のBlub(Java)での快適な幸福を備えたものがたくさんあります。 だから私の質問はこれです、私が本当にLispを学びたい人だとすれば、ウェブ開発におけるLispの優位性を示す良い結果を得るための最初のステップは何でしょうか?多分私はその点を見逃しているかもしれませんが、それは私が最初に私のLisp知識の応用を見ることになる方法です。 「方言Aを使用し、IDE Bを使用し、Cページの指示に従い、カウンセラーDを使用してモナドの後に正気を疑う」と考えています。私はここの人々がA、B、C、そしておそらくDの最適な値のセットだと考えているものを知りたいですエキスパート。 さらに詳細を追加するために、MacOS(またはLinux VM)で開発します。Windowsベースのアプローチは必要ありません、ありがとう。 閲覧するだけの人への注意 この質問をしばらく開いたままにして、提案を調査した後にフィードバックを提供できるようにします。もしあなたがブラウジングをしていて、何か追加するものがあると感じたら、してください。あなたのフィードバックを本当に歓迎します。 興味深いリンク あなたがJavaのバックグラウンドからLispに来ていると仮定すると、このリンクのセットはすぐにあなたを始めるでしょう。 IntellijのLa Clojureプラグインを使用してLispを統合する(ビデオキャスト) Web用のLisp Practical Common Lispのオンライン版(c / o Frank Shearar) Land of Lispが登場し(+ (+ very quirky) game based)ましたが、とても簡単です MacOSにClojureとSublime 2をインストールする優れた入門ガイド Clojure in Actionの本を見てください。私のために働いた。

2
使用するCommon Lisp実装はどれですか?[閉まっている]
Common Lispでの開発を開始することには、実装の選択という差し迫った問題があるようです。CLの実装を検討するとき、何を考慮に入れる必要がありますか? ANSI規格に準拠する必要がありますか?SLIMEでサポートされるべきですか?特定の実装には適切なライブラリ、ドキュメントなどが欠けていますか?

3
LISPとHaskellを使用する利点は何ですか?彼らは私をより良いプログラマにしてくれるでしょうか?[閉まっている]
LispとHaskellはそれぞれ論理プログラミング言語と関数型プログラミング言語であることは知っていますが、これはどういう意味ですか?他の言語とどのように違いますか?これらを学ぶことはあなたをより良いプログラマにし、ロジックを改善すると聞いたことがあります。これは本当ですか?LispまたはHaskellを有能なレベルに習得すると、プログラミングが改善され、どの言語でも問題を処理できるようになりますか?それらが学習の努力に値するかどうかを知りたいだけです。また、これらの言語はGUIやグラフィックスなどの分野で役立ちますか、それともコンソールアプリケーションだけで役立ちますか?
41 haskell  lisp 

7
Haskell AND Lisp vs. Haskell OR Lisp [終了]
現在、C、C ++、およびPythonを使用してコーディングしています。関数型プログラミング言語を使いたいと思っていますが、今はHaskellに傾倒しています。ここで「Haskell vs Lisp」戦争を始めたくありません。私が知りたいのはこれです:主に関数型プログラミングに触れるためにHaskellを学んだ場合、後でLispを学ぶことでどんな利益が得られますか?

4
Lispワークフローはどのように見えますか?[閉まっている]
私は現在Lispを学んでいます。LocomotiveBASIC-> Z80 Assembler-> Pascal-> C-> Perl-> C#-> Rubyという言語の進歩から来ています。私のアプローチは同時に: SBCL、QuickLisp、closure-html、およびdrakmaを使用して簡単なWebスクレーパーを記述します SICP講義を見る これはうまく機能していると思います。私はLispを合理的に簡単に読むことができるという点で、良い「Lispゴーグル」を開発しています。また、依存関係のQuicklispなど、Lispエコシステムがどのように機能するかについても感じています。 私は本当に欠けている何か、しかし、味付けLisperが実際にどのように感ある作品。 .NET向けにコーディングするときは、ReSharperとVisualSVNを使用してVisual Studioをセットアップします。私はテストを書き、実装し、リファクタリングし、コミットします。それから、ストーリーを完成させるのに十分なことが終わったら、AUATをいくつか書きます。その後、TeamCityでリリースビルドを開始し、テストとできれば承認のために新しい機能を顧客にプッシュします。インストーラーが必要なアプリの場合は、WiXまたはInnoSetupを使用します。明らかに、CIシステムを介してインストーラーを構築します。 だから、私の質問は:経験豊富なLisperとして、あなたのワークフローはどのようなものですか?あなたは主にREPLで働いていますか、それともエディターで働いていますか?ユニットテストはどのように行いますか?継続的インテグレーション?パッケージングと展開?あなたが机に座って、片方にコーヒーのマグカップを、もう片方にジョン・マッカーシーの額入りの写真を蒸しているとき、あなたはそれをどうしますか? 現在、私はLispコーディングを理解しているように感じていますが、Lisp開発ではありません...
39 lisp 

7
C#Dev-Lispを試しましたが、うまくいきません[非公開]
CLと少しのClojureの両方についてLispを学び、遊んだ数ヶ月後、C#の代わりにLispで何かを書く説得力のある理由がまだ見当たりません。 いくつかの説得力のある理由、または誰かが私が本当に大きなものを見逃していることを指摘してほしい。 Lispの長所(私の研究による): コンパクトで表現力豊かな表記法-C#よりも、そうです...しかし、私はそれらのアイデアをC#でも表現できるようです。 関数型プログラミングの暗黙的なサポート-LINQ拡張メソッドを使用したC#: mapcar = .Select(lambda) mapcan = .Select(lambda).Aggregate((a、b)=> a.Union(b)) car / first = .First() cdr / rest = .Skip(1)....など ラムダおよび高階関数のサポート-C#にはこれがあり、構文は間違いなく簡単です。 「(lambda(x)(body))」対「x =>(body)」 Clojureでは、「#(」と「%」、「%1」、「%2」が適切です オブジェクトから分離されたメソッドディスパッチ-C#には拡張メソッドを介してこれがあります マルチメソッドディスパッチ-C#にはこれがネイティブにありませんが、数時間で関数呼び出しとして実装できます。 コードはデータ(およびマクロ)-マクロを「取得」していないかもしれませんが、マクロの概念を関数として実装できない単一の例を見たことはありません。「言語」は変更されませんが、それが強さかどうかはわかりません DSL-関数合成を介してのみ行うことができます...しかしそれは動作します 型なしの「探索的」プログラミング-構造体/クラスの場合、C#の自動プロパティと「オブジェクト」は非常にうまく機能します。 Windows以外のハードウェアで実行します-そうですか?大学以外では、自宅でWindowsを実行していない人、または* nix / Macで少なくともWindowsのVMを実行している人は1人しか知りませんでした。(もう一度、多分これは思ったよりも重要で、洗脳されたばかりです...) ボトムアップ設計のためのREPL-わかりました、これは本当にすてきで、C#では見逃しています。 Lispに欠けているもの(C#、. NET、Visual Studio、Resharperが混在しているため): 名前空間。静的メソッドであっても、コンテキストを分類するために「クラス」に結び付けるのが好きです(Clojureはこれを持っているようですが、CLはそうではないようです)。 優れたコンパイルおよび設計時サポート 型システムにより、渡すデータ構造の「正確さ」を判断できます つづりの間違いはリアルタイムで下線が引かれます。ランタイムまで知る必要はありません コードの改善(命令的なアプローチの代わりにFPアプローチを使用するなど)が自動的に提案されます GUI開発ツール:WinFormsおよびWPF(ClojureがJava GUIライブラリにアクセスできることは知っていますが、それらは私にとってまったく異質なものです。) GUIデバッグツール:ブレークポイント、ステップイン、ステップオーバー、値インスペクター(テキスト、xml、カスタム)、ウォッチ、スレッドごとのデバッグ、条件付きブレークポイント、任意のレベルのコードにジャンプできるコールスタックウィンドウスタック内 (公平を期すために、Emacs + Slimeでの私の仕事はこれの一部を提供しているように見えましたが、VS …
37 clojure  lisp 

6
Lispには、他のプログラミング言語で採用されていない特別な機能がまだありますか?
Lispには、他のプログラミング言語で採用されていない特別な機能がまだありますか? Lispとは、すべてのLispプログラミング言語全体を意味します。私はLispがどれほど素晴らしいかを聞いてきましたが、多くの言語がLispに触発されたことを知っています。しかし、Lispには、他の言語では実行できない排他的なデザイン機能がまだありますか? 私が質問した理由は、最近、私自身アマチュアプログラマーである私はただ楽しみのためにClojureを学び始めたので、その結果、私はLisp関連の投稿やコメントをたくさん見つけたということです。しかし、他の最新のプログラミング言語は、条件、再帰、ファーストクラスの市民としての機能など、すでにLispから多くのアイデアを採用し盗んでいます。さらに、多くの言語でメタプログラミングを行うこともできます。 私は何かを見逃し、「Lispはまだ違う」のですか? あるいは、他の現代言語がLispからすべての優れた部分を盗んだため、括弧Lispの世界を掘り下げる必要がなく、「Lispは違っていた」ので、私は幸運です。

13
人気のない言語を使用した開発の問題(メンテナンスなど)
私は私のチームでclojure(lisp)のみを使用してアプリケーションを開発しています。小さなアプリケーションとして起動します。問題ない。しかし、機能を備えてエリアを拡張しているため、重要なプログラムになりつつあります。 メンテナンスなどが心配でした。私のチームの誰もclojureやlispを知らず、それらのような言語にも興味がありません。 だから、人気のない言語でプログラミングをするのは間違っていませんか?(自分の楽しみのために?)もっと人気のある言語を使うべきですか?(少なくともpythonなど) チームを辞めるかどうかはわかりますが、辞めるとは言いません。:)-誰もそれを維持しません。このプログラムは破棄され、一部は他の言語で開発されます。 clojureでの開発はとても楽しんでいますが、これは私のチームには向かないかもしれないと思いました。 これについてどう思う?人気のない言語を愛する多くのプログラマーは、同様の問題を懸念していると思います。

5
トップダウンまたはボトムアップのどちらを設計するのが望ましいですか?
私が理解しているように、トップダウン設計は、最小の構成要素が定義されるまで、抽象的な高レベルの概念をより小さなコンクリートのわかりやすい部品に改良することです。一方、ボトムアップは低レベルのパーツを定義し、システム全体が形成されるまで徐々に高レベルのブロックを構築します。 実際には、2つの方法を組み合わせることをお勧めします。ドメインの知識、その関係、および制約を完全に指定するために、高レベルの仕様から始めます。問題が十分に理解されると、最小の構成要素が作成されてシステムが構築されます。 のプロセス: 要件仕様の作成 設計仕様を作成します(図を使用) 実装する 届ける 繰り返します(反復開発では、各フェーズでチャンク全体を行うのではなく、少しずつ繰り返し行い、顧客の動的な要件に適応するために毎日ミーティングを行います) 私には完全に正常に見えます(仕様としての計画)。それには欠点がありますが、それが反復開発を行った理由です:1つのフェーズに時間を費やす代わりに、変更(場合によっては毎日)を受けるドメイン知識のあらゆる可能性を調査するための要件分析ではなく、少し分析します、少し設計してから実装します。 別の方法は、各反復がミニウォーターフォール形式であり、分析が数日(または1週間)で行われることです。同じことが設計にも当てはまります。残りの時間は実装に費やされます。反復的な開発と組み合わせたトップダウンアプローチには本質的に何か問題がありますか? 彼のエッセイであるプログラミングボトムアップでは、ポール・グラハムは完全にボトムアップからビルドを奨励するか、ボトムアップからプログラムするように思われますが、要件分析/設計段階ではありません。 経験豊富なLispプログラマーは、プログラムを異なる方法で分割します。トップダウン設計と同様に、彼らはボトムアップ設計と呼ばれる原則に従います-問題に合うように言語を変更します。 私が知る限り、彼が意味したのは、Lisperがまだトップダウン設計を実行しているが、プログラムはボトムアップであるということです。彼が書いた別のポイント: ボトムアップ設計とは、同じプログラムを異なる順序で書くだけではないことを強調する価値があります。ボトムアップで作業すると、通常は別のプログラムになります。単一のモノリシックプログラムの代わりに、より抽象的な演算子を備えたより大きな言語と、その中に記述されたより小さなプログラムを取得します。まぐさの代わりに、アーチを取得します。 これは、Lispでプログラムを作成している間に、一般的なツールになるということですか?
31 design  c++  lisp 

11
実際のアプリケーションにLISP(の方言)を使用しますか?どこで、なぜ?[閉まっている]
LISP(およびScheme、Common LISP、Clojureなどの方言)は、かなり適切なプログラミング言語であるにもかかわらず、多くの業界からの支持を得ていません。(現時点では、彼らは牽引力を得ているようです)。 さて、これは質問に直接関係していません。生産プログラムにLISP方言を使用しますか?どのようなプログラムとその理由は?他のコード(Cなど)に統合される種類の使用法も含まれていますが、それはあなたの答えの意味であることに注意してください。幅広い概念が望ましいですが、特定のアプリケーションも同様に適切です。

5
LispでLispインタープリターを勉強することがなぜそんなに重要なのですか?
私は、特にlispで書かれたLispインタープリターを研究することを志望するプログラマーに求める新しいプログラマーのための多くのCSカリキュラムと学習提案を見てきました。これらのサイトはすべて、「その知的な啓示」、「すべての真面目なプログラマーが持つべき啓発体験」、「ハードウェアとソフトウェアの関係を示す」、その他の曖昧な声明、特にこの記事からこの評判の高いハウツー。 私の質問の一般的な感情は、Lispが上記の目標をどのように達成し、なぜLispを達成するのかということです。他の言語はなぜですか? Schemeでスキームインタプリタの記述を終えたばかりなので(SICP http://mitpress.mit.edu/sicp/から取得)、現在スキームでPythonインタプリタを記述しており、この伝説的なエピファニーを得るのに苦労しているため、これを求めています。それは前者から具体的に来ることになっています。プログラムの仕組みを理解するために、スキームインタープリターで活用できる2つの言語間の特定の技術的な詳細を探しています。 すなわち: 解釈する言語で書かれた通訳者の研究が強調されているのはなぜですか?元の言語と構築された言語をまっすぐに保つのは単に素晴らしい精神的な運動ですか、それともその性質でしか解決できない特定の問題がありますか?元の言語? Lispインタプリタは、将来のソフトウェア設計のために優れたアーキテクチャの概念をどのように実証しますか? この演習をC ++やJavaなどの別の言語で行った場合、何が恋しいですか? 何が最も使用され、この運動からテイクアウトや「精神的なツールが」?** ** このエクササイズから、他のどのツールよりも頭の中で解析ツールを設計するスキルが得られていることに気付いたので、答えを選択しました。スキームに適した異なる解析方法を見つけたいと思います。 Pythonインタープリターよりもインタープリター。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.