This is written in an equational pseudocode.
    prefix([],x)      = true
    prefix(h::t,[])   = false
    prefix(a::u,b::v) = (a == b) and prefix(u,v)

An alternative is as follows. It assumes that the equations are tried in the order written, and that the first one whose pattern matches is chosen.

    prefix([],y)      = true
    prefix(x,[])      = false
    prefix(a::u,a::v) = prefix(u,v)
    prefix(x,y)       = false