Abstrasy
2.0 (beta)

let!

let! est un opérateur d'affectation. Il fournit le même résultat que set! mais en retournant directement la valeur affectée.


La forme générale de let! est la suivante:

(let! <ref> [<valeur>])


Employer sans valeur, comme dans le cas de set!, la cellule reçoit la valeur par défaut (nothing). Mais cette valeur est directement retournée par l'opérateur.

(define '$x 10)
(display (let! $x))

⇒

(nothing)

Si une valeur est indiquée, la cellule ref reçoit la valeur, mais cette valeur est également retournée. Ceci est très intéressant dans le cadre de l'utilisation de boucles.

(define '$x 10)
(define '$i)
(while{let! $i (fetch-and-decr! $x)} {display $i})

⇒

10
9
8
7
6
5
4
3
2
1

On peut donc affecter une variable tout en testant une condition relative à sa valeur dans un style plus concis.

De plus, let! est un opérateur atomique, il peut être utilisé d'une manière sûre dans un contexte concurrent.

refs/lang/opindex/let.txt · Dernière modification: 2020/11/14 19:45 par admin

Retour
Table des matières

 

     
Licence Creative Commons
   Get abstrasy at SourceForge.net. Fast, secure and Free Open Source software downloads