This paper presents an implicitly-typed functional, aspect-oriented programming language: λ AOP. The main contribution of the paper is a semantics for λ AOP advice weaving. The weaving is type-based and implemented statically. We extend the Hindley-Milner type inference system to inject applicable advices into lambda expressions during typing. The proposed semantics for advice weaving is close to the spirit of AspectJ, the most popular AOP language, where advices are injected before, after, or around points that match their respective pointcuts. For this purpose, the sequence construct of the extended λ-calculus is used. 1 Motivations and Background Aspect-Oriented Programming (AOP) paradigm [1] is an appealing approach that allows the separation of crosscutting concerns such as logging, synchronization, and persistence. The adopted model in this paper is the pointcutadvice model. The fundamental concepts of the pointcutadvice model are: join points, pointcuts, and advices. A join ...