Je ne suis pas sûr que cela réponde tout à fait à votre question, mais vous trouverez que Factor se décrit lui-même comme un concaténatif la langue avant tout. Il se trouve qu'il possède également un modèle d'exécution basé sur la pile. Malheureusement, je n'arrive pas à trouver l'article du blog de Slava( ? ou peut-être sur le Wiki de Factor ?) qui parle de cela.
Le modèle concaténatif signifie essentiellement que vous faites circuler des "morceaux de code" (c'est ainsi que vous programmez de toute façon) et que la composition ressemble à la concaténation. Des opérations comme le currying sont également faciles à exprimer dans un langage basé sur la pile, puisqu'il suffit de pré-composer avec du code qui ajoute une chose à la pile. Dans Factor, au moins, ceci est exprimé par un mot appelé curry
. Cela rend beaucoup plus facile la programmation d'ordre supérieur, et le mappage de séquences finit par devenir la "façon évidente de faire". Je venais de Lisp et j'ai été étonné, en revenant après avoir programmé un peu en Factor, de ne pas pouvoir faire des "choses évidentes" comme bi
en Lisp. Cela change vraiment la façon dont vous exprimez les choses.
Par ailleurs, il est sage de ne pas trop s'attacher à la manipulation des piles. En utilisant le locals
vocabulaire (décrit ici : http://docs.factorcode.org/content/article-locals.html ), vous n'avez pas à vous soucier de remuer les choses. Il existe souvent une façon élégante d'exprimer les choses sans variables locales, mais j'ai tendance à le faire en second.
1 votes
Une supposition au hasard - d'après la syntaxe, il semble qu'il soit possible de compiler très efficacement. On peut donc s'attendre à ce qu'un programme écrit en Factor soit extrêmement rapide.
0 votes
Une autre hypothèse : avez-vous vu golfscript ? Si vous vous y prenez vraiment bien, vous pouvez résoudre des problèmes en utilisant très peu de code. golfscript.com/golfscript
0 votes
@Hamish : Peut-être, bien que ce ne soit certainement pas le cas actuellement, et pourtant les gens utilisent toujours ces langues.
1 votes
Postscript (et donc PDF aussi) utilise un langage de pile.
2 votes
La pile est agréable une fois qu'on s'y est habitué. Par exemple, vous pouvez placer quelque chose sur la pile 10 lignes avant d'en avoir besoin, attendre, et le récupérer sans variables supplémentaires (qui doivent être nommées, documentées, etc.).
0 votes
Pour que vous soyez autorisé à utiliser ce site web.