100% found this document useful (3 votes)
157 views49 pages

Functional Programming in C First Edition Ivan Cukic - Quickly Download The Ebook in PDF Format For Unlimited Reading

The document promotes the ebook 'Functional Programming in C' by Ivan Cukic, available for download at ebookultra.com. It also lists several other recommended programming books with links for downloading. The content includes an overview of functional programming concepts and various programming techniques in C and C++.

Uploaded by

fodcyco
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 (3 votes)
157 views49 pages

Functional Programming in C First Edition Ivan Cukic - Quickly Download The Ebook in PDF Format For Unlimited Reading

The document promotes the ebook 'Functional Programming in C' by Ivan Cukic, available for download at ebookultra.com. It also lists several other recommended programming books with links for downloading. The content includes an overview of functional programming concepts and various programming techniques in C and C++.

Uploaded by

fodcyco
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/ 49

Visit https://ebookultra.

com to download the full version and


explore more ebooks or textbooks

Functional Programming in C First Edition Ivan


Cukic

_____ Click the link below to download _____


https://ebookultra.com/download/functional-programming-in-c-
first-edition-ivan-cukic/

Explore and download more ebooks or textbooks at ebookultra.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

Real World Functional Programming With Examples in F and C


1st Edition Tomas Petricek

https://ebookultra.com/download/real-world-functional-programming-
with-examples-in-f-and-c-1st-edition-tomas-petricek/

Functional programming in Python 1st Edition David Mertz

https://ebookultra.com/download/functional-programming-in-python-1st-
edition-david-mertz/

Programming Concepts in C 2nd Edition Robert Burns

https://ebookultra.com/download/programming-concepts-in-c-2nd-edition-
robert-burns/

Programming in C 2 e Second Edition Dey

https://ebookultra.com/download/programming-in-c-2-e-second-edition-
dey/
Memory as a Programming Concept in C and C Frantisek
Franek

https://ebookultra.com/download/memory-as-a-programming-concept-in-c-
and-c-frantisek-franek/

C Programming in Linux 1st edition Edition Haskins D.

https://ebookultra.com/download/c-programming-in-linux-1st-edition-
edition-haskins-d/

Object Oriented Programming in C 4th Edition E.


Balagurusamy

https://ebookultra.com/download/object-oriented-programming-in-c-4th-
edition-e-balagurusamy/

Programming Microcontrollers in C 2nd ed Edition Ted


Vansickle

https://ebookultra.com/download/programming-microcontrollers-in-c-2nd-
ed-edition-ted-vansickle/

Concepts in programming languages 1st Edition John C.


Mitchell

https://ebookultra.com/download/concepts-in-programming-languages-1st-
edition-john-c-mitchell/
Functional Programming in C First Edition Ivan Cukic
Digital Instant Download
Author(s): Ivan Cukic
ISBN(s): 9781617293818, 1617293814
Edition: First Edition
File Details: PDF, 10.54 MB
Year: 2018
Language: english
MANNING
Functional Programming in C++
Functional Programming
in C++
IVAN ČUKIĆ

MANNING
Shelter Island
For online information and ordering of this and other Manning books, please visit www.manning.com.
The publisher offers discounts on this book when ordered in quantity.
For more information, please contact
Special Sales Department
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: [email protected]

©2019 by Manning Publications Co. All rights reserved.

No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form
or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the
publisher.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed
as trademarks. Where those designations appear in the book, and Manning Publications was aware of a
trademark claim, the designations have been printed in initial caps or all caps.

∞ Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books
we publish printed on acid-­free paper, and we exert our best efforts to that end. Recognizing also our
responsibility to conserve the resources of our planet, Manning books are printed on paper that is at
least 15 percent recycled and processed without the use of elemental chlorine.

Manning Publications Co. Development editor: Marina Michaels


20 Baldwin Road Technical development editor: Mark Elston
PO Box 761 Review editor: Aleksandar Dragosavljevic´
Shelter Island, NY 11964 Project editor: Lori Weidert
Copy editor: Sharon Wilkey
Proofreader: Tiffany Taylor
Technical proofreader: Yongwei Wu
Typesetter: Happenstance Type-O-Rama
Cover designer: Leslie Haimes

ISBN 9781617293818
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – SP – 23 22 21 20 19 18
brief contents
1 ■ Introduction to functional programming 1
2 ■ Getting started with functional programming 21
3 ■ Function objects 45
4 ■ Creating new functions from the old ones 71
5 ■ Purity: Avoiding mutable state 100
6 ■ Lazy evaluation 122
7 ■ Ranges 142
8 ■ Functional data structures 158
9 ■ Algebraic data types and pattern matching 174
10 ■ Monads 199
11 ■ Template metaprogramming 226
12 ■ Functional design for concurrent systems 248
13 ■ Testing and debugging 274

v
contents
preface xiii
acknowledgments xv
about this book xvii
about the author xxi

1 Introduction to functional programming


1.1 What is functional programming? 2
1

Relationship with object-oriented programming 3 ■ A concrete


example of imperative vs. declarative programming 3

1.2 Pure functions 8


1.2.1 Avoiding mutable state 10

1.3 Thinking functionally 12


1.4 Benefits of functional programming 14
Code brevity and readability 15 Concurrency and

synchronization 16 Continuous optimization 17


1.5 Evolution of C++ as a functional programming


language 17
1.6 What you’ll learn in this book 19

vii
viii contents

2 Getting started with functional programming


2.1 Functions taking functions? 22
21

2.2 Examples from the STL 24


Calculating averages 24 Folding 27 String
■ ■

trimming 31 Partitioning collections based on a


predicate 32 Filtering and transforming 34


2.3 Composability problems of STL algorithms 36


2.4 Writing your own higher-order functions 38
Receiving functions as arguments 38 Implementing ■

with loops 38 Recursion and tail-call


optimization 40 Implementing using folds 43


3 Function objects
3.1
45
Functions and function objects
Automatic return type deduction 46 Function
46

pointers 49 Call operator overloading 50 Creating


■ ■

generic function objects 52

3.2 Lambdas and closures 54


Lambda syntax 55 Under the hood of lambdas 56 Creating
■ ■

arbitrary member variables in lambdas 59 Generic lambdas 60■

3.3 Writing function objects that are even terser


than lambdas 61
Operator function objects in STL 64 ■ Operator function objects
in other libraries 65

3.4 Wrapping function objects with std::function 68

