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]

Reply via email to