Computational semantics is the art and science of computing meaning in natural language. The meaning of a sentence is derived from the meanings of the individual words in it, and this process can be made so precise that it can be implemented on a computer. Designed for students of linguistics, computer science, logic and philosophy, this comprehensive text shows how to compute meaning using the functional programming language Haskell. It deals with both denotational meaning (where meaning comes from knowing the conditions of truth in situations), and operational meaning (where meaning is an instruction for performing cognitive action). Including a discussion of recent developments in logic, it will be invaluable to linguistics students wanting to apply logic to their studies, logic students wishing to learn how their subject can be applied to linguistics, and functional programmers interested in natural language processing as a new application area.
I started reading this book as a course book for a class. At that time Haskell was just the first functional programming language that I tried, so the book was pretty hard, not to mention that many subjects covered in it requires readers to have certain linguistic background. I thought that the book was both very dry and technical. Recently I have to reread it to be a teaching assistant in that same course. The second read feels much more comfortable, if not enjoyable. If you find the subject interesting but the book too technical, try read it after reading some book on formal semantics, such as "Semantics: An Introduction to Meaning in Language".
This book gives a taster for some aspects of computational semantics with toy implementations of various things in Haskell. The bibliography and further reading is quite nice.