...and:
I have limited brain power and I waste it thinking about control of program flow and basic result construction mechanisms
// I want to find out which sandwiches are dairy free
foreach piece in sandwiches:
if piece.has_dairy is false:
my_menu.add (piece)
Declarative Programming languages and techniques focus on
Subparadigm where we get results through application of rules about a problem domain
Our only concern as developers is to write rules and their outcomes
Tile based game engine using a rules based DSL to define game logic
[ > Player | Crate ] -> [ > Player | > Crate ]
======
RULES
======
[ > Player | Crate ] -> [ > Player | > Crate ]
[ Crate | Lava ] -> [ DOWN Crate | Lava]
[ Crate Lava ] [ Player ] -> [ Crate Lava ] [ HappyPlayer ]
Higher level abstractions and different approaches help us focus on solving problems
Lower level artifacts like IF are important but too widely present in our code
SQL
LINQ in C#
Google: declarative programming [your language]