Abstrasy
2.0 (beta)

Piste: • let!
 

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