Computação Quântica com Sounio
Sounio impõe a teorema da não clonagem da mecânica quântica no tempo de compilação via tipos lineares: um Qubit é um recurso linear que deve ser consumido exatamente uma vez. Tentar copiá-lo produz um erro de compilação.
Tipos Lineares para Estados Quânticos
// Um Qubit não pode ser clonado.
// portas padrão de quântica (H, X, Y, Z, CNOT) consumem e retornam Qubits.
função aplica_hadamard(q: Qubit) -> Qubit {
// aplicar a porta H ...
}
estrutura QubitPair { fst: Qubit, snd: Qubit }
função aplica_cnot_pair(control: Qubit, target: Qubit) -> QubitPair {
// aplicar a porta CNOT ...
}
função bell_state() -> QubitPair {
let q1 = alocar_qubit()
let q2 = alocar_qubit()
let h1 = aplica_hadamard(q1)
let pair = aplica_cnot_pair(h1, q2)
pair
}