First, C# "properties" is a very OOP concept. Another commenter mentioned Haskell, which has amazing strengths, but that's a whole other debate....