0% found this document useful (0 votes)
33 views

Buy ebook Learning functional data structures and algorithms learn functional data structures and algorithms for your applications and bring their benefits to your work now Khot cheap price

algorithms

Uploaded by

chanjapreece
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Buy ebook Learning functional data structures and algorithms learn functional data structures and algorithms for your applications and bring their benefits to your work now Khot cheap price

algorithms

Uploaded by

chanjapreece
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Learning functional data structures and algorithms


learn functional data structures and algorithms
for your applications and bring their benefits to
your work now Khot
https://textbookfull.com/product/learning-functional-data-
structures-and-algorithms-learn-functional-data-structures-
and-algorithms-for-your-applications-and-bring-their-
benefits-to-your-work-now-khot/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Learning Functional Data Structures and Algorithms Learn


functional data structures and algorithms for your
applications and bring their benefits to your work now 1st
Edition Atul S. Khot
https://textbookfull.com/product/learning-functional-data-structures-
and-algorithms-learn-functional-data-structures-and-algorithms-for-
your-applications-and-bring-their-benefits-to-your-work-now-1st-
edition-atul-s-khot/
textboxfull.com

Probabilistic data structures and algorithms for big data


applications Gakhov

https://textbookfull.com/product/probabilistic-data-structures-and-
algorithms-for-big-data-applications-gakhov/

textboxfull.com

Data Structures and Algorithms in Swift Kevin Lau

https://textbookfull.com/product/data-structures-and-algorithms-in-
swift-kevin-lau/

textboxfull.com

Data Structures & Algorithms in Python John Canning

https://textbookfull.com/product/data-structures-algorithms-in-python-
john-canning/

textboxfull.com
Codeless Data Structures and Algorithms: Learn DSA Without
Writing a Single Line of Code Armstrong Subero

https://textbookfull.com/product/codeless-data-structures-and-
algorithms-learn-dsa-without-writing-a-single-line-of-code-armstrong-
subero/
textboxfull.com

Data Structures Algorithms in Kotlin Implementing


Practical Data Structures in Kotlin 1st Edition
Raywenderlich Tutorial Team
https://textbookfull.com/product/data-structures-algorithms-in-kotlin-
implementing-practical-data-structures-in-kotlin-1st-edition-
raywenderlich-tutorial-team/
textboxfull.com

Algorithms and Data Structures in Action MEAP V12 Marcello


La Rocca

https://textbookfull.com/product/algorithms-and-data-structures-in-
action-meap-v12-marcello-la-rocca/

textboxfull.com

A Common Sense Guide to Data Structures and Algorithms 1st


Edition Jay Wengrow

https://textbookfull.com/product/a-common-sense-guide-to-data-
structures-and-algorithms-1st-edition-jay-wengrow/

textboxfull.com

Data Structures Algorithms in Go 1st Edition Hemant Jain

https://textbookfull.com/product/data-structures-algorithms-in-go-1st-
edition-hemant-jain/

textboxfull.com
Learning Functional Data
Structures and Algorithms
Table of Contents
Learning Functional Data Structures and Algorithms
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Why Functional Programming?
The imperative way
Higher level of abstraction
Functional programming is declarative
No boilerplate
Higher order functions
Eschewing null checks
Controlling state changes
Recursion aids immutability
Copy-on-write
Laziness and deferred execution
Composing functions
Summary
2. Building Blocks
The Big O notation
Space/time trade-off
A word frequency counter
Matching string subsets
Referential transparency
Vectors versus lists
Updating an element
Not enough nodes
Complexities and collections
The sliding window
Maps
Persistent stacks
Persistent FIFO queues
Sets
Sorted set
Summary
3. Lists
First steps
List head and tail
Drop elements
Concatenating lists
Persistent data structures
Tail call optimization
List append
List prepend
Getting value at index
Modifying a list value
Summary
4. Binary Trees
Node definitions
Building the tree
Size and depth
Complete binary trees
Comparing trees
Flipping a binary tree
Binary tree traversal
The accumulator idiom
Binary Search Trees
Node insertion
Searching a key
Updating a value
Exercising it
Summary
5. More List Algorithms
Binary numbers
Addition
Multiplication
Greedy algorithms and backtracking
An example of a greedy algorithm
The backtracking jig
Summary
6. Graph Algorithms
Reversing a list
Graph algorithms
Graph traversal
Avoiding list appending
Topological sorting
Cycle detection
Printing the cycle
Summary
7. Random Access Lists
Incrementing a binary number
Adding two binary numbers
List of tree roots
Insertion
Lookup
Removal, head, and tail
Update
Summary
8. Queues
Understanding FIFO queues
Functional FIFO queues
Invariants
Implementing a priority queue
Understanding priority queues/heaps
Leftist trees
Functional heaps
Summary
9. Streams, Laziness, and Algorithms
Program evaluation
Eager evaluation
Argument evaluation
Lazy evaluation
Lazy evaluation in Scala
Lazy evaluation in Clojure
Memoization - remembering past results
Memoization in Scala
Memoization in Clojure
Memoizing simpleFactFun
Streams
Stream in Scala
Indexing the elements of a stream
Creation of an infinite length stream
Stream is immutable
Creating a stream from another
Stream to list
Appending one stream to another
Length of a stream
Some mathematical functions of the stream class
Some more methods of the stream class
Streams (lazy sequence) in Clojure
Creating a memoized function of lazy sequences in Clojure
Some algorithms on stream
Arithmetic progression
Arithmetic progression in Scala
Arithmetic progression in Clojure
Standard Brownian motion
Standard Brownian motion in Scala
Standard Brownian motion in Clojure
Fibonacci series
First form of Fibonacci series
Second form of Fibonacci series
Fibonacci series in Scala
Fibonacci series in Clojure
Summary
10. Being Lazy - Queues and Deques
Imperative implementations
Amortization
Problem with queues
Strict versus lazy
Streams
Streams meet queues
A sense of balance
Amortized deques
Summary
11. Red-Black Trees
Terminology
Almost balanced trees
The concept of rotation
Red-Black trees
Inserting a node
The Black-Red-Red path
Left, left - red child and grand child
Left child, right grand child
Right child, right grand child
Right, left
Verifying the transformation
Complexity
Summary
12. Binomial Heaps
Binomial trees
Left child, right sibling
A binomial heap
Linking up
Inserting a value
Binary number equivalence
Merging
Find the minimum
Deleting the minimum
Exercising the code
Complexity
Summary
13. Sorting
Stable and unstable sorting
Stable sorting
Unstable sorting
Bubble sort
Scala implementation of bubble sort
Complexity of bubble sort
Selection sort
Complexity of selection sort
Insertion sort
Complexity of insertion sort
Merge sort
Splitting the sequence
Merging two sorted subsequences
Complexity of merge sort
Quick sort
Partition
Complexity of quick sort
Summary
Learning Functional Data
Structures and Algorithms
Learning Functional Data
Structures and Algorithms
Copyright © 2017 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a


