ético revista pensamiento para log lecturas horas home gubernamental etica ethos desarrollo certificacion centro cdpe acceso scheme

scheme - revista - Beneficios del esquema de aprendizaje?



lecturas revista ethos gubernamental (9)

Acabo de comenzar uno de mis cursos, ya que las clases comenzaron hace 2 semanas, y estamos aprendiendo Scheme en este momento en uno porque asumo algún motivo más adelante, pero tan lejos de lo que está enseñando es básicamente cómo escribir en un esquema . Mientras estoy sentado aquí tratando de mantenerme despierto, intento comprender por qué me gustaría saber esto y por qué alguien lo usa. ¿En qué se destaca? La próxima semana planeo preguntarle, cuál es el objetivo de aprender aquí aparte de cómo escribir cosas en el esquema.


Algunas personas dicen que la mayor fortaleza de Scheme es como lenguaje de enseñanza. Si bien es muy beneficioso aprender programación funcional (es una forma completamente nueva de pensar), otro beneficio en el esquema de aprendizaje es que también es "puro". Claro que no puede hacer un montón de cosas como java, pero eso también es genial, es un lenguaje hecho completamente de paréntesis, caracteres alfanuméricos y un puñado de otros signos de puntuación.

En mi curso introductorio, nos enseñan Java, y veo a muchos de mis amigos luchando con ''public static void main'', aunque ese no es el objetivo del programa y cómo los profesionales no tienen más remedio que ''handwave'' hasta que lo hagan ''. re más avanzado. No ves eso en Scheme.

Si realmente quiere aprender lo que Scheme puede hacer en un pedazo de torta que es realmente difícil de implementar en lenguajes como Java, sugiero ver esto: http://mitpress.mit.edu/sicp/full-text/book/ book-ZH-12.html #% _ sec_1.3

Este es probablemente el mejor libro escrito en Scheme.


Es un lenguaje de programación funcional y hará que amplíe su experiencia.

Incluso si no lo usa en el mundo real no significa que no tenga ningún valor. Le ayudará a dominar cosas como la recursión y lo ayudará a forzarlo a pensar en los problemas de maneras diferentes a como lo haría normalmente.

Ojalá mi escuela nos obligara a aprender un lenguaje de programación funcional.


Los lenguajes como LISP (y el Esquema muy relacionado) son para programar lo que es el latín para el inglés.

Es posible que nunca vuelva a hablar en latín un día en su vida normal después de tomar un curso, pero el simple hecho de aprender un idioma como el latín mejorará su capacidad para usar el inglés.

Lo mismo es cierto para Scheme.


Mi problema fue que al aprender esto aprendimos clisp junto con eso. No pude mantener los dos lados para salvar mi vida.

Sin embargo, lo que aprendí de ellos fue cómo escribir mejor c y código java. Esto es simplemente por el diferente estilo de programación que aprendí. He adaptado más estilo funcional a algunos de mis programas y me ha ayudado en algunos casos.

Nunca me gustaría volver a programar en esquema o lisp si no fuera necesario, pero estoy contento de haber hecho al menos un poco de ellos solo para aprender la forma diferente de programar.


Scheme fue utilizado por la NASA para programar algunos de los rovers de Marte. Su uso en el mercado es bastante específico, pero como estoy seguro de que sus profesores le están diciendo, las cosas que aprenda en Scheme se trasladarán a la programación en general.


Sugeriría mantener una mente abierta al aprender. La mayoría de las veces en la escuela no comprendemos completamente qué / por qué estamos aprendiendo un tema en particular. Pero como he experimentado alrededor de un millón de veces en la vida, resulta ser muy útil y, por lo menos, ser consciente de ello te ayuda. El esquema, lo creas o no, te convertirá en un mejor programador.


Trata de no quedarte atrapado en detalles como el paréntesis y car / cdr. La mayoría de lo que estás aprendiendo se traduce a otros idiomas de una forma u otra. No se preocupe si puede o no llevar Scheme al mercado, es probable que esté aprendiendo otros idiomas más comercializables en otras clases. Lo que estás aprendiendo aquí es más importante.

Si está aprendiendo un esquema, puede aprender todo sobre cómo se implementan los sistemas de objetos (sugerencia: un sistema de objetos no siempre trata sobre un tipo que tiene métodos y variables de instancia vinculadas a él ...). Si bien este tipo de conocimiento no ayudará en el 95% de su trabajo diario, para el 5% de su trabajo dependerá de ese conocimiento.

Además, puede aprender acerca de estilos de computación completamente diferentes, tales como streams / evaluación diferida, o incluso programación lógica. También puede obtener más información sobre cómo se interpretan los programas informáticos en general; desde lo básico sobre cómo se evalúa el código del programa, hasta aspectos más profundos, como crear tu propio intérprete y compilador). Conocer este tipo de información es lo que separa a un buen programador de un gran programador.

El esquema no es realmente un lenguaje funcional, es más un método agnóstico que eso. Tal vez más al punto, Scheme es un excelente lenguaje para elegir si desea explorar con diferentes métodos de computación. Como ejemplo, se construyó un lenguaje funcional altamente paralelo "Termite" sobre Scheme.

En resumen, el punto en el esquema de aprendizaje es para que pueda aprender los fundamentos de la programación.

Si necesita ayuda para hacer que la programación en el programa sea más agradable, no dude en preguntar. Muchos programadores se quedan colgados (por ejemplo) del paréntesis, cuando hay formas perfectamente geniales de trabajar con el código fuente del esquema que hace que el paréntesis tenga algo que apreciar, en lugar de odiar. Como ejemplo, emacs con paredit-mode, algún tipo de modo de interacción de esquema y highlight-parenthesis-mode es bastante impresionante.


Veo a todas estas personas aquí diciendo que si bien nunca usarían Scheme de nuevo, sin embargo, ha sido un lenguaje valioso para aprender porque obliga a una cierta forma de pensar. Si bien esto puede ser cierto, espero que aprendan Scheme porque eventualmente lo encontrarán útil y no simplemente como un ejercicio de aprendizaje.

Aunque no es tremendamente rápido como un lenguaje compilado, ni es particularmente útil para servir sitios web o analizar texto, he descubierto que Scheme (y otros ceceos por extensión) no tiene paralelo en lo que respecta a simplicidad, elegancia y poderosa manipulación funcional. de estructuras de datos complejas. Para ser honesto, creo en Scheme. Es el idioma en el que resuelvo los problemas. No te des por vencido o simplemente toleres el Esquema, dale una oportunidad y no te decepcionará.

Por cierto, el mejor IDE para Scheme es DrScheme , y contiene extensiones de idioma para hacer todo lo que puede hacer en otro idioma, y ​​si encuentra algo que no puede, puede usar el C FFI y escribirlo usted mismo.


Los lenguajes funcionales como Scheme tienen una gran aplicación a las matemáticas, la inteligencia artificial, la lingüística y otras áreas altamente teóricas de la informática (aprendizaje automático, procesamiento del lenguaje natural, etc.). Esto se debe a la pureza de los lenguajes de programación funcionales, que no tienen efectos secundarios, así como a su capacidad para navegar por procedimientos de orden superior con facilidad. Un conocimiento sólido de los lenguajes de programación funcionales es fundamental para resolver muchas de las preguntas que se ciernen más allá de la frontera de la informática. Como beneficio adicional, se sentirá muy bien con los procedimientos de orden superior y la recursión.