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

Schemeは、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に出会いましたが、どちらが最も好まれ/有用な方言であるかについてのあなたの意見が欲しかったです-そして、あなたが最初のランク初心者のためのリソースを提案できるなら、非常に満足します。 私が慣れ親しんでいる手続き言語とは根本的に異なる言語を習得したいのですが、もし完全に時代遅れであれば何かに過度の労力を費やしたくはありません。しかし、学術的観点からのみ...

11
Schemeが大学の第一言語であるのはなぜですか?
人々がコンピュータサイエンスについて話し始めるたびに、C、C ++、Javaについて毎日耳にしますが、最初のコンピュータサイエンスクラスでは、Scheme(DrRacket)で書くように求められます。 何故ですか? これはプログラミングの将来の理解にどのような違いをもたらしますか? 更新:最初の任期は終了しましたが、Schemeで完全には完了していません。2番目の用語(現在)では、Cプログラミングに取り組みました。最初はポインターを覚えるのはいらいらしていましたが、今では気分が良くなりました。 それ以上のことは言いません。私は私が行方不明になっているOOP部分のためにJava(またはC ++?)を自分で教えようとしています。これまでのところ、私はまだ関数型プログラミングが最も好きです。ラムダはただ魅力的です。:)
80 scheme 

2
一部の言語が最も近いEVEN整数に丸められるのはなぜですか?
Scheme(R5RS)やPython(この質問を参照)などのプログラミング言語は、値が周囲の整数の間に正確に収まる場合、最も近い偶数の整数に向かって丸めます。 この背後にある理由は何ですか? 次の計算を推論しやすくする数学的なアイデアはありますか? (R5RSは、この動作のソースとしてIEEE浮動小数点標準を参照しています。)

12
関数型プログラミング入門のスキームvs Haskell?
私はCおよびC#でのプログラミングに満足しており、将来C ++を検討します。関数型プログラミングを別のプログラミングパラダイムとして検討することに興味があるかもしれません。私はこれを楽しみのためにやっています。私の仕事はコンピュータープログラミングに関係しておらず、大学のコンピューターサイエンスコースでかなり早い時期に教えられた関数型プログラミングの使用にやや影響を受けています。ラムダ計算は確かに私の数学的な能力を超えていますが、関数型プログラミングを処理できると思います。 HaskellとSchemeのどちらが関数型プログラミングの入門として役立つでしょうか?私はemacsをテキストエディタとして使用しますが、Emacs Lispの学習を必要とする将来、より簡単に設定できるようにしたいと考えています。しかし、私の理解では、Emacs LispはSchemeとはかなり異なり、機能的というよりも手続き的です。 Schemeを追求すれば、すでに購入した「The Little Schemer」の本を使用している可能性があります(限定的なリーフィングから少し奇妙に思えます)。または、私がHaskellを追求する場合、「Learn Good a Haskell for Great Good」を使用します。また、チャンネル9でErik Meijer博士によるHaskellの紹介ビデオも見ました。 提案、フィードバック、または入力を歓迎します。 ありがとう。 PS BTW C#開発に使用しているVisual Studio 2010があるため、F#にもアクセスできますが、言語を選択するための主要な基準とは思われません。

2
プログラムの設計への表示的意味論の適用
デノテーショナルセマンティクス(DS)について少し読んだことがあり、型と関数が数学に強く明確にマッピングされているコンピュータープログラムの設計プロセスに非常に興味があります。 DSに基づいたプログラムの設計を詳細に議論するリソースはありますか?私は対象のいくつかの表面的な治療を見てきました。 私はHaskell、Scala、Common Lisp、および少しのSchemeに精通しているので、これらの言語を使用するリソースは大歓迎です。
30 scala  haskell  scheme 

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

6
純粋な関数型プログラミング言語は、割り当てステートメントなしでどのように管理しますか?
有名なSICPを読んだとき、著者は第3章でSchemeに代入文を導入することにかなり消極的であるように見えました。私はテキストを読み、彼らがそう感じる理由を理解します。 Schemeは私が知っている最初の関数型プログラミング言語であるため、割り当てなしで実行できる関数型プログラミング言語(もちろんSchemeではない)があることに驚いています。 本が提供する例を使用してみましょうbank account。割り当てステートメントがない場合、これをどのように行うことができbalanceますか?変数を変更する方法は?いわゆる純粋な関数型言語が存在することを知っているので、私はそう尋ねます。チューリング完全理論によれば、これもできるはずです。 私はC、Java、Pythonを学び、書いたすべてのプログラムで多くの割り当てを使用しました。本当に目を見張るような体験です。これらの関数型プログラミング言語で割り当てがどのように回避されるか、またそれらがこれらの言語に与える深刻な影響(もしあれば)を簡単に説明してくれることを本当に期待しています。 上記の例は次のとおりです。 (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) これによりが変更されましbalanceたset!。私には、クラスメンバーを変更するクラスメソッドによく似ていますbalance。 私が言ったように、私は関数型プログラミング言語に精通していないので、それらについて何か間違ったことを言ったら、気軽に指摘してください。

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があれば、マクロシステムの実装を容易にしますか?

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

2
SchemeではなくClojureでSICPにアプローチする
私はソフトウェアエンジニアリングプログラムの3年生で、SICPを読むというアイデアをアドバイザーに伝えて、このすべてのソフトウェアの背後にある原理をより深く、より根本的に理解するようにしました。 彼は、本を完成するためにSchemeを学ぶのではなく(Lispの現代の方言ほど一般的ではないため)、代わりにClojureで演習を行うことを提案しました。 それはすでに難しい本です。より現代的なClojureで本の練習を試みた場合、それはどのように機能しますか?たとえば、実際のソリューションは見つかりません。Schemeで教えている構文は異なります。
11 clojure  scheme  sicp 

2
LispとSchemeの型
ラケットにはタイプがあります。一見すると、Haskellのタイピングとほとんど同じように見えます。しかし、LispのCLOSはHaskellタイプがカバーするいくつかのスペースをカバーしていますか?非常に厳密なHaskell型とオブジェクト指向言語でのオブジェクトの作成は、漠然と似ています。私がHaskellのクールエイドを飲んだだけで、Lispの道を進むと、動的なタイピングのために頭がおかしくなります。


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