Dlaczego Rebol 3 nie honoruje cytowanych parametrów funkcji, które są nawiasami?
Dialekt DO używa serii kategorii PAREN! dla uzyskania pierwszeństwa, i zwykle wyodrębnia strukturę nawiasów pod spodem przed wywołaniem funkcji.
Jednakże w Rebol 2 było możliwe określenie w definicji funkcji, że chcesz, aby pomijała ona ocenę nawiasów w miejscu wywołania. Zrobiłeś to, używając apostrofu „dosłowne słowo” na parametrze:
evaluated: func [param] [probe param]
non-evaluated: func ['param] [probe param]
>> evaluated (1 + 2)
3
>> non-evaluated (1 + 2)
(1 + 2)
Więc zdałeś serię! typ kategorii, klasy PAREN! ... w tym przypadku z trzema symbolicznymi elementami wewnątrz:1
, +
, 2
. To nie działa w Rebol 3:
>> non-evaluated (1 + 2)
3
Czy jest to błąd lub celowa decyzja projektowa? Czy jest w pobliżu praca? Zauważ, że umieszczenie operatora cytatu w callsite nie zadziała, ponieważ jest to słowo symbolicznequote
to się cytuje, a potem paren! jest oceniany samodzielnie, aby stać się ostateczną wartością wyrażenia: - /
>> non-evaluated quote (1 + 2)
quote
== 3