|
Publicité ' | ||||||||||||||||||||||||
|
|
#81 |
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Ben oui, dans le cas le plus général on ne veut pas limiter l'intervalle d'indices par la taille d'un mot machine. Et dans ce cas l'accès en temps constant est impossible, c'est dans ce sens que mon tad est "optimal" (même si bien entendu en pratique il reste trop médiocre pour un usage réaliste).
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
|
00
|
|
|
#82 |
|
Membre Expert
![]() ![]() Inscription : septembre 2006 Messages : 1 036 ![]() |
Vous n'avez strictement rien compris ! Mais bon, on ne va pas se battre.
Les choses se passent en machine (CPU) de façon bien différente de ce que vous faites dans vos codes !
__________________
When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal. |
|
|
00
|
|
|
#83 | ||||
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 966 ![]() |
Citation:
une manière "naïve" et efficace est en effet de passer par une "émulation" d'un entier via des "tableaux chainés", ce qui revient à une complexité logarithme en la taille des paquets mais je crois qu'il explique des templates de "Big_int" en C++ qui sont mieux faits (à vérifier Citation:
Citation:
c'est un peu le problème des "experts" qui affirmaient qu'un programme ne pouvait manipuler plus de 64Ko de mémoire en Ram à l'époque des processeurs 16 bits... et à qui l'on sortait des programmes qui n'utilisaient pas de swap, et qui manipulait près d'1Mo de données ![]() Citation:
mais pour une machine donnée, on peut toujours sortir une structure manipulant plus de mémoire que l'on peut l'imaginer naïvement, et garder un temps d'accès en O(1) |
||||
|
|
00
|
|
|
#84 |
|
Invité(e)
![]() Messages : n/a ![]() |
Quelle est la proportion de programme où il est important que le codeur ai en tête que l'espace mémoire virtuellement contiguë est en fait découpé en plage physique réparties "n'importe où" en mémoire par l'OS ? Dans quel cas doit il connaître sur le bout des doigt la taille des table de traduction du MMU et les temps typique de l'appel système de mis à jour ? genre 0,01% ? A la rigueur se préoccuper des défaut de page du cache quand on a une matrice bidimensionnelle, pourquoi pas, mais le reste, on s'en fout royalement.
|
00
|
|
|
#85 | |
|
Membre Expert
![]() ![]() Inscription : septembre 2006 Messages : 1 036 ![]() |
Citation:
Au passage, la fréquence des horloges système ayant augmenté moins vite que celle des CPU (donc ayant baissé, relativement parlant), le phénomène de gruyèrisation de la RAM et donc les problèmes de localité commencent à être de plus en plus pris en compte par les programmeurs, tout simplement parce que les défauts de cache coûtent de plus en plus. Mais c'est un autre débat !
__________________
When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal. |
|
|
|
00
|
|
|
#86 | ||
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Le codage en OCaml des entiers de Church-Girard:
Code :
PS: pour être honnête l'idée de ce code n'est pas de moi, je l'ai "empruntée" à Alain Prouté.
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
||
|
00
|
|
|
#87 | ||
|
Membre Expert
![]() Inscription : avril 2007 Messages : 829 ![]() |
Pourrais-tu expliciter ce qui ne marche pas ? Ça a sûrement à voir avec la conservation du polymorphisme, mais de loin ce n'est pas évident de voir le problème.
En tout cas, à l'utilisation ils sont tout à fait aimables : Code :
Ah, j'ai compris. "ne fonctionne pas en Caml" ça veut dire "ne fonctionne pas en Caml Light" ! J'ai été induit en erreur par le fait que, pour moi, Caml désigne un langage commun dont Caml Light et OCaml sont deux implémentations un peu différentes (et le passage de Caml Light à OCaml correspond à un ajout de fonctionnalités au langage Caml). |
||
|
|
00
|
|
|
#88 | |
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Citation:
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
|
|
00
|
|
|
#89 | ||
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Le fichier joint contient un typeur en ocaml pour le [quizz] fonctions et démonstrations du forum fonctionnel.
Remerciements à Alain Prouté pour m'encourager à utiliser sa contribution. Ce petit exemple illustre assez bien, sur un langage suffisamment élémentaire, les techniques de base pour l'interprétation en ocaml :
Le langage accepté par l'interpréteur ne comprend que les constructeurs de types élémentaires |->, O et W, il ne comprend pas les opérateurs =>, ~, &, |, !, 1! et +. Pour compiler en code natif: Code :
ocamlopt -o coquelicote lex.ml coquelicote_txt.ml Code :
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
||
|
00
|
|
|
#90 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
J'ai résolu un petit problème : évaluer une main au poker Hold'em et déterminer le gagnant. Je ne suis pas convaincu que ce soit utile pour quelqu'un, mais ça donne un exemple de code F# (100 lignes).
Je mets juste le lien (pour avoir la coloration syntaxique) : http://laurent.le-brun.eu/site/index...amming-problem Il y a des solutions en Ruby disponibles (suivre les liens) et ça pourrait faire un sujet de défi, non ? |
|
|
00
|
|
|
#91 | |
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Sympathique le commentaire de Brian Hurt
Du coup j'ai découvert son blog, la série sur les catamorphismes est très intéressante, il contrôle la récursion grâce à des continuations. Dans mon tutoriel (partie VIII) j'ai simplement utilisé la paresse, c'est suffisant pour arrêter la récursion, mais la généralisation est sans doute intéressante (même sans kung-fu monadique ?). Citation:
j'attends toujours mon exemplaire de Monads for dummies. Sinon, existe-t-il un équivalent F# de http://planet.ocamlcore.org et http://planet.haskell.org ? ( c'est lundi noir, quasiment impossible de poster sur dvp)
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
|
|
00
|
|
|
#92 | ||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 962 ![]() |
Citation:
F# est présent et je suis abonné à ce flux : http://feeds.feedburner.com/planet_fsharp?format=xml Citation:
|
||
|
|
00
|
|
|
#93 | |
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Citation:
Pour les monads, il ne manque pas de bons tutoriels, ce qui me manque c'est soit un peu plus de bonne volonté, soit un besoin plus pressant.
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
|
|
00
|
|
|
#94 | ||
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
Code OCaml :
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
||
|
00
|
|
|
#95 | |||
|
Membre Expert
![]() Inscription : avril 2007 Messages : 829 ![]() |
- "or" c'est moche (parce que "and" ne marche pas, et les priorités sont louches), "||" for the win.
- (..+1) (...-1), en fait il n'y a qu'un index qui varie (l' "éloignement par rapport aux bords"), c'est donc un peu redondant - Citation:
Code OCaml :
|
|||
|
|
00
|
|
|
#96 | ||||
![]() ![]() Damien GuichardInscription : juin 2007 Messages : 1 514 ![]() |
On défini ici:
Code Caml :
L'opposé d'une matrice et la puissance entière d'une matrice ne sont pas gérées car, du point du vue des dimensions, ces opérations sont similaires à l'identité. Le produit d'Hadamard de deux matrices n'est pas géré car, du point du vue des dimensions, cette opération est similaire à l'addition. Exemple: Code Caml :
__________________
Du même auteur: le cours OCaml, le dernier article publié, le projet, le blog dvp et le jeu vidéo. Avant de poser une question je lis les règles du forum. |
||||
|
00
|
|
|
#97 | ||||||||||||
|
Membre à l'essai
![]() Inscription : avril 2008 Messages : 18 ![]() |
Voici plusieurs façons de (re)coder la fonction reverse qui permet d'inverser tous les éléments d'une liste qu'on lui passe en argument.
|
||||||||||||
|
|
00
|
|
|
#98 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 437 ![]() |
Tu as oublié (mais c'est peut-être volontaire) la définition avec fold, tirée de la doc en ligne
Code :
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
||
|
|
00
|
|
|
#99 | |
|
Inactif
Inscription : juillet 2005 Messages : 1 958 ![]() |
Citation:
http://www.r6rs.org/final/html/r6rs/...ode_sec_11.4.2 |
|
|
|
00
|
|
|
#100 |
|
Membre à l'essai
![]() Inscription : avril 2008 Messages : 18 ![]() |
Trap D> J'ai omis l'utilisation de foldl volontaire car je ne connais pas cette fonction.
Garulfo> En parlant de "véritable" opérateur (bien que ici, la formulation est loin du sens que je voulais lui donner), je voulais dire un opérateur permettant de donner une valeur par défaut de manière plus simple qu'à coups de let. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com