2016-05-24 18 views
0

ich einige Test-Helferfunktionen Schreiben der Ausgang sinnvoller zu machen:Ist es möglich, in Rascal eigene Operatoren zu definieren?

bool tstEq(first, second) { 
    if(first == second) 
    return true; 
    else { 
    println("<first> was not equal to <second>"); 
    return false; 
    } 
} 

Ist es möglich, so etwas zu tun?

bool ===(first, second) = tstEq(first, second); 

Nutzung:

test bool myTest() = 1 === 2 

, die in etwa so führen würde:

rascal>:test 
1 was not equal to 2 
bool: false 
+0

Es gibt oder gab ein Vorschlag, die Schurken-Testfunktionen so etwas automatisch zu machen. –

Antwort

1

Eine kurze Antwort: nein. Ich stimme völlig zu, dass dies bequem sein kann (aber auch zu weniger lesbarem Code führen kann).

Angesichts der großen Liste von Themen, die wir zuerst ansprechen wollen, ist es anders als dass ein solches Feature in naher Zukunft zu Rascal kommen wird.

+0

Ich werde es dann als "normale" Funktion verwenden. Einige Sprachen analysieren Funktionen, die mit "Symbolen" beginnen (! @ # $%^& *) Und auch als Infix verwendbar sind. Oder benutze Konstrukte wie das Platzieren einer Funktion zwischen Backticks (\) als Infix: 'first \' tstEq \ 'second' – Tim