My old-fashioned personal site for writing about technology, work, and other things I care about.

You are viewing the mobile version of the site.

  • Declarative vs. Imperative Programming Language

    Declarative

    • You use the code to describe what you want but not how to get it
    • Real Life Example: I would like 5 red apples, please.
    • Declarative Code Example: Select Top 5 * from FruitTable where Type=‘Apple’ and Colour=‘Red

    Imperative

    • You tell the compiler what you want and how you want to get it
    • Real Life Example: I would like you to take all the fruit that you have and first get rid of all the fruit that is not apples, then with those apples I want you to look at each one and if it is red I want it, if not throw it away. Once I have 5 red apples you can stop sorting and then give me the fruit.
    • Imperative Code Sample in C#:
    List<Fruit> fruitList = GetFruit();
    List<Fruit> apples = new List<Fruit>();
    List<Fruit> redApples = new List<Fruit>();
    int maxApples = 5;
    int appleCount = 0;
    foreach (Fruit theFruit in fruitList)
    {
        if (theFruit.Type == "Apple")
        {
            apples.Add(theFruit);
        }
    }
    
    foreach (Fruit apple in apples)
    {
        if (appleCount < maxApples)
        {
            if (apple.Color == "Red")
            {
                redApples.Add(apple);
                appleCount++;
            }
        }
        else
        {
            break;
        }
    }
    GiveFruit(redApples);
    

    Obviously, there are better ways to perform a search for red apples, but this is just an example using the real-life steps.