4 Creating new functions from the old ones


4.1 Partial function application 72
A generic way to convert binary functions into unary
71

ones 74 Using std::bind to bind values to specific


function arguments 77 Reversing the arguments of a


binary function 79 Using std::bind on functions with


more arguments 80 Using lambdas as an alternative for


std::bind 83

4.2 Currying: a different way to look at functions 85


Creating curried functions the easier way 87 Using currying ■

with database access 88 Currying and partial function


application 90
contents ix

4.3 Function composition 92


4.4 Function lifting, revisited 95
Reversing a list of pairs 97

5 Purity: Avoiding mutable state 100


5.1 Problems with the mutable state 101
5.2 Pure functions and referential transparency 103
5.3 Programming without side effects 106
5.4 Mutable and immutable state in a
concurrent environment 110
5.5 The importance of being const 113
Logical and internal const-ness 115 Optimizing member

functions for temporaries 117 Pitfalls with const 119


6 Lazy evaluation
6.1 Laziness in C++
122
123
6.2 Laziness as an optimization technique 126
Sorting collections lazily 126 Item views in the user

interfaces 128 Pruning recursion trees by caching function


results 129 Dynamic programming as a form of laziness 131


6.3 Generalized memoization 133


6.4 Expression templates and lazy string concatenation 136
Purity and expression templates 140

7 Ranges 142
7.1 Introducing ranges 144
7.2 Creating read-only views over data 145
Filter function for ranges 145 Transform function for

ranges 146 Lazy evaluation of range values 147


7.3 Mutating values through ranges 149


7.4 Using delimited and infinite ranges 151
Using delimited ranges to optimize handling input
ranges 151 Creating infinite ranges with sentinels
■ 152

7.5 Using ranges to calculate word frequencies 154


x contents

8 Functional data structures


8.1 Immutable linked lists
158
159
Adding elements to and removing them from the start of
a list 159 Adding elements to and removing them from the

end of a list 161 Adding elements to and removing them


from the middle of a list 162 Memory management 163


8.2 Immutable vector-like data structures 165


Element lookup in bitmapped vector tries 167 Appending ■

elements to bitmapped vector tries 168 Updating elements in


bitmapped vector tries 171 Removing elements from the end of


the bitmapped vector trie 171 Other operations and the overall

efficiency of bitmapped vector tries 171

9 Algebraic data types and pattern matching


9.1 Algebraic data types 175
Sum types through inheritance 176 Sum types through

174

unions and std::variant 179 Implementing specific


states 182 Special sum type: Optional values 184 Sum


■ ■

types for error handling 186

9.2 Domain modeling with algebraic data types 191


The naive approach, and where it falls short 192 ■ A more
sophisticated approach: Top-down design 192

9.3 Better handling of algebraic data types with


pattern matching 194
9.4 Powerful pattern matching with the Mach7 library 196

10 Monads 199
10.1 Not your father’s functors
Handling optional values 201
200

10.2 Monads: More power to the functors 204


10.3 Basic examples 207
10.4 Range and monad comprehensions 209
10.5 Failure handling 212
std::optional<T> as a monad 212 expected<T, E>

as a monad 214 The Try monad 215


10.6 Handling state with monads 216


contents xi

10.7 Concurrency and the continuation monad 218


Futures as monads 219 ■ Implementations of futures 221

10.8 Monad composition 223

11 Template metaprogramming
11.1 Manipulating types at compile-time
226

Debugging deduced types 229 Pattern matching during



227

compilation 231 Providing metainformation about


types 234

11.2 Checking type properties at compile-time 235


11.3 Making curried functions 237
Calling all callables 239

11.4 DSL building blocks 242

12 Functional design for concurrent systems


12.1 The actor model: Thinking in components 249
248

12.2 Creating a simple message source 252


12.3 Modeling reactive streams as monads 256
Creating a sink to receive messages 257 Transforming reactive

streams 260 Creating a stream of given values 262 Joining


■ ■

a stream of streams 263

12.4 Filtering reactive streams 264


12.5 Error handling in reactive streams 265
12.6 Replying to the client 267
12.7 Creating actors with a mutable state 271
12.8 Writing distributed systems with actors 272

13 Testing and debugging 274


13.1 Is the program that compiles correct? 275
13.2 Unit testing and pure functions 276
13.3 Automatically generating tests 278
Generating test cases 278 Property-based

testing 280 Comparative testing 281


13.4 Testing monad-based concurrent systems 283

index 287
preface
Programming is one of the rare disciplines in which you can create something from
absolutely nothing. You can create whole worlds that behave exactly as you want them
to behave. The only thing you need is a computer.
When I was in school, most of my programming classes focused on imperative program-
ming—first on procedural programming in C, and then on object-oriented pro-
gramming in C++ and Java. The situation didn’t change much at my university—the
main paradigm was still object-oriented programming (OOP).
During this time, I almost fell into the trap of thinking that all languages are con-
ceptually the same—that they differ only in syntax, and that after you learn the basics
such as loops and branching in one language, you can write programs in all others with
minor adjustments.
The first time I saw a functional programming language was at the university, when I
learned LISP in one of my classes. My gut reaction was to use LISP to simulate if-then-
else statements and for loops so that I could actually make it useful. Instead of trying
to change my perspective to fit the language, I decided to bend the language to allow
me to write programs in the same way I used to write them in C. Suffice it to say that back
then, I saw no point whatsoever in functional programming—everything I could do
with LISP, I could do with C much more easily.
It took a while before I started looking into FP again. The reason I did was that I was
disappointed by the slow evolution of one particular language that I was required to use
while working on a few projects. A for-each loop was added to the language, and it was
advertised as if it were a huge deal: you just had to download the new compiler, and your
life would become much easier.

xiii
xiv preface

