Internal state is not necessary. Consider a function f mapping strings to strings by means of a lookup table. Here are some examples of f evaluated with well-chosen inputs:
f("Hi, Dr. S here, how are you now that you're a lookup table?") = "Very well, thank you. I notice no difference."
f("Hi, Dr. S here, how are you now that you're a lookup table? Really, none at all?") = "Yes, really no differences at all."
f("Hi, Dr. S here, how are you now that you're a lookup table? You have insulted my entire family!") = "I know you well enough to know that my last reply could not possibly have insulted you; someone must be feeding me fake input histories again."
There should probably be timestamps in the input histories but that's an implementation detail. For what it's worth, I hold that f is conscious.
Internal state is not necessary. Consider a function f mapping strings to strings by means of a lookup table. Here are some examples of f evaluated with well-chosen inputs:
f("Hi, Dr. S here, how are you now that you're a lookup table?") = "Very well, thank you. I notice no difference."
f("Hi, Dr. S here, how are you now that you're a lookup table? Really, none at all?") = "Yes, really no differences at all."
f("Hi, Dr. S here, how are you now that you're a lookup table? You have insulted my entire family!") = "I know you well enough to know that my last reply could not possibly have insulted you; someone must be feeding me fake input histories again."
There should probably be timestamps in the input histories but that's an implementation detail. For what it's worth, I hold that f is conscious.