retrieval system, or transmitted in any form or by any means, without
the prior written permission of the publisher, except in the case of brief
quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the
accuracy of the information presented. However, the information
contained in this book is sold without warranty, either express or
implied. Neither the authors, nor Packt Publishing, and its dealers and
distributors will be held liable for any damages caused or alleged to be
caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information


about all of the companies and products mentioned in this book by the
appropriate use of capitals. However, Packt Publishing cannot guarantee
the accuracy of this information.

First published: February 2017

Production reference: 1170217

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78588-873-1
www.packtpub.com
Credits
Authors
Copy Editor
Atul S. Khot
Gladson Monteiro
Raju Kumar Mishra

Reviewer Project Coordinator

Muhammad Ali Ejaz Sheejal Shah

Commissioning Editor Proofreader

Kunal Parikh Safis Editing

Acquisition Editor Indexer

Denim Pinto Mariammal Chettiyar

Content Development Editor Graphics

Nikhil Borkar Abhinash Sahu

Technical Editor Production Coordinator

Hussain Kanchwala Shantanu Zagade


About the Authors
Atul S. Khot grew up in Marathwada, a region of the state of
Maharashtra, India. A self-taught programmer, he started writing
software in C and C++. A Linux aficionado and a command-line guy at
heart, Atul has always been a polyglot programmer. Having extensively
programmed in Java and dabbled in multiple languages, these days, he is
increasingly getting hooked on Scala, Clojure, and Erlang. Atul is a
frequent speaker at software conferences, and a past Dr. Dobb's product
award judge. In his spare time, he loves to read classic British detective
fiction. He is a foodie at heart and a pretty good cook. Atul someday
dreams of working as a master chef, serving people with lip-smacking
dishes.

He was the author of Scala Functional Programming Patterns


published by Packt Publishing in December 2015. The book looks at
traditional object-oriented design patterns and shows how we could use
Scala's functional features instead.

I would like to thank my mother, late Sushila S. Khot, for teaching


me the value of sharing. Aai, I remember all you did for the needy
girl students! Your support for the blind school - you brought hope
to so many lives! You are no more, however your kindness and
selfless spirit lives on! I know you are watching dear mother, and I
will carry on the flame till I live! I also would like to thank my
father, late Shriniwas V. Khot. Anna, I have a photo of the 'Tamra
pat'--an engraved copper plaque--commemorating your great
contribution to the country's freedom struggle. You never
compromised on core values --always stood for the needy and
poor. You live on in my memories--a hero forever! I would also
want to thank Martin Odersky for giving us the Scala
programming language. I am deeply thankful to Rich Hickey and
the Clojure community for their work on persistent data
structures. Chris Okasaki’s "Purely Functional Data Structures" is
a perennial source of inspiration and insight. I wish to thank Chris
for writing the book. This book is influenced by many ideas Chris
presented in his book. I also wish to thank the functional
programming community for all the technical writings which is a
source of continual learning and inspiration. I would love to
express my heartfelt thanks to Nikhil Borkar for all the support
through out the book writing. I also would take this opportunity to
thank Hussain Kanchwala for the detailed editing efforts to make
the book perfect. You guys are awesome! Thanks to y’all!

Raju Kumar Mishra is a consultant and corporate trainer for big data
and programming. After completing his B.Tech from Indian Institute of
Technology (ISM) Dhanbad, he worked for Tata Steel. His deep passion
for mathematics, data science, and programming took him to Indian
Institute of Science (IISc). After graduating from IISc in computational
science, he worked for Oracle as a performance engineer and software
developer. He is an Oracle-certified associate for Java 7. He is a
Hortonworks-certified Apache Hadoop Java developer, and holds a
Developer Certification for Apache Spark (O'Reilly School of
Technology and Databriks), and Revolution R Enterprise-certified
Specialist Certifications. Apart from this, he has also cleared Financial
Risk Manager (FRM I) exam. His interest in mathematics helped him in
clearing the CT3 (Actuarial Science) exam.

My heartiest thanks to the Almighty. I would like to thank my mom,


Smt. Savitri Mishra, my sisters, Mitan and Priya, and my maternal
uncle, Shyam Bihari Pandey, for their support and
encouragement. I am grateful to Anurag Pal Sehgal, Saurabh
Gupta, and all my friends. Last but not least, thanks to Nikhil
Borkar, Content Development Editor at Packt Publishing for his
support in writing this book.
About the Reviewer
Muhammad Ali Ejaz is currently pursuing his graduate degree at Stony
Brook University. His experience, leading up to this academic
achievement, ranges from working as a developer to cofounding a start-
up, from serving in outreach organizations to giving talks at various
prestigious conferences. While working as a developer at
ThoughtWorks, Ali cofounded a career empowerment based start-up by
providing photographers a platform to showcase their art and be
discovered by potential employers. His passion for computer science is
reflected in his contributions to open source projects, such as GoCD,
and his role in serving as the cofounder and Community Outreach
Director of a non-profit organization, "Women Who Code - Bangalore
Chapter". Along with this, he has also been given the opportunity to
speak at different conferences on Continuous Integration and Delivery
practices.

When he is not coding, he enjoys traveling, reading, and tasting new


cuisine. You can follow him on Twitter at @mdaliejaz.

I want to thank my Mom and Dad, who have always been my


inspiration. I’d also like to thank Ahmad and Sana, my siblings,
who have been a constant source of cheerful support. A lot of what
I am today is because of them.
www.PacktPub.com
For support files and downloads related to your book, please
visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book
published, with PDF and ePub files available? You can upgrade to the
eBook version at www.PacktPub.com and as a print book customer, you
are entitled to a discount on the eBook copy. Get in touch with us
at service@packtpub.com for more details.

At www.PacktPub.com, you can also read a collection of free technical


articles, sign up for a range of free newsletters and receive exclusive
discounts and offers on Packt books and eBooks.

https://www.packtpub.com/mapt

Get the most in-demand software skills with Mapt. Mapt gives you full
access to all Packt books and video courses, as well as industry-leading
tools to help you plan your personal development and advance your
career.

Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Customer Feedback
Thank you for purchasing this Packt book. We take our commitment to
improving our content and products to meet your needs seriously—that's
why your feedback is so valuable. Whatever your feelings about your
purchase, please consider leaving a review on this book's Amazon page.
Not only will this help us, more importantly it will also help others in the
community to make an informed decision about the resources that they
invest in to learn. You can also review for us on a regular basis by
joining our reviewers' club. If you're interested in joining, or would
like to learn more about the benefits we offer, please contact us:
customerreviews@packtpub.com.
Preface
This book is about functional algorithms and data structures. Algorithms
and data structures are fundamentals of computer programming.