That got me thinking. To get a new language construct like the for-each loop, I
had to wait for a new version of the language and a new version of the compiler. But in
LISP, I could implement the same for loop as a simple function. No compiler upgrade
needed.
This was what first drew me to FP: the ability to extend the language without having
to change the compiler. I was still in the “object-oriented” mindset, but I learned to use
FP-style constructs to simplify my job of writing object-oriented code.
I started investing a lot of time in researching functional programming languages
such as Haskell, Scala, and Erlang. I was astonished that some of the things that give
object-oriented developers headaches can be easily handled by looking at the problem
in a new way—the functional way.
Because most of my work revolves around C++, I had to find a way to use functional
programming idioms with it. It turned out I’m not the only one; the world is filled with
people who have similar ideas. I had the good fortune to meet some of them at various
C++ conferences. This was the perfect opportunity to exchange ideas, learn new things,
and share experiences about applying functional idioms in C++.
Most of these meetups ended with a common conclusion: it would be awesome if
someone wrote a book on functional programming in C++. The problem was, all of us
wanted someone else to write it, because we were looking for a source of ideas to try in
our own projects.
When Manning approached me to write this book, I was torn at first—I thought I’d
rather read a book on this topic than write it. But I realized if everyone thought that
way, we’d never get a book on functional programming in C++. I decided to accept and
embark on this journey: and you’re reading the result.
acknowledgments
I’d like to thank everyone who made this book possible: my professor Saša Malkov, for
making me love C++; Aco Samardžic´, for teaching me the importance of writing read-
able code; my friend Nikola Jelic´, for convincing me that functional programming is
great; Zoltán Porkoláb, for supporting me in the notion that functional programming
and C++ are a good mixture; and Mirjana Maljkovic´, for help teaching our students
modern C++ techniques, including functional programming concepts.
Also, big kudos to Sergey Platonov and Jens Weller, for organizing great C++ confer-
ences for those of us who live in the old world. It’s safe to say that without all these people,
this book wouldn’t exist.
I want to thank my parents, my sister Sonja, and my better half, Milica, for always sup-
porting me in fun endeavors like this one; and I thank my long-time friends from KDE
who helped me evolve as a developer during the past decade—most of all, Marco Martin,
Aaron Seigo, and Sebastian Kügler.
A huge thank-you to the editorial team Manning organized for me: to Michael
(Mike) Stephens, for the most laid-back initial interview I’ve ever had; to my amazing
development editors Marina Michaels and Lesley Trites, who taught me how to write
a book (thanks to them, I’ve learned much more than I expected); to my technical
development editor Mark Elston, for keeping me grounded and practical; and to the
great Yongwei Wu, who was officially my technical proofer but went far beyond that and
helped me improve this manuscript in many ways. I hope I wasn’t too much of a pain for
any of them.

xv
xvi acknowledgments

I’d also like to thank everyone who provided feedback on the manuscript: Andreas
Schabus, Binnur Kurt, David Kerns, Dimitris Papadopoulos, Dror Helper, Frédéric Flayol,
George Ehrhardt, Gianluigi Spagnuolo, Glen Sirakavit, Jean François Morin, Keerthi
Shetty, Marco Massenzio, Nick Gideo, Nikos Athanasiou, Nitin Gode, Olve Maudal,
Patrick Regan, Shaun Lippy, and especially Timothy Teatro, Adi Shavit, Sumant Tambe,
Gian Lorenzo Meocci, and Nicola Gigante.
about this book
This book isn’t meant to teach the C++ programming language. It’s about functional
programming and how it fits in with C++. Functional programming provides a differ-
ent way to think about software design and a different way of programming, compared
to the imperative, object-oriented styles commonly used with C++.
Many people who see the title of this book may find it strange, because C++ is com-
monly mistaken for an object-oriented language. Although C++ does support the
object-oriented paradigm well, it goes much further than that. It also supports the pro-
cedural paradigm, and its support for generic programming puts most other languages
to shame. C++ also supports most (if not all) functional idioms quite well, as you’ll see.
Each new version of the language has added more tools that make functional program-
ming in C++ easier.

1.1 Who should read this book


This book is aimed primarily at professional C++ developers. I assume you have experi-
ence setting up a build system and installing and using external libraries. In addition,
you should have a basic understanding of the standard template library, templates and
template argument deduction, and concurrency primitives such as mutexes.
But the book won’t go over your head if you’re not an experienced C++ developer.
At the end of each chapter, I link to articles explaining C++ features you may not yet be
familiar with.

Roadmap
Functional Programming in C++ is intended to be read sequentially, because each chap-
ter builds on the concepts learned in the previous ones. If you don’t understand

xvii
xviii about this book

something after the first read, it’s better to reread than to proceed, because the com-
plexity of the concepts grows with each chapter. The only exception is chapter 8, which
you can skip if you don’t care about how persistent data structures are implemented.
The book is split into two parts. The first part covers functional programming idi-
oms, and how they can be applied to C++:
¡ Chapter 1 gives a short introduction to FP, and what benefits it brings to the
C++ world.
¡ Chapter 2 covers the higher-order functions—functions that accept other func-
tions as arguments or return new functions. It demonstrates this concept with a
few of the more useful higher-order functions found in the standard library of
the C++ programming language.
¡ Chapter 3 talks about all the different things that C++ consider functions, or
function-like—from ordinary C functions, to function objects and lambdas.
¡ Chapter 4 explains different ways to create new functions from the old ones. It
explains partial function application using std::bind and lambdas, and it demon-
strates a different way to look at functions called currying.
¡ Chapter 5 talks about the importance of immutable data—data that never
changes. It explains the problems that arise from having mutable state, and how
to implement programs without changing values of variables.
¡ Chapter 6 takes an in-depth look at lazy evaluation. It shows how lazy evaluation
can be used for optimization—from simple tasks like string concatenation, to
optimizing algorithms using dynamic programming.
¡ Chapter 7 demonstrates ranges—the modern take on standard library algo-
rithms meant to improve usability and performance.
¡ Chapter 8 explains immutable data structures—data structures that preserve the
previous versions of themselves any time they are modified.
The second part of the book deals with more advanced concepts, mostly pertaining to
functional software design:
¡ Chapter 9 shows how sum types can be used to remove invalid states from pro-
grams. It shows how to implement sum types using inheritance and std::variant,
and how to handle them by creating overloaded function objects.
¡ Chapter 10 explains functors and monads—abstractions that allow easier han-
dling of generic types and that let you compose functions that work with generic
types such as vectors, optionals, and futures.
¡ Chapter 11 explains the template metaprogramming techniques useful for FP
in the C++ programming language. It covers static introspection techniques,
callable objects, and how to use template metaprogramming in C++ to create
domain-specific languages.
Other documents randomly have
different content
Col. Diamond. No, Major, I feel—a—the—a—in short, it should
have been to “the Colonel and the Officers.” Don't you think so?
Major. Perhaps it would have been more particular; but I do not
think it is of so much consequence, as to make you forego the
delightful society of Lady Fanny; for her ladyship will be there to a
certainty.
[Colonel hums a tune.]
Do pray come, Colonel.
All the Mess. Yes, you must come, Colonel—come—come—come—
Colonel! Do Colonel—do come!
[All stand up, except the Colonel.]
Col. Diamond. Well, as you all so particularly request it, I—a—will
go; but, 'pon my honour! I am determined to notice the neglect in a
proper manner to Lady Mary.
All the Mess. Bravo! Colonel! Bravo!
Capt. Golding. Pass the Madeira this way, Major; but first help
yourself.
[Each now takes a glass of Madeira—a Babel call for the
servants immediately follows—“Tom! John! Jack! James!”
and exeunt omnes, whistling and staggering.]
A DAUGHTER OF OSSIAN.

