私はいくつかのCommon LispコードをSchemeコードに翻訳しようとしています。 Common Lispのコードはdeftype
です。 Schemeのdeftype
はCommon Lispのdeftype
と同じですか?あなたはCommon Lispのdeftype
をどのようにSchemeの同等のコードに変換しますか?Common LispとSchemeの間の相違点
3
A
答えて
1
Common Lisp deftype
には、同等のSchemeに相当するものはありません。手作業で型定義を翻訳するか、システムで利用可能なSchemeレコードライブラリに関して、deftype
マクロを記述する必要があります。
ベア・スキームには、ユーザー定義型はまったくありません。 R5RSシステムでは、関連するSRFI(例:SRFI-9 (Record types)、SRFI-57 Records、SRFI-99 ERR5RS records)を検索し、特定のSchemeシステムが実装するSRFIと言語拡張を確認する必要があります。スキームシステムは、一般に、最小限のスキーム標準を超えたものの実装ではあまり一貫していません。 R6RSスキームにはレコードin its standard libraryがあります。
3
Antonによると、Common Lisp deftype
に相当する正確なスキームはありません。型指定子がCommon Lispにどのように記述できるかについては、CLHS:Type Specifiersを参照してください。これらは、宣言、配列型指定、構造体とCLOSスロットの指定、汎用関数の引数の特殊化、およびonとonで使用されます。これをSchemeに移植することは、一般的に大きなチャレンジになります。あなたの最大の希望は、deftype
で定義されているタイプが些細なことしか使われていないということです。
関連する問題
- 1. ソースコードlisp(Common Lisp、Scheme、Clojure)の美人
- 2. Scheme/Common Lisp/Clojureの自動微分ライブラリ
- 3. 共通lispとemacs lispの構造の相違点
- 4. SchemeのデフォルトオブジェクトのCommon Lispに相当するものは何ですか?
- 5. LispとSchemeのWebSocket用ライブラリ?
- 6. Xcodeのビルド設定とScheme環境変数の相違点
- 7. SchemeまたはCommon Lispのニュートン平方根法
- 8. Scheme lisp consとリスト
- 9. Common Lispのクラスイントロスペクション
- 10. 匿名関数を使用した反復Common Lisp vs. Scheme
- 11. Scheme call-with-current-continuationをCommon Lispに変換しますか?
- 12. は.ToString間の相違点()と+「」
- 13. Python - Pandas - タイムスタンプと期間の相違点
- 14. Common Lisp用のレクサーとパーサージェネレータ
- 15. importとconstとの相違点とcommonjsでの相違点
- 16. IE標準、相違点および相違点の相違点
- 17. =と:=の相違点
- 18. Common Lispの "flet"と "labels"の違いは何ですか?
- 19. PHPUnitとPHPSpecの相違点と相違点
- 20. Common Lisp Memory Issues
- 21. Common Lisp用ベクターグラフィックスライブラリ
- 22. ステップEval Common Lisp
- 23. Common Lispパッケージとモジュール管理
- 24. CBUUIDとNSUUIDの相違点
- 25. NSTimeZoneとGMTの相違点
- 26. ListViewとArrayListの相違点
- 27. pictureBox.Update()とpictureBox.Refresh()の相違点
- 28. ApplicationContextInitializerとBeanFactoryPostProcessorの相違点
- 29. システムとshell_execの相違点
- 30. AsyncSocketとAsyncUdpSocketの相違点
あなたは 'defstruct'を考えていますか? –
私は何かを考えていませんでした。単純なレコードタイプだけが必要な場合は、配列ベースのレコードのマクロを30分でまとめることができます。 –