Nested Monte-Carlo search is a general algorithm that gives good results in single player games. Genetic Programming evaluates and combines trees to discover expressions that maximize a given evaluation function. In this paper Nested Monte-Carlo Search is used to generate expressions that are evaluated in the same way as in Genetic Programming. Single player Nested Monte-Carlo Search is transformed in order to search expression trees rather than lists of moves. The resulting program achieves state of the art results on multiple benchmark problems. The proposed approach is simple to program, does not suffer from expression growth, has a natural restart strategy to avoid local optima and is extremely easy to parallelize.