Si trova nella palette Programming/synchronization, restituisce true solo la prima volta che viene chiamato.

Io lo utilizzo spesso, soprattutto nelle “Functional Global Variables”, perchè mi permette di eseguire il codice di inizializzazione all’interno di un loop, beneficiando degli shift register.

Come si vede nell’esempio sopra, la prima volta che viene eseguito il vi (First Call) viene eseguita l’inizializzazione che in questo caso mi restituisce una reference,  che passo nello shift register per le prossime chiamate del vi, dove il First call restituirà sempre FALSE.

Se non inizializzo lo shift register, rimane in memoria il dato registrato, e rimane lì fintanto che non lo modifico (in questo caso solo su first call? avviene la scrittura sullo shift register, dopo il case FALSE, passa direttamente il dato memorizzato.

Altro utilizzo è nel settare correttamente Ignore Previous nelle OCCURRENCE, in modo che sia true (ignori il precedente) al primo ciclo e poi passi a false (tieni conto del precedente) nei loop successivi.