Abstract. In this work we reconsider the replacement of predicate-like notation by functional terms, using a similar syntax to Functional Logic Programming, but under a completely different semantic perspective. Our starting point comes from the use of logic programs for Knowledge Representation and Nonmonotonic Reasoning, especially under three well-known semantics for default negation: Clark's completion, stable models and well-founded semantics. The motivation for introducing functions in this setting arises from the frequent occurrence of functional dependences in the representation of many domains. The use of functions allows us to avoid explicit axiomatization (to ensure the uniqueness of value) and provides a more compact representation by nesting functional terms. This gets rid of a considerable amount of unnecessary variables, what may be exploited for the process of program grounding, something common in this type of applications of Logic Programming. From a representational point of view, the most interesting introduced feature is the possibility of replacing default negation by the concept of default value of a function. In the paper, we explore this idea of functions with default values, providing adapted versions of the three mentioned semantics for the functional case, and equivalent translations into logic programs.