“Il y a encore une autre espèce de larmes qui n'ont que de petites sources, qui
coulent et se tarissent facilement: on pleure pour avoir la réputation d'être tendre;
on pleure pour être plaint; on pleure pour être pleuré; enfin, on pleure pour éviter
la honte de ne pleurer pas.”—De la Rochefoucauld.

Who treads upon the field of death? Who sighs upon the winds of
the night, like the mourning ghost of the warrior, mingling its
melancholy tones with the shrieks of the passing owl, that lonely
flaps his pinions in the moonlight? Who walks amongst the slain?
See, where the figure glides with heedless step, its white robe
streaming like a mist of morning when the sun first glances on the
mountain; now gazing on the pale moon, now turning to the paler
faces of the dead. Who walks upon the bed of sleeping carnage?
Who wakes the frighted night from her horrid trance, and thus
tempts her terrors? Is it the restless spirit of a departed hero, or the
ghost of the love-lorn maid? Is it light, or is it air? Ah no! it is not
light, it is not air; it is not the ghost of the love-lorn maid; it is not
the spirit of the departed hero. No, no, no, no!—'tis Mrs. Jenkins of
the 48th!!!
And it was Mrs. Jenkins of the 48th. She, poor soul! was the victim
of early impressions. She was cradled in romance, and nursed in air-
built castles; she read of Ossian, and she became his adopted
daughter; she read of Sir Walter, and she became his adopted niece;
she was Lady Morgan's “sylph-like form,” and her voice was one of
Tom Moore's “Irish Melodies;” she could delight the eyes of the rude
with tambour-work and velvet-painting; she could ravish their ears
with a tune on the piano; she could finish a landscape in Indian ink,
and play the “Battle of Prague” without a stop. The admiration of her
doating parents, the envy of her female acquaintances, angelic,
charming Charlotte Clarke (now Mrs. Jenkins of the 48th) was all you
could desire.
Charlotte was bred at Portarlington boarding-school; there did she
form her mind—there did she learn that she had “a soul above
buttons,” and that love and glory were the “be all and the end all” of
existence. Trade! fie,—contaminate not the ethereal soul—dim not
the halo that surrounds such excellence, by the approach of such
coarse and vulgar matter! Charlotte despised it, even as her father
loved it and gave to it all his days.
Dublin is a martial city; the view of the royal barracks is a royal
sight. There did she love to go and gaze, and listen to the band,
until the tears stole down her lovely cheeks. She would then walk
home, and weep, and sleep, and dream of epaulettes both gold and
silver, of scarlet coats, of feathers and long swords. Her days (until
after tea-time) were passed in reading Newman's novels, and
practising the “run” of Braham. “He was famed for deeds of arms;
She a maid of envied charms.” “Young Henry was as brave a youth.”
“Hark where martial music sounding far.” These were her songs; she
practised them in the morning with her hair in papers, and she sung
them after supper, (whenever she was at a “party”) with her
interesting curls upon her forehead, shading her blushes and the
soft light of her languid eyes. She loved the Rotunda-gardens in the
summer evenings, and she gloried in the ball, when winter hung
upon the night; for both in gardens of Rotunda, and in light of ball-
room, the red coats ever in her hopes, cut a figure in her eye, and a
deeper in her heart. She went to the Dargle and the Waterfall, to
Pool Avoca,7 and Killyny (when ever she was invited), and among
the Summer Sunday beauties of the scene, full well she did enact
her part. Her life was one bright dream, beaming with sun-bright
smiles and brighter tears. Her heart was tender, and her will was
strong. Need it be said, that such a maid fell deeply in love? Alas!
she did. The gentle Charlotte loved;—ah! deeply loved—but who she
could not tell! It was a form and yet it was not matter, (no matter,
indeed, whether it was or not); it was a hero, all epaulettes and
scarlet, white feathers, and still whiter pantaloons, set out with
sword and belt and sash and gorget; a hero at all points, whose
name, nevertheless, was not to be found in the army list: in short
the being was a lovely paradox—a thing and yet a nothing, she saw
it in her dreams, as well as in her wakeful hours; it never left her
side waking or asleep; there was the form of her darling lover, like
Moore's “Knight of Killarney,” O'Donohue and his white horse on a
May-day morning,
“That youth who beneath the blue lake lies
· · · · · ·
While white as the sails some bark unfurls,
When newly launch'd thy long mane curls,
Fair steed, fair steed, as white and free,”
dancing and prancing on the winds; there he was in a splendid
uniform, (some say with buff facings, some say green,) and she
woo'd it, and she woo'd it, till her cheek grew pale, and her eye lost
half its brightness. Every officer she met on the Mall was likened to
her lover in her “mind's eye;” but they were not her lovers. Captains
Thompson, Jones, and Pentilton; Lieutenants Jacobs, Raulins, and
Flagherty; Ensigns Gibbs, Mullins, and Mortimer; all resembled the
object of her love, but she refused to acknowledge their identity with
it. At length young Jenkins, an Ensign of Militia, realized the aerial
form she so long had loved. Yes, he did actually embody it; and at
the holy altar, even in spite of crusty fathers
“Who make a jest of sweet affection,”
the amiable and adorable Charlotte Clarke became the gentle Mrs.
Jenkins.
“War's clarion blew!” Napoleon and Wellington struggled like two
giants for ascendancy. Ensign Jenkins volunteered into the line, and
proceeded to the fields of Lusitania. Could Charlotte stay behind?
No! the briny waters soon bore her, with her husband and seven
other officers (all members of the mess), to Portugal. Ensign Jenkins
was ordered to the front. Could Mrs. Jenkins stay behind? No! she
braved the fatigues of the march and the horrors of the battle, like a
true heroine: she loved the 48th, and she would go along with it,
through thick and thin. The parching sun, the drenching storm, the
unmoistened biscuit, and the chill damp bivouac alike she would
endure.—“Love and Glory” carried her through all. It was a sight
worth all the jewels of romance to see—a thought worth all heaven
to contemplate—the sight of Mrs. Charlotte Jenkins, like a
“ministering angel,” standing amidst the terrors of the field!
The battle raged; the slain were many; the regiment covered
themselves with glory—but poor Jenkins fell! The moon arose upon
the field of battle, and shone upon the dead—the fight was over.
Could Mrs. Jenkins rest without her husband? Oh, no! Forth she hied
to search out the body of her Jenkins, dead as he was, at the dead
hour of night. She gazed at the moon—she gazed upon the slain—
and she thought upon the days of her teens, of Newman's novels,
and Portarlington.
A tender-hearted sympathetic soul, by name Captain Rogers of the
Grenadiers, watched the fair Charlotte's steps (for she had told him
she would go and seek her Jenkins) and gently led her from the
sickening scene.
Poor Jenkins was not found; but dead, no doubt he was, for there
were several witnesses of his fall. He had fallen upon his face—the
Sergeant lifted him from the earth, but he did not speak—life was no
longer there; so the Sergeant left him lying on the field, for he had
yet to knock some others down.
The truth struck strong upon fair Charlotte's heart; her bursting
bosom was saved from rending by a well-timed flood of tears, which
the Captain politely wiped away. “Cease, lady, cease this useless,
unavailing grief,” sighed the sympathetic Rogers; “if thou hast lost a
husband, still are a thousand left for thy choice;—and though one
Jenkins may be gone, another Jenkins may supply his place.”
Oh! to be thus addressed amidst romantic war! and by a Captain,
too, of Grenadiers!—I cannot, will not further—
Draw, draw the veil upon her weakness! But stay, I must—I must
reveal it—she was comforted; and not many nights passed o'er her
widowed bed, till ... married was Charlotte to her Rogers—as well as
in the field they could be married, where parsons are but rare as all
who know allow.
In joyous honeymoon the pair repaired to Lisbon (for Rogers was
detached upon a special duty), mayhap because the blushing bride
wished for retirement from a scene which must have ever reminded
her of Ensign Jenkins. But be that as it may, a month had scarcely
told its thirty days (or thirty-one, I know not which), when one dark
night, such as the wolf delights in, a solemn knock was heard at the
outer door of the house where rested Rogers and his lady, “Who
comes?” The door is opened—a figure stands at the threshold.—It is
Ensign Jenkins!!! O appalling sight! “A ghost, a ghost! my husband's
ghost!” the frighted Mrs. Rogers cries; “Oh, take him from my sight!”
“No, thank you, Ma'am,” replies the visitor; “I am no ghost, but
Ensign Jenkins of the 48th!!!”
No more; I'll say no more, and wherefore should I? Family affairs I
leave as I find them; but this I must relate. The Ensign was not
dead, but speechless when the Sergeant lifted him from off the turf;
he had received a knock-down blow, but soon recovered and was
taken prisoner on the field. From French captivity he then escaped;
but ah! not time enough to save his lady love.
Oh cursed chance! that Sergeant's false and deadly report should
thus put virtuous woman's love to proof!

