2009-08-24 10 views

答えて

4

可変数の引数を持つ関数を定義することはできません。このRebolメーリングリストのスレッドhttp://www.rebol.org/ml-display-thread.r?m=rmlDTXBの最後のメッセージには説明があります。

も行う関数は単一の引数を取ります

>> ? do 
USAGE: 
    DO value /args arg /next 

DESCRIPTION: 
    Evaluates a block, file, URL, function, word, or any other value. 
    DO is a native value. 

ARGUMENTS: 
    value -- Normally a file name, URL, or block (Type: any) 

REFINEMENTS: 
    /args -- If value is a script, this will set its system/script/args 
     arg -- Args passed to a script. Normally a string. (Type: any) 
    /next -- Do next expression only. Return block with result and new position. 
2

あなたは、REBOLで可変長引数の関数があることを、DOの関数である例正しいです。 R2では、MAKE機能さえバリデーションです。それにもかかわらず、関数仕様の方言では、独自の関数を定義することはできません。そのような機能は計画されていません。

+0

Rebolは他の言語よりも表現力が高いと思われますので、そうすることができないか、オプションのパラメータを持つことができなくなります。 C#4は少なくともこれを実現しましたhttp://davidhayden.com/blog/dave/archive/2009/06/02/CSharp4OptionalNamedParameters.aspx 私はrebolのデザイナーではありません、私はただのユーザーですが、ユーザーとして私は本当に生産的になる必要があることを知っている、これは私も楽しみにしているものの一つです。 少なくとも、独自の構文処理を構築するためにコンソールをフックすることは可能ですが、どちらも可能ではありません。 –

+0

コンソールはReolの宝石ですが、WordPressはプログラミング言語ではありませんが、原則は鍵ですが、WordPressを成功に導くいくつかのフックで簡単にカスタマイズすることはできません。 –

+1

REBOL f 1 2 3との比較は誤りです。 C f(1, 2, 3)。実際にはC言語と同様に複雑な構文を使用する場合は、REBOLで何をしたい場合でも、ブロックに入れた引数の数にかかわらず、REBOLでは実際には単なる呼び出しであるf [1 2 3]を使用することができます。 この構文を使用すると、順序、数量、その他の「引数プロパティ」のいずれも制限されていないため、実際にはCよりも表現力がはるかに高いことがわかります。 – Ladislav

関連する問題