Articles of scala

Quand devrais-je (et devrais-je pas) utiliser l’annotation @inline de Scala?

Je crois comprendre les bases des fonctions inline: au lieu d’un appel de fonction entraînant la mise en place de parameters sur la stack et une opération d’appel, la définition de la fonction est copiée au moment de la compilation. lors de l’exécution. Alors je veux savoir: Le scalac utilise-t-il des astuces pour intégrer certaines […]

Pourquoi Spark échoue-t-il avec java.lang.OutOfMemoryError: limite de surcharge du GC dépassée?

J’essaie d’implémenter un travail Hadoop Map / Reduce qui a bien fonctionné avant dans Spark. La définition de l’application Spark est la suivante: val data = spark.textFile(file, 2).cache() val result = data .map(//some pre-processing) .map(docWeightPar => (docWeightPar(0),docWeightPar(1)))) .flatMap(line => MyFunctions.combine(line)) .reduceByKey( _ + _) Où MyFunctions.combine est def combine(tuples: Array[(Ssortingng, Ssortingng)]): IndexedSeq[(Ssortingng,Double)] = for (i […]

Quel est le but du langage de programmation Scala?

À mon avis, chaque langue a été créée dans un but précis. Pour quoi Scala a-t-il été créé et quels problèmes résout-il le mieux?

Comment définissez-vous un type pour une fonction dans Scala?

J’espère qu’il existe un moyen de définir un type pour une fonction dans Scala. Par exemple, disons que je veux une fonction qui prend deux Ints et retourne un booléen, je pourrais définir une fonction qui utilise cela comme ceci: def checkInts(f: (Int,Int) => Boolean) = { // do stuff } Est-il possible de définir […]

En tournant A => M en M

Pour une monade M , est-il possible de transformer A => M[B] en M[A => B] ? J’ai essayé de suivre les types en vain, ce qui me fait penser que ce n’est pas possible, mais je pensais demander quand même. En outre, la recherche de Hoogle pour a -> mb -> m (a -> […]

Comment les coroutines sont-elles implémentées dans les langages JVM sans prise en charge de JVM?

Cette question a été posée après la lecture de la proposition Loom , qui décrit une approche de mise en œuvre de coroutines dans le langage de programmation Java. En particulier, cette proposition indique que pour implémenter cette fonctionnalité dans la langue, un support JVM supplémentaire sera requirejs. Si je comprends bien, plusieurs langages de […]

Que fait T {} dans Scala?

En parcourant le code Shapeless, je suis tombé sur cet {} ici et ici : trait Witness extends Serializable { type T val value: T {} } trait SingletonOps { import record._ type T def narrow: T {} = witness.value } Je l’ai presque ignoré comme une faute de frappe car il ne fait rien […]

Estimation empirique du rendement en temps réel

Contexte Je voudrais estimer la performance de certaines méthodes dans une bibliothèque grâce à des tests de performance. Je n’ai pas besoin de précision – il suffit de montrer que quelque chose est O (1), O (logn), O (n), O (nlogn), O (n ^ 2) ou pire que cela. Puisque big-oh signifie limite supérieure, l’estimation […]

Désactiver une option en option

Disons que j’ai un val s: Option[Option[Ssortingng]] . Il peut donc avoir les valeurs suivantes: Some(Some(“foo”)) Some(None) None Je veux le réduire pour que le premier devienne Some(“foo”) alors que les deux autres deviennent None . De toute évidence, il y a plusieurs façons d’y parvenir, mais je cherche un moyen simple, peut-être intégré, moins […]

Moyen idiomatique de mettre à jour la valeur dans une carte en fonction de la valeur précédente

Disons que je stocke les informations des comptes bancaires dans une Map immuable: val m = Map(“Mark” -> 100, “Jonathan” -> 350, “Bob” -> 65) et je veux retirer, disons, 50 $ du compte de Mark. Je peux le faire comme suit: val m2 = m + (“Mark” -> (m(“Mark”) – 50)) Mais ce code […]