• Aide
  • Eurêkoi Eurêkoi

Livre

Scala pas à pas

Résumé

Un langage de développement multi-paradigme considéré comme l'évolution de Java, qui associe de manière cohérente la programmation fonctionnelle, impérative et objet. Les notions abordées portent sur les collections, les aspects orientés objet, le filtrage de motif (pattern matching), les types génériques, les aspects fonctionnels, XML, la programmation concurrente et une introduction aux Akka.


  • Éditeur(s)
  • Date
    • DL 2014
  • Notes
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (384 p.) : ill., couv. ill. en coul. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-340-00009-4
  • Indice
  • Quatrième de couverture
    • Scala est considéré comme l'évolution de Java : un langage de développement multi-paradigme très expressif qui associe de manière cohérente la programmation fonctionnelle, impérative et objet. Adopté par Twitter, Xerox, Novell, Siemens, Sony, EDF, ce langage de programmation est particulièrement adapté au développement d'applications réparties capables de passer à l'échelle. Scala exploite la machine virtuelle Java (JVM) et est interopérable avec Java.

      Ce livre de découverte du langage est destiné aux développeurs, aux étudiants en licence, master ou écoles d'ingénieurs et à tous les curieux de la programmation. Cet ouvrage est indispensable aux développeurs soucieux d'intégrer Scala dans un projet Java.

      Les notions abordées portent sur les collections, les aspects orientés objet du langage, le filtrage de motif (pattern matching), les types génériques, les aspects fonctionnels, XML, la programmation concurrente (Futures et Promises) et sur une introduction aux acteurs Akka.

      Scala veut dire escalier en italien : ce livre vous aide à en monter les premières marches et vous donne les bases vous permettant d'aborder, dans les meilleures conditions possibles, le reste de votre ascension. Quelles que soient les raisons vous conduisant à apprendre ou à découvrir ce langage assez unique, préparez-vous à prendre de la hauteur et à découvrir de nouveaux territoires.


  • Tables des matières
      • SCALA pas à pas

      • Gildas Ménier

      • Ellipses

      • Chapitre 1. Introduction 13
      • 1.1. Pourquoi un autre langage ? Pourquoi Scala ?13
      • 1.2. Contexte14
      • 1.3. Les caractéristiques de Scala16
      • 1.3.1. Un langage orienté objet16
      • 1.3.2. Un langage fonctionnel17
      • 1.3.3. Un langage statiquement (et fortement) typé17
      • 1.3.4. Un langage extensible17
      • 1.4. Présentation de l'ouvrage18
      • Chapitre 2. L'interpréteur Scala 23
      • 2.1. Installer Scala24
      • 2.2. Commentaires24
      • 2.3. Exemple d'expressions25
      • 2.4. Déclaration de constante26
      • 2.5. Déclaration de variable27
      • 2.6. Instances et invocations de méthodes27
      • 2.7. Simplification de la syntaxe28
      • 2.8. Conditionnelle31
      • 2.9. Type d'une conditionnelle32
      • 2.10. Blocs34
      • 2.11. Fonction-objet34
      • 2.12. La méthode apply36
      • 2.13. Passer des fonctions en argument37
      • 2.14. Définition de fonction-méthode39
      • 2.15. Procédure39
      • 2.16. Tableaux40
      • 2.16.1. Accès aux éléments d'un tableau40
      • 2.16.2. Construction d'un tableau40
      • 2.16.3. ArrayBuffer et taille variable41
      • 2.16.4. Itération42
      • 2.17. Transformation de collections44
      • Chapitre 3. Scala essentiel 51
      • 3.1. Environnement de développement52
      • 3.1.1. Installer Scala52
      • 3.1.2. Eclipse53
      • 3.1.3. Intellij IDEA53
      • 3.1.4. Netbeans54
      • 3.1.5. Autres environnements54
      • 3.2. Premier programme54
      • 3.3. Import56
      • 3.4. Déclaration de variables et constantes56
      • 3.5. Affichage et chaînes de caractères57
      • 3.6. Blocs et expressions59
      • 3.7. lazy61
      • 3.8. Def et définition de méthodes62
      • 3.9. Le point virgule et séparation des expressions69
      • 3.10. Conditionnelle71
      • 3.11. match / case et pattern matching71
      • 3.12. Exceptions73
      • 3.13. Collections et type paramétrique74
      • 3.14. Programmation objet77
      • 3.14.1. Hiérarchie générale des classes / traits / objets Scala77
      • 3.14.2. object78
      • 3.14.3. class80
      • 3.14.4. Trait83
      • 3.15. Java et Scala83
      • 3.16. Scaladoc85
      • 3.16.1. Comprendre les pages scaladoc85
      • 3.16.2. Ecrire des pages scaladoc93
      • 3.17. Conclusion95
      • Chapitre 4. Les tableaux 97
      • 4.1. Définition d'un tableau98
      • 4.2. Accès aux éléments100
      • 4.3. Itération sur les éléments d'un tableau101
      • 4.4. Création d'un tableau par transformation : for/yield102
      • 4.5. Transformation d'un tableau avec filter, map, sortWith, reduce104
      • 4.5.1. filter104
      • 4.5.2. map105
      • 4.5.3. sortWith106
      • 4.5.4. reduce107
      • 4.6. Tableaux de taille variable : ArrayBuffer108
      • Chapitre 5. Les principales collections 113
      • 5.1. Principe114
      • 5.2. Muable ou immuable ?115
      • 5.3. Tuples117
      • 5.4. Map120
      • 5.5. Option127
      • 5.6. Either130
      • 5.7. Les listes131
      • 5.8. Les ensembles Set134
      • 5.9. Vector136
      • 5.10. Stack137
      • 5.11. Queue138
      • 5.12. Range138
      • 5.13. Stream139
      • 5.13.1. Rappel sur les listes139
      • 5.13.2. Liste et Stream140
      • 5.14. String143
      • 5.15. ArrayBuffer144
      • Chapitre 6. Les collections Scala en détail 147
      • 6.1. scala.collection148
      • 6.1.1. Traversable149
      • 6.1.2. Iterable149
      • 6.1.3. Seq149
      • IndexedSeq150
      • LinearSeq150
      • 6.1.4. Set151
      • 6.1.5. Map151
      • 6.2. Opérations courantes151
      • 6.2.1. Créer une nouvelle collection151
      • 6.2.2. Ajouter/enlever un élément153
      • 6.2.3. Mettre à jour un élement153
      • 6.2.4. Opérations ensemblistes sur les collections154
      • 6.2.5. Conversions154
      • 6.2.6. Quelques méthodes importantes de Iterable155
      • Propriétés155
      • Sélection et découpage156
      • Chaînes de caractères159
      • Transformation d'une collection160
      • 6.2.7. Quelques méthodes importantes de Seq168
      • 6.3. Collections parallèles : par et seq169
      • 6.3.1. Conversion : par169
      • 6.3.2. Ordre des traitements171
      • 6.3.3. Mise à jour de variables partagées171
      • 6.3.4. Convertir en version non parallèle : seq172
      • 6.3.5. Collections parallèles : fold, reduce et aggregate173
      • 6.4. Les vues (lazy view) : view et force174
      • 6.5. Java et Scala : JavaConversions176
      • Chapitre 7. Programmation objet 179
      • 7.1. Déclaration d'une classe180
      • 7.2. Accès public, private, protected180
      • 7.3. Accesseurs (getters et setters)182
      • 7.4. Constructeurs184
      • 7.5. Classes imbriquées189
      • 7.6. Classes anonymes191
      • 7.7. Type et this193
      • 7.8. Transtypage194
      • 7.9. Object195
      • 7.9.1. Objet singleton195
      • 7.9.2. Type198
      • 7.10. Méthodes198
      • 7.10.1. Nommage198
      • 7.10.2. Invocation200
      • Principe200
      • Arité nulle201
      • Arité une201
      • Opérateurs202
      • Opérateurs associatifs à droite et le caractère ':'202
      • Fonctions d'ordre supérieur204
      • Arguments nommés204
      • 7.10.3. apply204
      • 7.10.4. toString205
      • 7.10.5. ==, eq, equals, hashCode206
      • 7.10.6. Code du constructeur209
      • 7.10.7. Extracteurs et unapply210
      • Principe210
      • Extracteur d'un argument215
      • Extracteur booléen215
      • Extracteurs de séquences216
      • 7.11. case class217
      • 7.12. Héritage219
      • 7.12.1. extends219
      • 7.12.2. Constructeurs et super-classe219
      • 7.12.3. override220
      • 7.12.4. Classe abstraite220
      • 7.12.5. final221
      • 7.12.6. sealed222
      • 7.12.7. Héritage et classes anonymes223
      • 7.13. Conversions implicites224
      • 7.13.1. Classe implicite224
      • 7.13.2. Méthode implicite226
      • 7.13.3. Contrôle de conversion227
      • 7.13.4. Applications228
      • Extension de classes228
      • Interpolation de chaînes228
      • Opérateurs et conversion implicite230
      • 7.14. Traits232
      • 7.14.1. Principe232
      • 7.14.2. Illustration et exemple simple234
      • 7.14.3. Synthèse243
      • 7.15. Classe Valeur (ou Value Class)246
      • 7.16. Paquetages247
      • 7.16.1. Déclaration247
      • 7.16.2. private et protected252
      • 7.16.3. package object253
      • 7.16.4. import254
      • Chapitre 8. Pattern matching (filtrage de motifs) 259
      • 8.1. match260
      • 8.1.1. Principes260
      • 8.1.2. match et switch261
      • 8.1.3. Détection de type262
      • 8.1.4. Conditionnelle de clause (garde)264
      • 8.1.5. Appariement de constantes par motif264
      • 8.1.6. tuples265
      • 8.1.7. Collections268
      • 8.1.8. Expressions régulières269
      • 8.1.9. case class271
      • Déclaration271
      • Affichage271
      • Evaluation272
      • Dérivation273
      • Simplification274
      • 8.1.10. Exceptions275
      • 8.2. for/yield275
      • 8.2.1. Parcours d'une collection276
      • 8.2.2. Filtrage276
      • 8.2.3. Itérateur277
      • 8.3. Fonctions partielles et case279
      • Chapitre 9. Les fonctions 283
      • 9.1. Introduction284
      • 9.1.1. Programmation impérative284
      • 9.1.2. Programmation fonctionnelle285
      • 9.2. Fonctions et méthodes287
      • 9.3. Conversion de méthode en fonction290
      • 9.4. Fonctions anonymes291
      • 9.5. Fonctions partielles292
      • 9.6. Type des paramètres294
      • 9.7. Fonctions d'ordre supérieur295
      • 9.8. Curryfication297
      • 9.9. Valeurs implicites de paramètres299
      • 9.10. Structures de contrôle300
      • 9.11. Fermeture (clôture ou closure)302
      • 9.12. Exemples302
      • 9.12.1. repeat... until302
      • 9.12.2. Délais et Threads303
      • Chapitre 10. Types paramétriques 305
      • 10.1. Principes306
      • 10.2. Bornes306
      • 10.2.1. Borne supérieure (upper bound)306
      • 10.2.2. Borne de conversion (view bound)308
      • 10.2.3. Borne inférieure (lower bound)309
      • 10.2.4. Borne contextuelle (context bound)310
      • 10.2.5. Composition des bornes311
      • 10.3. Variances312
      • 10.3.1. Covariance312
      • 10.3.2. Contravariance313
      • Chapitre 11. XML 315
      • 11.1. Document XML316
      • 11.2. child317
      • 11.3. label318
      • 11.4. Attributs318
      • 11.5. Insertion d'expressions319
      • 11.6. CData321
      • 11.7. Pattern matching321
      • 11.8. Réécriture323
      • 11.9. Recherche de chemins324
      • Chapitre 12. Future et Promise 327
      • 12.1. Future328
      • 12.1.1. Principe328
      • 12.1.2. Try329
      • 12.1.3. Attendre la fin d'un Future329
      • 12.1.4. Duration330
      • 12.1.5. Gestionnaires d'événements330
      • 12.1.6. map331
      • 12.1.7. recover333
      • 12.1.8. fallbackTo333
      • 12.1.9. for334
      • 12.1.10. andThen335
      • 12.2. Promise335
      • Chapitre 13. Acteurs Akka 339
      • 13.1. Future et acteurs340
      • 13.2. Création d'un acteur342
      • 13.3. Communication et case class346
      • 13.4. Logging347
      • 13.5. context348
      • 13.6. Hiérarchie d'acteurs350
      • 13.7. preStart et postStop352
      • 13.8. ask et Future353
      • 13.9. pipeTo355
      • 13.10. Superviseur356
      • 13.11. system.shutdown357
      • 13.12. Et plus357
      • Chapitre 14. Les continuations délimitées 359
      • 14.1. Motivation360
      • 14.2. Continuation Passing Style361
      • 14.3. reset et shift363
      • 14.3.1. Principe363
      • 14.3.2. Type de reset366
      • 14.3.3. Type de la continuation367
      • 14.4. Arguments de continuation367
      • 14.5. Clôture et contexte368
      • 14.5.1. Itération368
      • 14.5.2. Récursivité370
      • 14.6. Conclusion372
      • Chapitre 15. Conclusion générale 375
      • Bibliographie 379
      • Index 381

  • Origine de la notice:
    • FR-751131015
  • Disponible - 681.25(07) MEN

    Niveau 3 - Informatique