Question

Je viens d'un milieu de C, Fortran, Python, R, Matlab, et certains Lisp et j'ai lu quelques choses sur Haskell.Ce sont bien des idées/exemples en J ou en d'autres langues de la famille APL qui sont uniques et pas mis en œuvre dans plus de langues communes?Je suis toujours intéressé à trouver ce que je suis en manque...

Était-ce utile?

La solution

J a un très grand ensemble d'opérateurs qui font qu'il est facile de réunir des programmes complexes sans avoir à chasser pour une bibliothèque.Il a extrêmement puissantes capacités de traitement, ainsi que itératif qui permettaient de rendre explicites les structures de contrôle de pertinence pour la plupart des fins, si bien que je préfère à l'aide du tenseur de l'algèbre à la déclaration explicite d'une boucle parce que c'est plus pratique.J exécute un interprète, mais bon J script peut être aussi rapide qu'un programme écrit dans un compilateur de langage.(Quand vous prenez explicite des boucles, l'interprète n'a pas à compiler le contenu de la boucle à chaque fois qu'il s'exécute.)

Un autre aspect amusant de J est tacite de la programmation.Vous pouvez créer des scripts sans référence explicite aux variables d'entrée, ce qui vous permet d'exprimer une idée purement en termes de ce que vous comptez faire.Par exemple, j'ai pu définir la fonction moyenne comme " en additionnant les termes dans une liste et en les divisant par le nombre d'entrées dans la liste comme suit:

(+/ % #)

ou je pourrais faire un script qui les tranches dans un tableau 2D et retourne uniquement les moyennes des lignes qui ont des moyennes supérieures à 10:

(10&<#])(+/%#)"1

Il y a beaucoup d'autres trucs sympa que vous pouvez faire avec J;c'est une forme exécutable de la notation mathématique.Des idées de généraliser facilement, de sorte que vous obtenez beaucoup de bénéfices de l'apprentissage tout un aspect de la façon dont le langage fonctionne.

Autres conseils

Je pense que l'un des aspects les plus intéressants de J est que c'est l'une des rares langues non-von-Neumann qui sont même à distance ordinateurs multiples.

uhm.J Mainstream?Eh bien, oui, comparé à Autres langues non-Neumann, c'est!Il n'y a que très peu de langages non-von-Neumann pour commencer, la plupart de ceux qui vivent uniquement à l'intérieur de la thèse de doctorat et n'ont jamais été réellement mis en œuvre et ceux qui étaient ont été utilisés habituellementune base d'utilisateur de 1 si même cela.En règle générale, ils sont considérés comme réussis si au moins un des utilisateurs ne s'asseement pas au même étage que le gars qui l'a inventé.

comparé à que , j est grand public.En particulier, J est basé sur la FP de John Backus depuis sa conférence de récompense de Turing Turing "< peut-on libérer du style von Neumann? " et c'est AFaik la seule mise en œuvre de travail.(Je ne pense pas que l'arrière-plan ait jamais réellement mis en œuvre FP, par exemple.)

Ceci n'est peut-être pas aussi unique que je ne le fais pas, mais la fonctionnalité supérieure que je peux penser pour J est une typing implicite.Il crée un bon niveau d'abstraction au-dessus de l'exécution et de la gestion de la mémoire pour se concentrer sur les données traitées.

Supposons que vous ayez besoin de stocker un numéro:

var1 =: 10

Et c'est fait.Array?

var2 =: 4 8 15 16 23 42

fait.Oh, mais attendez, vous devez diviser cela par 3,7?Ne vous inquiétez pas avec le casting, allez-y:

var2 % 3.7

Être débarrassé de cette nécessité de lancer et de manipuler et d'allouer est une petite bénédiction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top