>> C'est quoi cette pseudo manie de puriste qui consiste à prendre des mots français et les décliner en Latin
Je n'en sais rien, n'ayant jamais lu « fora » dans un texte en français. Je n'ai jamais vu « bronsoniser » dans le dictionnaire non plus, ce qui ne m'empêche pas de mouler avec…
D'ailleurs, en parlant de purisme, je te fais remarquer que tu as soit oublié les espaces à l'intérieur des guillemets, soit utilisé des espaces sécables.
Voilà, c'était mon commentaire qui dénonce grave le commentaire qui dénonçait grave !
>> Les compilateurs classiques (gcc par exemple) passe par différentes étapes pour générer du code natif :
>> Le fichier assembleur produit (extension en .s) est créé dans un répertoire temporaire.
Dur à parser. Préférer peut-être « Le fichier assembleur qui est produit »
>> un assembleur (GNU as par exemple),
Je me dis qu'il serait bien d'imposer les balises italiques, et qu'on écrive GNU as, car si on ne connaît pas, on peut croire que "as" est une typo.
>> Une fois que le JIT aura été mis-à-jour
Pourquoi des traits d'union ? Une fois que j'aurais fini-ma-soupe, j'irai au cinéma ?
Vous expliquez « JIT, » un mot très courant, mais pas « section dwarf. » Moralité, je comprend pas tellement le paragraphe de métadonnées (et un JIT pourrait compiler vers un fichier, rien ne l'en empêche et ça pourrait être quand même rentable. Ce qu'on lui demande, c'est juste de générer dynamiquement du code (machine) spécialisé.)
>> Le JIT - Just In Time compiler - compilateur à la volée en français
Dans "JIT", il n'y a pas le mot "compiler". Et on ne dit pas (?) "JIT compilateur". On préférera sans doute quelque chose comme "Le compilateur JIT −Just In Time, ou Juste-à-temps− est un compilateur qui génère du code dynamiquement blablabla".
Malheureusement, je suis aussi bon en électronique qu'en peinture à l'huile en chute libre (les yeux bandés…). Et là, il ne s'éteint pas. C'est juste une sorte de brique qui consomme de l'électricité…
Mais je n'ai pas evalue' justement !
Le thread parle de langage amateur, je demande si c'est le cas ou non : "etes vous des amateurs ou pas ?"
Ca se voit pas forcement, loin de la. Quand un gars comme Joe Marshall se fait traiter de noob [http://funcall.blogspot.com/2010/04/education-of-jrm.html] je me dis que c est pas toujours evident, non...
T as des langages simples fatis par des pros, et l inverse aussi. Et encore une fois, en fonction de l historique de chacun, on peut se faire une idee de la maniere utilisee pour developper le langage. S il n est pas un pro, il y a peu de chances qu il aie des fermetures avec partage de code (comme dans (\x. if x then 2 else (\y. x+y))) ou` une seule fermeture (avec double pointeur de code) peut suffire. Pour les gens qui regardent juste la syntaxe, ca change rien. Pour moi, ca change tout, car c'est cette partie qui m interesse. Le langage en soit, je m'en tape. Je ne suis ni pour, ni contre, et je n emet aucune critique, aucun jugement a son egard : je n'ai qu a peine survole' la page d'accueil !
Il a passe pres de 24 heures san rien de branche', mais ce soir, ca n a rien change'.
Comme l ecran ne s allume pas du tout du tout, je me demande s il n y a pas un faux contact qui lui fait croire que la l ecran est ferme', et qui le pousserait le bios croire que l'ordi est en veille, ou un truc du genre...
Et la machine que j utilise presentement n a pas l air d avoir un disque dur facile d acces pour interchanger, le temps de faire une derniere backup (et oui, j ai depuis peu le disque externe pour la sauvegarde, mais j ai pas eu le temps de faire la sauvegarde en question...)
>> PS : moi non plus je ne comprends pas la question sur les "doctorants en sémantique"; il n'y a pas besoin d'être un spécialiste de la théorie pour monter son petit langage.
Il n y a pas besoin, non. Mais si tel est le cas, autant le dire. En effet, les raisons qui poussent a creer un nouveau langage (ou a reimplanter un langage existant) ne sont surement pas les memes.
>> J'ai effectivement tendance à prendre trop à coeur ce genre de critiques
Tu t'adresses pas à moi en parlant de critique là, j'espère ?
Un fichier de code n'est pas ce que j'appelle une grammaire formelle, surtout s'il faut chercher la grammaire au milieu du bruit du fichier. Le code, c'est pas formel pour deux sous. C'est pas une critique du langage ou quoi que ce soit, c'est un fait : le formalisme repose aussi dans la présentation ; dans un fichier à part, par exemple comme sur [http://people.csail.mit.edu/jaffer/r5rs_9.html]
Ensuite, je demandais honnêtement quel était votre compétence/connaissance. En fonction de votre expérience je sais que je ne trouverais pas les mêmes procédés d'implantation du langage (typiquement au niveau de la représentation interne des objets ou le choix du système de type). Je n'ai *rien* dit sur le langage lui même, vu que je n'ai pas assez lu la doc ni les exemples.
Non, voici un fichier utilisé par le parser.
C'est pas ce que j'appelle une grammaire formelle (et ça participe donc aussi au manque de documentation.)
Et sinon, vous faites quoi dans la vie ? Je veux dire (sérieusement) : « ce langage est-il développé par des gens qui (f)ont un doctorat en sémantique ? » ou juste par une bande d'amateurs qui se fait plaisir ?
Ouaip !
C'est même à l'encontre des sacro-saintes recommandations du W3C [http://www.w3.org/QA/Tips/noClickHere].
À chaque fois qu'on viole ces recommandations, le support de Flash pour l'iPhone et l'iPad s'améliore.
Le lecteur CD de mon laptop m'a lâché il y a un mois.
Et c'est pas de la mauvaise foi : je ne cherche pas à remettre en cause quoi que ce soit. Tu crées un journal sur du matériel, je donne mon avis basé sur mon expérience. Après, si t'es du genre à changer de laptop tous les 6 mois, tant mieux pour toi. Pour d'autres, c'est un investissement qui se rentabilise pendant des années, et ils n'ont pas envie de devoir tout changer pour un problème qui devrait être minime (ma connaissance des slots-ins sur laptop se limitant à du matos gravé/soudé/taillé dans l'ordi, et pas des lecteurs qu'on peut changer sans passer par le SAV. C.f. Apple.)
Comme quoi, savoir utiliser un moteur de recherche, ça s'apprend…
opérateurs booléens, guillemets, recherche de plus de mots…
Bref, quand google ne trouve pas (ou un autre), c'est souvent la faute de celui qui cherche, comme maintenant. Un moteur de recherche n'a aucune garantie de résultats et si tu lui reproches ce qu'il ne fait pas, je trouve que c'est l'hôpital qui se fiche le la charité.
Alors, certes, google *pourrait* se comporter autrement, Mais comme il ne le fait pas, c'est à toi de t'adapter, ou de payer pour avoir un service personnalisé.
>> Les libristes qui pinaillent sur des choses ridicules.
Ma remarque n'est pas liée au libre, hein. Simplement, j'ai des mini-cds, j'ai déjà vu des accidents de mini-cd dans des slot-ins, et je me contente de prévenir l'acheteur potentiel.
C'est peut-être ridicule pour toi car tu dis n'avoir pas vu beaucoup de tels CDs, mais c'est une remarque qui pourra servir à d'autres.
Puis un lecteur slot-in cassé, je doute que ça se change aussi facilement qu'un lecteur à chariot.
J'y connais rien en laptop, les seuls que j'ai eus, je les ai achetés d'occasion, j'ai jamais eu besoin de neuf… Passons…
>> * 15" 1440x900 brillant
Et quand tu souris, tu t'éblouies… J'ai jamais saisi l'intérêt des écrans à dalle brillante pour laptop. Un gros écran de bureau, pour graphistes qui vivent dans une salle éclairée de manière professionnelle, je comprends, mais pour un laptop, un ordi à utiliser en déplacement, ça sent les emmerdes d'avances, avec tous ces reflets.
>> Et les fioritures agréables (alu, retro éclairage, chiclet keyboard, multitouche connecteur magnetique, fermeture magnétique, DVDrw slot-in, OSX etc etc..)
Et les mini-CDs, avec un slot-in, t'as déjà essayé ?
La réduction est un mot propre a lambda calcul, alors que la déduction est un mot de logique (et même si thèse de Church, blah blah, c'est pas un mot directement lié avec une fréquence suffisante pour empêcher la correction automatique)
T'as pas compris. Haskell, c'est pas Lisp. L'interprète ghci a une sémantique pourrie, donc tant que tu ne fais pas un fichier à compiler avec un MAIN, tu ne comprendras jamais comment ça marche.
Haskell, c'est un mensonge. On te dit "c'est pur, mais on peut faire des effets de bord dans la monade IO". La vérité, c'est que tu dois TOUT faire dans la monade IO. Tu dois TOUT faire à partir de la fonction main. Donc tu peux TOUJOURS extraire tes données avec l'opérateur "<-"
Désormais, tu coderas dans un fichier, avec un main, et tu feras ":!ghci %" ou l'équivalent pour emacs. Et tu lanceras "main" dans ton interprète, si ça type.
En pratique, une dernière fois (après, je moinsse !)
import Random (randomRIO)
import System (getArgs)
data Mobile = Poids Rational | Branche Rational Mobile Mobile deriving Show
poids :: Mobile -> Rational
poids (Poids n) = n
poids (Branche _ g d) = poids g + poids d
shuffle' [] acc = return acc
shuffle' l acc = do
k <- randomRIO (0, length l - 1)
let (lead, x:xs) = splitAt k l
shuffle' (lead ++ xs) (x:acc)
shuffle :: [a] -> IO [a]
shuffle l = shuffle' l []
splity :: [a] -> ([a],[a])
splity x = splitAt n x where
n = div (length x) 2
ranCreation :: [Rational] -> Mobile
ranCreation [] = (Poids 0)
ranCreation [p] = (Poids p)
ranCreation li = Branche k (ranCreation x) (ranCreation y) where
m = splity li
x = fst m
y = snd m
k = (poids (ranCreation y))/(poids (ranCreation x) + (poids (ranCreation y)))
main = do
liste <- getArgs
let liste_nombres = (map (fromIntegral . read) liste)
let arbre1 = ranCreation liste_nombres
liste_nombres_randomisee <- shuffle liste_nombres -- ICI !!!!
let arbre2 = ranCreation $ liste_nombres_randomisee -- LA !!!!
print arbre1
print arbre2
Il faut donc que tu repenses ton problème autrement, c'est à dire que tu remarques que tu voudras éventuellement utiliser ton résultat, par exemple pour l'afficher. Et donc tu veux rester dans IO. Comme je vois juste une fonction et pas de main (dont le type est IO ()), j'en déduis que tu ne sais même pas ce que tu veux faire. Donc écrit main, et ensuite, code en te disant "je suis dans la monade IO"
Exemple simple :
import Random (randomRIO)
import System (getArgs)
shuffle' [] acc = return acc
shuffle' l acc = do
k <- randomRIO (0, length l - 1)
let (lead, x:xs) = splitAt k l
shuffle' (lead ++ xs) (x:acc)
shuffle :: [a] -> IO [a]
shuffle l = shuffle' l []
main = do
liste_d_entiers <- getArgs -- récupère une liste de nombres passés au programme
itlse_d_enteisr <- shuffle liste_d_entiers -- permute
let resultat = ma_fonction_normale itlse_d_enteisr -- applique une fonction "pas IO"
print resultat -- affiche le résultat et quitte
>> On ne peut même pas avoir la preuve que le compilateur en question utilise d'une manière ou d'une autre le source founi en entrée!
Et alors ?
Il n'est pas imposé qu'un langage soit turing complet, éditable, ou quoi que ce soit !
Je pense que le programme "1" dont le compilateur est
"if (input = 1) then dump_un_binaire(); else error();" est un programme libre et bien acceptable, et qui fait ce qu'on lui demande.
En revanche, il n'est justement pas dit que le binaire sera, lui, libre !
C'est pas un bug dans la licence, c'est plutôt une feature marrante ^^
En fait, tu confonds deux choses : le logiciel et son code source.
Ici, c'est le code qui est libre mais pas le logiciel, alors que la GPL couvre le logiciel (ce qui implique la couverture du code).
La GPL dit d'ailleurs :
The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.
Ce qui me fait dire que si j'ai écris la partie binaire dumpée par mon compilateur entièrement à la main, alors ça peut même être GPL. C'est un programme "one shot" (un "faux" compilateur) contre lequel tu ne peux rien. Le dev a joué, a ri, et il t'a bien eu.
[^] # Re: Mais on est en France par à Rome !
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal De l'importance d'avoir une tribune.... Évalué à 2.
Je n'en sais rien, n'ayant jamais lu « fora » dans un texte en français. Je n'ai jamais vu « bronsoniser » dans le dictionnaire non plus, ce qui ne m'empêche pas de mouler avec…
D'ailleurs, en parlant de purisme, je te fais remarquer que tu as soit oublié les espaces à l'intérieur des guillemets, soit utilisé des espaces sécables.
Voilà, c'était mon commentaire qui dénonce grave le commentaire qui dénonçait grave !
# Oh, la belle verte !
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse à la dépêche LLVM 2.7 est sorti. Évalué à 4.
>> Le fichier assembleur produit (extension en .s) est créé dans un répertoire temporaire.
Dur à parser. Préférer peut-être « Le fichier assembleur qui est produit »
>> un assembleur (GNU as par exemple),
Je me dis qu'il serait bien d'imposer les balises italiques, et qu'on écrive GNU as, car si on ne connaît pas, on peut croire que "as" est une typo.
>> Une fois que le JIT aura été mis-à-jour
Pourquoi des traits d'union ? Une fois que j'aurais fini-ma-soupe, j'irai au cinéma ?
Vous expliquez « JIT, » un mot très courant, mais pas « section dwarf. » Moralité, je comprend pas tellement le paragraphe de métadonnées (et un JIT pourrait compiler vers un fichier, rien ne l'en empêche et ça pourrait être quand même rentable. Ce qu'on lui demande, c'est juste de générer dynamiquement du code (machine) spécialisé.)
>> Le JIT - Just In Time compiler - compilateur à la volée en français
Dans "JIT", il n'y a pas le mot "compiler". Et on ne dit pas (?) "JIT compilateur". On préférera sans doute quelque chose comme "Le compilateur JIT −Just In Time, ou Juste-à-temps− est un compilateur qui génère du code dynamiquement blablabla".
# Et les fora ?
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal De l'importance d'avoir une tribune.... Évalué à -2.
Quelle a été leur progression ?
[^] # Re: Les condensateurs
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Carte mère fichue ?. Évalué à 3.
[^] # Re: Carte graphique
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Carte mère fichue ?. Évalué à 2.
Et je suppose que même sans carte graphique, le boot devrait se passer, non ?
(Auquel cas, je me connecterais par SSH et youpla.)
Le problème, c'est qu'une fois le courant mis, le disque dur tourne, le cdrom tourne, le ventilo tourne, et c'est tout. Le boot ne se fait pas.
J'ai eu, hier, un instant, un boot qui a commencé, et l'ordi a freezé au milieu du démarrage de l'OS…
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 2.
Le thread parle de langage amateur, je demande si c'est le cas ou non : "etes vous des amateurs ou pas ?"
Ca se voit pas forcement, loin de la. Quand un gars comme Joe Marshall se fait traiter de noob [http://funcall.blogspot.com/2010/04/education-of-jrm.html] je me dis que c est pas toujours evident, non...
T as des langages simples fatis par des pros, et l inverse aussi. Et encore une fois, en fonction de l historique de chacun, on peut se faire une idee de la maniere utilisee pour developper le langage. S il n est pas un pro, il y a peu de chances qu il aie des fermetures avec partage de code (comme dans (\x. if x then 2 else (\y. x+y))) ou` une seule fermeture (avec double pointeur de code) peut suffire. Pour les gens qui regardent juste la syntaxe, ca change rien. Pour moi, ca change tout, car c'est cette partie qui m interesse. Le langage en soit, je m'en tape. Je ne suis ni pour, ni contre, et je n emet aucune critique, aucun jugement a son egard : je n'ai qu a peine survole' la page d'accueil !
[^] # Re: alim
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Carte mère fichue ?. Évalué à 2.
Comme l ecran ne s allume pas du tout du tout, je me demande s il n y a pas un faux contact qui lui fait croire que la l ecran est ferme', et qui le pousserait le bios croire que l'ordi est en veille, ou un truc du genre...
Et la machine que j utilise presentement n a pas l air d avoir un disque dur facile d acces pour interchanger, le temps de faire une derniere backup (et oui, j ai depuis peu le disque externe pour la sauvegarde, mais j ai pas eu le temps de faire la sauvegarde en question...)
[^] # Re: RAM
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Carte mère fichue ?. Évalué à 2.
Mais ca n a pas debloque' la situation... .
[^] # Re: Pas très précis...
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Carte mère fichue ?. Évalué à 2.
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 4.
Il n y a pas besoin, non. Mais si tel est le cas, autant le dire. En effet, les raisons qui poussent a creer un nouveau langage (ou a reimplanter un langage existant) ne sont surement pas les memes.
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à -1.
Tu t'adresses pas à moi en parlant de critique là, j'espère ?
Un fichier de code n'est pas ce que j'appelle une grammaire formelle, surtout s'il faut chercher la grammaire au milieu du bruit du fichier. Le code, c'est pas formel pour deux sous. C'est pas une critique du langage ou quoi que ce soit, c'est un fait : le formalisme repose aussi dans la présentation ; dans un fichier à part, par exemple comme sur [http://people.csail.mit.edu/jaffer/r5rs_9.html]
Ensuite, je demandais honnêtement quel était votre compétence/connaissance. En fonction de votre expérience je sais que je ne trouverais pas les mêmes procédés d'implantation du langage (typiquement au niveau de la représentation interne des objets ou le choix du système de type). Je n'ai *rien* dit sur le langage lui même, vu que je n'ai pas assez lu la doc ni les exemples.
[^] # Re: Un langage amateur sympa, mais qui se prend trop au sérieux
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse à la dépêche Le langage ooc auto-hébergé - les nouveautés de rock 0.9.0. Évalué à 0.
Non, voici un fichier utilisé par le parser.
C'est pas ce que j'appelle une grammaire formelle (et ça participe donc aussi au manque de documentation.)
Et sinon, vous faites quoi dans la vie ? Je veux dire (sérieusement) : « ce langage est-il développé par des gens qui (f)ont un doctorat en sémantique ? » ou juste par une bande d'amateurs qui se fait plaisir ?
[^] # Re: Et les liens sémantiques bordel ?!
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal 3 bonnes nouvelles... au moins.. Évalué à 9.
C'est même à l'encontre des sacro-saintes recommandations du W3C [http://www.w3.org/QA/Tips/noClickHere].
À chaque fois qu'on viole ces recommandations, le support de Flash pour l'iPhone et l'iPad s'améliore.
[^] # Re: très utile
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message J'EN AI MARRE;;;. Évalué à 2.
[^] # Re: J'aime pas
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Marre des portables à 100mille déclinaisons. Évalué à 2.
Et c'est pas de la mauvaise foi : je ne cherche pas à remettre en cause quoi que ce soit. Tu crées un journal sur du matériel, je donne mon avis basé sur mon expérience. Après, si t'es du genre à changer de laptop tous les 6 mois, tant mieux pour toi. Pour d'autres, c'est un investissement qui se rentabilise pendant des années, et ils n'ont pas envie de devoir tout changer pour un problème qui devrait être minime (ma connaissance des slots-ins sur laptop se limitant à du matos gravé/soudé/taillé dans l'ordi, et pas des lecteurs qu'on peut changer sans passer par le SAV. C.f. Apple.)
[^] # Re: Il et il a raison
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message [Liberté] Google pense pour nous. Évalué à 2.
opérateurs booléens, guillemets, recherche de plus de mots…
Bref, quand google ne trouve pas (ou un autre), c'est souvent la faute de celui qui cherche, comme maintenant. Un moteur de recherche n'a aucune garantie de résultats et si tu lui reproches ce qu'il ne fait pas, je trouve que c'est l'hôpital qui se fiche le la charité.
Alors, certes, google *pourrait* se comporter autrement, Mais comme il ne le fait pas, c'est à toi de t'adapter, ou de payer pour avoir un service personnalisé.
[^] # Re: J'aime pas
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Marre des portables à 100mille déclinaisons. Évalué à 4.
Ma remarque n'est pas liée au libre, hein. Simplement, j'ai des mini-cds, j'ai déjà vu des accidents de mini-cd dans des slot-ins, et je me contente de prévenir l'acheteur potentiel.
C'est peut-être ridicule pour toi car tu dis n'avoir pas vu beaucoup de tels CDs, mais c'est une remarque qui pourra servir à d'autres.
Puis un lecteur slot-in cassé, je doute que ça se change aussi facilement qu'un lecteur à chariot.
[^] # Re: Il et il a raison
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message [Liberté] Google pense pour nous. Évalué à 1.
[^] # Re: J'aime pas
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Marre des portables à 100mille déclinaisons. Évalué à 3.
Si j'avais un slot-in, en tout cas, j'essayerais pas…
# J'aime pas
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal Marre des portables à 100mille déclinaisons. Évalué à 7.
>> * 15" 1440x900 brillant
Et quand tu souris, tu t'éblouies… J'ai jamais saisi l'intérêt des écrans à dalle brillante pour laptop. Un gros écran de bureau, pour graphistes qui vivent dans une salle éclairée de manière professionnelle, je comprends, mais pour un laptop, un ordi à utiliser en déplacement, ça sent les emmerdes d'avances, avec tous ces reflets.
>> Et les fioritures agréables (alu, retro éclairage, chiclet keyboard, multitouche connecteur magnetique, fermeture magnétique, DVDrw slot-in, OSX etc etc..)
Et les mini-CDs, avec un slot-in, t'as déjà essayé ?
# Il et il a raison
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message [Liberté] Google pense pour nous. Évalué à 1.
La réduction est un mot propre a lambda calcul, alors que la déduction est un mot de logique (et même si thèse de Church, blah blah, c'est pas un mot directement lié avec une fréquence suffisante pour empêcher la correction automatique)
[^] # Re: Autre petit problème
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Haskell. Évalué à 3.
Haskell, c'est un mensonge. On te dit "c'est pur, mais on peut faire des effets de bord dans la monade IO". La vérité, c'est que tu dois TOUT faire dans la monade IO. Tu dois TOUT faire à partir de la fonction main. Donc tu peux TOUJOURS extraire tes données avec l'opérateur "<-"
Désormais, tu coderas dans un fichier, avec un main, et tu feras ":!ghci %" ou l'équivalent pour emacs. Et tu lanceras "main" dans ton interprète, si ça type.
En pratique, une dernière fois (après, je moinsse !)
import Random (randomRIO)
import System (getArgs)
data Mobile = Poids Rational | Branche Rational Mobile Mobile deriving Show
poids :: Mobile -> Rational
poids (Poids n) = n
poids (Branche _ g d) = poids g + poids d
shuffle' [] acc = return acc
shuffle' l acc = do
k <- randomRIO (0, length l - 1)
let (lead, x:xs) = splitAt k l
shuffle' (lead ++ xs) (x:acc)
shuffle :: [a] -> IO [a]
shuffle l = shuffle' l []
splity :: [a] -> ([a],[a])
splity x = splitAt n x where
n = div (length x) 2
ranCreation :: [Rational] -> Mobile
ranCreation [] = (Poids 0)
ranCreation [p] = (Poids p)
ranCreation li = Branche k (ranCreation x) (ranCreation y) where
m = splity li
x = fst m
y = snd m
k = (poids (ranCreation y))/(poids (ranCreation x) + (poids (ranCreation y)))
main = do
liste <- getArgs
let liste_nombres = (map (fromIntegral . read) liste)
let arbre1 = ranCreation liste_nombres
liste_nombres_randomisee <- shuffle liste_nombres -- ICI !!!!
let arbre2 = ranCreation $ liste_nombres_randomisee -- LA !!!!
print arbre1
print arbre2
Ensuite,
ghc --make toto.hs
./toto 1 3 90
Et voilà !
# Déjà répondu
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Haskell : IO [Int]. Évalué à 2.
[^] # Re: Autre petit problème
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Haskell. Évalué à 3.
Il faut donc que tu repenses ton problème autrement, c'est à dire que tu remarques que tu voudras éventuellement utiliser ton résultat, par exemple pour l'afficher. Et donc tu veux rester dans IO. Comme je vois juste une fonction et pas de main (dont le type est IO ()), j'en déduis que tu ne sais même pas ce que tu veux faire. Donc écrit main, et ensuite, code en te disant "je suis dans la monade IO"
Exemple simple :
import Random (randomRIO)
import System (getArgs)
shuffle' [] acc = return acc
shuffle' l acc = do
k <- randomRIO (0, length l - 1)
let (lead, x:xs) = splitAt k l
shuffle' (lead ++ xs) (x:acc)
shuffle :: [a] -> IO [a]
shuffle l = shuffle' l []
ma_fonction_normale :: [String] -> [(String, Int)]
ma_fonction_normale = map (\x -> (x, ((read x)+2)))
main = do
liste_d_entiers <- getArgs -- récupère une liste de nombres passés au programme
itlse_d_enteisr <- shuffle liste_d_entiers -- permute
let resultat = ma_fonction_normale itlse_d_enteisr -- applique une fonction "pas IO"
print resultat -- affiche le résultat et quitte
[^] # Re: Demandons à Stallman
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message [Licences] code source libre sans compilateur libre.... Évalué à 3.
Et alors ?
Il n'est pas imposé qu'un langage soit turing complet, éditable, ou quoi que ce soit !
Je pense que le programme "1" dont le compilateur est
"if (input = 1) then dump_un_binaire(); else error();" est un programme libre et bien acceptable, et qui fait ce qu'on lui demande.
En revanche, il n'est justement pas dit que le binaire sera, lui, libre !
C'est pas un bug dans la licence, c'est plutôt une feature marrante ^^
En fait, tu confonds deux choses : le logiciel et son code source.
Ici, c'est le code qui est libre mais pas le logiciel, alors que la GPL couvre le logiciel (ce qui implique la couverture du code).
La GPL dit d'ailleurs :
Ce qui me fait dire que si j'ai écris la partie binaire dumpée par mon compilateur entièrement à la main, alors ça peut même être GPL. C'est un programme "one shot" (un "faux" compilateur) contre lequel tu ne peux rien. Le dev a joué, a ri, et il t'a bien eu.