I know that this might seem like a stupid question, because declarative is not really an electrical term. I'm having a discussion (argument) with someone who is a functional programming fanatic, and they claimed that
Nope, they're fundamentally declarative. They built an imperative instruction set on top of a declarative model. ISA and machine code is imperative, sure. But; CPUs, GPUs, etc are all declarative.
If it wasn't for diodes, all parts could be emulated in lambda calc. Hence why it is a bicartesian closed category.
I disagree with this, because I would argue that CPUs are machines that have internal state that they mutate. In fact, computation is all about mutation (of memory, or registers, or latches).
Who is right?