Modern functional languages, such as Scheme, ML and Haskell, provide support for first-class functions. That is, functions can be passed as arguments to functions and can be returned as the result of evaluating a function. First-class functions provide programmers with a powerful means of abstraction to capture computation patterns that reduce development time and result in elegant and easy to maintain code. To support first-class functions,functional languages heap-allocate closures at runtime to store the bindings of the free variables. This practice makes it difficult to predict heap paging behavior and to guarantee locality of reference. In this article, we present an alternative representation for first-class function based on partial evaluation and dynamic function generation. Instead of allocating closures, new functions are created at runtime which are specialized based on the bindings of its free variables. We present two implementation strategies and preliminary empirical results of our closureless implementation of a pure Scheme-like language on the MT system.