Sarah Marshall

Hello, world!

I’m Sarah Marshall, a software engineer at Microsoft Quantum. I work on the compiler and runtime for Q#, a high-level quantum programming language. Before that, I studied computer science at the University of Washington.

I like learning languages and making languages.

These days, I’m into functional programming—my favorite languages are Haskell, F#, and Scala. I co-created KnitScript, a domain-specific language for composing knitting patterns.

This is my personal blog where sometimes I might write about cool things I find or projects I’m involved with.

The many worlds of Schrödinger's cat

It started as a thought experiment to bring to light an apparent paradox of quantum mechanics, but the many-worlds interpretation sheds a different light on Schrödinger’s cat. In a real sense—if you’re willing to accept the premise of many worlds—Schrödinger’s cat can be both alive and dead at the same time. The wave function never collapses: what we see as collapse is only an illusion, brought on by entanglement between the observer, the observee, and the rest of the environment, as the universe diverges to realize all possible measurement outcomes simultaneously.

Visualizing quantum state with Q#

A great thing you can do with quantum simulators that you can’t do with a real quantum computer is peek inside at the quantum state. Why would you want to do this? Well, often in the course of developing a quantum program, something goes wrong, and it’s helpful to inspect the quantum state to try to find where the problem is, much like you would add print statements to debug a classical program. Or perhaps nothing is wrong, but you want to trace the execution of a quantum algorithm for demonstration purposes.