REMARK.

If there be any romantic lady attached to the army, who sees in


herself a close resemblance to the Ephesian matron, or my heroine,
the Author beseeches she will not make it known; but let the tale
and its allusions, and its moral, sink into “the tomb of all the
Jenkinses.”
When the 48th regiment was selected for the purpose of giving a
local habitation to the Author's imaginary hero and his love, it was
only because that number came first to hand. Nothing could be
further from his ideas, than to make the slightest disrespectful
allusion to that corps, which, as is well known, was and is one of the
finest in the service.
THE MULETEER.

Light on the mountain was fading away,


Dimly 'twas closing the long summer's day;
But light on the heart of the muleteer shone,
Which brightened each step that his mule gallop'd on.
For long had he follow'd the dreary campaign,
Long sigh'd for the maid of his bosom again;
And when from the valley her home met his view,
His heart on before his mule rapidly flew.

Silent was night—but more silent the cot—


Ruin and waste was the village's lot:
The foot of the Frenchman there heavily trod—
The track was seen deep in the villager's blood.
The Muleteer called—but no voice could he hear,
He look'd for his love—but no woman was there;
The flash of despair though his brain wildly flew;
And he wept o'er the ruins of all that he knew.

Wept not he long; for the flame of his woe


Burnt every thought, but revenge on the foe;
His mule wild he turn'd on the hills of Navarre,
He girded his sword, and he flew to the war.
There, loud—as he gave each invader his doom,
He call'd on his love—on his country—his home;
But the death-ball at last through his sad bosom sped,
And the muleteer sunk with the slain of his blade.8

