You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Matthias Boehm (JIRA)" <ji...@apache.org> on 2017/03/01 01:41:46 UTC

[jira] [Commented] (SYSTEMML-259) If no return type specified, DML/PyDML function calls require an lvalue

    [ https://issues.apache.org/jira/browse/SYSTEMML-259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15889290#comment-15889290 ] 

Matthias Boehm commented on SYSTEMML-259:
-----------------------------------------

just explain where this is coming from: originally our dml-bodied functions were meant to be side-effect-free, i.e., no prints and writes; without side effects, there is no point in having functions without returns.

Anyway, I also think that this is a useful extension. The required changes should be fairly local to the language-level.

> If no return type specified, DML/PyDML function calls require an lvalue
> -----------------------------------------------------------------------
>
>                 Key: SYSTEMML-259
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-259
>             Project: SystemML
>          Issue Type: Improvement
>          Components: APIs
>            Reporter: Deron Eriksson
>            Assignee: Deron Eriksson
>            Priority: Minor
>
> If a function is defined in DML or PyDML with no return type, and then this function is called, it requires an lvalue variable to be assigned the value returned from the function, even though no value is returned from the function.
> DML Example (assigning to z is required):
> {code}hello = function() {
> 	print('hi')
> }
> z = hello(){code}
> PyDML Example (assigning to z is required):
> {code}def hello():
> 	print('hi')
> z = hello(){code}
> DML Example (error: "function call needs to have lvalue (Quickfix: change it to 'tmpVar = hello(...)')"):
> {code}hello = function() {
> 	print('hi')
> }
> hello(){code}
> PyDML Example(error: "function call needs to have lvalue (Quickfix: change it to 'tmpVar = hello(...)')"):
> {code}def hello():
> 	print('hi')
> hello(){code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)