dasylang / dasy

a lisp built on top of vyper
49 stars 2 forks source link

Implement Named Argument Passing #6

Open z80dev opened 1 year ago

z80dev commented 1 year ago

Implement as a macro that just does syntax transformation

(defn foo [:address a b :uint256 x y] :internal :uint256
  (return (+ y (* x 4)))

could then be called with a dict obj of key-value pairs of named arguments and their values

(foo addr1 addr2 10 20)

(foo #{a addr1 b addr2 x 10 y 20})

;; can indent for clarity
(foo #{a addr1 
       b addr2 
       x 10 
       y 20})

alternative syntaxes could be

(foo @a addr1 @b addr2 @x 10 @y 20)

(foo {a addr1} {b addr2} {x 10} {y 20})
z80dev commented 1 year ago

why do you want this @z80dev❓🤨 kinda dumb imo