100% found this document useful (2 votes)
10 views

Functional Data Structures in R: Advanced Statistical Programming in R Thomas Mailund download

The document is about 'Functional Data Structures in R' by Thomas Mailund, which introduces the concept of functional data structures in the R programming language. It discusses the limitations of traditional mutable data structures and presents alternatives that allow for efficient algorithmic programming without altering existing data. The book covers various data structures and their implementations, emphasizing the trade-offs between programming time and execution speed in R.

Uploaded by

uundkah6588
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
10 views

Functional Data Structures in R: Advanced Statistical Programming in R Thomas Mailund download

The document is about 'Functional Data Structures in R' by Thomas Mailund, which introduces the concept of functional data structures in the R programming language. It discusses the limitations of traditional mutable data structures and presents alternatives that allow for efficient algorithmic programming without altering existing data. The book covers various data structures and their implementations, emphasizing the trade-offs between programming time and execution speed in R.

Uploaded by

uundkah6588
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 48

Functional Data Structures in R: Advanced

Statistical Programming in R Thomas Mailund


download

https://textbookfull.com/product/functional-data-structures-in-r-
advanced-statistical-programming-in-r-thomas-mailund/

Download full version ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Functional Data Structures in R: Advanced Statistical


Programming in R Mailund

https://textbookfull.com/product/functional-data-structures-in-r-
advanced-statistical-programming-in-r-mailund/

Functional Programming in R: Advanced Statistical


Programming for Data Science, Analysis and Finance 1st
Edition Thomas Mailund

https://textbookfull.com/product/functional-programming-in-r-
advanced-statistical-programming-for-data-science-analysis-and-
finance-1st-edition-thomas-mailund/

Domain Specific Languages in R Advanced Statistical


Programming 1st Edition Thomas Mailund

https://textbookfull.com/product/domain-specific-languages-in-r-
advanced-statistical-programming-1st-edition-thomas-mailund/

Domain Specific Languages in R Advanced Statistical


Programming 1st Edition Thomas Mailund

https://textbookfull.com/product/domain-specific-languages-in-r-
advanced-statistical-programming-1st-edition-thomas-mailund-2/
Metaprogramming in R: Advanced Statistical Programming
for Data Science, Analysis and Finance 1st Edition
Thomas Mailund

https://textbookfull.com/product/metaprogramming-in-r-advanced-
statistical-programming-for-data-science-analysis-and-
finance-1st-edition-thomas-mailund/

Advanced Object-Oriented Programming in R: Statistical


Programming for Data Science, Analysis and Finance 1st
Edition Thomas Mailund

https://textbookfull.com/product/advanced-object-oriented-
programming-in-r-statistical-programming-for-data-science-
analysis-and-finance-1st-edition-thomas-mailund/

Beginning Data Science in R: Data Analysis,


Visualization, and Modelling for the Data Scientist 1st
Edition Thomas Mailund

https://textbookfull.com/product/beginning-data-science-in-r-
data-analysis-visualization-and-modelling-for-the-data-
scientist-1st-edition-thomas-mailund/

Pointers in C Programming A Modern Approach to Memory


Management Recursive Data Structures Strings and Arrays
Thomas Mailund

https://textbookfull.com/product/pointers-in-c-programming-a-
modern-approach-to-memory-management-recursive-data-structures-
strings-and-arrays-thomas-mailund/

Advanced R Statistical Programming and Data Models:


Analysis, Machine Learning, and Visualization 1st
Edition Matt Wiley

https://textbookfull.com/product/advanced-r-statistical-
programming-and-data-models-analysis-machine-learning-and-
visualization-1st-edition-matt-wiley/
Functional Data
Structures in R
Advanced Statistical Programming in R

Thomas Mailund
Functional Data
Structures in R
Advanced Statistical
Programming in R

Thomas Mailund
Functional Data Structures in R: Advanced Statistical
Programming in R
Thomas Mailund
Aarhus N, Denmark

ISBN-13 (pbk): 978-1-4842-3143-2 ISBN-13 (electronic): 978-1-4842-3144-9


https://doi.org/10.1007/978-1-4842-3144-9
Library of Congress Control Number: 2017960831

