Programmation fonctionnelle en C++

Magazine
Marque
GNU/Linux Magazine
Numéro
204
Mois de parution
mai 2017
Domaines


Résumé
Si C est le langage de référence de la programmation impérative, C++ est celui du paradigme objet, et on n'insistera jamais assez sur sa qualité. Pour autant, il y a plus à découvrir dans ce langage, c'est pourquoi on se propose de décrire ses possibilités en programmation fonctionnelle.


Le paradigme fonctionnel ne doit pas se voir comme concurrent aux autres, mais plutôt comme complémentaire. Il est conçu pour rendre le développement de certains cas concrets d'application plus simple, court et performant.

Les cas d'utilisations en questions impliquent le travail sur une séquence de données. L'état d'esprit est qu'au lieu de penser à l'algorithme à écrire, il faut plutôt penser à l'action à mener sur une des données. Puis, on utilisera la méthode appropriée pour décliner cette action sur toutes les données.

1. Introduction

1.1 Concepts

Pour entrer progressivement dans la programmation fonctionnelle, il faut partir d'un cas concret simple et commencer par l'écrire de manière impérative :

#include <iostream>

#include <array>

void affiche_tableau(std::array<int,4> seq) {

    auto first = seq.begin();

    auto last = seq.end();

    cout << "La séquence contient:";

    while (first != last) {

        std::cout << ' ' << (*first);

        ++ first;

    }

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Simulation d’un ordinateur mécanique en scriptant sous FreeCAD

Magazine
Marque
Hackable
Numéro
35
Mois de parution
octobre 2020
Domaines
Résumé

L’évolution du traitement du signal est une histoire fascinante largement déroulée par David Mindell dans ses divers ouvrages [1] et citations [2]. Partant de l’ordinateur mécanique avec ses rouages, poulies, bielles et crémaillères, le passage à l’électrique au début du 20ème siècle, puis à l’électronique intégrée avec l’avènement du transistor et des circuits intégrés (VLSI) nous ont fait oublier les stades initiaux qui ont amené à notre statut actuel d’ordinateurs infiniment puissants, précis et compacts. Alors que cette histoire semble s’accompagner du passage de l’analogique au numérique – de la manipulation de grandeurs continues en grandeurs discrètes avec son gain en stabilité et reproductibilité – il n’en est en fait rien : un boulier fournit déjà les bases du calcul discrétisé mécanique, tandis que [3] introduit les concepts du calcul mécanique avec les traitements numériques avant de passer aux traitements analogiques.

Conservez l’historique de vos commandes pour chaque projet, le retour

Magazine
Marque
GNU/Linux Magazine
Numéro
241
Mois de parution
octobre 2020
Domaines
Résumé

Pouvoir conserver un historique dédié pour chaque projet, voici l’idée géniale énoncée par Tristan Colombo dans un précédent article de GLMF [1]. Cet article reprend ce concept génial (je l’ai déjà dit?) et l’étoffe en simplifiant son installation et en ajoutant quelques fonctionnalités (comme l’autodétection de projets versionnés pour proposer à l’utilisateur d’activer un historique dédié, si ce n’est pas le cas).