OS Xに最適なSchemeまたはLISPの実装は何ですか?


86

失われたLisp開発スキルを回復するために使用できるSchemeまたはLISPのバージョンを探しています。一部のWeb機能は便利ですが、必須ではありません。

私はPltとMITのスキームを見てきましたが、どちらもかなり見栄えがしますが、Pltの方が機能が豊富なようです。Lispの実装も見てきましたが、どれもかなり高価なようです。

私は無料/安価な実装を好みます。これはたまに趣味のプログラミングになる可能性が高いからです。どのような推奨事項がありますか?


6
PLTスキームの名前がRacketに変更されていることに注意してください。
soegaard 2012


2
なぜこの質問は閉じられておらず、このような他のほとんどすべてが閉じられているのですか?
Erik Kaplun 2014

回答:


71

ラケットで行きます。SBCLほど高速ではないかもしれませんが、優れたライブラリとドキュメントがあり、Schemeプログラムをすぐに開発して実行できるように設計された統合環境があります。RacketのIDEであるDrRacketについて私が本当に気に入っているのは、あなたがする必要がないことです。Emacsを学ぶ必要も、SLIMEを学ぶ必要も、3番目に追い詰める心配もありません。パーティライブラリ。Racket用の実質的にすべてのライブラリはパッケージに含まれています。全体として、学習曲線が大幅に短縮され、目前の実際のタスク、つまり優れたコードの記述に集中できるようになります。

また、ラケットを利用したWebサイト(現在調査中)を作成する場合は、Webサーバーが付属しています


1
私は数週間前にPLTを多かれ少なかれランダムに選択しましたが、これまでのところ、私は自分の選択に非常に満足しています。あなたが言ったように、たくさんのライブラリとドキュメント、いくつかの便利なツール。
Slartibartfast 2009年

ありがとう、ええと、誰も。私はスピードよりもツールとドキュメントに重点を置いているので、PLTを使用します。
マークブリッティンガム

1
確実なこと。DrSchemeは教育を念頭に置いて作成されており、いくつかの利点(使いやすく、文書化されている)がありますが、いくつかの欠点もあります。HtDPhtdp.org)を使用している場合を除き、教育言語を無視して、すべてにModuleを使用することをお勧めします。
カイルクローニン

現在Racketという名前になっていることに加えて、新しいパッケージシステムパッケージカタログがあり、ほとんどのユースケースでPlanetよりも好まれています。
ジャック

22

私はこれでかなりの実験をしました。

Clozure Common Lisp(旧姓Open MCL)は群を抜いて最速です。Intel Mac Miniの次の競合製品よりも25〜30パーセント高速です。

MITスキームはMacで非常にうまく機能します。最終的には自分でコンパイルしたと思いますが、そのサイトにはバイナリがあります。PLTスキームも素晴らしく、おそらくMacの世界にもう少しうまく統合されています。(PLTスキームは現在Racketとして知られていますが、変更後は実験していません。)


2
私が試したほとんどすべてのもの。一般的に、それらは大量のリスト操作とloopマクロの大量使用でした。
チャーリーマーティン

1
CCLは32ビットIntelで動作していないように見えるので、私のMacMiniは少し古いことに注意してください。
デビッドソーンリー

16

私はClojure、SBCL、ClozureCLの大ファンです。それらはすべて素晴らしいですが、あなたがしたいのがあなたのLispingチョップをリフレッシュすることだけであるならば、それらはまたやり過ぎです。それらはすべて、不条理な量の情報ハンティング、メーリングリスト検索、パッケージのインストール、ircの潜伏などを必要とします。

Dr Schemeは、インストールして実行するだけです。私は4年半前にDrSchemeを使ってSICPの最初の3章を終えました。スキームエバリュエーター自体を定義することほど深遠なものはありません。頭を悩ませたら、産業力のある兄弟たちに対してもっと忍耐力があります。


3
実際、Ubuntu-SBCL-SLIME-stumpwmのセットアップには他に何も必要ありませんでした。手始めに、Practical Common LispとCLHSだけが必要であり、それはあなたに長い道のりをもたらします。
Svante

15

Schemeにとって、DrRacketは素晴らしいです(Racketに含まれています)。

Common Lispの場合、ReadyLispは素晴らしいです。SBCL、Aquamacs、Slimeをそのまま使用できる単一のdmg。

Webサイトから:

Ready Lispは、Aquamacs、SBCL、SLIMEなど、特にMac OSX向けのいくつかの人気のあるCommonLispパッケージをまとめたものです。ダウンロードすると、ダブルクリックできる単一のアプリケーションバンドルが作成され、完全に構成されたCommon LispREPLが表示されます。