I started my career writing C and C++ code. I always enjoyed designing


efficient algorithms. I have experienced many an Aha! moments, when I
saw how powerful and creative pointer twiddling could be!

For example, reversing a singly linked list using three node pointers is a
well known algorithm. We scan the list once and reverse it by changing
the pointer fields of each node. The three pointer variables guide the
reversal process.

I have come across many such pointer tricks and have used them as
needed.

I was next initiated into the world of multi-threading! Variables became


shared states between threads! My bagful of tricks was still valid;
however, changing state needed a lot of care, to stay away from
insidious threading bugs.

The real world is never picture perfect and someone forgot to


synchronize a data structure.

Thankfully we started using C++, which had another bagful of tricks, to


control the state sharing. You could now make objects immutable!

For example, we were able to implement the readers/writer locking


pattern effectively. Immutable objects could be shared without worry
among thousands of readers!

We slept easier, the code worked as expected, and all was well with the
world!

I soon realized the reason it worked well! Immutability was finally


helping us better understand the state changes!
The sands of time kept moving and I discovered functional
programming.

I could very well see why writing side-effect free code worked! I was
hooked and started playing with Scala, Clojure, and Erlang. Immutability
was the norm here.

However, I wondered how the traditional algorithms would look like in a


functional setting--and started learning about it.

A data structure is never mutated in place. Instead, a new version of the


data structure is created. The strategy of copy on write with maximized
sharing was an intriguing one! All that careful synchronization is simply
not needed!

The languages come equipped with garbage collection. So, if a version is


not needed anymore, the runtime would take care of reclaiming the
memory.

All in good time though! Reading this book will help you see that we
need not sacrifice algorithmic performance while avoiding in-place
mutation!

What this book covers


Chapter 1, Why Functional Programming?, takes you on a whirlwind
tour of the functional programming (FP) paradigm. We try to highlight
the many advantages FP brings to the table when compared with the
imperative programming paradigm. We discuss FP’s higher level of
abstraction, being declarative, and reduced boilerplate. We talk about
the problem of reasoning about the state change. We see how being
immutable helps realize "an easier to reason about system".

Chapter 2, Building Blocks, provides a whirlwind tour of basic concepts


in algorithms. We talk about the Big O notation for measuring algorithm
efficiency. We discuss the space time trade-off apparent in many
algorithms. We next look at referential transparency, a functional
programming concept. We will also introduce you to the notion of
persistent data structures.

Chapter 3, Lists, looks at how lists are implemented in a functional


setting. We discuss the concept of persistent data structures in depth
here, showing how efficient functional algorithms try to minimize
copying and maximize structural sharing.

Chapter 4, Binary Trees, discusses binary trees. We look at the


traditional binary tree algorithms, and then look at Binary Search Trees.

Chapter 5, More List Algorithms, shows how the prepend operation of


lists is at the heart of many algorithms. Using lists to represent binary
numbers helps us see what lists are good at. We also look at greedy and
backtracking algorithms, with lists at the heart.

Chapter 6, Graph Algorithms, looks at some common graph algorithms.


We look at graph traversal and topological sorting, an important
algorithm for ordering dependencies.

Chapter 7, Random Access Lists, looks at how we could exploit Binary


Search Trees to access a random list element faster.

Chapter 8, Queues, looks at First In First Out (FIFO) queues. This is


another fundamental data structure. We look at some innovative uses of
lists to implement queues.

Chapter 9, Streams, Laziness, and Algorithms, looks at lazy evaluation,


another FP feature. This is an important building block for upcoming
algorithms, so we refresh ourselves with some deferred evaluation
concepts.

Chapter 10, Being Lazy – Queues and Deques, looks at double-ended


queues, which allow insertion and deletion at both ends. We first look at
the concept of amortization. We use lazy lists to improve the queue
implementation presented earlier, in amortized constant time. We
implement deques also using similar techniques.
Chapter 11, Red-Black Trees, shows how balancing helps avoid
degenerate Binary Search Trees. This is a comparatively complex data
structure, so we discuss each algorithm in detail.

Chapter 12, Binomial Heaps, covers heap implementation offering very


efficient merge operation. We implement this data structure in a
functional setting.

Chapter 13, Sorting, talks about typical functional sorting algorithms.


What you need for this book
You need to install Scala and Clojure. All the examples were tested with
Scala version 2.11.7. The Clojure examples were tested with Clojure
version 1.6.0. You don’t need any IDE as most of the examples are small
enough, so you can key them in the REPL (Read/Eval/Print Loop).

You also need a text editor. Use whichever you are comfortable with.
Who this book is for
The book assumes some familiarity with basic data structures. You
should have played with fundamental data structures like linked lists,
heaps, and binary trees. It also assumes that you have written some code
in a functional language.

Scala is used as an implementation language. We do highlight related


Clojure features too. The idea is to illustrate the basic design principles.

We explain the language concepts as needed. However, we just explain


the basics and give helpful pointers, so you can learn more by reading
the reference links.

We try to site links that offer hands-on code snippets, so you can
practice them yourself.

Walking through an algorithm and discussing the implementation line by


line is an effective aid to understanding.

A lot of thought has gone into making helpful diagrams. Quizzes and
exercises are included, so you can apply what you've learned.

All the code is available online. We strongly advocate keying in the code
snippets though, to internalize the principles and techniques.

Welcome to the wonderland of functional data structures and


algorithms!
Conventions
In this book, you will find a number of text styles that distinguish
between different kinds of information. Here are some examples of
these styles and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file
extensions, pathnames, dummy URLs, user input, and Twitter handles
are shown as follows: "The following function f has a side effect,
though."

A block of code is set as follows:


user=> (def v [7 11 19 52 42 72])
#'user/v
user=> (def v1 (conj v 52))
#'user/v1

If there is a line (or lines) of code that needs to be highlighted, it is set as


follows:
scala> def pop(queue: Fifo): (Int, Fifo) = {
| queue.out match {
| case Nil => throw new
IllegalArgumentException("Empty queue");
| case x :: Nil => (x, queue.copy(out =
queue.in.reverse, Nil))
| case y :: ys => (y, queue.copy(out = ys))
| }
| }
pop: (queue: Fifo)(Int, Fifo)

New terms and important words are shown in bold. Words that you
see on the screen, for example, in menus or dialog boxes, appear in the
text like this: "Clicking the Next button moves you to the next screen."
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you
think about this book—what you liked or disliked. Reader feedback is
important for us as it helps us develop titles that you will really get the
most out of.

To send us general feedback, simply e-mail feedback@packtpub.com,


and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in
either writing or contributing to a book, see our author guide at
www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number
of things to help you to get the most from your purchase.

