Should We Point The Blame in FAIL With "@"?

Over time, I've found myself not as completely thrilled with this application as I thought I would be. The @ looks kind of... heavy, considering that what it's doing is ultimately kind of a "light" pointer.

I go back and forth on it. A light quoted word does seem nice at times:

func [param] [fail "An error which indicates this line"]
func [param] [fail 'param "An error which indicates the callsite"]
func [param] [fail 'param]  ; just blame the parameter as being bad at callsite
func [param] [fail]  ; just fail.  (blame is <skip>pable, reason is <end>able)

It's interesting to see that things have evolved with @word being the means of capturing a binding, it's now nearly a requirement that we use @word for this purpose.

If we use a quoted word, then that generally (barring strange magic) would imply not capturing the binding... hence not knowing what variable to "blame" at the callsite.

1 Like