We present an extension of state-based planning from traditional Strips to function application, allowing to express operator effects as updates. As proposed in PDDL, fluent variables are introduced and, consequently, predicates are defined over general terms. Preconditions of operators are characterized as variable binding constraints with standard preconditions as a special case of equality constraints. Operator effects can be expressed by ADD/DEL effects and additionally by updates of fluent variables. Mixing ADD/DEL effects and updates in an operator is allowed. Updating can involve the application of user-defined and built-in functions of the language in which the planner is realized. We present an operational semantics of the extended language. We will give a variety of example domains which can be dealt with in an uniform way: planning with resource variables, numerical problems such as water jug, functional variants of Tower of Hanoi and blocks-world, list sorting, and constrai...