This little ballad has its origin in the following pathetic story, which
I heard from the only surviving relative of the unfortunate muleteer
—his mother. It was in the town, or rather village of Ernani, on the
high road from Tolosa to France, that the old widow beguiled a
winter's night with the recital of it, at her poor but hospitable hearth,
when I was on the march to Fontarabia, in the last of our peninsular
campaigns. The poor woman supported herself by selling cider,
butter, cheese, &c. to the passing armies of both French and English,
and her house, as well as others, served as a quarter for the
soldiers. She was one of the few who remained in the village; or
rather who returned to it, after it was first sacked by the French; for
she had lost all, and had nothing more to fear. About four years had
elapsed since her son's death; and her grief had changed to a
settled melancholy. Still the recital of her calamities drew tears from
her.
Her son was a muleteer, who traded between Pampalona and
Passages—a young man of about twenty-three years of age: he was
employed by others, as well as on his mother's account, who was a
widow left in a considerable business, to manage for herself and
infant son, whom she bred up to industrious habits; and she had
succeeded in laying by a small provision for the future, when
Napoleon's ambition, which, in 1808, sent a French army into Spain,
extended its baneful effects even to her humble dwelling.
The house in which this widow dwelt, was situated at the
extremity of the village. It must have once been a most enchanting
little home to an unambitious mind; for even at the time I saw it,
ruin as it was, its garden trodden down, its trees broken and torn
up, its fences destroyed, and its walks disfigured—a charm lingered
over it that caught every passenger's attention. The scenery around
gave it a peculiar beauty: the blue mountains, the dark valleys, the
luxuriance of foliage, the deep green dell, the falling water, and the
clear sky still remained;—these the soldiers of France could not
destroy, and from such scenery did the wreck of the widow's cottage
derive its rural halo. It reminded me of the fair Ophelia in her ruin,—
so beautiful, so scathed and sorrowful! If a picture of the spot were
painted by a Salvator Rosa, it would afford a melancholy pleasure to
every beholder; but the reality—the poor widow and her breaking
heart, gave too much pain to render a visit to her cheerless home at
all enviable.
To have seen her sitting in the only tenantable apartment of her
once comfortable cottage, thinly but cleanly clad—a white apron and
kerchief covering the half worn out black stuff gown; two broken
chairs, a crazy table, a straw pallet, and a few earthen panella's,9
forming all her furniture; to have contemplated the fixed melancholy
of her thin, worn, but once handsome countenance, her gentle
manners, and her patient submission to the will of Heaven, under
the deepest affliction—and yet to have been unable to alleviate her
distress, could give no pleasure to the heart, unless to those who
love to sympathise with grief and drop a tear with the unfortunate.
Yet even such would have involuntarily said, on quitting the
melancholy scene, “I wish I had not heard the poor old widow's
story.”
Her son Diego the muleteer, when the French first entered Spain,
under the orders of Buonaparte, was about twenty-two years of age,
and had the reputation of being an exemplary young man, obedient,
and affectionate to his mother—his only relation, except an uncle,
who also resided in Ernani, and whose farm the young muleteer no
doubt would have inherited, after his death, had he survived him.
Under the uncle's auspices, Diego had courted a young girl, nearly
related to a respectable family, at the head of which was a
clergyman residing in the convent of St. Ignatio de Loyola, but a few
leagues from Ernani. The girl's father lived within a hundred yards of
Diego and his mother, and from infancy the young couple became
attached to each other.
Although the employment of a muleteer is, in general, considered
beneath the class to which Diego's sweetheart belonged, yet there
was no objection to her marriage, on account of the excellent
character the young man bore, and the expectations which he had
of future success in life. The marriage would have taken place as
soon as a house, which the muleteer's uncle was building, might be
completed. In this house the young couple were to have resided,
and to it was attached an excellent farm, to be managed by him for
the uncle. These happy arrangements, alas! were broken by the
columns of the French army. Like mountain torrents they poured
over the Pyrenees, sweeping the rustic comforts of the peaceful
Spaniards before them. Requisitions for cattle and carriages were
enforced, and Diego, amongst many, was obliged to march with his
mules along with the invading army, wherever his directors thought
fit.
Short was the time allowed for the sad yet endearing farewell of
the lovers, and the interchange of blessings between the mother and
the son. The uncle and the widow accompanied him a league
beyond the village; but the poor girl, who now for the first time felt
the bitterness of life, remained weeping at home, almost dead with
grief; which was not alleviated by the return of Diego's mother and
uncle, whose first care, after parting with the youth, was to go to
her he loved so well. The house—the whole village was a place of
mourning; for every family, in some way or other, had but too much
cause for sorrow.
Poor old woman! when she told me of the last moment she
passed with her lost son, she sobbed as if her heart would have
burst. “Oh!” said she, “I was giving my dear child a prayer-book and
a silk handkerchief, for the sake of remembrance, when one of the
dragoons struck him with the flat of his sword, and ordered him to
go on; he could only say, ‘God bless you, mother!’... I never saw him
again.”
For six months after this separation, the family of Diego heard no
tidings of him; for, no doubt, his letters, as well as theirs, were
opened and destroyed by the invaders; however, at the end of that
time, a muleteer, who had been pressed along with Diego, returned,
by permission, to die from ill health, and he brought letters from him
to the almost despairing friends. It appeared by these, that he was
along with the army in the south of Spain, and had but little hopes
of being able to return to his beloved Joanna, his relatives, and his
projected farm-house, for at least another half-year; but he did not
even at that period return—nor for upwards of a year after.
During this absence Mina and his intrepid Guerillas were incessant
in their annoyance of the French, throughout the province in which
the widow lived; frequently surprising strong parties of the enemy,
even in the town of Ernani. So desperate were these warriors, that
they would often appear on the high and broken hill, close under
which the city of Tolase stands; and when the French regiments
were on parade beneath them in the square, would open an
unexpected volley of musketry on them, which never failed in taking
good effect; and before they could be subject to retaliation they
were generally off. It was an attack of this description, headed by
Mina, which afforded a pretence for the destruction of Ernani.
The Guerillas had halted there for half a day, and furnished
themselves with provisions. A French regiment, hot from Bayonne,
and eager for plunder, marched in, as Mina's men marched out; and
at an ambuscade upon the road, received a most annoying fire from
the Guerillas, without being able to pursue them. The regiment
immediately commenced the work of destruction in the village:—the
houses were sacked and set on fire; the inhabitants murdered; and,
amongst the general ruin, was the widow's cottage. Diego's uncle
was sabred in his own house, and the innocent girl, who was all to
the absent muleteer, still more cruelly treated. Her poor father, in
protecting her from the brutal violence of the soldiers, was shot
through the head, and the unhappy girl herself died in three weeks
after at Escotia, a village in the Basque mountains, whither she and
the mother of Diego fled. Her eyes were closed by the widow's
hand, and her last words were her “dear, dear Diego!”
Shortly after the sacking of the village the Muleteer returned. He
had deserted with great difficulty from the southern army, taking
with him his favourite mule; and was pacing in the highest possible
spirits, singing along the road from Tolosa, when the tops of the
houses, amongst which his early and happy days were passed, met
his eye. It was in the evening. The sight of his own Joanna's home,
and of his beloved mother's cottage, made him urge on his mule.
Light was his heart and light his song; he was then about to enjoy,
as he thought, the happiest hours of his existence. It was quite dark
when he arrived;—he rode up to the house of his Joanna; there was
no light—no sound: he entered trembling, for there was no door, and
his brain reeled as he beheld in the twilight the ruins of the house.
He ran to his mother's cottage, this was no better; distracted then
he entered the village;—all was desolate,—no living creature but a
wild dog crossed his way. He entered his uncle's house, and there
upon the floor lay the murdered body, naked and bruised; he lifted it
up, and by the grey light from a sashless window recognized the
features of his uncle. The truth now flashed on him: this scene of
horror was only one of those which he was forced to witness while
with the army from which he had deserted. For a few moments he
was senseless, but this only preceded the tempest of his mind;—he
ran back to his mule, mounted, and galloped to Rinteria, about a
league distant. Here the first persons he met outside the town were
two French soldiers; in a moment he was off his mule, and before
time for a thought had passed, they both lay bleeding at his feet: he
killed them with his cochilio; there was but little noise, for they never
spoke. Breathless and raging, he remounted, and rode on to the
house of one he had known—a former companion; there he learned
the fate of his Joanna,—that both she and his mother were dead.
Diego's hands were covered with blood; and as he cursed the
authors of Ernani's destruction, he exultingly showed to his friend
the red drops of retribution, and told him that he had already struck
down two of the invaders to the earth. The young man, to whom he
confessed this circumstance, was the person who afterwards
informed his mother of it. He declared that such was the state of
Diego's mind, when he came to him at Renteria, that he would have
destroyed himself, but for the satisfaction he felt in having killed the
Frenchmen. I conversed with this young man at Renteria afterwards,
for he returned to his home when the British arrived at Passages.
The alarm was now beginning to spread. Diego's friend was not
less the enemy of the French than himself. Mina was in the
mountains. Two excellent horses were in the stable of Diego's friend,
belonging to a French colonel: these, with a brace of pistols and two
swords, they seized during the absence of the servants; and,
together with Diego's mule, forded the river, and took a by-way
across the hill, towards the Tolosa road; the favourite mule was
turned loose in a fertile valley, and the next day both the travellers
came up with Mina's party, which they joined with a shout of “Viva
Espagna!”
Many a Frenchman fell by the hand of Diego—he had lost all; he
only lived to avenge the destruction of his home and his happiness.
No Guerilla was before him in the attack,—he was the first in, and
the last out of the battle: and if gratified revenge could compensate
for the ruin of tender affections, Diego was amply satisfied. But no,
nothing could appease him,—the thought of his misery burned like
Ætna's fires within his breast,—no blood could extinguish it. With
only seven or eight others, he has been known to have surprised a
party of French soldiers three times that number. Often has he
watched their movements dressed as a simple muleteer, and when
any favourable opportunity has occurred, he would hasten back to
his companions, buckle on his sword, and return, thus reinforced, to
attack any straggling band of the enemy drinking in a wine house,
perhaps, or otherwise off their guard. To set fire to the house, and
then dash in upon their victims and slaughter them, before they
were aware of their danger, was a very usual mode of proceeding
with Diego and his associates; after which exploits the Guerillas
would disappear as rapidly as they had come.
At one of these attacks the Muleteer met his death. His friend was
beside him when he fell, and from him I heard the fight described.
The Guerillas consisted of between fifty and sixty prisoners, and had
received information that some mules loaded with valuables, and
escorted by a company of French infantry, were on their way from
Bilboa to Bayonne, and had not yet passed a defile in the mountains
about two leagues and a half from the former city. Through this
defile runs a narrow river close to the high road. On one side of this
road and river rises a rugged mountain, whose steep sides are
abruptly broken in several parts, and at others hang out over the
depth below. In various shelves of the height are to be seen full-
grown trees, the roots of which stretch out from the broken earth,
and serve for the support of creeping and climbing underwood. This
bold mountain continues unintersected for at least half a mile; and
as the opposite side of the road beneath is equally flanked by rocks,
the invaders, in forcing this passage, were wholly at the mercy of
the enemy above: and before they took the precaution of securing
the heights, whole divisions were often cut off by a handful of men,
who would deliberately march on with the French column, firing
upon it as often as they could load, doing the greatest execution.
To this pass, then, hastened the Guerilla party, and arrived about
an hour before the mules and escort appeared in sight. As soon as
the French had advanced well into the defile, the Guerillas appeared
above on the heights, dismounted, and opened fifteen muskets upon
them. The fire was returned, but with no effect; for one step
backwards brought the Guerillas under cover of the craggy verge of
the height. The French increased their speed to double quick time,
but the Guerillas kept up such a fire upon them, that twenty men
out of about seventy, were strewed along the road, dead or
wounded. The Guerillas now laid down their muskets, mounted, and
fell in with the remainder of their own men, in order to get before
the French, and thus finish the business by a charge. They trotted
on, and headed the escort very soon. They now descended to the
road, and lay in ambush about a quarter of a mile from the enemy. A
projecting arm of a rock, covered with trees, concealed them from
the French, whose column was now passing, and in a moment, a
most desperate charge from the Guerillas broke them up. The mules
took fright and increased the confusion, while the sabres of the
Spaniards finished in a very short time the bloody affair. Diego's
horse was in the midst of the French, and there fell with him,
wounded. He fought on foot with both dagger and sabre, and had
just brought to his feet a French sergeant, when one of the men
who lay near him, wounded from his sabre, levelled his piece at
Diego, and shot him through the breast. He was the only one his
brave party lost, while every single Frenchman was either killed by
them or the peasants, who gladly finished what the Guerillas began.
This was the fate of the unhappy Diego. He did not die for an hour
after he fell. His comrades carried him into the mountains, and there
he breathed his last. But before he died, he took from his pocket the
prayer-book and the silk handkerchief which his mother gave him
the day he parted from her, and consigned them, as his last gift of
friendship, to his companion, with a request that he would offer a
mass for his poor mother's soul, and never cease to pursue the
French with vengeance while they had a foot in Spain. Then kissing
the lock of hair, which he held, he said “Do not take this out of my
hand when I am dead, but bury it with me: it is the hair of my own
dear Joanna.”
His wish was obeyed, and he was buried just as he lay, under a
wild chestnut-tree, where a Frenchman had never trod. Peaceful be
the bed of the Guerilla for ever! May the invader never disturb the
grass that waves over his dust!
When the poor widow had told me the short history of her hapless
son, she went to a little box, and with the tears streaming down her
pale cheeks, brought me the handkerchief and the prayer-book;
—“There,” says she, “is all I have left of my poor son!” She
staggered with grief and debility as she walked across the room with
the treasure of her heart. I took them with reverence, and concealed
my tears by examining them; for I will not deny it, I could not help
weeping. The poor woman sat down, and rocked herself to and fro
in silent grief, while I turned over the leaves of the prayer-book
without knowing why I did so. At this moment my servant entered
the room to prepare supper, and I left the house to indulge in my
thoughts for half an hour alone amongst the ruins of Ernani.
RATIONS, OR ELSE!

