functional language properties