Written by @ange, 2022-03-23, Last update: 2024-04-27
Mon intérêt initial pour la programmation fonctionnelle était parce qu’elle semblait si perverse.
À l’époque, j’étais le programmeur autodidacte classique, ayant appris le BASIC puis le langage assembleur 6502 afin de pouvoir implémenter mes propres conceptions de jeux. J’ai pris le numéro d’août 1985 du magazine Byte pour en savoir plus sur le nouvel Amiga de l’époque. C’était aussi le numéro sur les langages déclaratifs, avec une réimpression de la célèbre
Tout cela était assez fou pour un codeur de jeu Atari 800 à lire. J’ai compris certaines parties, complètement raté de vastes pans d’autres, mais un point clé a attiré mon imagination : la programmation sans variables modifiables. Comment cela pourrait-il fonctionner ? Je ne pouvais même pas écrire le plus petit jeu sans stocker des valeurs en mémoire. Cela me plaisait pour son impossibilité, de la même manière que j’avais entendu dire que le langage machine était trop difficile à aborder pour la plupart des gens. Mais alors que je m’étais penché sur les listes de jeux en langage assembleur dans les magazines et que j’avais appris à écrire le mien en conséquence, il n’y avait pas une telle applicabilité directe pour la programmation fonctionnelle. Cela m’a fait réfléchir, mais je ne l’ai pas utilisé.
De nombreuses années plus tard, lorsque j’ai travaillé pour la première fois sur des didacticiels pour Haskell, Standard ML et finalement Erlang, c’était pour comprendre comment la programmation sans modification de variables pouvait fonctionner. Dans le petit, c’est assez facile. Une grande partie de ce qui semblait étrange en 1985 était devenu banal : le ramasse-miettes, utilisant des structures de données complexes sans se soucier de la disposition de la mémoire, des langages avec beaucoup moins de comptabilité que C ou Pascal. Mais cette chose “pas de mises à jour destructrices” était - et est toujours - délicate.
Je suppose qu’il est tout à fait évident de souligner qu’il y a eu des dizaines de milliers de jeux vidéo écrits en utilisant un style de programmation impératif, et peut-être une poignée - peut-être même quelques doigts - de jeux écrits de manière purement fonctionnelle. Bien sûr, il y a eu des jeux écrits en Lisp et quelques jeux écrits par des dilettantes du langage friands d’Objective Caml, mais ils ne se sont jamais avérés être programmés dans un style fonctionnel. Vous pouvez écrire du code impératif dans ces langages assez facilement. Et la raison de s’engager dans cette voie est simple : il n’est pas du tout clair comment écrire de nombreux types d’applications complexes dans des langages fonctionnels.
Habituellement, je peux travailler sur les dépendances des données, et souvent je trouve qu’il y a une simplicité sous-jacente à l’approche fonctionnelle. Mais pour d’autres applications… eh bien, elles peuvent se transformer en énigmes. Là où je peux généralement parcourir une solution désordonnée en C, la
solution purement fonctionnelle m’échappe ou me demande un peu de perplexité. Dans ces cas, j’ai l’impression de lutter contre le système, et je comprends pourquoi c’est la route la moins fréquentée. Vous ne le croyez pas ? Vous pensez que la pureté fonctionnelle est toujours le chemin de la droiture ? Voici un exemple simple.
La suite ici
Après avoir consacré plusieurs années à ses recherches et à sa normalisation Fraunhofer HHI célèbre la publication et l'adoption officielle de la nouvelle norme mondiale de codage vidéo H. 266 / Codage vidéo polyvalent (VVC).
Reconnu pour avoir marqué les westerns spaghetti de Sergio Leone, le lauréat d'un Oscar a également produit les sons et la musique de Ennio Morricone, le lauréat d'un Oscar dont les partitions obsédantes et inventives ont habilement accentué la tension frémissante et sans dialogue des westerns spaghetti dirigés par Sergio Leone, est décédé. Il avait 91 ans.
L'arme secrète de la PlayStation: une usine presque entièrement automatisée. La PlayStation de Sony a gagné des centaines de millions de fans à travers le monde depuis son lancement en 1994.
Le nouveau livre de l'anthropologue David Graeber accuse l'économie mondiale de créer des emplois insignifiants qui tuent l'esprit humain.
Les processeurs ARM ont longtemps dominé le monde mobile, presque tous les téléphones et tablettes Apple et Android utilisent un modèle de processeur ARM
Alors que Chicago chancelait cette semaine d'un week jeunes enfants, le surintendant de la police David Brown a doublé son approche pour endiguer la violence lors d'une conférence de presse lundi.
Un jeu de poker de longue date avec un groupe d'étudiants en médecine du sud-ouest de l'Université du Texas à Dallas a réuni Gaurab Chakrabarti et Sean Hunt. Wenly Ruan, partenaire du laboratoire de dissection de Chakrabarti et petite amie de Hunt (aujourd'hui épouse), était le lien.
Pourquoi Reddit voulait-il utiliser DRM? Ce pop Pour le savoir, analyser son code souce paraisait etre la meilleure soultion.
Une conséquence fascinante d'Internet est à quel point il a rapproché le problème de la recherche de âme sœur, et à quel point les hypothèses du problème du mariage stable
Le Linux Mint projet a fait des menaces pour empêcher activement Ubuntu Snap packages d'installer le système de gestion package APT sans le consentement de l'utilisateur
Ce matin, en réponse, le MIT et Harvard ont déposé conjointement une plainte contre ICE et le département américain de la Sécurité intérieure devant un tribunal fédéral du Massachusetts.
Un blogueur rationaliste controversé est devenu une mascotte et un martyr dans une lutte contre le New York Times
L'importance des tests dans le développement de logiciels modernes est vraiment difficile à surestimer.
Il y a quelques jours, Amos, a connu un événement d'extraction de mot de passe par des pirates informatiques et, par conséquent, a été laissé de sa poche par quelques centaines d'euros.
Voyons à quel point vous connaissez les ordinateurs! Tous ces programmesont un nombre variable en eux.
Linus Torvalds, le créateur de Linux, a offert quelques réflexions intéressantes sur le jeu d'instructions Advanced Vector Extensions 512 (AVX-512) d'Intel
Apple lance un programme pour améliorer la sécurité de ses appareils
Logiciel de reconnaissance faciale utilisant des photos piratées
Brewster Kahle partage sa réflexion sur le procès contre Internet Archive
Les données personnelles de clients Instacart sont vendues en ligne
La nouvelle version d'Apache Arrow 1.0.0 est enfin sorti
Il a honte du code qu'il a produit
GOOGLE anti-AGPL
Système de fichiers à partir de zéro dans Rust
Firefox 79 est sorti la nouvelle version de firefox
QEMU devrait passer de C à Rust
Le dernier Firefox déploie la protection améliorée contre le pistage 2.0
Les bases de l'avenir de Rust
Caractéristique de Python 3.9
Chrome déploie IETF QUIC et HTTP / 3
Copyright © 2020 | Powered By | Yaknema SARL