2009-08-24 1 views

답변

4

가변 개수의 인수로 함수를 정의 할 수 없습니다. 이 Rebol Mailing List 스레드의 마지막 메시지 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 기능이있는 예를 들어 있다는 것을, 맞다 :

는 또한 DO 함수는 하나의 인자를합니다. R2에서는 MAKE 기능조차도 가변적입니다. 그럼에도 불구하고, 함수 스펙 언어는 자신 만의 가변 함수를 정의 할 수 없으며 그러한 기능은 계획되지 않았습니다.

+0

Rebol은 다른 언어보다 "표현력이 풍부"하기 때문에 그렇게 할 수 없거나 선택적 매개 변수를 사용하지 못하게됩니다. 지금 C# 4가 최소한이 사실을 깨달았습니다 http://davidhayden.com/blog/dave/archive/2009/06/02/CSharp4OptionalNamedParameters.aspx 저는 리볼의 디자이너가 아닙니다. 사용자로서 나는 정말로 내가 생산적이어야 할 것을 알고 이것이 내가 고대하는 것들 중의 하나이다. 적어도 우리 고유의 구문 처리를 만들기 위해 콘솔을 후크 할 수 있어야하지만 그럴 수도 없습니다. –

+0

콘솔은 리볼의 보석입니다. 워드 프레스를 성공으로 만드는 몇 가지 갈고리로 쉽게 사용자 정의 할 수없는 것도 유감입니다. 워드 프레스는 프로그래밍 언어가 아니지만 원칙이 핵심입니다. –

+1

예를 들어 REBOL f 1 2 3을 다음과 비교하는 것은 에러입니다. C f(1, 2, 3). 실제로 C에서와 비슷한 복잡한 구문을 사용하는 경우 f [1 2 3]을 사용하여 REBOL에서 원하는 모든 작업을 수행 할 수 있습니다.이 블록은 REBOL에서 블록에 몇 개의 "인수"가 있더라도 실제로는 단항 호출입니다. 이 구문을 사용하면 순서, 수량 또는 다른 "인수 속성"이 제한되어 있지 않으므로 C보다 훨씬 높은 표현력을 쉽게 찾을 수 있습니다. – Ladislav