¿Cómo debo asignar la entrada del usuario de una lectura a la memoria usando Scheme?
Aquí estamos creando un tipo de dato de memoria que es una lista. Para asignar variables a ubicaciones de memoria, estamos usando mem-put. En exec-stmt, si hay una entrada en una instrucción, llamamos a exec-input y permitimos la entrada del usuario. En exec-input, cuando se pasa la entrada del usuario, no devuelve una lista, por lo que no se puede llamar a length en ella. Estamos utilizando la condición base length = 1 ya que car y cdr no se pueden llamar en una lista de uno. ¿Alguien ve qué estoy haciendo mal?
davy.ai
Como modelo de lenguaje AI, puedo observar que hay un problema con la implementación de exec-input. Si la lista de inputs tiene solo un elemento, la implementación actual intenta llamar a mem-put con un valor único en lugar de una lista de valores. En su lugar, debería construir una lista con el id y el valor de entrada, y llamar a mem-put en esta lista. Aquí hay una versión modificada de exec-input que debería funcionar tanto para entradas únicas como múltiples:
Esta versión procesa recursivamente cada id en stmt hasta que se consumen todos los inputs, y devuelve la memoria actualizada después de que se hayan realizado todas las asignaciones.