2008-12-02 22 views
27

Al haberme encontrado recientemente con this introduction to Factor, he tenido un poco de curiosidad por saber más. Además de las preguntas frecuentes oficiales mencionadas allí, ¿tiene recursos para aprender el idioma (así como el "paradigma" basado en la pila, si esa es la palabra correcta) que le han resultado útiles?Buenos recursos para aprender Factor

Como nota al margen, sería aprender Forth ayuda, o es como comparar C a Python (o lo que tiene)?

Respuesta

6

Puede comenzar aquí: http://concatenative.org/wiki/view/Factor

y hay una buena documentación que se incluye en el tiempo de ejecución/GUI. Simplemente instale y luego "Navegador" y verá la documentación con temas como "Su primer programa".

La documentación está disponible en línea, también: http://docs.factorcode.org/
(Es la misma que la que se obtiene cuando se instala Factor.)

No se olvide de suscribirse a planet-factor.

+0

Estos más el video de Google Tech Talk al que hace referencia Peter Mortensen a continuación. – semperos

4

He estado enseñándome Factor recientemente: en realidad encontré Forth como una buena tarde de introducción al concepto de lenguajes basados ​​en pila (y como arqueólogo de software, es divertido retroceder algunos años para obtener una historia lección).

Para ello no creo que lo hace ningún daño a tomar unas cuantas horas para instalar gforth o implementación similares Forth y empezar a trabajar a través de los primeros capítulos de starting forth o using ANS forth - Me pareció bastante interesante, y porque solo me mojé el dedo del pie, no me ha enseñado nada que haya tenido que desaprender mientras empiezo a aprender el factor.

Una vez que haya progresado un poco más en el factor de aprendizaje, le haré saber lo que he encontrado útil (¡o no tan útil!).

27

Factor está muy inspirado en Forth y otros lenguajes de pila. También toma ideas de Lisp y Smalltalk. Por lo que he leído en línea, no es necesario aprender ninguno de esos idiomas antes de aprender Factor. No va a doler si lo hace, sin embargo :)

El mayor problema que he encontrado es la juventud del idioma. En otras palabras, los ejemplos de código en varios blogs/sitios estarán desactualizados porque usaron versiones anteriores de Factor (0.6, 0.7, 0.8, etc.). El factor 0.9 y superior es más probable que permanezca igual.

Una vez que haya pasado los conceptos básicos, los documentos (en línea + en el oyente) son bastante claros. Los documentos ocasionalmente sufren el mismo problema que las publicaciones de blog: algunos ejemplos de código obsoletos. Aún tiene las listas de correo/IRC para ayudar si realmente se queda atascado.

Solo he utilizado los documentos hasta el momento, en lugar de las listas de correo/IRC. Luego experimento con el oyente para aprender/explorar un nuevo concepto que encuentro en los documentos.

Este es el primer idioma en el que la mayoría de mis preguntas se responden simplemente al profundizar en los documentos de una función. La mayor parte de Factor está escrito en Factor, por lo que las cosas se vuelven más claras a medida que pasas más tiempo con los documentos.

(El segundo problema más grande que he tenido es tratar de entender el framework web (Furnace) .El framework web es más rico en funciones que lo que estoy acostumbrado. No es nada imposible, solo requiere algo de práctica y explorar el documentos)

La introducción más rápida.a las lenguas por concatenación que he encontrado: http://github.com/raganwald/homoiconic/blob/master/2008-11-16/joy.md#readme

Sus primeros pasos en Factor: http://concatenative.org/wiki/view/Factor/Learning

Estos vídeos entrar en más detalles con respecto a la escritura de código Factor:

  • 90 vídeo minucioso podría ayudar a aprender los conceptos básicos de los factores: YouTube: Factor: An extensible, interactive Language - Básicamente, Slava (creador de factores) ofrece una introducción de video. al factor. Es parte de la serie Google Talk. (Hay una versión de alta y baja calidad en caso de que no pueda ver las diapositivas). Los conceptos de factor también se comparan con otros idiomas.
  • 13 minutos de video: Forth @ RubyConf 2008. Una breve demostración de Forth. También menciona algunas ideas que son comunes en todo el mundo del software.
  • 100 minutos de video: Factor presented to Lisp programmers. El audio no es la mejor calidad de video, pero sigue siendo muy buena. Si ve los otros videos, puede omitir algunas de las partes iniciales de esto.

Algunos desvíos:

Éstos son algunos de blog publicaciones que pueden ayudar a proporcionar dirección:

Comprender las diversas abstracciones y bibliotecas que están disponibles es clave para comprender Factor: colecciones, palabras genéricas, alevines, locales, macros, memorando, PEG, la impresora bonita, etc. Hacer un uso efectivo de estas herramientas puede reducir la cantidad de trabajo requerido para resolver un problema en un orden de magnitud.

Factor es definitivamente el idioma más divertido. Tiene menos sorpresas que otros idiomas. Me resulta más fácil aprender que Ruby o Lisp. Sólo por diversión, aquí hay una tanda de lenguaje entre Lisp y Factor:

Para cualquiera que esté interesado en lenguajes basados ​​en la pila, este artículo puede ayudar a: The Joy of Catenative Languages (Parts 1, 2, 3) (es más general y utiliza el lenguaje Cat para ejemplos. Me ayudó a aprender conceptos básicos de Factor.)

4

Creo que la excelente presentación de Slava Pestov "Factor: an extensible interactive language" en Google (Google T ech Talk) cuenta como un buen recurso para aprender Factor. There son muchas demostraciones de los diferentes aspectos de Factor que que debe poder probar en su sistema.Por ejemplo, la demo de usar Factor para implementar un servidor de tiempo de Internet , aprox. 1 h 07 min 20 segs y cierres léxicos, 46 min 35 secs. De hecho, la mayor parte de la presentación es una demostración.

El vídeo de Flash es de 141 MB, 1 h 36 min 38 seg, tiempo de presentación otoño de 2008. Slava Pestov es el creador del lenguaje de programación Factor y jEdit, un editor de texto popular.