Copyright © 2017 by Thomas Mailund


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Cover image by Freepik (www.freepik.com)
Managing Director: Welmoed Spahr
Editorial Director: Todd Green
Acquisitions Editor: Steve Anglin
Development Editor: Matthew Moodie
Technical Reviewer: Karthik Ramasubramanian
Coordinating Editor: Mark Powers
Copy Editor: Corbin P Collins
Distributed to the book trade worldwide by Springer Science+Business Media New York,
233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505,
e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a
California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc
(SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com, or visit www.apress.com/
rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is
available to readers on GitHub via the book's product page, located at www.apress.com/
9781484231432. For more detailed information, please visit www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
About the Author��������������������������������������������������������������������������������vii
About the Technical Reviewer�������������������������������������������������������������ix
Introduction�����������������������������������������������������������������������������������������xi

Chapter 1: Introduction������������������������������������������������������������������������1

Chapter 2: Abstract Data Structures����������������������������������������������������3


Structure on Data��������������������������������������������������������������������������������������������������4
Abstract Data Structures in R�������������������������������������������������������������������������������6
Implementing Concrete Data Structures in R��������������������������������������������������������9
Asymptotic Running Time�����������������������������������������������������������������������������������11
Experimental Evaluation of Algorithms���������������������������������������������������������������15

Chapter 3: Immutable and Persistent Data�����������������������������������������25


Persistent Data Structures����������������������������������������������������������������������������������26
List Functions������������������������������������������������������������������������������������������������������28
Trees�������������������������������������������������������������������������������������������������������������������37
Random Access Lists������������������������������������������������������������������������������������������56

Chapter 4: Bags, Stacks, and Queues�������������������������������������������������67


Bags��������������������������������������������������������������������������������������������������������������������68
Stacks�����������������������������������������������������������������������������������������������������������������73
Queues����������������������������������������������������������������������������������������������������������������74
Side Effects Through Environments��������������������������������������������������������������77
Side Effects Through Closures�����������������������������������������������������������������������79

iii
Table of Contents

A Purely Functional Queue����������������������������������������������������������������������������82


Time Comparisons�����������������������������������������������������������������������������������������84
Amortized Time Complexity and Persistent Data Structures�������������������������85
Double-Ended Queues�����������������������������������������������������������������������������������87
Lazy Queues��������������������������������������������������������������������������������������������������������95
Implementing Lazy Evaluation�����������������������������������������������������������������������96
Lazy Lists�������������������������������������������������������������������������������������������������������98
Amortized Constant Time, Logarithmic Worst-Case, Lazy Queues���������������107
Constant Time Lazy Queues������������������������������������������������������������������������118
Explicit Rebuilding Queue����������������������������������������������������������������������������124

Chapter 5: Heaps������������������������������������������������������������������������������135
Leftist Heaps�����������������������������������������������������������������������������������������������������140
Binomial Heaps�������������������������������������������������������������������������������������������������144
Splay Heaps������������������������������������������������������������������������������������������������������157
Plotting Heaps���������������������������������������������������������������������������������������������������178
Heaps and Sorting���������������������������������������������������������������������������������������������183

Chapter 6: Sets and Search Trees�����������������������������������������������������189


Search Trees�����������������������������������������������������������������������������������������������������190
Red-Black Search Trees������������������������������������������������������������������������������������192
Insertion������������������������������������������������������������������������������������������������������195
Deletion�������������������������������������������������������������������������������������������������������203
Visualizing Red-Black Trees������������������������������������������������������������������������226
Splay Trees��������������������������������������������������������������������������������������������������������231

iv
Table of Contents

Conclusions��������������������������������������������������������������������������������������247
A
 cknowledgements������������������������������������������������������������������������������������������248

Bibliography�������������������������������������������������������������������������������������249

Index�������������������������������������������������������������������������������������������������251

v
About the Author
Thomas Mailund is an associate professor in bioinformatics at Aarhus
University, Denmark. He has a background in math and computer science.
For the last decade, his main focus has been on genetics and evolutionary
studies, particularly comparative genomics, speciation, and gene flow
between emerging species. He has published Beginning Data Science in R,
Functional Programming in R, and Metaprogramming in R with Apress, as
well as other books.

vii
About the Technical Reviewer
Karthik Ramasubramanian works for one
of the largest and fastest-­growing technology
unicorns in India, Hike Messenger, where
he brings the best of business analytics
and data science experience to his role. In
his seven years of research and industry
experience, he has worked on cross-­industry
data science problems in retail, e-commerce,
and technology, developing and prototyping
data-driven solutions. In his previous role at Snapdeal, one of the largest
e-commerce retailers in India, he was leading core statistical modeling
initiatives for customer growth and pricing analytics. Prior to Snapdeal,
he was part of the central database team, managing the data warehouses
for global business applications of Reckitt Benckiser (RB). He has vast
experience working with scalable machine learning solutions for industry,
including sophisticated graph network and self-learning neural networks.
He has a master’s degree in theoretical computer science from PSG College
of Technology, Anna University, and is a certified big data professional. He
is passionate about teaching and mentoring future data scientists through
different online and public forums. He enjoys writing poems in his leisure
time and is an avid traveler.

ix
Introduction
This book gives an introduction to functional data structures. Many
traditional data structures rely on the structures being mutable. We can
update search trees, change links in linked lists, and rearrange values in a
vector. In functional languages, and as a general rule in the R programming
language, data is not mutable. You cannot alter existing data. The
techniques used to modify data structures to give us efficient building
blocks for algorithmic programming cannot be used.
There are workarounds for this. R is not a pure functional language,
and we can change variable-value bindings by modifying environments.
We can exploit this to emulate pointers and implement traditional
data structures this way; or we can abandon pure R programming and
implement data structures in C/C++ with some wrapper code so we can
use them in our R programs. Both solutions allow us to use traditional data
structures, but the former gives us very untraditional R code, and the latter
has no use for those not familiar with other languages than R.
The good news, though, is that we don’t have to reject R when
implementing data structures if we are willing to abandon the traditional
data structures instead. There are data structures that we can manipulate
by building new versions of them rather than modifying them. These data
structures, so-called functional data structures, are different from the
traditional data structures you might know, but they are worth knowing if
you plan to do serious algorithmic programming in a functional language
such as R.
There are not necessarily drop-in replacements for all the data
structures you are used to, at least not with the same runtime performance
for their operations, but there are likely to be implementations for most

xi
Introduction

abstract data structures you regularly use. In cases where you might have
to lose a bit of efficiency by using a functional data structures instead of a
traditional one, however, you have to consider whether the extra speed is
worth the extra time you have to spend implementing a data structure in
exotic R or in an entirely different language.
There is always a trade-off when it comes to speed. How much
programming time is a speed-up worth? If you are programming in R,
chances are you value programmer-time over computer-time. R is a high-­
level language and relatively slow compared to most other languages.
There is a price to providing higher levels of expressiveness. You accept
this when you choose to work with R. You might have to make the same
choice when it comes to selecting a functional data structure over a
traditional one, or you might conclude that you really do need the extra
speed and choose to spend more time programming to save time when
doing an analysis. Only you can make the right choice based on your
situation. You need to find out the available choices to enable you to work
data structures when you cannot modify them.

xii
CHAPTER 1

Introduction
This book gives an introduction to functional data structures. Many
traditional data structures rely on the structures being mutable. We
can update search trees, change links in linked lists, and rearrange
values in a vector. In functional languages, and as a general rule in the R
programming language, data is not mutable. You cannot alter existing data.
The techniques used to modify data structures to give us efficient building
blocks for algorithmic programming cannot be used.
There are workarounds for this. R is not a pure functional language,
and we can change variable-value bindings by modifying environments.
We can exploit this to emulate pointers and implement traditional
data structures this way; or we can abandon pure R programming and
implement data structures in C/C++ with some wrapper code so we can
use them in our R programs. Both solutions allow us to use traditional data
structures, but the former gives us very untraditional R code, and the latter
has no use for those not familiar with other languages than R.
The good news, however, is that we don’t have to reject R when
implementing data structures if we are willing to abandon the traditional
data structures instead. There are data structures we can manipulate by
building new versions of them rather than modifying them. These data
structures, so-called functional data structures, are different from the
traditional data structures you might know, but they are worth knowing if
you plan to do serious algorithmic programming in a functional language
such as R.

© Thomas Mailund 2017 1


T. Mailund, Functional Data Structures in R, https://doi.org/10.1007/978-1-4842-3144-9_1
Chapter 1 Introduction

There are not necessarily drop-in replacements for all the data
structures you are used to, at least not with the same runtime performance
for their operations—but there are likely to be implementations for most
abstract data structures you regularly use. In cases where you might have
to lose a bit of efficiency by using a functional data structure instead of a
traditional one, you have to consider whether the extra speed is worth the
extra time you have to spend implementing a data structure in exotic R or
in an entirely different language.
There is always a trade-off when it comes to speed. How much
programming time is a speed-up worth? If you are programming in R,
the chances are that you value programmer time over computer time. R
is a high-level language that is relatively slow compared to most other
languages. There is a price to providing higher levels of expressiveness.
You accept this when you choose to work with R. You might have to make
the same choice when it comes to selecting a functional data structure
over a traditional one, or you might conclude that you really do need the
extra speed and choose to spend more time programming to save time
when doing an analysis. Only you can make the right choice based on your
situation. You need to find out the available choices to enable you to work
data structures when you cannot modify them.

2
CHAPTER 2

Abstract Data
Structures
Before we get started with the actual data structures, we need to get
some terminologies and notations in place. We need to agree on what an
abstract data structure is—in contrast to a concrete one—and we need to
agree on how to reason with runtime complexity in an abstract way.
If you are at all familiar with algorithms and data structures, you can
skim quickly through this chapter. There won’t be any theory you are not
already familiar with. Do at least skim through it, though, just to make sure
we agree on the notation I will use in the remainder of the book.
If you are not familiar with the material in this chapter, I urge you to
find a text book on algorithms and read it. The material I cover in this
chapter should suffice for the theory we will need in this book, but there
is a lot more to data structures and complexity than I can possibly cover
in a single chapter. Most good textbooks on algorithms will teach you a lot
more, so if this book is of interest, you should not find any difficulties in
continuing your studies.

© Thomas Mailund 2017 3


T. Mailund, Functional Data Structures in R, https://doi.org/10.1007/978-1-4842-3144-9_2
Chapter 2 Abstract Data Structures

Structure on Data
As the name implies, data structures have something to do with structured
data. By data, we can just think of elements from some arbitrary set. There
might be some more structure to the data than the individual data points,
and when there is we keep that in mind and will probably want to exploit
that somehow. However, in the most general terms, we just have some
large set of data points.
So, a simple example of working with data would be imagining we
have this set of possible values—say, all possible names of students at a
university—and I am interested in a subset—for example, the students
that are taking one of my classes. A class would be a subset of students,
and I could represent it as the subset of student names. When I get an
email from a student, I might be interested in figuring out if it is from one
of my students, and in that case, in which class. So, already we have some
structure on the data. Different classes are different subsets of student
names. We also have an operation we would like to be able to perform on
these classes: checking membership.
There might be some inherent structure to the data we work with, which
could be properties such as lexicographical orders on names—it enables us to
sort student names, for example. Other structure we add on top of this. We add
structure by defining classes as subsets of student names. There is even a third
level of structure: how we represent the classes on our computer.
The first level of structure—inherent in the data we work with—is not
something we have much control over. We might be able to exploit it in
various ways, but otherwise, it is just there. When it comes to designing
algorithms and data structures, this structure is often simple information;
if there is order in our data, we can sort it, for example. Different
algorithms and different data structures make various assumptions about
the underlying data, but most general algorithms and data structures make
few assumptions. When I make assumptions in this book, I will make those
assumptions explicit.

4
Chapter 2 Abstract Data Structures

The second level of structure—the structure we add on top of the


universe of possible data points—is information in addition to what just
exists out there in the wild; this can be something as simple as defining
classes as subsets of student names. It is structure we add to data for
a purpose, of course. We want to manipulate this structure and use it
to answer questions while we evaluate our programs. When it comes
to algorithmic theory, what we are mainly interested in at this level is
which operations are possible on the data. If we represent classes as sets
of student names, we are interested in testing membership to a set. To
construct the classes, we might also want to be able to add elements to an
existing set. That might be all we are interested in, or we might also want to
be able to remove elements from a set, get the intersection or union of two
sets, or do any other operation on sets.
What we can do with data in a program is largely defined by the
operations we can do on structured data; how we implement the
operations is less important. That might affect the efficiency of the
operations and thus the program, but when it comes to what is possible to
program and what is not—or what is easy to program and what is hard, at
least—it is the possible operations that are important.
Because it is the operations we can do on data, and now how we
represent the data—the third level of structure we have—that is most
important, we distinguish between the possible operations and how they
are implemented. We define abstract data structures by the operations
we can do and call different implementations of them concrete data
structures. Abstract data structures are defined by which operations we can
do on data; concrete data structures, by how we represent the data and
implement these operations.

5
Chapter 2 Abstract Data Structures

Abstract Data Structures in R


If we define abstract data structures by the operations they provide, it is
natural to represent them in R by a set of generic functions. In this book,
I will use the S3 object system for this.1
Let’s say we want a data structure that represents sets, and we need
two operations on it: we want to be able to insert elements into the set, and
we want to be able to check if an element is found in the set. The generic
interface for such a data structure could look like this:

insert <- function(set, elem) UseMethod("insert")


member <- function(set, elem) UseMethod("member")

Using generic functions, we can replace one implementation with


another with little hassle. We just need one place to specify which
concrete implementation we will use for an object we will otherwise only
access through the abstract interface. Each implementation we write will
have one function for constructing an empty data structure. This empty
structure sets the class for the concrete implementation, and from here on
we can access the data structure through generic functions. We can write a
simple list-based implementation of the set data structure like this:

empty_list_set <- function() {


  structure(c(), class = "list_set")
}

insert.list_set <- function(set, elem) {


  structure(c(elem, set), class = "list_set")
}

1
I f you are unfamiliar with generic functions and the S3 system, you can check out
my book Advanced Object-Oriented Programming in R book (Apress, 2017), where
I explain all this.

6
Another Random Scribd Document
with Unrelated Content
As for Alf, he returned at once to his battalion, where he gave
unsatisfactory answers to all questions. He was a man of little
imagination, but it seemed that he was now in his own case
beginning to link up cause with effect. At all events he refrained for
as long as possible from cleaning his second tunic-button, and might
have been seen now and again regarding it with awe not unmixed
with alarm.
CHAPTER III
THE MIRACLE OF THE PLANES

When Alf reached the 5th Battalion once more, he found it


transformed. All signs of trench life had disappeared, and the men
were recovering their swing and swagger. True, they looked a little
harassed, but that was only natural seeing that they were in the
middle of one of the periods of strenuous activity humorously known
to those in authority as "rest."
His mates accepted Alf's reappearance among them without surprise
—almost without comment. The fact that he had been in hospital
suffering from a hitherto unknown disease did not excite them at all.
Such men as did mention the matter took it for granted that he had
had some new form of "trench fever." (Every malady developed at
the front which is not immediately recognizable is disposed of by
popular rumor under this convenient heading.)
This particular "rest" was expected to last still another fortnight
when Higgins reported. The first week was to be devoted to a stiff
training program, while the second was to embrace an equally
energetic period of athletic competitions and games. Within an hour
of his arrival the disgusted private found himself swooped upon by
various enthusiasts and engaged to go into strict training at once,
with a view to representing the platoon at football and the company
in a cross-country race the following week. Practice games and trial
runs were arranged to dovetail into each other with devilish
ingenuity, until Alf began to consider the advisability of rubbing this
mysterious button of his and obtaining a relapse.
He was unimaginative, and the vast possibilities latent in the magic
button had not even begun to unfold themselves before his mind.
One of his chief characteristics was a reluctance to mix himself up in
matters he did not understand. He felt that in meddling twice
already with supernatural and probably diabolical powers he had
been very lucky to get off scot free; and the mere idea of ever
encountering that fearsome being again filled him with
apprehension. He avoided touching the mysterious button at all,
either for cleaning or any other purpose.
But this state of things could not last. Lieutenant Allen was no
martinet, but it was not many days before he stopped before Alf on
parade and surveyed him with disfavor.
"This won't do, Higgins," he said. "Your brasswork is a disgrace.
Look at that button! You will clean that up the moment you get off
parade this morning, and I'll have a look at it this afternoon. See?"
"Yessir!" said Higgins dutifully. But he did not see in the least what
was to be done. He could not leave his button untouched after what
the officer had said, and he did not dare to clean it. In his efforts to
solve this problem, he went through his drill movements with an air
of preoccupation which excited Sergeant Lees to the verge of
apoplexy. But he had his reward in an idea of—for him—surpassing
brilliance.
Army custom decrees that when a soldier in uniform goes into
mourning, he shall proclaim the fact to the world by covering the
second button of his tunic with crepe, or some other black material.
Obviously, then, Higgins' easiest way out of his dilemma was to kill
some non-existent relative. His difficulty thus settled, he began to
apply his mind to the business in hand just in time to save the
sergeant's sanity.
The parade finished, Higgins set out to find C.Q.M.S. Piper. That
important personage was conferring deeply with the company
commander on some subject connected with the issue of rum, and
Higgins had to wait; as bad luck would have it, by the time the
conference was ended Sergeant-Major French had come up and was
standing within easy earshot. Alf tried to pitch his voice so that the
sergeant-major should not overhear him, and only succeeded in
defeating his own end by becoming completely inaudible.
"Quarters," he said, "can you give me a ee oh ack uff?"
"Now then, my lad!" roared Piper, in a voice which commanded the
instant attention of everybody in the hut, "don't whisper sweet
nothings to me. Spit it out! What d'yer want? Piece o' what?"
Amid general interest the defeated strategist repeated his request.
"Bit of black stuff, Quarters."
"Bit o' black stuff? What for?"
"To go into mourning. My uncle's dead."
"Ho!" intervened C.S.M. French, suddenly waking to the full
significance of Higgins' request. "Yer uncle's dead, is 'e? 'Ow d'yer
know that?"
"I 'ad a letter this mornin', major."
"Ho! Well now, that's funny; because there 'asn't been no bloomin'
mail in since Friday. An' as for mournin', your bloomin' button's gone
into mournin' already, without needin' no black stuff. I never saw
nothing like it! Now, look 'ere, 'Iggins, I 'eard Mr. Allen tickin' you off
about it, this mornin', and it looks to me as if you're tryin' on a bit of
a game. Yer uncle may be dead or 'e may not, but before the
quartermaster gives yer a bit o' black, you've gotter show me that
button so bright that I can see me blinkin' face in it. Now, get a
move on!"
There was no help for it. The button had to be cleaned, this once at
any rate. Afterwards Higgins could mourn his uncle without ceasing,
and spirits from the vasty deep need no longer form an essential
part of his matutinal preparations for parade.
As soon as dinners had been dished out, Higgins put on his kit, took
his rifle, and slipped away to a quiet spot where a small mound
screened him from observation from the camp, though it did not
prevent him from keeping a look-out. There was still a full hour
before parade. He sat down, and after a moment or two spent in
summoning his courage he produced his button-stick and began to
polish his button. He did not even look up when a sepulchral voice
gave evidence that the dreaded Being had appeared.
"What wouldst thou have? I am ready to serve thee as thy slave,
and the slave of any that have that Button in their possession; I, and
the other slaves of the Button."
Alf continued polishing for dear life. After a moment's pause the
voice spoke again.
"Great Master," it said. "Behold, thy slave is present."
But the great Master, perspiring freely with terror, averted his head
and polished on. He had some wild hope that the spirit might realize
that the summons he had obeyed was involuntary and, so to speak,
unofficial, and would go away. The spirit, on the other hand,
apparently took his master's behavior as being simply an exhibition
of despotism; this was quite according to Oriental tradition, and
greatly impressed him, so that when he spoke a third time his voice
was humble and servile to a degree.
"O Master, Lord of Power," he said, "since thou dost not deign to
acknowledge the presence of thy slave, but dost continue the
summons whereby thy slave came hither, is it thy will that the other
slaves of the Button, who are seven thousand in number, should be
brought before thee?"
It is doubtful whether Higgins fully comprehended this rather
involved sentence; but he understood enough to realize that unless
he made up his mind to talk with this being he was threatened with
the appearance of seven thousand other devils, quite possibly worse
than the first. He dropped his button-stick hastily. "No," he said
anxiously; "you'll do."
He turned and faced his slave and was astonished to find that his
fear had passed. The mysterious being was much more terrible in
anticipation than in reality; and the servility of his speech and
bearing had unmistakably shown that he regarded Alf with respect
almost amounting to reverence. Alf, his breast swelling with a new
and very pleasant sense of self-importance, decided to take this
opportunity of coming to some kind of understanding with his new
follower.
"Look 'ere, chum," he said affably, "you an' me's got to 'ave a little
talk. Now, just tell me, 'ow do I come to be your master?"
"Lord, I am chief of the slaves of the Button that was aforetime the
Lamp. Whosoever may be Lord of the Button, him do I serve and
perform all his will; I, and the other slaves of the Button."
"Lumme!" commented Alf, much impressed. "An' where was yer last
place?"
"Master?" said the spirit, uncomprehending.
"'Oo didst you—thou—serve before you come to me?" interpreted
the Master.
"The great prince Aladdin."
"Don't know 'im. Prince 'oo?"
"Aladdin."
"What—the pantomime feller? Lor', you must be gettin' on in years!
Well, now, did this chap give yer a reference?"
The spirit looked puzzled, and Alf decided that in Aladdin's time
servants could not have had characters. He continued his catechism.
"An' what's yer name, mate?"
"Abdulkindeelilajeeb was I aforetime, O Master, but now I am called
Abdulzirrilajeeb."
"Gorblimey," said Alf blankly. "You don't expect me to do that when I
speaks to yer, I 'ope!" Then after a pause he added, "I shall call yer
Eustace."
The djinn looked pleased.
"In truth, O possessor of wisdom, it is a lordly name."
"'Tis well," replied the possessor of wisdom with a melodramatic
wave of the hand. "Now, tell me. Yer always poppin' up an' askin' for
orders—what is it you want to do? What's yer partickler line?"
"My Lord hath but to command," said the newly-christened Eustace
with superb simplicity.
"Garn, what a whopper!" Alf snorted incredulously. He had an
ingrained dislike of "swank" in any form; and he looked about him at
once, seeking some impossible task with which he might upset this
complacent creature's vanity.
His imagination failed utterly to respond to the sudden strain placed
upon it. His eye wandered round the unedifying landscape and found
no source of inspiration. In despair he glanced up at the skies, and
there he found the idea he sought.
High in the air above the British lines—so high that they were only
just visible—were two aeroplanes. That they were Boche and Briton,
engaged in a duel, was plain; but which was which it was impossible
to make out. No doubt an expert would have known at once by a
dozen signs; but Alf's data for distinguishing friend from foe in the
air began and ended with the official markings—the tricolor rings of
the Allies or the German black cross painted on the wings of the
machines. When these signs were not visible he worked, as did most
of his mates, on the rough principle that if an aeroplane dropped
bombs on you it was certainly a Boche, while if it refrained it was
probably British.
He directed the djinn's attention aloft.
"Now then," he said in triumphant tones. "See them two airyplanes
up there? Well, if yer so bloomin' clever, 'op up and bring down the
Boche one to me 'ere."
Eustace disappeared immediately, and Alf, incredulous though he
was that anything out of the ordinary was going to happen, gazed
up at the two tiny machines, still diving and circling in their attempts
to out-maneuver one another.
The duel was, however, nearing an end. As Alf gazed, one of the two
suddenly turned tail and fled. The other gave chase, and seemed on
the very point of victory, when suddenly the pursuing plane seemed
to check in mid-air and began to descend.
Even to Alf's untutored eye there was something uncanny in that
descent. The machine neither nosedived nor came down in the usual
graceful spirals. Instead it sank slowly and very steadily straight
downwards, in defiance of all known laws of aeronautics, directly
towards the spot where Alf was standing.
Alf, petrified with astonishment, stood staring at the machine as it
grew larger and more distinct. It was all true, then! The djinn had, it
seemed, all the powers that he claimed. In a few moments Private
Higgins would be in sole possession of a complete German
aeroplane. For the first time in his career, military glory was in his
grasp. He had had no thought, when he had given his command to
Eustace, of anything but the difficulty of the task; but now he had a
sudden joyous vision of the kudos he would gain when he should
march the crew of his approaching captive into the company lines at
the point of his bayonet.
He unslung his rifle, loaded it and fixed the bayonet. Then, assuming
the "On Guard" position, he looked up once more at the machine,
now only a few hundred feet above him; and he gave a gasp of
horror.
On the underside of the wings, now plain to the view, were painted
the familiar rings of red, white and blue. Eustace, even less skilled
than his master, had brought down the wrong machine. Instead of
saving a British airman from destruction Alf had only deprived him of
a well-earned victory at the moment of triumph. The German,
rejoicing at his incredible escape and marveling, no doubt, at his
opponent's inexplicable collapse, was now out of sight and in safety
above his own lines; while the Briton was just dropping
ignominiously to earth, helpless in the grip of a muddle-headed spirit
out of an Oriental fairy tale.
Higgins stood rooted to the spot as the 'plane came to earth beside
him; out of it climbed two R.F.C. officers, both puzzled and
exceedingly angry. They subjected their machine to an exhaustive
examination and then stared at each other blankly.
"Not a thing wrong, Tony. It's uncanny!"
"Uncanny!" The young pilot was almost weeping with mortification.
"To have that chap von Hoffmeister in my hands—the chap who's
been the thorn in our flesh this last month—and then be done in by
—by a bally miracle. It's damnable!"
Alf's knees trembled beneath him. He came guiltily to attention,
wondering if the airmen could suspect his complicity in the affair.
The pilot's feelings suddenly boiled over again.
"My God!" he said thickly, "I'd like to kill somebody for this!"
Unconsciously he fixed Alf with a baleful glare.
"I'm—I'm sorry, sir," quavered Private Higgins, losing his head
completely.
The observer laughed mirthlessly.
"Well," he said to Alf. "It wasn't your fault, anyway. Come on, Tony,
let's see if we can't find a mess somewhere. You'll feel better after a
whisky. Not ..." he concluded, exploding in his turn, "that I don't
think it's the rottenest bit of luck that ever happened."
"All right," said the pilot. "Here, you'll stand by the machine, will
you? I'll tell 'em in the camp that I ordered you to."
"Yessir!" said Alf, saluting; and he thankfully watched them go
towards the camp.
As soon as they were out of sight, Alf rubbed his button. The djinn
appeared, wearing a self-satisfied smirk at the striking proof of his
powers his new master had just received.
"What wouldst thou have? I am ready to obey thee as thy...."
"Cut out the song an' dance, yer blinkin' fool," said Alf fiercely. "See
what you gone an' bin an' done. This 'ere's a British plane—savvy? I
told yer to bring a Boche one—them what 'as the black crosses. I
b'lieve yer a bally spy, I do. 'Ere, git out o' me sight!"
The djinn vanished in silence. The instant he was gone Alf began to
regret the lengths to which his tongue had led him. How had he
dared to speak so to a creature possessing unlimited powers? He
began to feel cold with apprehension. What would happen next?
At this point he saw a tremendous commotion in the camp. Men
poured out of the huts and stared skywards, gesticulating and
shouting. Alf looked upwards and saw the cause of their excitement.
Fully a dozen German aeroplanes were converging on Alf from
different quarters of the sky, each one helpless in the grip of the
same power that had brought the British machine to earth.
It was Eustace's wholesale Oriental method of making reparation.
One by one the machines came to earth, until all twelve were
arranged in a neat row beside the original victim. The dazed German
crews scrambled out, looking for somebody to whom to surrender;
but first, as was their duty, they set fire to their machines. There
was nobody to prevent them, for though several hundred British
soldiers were on the way at the double, not one was on the spot.
Alf had fled in panic; he skulked in retirement until the excitement
had died down; his one desire was not to be connected in anybody's
mind with the extraordinary and inexplicable events of that
afternoon.
When the German prisoners had been cleared away, and the normal
routine had been restored, he returned to camp and displayed his
button to C.S.M. French. Having received a grudging assent from
that worthy, he drew his "bit o' black" from the quartermaster-
sergeant, and draped it over his talisman. As he put the last stitch in
place he made a mental resolve that it would be long before he
would meddle again with a magic productive of such uncomfortable
adventures.
CHAPTER IV
THE MISGUIDED ZEAL OF EUSTACE

The word "rest" as used at the front has been described as being
purely a technical term, bearing no relation whatever to the other
word of the same name. Certainly during the last fortnight of this
particular period Alf Higgins and Bill Grant found cause to realize the
truth of this description.
A new brigadier had just been appointed to command the Middlesex
Fusiliers Brigade. He was an upstanding young giant of thirty, and
the main tenets of his creed were fitness and efficiency. In pursuit of
the latter he organized strenuous sham fights over miles of country,
and he urged upon his colonels that only by encouraging athletic
contests on a hitherto unheard of scale could they hope to attain the
former.
Alf and Bill were no athletes, but they continued to play football with
more vigor than skill until their platoon was knocked out of the
battalion competition. They bore their defeat with stoicism, hoping
that they would now be allowed to assume the much more
accustomed and congenial rôle of spectators. Instead of this they
found themselves (to their inexpressible indignation) called upon to
sustain the battalion's honor in cross-country runs under the eye of
that speechless but efficient officer Lieutenant Donaldson.
In the evenings, however, they were free to extract what
amusement they could out of life. The pierrot troupe, without which
no division at the front considered itself complete, played to packed
houses every other night in the Y.M.C.A.; while a cinematograph
show had been rigged up in a barn. Each day, also, a limited number
of passes to Amiens entitled such as were favored of Fortune to a
blissful day's taste of civilization.
To the officers, however, it seemed sometimes incredible that any of
the men could patronize these delights at all.
"I believe," said Richards to Allen one evening, "that every man in
this company must write to every relation, friend, acquaintance or
business connection he has in Blighty seven times in the week, just
to spite us!"
The company letters had just come in to be censored. Donaldson
had gone to a Sports Committee meeting, and Shaw, as mess
president, was in Amiens restocking the larder.
"Lord, what a pile!" said Allen, sitting down at the table and
beginning his task. "It's lucky I've no letters of my own to write—or
only a note."
He gave a sigh; the man at the front who has nobody in England to
write to is not to be envied.
"I have, though," said Captain Richards. "My wife'll be thinking I'm
dead if I don't write her a proper letter soon."
He also took a handful of letters and set to work.
"May I come in?" said a voice at the door. "Or are you too busy?"
"Come in, of course, major."
The second-in-command entered, glanced round and took in the
situation.
"Don't let me interrupt you," he said politely. "I haven't come to see
you at all, so don't flatter yourselves. I wanted to see Denis's Sketch
and Tatler, that's all."
"On my bed, sir," said Allen.
"Thanks."
There was unbroken silence for some minutes. Then the major cast
The Tatler from him with an exclamation of disgust.
"I wish," he said, "that that grinning little idiot would stop
advertising herself for a bit. You can't pick up a picture-paper
without seeing her selling things or dressing up or generally pushing
herself into the limelight. She wants smacking."
Both men at the table looked up.
"Who's the grinning idiot in question, major?"
"Isobel FitzPeter. Here you are—a whole page of her and her bally
bulldog, labeled 'A famous Beauty—and Friend.' Same photograph in
The Sketch, called 'Beauty and the Beast'! It makes me sick!"
Allen suddenly got up and went out of the room without a word,
very red in the face. Richards and Major Parker stared after him, the
former very embarrassed, the latter simply surprised.
"What's the matter?" asked the major blankly.
"I expect poor old Denis felt he might have used language
unbefitting your rank if he'd stayed. You see—don't let on to a soul,
mind—he's most frightfully gone on the FitzPeter girl."
"Good God, Dickie, what have I said? D'you mean they're engaged
or anything?"
"Oh, no. I don't believe she knows him at all. He used to play cricket
at her father's place, and they were rather pals then, I believe. But
since she's grown up, they've never met. But you know how it is out
here. If I hadn't had my wife to think about, I'd have gone mad long
ago. Denis doesn't seem to have many feminine belongings of his
own, so he's simply installed this girl as a kind of goddess. He seems
to live for the illustrated papers—simply devours them, and cuts out
her picture. This is all rather confidential, major."
"Of course. Poor old chap. You know, Dickie, I do happen to know
the lady. In peace time she was as nice a kid as you could want to
meet. If Denis hasn't met her since then, I don't wonder at him,
because she's really frightfully pretty. But her head has been utterly
turned. She acts as parlor-maid once a fortnight in a hospital my
sister runs in Kensington, and she's more hindrance than help,
because she never arrives in time, and she's always got some
footling reason for wanting to go early. But her photograph in V.A.D.
uniform gets published about once a fortnight, usually headed
'Nursing the Wounded,' or, 'An Indefatigable War Worker'! The worst
of it is she's got brains if she'd use them; only she won't. A spoilt,
thoughtless little idiot, and as pretty as they make 'em. Poor old
Denis."
At this point Allen returned and resumed his work without a word.
The major fell silent. Richards cast about for some subject to cover
the awkward break in the conversation.
"D'you know when we go back to the line, sir?" he asked at last.
"Not settled. End of the week, I think. Look here, I've interrupted
you fellows quite enough. Give me some of those letters."
"Thanks awfully, sir. You're a sportsman."
By dinner time the pile was finished, and Allen had time to write his
note.

"Dear Peggy," he wrote,—


"Just a line to tell you I'm still alive, and hoping to remain so.
You might write to me when you've time. In great haste,
"Your affectionate cousin,
"Denis.
"P.S. If you happen to see Miss FitzPeter, please give her my
kind regards."
This missive he addressed to Lady Margaret Clowes, at an address in
Mayfair. She was only a very distant cousin of Allen's, and there was,
on the face of it, no particular reason why he should have written to
her at all. The regularity with which he had recently done so,
therefore, coupled with the unfailing manner in which the postscript
contained a polite message to Isobel FitzPeter, had given away to
Margaret the true state of affairs; and because she liked and
admired her shy cousin, she had contrived to keep his name not too
insistently, and yet quite firmly, before Isobel's mind. She had
determined, also, that when next Allen should come home on leave,
she would engineer a meeting between them.
If he had known this it would have filled him with joy, tempered with
apprehension, for he was not blind to the fact that the Isobel he had
known had developed into a new and rather formidable creature.
She was now a public character, the last word in smartness, and
sometimes rather a loud word at that. He felt that she was removed
now to a sphere beyond his reach, for he was a very humble-minded
person. Altogether, one way and another, he contrived to be acutely
miserable when he had time to think about anything but his work,
and he rather welcomed than otherwise the prospect of going back
into the line.
In due course an operation order came through from Battalion
Headquarters, setting forth in minutest detail the times at which
officers' valises would be packed and sent to the transport, mess-
boxes made ready, blankets tied into bundles and delivered to the
quartermaster, billets cleaned and platoons ready to move. When the
time came there was the usual air of hopeless confusion, the
accustomed mutual recriminations between conflicting or
overlapping authorities; and in the end—also as usual—the battalion
marched out at the appointed hour, leaving behind it very little to
show that it had ever been there.
The brigade was to take over the same part of the line it had last
occupied; but in the three weeks' interval that had elapsed since
they had been relieved, Hindenburg had carried out his famous
"retirement according to plan," and our friends found themselves
only just entering the shelled area about the point where, in the
days of the Big Thaw, their front line had been.
The 5th Battalion this time moved straight up into the front line,
where they were comparatively comfortable. The weather was still
cold, but fine; the trenches—originally German property—had turned
renegade and were now serving the British very efficiently against
their old masters. The sector was still very quiet: to all appearance
the enemy had gone away and left no address. Altogether things
were very much pleasanter than last time up.
Alf, after his former fiasco, was no longer a "runner"; but his chum,
Bill Grant, had been selected for this work, so that the two were no
better off than last time, so far as being together was concerned. Alf
felt lonely. None of the other men in his platoon took much interest
in him. He wanted Bill's companionship—his contemptuous
patronage of and his real affection for his slower-witted companion.
His loneliness increased daily, until it became acute; and at last one
day, being on sentry-go in a bay all by himself, he bethought himself
of his Button. His mates were snoring in a dug-out close by; no sign
had been seen from the German trenches all day. He had strained
his eyes across No-Man's-Land until he had begun to feel intolerably
drowsy himself. If something did not happen soon, there was a
danger that the officer or N.C.O. on duty might find him asleep at
his post.
Eustace seemed to be his only chance.
He rubbed the Button.
"What wouldst thou have? I am ready...."
"'Op it, quick!" was Alf's startling rejoinder.
Eustace, looking upset, complied. He was beginning to wonder
whether he was being victimized. This new Master of his who gave
incomprehensible orders and then seemed far from pleased when
the orders were carried out, also seemed to have a taste for
summoning him merely for the pleasure of seeing him vanish.
But Alf had a better reason than this. He had heard voices further
along the trench. A moment after Eustace had disappeared,
Lieutenant Shaw came round the traverse with the N.C.O. on duty, in
the course of his tour of inspection along the "C" Company front.
"Alone, Higgins?" asked the officer, with a hint of surprise in his
voice.
"Yessir."
"I thought I heard voices."
"Only me 'ummin', sir."
"I see. All quiet?"
"Yessir! Nothin' doin' at all!"
"Well"—Second-Lieutenant Shaw had not yet shed his youthful pride
at being in the thick of things, and puffed himself out a little and
became most impressive—"you want to keep an extra sharp look-out
from now until we stand-to at dusk. We've an idea that something's
going to happen. Probably Fritz will try a raid. This quiet is very
suspicious."
He passed on with the sergeant. As soon as he was well out of
earshot, Alf recalled the spirit, who looked so hurt that his Master
felt that an apology was due to him.
"Sorry, Eustace, but if the orficer 'ad seen you talkin' to me, there'd
'ave been trouble. Civilians ain't allowed in the trenches, 'cept with a
special pass; so when anybody comes, you must 'op it without
waitin' for orders. See?"
Eustace bowed gravely.
"Now, look 'ere," continued Alf, gazing earnestly over the parapet as
he spoke, "I just bin thinkin' about yer. If you could only get out o'
this 'abit o' practical jokin' an' so on, you might be quite a useful sort
o' feller. Now, tell me fair, what can you do? I don't mean larkin' with
airyplanes, but serious things."
"My Lord hath but to command."
"Yes, it's easy enough to say that, but I can't think o' things.... Now,
s'posin' ... that is.... Look 'ere, what I really want is something to
keep me safe if the blighted Boche comes over. Now, what can you
show me?"
"Master, I comprehend not thy speech."
"Lumme, I speak plain enough English, I 'ope. I say, what I want is
something to keep me safe if the Boche comes over. The Boche, you
know! Fritz! The 'Un! The fellers across there, you blinkin' image!
The Germans!"
"My Lord desires protection from his enemies."
"That's better, Eustace. Think it out, and you'll get there in time."
"It shall be so. Behold!"
An object appeared in the Spirit's hand.
"Behold, O Lord of Might, the helmet of invisibility. Clad in this thou
canst be seen of no mortal eye. So mayest thou move among the
hosts of the enemy, seeing all, yet seen of none."
"By gum!" commented Alf, much impressed, "that's a bit of all right.
Shouldn't mind doing daylight patrols with that on. Knocks a tin 'at
all to blazes."
He pondered a moment and began to see the disadvantages of the
idea.
"The trouble is," he explained, "the orficer seems to think the 'osts
of the enemy is goin' to move about us just now. Where should I be
then? They'd all think I'd 'ad the wind up and 'opped it. An' then, 'ow
about shell-fire? Just bein' invisible won't stop no Perishin' Percies.
What I want is something—well, you know what I mean. Can't you
get me something to keep off the bullets?"
"Verily that can I," said Eustace, with an air suggesting that Alf was
simply wasting his time with niggling details. "Just such a thing as
thou desirest was aforetime in the treasury of the great King Uz; my
spirits shall procure it for thee. Whoso weareth this can come to no
hurt through weapons forged by man."
"That's the ticket, if Mr. What's-'is-name won't be wanting it for
'isself. 'E's probably 'elpin' with this 'ere War somewhere or other."
"Uz hath been dead these many cycles—upon him be peace!"
returned Eustace. He raised his hand, and, with an awesome clang,
a cumbrous suit of armor, complete in every detail, fell into the
trench. The djinn wore an expression of mild triumph. This time, he
seemed to think, even this strange new master of his must be
satisfied. He was not in the least prepared for Alf's reception of his
performance.
"Take it away," shrieked Private Higgins, in an agony at the idea of
having to explain away such a phenomenon to his superiors. "Take it
away, you blinkin' fool, and 'op it yerself. What the blazes d'you think
yer doin'? 'Ere, get out of it, quick. Somebody's comin'."
Somebody was.
The whole of Number Nine Platoon, awakened from its slumbers,
came tumbling out of its dug-outs, adjusting its gas masks as it
came. A horrible ghoul, dimly recognizable through the windows of
its respirator as Sergeant Lees, came and gibbered at Alf.
"What's up, sergeant?" asked Alf in amazement.
"Gas!" replied the sergeant, removing his mouthpiece for a moment
in order to speak more clearly. "Why the 'ell ain't you got yer mask
on? Didn't you 'ear the gong?"
Higgins realized with horror what had happened. The clang of the
armor had been mistaken for a gas-gong by a sentry in the next bay,
who had promptly given the alarm. He tried feebly to straighten
matters out; but it was too late now. The word had spread; the
Boche, seeing the commotion in our lines, had sprung to arms; and
both armies stood tense, each convinced that the other was going to
make a surprise attack. A heavy fusillade with rifles and machine
guns, rifle grenades and trench mortars began, and in its turn
spread along the lines with great swiftness. Then somebody put up
an S.O.S. flare, and the guns, which had only been waiting for this
invitation, joined in. For the next few minutes the Messina
earthquake or an eruption of Vesuvius would have been welcomed
as quiet interludes by Richards, Allen & Co.
Further back, astonished Staff-Officers were springing to the
telephone to demand by what right this intense but unauthorized
warfare was taking place, and what it was all about, anyway. Further
back still, troops in rest billets looked up from their magazines or
their letters home and thanked Heaven that they were not in the
shoes of the poor blighters in the line.
Then both sides seemed to discover that nothing much was
happening after all, and the whole thing died away as suddenly as it
had begun. But that night the sentries were doubled, and as Higgins
sulkily performed his extra hours of duty, his feelings towards his
well-meaning but tactless familiar were such that he nearly brought
his adventures to an untimely close by cutting off the Button and
flinging it over the parapet.
CHAPTER V
EUSTACE FETCHES BEER

After this sudden burst of excitement had died away, a watchful


calm descended on the front line. "C" Company were relieved next
day by "B" Company, and went into close support. Here they were in
a zone more subjected to shell-fire than in the front line itself; but
this worried them very little, as for the most part they spent their
four days snugly in dug-outs, listening to the occasional dull thud
caused by an explosion up above, and waiting in readiness to turn
out at any moment in the event of a raid. One or two parties were
called out to carry rations up to "B" Company, but the only casualty
was a man who was hit in the arm by a shell-splinter, and departed
for "Blighty" openly exulting in his good fortune.
On the fourth day the battalion was relieved and went back into
Brigade Reserve. Here they were to stay for eight days while the
battalion in the line completed its duty. What might happen after
that was a matter for speculation, known only to Providence—and
possibly (though not very probably) the Staff. Anyhow, the events of
so dim and distant a future were a matter of supreme indifference to
the rank and file. It was enough for them that for a week or so at
any rate they would have deep, warm dug-outs, well back from the
line.
As soon as the company settled in, Bill Grant returned to the
platoon, his services as extra runner being no longer required. Alf
would have welcomed him under any circumstances; but on this
occasion he was specially glad to have his pal back again. He was
worried and needed advice. He had, in fact, decided to take Bill into
his confidence on the subject of Eustace, and was now simply
waiting for an opportunity of a private and uninterrupted
conversation with him. A tête-à tête, especially if it entails a practical
demonstration of oriental magic, is not the easiest thing on earth for
two Tommies in the forward area to arrange.
A kindly Fate assisted them, however. The particular system of
trenches they were inhabiting, like all systems constructed by that
industrious mole, the Boche, was honeycombed with deep dug-outs
—far more than the 5th Battalion could possibly use. It occurred to
the two warriors that it would be an excellent plan to find a disused
and secluded specimen for their own private use. In such a haven
Alf could unfold his portentous secret without fear of interruption,
while Bill, who objected on principle to being put on working parties
and fatigues, felt that the best safeguard against inclusion in these
treats was an alibi. After a search they discovered a snug retreat in
which they intended to spend as much of their spare time as
possible, returning to their mates only at meal-times and other
occasions when their absence might be noticed.
The afternoon was pleasantly mild, and for the first time the air
seemed to contain a hint of Spring. Instead of retiring underground
they sat in the entrance of their new home quietly smoking. As soon
as their pipes were well alight, Alf broached the subject which was
weighing so heavily on his mind.
"Bill," he asked. "D'yer believe in spirits?"
"Prefer beer."
"Not them sort o' spirits, I don't mean. I mean spooks. D'yer believe
in spooks, Bill?"
"People what sees spooks," said Bill dogmatically, "is liars, or
boozed."
Grant's attitude was unpromising, but Alf was determined to
persevere.
"What would yer say if I told yer I'd seen a spook, Bill?" he
demanded.
"I'd say you'd 'ad a drop too much," was the uncompromising reply.
"An' if I saw it when I 'adn't 'ad a drop at all?"
Bill turned and regarded him.
"Look 'ere, Alf 'Iggins," he remarked acidly. "Yer worse'n a bloomin'
kid f'r asking yer blighted silly questions. If you got anything to say,
for 'Eaven's sake spit it out an' 'ave done with it."
Thus adjured, Alf plunged into his story, omitting only his adventure
with the aeroplanes, which he considered would be safer hidden
even from Bill.
That gentleman heard him to the end without comment.
"I b'lieve it's up to me to take yer to the M.O.," he said at last
seriously.
Alf was annoyed.
"Don't be a idjit. This is a real spook, I tell yer!"
"Garn! You bin sleepin' on yer back an' dreamt it all. Why, this 'ere
Aladdin you talk about—there never was no sich feller. 'E's just a
bloke in a fairy story."
"Dreamt it!" repeated Alf indignantly. "Dream be blowed. I couldn't
dream meself pink all over, could I?"
"No, but you could catch scarlet fever an' 'ave delirious trimmings on
top of it," said Bill caustically. "But you can't make me see this
blessed spook o' yours, any'ow."
This was a direct challenge, and Alf rubbed his Button. Bill's tin hat
fell off.
"Lor'!" he said, sitting up straight.
"What wouldst thou have?" enquired Eustace. "I am ready to obey
thee as thy slave...."
"'Op it," replied Alf feebly. He had forgotten to think out any excuse
for summoning the djinn, and could think of nothing else to say.
Eustace, his opinion of Alf obviously lower than ever, disappeared.
"Lumme!" said Bill. He smoked in silence for some minutes, deep in
thought.
"Where the 'ell does 'e come from, and what does 'e do?" he asked
at length.
"'Oo?"
"That spook, o' course."
"I dunno. I rubs me Button, an' 'e bounces in an' asks for orders. 'Alf
the time I don't want 'im at all. An' if I do tell 'im to do things, 'e
gets 'em all wrong. 'E don't seem to lave no common sense,
some'ow."
Bill was following out some train of thought.
"Look 'ere, Alf," he said. "What can you remember about this feller
Aladdin? What 'appened to 'im in the panto?"
Alf considered.
"There was a bloke sang something about a rose growin' in a
garden. Pathetic it was," he announced after deep thought.
"Blighted fool!" commented Bill with pardonable heat. "I don't mean
that. What 'appened to this chap, Aladdin, 'isself?"
"Oh, 'im! A bloomin' girl, 'e was, in the pantomime. I didn't take
much notice what 'appened to 'im—married some one, I think."
"Yes, but 'oo?" asked Bill, with an air of playing his trump card.
"I dunno. Princess Something."
"That's what I remember. An' they 'ad palaces, an' jools, an' money,
an' everything. An' 'ow did they get 'em, eh?"
"I dunno."
Alf was really being very dense. Bill tapped him impressively on the
arm.
"Your spook brought 'em," he said.
"Eustace?"
"That what you call 'im? Yes, 'im."
They gazed at each other, Bill in triumph. Alf in astonishment; at last
the latter found his voice.
"I never thought o' that kind o' thing!" he said.
"No, you're a proper thick-'ed," retorted Grant unkindly. "Now, you
send for 'im an' make 'im do something useful for a change."
"What shall it be?"
"Mine," replied Bill, without hesitation, "is beer. Always was. An'
mind, none o' that Govermint muck neither. Something with a bit o'
body in it."
"Send 'im for beer?" whispered Alf in horror. He could not have
looked more shocked if Bill had suggested sending the sergeant-
major to buy him a paper. He had an instinctive feeling that Eustace
was one to do things on a grand scale, and would resent being
employed as a mere potman. He rubbed his Button nervously, and
avoided Eustace's eye.
"Is it my Lord's desire that his servant should hop it?" asked the
spirit, abandoning his usual formula. He was, he felt, just beginning
to settle down to his new master's ways.
"No," said Alf, fixing his eyes on vacancy. "Bring me two beers,
please, Eustace."
"Two biers, O possessor of wisdom?" repeated the djinn, wondering
if his startled ears could have heard aright.
"Yes. Two beers, I said. And 'urry up."
Eustace bowed low, muttered "Thy wish is my command," and
vanished. Almost immediately afterwards, with a dull thud apiece,
two cumbersome and curiously carved stone sarcophagi fell side by
side into the trench, which they blocked completely. Alf and Bill
gazed open-mouthed first at the two sepulchers and then at one
another.
"What the 'ell's this mean?" asked Bill at last.
Alf, mortified beyond measure at the failure of his attempt to
impress his pal, gave a resigned gesture.
"What did I tell yer?" he asked. "That's the kind o' thing 'e's always
doin'! No common sense."
"Well, p'raps 'e misunderstood yer. P'raps 'e thought you wanted...."
"Thought I wanted! Didn't I speak plain English? Ain't 'beer' plain
enough for 'im? 'Ow can 'e 'ave misunderstood 'beer'?"
"Well, p'raps these 'ere things are called 'beer' in 'is language."
Alf snorted.
"I ask yer, do they look like it? No, it's just 'is fat-'eaded way."
He rubbed his Button fiercely.
"Take these blinkin' egg-boxes away, Eustace," he said. "An' pull
yerself together. I asked yer for beer—stuff what you drinks, savvy?"
He made a gesture of drinking. The djinn, with a sudden light of
comprehension in his face, bowed and vanished with the sarcophagi,
to reappear a moment later with an enormous tray on his head.
From this he proceeded to deal out a great number of covered metal
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like