Wishlist - V4.0

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
comtois
Messages : 5190
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Cette wichlist avec celle du forum anglais, ça me fait penser à la lettre au père noël que les enfants écrivent à l'approche des fêtes de fin d'année :lol:

Va falloir que Fred trouve une bande de petits lutins pour l'aider à réaliser
les souhaits de tout le monde :)

J'ai été sage toute l'année ,et si je fais la vaisselle jusqu'à noël vous croyez que je peux ajouter mes voeux en matière de 3D ? :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Dobro : Et en passant par une structure, on peut obteni assez facilement le même effet non ? Je sais c'est une "rustine" mais le temps qu'elle casse le moteur aura cassé :p
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Par rapport au ProcedureReturn avec plusieurs valeurs, je pense que l'idéal serait une solution comme dans python par ex.
Pour çà il faudrait et serait génial que Purebasic gère un nouveau type de données : les suites.

Un example sera plus parlant (mon voeux serait donc ce source fonctionne réellement) :

Code : Tout sélectionner

MaSuite1.LIST = [0,1,2,3,4]
MaSuite2.LIST = [5,6,7,8,9]

Debug MaSuite1 ; output: [0, 1, 2, 3, 4]

MaSuite1 + MaSuite2

Debug MaSuite1 ; output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Debug Len(MaSuite) ; output: 10

Debug MaSuite[5] ; output: 5

MaSuite3.LIST = [ "MaSuite2", MaSuite2 ]

Debug MaSuite3 ; output: [ "MaSuite2", [5, 6, 7, 8, 9] ]

MaSuite3[0] + "_"

Debug MaSuite3 ; output: [ "MaSuite2_", [5, 6, 7, 8, 9] ]

MaSuite3[1][0] = 10

Debug MaSuite3 ; output: [ "MaSuite2_", [10, 6, 7, 8, 9] ]

;------------------

Procedure.LIST Digits()
  
  result.LIST = ["0","1","2","3","4","5","6","7","8","9"]
  
  ProcedureReturn result
  
EndProcedure

Procedure.LIST HexDigits()
  
  result.LIST = Digits() + ["A","B","C","D","E","F"]
  
  ProcedureReturn result
  
EndProcedure

a.LIST = HexDigits()

Debug a ; output: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]

For i in a
  Debug i ; output: 0 puis 1 puis 2, etc.
Next

For i=0 To Len(a)
  Debug a[i] ; ouput: idem
Next

For i=0 To Len(Digits())
  Debug Digits()[i] ; ouput: idem
Next
Dernière modification par Flype le lun. 10/oct./2005 20:16, modifié 1 fois.
Image
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Ca c'est une sacrée demande !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Dobro : Et en passant par une structure, on peut obteni assez facilement le même effet non ? Je sais c'est une "rustine" mais le temps qu'elle casse le moteur aura cassé :p
oui ! c'est vrai !! en attendant moi j'utilise tous simplement des globales ! :D

mais c'est quand meme moins elegant :D

@Flype
les listes c'est bien (bien que je maitrise pas vraiment le sujet :lol: )

mais d'un point de vue syntaxe
faire un truc comme a,b,c$= procedure(t,u,f.s,u,i,o,p) me parrait tres tres clair !
pas toi ? :D
surtout que ça ne doit pas changer grand chose dans le fonctionnement du Pure , car il sagit en fait de transferer le contenu de variables local dans des variables globale en retour !

mais je suis d'accord avec le fait d'avoir un type liste comme tu le site
comme dans le LISP , le LOGO :D !
pour moi plus y en as mieux c'est ! :D
tu ne me verra pas denigrer une idées qui apporte un plus !
du moment que ça ne complique pas la comprehention du PureBasic :D

j'ai mis du temps a utiliser les structures , et pourtant maintenant
j'adore ça ! :D
LeCyb
Messages : 273
Inscription : dim. 26/déc./2004 20:49

Message par LeCyb »

C'est peut-être stupide ce que je vais dire mais pourquoi ne pas utiliser une structure et renvoyer un pointeur ?

Si je ne m'abuse cela permet de renvoyer plusieurs valeurs de types différents, chaînes comprises.

Par contre ça n'arrange pas le truc de Flype :roll:
Vive le thread-safe !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Moi, j'utilise une liste chainée.
Comme ça, tu n'as même pas à renvoyer de pointeur :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