Downloading the example code


You can download the example code files for this book from your
account at http://www.packtpub.com. If you purchased this book
elsewhere, you can visit http://www.packtpub.com/support and register
to have the files e-mailed directly to you.

You can download the code files by following these steps:


1. Log in or register to our website using your e-mail address and
password.
2. Hover the mouse pointer on the SUPPORT tab at the top.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box.
5. Select the book for which you're looking to download the code files.
6. Choose from the drop-down menu where you purchased this book
from.
7. Click on Code Download.

Once the file is downloaded, please make sure that you unzip or extract
the folder using the latest version of:
WinRAR / 7-Zip for Windows
Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux

The code bundle for the book is also hosted on GitHub at


https://github.com/PacktPublishing/Learning-Functional-Data-
Structures-and-Algorithms. We also have other code bundles from our
rich catalog of books and videos available at
https://github.com/PacktPublishing/. Check them out!
Downloading the color images of this book
We also provide you with a PDF file that has color images of the
screenshots/diagrams used in this book. The color images will help you
better understand the changes in the output. You can download this file
from
https://www.packtpub.com/sites/default/files/downloads/LearningFunctionDat

Errata
Although we have taken every care to ensure the accuracy of our
content, mistakes do happen. If you find a mistake in one of our books
—maybe a mistake in the text or the code—we would be grateful if you
could report this to us. By doing so, you can save other readers from
frustration and help us improve subsequent versions of this book. If you
find any errata, please report them by visiting
http://www.packtpub.com/submit-errata, selecting your book, clicking
on the Errata Submission Form link, and entering the details of your
errata. Once your errata are verified, your submission will be accepted
and the errata will be uploaded to our website or added to any list of
existing errata under the Errata section of that title.

To view the previously submitted errata, go to


https://www.packtpub.com/books/content/support and enter the name of
the book in the search field. The required information will appear under
the Errata section.

Piracy
Piracy of copyrighted material on the Internet is an ongoing problem
across all media. At Packt, we take the protection of our copyright and
licenses very seriously. If you come across any illegal copies of our
works in any form on the Internet, please provide us with the location
address or website name immediately so that we can pursue a remedy.

Please contact us at copyright@packtpub.com with a link to the


suspected pirated material.
We appreciate your help in protecting our authors and our ability to
bring you valuable content.

Questions
If you have a problem with any aspect of this book, you can contact us
at questions@packtpub.com, and we will do our best to address the
problem.
Another Random Scribd Document
with Unrelated Content
BUBA GIDA’S ELEPHANT HUNTERS.

