問題タブ [rebol3]
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.
module - Rebolモジュール内で単語はどのようにバインドされていますか?
タイプは、または関数module!
よりも保護された名前空間に優れた構造を提供することを理解しています。モジュール内で単語がどのようにバインドされているか — バインドされていない単語に関連するいくつかのエラーに気付きました。object!
'use
'foo
また、Rebol はモジュールにローカルな単語 ( ) とシステム関数の単語 ( )をどのように区別し'set
ますか?
マイナーアップデート、直後:
バインディングの方法を変更するスイッチがあることがわかります。
これは何が違うのですか?デフォルトでこのメソッドを使用する際の落とし穴は何ですか?
reflection - Rebol 3 が、括弧で囲まれた引用符で囲まれた関数パラメーターを尊重しないのはなぜですか?
DO弁はカテゴリPARENのシリーズを使用!優先順位のために、通常、関数を呼び出す前に、基礎となる括弧構造を沸騰させます。
ただし、Rebol 2 では、関数の定義で、コールサイトでの括弧の評価を抑制するように指定することが可能でした。これは、パラメーターに「リテラル ワード」アポストロフィ マークを使用して行いました。
だからあなたはSERIESを渡されます!クラス PAREN! のカテゴリ タイプ...この場合、内部に 3 つの記号要素があります: 1
、+
、2
. これはRebol 3では機能しません:
これはバグですか、それとも意図的な設計上の決定ですか? 回避策はありますか? クォート演算子をコールサイトに配置しても機能しないことに注意してください。これは、クォートされるのはシンボリック ワードquote
であり、その後に括弧が続くためです。単独で評価され、式の最終値になります:-/
networking - Rebol 3 スキームでタイムアウト期間を処理する方法
Rebol 3 で非同期 IO イベント システムを開始する一般的な方法は、ポートで待機することです。タイムアウトをチェックするために、スキームからの値が待機ブロックに追加されます。
ただし、小さな電子メール メッセージのデフォルトのタイムアウトは、数メガバイトのファイルには適切でない場合があります。
これを処理する最良の方法は何ですか? まだデータを受信している場合、不必要にタイムアウトしないように、スクリプトがデータを受信している間に待機リストを更新できますか?
return - return/redo が呼び出しコンテキストで結果関数を評価するのに、ブロックの結果が評価されないのはなぜですか?
return
昨夜、関数からの /redo オプションについて学びました。別の関数を返すことができます。この関数は呼び出し側で呼び出され、同じ位置からエバリュエーターを再度呼び出します。
foo
は 1 つの引数しかとらない関数ですが、2 つの引数を取る関数のように動作します。そうでなければ、呼び出し元が関数を返すことを知っている必要があり、その呼び出し元はそのdo
エバリュエーターを手動で使用する必要があります。
したがって、なしreturn/redo
では、次のようになります。
foo
1 つのパラメーターを消費し、値によって関数を返しました (呼び出されなかったため、インタープリターは先に進みました)。次に、式は 10 に評価されました。return/redo
存在しない場合は、次のように記述する必要があります。
これにより、呼び出し元は、実行する関数を返すことを選択したかどうかを知る (または気にする) 必要がなくなります。また、テール コールの最適化や、リターン機能自体のラッパーの作成などを実行できるため、優れています。return
以下は、メッセージを出力しますが、関数を終了して結果を提供するバリアントです。
しかし、 で動作するのは関数だけではありませんdo
。これが「コールサイトでの DO の必要性をなくす」ための一般的なパターンである場合、なぜこれは何も出力しないのでしょうか?
通常のリターンと同じように、ブロックを値で返しただけです。「テスト」を出力すべきではありませんか?do
それは...ええと、それで何をするかです:
binding - Rebol 2と3のバインディング動作の違いの要約は何ですか?
可変バインディングターゲットRebol2に関する現在の詳細なドキュメント。誰かがRebol2と3の違いの要約を提供できますか?
rebol - RebolREPL複数行ifステートメント
http://www.rebol.com/docs/expert-intro.htmlのように、Rebol REPL(別名コマンドライン)で複数行のwhileステートメントを実行しようとしました。
行ごとに入力しましたが、その後if size [
、次のように表示されます。
これはREPL、入力方法、またはその他の問題ですか?
templates - Rebolの「reword」機能とは何ですか?どのように使用しますか?
今日誰かがそのreword
機能について言及しているのを見ましたが、そのドキュメントは非常に簡単です。シェルスクリプト環境変数の置換、または正規表現の置換のように見えますが、異なります。この関数をどのように使用すればよいですか。また、どのような落とし穴に遭遇するのでしょうか。
opengl-es - Raspberry Pi での 3D グラフィックスの Red/System バインディング
Raspberry Pi で Red/System プログラミングを始めようとしている人にとって、3D レンダリングのために GPU にアクセスする最良の方法は何ですか? この方法は、Raspberry Pi の Rebol3 でも使用できますか?
rebol - rebol3 の場合: Linux でネイティブ拡張機能を使い始めたい。hello-world はどのように記述すればよいですか?
私は約 100 行の C の書き方を知っていますが、Rebol のようなより大きなソースの読み方や整理方法は知りません。どこかにホストキットとdllのチュートリアルがありましたが、R3が静的にリンクされているようです。だから、どこを見たらいいのかわからない。
値を取得して別の値を返すネイティブをどのように作成すればよいでしょうか? ソースのどこに置く?Cで何かを作成したことをGCに伝えるなど、何に従うべきですか?
また、R3 を他のプログラムに組み込んで、Python や Node.js から呼び出すにはどうすればよいですか? Python/Node部分は後ほどお願いします。しかし、学習メインは同様の方法で R3 にアクセスする必要があります。dll を意味します。また、そのような ffi には、起動/シャットダウンなどの典型的なフックがいくつかありますか?
[編集: 言い忘れました: Rebol 3 用です。]