Book Image

D Cookbook

By : Adam Ruppe
Book Image

D Cookbook

By: Adam Ruppe

Overview of this book

Table of Contents (21 chapters)
D Cookbook
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Using functional tools to query data


The std.algorithm module includes a variety of higher-order ranges that provide tools similar to functional tools. We've already used many of them in this chapter. Here, we'll put it all together to see how D code can be similar to a SQL query.

A SQL query is as follows:

SELECT id, name, strcat("Title: ", title)
    FROM users
    WHERE name LIKE 'A%'
    ORDER BY id DESC
    LIMIT 5;

How would we express something similar in D?

Getting ready

Let's create a struct to mimic the data table and make an array with the some demo information. The code is as follows:

struct User {
    int id;
    string name;
    string title;
}
User[] users;
users ~= User(1, "Alice", "President");
users ~= User(2, "Bob", "Manager");
users ~= User(3, "Claire", "Programmer");

How to do it…

Let's use functional tools to query data by executing the following steps:

  1. Import std.algorithm.

  2. Use sort to translate the ORDER BY clause. If your dataset is large, you may wish to sort it at the end...