On the occasion of our first introduction to the Lakkas luckily nothing serious
happened. After a few seconds of very nervous demonstrating with spears
and shields, our friends-to-be rushed off in a panic, one fat youth getting a
spear crossed between his legs and falling flat. As we required a guide, and
as our only chance of getting one was to seize him, we secured him before he
had quite recovered. He at once showed his sense by yielding quietly,
although he must have been in an awful funk. This lad eventually became our
voluntary guide and introducer, but for the moment we were compelled to hold
him prisoner. Keeping a sharp eye on our ruffians to see that they took nothing
from the huts, we passed through and finally reached the village of a man who
was supposed to be the best able to show us elephant. The village, of course,
was deserted, so we pitched camp bang in the centre of it. We also got our
captive to shout to his friends that all was well, that we were friends and had
come to hunt elephant only. This latter statement required some believing,
judging by the time it took to get any answer to our overtures—which was not
surprising, accompanied as we were by notorious slavers. But at last an old
woman came, nosed about a bit, and left again, returning presently with the
man we wanted. I have often admired the infinite capacity of the African to
take things as they come with composure, but never more so than on this
occasion. Here was his village in the hands of his enemies, added to this the
complication and anxiety caused by the presence in their midst of two white
men. So far, his dealings with white men had been anything but pleasant—a
German military expedition had passed through. Yet here he was, ready for
anything that might turn up, unarmed and with a face of brass—for a day or so
willing to please, but, above all, willing to speed the parting guest. Elephants?
Rather! Hundreds of them, all round So-and-So’s village fifteen miles further
on. None here? Oh, no! They were here, but all have gone to ⸺. And what
about those tracks we saw as we neared his village? Oh! those were made by
some elephant which came from ⸺, but which returned to ⸺ the next
morning.
It was obvious that this eagerness to get rid of us would last just as long as
we remained unwelcome; that is, until we had killed an elephant and shared
the meat with the natives. After that event relations might reasonably be
expected to become more cordial, provided that meanwhile we could avoid
fighting in any shape or form. Now, this avoiding of fighting must necessarily
depend largely on the natives themselves, for of course if one is attacked one
must defend oneself. Especially so among these Lakkas was this the case, for
they had no powerful chiefs whom they obeyed. Indeed, they were what my
companion and myself called, loosely enough, I dare say, Bolsheviks. Every
man was out for himself, and to hell with everything else. No authority of any
kind was obeyed. And to this total lack of cohesion or combination we
undoubtedly owed the fact that we were not attacked seriously before we
became friendly with them. They had developed the art of running away to a
fine point by storing their grain and beer-making appliances in the thick part of
the bush, by building huts, the loss of which by fire at the hands of an enemy
would occasion least labour to repair, by keeping all livestock, such as goats
and sheep, tethered at a convenient distance from the village, and in many
other ways assisting their one trump card—instant flight.
Few people who have not experienced it can have any conception of how
effective such a “barrage” can be. You perhaps wish to traverse the country.
You arrive at a village. Nobody there. You proceed along a path which seems
to lead in the direction in which you wish to go. It lands you in another
deserted village. Now you have to camp, and water has to be found.
Sometimes in the dry season this may be miles from the camp. The drawers
of water must be escorted. Then you wish to purchase food for your carriers.
No one to sell it. You think to take it and leave the value in kind in its place,
only to discover that no food of any kind is kept in the village. All this time not
a soul is seen or even heard. You give it up and pass on to some actively
hostile or friendly tribe, as the case may be.
As we appeared to be so unwelcome in this village we decided to move on
the next day. The chief man of the village promised to provide us with a guide
to the village where elephant were reported as visiting the gardens every
night. Anxious as he was to get rid of us, we reasoned that, to attain that
object, he would surely provide the guide or lead us himself. We consequently
liberated our captive guide, loading him with presents and promising him
mountains of meat when and wherever we should kill an elephant if he would
come to claim it. He stayed around for some time, and I began to hope that he
would accompany us further, but he presently disappeared.
On the morrow our reasoning about the guide was completely confounded,
as white men’s reasoning so often is when applied to African affairs. No guide
was forthcoming, nor could the village headman be found. The village was
once more completely deserted. As, however, we had been able to get the
general direction from the headman before he went to bush, we broke camp
and took a likely-looking path.
After much wandering from one deserted village to another we arrived in the
afternoon at a large one on the edge of a slough. As usual there was not a
soul to be seen, but I have no doubt that our every movement was being
carefully watched. On the march some kob had been shot and a good portion
of the meat reserved for any native who might venture to approach us. After
we had had our meal an old man came in. He was taken no notice of by
anybody—far the best way to allay suspicion. When he seemed more at his
ease I gave him some buck meat. He took it and at once began to cook it, as
he had seen it cut from a leg with the skin still on it. It was unlikely, therefore,
to be poisoned, and besides, if he took the meat away with him he would have
to share it with others. To avoid this he evidently purposed eating it in our
camp.
When he had fairly got the taste of meat on his palate, I got the interpreter
to work on him about elephant. At first he said there were none. We did not
worry him, although we knew this to be a lie, as we had seen recent tracks
that day. After some time he volunteered the information that elephant had
been in the gardens the night before. I said to him that I thought I would go
and kill one or two, in as indifferent a tone as I could, and that if he cared to
come along he would certainly get some meat. He became quite excited then,
saying he would fetch me a man who would show me where the elephant had
been eating the corn in the night. Off he hurried and soon came back with
several men. We were ready for them, and as they preceded us some of them
ran on ahead to pick up the freshest tracks, blowing as they went their curious
little signalling whistles. With these whistles they can talk over quite a distance
—in fact, it is a sort of short-range wireless telegraph. We found it
subsequently of great assistance, as the notes of these whistles were familiar
to elephant, and they appeared not to mind them in the least.
Although the sun was already half-way between the vertical and the
sundown, we judged from the air of suppressed excitement about our guides
that the game was not far off. This surmise proved to be correct, for about a
mile from our camp we entered a large plantation literally ploughed up by
elephant. My companion, who was naturally the most stoical of men, showed
signs of great interest. This was his first safari in real wild country, and he had
never yet seen a wild elephant. All the tracks were those of bulls, and some of
them were colossal. Plenty of 63-in. and 64-in. feet had been there, and one
with a circumference of 70 ins. This meant that the owner had a shoulder
height not far short of 12 ft. We thought that if their tusks were in proportion to
their feet we had indeed struck lucky.
The elephant had evidently been visiting this plantation nightly for some
time, and the damage must have appeared terrible in the eyes of the owners.
Bananas had been stripped, broken off, or completely uprooted. Sugar cane
ceased to exist. Much of the millet had been eaten and more trampled down.
But it was the ground-nuts which had suffered most. These nuts grow in
clusters on the roots of a clover-like plant and are barely covered with soil.
The shell is quite fragile and cracks on the least pressure being applied. When
it is remembered that the foot of an elephant covers some two square feet of
ground, and that he has four of them, and that when feeding he is seldom still
for long, one begins faintly to appreciate the devastating effect two or three
dozen of them would have on any garden.
Wasting no more time than was necessary to unravel the tracks, we were
soon hot on the trail of a large bull. This trail led us among other gardens for a
time, all similarly raided. But presently we left cultivation and plunged into high
bush, fairly dense in parts, with long grass in the more open places. I stopped
and told the crowd of natives who had tagged themselves on to us that no one
was to follow us on any account, hinting with my rifle what would happen if
they did so. Then we took with us one native and followed the trail. In a very
short time we heard noises ahead of us. We stopped to listen. Sure enough it
was elephant. Leaving the native, we walked carefully but rapidly toward the
noises. It had been arranged between us that, as I had had previous
experience of this game, I was to do the shooting, while my companion picked
up what tips he could. I was leading when I suddenly saw through the clearer
ground-stems of the bush the feet and parts of the legs of a motionless
elephant. At the same time the noises we had been approaching appeared to
come from beyond this quiet elephant. A glance through the leaves revealed
nothing of his body. This was awkward. He was only a few paces distant, and
the wind was all over the place, as is usual in thick stuff. If we ran into him and
killed him the chances were that the shot would stampede the others. And
then, he might have little or no ivory, although his legs and feet were massive
enough. Relying on these elephants being quite familiar with human smell, I
slipped round behind him, making plenty of unavoidable noise, and so got
between him and the noisy bunch. We were rewarded for this manœuvre by
reaching an opening in the bush which gave us not only a view of the noisy
ones, but also a glance at our first friend as he moved off. This glance showed
that he had short but thick ivory. I instantly put a shot into him and another into
what appeared to be the largest among the noisy ones. Both were heart
shots, as in this type of bush the lower half of an elephant is generally more
clearly disclosed than the upper half. At the shot there was the usual terrific
commotion, crashing trees and dust. Hot on the vanishing sterns we raced
and jumped to a standstill, face to face with the first elephant I had fired at.
Head on, there he stood, perfectly motionless, about ten yards away. To me,
of course, he was merely a stricken animal and would topple over in a few
moments; but to my companion he must have appeared quite sufficiently grim
and menacing. I dropped him with the frontal brain shot, and showed my
companion the direction and elevation for this shot, and then off we raced
again on the trail of the others. We soon came upon the second elephant; he
was down, but not yet quite dead. As he raised his head my companion tried a
shot at his brain with his ·450, but failed to find it. I finished him with a ·318.
Leaving W. to wait for the natives, I tried on alone. I had not gone a quarter
of a mile when I caught sight of a large bull elephant. He was moving towards
an abandoned plantation through nice open stuff, and had I been able to
reach him before he arrived at the densely bushed plantation I would have got
him easily. But he reached and disappeared into the thick stuff without offering
a chance. One would imagine that so massive an animal would leave behind
him a passage clear enough for a man to pass along with ease and speed.
This is by no means the case; everything rises up and closes in behind him
again, and the trail remains almost as difficult to follow as before. I plunged
into the horrible stuff and was soon close up to his stern. All I could do was to
keep close up and wait until either we reached an open patch, when I might
be able to range up alongside, or until he turned so as to give a chance at the
brain. The rifle cartridge is not yet invented which will rake a full-grown
elephant from stern to vitals.
HE DISAPPEARED INTO THE THICK STUFF.
THERE HE WAS NOW FACING ME.