最小限の手間でCommonLispの美しさを試したいOSXユーザーにとって理想的です。また、教師がMacの生徒に無料の完全なCommonLisp環境を提供して持ち帰ることもできます。要件

Ready Lispの現在のバージョンは20090127であり、Mac OS X 10.5(Leopard)が必要です。

これには、次のコンポーネントソフトウェアバージョンが含まれます。

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

「Lisp」の定義方法によっては、Clojureが適切な場合があります。OS Xで正常に実行されます(JVMが実行される場所であればどこでも実行されます)。Web機能があり、無料です。

また、新しくて新鮮で楽しく使用できるという利点もあります。趣味のプログラミングに最適かもしれません。WebアプリやGUIアプリを作成するのは簡単です(JavaのSwingまたはQtを使用)。


4

私自身は使ったことがありませんが、Steel Bank CommonLispはredditで好評を博しています。オープンソースで無料なので、趣味のプログラミングに適した価格です。

過去には、私が持っていたGNU Common Lispのは、私のMacBook Proの上で実行されています。


4

Schemeをお探しの場合は、リリースされたばかりのJazzSchemeをご覧ください


4

Racketは、Schemeの初心者(または、Schemeを使用しているプログラミング初心者、さらにはHtDPを使用するプログラミング初心者)に最適なIDEの1つであるため、初心者にはお勧めします。

http://racket-lang.org/

小さなSchemeシステムを自分で変更したり、ソースコードを読んだりすることに興味がある人にとって、もう1つのオプションは、Larceny Schemeです。これは、JITコンパイラであるTwobit自体が完全にSchemeに実装されているためです。

http://www.larcenists.org/


更新:さらに、ChezSchemeは最近オープンソース化されました:

https://github.com/cisco/ChezScheme

(Larcenyほど「小さく」はないかもしれませんが、非常に積極的な最適化コンパイラーを備えています。)


Webサイトでは、ネイティブコンパイラ、to-Cコンパイラ、およびCLR実装についてのみ言及しているようです。JITはどこにありますか?
Erik Kaplun 2014

ネイティブコンパイラJITです。
pnkfelix 2014

(つまり、「load」またはREPLを介してフィードしたすべてのScheme式をx86マシンコードに動的にコンパイルします。ここでのJITは「ジャストインタイム」用です。JavaやJVMとは関係ありません。 JITの意味だと思った)
pnkfelix 2014

Javaとは何の関係もないと思いました。ホームページに「ネイティブマシンコードに直接コンパイルする」と書かれているだけで、JITコンパイルVM /インタープリターが通常説明されている方法ではありません。
Erik Kaplun 2014

1
あなたの質問に答えるために、現在のところ、Larcenyからスタンドアロンのバイナリを実際に入手することはできません。Schemeソースをロードしてから、そのヒープ(コンパイル済みコードを使用)をヒープイメージにシリアル化できますが、それでも、ヒープファイルとランタイムバイナリを別々のファイルとして再配布する必要があります。2つを1つのバイナリイメージに簡単にマージできるようにすることを検討しましたが、思い切って実行することはありませんでした。
pnkfelix 2014


2

趣味のプログラミングだけの場合、LispWorksには、非常に強力で洗練された無料の個人用バージョンがあります。最大の問題は、実行時間の制限が数時間であることです。したがって、長時間実行されるサーバーを作成することはありませんが、それが便利なツールではないという意味ではありません。

CLISPはほとんどすべてで実行され、実際には非常に優れています。スレッドを実行しないだけです。(実際のサーバーを作成する場合は重要ですが、PHPとPerlが示しているように、Apache + [言語の挿入]は非常に実行可能なプラットフォームです。)



1

私は最近自分自身に同じ質問をしています。OS XでDrSchemeを使用したことで、どのプラットフォームでもSchemeディストリビューションの最初の選択肢になります。非常に優れたIDE、デバッグ機能、および優れたライブラリ/フレームワークのセット(Macでも機能する非常に優れたGUIツールキットを含む;-))

しかし、私は今、CommonLispにとって同様に快適な環境を探しています。それはCCL(Op​​enMCL)対SBCLに帰着しました。SBCLが一般的な選択肢のようですが、OSXではスレッド化がサポートされていないことを読みました。(これは本当に問題ですか?)一方、Clozure CLは、ネイティブスレッド、obcj-bridgeなどの優れたサポートを誇っています...

CCLは少し奇妙だと思いますが、しばらくはそれに固執するつもりです-それでも統合の論理的な選択のように見えます。

私は環境としてEmacs23(-with-nsを使用してソースから構築)とSlimeを使用していますが、これは私にとってうまく機能します。:-)



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