Desde mi experiencia, el uso de la programación funcional le permite preocuparse por lo que está haciendo, no por cómo lo va a hacer. Los lenguajes de programación imperatice de bajo nivel (C, C ++, Ada, etc.) son excelentes para cuando sabes lo que estás haciendo y estás tratando de hacerlo funcionar bien y realmente rápido. Preocuparse por las pérdidas de memoria o hacer la matriz del tamaño adecuado lo está distrayendo de resolver sus problemas.
Además, las características del lenguaje como los átomos permiten que los datos se pasen de una manera simple y fácil, sin tener que declarar cosas como enumeraciones y tal primero.
Las listas, la característica más importante en un lenguaje llamado Lisp ( Lis t P rocessing) permiten hacer las cosas de una manera que los lenguajes imperativos no permiten.
Por ejemplo, cuando estaba haciendo una IA de juego de Damas en Racket sin usar árboles de juego, pasé los movimientos disponibles en una lista de sintaxis ((espacio actual) (1) (2) (3) (4)). El espacio actual es solo las coordenadas del espacio actual, es decir. la posición inicial del verificador, es decir. (2 3). Sin embargo, 1-4 son listas de la misma sintaxis ((xy) _ _ _ _). Esto puede sonar confuso, pero déjame simplificarlo. Usé una lista recursiva para pasar los movimientos disponibles a diferentes funciones. Los lenguajes de programación como C ++ o Java requerirán que haga una declaración de clase larga antes de poder usar la lista y luego tendrá que preocuparse por las copias superficiales y profundas a medida que avanza por el programa.
Los lenguajes imperativos son excelentes para hacer los cálculos de potencia. Sin embargo, cuando el propósito, la función y la velocidad de implementación son importantes, use lenguajes de programación funcionales.
La respuesta corta es que Lisps (Common Lisp, Racket, and Scheme) son excelentes para la IA porque te permiten trabajar de manera rápida y efectiva en el problema utilizando un poderoso conjunto de herramientas y no preocuparte por lo esencial.
- ¿Cómo se siente Karen Kolkey sobre la realidad virtual?
- ¿Podemos imitar artificialmente las señales eléctricas enviadas por nuestros nervios?
- Programación de computadoras: ¿Cómo se creó la IA de Tekken 3?
- ¿Vale la pena seguir la EM para aprender Machine Learning?
- ¿Deberíamos tener miedo de la IA?