As I stumbled and clambered and pushed and sweated along behind this
fellow he suddenly stopped, stood for an instant, then threw his head up,
backed sharply towards me and to my left, at the same time bringing his front
end round with a swing, and there he was now facing me. This manœuvre
was so unexpected and done so swiftly—all in one movement, as it were—as
to be perfectly amazing. The transformation from that massive but rather
ridiculous-looking stern to the much higher head, with its broad forehead,
gleaming tusks and squirming trunk, was so sudden and disconcerting that I
missed the brain and had barely time to reload and fire again—this time into
his body and from the hip, with the muzzle perhaps only a few inches from his
hide—as he rushed over the very spot I had occupied an instant before.
Whew! But I thought I had him, although I suspected I had placed my shot too
low. This was wrong, for I just then heard a crash and knew he was down. He
was stone dead when I reached him. It was almost sundown, and I called up
the natives. W. came with them. I was very exhausted and thirsty, having done
no elephant hunting since before the war, so we demanded beer from the
Lakkas, who were now our bosom friends. This was soon forthcoming from
the bush, and very refreshing we both found it. We had three very large
elephants, which would supply everyone with meat, and we expected that it
would bring the natives in from other parts with further news of elephant. The
ivory was very disappointing; it was of good quality, but very short and hollow.
After the death of the first elephant, runners had gone to bring up the safari to
a nearer village, so that we had not the long and deadly trek so common after
an elephant hunt. In fact, we had barely gone a mile when we saw the
welcome reflection of our fires on the trees, and we were soon as comfortable
as possible.
After a substantial meal of buck-meat and rice, I asked W. what his
impressions had been like. He told me the most vivid occurred when I fired the
first shot. He said it appeared for all the world as if the elephant were
motionless and the trees rushing past them.
As anticipated, the Lakkas became much more friendly after enjoying such
mountains of meat, to say nothing of the riddance of the marauders from their
gardens. They never became of very much use to us in the capacity of
carriers, and always bolted to the bush when the subject was mentioned.
Even when we offered lavish payment in trade goods for the carrying of our
ivory from one village to another they invariably bolted. They could never quite
trust our following, I think.
We hunted elephant for some time in this country. There were numerous
bull herds scattered about, living chiefly upon native plantations, and we
ridded the Lakkas of a fair number, although the nature of the country was
against big bags. When the time came for us to return to Buba Rei to get our
canoes we parted firm friends with the Lakkas. The return journey was
accomplished without incident more alarming than a poor abortive attempt by
some Lakkas to spear some of our following. No one was hurt, and we were
overjoyed to receive news while on the return journey that our canoes had
arrived. The short rains had begun, and we had some trouble crossing some
of the rivers. We could now begin the real expedition, which had as its object
the ascent of the practically unknown and quite unexplored Bahr Aouck.
On our arrival at Buba Rei for the second time we again visited the king to
thank him for all he had done for us. This time relations were rather frigid. To
begin with, the king remained lolling on his couch when he received us. He
had, of course, heard all about our refusing to allow any “recruiting” of slaves
to be carried out, and I daresay he was furious with us. He remained polite but
cold, and we noticed a great falling off in the presents of food, etc., which are
demanded by custom. Among other things we were distinctly annoyed to find
that we were classed by the king as third-class white men. To Buba Gida there
were three classes of European. In the first category were French governors,
French administrators, and French military officers. For these sweet
champagne was forthcoming, in quantities to suit the individual importance of
the visitor. Class two comprised minor French officials, important American or
English travellers, scientific expeditions, surveys, etc.; these got whisky, while
ginger beer was reserved for elephant hunters, clerks, or small commercial
people. We were Ginger Beerites.
In spite of this we calculated what we owed the king, and paid him by
presenting him with three tusks. He seemed only tolerably pleased with these.
It was with a feeling of relief that we departed from Buba Rei and its
atmosphere of intrigue and cruelty.
XII
THE ASCENT OF THE BAHR AOUCK

It was from native sources that I first heard of the Bahr Aouck. While hunting
elephant both to the north and south of its junction with the Shari River I had
repeatedly heard of a large river. But I had noticed that whenever I tried to get
a native to give definite information about this mysterious river he at once
became very reserved. For some time I treated the existence of this river as
being rather mythical, until I came across a vague reference to it in Kumm’s
book on Africa. I made more enquiries both among white men and natives,
and at last I came to the conclusion that there was nothing for it but to go and
see. Some accounts said it existed, some that it existed for some distance, but
then disappeared into the ground; some pooh-poohed its existence altogether,
while others had it that no one could penetrate in face of the opposition that
would be encountered. Another authority on the subject—he was military
governor of the whole country in which the mysterious river was supposed to
exist—held the view that all the remnants of the Khalifa’s die-hards and the
riff-raff from all parts had a kind of last stronghold on this river, and that
nothing short of a well-equipped military expedition could go through. Another
account said there was no water during the dry season.
All these conflicting accounts proved to be wrong. There was enough water
to float a river steamer at the height of the dry season. There were no die-
hards or riff-raff of any sort—indeed, there were no inhabitants at all, for the
very good reason that the whole country became inundated during the wet
season. And as for its disappearance into the ground, all that we who
ascended it can say is that it was not doing it while we were there. The
outbreak of war prevented any attempt on my part to probe the mystery. Here
I might as well confess that it was not so much a desire to probe the mystery
as the hope of finding some good elephant country which decided me to
attempt an ascent.
Obviously some kind of water craft would have to be employed. If there was
a river there would probably be sufficient water to float a canoe. At the same
time there would probably be shallows where even a native canoe would
ground. Native canoes are very heavy to portage, therefore it seemed to me
that Canadian canoes of the “freight” type were the only means of transport
holding out any hope of proving successful. Hence, when the war was over,
my friend W. and myself decided to try our luck. With this end in view we
ordered two canoes from the Peterborough Canoe Company of Canada to be
shipped direct to Africa from New York. One of these canoes was 18 ft. by 44
ins., and carried an enormous amount of stuff, while the other was smaller.
Their construction was vertical strip covered with canvas. The big one
weighed 150 lb. and could be carried by two men easily. I may say at once
that these canoes were the greatest success. We had with us quick-repair
outfits, and whenever a hole was knocked in them we patched it up in a few
minutes. As regards propulsion, they proved to be by far the cheapest form of
transport I have ever had, for one’s ordinary boys, cook, and gun-bearers
could and did paddle and push them along against the current at a rate of
twenty miles a day, and that without great fatigue, so easily do these
delightful, graceful, fine-lined and efficient little craft slip through the water. Out
of all our boys only one was what could be called a waterman; the others had
no previous experience whatever of canoes or water.

GALLERY FOREST AND BABOON.


CAMP ON LAKE LÉRÉ.

To reach the watershed to which our mystery river belonged—if it existed at


