Open a740g opened 2 years ago
I think that using RETURN, like other languages do, would make sense if we didn't need it for GOSUBs. I believe this question was raised awhile back (either on Discord or the Forum), and there was an issue with GOSUBs (and backwards compatibility with QBasic).
How about a _RETURN instead, The underscore is used for other keywords.
What if somebody uses $NOPREFIX
? that'd still cause conflict
Thinking just provide an error message that you cannot use both at the same time.
Is it even necessary to modify or use RETURN? What if it was like this?
Function test1 (x As Integer, y As Integer) As Integer test1 = x + y End Function
This is pretty much how it is currently done. But it would still allow you to use the AS keyword to set the return type.
Setting the return type of a function to a custom type would be helpful. Currently only the arguments are allowed to be a custom type. For Example: ` TYPE tVECTOR x AS INTEGER y AS INTEGER END TYPE
FUNCTION add (v AS tVECTOR, a AS INTEGER) AS tVECTOR add.x = v.x + a add.y = v.y + a END FUNCTION
FUNCTION subtract (v AS tVECTOR, a AS INTEGER) AS tVECTOR subtract.x = v.x - a subtract.y = v.y - a END FUNCTION
That way I can nest functions in a single line. For Example.
DIM AS INTEGER scalarAdd, scalarSub DIM AS tVECTOR vIN, vOUT
vOUT = subtract(add(vIN,scalarAdd),scalarSub)`
Sorry If I Hijacked this thread.
Currently function names require type characters. For example:
Function test1% (x As Integer, y As Integer) test1% = x + y End Function
This is ok. However, also allow the following:
Function test1 (x As Integer, y As Integer) As Integer test1% = x + y End Function
Allowing the use of the "return" keyword would be a bonus. Like Function test1 (x As Integer, y As Integer) As Integer Return x + y End Function