Bienvenue invité ( Connexion | Inscription )
![]() ![]()  | 
	
			
			  5 Jul 2023, 19:09
			
				 Message
					#1
					
				
			 
		 | 
	|
| 
        	
				
        			 Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 486 Inscrit : 29 Aug 2002 Membre no 3 340  | 
       
			
			 
				Ça faisait longtemps ! 
			
			
					
		Je n'expose pas le contexte dans lequel j'ai trouvé cet exemple, qui affiche une étoile, je vais juste le décortiquer rapidement. CODE 	  ' *' [1 + V∘.≤-V←B,0,⌽B←A,-A←⌽⍳4] * * ** ** *** *** **** **** ***************** *************** ************* *********** ********* *********** ************* *************** ***************** **** **** *** *** ** ** * * La clé de la compréhension du code est juste un produit cartésien : Prenez un vecteur de valeurs numériques, placez le verticalement, puis horizontalement, et remplissez le tableau avec une opération de ligne à colonne, comme pour construire une table de multiplication. Ici le vecteur est : Code       V 4 3 2 1 ¯4 ¯3 ¯2 ¯1 0 ¯1 ¯2 ¯3 ¯4 1 2 3 4 Il y a des valeurs négatives avec le signe négatif APL en exposant à gauche du nombre Et l'opération de ligne à colonne est, pour tous les couples de coordonnées valides (i, j), V(i) <= -V(j) ce qui s'écrit ainsi en APL : CODE 	  V∘.≤-V 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 Ce tableau va servir à indicer une chaîne constituée d'un espace et d'un astérisque ' *', mais comme les indices commencent à 1, il faut ajouter 1 partout. Et le résultat a la même forme que le tableau d'indice. Revenons un peu sur la construction du vecteur V : Code       V 4 3 2 1 ¯4 ¯3 ¯2 ¯1 0 ¯1 ¯2 ¯3 ¯4 1 2 3 4 Il est composé de la génération des indices de 1 à 4, inversés par l'opérateur ⌽, qu'on range dans la variable A : Code       A←⌽⍳4 A 4 3 2 1 On lui ajoute derrière, sa propre négation, et le tout est rangé dans B: Code       B←A,-A B 4 3 2 1 ¯4 ¯3 ¯2 ¯1 Enfin V est construit comme B, suivi de 0, suivi du miroir de B Code        V←B,0,⌽B V 4 3 2 1 ¯4 ¯3 ¯2 ¯1 0 ¯1 ¯2 ¯3 ¯4 1 2 3 4 Et finalement, l'indiçage de la petite chaîne par le produit cartésien de la relation V <= -V: Code      ' *'[1 + V∘.≤-V] 
				* * ** ** *** *** **** **** ***************** *************** ************* *********** ********* *********** ************* *************** ***************** **** **** *** *** ** ** * * Ce message a été modifié par Jaypee - 6 Jul 2023, 07:45.  | 
	
| 
			
			 | 
	|
![]() ![]()  | 
	
| Nous sommes le : 4th November 2025 - 05:40 |