C'est peut-être stupide ce que je vais dire mais pourquoi ne pas utiliser une structure et renvoyer un pointeur ?
il y a toujours moyen d'eviter d'utiliser tel ou tel avantage !
des que quelqu'un propose un idée , t'as toujours quelqu'un d'autre pour lui montrer comment s'en passer ! :?

on peut aussi se passer du purebasic , et allez a la peche !

c'est a croire que vous ne lisez pas les post avant de repondre !!
le but de ce topic est de demander des chose utile et pratique !

pour te repondre , tu trouve qu'utiliser des pointeur et des structure soit plus simple et plus rapide , et plus court a ecrire que juste

Code : Tout sélectionner

 a,b,c$= procedure(t,u,f.s,u,i,o,p)  

je ne crache pas sur les structures , et leur differentes utilisations , mais ici on demande quelque chose qui n'existe pas !!

or le passage de multiparametre en entrée existe , mais pas le passage multi-parametres en sortie d'une procedure !!


je vais meme t'avouer une chose !
je n'utilise quasiment jamais les procedures a cause de ça !
perso j'utilise les globales , et les sous-programme avec "return" !!
car cela correspond mieux a ce que je connaissais a l'epoque du GFA et du STOS basic !! :D

voila voila !
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

LeCyb a écrit :C'est peut-être stupide ce que je vais dire mais pourquoi ne pas utiliser une structure et renvoyer un pointeur ?

Si je ne m'abuse cela permet de renvoyer plusieurs valeurs de types différents, chaînes comprises.

Par contre ça n'arrange pas le truc de Flype :roll:
c'est sûr heureusement que l'on peut faire çà grâce aux structures (ma méthode actuelle effectivement) mais en tout cas je vois pas en quoi çà gènerait pour les suites.

soit tu programmes comme d'hab, genre :

procedure.l mafonction()
*a\left = 0
*a\top = 0
*a\right = 0
*a\bottom = 0
procedurereturn *a.Rect
endprocedure

*output.RECT = mafonction()

soit tu 'programmerais' en utilisant des suites, genre :

procedure.LIST mafonction()
a.LIST = [0,0,0,0]
procedurereturn a
; ou procedurereturn [0,0,0,0]
endprocedure

l,t,r,b = mafonction()

ou

output.LIST = mafonction()
Image
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Dobro a écrit :
C'est peut-être stupide ce que je vais dire mais pourquoi ne pas utiliser une structure et renvoyer un pointeur ?
il y a toujours moyen d'eviter d'utiliser tel ou tel avantage !
des que quelqu'un propose un idée , t'as toujours quelqu'un d'autre pour lui montrer comment s'en passer ! :?
Pas étonnant au final: très souvent les demandes d’évolution représentent plus une couche compilo pour faciliter l’écriture que véritablement de nouveaux « objets » car elles se traduiront derriere par l’utilisation d’éléments de base dont PB dispose déjà comme les pointeurs.

PureBasic est en effet suffisamment mure pour permettre de résoudre le plus part des soucis de programmation, mais il faut aussi comprendre qu'il est tout à fait légitime de demander à améliorer le langage, ce qui en fait tout l'intérêt... ;)
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message par Dräc »

Flype a écrit :Par rapport au ProcedureReturn avec plusieurs valeurs, je pense que l'idéal serait une solution comme dans python par ex.
Pour çà il faudrait et serait génial que Purebasic gère un nouveau type de données : les suites.
Ce type de données est l'équivalent des vecteurs en Java et je dois dire que c'est un élement permettant notamment de répondre à l'idée de "tableau" dynamique.

Là encore, cela peut ce programmer en librairie PB, mais c'est suffisamment utile en programmation pour que cela existe en natif, à l'image des listes chainées...
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message par poshu »

j'aimerais un meilleur KeyboardInkey(); qui donne le charactere de la touche quand elle est appuyé plutot qu'au moment ou elle est relaché, comme la logique le voudrait.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

et une lib keyword et mouse en dehors du mode screen !

Dri
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Dr. Dri a écrit :et une lib keyword et mouse en dehors du mode screen !

Dri
Oui ça serait pratique :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

+1 :D
Répondre