Concernant les ranges, que dirais-tu du module Ranged-sets ?
{-# LANGUAGE GeneralizedNewtypeDeriving #-}-- Module 'Ranged-sets'importData.Ranged.BoundariesimportData.Ranged.RangesimportData.Ranged.RangedSetnewtypeFusées=FIntegerderiving(Num,Ord,Eq,DiscreteOrdered,Show)classPrêtePourLaRampeawheredélivrerFeuVert::a->RSetainstancePrêtePourLaRampeFuséeswheredélivrerFeuVertx=rSetIntersection(makeRangedSet[Range(BoundaryBelow0)(BoundaryAbove10)])(rSingletonx)launchMissile''::Fusées->MaybeStringlaunchMissile''x|not$rSetIsEmpty$délivrerFeuVertx=Just$showx|otherwise=Nothingmain::IO()main=doputStrLn$show$launchMissile''.F<$>[10,0,7,negate11,17]-- Si on n'a pas de GHC sous la main, les sorties devraient ressembler à ça:-- [Just "F 10",Just "F 0",Just "F 7",Nothing,Nothing]
Ça semble ne pas être usine à gaz et ce petit exemple est plutôt lisible en n'ayant que quelques notions dans le langage.
[^] # Re: Solution à base de types variants en ADA
Posté par gipoisson . En réponse à la dépêche Sortie de GHC 8.0.2 et une petite histoire de typage statique. Évalué à 3.
Concernant les
ranges, que dirais-tu du moduleRanged-sets?Ça semble ne pas être usine à gaz et ce petit exemple est plutôt lisible en n'ayant que quelques notions dans le langage.