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

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

1
関数型プログラミング言語で分岐限定を実装する方法は?
すべての関数f:D-> Rのセットで分岐および境界検索を作成しようとしています。ここで、ドメインサイズは小さく(| D |〜20)、範囲ははるかに大きくなります(| R |〜2 ^ 20 )。最初に、私は次の解決策を思いつきました。 (builder (domain range condlist partial-map) (let ((passed? (check condlist partial-map))) (cond ((not passed?) nil) (domain (recur-on-first domain range condlist partial-map '())) (t partial-map)))) (recur-on-first (domain range condlist partial-map ignored) (cond ((null range) nil) (t (let ((first-to-first (builder (cdr domain) (append ignored …

3
啓発への道:Scheme、Common Lisp、Clojure?[閉まっている]
私よりも賢い人の多くは、あなたがLispを学ぶとき、それをあなたが「得る」ので、あなたをより良いプログラマにすることについて書き続けます。 あなたの人生を変えるLisp(s)について聞いたのは、初心者にとっては大きな実用的な冗談だけかもしれませんが、スナイプや何かの後に送られてきたことがわかっても、世界についてもっと知ることに害はないと思います。 私はSICPの本、またはANSI Common Lispをフォローしたいのですが、同時に、個人的なプロジェクトで使用できる方言と実装を勉強しています。 SICPはSchemeに焦点を当てているため、これは1つの大きな投票です。ポール・グラハムは、初心者に教えるなら、Schemeでそれをやると言ったが、SchemeはまだCommon Lispより劣っているようだ。しかし、Clojureがあります。これは方法が限られていると言われていますが、他のもの(JVMライブラリ)ではより実用的です。 Schemeのマテリアルを簡単に使いこなしたり、CLから「本物の」啓発を達成したり、Clojureに十分に近づいて、長期的にはより多くのことができるように思えます。 そのすべてが真実ですか?何について学ぶべきか考えることをやめ、ただそれについて学びに行くべきですか?

5
Lispコミュニティが関数の最後にすべての括弧を蓄積することを好むのはなぜですか?
Lispコミュニティが関数の最後にすべての括弧を蓄積することを好む理由: (defn defer-expensive [cheap expensive] (if-let [good-enough (force cheap)] good-enough (force expensive))) CやJavaのような規則を採用しないのはなぜですか? わかりました、Lispはそれらの言語よりはるかに古いですが、私は現代のLispersについて話しています。 (defn defer-expensive [cheap expensive] (if-let [good-enough (force cheap)] good-enough (force expensive) ) ) 注:コードスニペットは、「The Joy of Clojure」という本からのものです。


6
Lispマクロはどれほど便利ですか?
Common Lispでは、必要なソース変換を行うマクロを作成できます。 Schemeは、変換も実行できる衛生的なパターンマッチングシステムを提供します。マクロは実際にどの程度役立ちますか?ポール・グラハムは、ビーティング・ザ・アベレージズで次のように述べています: Viawebエディターのソースコードは、おそらく20〜25%のマクロでした。 実際に人々はどのようなことをマクロでやっていますか?
22 lisp  scheme  macros 

3
関数型プログラミングの概念に関する標準的なチュートリアルまたは本はありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 手続き型/オブジェクト指向プログラミングのバックグラウンドから来て、私はSchemeプログラムを手続き型で書く傾向があります。プログラマーの心をリセットするために、SchemeやLispを機能的な方法で一から学ぶことに興味があります。 ベストプラクティス、設計方法論、および関数型プログラミングの概念に関するその他の有用な情報を説明するための事実上の標準であるチュートリアルまたは本はありますか?その本は特別なものですか?

4
LISPがあれば、マクロシステムの実装を容易にしますか?
私はSICPからSchemeを学んでいますが、Schemeを作るものの大きな部分、さらにLISPが特別なのはマクロシステムであるという印象を受けています。しかし、マクロはコンパイル時に拡張されるので、C / Python / Java / whateverに同等のマクロシステムを作成しないのはなぜですか?たとえば、pythonコマンドをexpand-macros | python何にでもバインドできます。このコードは、マクロシステムを使用しないユーザーにも移植可能です。コードを公開する前にマクロを拡張するだけです。しかし、私が収集したC ++ / Haskellのテンプレートを除いて、私はそのようなものを知りません。実際には同じではありません。LISPがあれば、マクロシステムの実装を容易にしますか?

3
LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか
Rubyを輝かせるものの1つは、ドメイン固有の言語をより良く作成する機能です。 シナトラ Rspec レーキ Ruby on RailsのActiveRecord マクロを介してLISPでこれらのライブラリを複製できますが、Rubyの実装はよりエレガントだと思います。それでも、LISPのマクロはRubyのマクロよりも優れている場合があると思いますが、マクロは考えられませんでした。 それでは、LISPのマクロは、DSLを作成するRubyの「能力」よりも優れているのはどの領域ですか。 更新 現代のプログラミング言語がLISPの特異点に近づいているので、私はこれを尋ねました。 Cはマクロ展開プリプロセッサを取得しましたが、非常に原始的でエラーが発生しやすい C#には属性がありますが、これは読み取り専用であり、リフレクションによって公開されます Pythonは、関数(およびv 3.0のクラス)の動作を変更できるデコレーターを追加しましたが、かなり制限されています。 気をつければエレガントなDSLを作成するRuby TMTOWTDIですが、Rubyの方法です。 LISPのマクロは特別な場合にのみ適用でき、他のプログラミング言語機能はソフトウェア開発の今日の課題に対応するために抽象化を高めるのに十分強力であると思いました。
21 ruby  lisp  dsl 

5
Lispが実際に人工知能の他の言語よりも優れているという証拠はありますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 AIのほとんどの言語よりもLispの方が優れているという長年の信念があるようです(主に非盗聴者による)。 この信念はどこから生まれたのですか?それに実際に根拠はありますか?

19
Lispのような構文拡張メカニズムを備えたプログラミング言語[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 Lispの知識は限られています(暇なときに少し学ぼうとしています)が、Lispマクロを理解する限り、Lisp自体で記述することで、新しい言語構造と構文を導入できます。これは、Lispコンパイラ/インタプリタを変更せずに、新しい構成をライブラリとして追加できることを意味します。 このアプローチは、他のプログラミング言語のアプローチとは大きく異なります。たとえば、Pascalを新しい種類のループまたは特定のイディオムで拡張する場合、言語の構文とセマンティクスを拡張してから、コンパイラにその新しい機能を実装する必要があります。 Lispファミリー以外のプログラミング言語(Common Lisp、Scheme、Clojure(?)、Racket(?)など)以外に、言語内で言語を拡張する同様の可能性を提供するプログラミング言語はありますか? 編集 長時間の議論を避け、答えを具体的にしてください。何らかの方法で拡張できるプログラミング言語の長いリストの代わりに、概念的な観点から、拡張メカニズムとしてのLispマクロに固有のものと、どの非Lispプログラミング言語がいくつかの概念を提供するかを理解したいそれは彼らに近いです。

2
Lispマクロの典型的な用途は何ですか?
私はいくつかのLISPを学ぼうとしていますが、LISPマクロの重要性について多くのことを読みましたので、それらを使った実務経験を得たいと思います。 マクロを使用して実際の問題を解決し、このプログラミング構成の有用性を理解できる実用的なアプリケーション領域を提案できますか? 注意 これは一般的なプロジェクトではなく、次の質問を行うべきプロジェクトです。LISPマクロを使用して通常どのような問題が解決されるかを理解したいと思っています。たとえば、抽象データ型の実装に適していますか?なぜこのコンストラクトが言語に追加されたのですか?単純な機能では解決できない、どのような問題を解決しますか?

4
PythonデコレータとLispマクロ
Pythonデコレータを見ると、誰かがLispマクロ(特にClojure)と同じくらい強力だという声明を出しました。 PEP 318で与えられた例を見ると、まるでそれらがLispで単純な古い高階関数を使うための単なるおしゃれな方法であるかのように見えます: def attrs(**kwds): def decorate(f): for k in kwds: setattr(f, k, kwds[k]) return f return decorate @attrs(versionadded="2.2", author="Guido van Rossum") def mymethod(f): ... 「Clojureマクロの構造」で説明されているように、どの例でもコードの変換は見ていません。さらに、Pythonの欠落した同質 性により、コード変換が不可能になる可能性があります。 それで、これら2つはどのように比較されますか。証拠はそれに反対するようです。 編集:コメントに基づいて、私は2つのことを探しています:「できるだけ強力」と「素晴らしいものを簡単に実行できる」との比較。
18 python  lisp  clojure  macros 

2
IronSchemeは学習する価値があるほど十分に完全または安定していますか?
IronSchemeは、Wikipediaで IronLispと呼ばれる失敗したプロジェクトの後継として言及されており、ClojureがJVMに対して行うように、LispをCLRおよび.NETにもたらします。この言語の経験はありますか?かなり完成しているように見えます(99%)が、セットアップするのに時間をかける価値があるかどうかを判断する方法はわかりません。安定または完全ということは、単にツールやProject Eulerスタイルの問題をいじるのではなく、実際のプロジェクトに使用することを意味します。
17 .net  lisp  scheme  clr 

5
AIの最近のプログラミング言語?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 数十年の間、AIに選ばれたプログラミング言語はPrologまたはLISP でしたが、あまり知られていない他の言語もいくつかありました。それらのほとんどは、70年代以前に設計されました。 他の多くのドメイン固有の言語では多くの変更が発生しますが、AIドメインではWeb固有の言語やスクリプトなどほど表面化されていませんでした。 AIのゲームを変更し、以前の言語の不足から学ぶことを目的とした最近のプログラミング言語はありますか?

5
XSLTおよび可能な代替案[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 1つのXMLファイルを別のXMLファイル(HTMLなど)に変換するためのXSLTを見てきました。XSLT(標準化されて使用されているツールである)には利点があることがわかりましたが、いくつかの理由で消極的です XSLTプロセッサは非常に巨大であると思われる/リソースを大量に消費する XMLはプログラミングにとって悪い表記法であり、それがXSLTのすべてです。 ここでXSLTをトロールしたくないのですが、私はそれについて嫌いなものを指摘したいだけで、私は代替手段に期待することのアイデアをあなたに提供します。 Lispのバックグラウンドがあるので、Lispに基づいたツリー構造変換のより良い方法があるかどうか疑問に思います。DSSSLへの参照を見てきましたが、残念ながらDSSSLに関するほとんどのリンクは死んでいるので、それを説明するコードを見るのはすでに困難です。DSSSLはまだ使用中ですか?docbookをチェックアウトするときに一度openjadeをインストールしたことを覚えています。 Jeff Atwoodのブログ投稿は、XSLTの代わりにRubyを使用することを示唆しているようです。 非XMLプログラミング言語でXSLTに似たXML変換を行うための適切な方法はありますか?私は上の入力のために開いているだろう XML変換を容易にするスクリプト言語に役立つライブラリ 特に(ただし排他的ではない)Lispのような変換言語、またはRubyなど。 これまでに見つけたいくつかのこと: Webのいくつかの場所で、Linqが代替案として挙げられています。非常に一般的には、あらゆる種類の分類であり、XSLTの経験が最も豊富な人のものです。 スキームhttp://cs.brown.edu/~sk/Publications/Papers/Published/kk-sxslt/およびhttp://www.okmij.org/ftp/Scheme/xml.html
14 xml  lisp  linq  xslt 

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