7

J'ai appris les langages Factor et J pour expérimenter la programmation sans point. La mécanique de base des langues semble claire, mais se faire une idée de la façon d'aborder la conception d'algorithmes est un défi.Fingerling avec le code sans point?

Une source particulière de confusion pour moi est de savoir comment on devrait structurer le code de sorte qu'il soit facile d'expérimenter avec différents paramètres. Par cela, je veux dire le genre de chose que Mathematica et Matlab sont si bons; vous configurez un algorithme puis manipulez les variables et regardez ce qui se passe.

Comment faites-vous cela sans variables explicites? Peut-être que je pense à tout faux. Comment dois-je aborder cela dans une programmation sans points?

Répondre

9

Voici trois conseils importants que j'ai trouvé vraiment utile tout en traitant avec le paradigme concaténative (appliqué à la langue de programmation du facteur dans mon cas):

  • Factor votre code sans pitié. Ecrivez des fonctions extrêmement petites: s'il y a plus de 3-4 paramètres de pile, vous pourriez peut-être le diviser en parties plus petites.
  • Investissez votre temps dans l'apprentissage des combinateurs de flux de données (bi, tri, cliver, propagation, ...). Ils permettent d'exprimer des modèles de flux de données communs tout en supprimant le besoin de réarrangement de pile complexe.
  • Apprendre à construire des devis à partir d'autres citations. Utilisez des techniques de curry (curry, with, ...) pour construire des citations simples à partir des paramètres de la pile, et lorsque les choses deviennent trop complexes, utilisez les citations de Fried (le "fry" vocab). Ils permettent de construire facilement des citations imbriquées complexes à partir de motifs, sans aucun brassage de pile.

Et comme toujours, lisez et "Marchez" dans le code existant. Dans Factor, il est assez facile d'explorer l'exécution et de voir comment les choses fonctionnent.

Pour votre source spécifique de confusion, si vous avez beaucoup de paramètres d'entrée dans votre algorithme, la chose la plus importante à faire est d'étudier comment ils vont être utilisés. Récolter pour les modèles de flux de données. Vous devez vraiment penser à la meilleure façon de "planifier" les opérations sur le plus petit ensemble de paramètres liés.

C'est une expérience assez difficile, mais elle est aussi très enrichissante quand elle réussit. Nous nous sentons comme un compilateur humain après cela ..

Bonne chance!

Questions connexes