all—it was necessary to travel many hundreds of weary miles. First 500 miles
against the current. Then a land portage of eighty miles. Then a descent with
the current of 200 miles, and then an ascent against the current of some 450
miles. Incredible as it may seem in these days of quick transport, this trek took
four months to accomplish, and that before reaching the beginning of the
unknown river. Long before we arrived there our scanty store of European
provisions was finished, and we lived entirely upon the country. We had left
England very poorly provided with provisions, as there were regulations still in
force prohibiting the export of foodstuffs.
On our way and while waiting for our canoes, which had got sadly delayed
among the shippers, we visited the native Sultan Buba Gida, as I described in
Chapter X. On our return from Buba’s country—where we had some
interesting shooting—we found our canoes ready for us. It did not take us long
to get our gear ready, and off we started up-stream for the long and arduous
journey before us. We made sails and fitted masts to the canoes, as we often
had a following wind, and they assisted tremendously. W. was an
accomplished waterman and steered one canoe, while I steered the big one.
So as to be handy to our fleet we had been camped on a beautiful sand-bank
while preparing for the start, and every evening we practised the boys in
paddling. When the day came, when all was stowed neatly away, we rattled
off up-stream at a great pace, passing easily any craft on the river.
As our way now lay for hundreds of miles through more or less well-known
country, I will merely recount the incidents of more than ordinary interest. One
of these happened when we made a halt for washing clothes. One of our boys
—who could not swim—calmly walked into a very deep and dangerously swift
part of the river to recover his shirt which had blown in. To his astonishment he
found that he could not keep his head above water. Judging by the expression
on the face which every now and again bobbed up at a rapidly increasing
distance, this—to him—curious fact did not seem to alarm him at all. The
perfect fool kept grinning every time his head came out. It suddenly dawned
upon me that I had seen this kind of thing before, and that the boy was really
drowning. I immediately shoved the naked headman—a clever swimmer—into
the river, telling him to save the lad. But long before he reached him the
gallant W. had towed him to the bank, where he continued to grin foolishly.
Another was when I pipped an enormous “croc.” He was floating lazily down
the centre of the current when I shot him. Hit in the brain, he happened to float
until some natives got their fish-harpoons into him. They towed him ashore
and cut him up, and there in his inside was what I had read of in travellers’
tales, but had never before seen—a native woman’s brass bangle. The
natives of the place claimed to know this croc. well, and even to know the
name of the bangle’s former owner. The finding of the bangle did not at all
prevent the natives from eating the croc. In connection with the finding of
bangles in crocs.’ insides, a missionary we met advanced a theory that the
crocs. picked up and swallowed a lot of these from the river bed. But he could
not explain how the bangles got there.
Throughout this expedition W. and I lived for the most part on what we shot
and on what we could buy from the natives. Almost everywhere we got
whistling teal with great ease. One shot from W.’s 12-bore would usually
provide enough for all hands. He seldom picked up less than five or six, and
once we gathered twenty-nine from a single discharge. They were tender and
fat enough to cook in their own juice, and their flavour was exquisite. They
were literally in tens of thousands in some places. There were many other fowl
in thousands also, but none were so good to eat as the whistlers, except the
tiny and beautiful “butter-ball” teal. These were rather rare. The spur-winged
goose and the Egyptian goose were also very numerous, but tough and
strong in the pot. Guinea-fowl were very common, and the young ones were
delicious, while the old ones made capital soup. On one occasion we heard
guinea-fowl making a tremendous clatter in the bush by the river bank. We
paddled over to shoot some for the pot. W. fired at one in a tree from the
canoe. At the report a large lioness slunk away through the bush. This
occurred on our way home, and as we were by that time satiated with lion we
let her go unmolested.
A MAN-EATER, FROM WHOSE INSIDE A WOMAN’S BANGLE WAS TAKEN.

Besides all the fowl there were fish in abundance. W. was a great
fisherman, and had brought a good assortment of hooks and strong sea lines.
We were seldom out of fish. As soon as we arrived at the camping ground W.
and the boys would bait their hooks with teal-guts or a piece of buck meat,
and in a very short time either the tackle was broken or a fine fish landed. W.
could never resist for long the temptation to bait a hook with a small fish of ½
lb. or so, in the hope of catching that most sporting and excellent fish the tiger
or “capitaine.” It always ended in his hooking a tiger, but it also ended in the
complete loss of hook and most of the line. No gear, however strong, seemed
capable of holding this fish. We often admired them as they leapt feet into the
air when in hot pursuit of some smaller fish. They presented such an air of
activity and energy on these occasions as to make the movements of running
salmon appear quite tame and slow in comparison. That they are equally
good on the table we had many opportunities of testing, as we always chose
them in preference to the others when buying from the natives, who catch
them in clever traps. We once had a “capitaine” served up with mayonnaise
and the most perfect wine; this was when we lunched with the Governor, and
a more delicious fish could not be imagined. We were told, as a tribute to its
excellent qualities, that it derived its name from the fact that it was considered
that no one below the rank of “capitaine” was worthy to eat it.
Time accomplishes wonders even in Africa, and at last we were actually
about to enter the Bahr Aouck. We were deeply laden with foodstuffs, ready
for anything that might turn up. W. had a ·318 Mauser, a ·450 D.B., and a 12-
bore shot-gun. I had a ·318 and a ·22. Stacks of ammunition for these lay
snugly packed in tins in the canoe hold. Then we had six “boys,” all pretty
expert with canoes by this time. We had these boys in splendid order. They
were of no particular tribe or caste—in fact, they were all of different tribes or
castes. We paid them well, but, what was of far greater importance, we kept
them in tip-top condition. Living ourselves, as we were by this time, entirely
upon native food, we appreciated at their correct value the many and various
grains, nuts, oils, etc., and whatever we had our boys also shared. Fish and
meat, millet or maize meal, rice and ground-nuts, palm oil, sim-sim oil, ground-
nut meal and honey, all were to be found in the capacious hold of our cargo
canoe, and all at a trifling cost. Whenever we were compelled to replenish our
store of foodstuffs we killed a hippo or two, rolled it up on a sand-bank, and
immediately a market would spring up.
The consequence of this high living was a state of high efficiency and
contentment among the crew. As none of them had ever been with white men
except the cook, who had been with a German, they were all unspoiled and all
willing to do anything that turned up. The cooks were boys one day, tusk-
choppers the next, canoe carriers the next, and so on. Everybody had to turn
their hands to anything, and all were crew.
When, therefore, we sighted the junction of the Bahr Aouck with the Shari,
against whose sluggish current we had paddled so many weary miles, we all
felt keen and ready to tackle anything that might turn up. We had been careful
to keep our destination secret, so that when we actually steered our canoes
into the Bahr Aouck our boys had not the slightest inkling of our intention to
ascend this river. All being strangers to this country they had never heard of
the Bahr Aouck—or, indeed, of any other of the many “bahrs” there. But had
they known the name, through our having mentioned that we were going
there, it is almost certain that they would have made enquiries among the
natives we had already met with, and that from them they would have
received such dreadful reports as would have led them to desert rather than
penetrate the unknown. Consequently, when we paddled vigorously into the
swifter current of the Bahr Aouck we were all a merry crew; the boys were
merry because they did not know where they were, and W. and I were merry
because we did know where we were, and also because the water which bore
us at that moment was obviously that of a considerable river, and we thought
that if it did not split up into many smaller streams we would go far, and
perhaps discover something worth while. I do not know what W. would have
considered worth while, as he never showed feeling of any sort and he did not
tell me. Although all this was quite new to him, one would have said, on
seeing him at this moment, that he must have been exploring unknown
country all his life and had grown tired of it. To me, the moment of our entry
into the Bahr Aouck was most exhilarating. I had visions of immense herds of
unsophisticated elephant with enormous ivory; perhaps new tribes, gold,
diamonds, stores of dead ivory waiting for someone to pick them up, new
animals, water-elephants, and a thousand and one other visions. As usual
with visions, none of these materialised.

