FWIW, running the same code in a Dyalog APL Jupyter notebook gives similar
results :
Quid des fonctions et lambdas dyadiques ?
```APL
⍝ What about niladic functions and lambdas ?
⍝ Example of a numeric timestamp generator
⍝ Simplifying assumptions : we want to measure about a few minutes
⍝ and not around midnight...
⍝ Start afresh
)clear
```
<pre class="language-APL">clear ws
</pre>
```APL
∇ R ← NTS
R ← 24 60 60 1000 ⊥ ¯4↑⎕TS
∇
```
```APL
⍝ Try it
T1 ← NTS
⍝ Wait a few seconds
⍝ )host sleep 2
⎕DL 2
T2 ← NTS
⍞←'Spent Time : ',⍕(T2-T1)÷1000
```
<pre class="language-APL">Spent Time : 2.51
</pre>
```APL
⍝ Lambda
nts ← {24 60 60 1000 ⊥ ¯4↑⎕TS}
⍝ Try it
t1 ← nts
⍝ Wait a few seconds
⍝ )host sleep 2
⎕DL 2
t2 ← nts
⍞←'Spent time : ',⍕(t2-t1)÷1000
```
<pre class="language-APL">Spent time : 0
</pre>
Le jeudi 08 juin 2023 à 17:37 +0200, Emmanuel Charpentier a écrit :
> Dear list,
> It seems that niladic lambdas are treated like constants.
> Rough and naïve illustration : pasting this :
> ```
⍝ What about niladic functions and lambdas ?
> ⍝ Example of a numeric timestamp generator
> ⍝ Simplifying assumptions : we want to measure about a few minutes
> ⍝ and not around midnight...
> ⍝ Start afresh
> )clear
> ⍝ Function
> ∇ R ← NTS
> R ← 24 60 60 1000 ⊥ ¯4↑⎕TS
> ∇
> ⍝ Try it
> T1 ← NTS
> ⍝ Wait a few seconds
> )host sleep 2
> T2 ← NTS
> ⍞←'Spent Time : ',⍕(T2-T1)÷1000
> ⍝ Lambda
> nts ← {24 60 60 1000 ⊥ ¯4↑⎕TS}
> ⍝ Try it
> t1 ← nts
> ⍝ Wait a few seconds
> )host sleep 2
> t2 ← nts
> ⍞←'Spent time : ',⍕(t2-t1)÷1000
```
in a `gnu-apl` buffer gives :
> ```
CLEAR WS
>
> 0
> Spent Time : 2.002
> 0
> Spent time : 0
```
Why ?
> Bonus question : what causes the impression of the `0`s ?
> Sincerely,
> -- Emmanuel Charpentier