felipecrv commented on code in PR #42106:
URL: https://github.com/apache/arrow/pull/42106#discussion_r1638464838
##########
cpp/src/arrow/compute/expression.h:
##########
@@ -118,6 +124,12 @@ class ARROW_EXPORT Expression {
// XXX someday
// NullGeneralization::type nullable() const;
+ /// Whether the entire expression (including all its subexpressions) is
Review Comment:
> So my question is, can we assume that for every coming special form in
arrow, there exists a function "companion" of it? For some common special forms
like "and", "or", "if_else", "case_when", there already are. For other special
forms in Lisp, like "quote", "let", "defunc", they don't have corresponding
"function"s, but those special forms themselves are more like fundamental
parts, like defining variable and assignments, for a Turing-complete language,
which I believe arrow won't need to have. So my so-far conclusion is, yes, we
can assume it.
Special forms in Arrow won't be many and we don't have to store them in a
table like we have to do for functions. My use of LISP for inspiration might
have led you into a path of over-engineering. We don't need the full generality
of LISP or languages where users can define functions with call-by-name
parameters. Think more C-like (strict evaluation) and less LISP-like (quote,
let, defunc...) because that is overkill. Hence my insistence on making special
forms a well-defined set of C++ classes.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]