問題タブ [r7rs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scheme - R7RS で複数の値を返すプロシージャを定義する方法
TL;DR:foobar
として使用できるプロシージャを定義する方法(let-values ((foo bar) (foobar)) ...)
。
R7RS では、2 つの数を割った商と剰余を計算する 2 つの手続きfloor/
とが定義されています。これらの手順は(または)でのみ使用できるため、これは非常に難しいと思います。さらに重要な問題は、複数の値を返す独自のプロシージャを定義する方法が見つからないことです。truncate
let-values
let*-values
誰かアイデアはありますか?
ノート:
floor/
およびの定義は、レポートtruncate/
の 37 ページの上部にあります。- 私は幸運にも R7RS 準拠のインタープリターやコンパイラーをうまくインストールできなかったので、上記のアイデアをまだテストしていません。機会があれば、必要に応じてこの質問を更新します。
scheme - Scheme の「filter」フォームがリスト要素を「順番に」処理しないのはなぜですか?
(filter procedure list)
procedure
の各要素に適用されlist
、true を返す要素のみを含む新しいリストをprocedure
返します。
( R. Kent Dybvig The Scheme Programming Language ) (オンライン)
この説明から明らかでないことは、返されるリスト内の要素が と同じ順序で発生する一方で、list
の呼び出しの順序がprocedure
R6RS で指定されていないことです。(ただし、Racket は「最初から最後まで各要素に」という手順を適用します)
最近アクティブな回答filterfunc
では、引数リスト
を順番に
処理する必要があることが言及されています。この関数はどのように記述すればよいでしょうか?
問題の説明を含む回答が提供されます。