General Picton, like Otway's Pierre, was a “bold rough soldier,” that
stopped at nothing; he was a man whose decisions were as
immutable, as his conceptions were quick and effective, in all things
relative to the command which he held. While in the Peninsula, an
assistant commissary, (commonly called assistant-commissary
General, the rank of which appointment is equal to a Captain's,)
through very culpable carelessness, once failed in supplying with
rations the third division under General Picton's command; and on
being remonstrated with by one of the principal officers of the
division, on account of the deficiency, declared, with an affected
consequence unbecoming the subject, “that he should not be able to
supply the necessary demand for some days.” This was reported to
the General, who instantly sent for the Commissary, and laconically
accosted him with:—
“Do you see that tree, Sir?”
“Yes, General, I do.”
“Well, if my division be not provided with rations to-morrow, by
twelve o'clock, I'll hang you on that very tree.”
The confounded Commissary muttered, and retired. The threat
was alarming: so he lost not a moment in proceeding at a full gallop
to head quarters, where he presented himself to the Duke of
Wellington, complaining most emphatically of the threat which
General Picton had held out to him.
“Did the General say he would hang you, Sir?” demanded his
Grace.
“Yes, my Lord—he did,” answered the complainant.
“Well, Sir,” returned the Duke, “if he said so, believe me he means
to do it, and you have no remedy but to provide the rations!”
The spur of necessity becomes a marvellous useful instrument in
sharpening a man to activity: and the Commissary found it so; for
the rations were all up, and ready for delivery, at twelve o'clock the
next day.
INFERNAL DUTY.

“Down, down to hell, and say I sent thee thither.”


Shakspeare.

Captain Thompson, of the artillery, while serving in the Peninsula,


had the luck to lose, in the space of one campaign, every man of the
heavy brigade which he commanded, some by sickness, but most by
the enemy; and he found himself at last, not only the captain of the
brigade, but, in his own person, the brigade itself. Finding, however,
that a commanding officer, without men to command, was neither
useful nor ornamental, he applied personally to the Adjutant-
general, for advice under the circumstances, observing, that he
wished to be appointed to some other duty. The Adjutant-general, at
the moment the application was made to him, happened to be
proceeding across the village in which they were quartered, to Lord
Wellington; and said he would speak to his Lordship, requesting
Thompson to call on him, for the purpose of knowing the
Commander of the forces' will on the subject. When the Adjutant-
general mentioned the matter to Lord Wellington, his Lordship was
very busy with a map of the Peninsula, and did not give any answer
regarding the captain and his brigade; but continued to attend to the
subject he was then engaged with.
At length the Adjutant-general got up to retire, and amongst other
things, asked his Lordship again, where he should send Captain
Thompson; “Oh, send him to h——ll,” was the reply, and the
interview ended.
When the last man of the brigade called upon the Adjutant-
general, to know the result of his application, he was accosted by
that officer in a grave and official manner:—
“Captain Thompson,” said he, “I am sorry we are going to lose
you; and still more sorry to learn the sort of duty which the
Commander of the forces has assigned to so deserving an officer.”
The Captain, who was a most gallant and deserving, but hot-
tempered and impetuous man, interrupted the Adjutant-general
thus: “God bless me! I hope his Lordship is not going to send me
home.”
“I don't know that,” was the answer.
“I'm sure I have done my duty since I have joined his Lordship's
army,” continued the Captain, “and I trust I shall not be so far
negatively disgraced.”
“My dear Captain,” replied the Adjutant-general, “it is not a very
disgraceful duty to which you are appointed, considering the very
respectable men who have preceded you upon it. The fact is, that
the Commander of the forces, knowing you to be a devil of a fire-
eater, has directed us to send you to h——ll, and here is your route,”
handing him an official direction of the marches by which he was to
arrive at his destination.
The stages mentioned in the route were whimsical in the extreme,
and there were several good points made; the last-mentioned place
on the road was London.
When Thompson read the paper, his weather-beaten jaws relaxed
into a smile; and putting the document into his pocket, he drily
remarked, that Lord Wellington had always been in the habit of
giving him hot work. “It is not the first time,” said he, “that I was
sent to clear the way for him; however, when I arrive, I'll look out
for warm quarters for his Lordship and staff. But there is a mistake
in the route, I suspect; you see ‘London’ is the last stage
mentioned.”
“Yes,” replied the Adjutant-general, “and depend upon it that is
the nearest way to the infernal regions.”
“Excuse me,” rejoined Thompson, “there is a much better.”
“What is that?” asked the other.
“Why,” said the Captain, “Wellington, to be sure.”
The joke was soon carried to the Commander of the forces, and
his Lordship, with the best humour in the world, changed
Thompson's route, and took him off the infernal duty to which he
had previously ordered him.
NIGHTS IN THE GUARD-HOUSE.
No. II.

“Hoo' comes it, that ye ha' got an' extra guard the naight, Mulligan
—Eh?”
“Musha 'pon my sowl, Sargeant M'Fadgen, it's becaise the Captain
ordthered it.”
“Poh! mun, I ken that weel; but the Captain wonna gi' ye a guard
for naething, wad he?”
“No, faith! it's something to me; for I've had three this week
before; that is, three nights out o' bed in my reglar juty; so isn't it
something to be ordthered another night by way o' recreation?”
“Aweel, but what ha' ye been doin, lad?”
“Faith! I was doin' nothing at all; an' it was for that I got my
guard.”
“Hoo's that?”
“I was ordthered to put out the light in my barrack-room every
night at nine o'clock, an' I did not do it last night—that 's all.”
“But you were doin' a wee bit o' something, I'll warrant, Pat. Ye
war a liften yer han' to your muzzle—eh?”
“O! that's nothing at all at all. We had a dthrop to be sure. That
fellow over there on the stool—(you, mister Jack Andrews, I mane)
—kept a tellin' us such stories, that I forgot the time entirely. Hooh!
the divil may care—Jack is here now, and Corporal O'Callaghan to
boot; so what signifies a guard, if they'll only tip us a bit of a song:
what do you say, Sargeant—eh?”
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!

ebookultra.com

You might also like