NATIVE DECOYS: BUNDLES OF GRASS, THE ENDS WHITEWASHED, STUCK ON


STICKS. SHARI RIVER.

WHISTLING TEAL AND LOCUST STORKS: BAHR AOUCK.


ROLLING UP HIPPO.

THE SMALL CANOE UP-STREAMING: BAHR AOUCK. THE PACKAGE IS DRIED FISH.

As we poled up-stream I took soundings. There were eight feet of water in


some places, in spite of it being the dry season. For the first few days we saw
very little game. A few kob and water buck, baboons and duiker. Once we saw
some fishing natives with their traps. They sold us some excellent smoked
fish, and told us that there was one village ahead of us, but beyond that
nothing. The next day we saw where a herd of elephant had crossed the river
some days before. Hippo now became more common, and at one place where
the river formed a large pool there must have been about a hundred of them
bobbing up and down. A mile or two further and we came to the village
mentioned by the fishermen. It was not actually on the banks, but we knew we
were close to it by the canoes and paths. Here we camped, hoping to get
some information of the river ahead of us. This was not forthcoming to any
extent. When asked, the natives generally appeared uneasy, said they had
never been up-stream, or muttered something vague about bad people further
on. All agreed, however, that there were no more villages. This determined us
to lay in a large cargo of foodstuffs. In order to do this I dropped down-stream
to the hippo pool with the small Canadian, now empty. I paddled to a sand-spit
which stuck out conveniently into the pool. It was literally covered with fowl of
various kinds as we approached. From the sand-spit I proceeded to shoot
hippo in the brain, and had no difficulty in killing enough to provide us with
sufficient food for a month or two, when the meat had been exchanged for
flour, etc. Hippo sink to the bottom when shot in the brain, remaining there for
a variable time, depending on the temperature of the water, the stage of
fermentation reached by the stomach contents, the inflation or otherwise of
the lungs at the moment of death, and the state of the river bottom. Generally
this period ranges between twenty minutes and one and a half hours. Shortly
after the first carcase had floated to the surface the natives began to arrive.
Some of these I sent off hot-foot to tell the whole village that there was meat
and fat for all who should bring food in exchange. Meanwhile the carcases
were towed to land and rolled up as soon as they floated. When the last had
been so dealt with the cutting up commenced, and when that was completed
there were already dozens of women waiting with calabashes of meal, etc., to
exchange for meat. Such a feast I dare say they had never seen before. It is
seldom that more than one hippo is killed at one time by native methods,
except on the Upper Nile, where they have a kind of grand battue in which
hundreds of canoes take part. Presently our market became very big. No
sooner did the natives see the size of the chunks of reeking beef given in
exchange for the various commodities than they rushed off to their homes to
bring something to barter. We obtained every conceivable kind of native
produce. Among the items was a canoe-load of smoked fish. This must have
weighed about 200 lb. and was bartered for half a hippo. We also got some
curious tobacco. Only the very small leaves and the tobacco flowers were in
this particular mixture. We both smoked it regularly and became very fond of
it. But it was very potent indeed, and had a far more drug-like effect than
ordinary tobacco.
HIPPOPOTAMUS IN THE SHALLOWS.

W., IN THE SMALL CANOE, RUNS INTO A RISING HIPPO BUT DIGS HER IN THE NECK
WITH HIS PADDLE AND SHE DISAPPEARS WITH A SPLASH, NEARLY SWAMPING THE
CANOE.

The slaughter of these hippo and the subsequent bartering had brought us
into touch with the natives very nicely indeed, and all were most friendly. So
much so was this the case that I ventured to approach one of their canoe-men
with the suggestion that he should accompany us up-stream. Rather to my
surprise he agreed to do so. Encouraged by this, I suggested that perhaps he
had a friend who might like to go with him. He said that he thought one of his
friends would go also. We were very glad indeed to have these fellows. The
first was quite a youth but a good waterman, while the second was a hard-
bitten man of middle age. I thought he would make a good tracker for W. when
we should reach elephant country. He was not a waterman at all; in fact, he
fell overboard from the small canoe—which was W.’s—so often that I was
obliged to put him in the larger and more stable one.
When all was ready we pushed off, very deeply laden. All was now new
river ahead of us. As we progressed day by day hippo became more and
more numerous. In some places they formed almost a complete barrage
across the river. Sometimes it was ticklish work steering between them. Their
heads often came up quite close to the canoes, and then they stared at us
goggle-eyed with astonishment. Once W.’s canoe ran its stem on to the neck
of a rising hippo, the fore part being lifted clean out of the water, canting over
dangerously, and then let down with a whack as the old hippo dived. They
shipped a deal of water, but there was no damage done. We soon found that if
we kept on the shallow side of the pools we ran less chance of bumping into
them, our only danger then being from hippo asleep on the bank suddenly
waking up and rushing blindly towards deep water. Had we ever had the ill
luck to have been across their way, I believe they would have rushed clean
into or over us.
For many days we saw no sign of elephant. Kob and water buck were fairly
numerous on the banks, and whistling teal, guinea-fowl, Egyptian geese,
spoonbills and egrets were common, while inland giraffe, rhino, buffalo,
haartebeeste, topi, oribi, roan, and duiker were numerous. Lion were
frequently heard, and W. shot a fine male on the carcase of a hippo which was
pretty far gone. This hippo must have been wounded by man somewhere, as
it was full grown and quite beyond a lion’s ability to kill. Fish became so
unsophisticated as to take anything you liked to put on a hook, and that right
alongside the canoe. So tame were they that our boys used to dangle buck
gralloch in the water and spear the fish which immediately swarmed round it.
Why fish were so numerous I do not rightly understand. It may have been
because there were no natives, who, with their gigantic traps, must destroy
countless fish. A curious thing was that the enormous “crocs.” we saw
appeared to prefer buck to fish. One which we shot was dragging a dead
haartebeeste into the water. The haartebeeste was full grown and had
evidently been kept under water for some time. We often spotted these
monsters lying motionless in the grass, waiting for buck to come along, I
imagine. Another large crocodile whom we were tempted to photograph was
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