Am 17.03.20 um 21:50 schrieb Allin Cottrell:
On Mon, 16 Mar 2020, Riccardo (Jack) Lucchetti wrote:
> On Mon, 16 Mar 2020, Allin Cottrell wrote:
>
>> On Mon, 16 Mar 2020, Sven Schreiber wrote:
>>
>>> Hi Artur, I think your example could be much shorter:
>>>
>>> <hansl>
>>> function scalar printsth(void)
>>> print "hey"
>>> return 1
>>> end function
>>>
>>> if printsth() # does not spit out "hey"
>>> endif
>>> </hansl>
>>>
>>> Frankly, don't know if it's by design, but could be I guess.
>>
>> The idea is that if printsth() is called in its own right we want to
>> see anything it might print, but if it's called under "if" then all
>> we're interested in is its return value. From that point of view,
>> while the "if-block" above is entered OK (which can be verified by
>> putting a print statement within it) it's empty and so nothing is
>> printed.
>>
>> Admittedly one could make a case for showing printed output, if any,
>> from a function call regardless of whether it serves as a boolean
>> switch. So far as I know that's not an issue that has been raised to
>> date, but it's open for discussion.
>
> FWIW, the C translation of Sven's script
>
> <C>
> #include<stdio.h>
> int printsth() { printf("Hey\n"); return 1; }
> int main() { if(printsth()){ } }
> </C>
>
> does indeed print "Hey".
And now in git hansl works that way too.
Pretty cool! Works excellent!
Artur