Skip to content

Instantly share code, notes, and snippets.

@GiuseppeChillemi
Last active April 23, 2025 14:52
Show Gist options
  • Save GiuseppeChillemi/e489a6c5dfa143c3558d04d761cadf82 to your computer and use it in GitHub Desktop.
Save GiuseppeChillemi/e489a6c5dfa143c3558d04d761cadf82 to your computer and use it in GitHub Desktop.
args-test.r
;Red []
Rebol [
Title: "Args Test"
Description: "Test the working of ARGS"
]
;---- Z is here for STUB ----
z: %testfile.txt
test: func [a aa 'a-lit 'aa-lit :a-get :aa-get] [
Prin "IN-LINE: g ARG: a - PROBE a >> " probe a
Prin "IN-LINE: g ARG: a - PROBE :a >> " probe :a
Prin "IN-LINE: :g ARG: aa - PROBE aa >> " probe aa
Prin "IN-LINE: :g ARG: :aa - PROBE :aa >> " probe :aa
Prin "IN-LINE: g ARG: 'a-lit - PROBE a-lit >> " probe a-lit
Prin "IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> " probe :a-lit
Prin "IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> " probe aa-lit
Prin "IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> " probe :aa-lit
Prin "IN-LINE: g ARG: :a-get - PROBE a-get >> " probe a-get
Prin "IN-LINE: g ARG: :a-get - PROBE :a-get >> " probe :a-get
Prin "IN-LINE: :g ARG: :aa-get - PROBE aa-get >> " probe aa-get
Prin "IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> " probe :aa-get
]
Print "--- Function ---"
g: func [][1 + 1]
print rejoin [mold :g lf]
test g :g g :g g :g
print ""
Print "--- Quoted ---"
g: quote (3 + 3)
print rejoin [mold :g lf]
test g :g g :g g :g
print ""
Print "--- Composed function ---"
f: func [][1 + 1]
g: compose [(:f)]
print rejoin [mold :g lf]
test g/1 :g/1 g/1 :g/1 g/1 :g/1
print ""
halt
comment [
;----------------- RESULTS------------------------
;----------------- Rebol2 --------------------
--- Function ---
func [][1 + 1]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> func [][1 + 1]
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> 2
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> func [][1 + 1]
IN-LINE: g ARG: :a-get - PROBE a-get >> 2
IN-LINE: g ARG: :a-get - PROBE :a-get >> func [][1 + 1]
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Quoted ---
(3 + 3)
IN-LINE: g ARG: a - PROBE a >> (3 + 3)
IN-LINE: g ARG: a - PROBE :a >> (3 + 3)
IN-LINE: :g ARG: aa - PROBE aa >> (3 + 3)
IN-LINE: :g ARG: :aa - PROBE :aa >> (3 + 3)
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> (3 + 3)
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> (3 + 3)
IN-LINE: g ARG: :a-get - PROBE a-get >> (3 + 3)
IN-LINE: g ARG: :a-get - PROBE :a-get >> (3 + 3)
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Composed function ---
[func [][1 + 1]]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> 2
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g/1
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g/1
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> :g/1
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> :g/1
IN-LINE: g ARG: :a-get - PROBE a-get >> g/1
IN-LINE: g ARG: :a-get - PROBE :a-get >> g/1
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g/1
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g/1
;----------------- Red --------------------
--- Function ---
func [][1 + 1]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> func [][1 + 1]
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> 2
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> func [][1 + 1]
IN-LINE: g ARG: :a-get - PROBE a-get >> g
IN-LINE: g ARG: :a-get - PROBE :a-get >> g
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Quoted ---
(3 + 3)
IN-LINE: g ARG: a - PROBE a >> (3 + 3)
IN-LINE: g ARG: a - PROBE :a >> (3 + 3)
IN-LINE: :g ARG: aa - PROBE aa >> (3 + 3)
IN-LINE: :g ARG: :aa - PROBE :aa >> (3 + 3)
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> (3 + 3)
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> (3 + 3)
IN-LINE: g ARG: :a-get - PROBE a-get >> g
IN-LINE: g ARG: :a-get - PROBE :a-get >> g
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Composed function ---
[func [][1 + 1]]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> func [][1 + 1]
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g/1
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g/1
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> 2
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> func [][1 + 1]
IN-LINE: g ARG: :a-get - PROBE a-get >> g/1
IN-LINE: g ARG: :a-get - PROBE :a-get >> g/1
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g/1
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g/1
;----------------- Rebol3 --------------------
--- Function ---
make function! [[][1 + 1]]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> make function! [[][1 + 1]]
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> 2
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> make function! [[][1 + 1]]
IN-LINE: g ARG: :a-get - PROBE a-get >> g
IN-LINE: g ARG: :a-get - PROBE :a-get >> g
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Quoted ---
(3 + 3)
IN-LINE: g ARG: a - PROBE a >> (3 + 3)
IN-LINE: g ARG: a - PROBE :a >> (3 + 3)
IN-LINE: :g ARG: aa - PROBE aa >> (3 + 3)
IN-LINE: :g ARG: :aa - PROBE :aa >> (3 + 3)
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> (3 + 3)
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> (3 + 3)
IN-LINE: g ARG: :a-get - PROBE a-get >> g
IN-LINE: g ARG: :a-get - PROBE :a-get >> g
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g
--- Composed function ---
[make function! [[][1 + 1]]]
IN-LINE: g ARG: a - PROBE a >> 2
IN-LINE: g ARG: a - PROBE :a >> 2
IN-LINE: :g ARG: aa - PROBE aa >> 2
IN-LINE: :g ARG: :aa - PROBE :aa >> make function! [[][1 + 1]]
IN-LINE: g ARG: 'a-lit - PROBE a-lit >> g/1
IN-LINE: g ARG: 'a-lit - PROBE :a-lit >> g/1
IN-LINE: :g ARG: 'aa-lit - PROBE a-lit >> 2
IN-LINE: :g ARG: 'aa-lit - PROBE :a-lit >> make function! [[][1 + 1]]
IN-LINE: g ARG: :a-get - PROBE a-get >> g/1
IN-LINE: g ARG: :a-get - PROBE :a-get >> g/1
IN-LINE: :g ARG: :aa-get - PROBE aa-get >> :g/1
IN-LINE: :g ARG: :aa-get - PROBE :aa-get >> :g/1
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment