2009-09-29 28 views
7

Sé que todos los 3 están relacionados, y he visto bastantes respuestas para problemas en Project Euler escritos en J, y unos pocos escritos K. Lo que me pregunto es, ¿cuál sugeriría? aprendiendo, ¿y dónde sugeriría ir a buscar los materiales para aprender?Aprendiendo J/K/APL

+1

@Mark: Compiled C miró en un visor hexadecimal no tiene mucho sentido tampoco, pero hay una lógica en ese lío de todos modos. – MPelletier

Respuesta

2

Dada la naturaleza de los lenguajes individuales, y la disponibilidad de material, voy a ir con J.

La corriente J intérprete no es de código abierto, pero la especificación de lenguaje. Entonces, si el intérprete J oficial ya no es libre, un proyecto de código abierto podría implementarlo.

K parece estar muerto, y reemplazado por Q. Todas las licencias en él parecen ser de propiedad, y el intérprete parece ser más difícil de encontrar (ya que están tratando de vender kdb, no Q).

No puedo encontrar una versión de APL para usar.

+1

Para APL: prueba NARS2000 –

+0

Encuentro que J es lo que más se puede usar actualmente. Yo también lamento la falta de una solución moderna de código abierto, especialmente porque J Software no está interesado en dar soporte a una de mis plataformas de elección, pero parece que la situación podría cambiar ya que parece haber una renovación del interés en estos idiomas. –

8

APL

Creado por Kenneth Iverson como el lenguaje de programación matriz original. Utiliza un juego de caracteres no ASCII ya que no hay palabras reservadas. El British APL Association mantiene una lista actualizada de intérpretes (tanto gratuitos como comerciales), así como información sobre los idiomas inspirados en APL que se detallan a continuación.

A +

Creado por Arthur Whitney como un seguimiento de APL. El código fuente está disponible bajo GPL y hay una extensión XEmacs incluida. Descárguelo del website.

J

Creado por Kenneth Iverson y Roger Hui, esto sólo requiere de caracteres ASCII. La fuente solía costar dinero, aunque recientemente se lanzó bajo GPL. Descárguelo del website.

K

Otra lengua Arthur Whitney, esto también utiliza caracteres ASCII. La compañía que está detrás de esto ha desmantelado el lenguaje, pero está el código abierto Kona.

Q

incorporado en la parte superior de K para incluir la consulta de tipo SQL/unirse a las capacidades (tablas son una incorporado en el envase), este lenguaje se construye sobre el manejo de una gran cantidad de datos. Una versión con licencia no comercial se puede descargar desde el website.


En cuanto a lo que se usa activamente, Q es bastante popular en las finanzas, mientras que J tiene algún apoyo de la academia y los aficionados. Esos dos son su mejor apuesta para la programación de matriz en estos días.

0

Hay un intérprete APL gratuito llamado NAS2000, pero me parece que sólo es útil para la prueba de concepto. A veces recibo resultados incorrectos (programé en APL hace años en todo, desde un 8K IBM 1130 a un PC/XT y, a veces, creo que los resultados son incorrectos) mientras que otras veces son terriblemente lentos. El mejor caso en J funciona tan rápido como cualquier cosa. Nunca he usado K, he intentado hacer unos 100 problemas de Euler en J, y recién estoy comenzando a entender realmente el rango. (Alrededor de 10 de ellos, he hecho en D, uno en Lisp con cálculos de apoyo en J, y uno en un paquete de programación lineal entero que luego abandoné para D cuando descubrí que no me daría la respuesta correcta a pesar de lo que se cree que son restricciones codificadas correctamente.

J es, en el fondo, un lenguaje matemático, y se adapta bien a la mayoría de los problemas de Euler, por lo que simplemente acurrúquelos y hágalos, buscando en el sitio jsoftware.com cuando Necesito, es lo mejor que puedes hacer.