2009-09-29 25 views
7

So che tutti i 3 sono correlati, e ho visto alcune risposte per problemi in Project Euler scritto in J, e alcuni scritti K. Quello che mi chiedo è, quale suggeriresti apprendimento, e dove suggeriresti di ottenere i materiali per impararlo?Learning J/K/APL

+1

@Mark: C compilato in un visualizzatore esadecimale non ha molto senso, ma c'è una logica in questo pasticcio lo stesso – MPelletier

risposta

2

Data la natura delle singole lingue, e la disponibilità di materiale, ho intenzione di andare con J.

L'attuale J interprete non è open source, ma il linguaggio è spec. Quindi, se l'interprete J ufficiale non fosse più libero, un progetto open source potrebbe implementarlo.

K sembra essere morto e sostituito da Q. Tutte le licenze su di esso sembrano essere proprietarie e l'interprete sembra essere più difficile da trovare (poiché stanno cercando di vendere kdb, non Q).

Non riesco a trovare una versione di APL da utilizzare.

+1

Per APL: prova NARS2000 –

+0

Trovo che J sia la cosa più usabile al mondo, mi lamento troppo per la mancanza di una moderna soluzione open source, soprattutto perché J Software non è interessato a supportare una delle mie piattaforme di scelta, ma sembra che la situazione potrebbe cambiare poiché sembra esserci un rinnovato interesse in queste lingue. –

8

APL

Creato da Kenneth Iverson come il linguaggio di programmazione matrice originale. Utilizza un set di caratteri non ASCII in quanto non ci sono parole riservate. Lo British APL Association mantiene un elenco aggiornato di interpreti (sia gratuiti che commerciali) nonché informazioni sulle lingue ispirate all'APL illustrate di seguito.

A +

Creato da Arthur Whitney come un follow-up a APL. Il codice sorgente è disponibile sotto GPL e c'è un'estensione XEmacs inclusa. Scarica da website.

J

Creato da Kenneth Iverson e Roger Hui, questo richiede solo caratteri ASCII. La fonte era costata denaro, anche se recentemente è stata rilasciata sotto licenza GPL. Scarica dal website.

K

Un'altra lingua Arthur Whitney, questo usa i caratteri ASCII. La società dietro di esso ha da allora smantellato la lingua, ma c'è l'open source Kona.

Q

Costruito sulla cima di K per includere query SQL-like/unirsi capacità (tavoli sono un built-in container), questo linguaggio è costruito sulla gestione grandi quantità di dati. Una versione con licenza non commerciale può essere scaricata dal website.


Per quanto riguarda ciò che è utilizzato attivamente, Q è abbastanza popolare nel campo della finanza, mentre J ha un certo sostegno da parte del mondo accademico e hobbisti. Questi due sono la soluzione migliore per la programmazione di array in questi giorni.

0

C'è un APL interprete gratuito chiamato NAS2000, ma trovo che sia utile solo per prova di concetto. A volte ottengo risultati non corretti (ho programmato in APL anni fa su tutto, da un 11K IBM 1130 a un PC/XT ea volte penso che i risultati siano errati) mentre altre volte sono semplicemente orribilmente lenti. Il caso migliore in J funziona alla velocità di qualsiasi altra cosa. Non ho mai usato K, ho provato a fare circa 100 problemi di Eulero in J, e sto solo iniziando a capire davvero il grado. (Circa 10 di questi, ho fatto in D, uno in Lisp con calcoli di supporto in J e uno in un pacchetto di programmazione lineare intero che ho poi abbandonato per D quando ho scoperto che non mi avrebbe dato la risposta corretta nonostante quello che ho creduto di essere vincoli opportunamente codificati

J è, al suo centro, un linguaggio matematico, ed è adatto alla maggior parte dei problemi di Eulero, quindi basta accovacciarli e farli, cercando nel sito jsoftware.com quando È necessario, è la cosa migliore che puoi fare.