Functional programming in Python 1st Edition David Mertz download https://ebookultra.com/download/functional-programming-in- python-1st-edition-david-mertz/ Explore and download more ebooks or textbooks at ebookultra.com
Here are some recommended products for you. Click the link to download, or explore more at ebookultra.com Text processing in Python 2. print Edition Mertz https://ebookultra.com/download/text-processing-in-python-2-print- edition-mertz/ Functional Programming in C First Edition Ivan Cukic https://ebookultra.com/download/functional-programming-in-c-first- edition-ivan-cukic/ Maya Programming with Python Cookbook 1st Edition Herbez https://ebookultra.com/download/maya-programming-with-python- cookbook-1st-edition-herbez/ Parallel Programming with Python First Edition Jan Palach https://ebookultra.com/download/parallel-programming-with-python- first-edition-jan-palach/
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/ Principles of Soft Computing Using Python Programming 1st Edition Gypsy Nandi https://ebookultra.com/download/principles-of-soft-computing-using- python-programming-1st-edition-gypsy-nandi/ Python Cookbook 3rd Edition David Beazley https://ebookultra.com/download/python-cookbook-3rd-edition-david- beazley/ Introduction to Computing and Programming in Python a Multimedia Approach Mark J. Guzdial https://ebookultra.com/download/introduction-to-computing-and- programming-in-python-a-multimedia-approach-mark-j-guzdial/ Elements of Programming Interviews in Python 1st Edition Adnan Aziz & Amit Prakash & Tsung-Hsien Lee https://ebookultra.com/download/elements-of-programming-interviews-in- python-1st-edition-adnan-aziz-amit-prakash-tsung-hsien-lee/
Functional programming in Python 1st Edition David Mertz Digital Instant Download Author(s): David Mertz ISBN(s): 9781491928561, 1491928565 Edition: 1 File Details: PDF, 1.56 MB Year: 2015 Language: english
Functional Programming inPython David Mertz
Additional Resources 4 Easy Ways to Learn More and Stay Current Programming Newsletter Get programming ­related news and content delivered weekly to your inbox. oreilly.com/programming/newsletter Free Webcast Series Learn about popular programming topics from experts live, online. webcasts.oreilly.com O’Reilly Radar Read more insight and analysis about emerging technologies. radar.oreilly.com Conferences Immerse yourself in learning at an upcoming O’Reilly conference. conferences.oreilly.com ©2015 O’Reilly Media, Inc. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. #15305
David Mertz Functional Programming in Python
978-1-491-92856-1 [LSI] Functional Programming in Python by David Mertz Copyright © 2015 O’Reilly Media, Inc. All rights reserved. Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). See: http://creativecommons.org/licenses/by-sa/4.0/ Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com. Editor: Meghan Blanchette Production Editor: Shiny Kalapurakkel Proofreader: Charles Roumeliotis Interior Designer: David Futato Cover Designer: Karen Montgomery May 2015: First Edition Revision History for the First Edition 2015-05-27: First Release The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Functional Pro‐ gramming in Python, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limi‐ tation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsi‐ bility to ensure that your use thereof complies with such licenses and/or rights.
Table of Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v (Avoiding) Flow Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Encapsulation 1 Comprehensions 2 Recursion 5 Eliminating Loops 7 Callables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Named Functions and Lambdas 12 Closures and Callable Instances 13 Methods of Classes 15 Multiple Dispatch 19 Lazy Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 The Iterator Protocol 27 Module: itertools 29 Higher-Order Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Utility Higher-Order Functions 35 The operator Module 36 The functools Module 36 Decorators 37 iii
Preface What Is Functional Programming? We’d better start with the hardest question: “What is functional pro‐ gramming (FP), anyway?” One answer would be to say that functional programming is what you do when you program in languages like Lisp, Scheme, Clojure, Scala, Haskell, ML, OCAML, Erlang, or a few others. That is a safe answer, but not one that clarifies very much. Unfortunately, it is hard to get a consistent opinion on just what functional program‐ ming is, even from functional programmers themselves. A story about elephants and blind men seems apropos here. It is also safe to contrast functional programming with “imperative programming” (what you do in languages like C, Pascal, C++, Java, Perl, Awk, TCL, and most others, at least for the most part). Functional program‐ ming is also not object-oriented programming (OOP), although some languages are both. And it is not Logic Programming (e.g., Prolog), but again some languages are multiparadigm. Personally, I would roughly characterize functional programming as having at least several of the following characteristics. Languages that get called functional make these things easy, and make other things either hard or impossible: • Functions are first class (objects). That is, everything you can do with “data” can be done with functions themselves (such as passing a function to another function). • Recursion is used as a primary control structure. In some lan‐ guages, no other “loop” construct exists. v
• There is a focus on list processing (for example, it is the source of the name Lisp). Lists are often used with recursion on sublists as a substitute for loops. • “Pure” functional languages eschew side effects. This excludes the almost ubiquitous pattern in imperative languages of assign‐ ing first one, then another value to the same variable to track the program state. • Functional programming either discourages or outright disal‐ lows statements, and instead works with the evaluation of expressions (in other words, functions plus arguments). In the pure case, one program is one expression (plus supporting defi‐ nitions). • Functional programming worries about what is to be computed rather than how it is to be computed. • Much functional programming utilizes “higher order” functions (in other words, functions that operate on functions that oper‐ ate on functions). Advocates of functional programming argue that all these character‐ istics make for more rapidly developed, shorter, and less bug-prone code. Moreover, high theorists of computer science, logic, and math find it a lot easier to prove formal properties of functional languages and programs than of imperative languages and programs. One cru‐ cial concept in functional programming is that of a “pure function”—one that always returns the same result given the same arguments—which is more closely akin to the meaning of “function” in mathematics than that in imperative programming. Python is most definitely not a “pure functional programming lan‐ guage”; side effects are widespread in most Python programs. That is, variables are frequently rebound, mutable data collections often change contents, and I/O is freely interleaved with computation. It is also not even a “functional programming language” more generally. However, Python is a multiparadigm language that makes functional programming easy to do when desired, and easy to mix with other programming styles. Beyond the Standard Library While they will not be discussed withing the limited space of this report, a large number of useful third-party Python libraries for vi | Preface
functional programming are available. The one exception here is that I will discuss Matthew Rocklin’s multipledispatch as the best current implementation of the concept it implements. Most third-party libraries around functional programming are col‐ lections of higher-order functions, and sometimes enhancements to the tools for working lazily with iterators contained in itertools. Some notable examples include the following, but this list should not be taken as exhaustive: • pyrsistent contains a number of immutable collections. All methods on a data structure that would normally mutate it instead return a new copy of the structure containing the requested updates. The original structure is left untouched. • toolz provides a set of utility functions for iterators, functions, and dictionaries. These functions interoperate well and form the building blocks of common data analytic operations. They extend the standard libraries itertools and functools and borrow heavily from the standard libraries of contemporary functional languages. • hypothesis is a library for creating unit tests for finding edge cases in your code you wouldn’t have thought to look for. It works by generating random data matching your specification and checking that your guarantee still holds in that case. This is often called property-based testing, and was popularized by the Haskell library QuickCheck. • more_itertools tries to collect useful compositions of iterators that neither itertools nor the recipes included in its docs address. These compositions are deceptively tricky to get right and this well-crafted library helps users avoid pitfalls of rolling them themselves. Resources There are a large number of other papers, articles, and books written about functional programming, in Python and otherwise. The Python standard documentation itself contains an excellent intro‐ duction called “Functional Programming HOWTO,” by Andrew Kuchling, that discusses some of the motivation for functional pro‐ gramming styles, as well as particular capabilities in Python. Preface | vii
Mentioned in Kuchling’s introduction are several very old public domain articles this author wrote in the 2000s, on which portions of this report are based. These include: • The first chapter of my book Text Processing in Python, which discusses functional programming for text processing, in the section titled “Utilizing Higher-Order Functions in Text Pro‐ cessing.” I also wrote several articles, mentioned by Kuchling, for IBM’s devel‐ operWorks site that discussed using functional programming in an early version of Python 2.x: • Charming Python: Functional programming in Python, Part 1: Making more out of your favorite scripting language • Charming Python: Functional programming in Python, Part 2: Wading into functional programming? • Charming Python: Functional programming in Python, Part 3: Currying and other higher-order functions Not mentioned by Kuchling, and also for an older version of Python, I discussed multiple dispatch in another article for the same column. The implementation I created there has no advantages over the more recent multipledispatch library, but it provides a longer conceptual explanation than this report can: • Charming Python: Multiple dispatch: Generalizing polymor‐ phism with multimethods A Stylistic Note As in most programming texts, a fixed font will be used both for inline and block samples of code, including simple command or function names. Within code blocks, a notional segment of pseudo- code is indicated with a word surrounded by angle brackets (i.e., not valid Python), such as <code-block>. In other cases, syntactically valid but undefined functions are used with descriptive names, such as get_the_data(). viii | Preface
(Avoiding) Flow Control In typical imperative Python programs—including those that make use of classes and methods to hold their imperative code—a block of code generally consists of some outside loops (for or while), assign‐ ment of state variables within those loops, modification of data structures like dicts, lists, and sets (or various other structures, either from the standard library or from third-party packages), and some branch statements (if/elif/else or try/except/finally). All of this is both natural and seems at first easy to reason about. The problems often arise, however, precisely with those side effects that come with state variables and mutable data structures; they often model our concepts from the physical world of containers fairly well, but it is also difficult to reason accurately about what state data is in at a given point in a program. One solution is to focus not on constructing a data collection but rather on describing “what” that data collection consists of. When one simply thinks, “Here’s some data, what do I need to do with it?” rather than the mechanism of constructing the data, more direct reasoning is often possible. The imperative flow control described in the last paragraph is much more about the “how” than the “what” and we can often shift the question. Encapsulation One obvious way of focusing more on “what” than “how” is simply to refactor code, and to put the data construction in a more isolated place—i.e., in a function or method. For example, consider an exist‐ ing snippet of imperative code that looks like this: 1
# configure the data to start with collection = get_initial_state() state_var = None for datum in data_set: if condition(state_var): state_var = calculate_from(datum) new = modify(datum, state_var) collection.add_to(new) else: new = modify_differently(datum) collection.add_to(new) # Now actually work with the data for thing in collection: process(thing) We might simply remove the “how” of the data construction from the current scope, and tuck it away in a function that we can think about in isolation (or not think about at all once it is sufficiently abstracted). For example: # tuck away construction of data def make_collection(data_set): collection = get_initial_state() state_var = None for datum in data_set: if condition(state_var): state_var = calculate_from(datum, state_var) new = modify(datum, state_var) collection.add_to(new) else: new = modify_differently(datum) collection.add_to(new) return collection # Now actually work with the data for thing in make_collection(data_set): process(thing) We haven’t changed the programming logic, nor even the lines of code, at all, but we have still shifted the focus from “How do we con‐ struct collection?” to “What does make_collection() create?” Comprehensions Using comprehensions is often a way both to make code more com‐ pact and to shift our focus from the “how” to the “what.” A compre‐ hension is an expression that uses the same keywords as loop and conditional blocks, but inverts their order to focus on the data 2 | (Avoiding) Flow Control
rather than on the procedure. Simply changing the form of expres‐ sion can often make a surprisingly large difference in how we reason about code and how easy it is to understand. The ternary operator also performs a similar restructuring of our focus, using the same keywords in a different order. For example, if our original code was: collection = list() for datum in data_set: if condition(datum): collection.append(datum) else: new = modify(datum) collection.append(new) Somewhat more compactly we could write this as: collection = [d if condition(d) else modify(d) for d in data_set] Far more important than simply saving a few characters and lines is the mental shift enacted by thinking of what collection is, and by avoiding needing to think about or debug “What is the state of col lection at this point in the loop?” List comprehensions have been in Python the longest, and are in some ways the simplest. We now also have generator comprehen‐ sions, set comprehensions, and dict comprehensions available in Python syntax. As a caveat though, while you can nest comprehen‐ sions to arbitrary depth, past a fairly simple level they tend to stop clarifying and start obscuring. For genuinely complex construction of a data collection, refactoring into functions remains more reada‐ ble. Generators Generator comprehensions have the same syntax as list comprehen‐ sions—other than that there are no square brackets around them (but parentheses are needed syntactically in some contexts, in place of brackets)—but they are also lazy. That is to say that they are merely a description of “how to get the data” that is not realized until one explicitly asks for it, either by calling .next() on the object, or by looping over it. This often saves memory for large sequences and defers computation until it is actually needed. For example: log_lines = (line for line in read_line(huge_log_file) if complex_condition(line)) Comprehensions | 3
For typical uses, the behavior is the same as if you had constructed a list, but runtime behavior is nicer. Obviously, this generator compre‐ hension also has imperative versions, for example: def get_log_lines(log_file): line = read_line(log_file) while True: try: if complex_condition(line): yield line line = read_line(log_file) except StopIteration: raise log_lines = get_log_lines(huge_log_file) Yes, the imperative version could be simplified too, but the version shown is meant to illustrate the behind-the-scenes “how” of a for loop over an iteratable—more details we also want to abstract from in our thinking. In fact, even using yield is somewhat of an abstrac‐ tion from the underlying “iterator protocol.” We could do this with a class that had .__next__() and .__iter__() methods. For example: class GetLogLines(object): def __init__(self, log_file): self.log_file = log_file self.line = None def __iter__(self): return self def __next__(self): if self.line is None: self.line = read_line(log_file) while not complex_condition(self.line): self.line = read_line(self.log_file) return self.line log_lines = GetLogLines(huge_log_file) Aside from the digression into the iterator protocol and laziness more generally, the reader should see that the comprehension focu‐ ses attention much better on the “what,” whereas the imperative ver‐ sion—although successful as refactorings perhaps—retains the focus on the “how.” Dicts and Sets In the same fashion that lists can be created in comprehensions rather than by creating an empty list, looping, and repeatedly call‐ 4 | (Avoiding) Flow Control
ing .append(), dictionaries and sets can be created “all at once” rather than by repeatedly calling .update() or .add() in a loop. For example: >>> {i:chr(65+i) for i in range(6)} {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F'} >>> {chr(65+i) for i in range(6)} {'A', 'B', 'C', 'D', 'E', 'F'} The imperative versions of these comprehensions would look very similar to the examples shown earlier for other built-in datatypes. Recursion Functional programmers often put weight in expressing flow con‐ trol through recursion rather than through loops. Done this way, we can avoid altering the state of any variables or data structures within an algorithm, and more importantly get more at the “what” than the “how” of a computation. However, in considering using recursive styles we should distinguish between the cases where recursion is just “iteration by another name” and those where a problem can readily be partitioned into smaller problems, each approached in a similar way. There are two reasons why we should make the distinction men‐ tioned. On the one hand, using recursion effectively as a way of marching through a sequence of elements is, while possible, really not “Pythonic.” It matches the style of other languages like Lisp, def‐ initely, but it often feels contrived in Python. On the other hand, Python is simply comparatively slow at recursion, and has a limited stack depth limit. Yes, you can change this with sys.setrecursion limit() to more than the default 1000; but if you find yourself doing so it is probably a mistake. Python lacks an internal feature called tail call elimination that makes deep recursion computation‐ ally efficient in some languages. Let us find a trivial example where recursion is really just a kind of iteration: def running_sum(numbers, start=0): if len(numbers) == 0: print() return total = numbers[0] + start print(total, end=" ") running_sum(numbers[1:], total) Recursion | 5
Random documents with unrelated content Scribd suggests to you:
Then she glanced at the date and the hour. It was the night that she had taken the train–the very moment, perhaps, that Jacob Mintges’ grinning face had looked through the curtains of her berth. Yes, the murderer had waited a long time, as the victim had tarried in the green-room. Eugenie sucked her full lips a moment, then looked hard at the picture and the whole article again. Then she turned to her mother and grandparents, who were seated about the stove. “Say, folks,” she said, coldly, “there’s the fine gent I went away with from Swinesfordstown. I got out in time, the very night he was murdered.” The mother and the old people half rose in their chairs to look at the wood cut. “How did you know he was playing you false?” said the old grandfather. “How did I know, gran’pap?” she replied. “Why, the night before, Jake Mintges came to me, and I knew something was due to go wrong, and home was the place for little me. You see I missed it all by a stone’s throw.” "You’re right, ‘Genie’," said the old mountaineer. “Mintges never comes to us unless he means business.”
XVIII The Turning of the Belt There are not many memories of Ole Bull in the vicinity of the ruins of his castle today. Fifteen years ago, before the timber was all gone, there were quite a few old people who were living in the Black Forest at the time of his colonization venture, who remembered him well, also a couple of his original colonists, Andriesen and Oleson, but these are no more. One has to go to Renovo or to Austin or Germania to find any reminiscences now, and those have suffered through passing from “hand to mouth” and are scattered and fragmentary. They used to say that the great violinist was, like his descendants, a believer in spiritualism, and on the first snowy night that he occupied his unfinished mansion, chancing to look out he saw what seemed to him a tall, white figure standing by the ramparts. Fearing that it was some skeld come to warn him of impending disaster to his beloved colony, he rushed out hatless, only to find that it was an old hemlock stab, snow encrusted. Disaster did come, but as far as local tradition goes Ole Bull had no warning of it. The hemlock stab which so disturbed him has been gone these many years, but a smaller one, when encased in snow, has frightened many a superstitious wayfarer along the Kettle Creek road, and gone on feeling that he had seen “the ghost of Ole Bull.” But unaccountable and worthy of investigation are the weird strains of music heard on wild, stormy nights, which seem to emanate from the castle. Belated hunters coming down the deep gorge of Ole Bull Run, back of the castle, or travelers along the main highway from Oleona to Cross Forks, have heard it and refused to be
convinced that there is not a musician hidden away somewhere among the crumbling ruins. The “oldest inhabitants,” sturdy race of trappers, who antedated Ole Bull’s colonists, declare that the ghostly musician was playing just the same in the great virtuoso’s time, and that it is the ghost of a French fifer, ambushed and killed by Indians when his battalion was marching along the “Boone Road” from Fort Le Boeuf to the memorable and ill-starred attack on Fort Augusta at Sunbury in 1757. At the mention of “Boone Road” another question is opened, as there is no historic record of such a military highway between Lake Erie and the West Branch of the Susquehanna River. The afore- mentioned very old people used to say that the road was still visible to them in certain places; that there could be no doubt of its existence and former utilization. Daniel Boone, if he be the pioneer of that name who first “blazed it out,” was a very young man during the “French and Indian War,” and his presence in that part of the country is a mooted question. Perhaps it was another “Boone,” and a Norseman, for many persons named “Bonde” or “Boon” were among the first Swedish settlers on the Lanape-Wihittuck, or Delaware River, unconsciously pioneering for their famous cousin-German, Ole Borneman Bull. In all events, the French fifer was shot and grievously wounded, and his comrades, in the rout which ensued, were forced to leave him behind. After refreshing himself at the cold spring, which nearly a century later Ole Bull named “Lyso”–the water of light–he crawled up on the hill, on which the castle was afterwards partly erected, to reconnoitre the country, but dropping from exhaustion and loss of blood, soon died. The wolves carried away his physical remains, but his spirit rested on the high knoll, to startle Ole Bull and many others, with the strains of his weird, unearthly music. It seems a pity that these old legends are passing with the lives of the aged people, but the coming of Ira Keeney, the grizzled Civil War veteran, as caretaker for the handsome Armstrong-Quigley hunting lodge, on the site of one of the former proposed fogderier Walhalla, has awakened anew the world of romance, of dashing exploits in the war under Sheridan and Rosecrans, of lumbering days, wolves,
panthers and wild pigeons, all of which memories the venerable soldier loves to recount. Yet can these be compared with the legend that Ole Bull, seeing a Bald Eagle rise from its nest on the top of a tall oak near the banks of Freeman’s Run, named the village he planned to locate there Odin, after the supreme deity of the Scandinavian mythology, who took the form of an eagle on one period of his development. His other settlements or herods he called Walhalla, Oleona and New Bergen. Planned at first by the French to be a purely military route for ingress to the West Branch country, but owing to the repulse at Fort Augusta, very infrequently traversed by them, if at all, it became principally an overland “short cut” for trappers, traders, travelers and settlers, all of whom knew its location well. Who could have laid out such an intricate road over high mountains and through deep valleys, unless a military force, is hard to imagine, even if for some strange reason it was never written into “history.” After the Revolutionary War there was naturally an unsettled state of affairs, and many farmers and adventurers turned their thought to the country west of the Allegheny Mountains and River, as the land of opportunity, consequently there was much desultory travel over the Boone Road. Unemployment prevailed everywhere, and hordes of penniless ex-soldiers, turned adrift by their victorious new nation, traveled backwards and forwards along all the known highways and trails, picking up a day’s work as best they could, their precarious mode of living giving them the name of “cider tramps.” A few more reckless and blood thirsty than their fellows, claimed that the country which they had freed owed them a living; if there was no work and no pensions, and they could not get it by hook they would take it by crook. In other words, certain ex-service men, became strong-arm men, road agents, or highwaymen, whichever name seems most suitable. The Boone Road, in a remote wilderness of gloomy, untrodden forests, made an ideal haunt for footpads, and when not robbing travelers, they took their toll from the wild game, elks, deer, bears, grouse and wild pigeons which infested the region. Law and order
had not penetrated into such forgotten and forbidding realms, and obscure victims could report outrages and protest to a deaf and dumb government. How long it was before these robbers were curbed is hard to say. One story which the backwoods people about Hamesley’s Fork used to tell dates back to five years after the close of the Revolution, about 1788. Jenkin Doane, possibly a member of the same family that produced the Doane outlaws in the Welsh Mountains, was one of the notorious characters along the Boone Road. Like others, he was an ex-soldier, a hero of Brandywine and Paoli, but his plight was worse, for just before peace was declared, when a premature rumor to that effect had reached his company, lying at Fort Washington, he had assaulted and beaten up an aristocratic and brutal officer who was the terror of the line. For this he had been sentenced to death, but later his sentence was commuted, and finally, because there were no satisfactory jails for military prisoners, he was quietly released, sans h. d. and the ability to make a livelihood. He finally became a wagoner and hired out with a party of emigrants going to Lake Erie, who traveled over the Boone Road. He saw them safely to their destination, but on his return journey tarried in the mountains, hunting and fishing, until his supplies were gone, when he turned “road agent.” He evidently had a low grade of morals at that time, for he robbed old as well as young, women as readily as men. He was fairly successful, considering the comparative lightness of travel and the poor class of victims financially. In an up-and-down country, where feed and shelter were scarce, he kept no horse, but traveled afoot. He had no opportunity to test his heels, as he never ran away, all his attacks being followed by speedy capitulation. If a trained force of bailiffs had been sent out to apprehend him, doubtless he could have been caught, as he had his favorite retreats, where he lingered, waiting for his prey. There were not many such places in the depths of the seemingly endless forests of giant and gloomy hemlocks and pines, places where the sun could shine and the air radiated dryness and warmth. One of his best-liked haunts was known as the Indian Garden,
situated in an open glade among the mountains which divide the country of Kettle Creek from that of Drury’s Run. “Art.” Vallon, one of the oldest hunters on Kettle Creek, who died recently, once described the spot as follows: “More than sixty years ago my father on a hunting trip showed me a clearing of perhaps half an acre, which he told me was called ‘The Indian Garden.’ I visited it many times afterwards on my trapping excursions. It impressed me as very unusual, being entirely free from undergrowth, except the furze grass one sees on poor, worked-out land. “It was a perfect square of about half an acre, and was surrounded by the deep, primeval forest. There was a fine spring not very far away.” It was there that Jenkin Doane and two other reckless characters who had served with Simon Girty and acted as his henchmen lolled for hours in the sun, waiting for victims. It was there that he usually maintained his “camp fire” and at night slept on the ground in a sleeping bag of buffalo hides. One night in the late winter, when there were still patches of snow on the ground, Doane dreamed very vividly of a girl whom he had never seen. He could hardly realize he had been dreaming when he awoke and sat up looking about him, to where his vision was cut off by the interminable “aisles of the forest.” He seemed to be married to her, at least they were together, and he had the pleasure of saving her life from drowning in a deep torrent where she had gone, probably to bathe. He had never seen a person of such unusual beauty. Her hair was dark and inclined to curl, complexion hectic, her eyes hazel, but the chief charm lay in the line of her nose and upper lip. The nose was slightly turned up at the end, adding, with the curve of her upper lip, a piquancy to an expression of exceptional loveliness. All the day he kept wishing that this charming young woman might materialize into his life; he could not bring himself to believe but that such a realistic vision must have a living counterpart. It was during the morning of the second day, when he had about given up hope, that he saw coming towards him, down a steep pitch
in the Boone Road–it is part of the Standard Oil Pipe Line now–a young woman on horseback, wearing a red velvet hat and a brown cloak. She was mounted on a flea-bitten white horse of uncertain age and gait. Close behind her rode two elderly Indians, also indifferently mounted, who seemed to be her bodyguard, and between them they were leading a heavily-laden pack-horse. He quickly turned his belt, an Indian signal of great antiquity, which indicated to his companions that they would make an attack. Just as the white horse touched fairly level ground he commenced to stumble and run sideways, having stepped on a rusty caltrop or “crow’s foot” which the outlaws had strewn across the trail at that point for that very purpose. Seeing the animal’s plight, the young equestrienne quickly stopped him and dismounted. She had been riding astride, and Doane noticed the brown woolen stockings which covered her shapely legs, her ankle-boots of good make, as she rolled off the horse’s back. As she stood before her quivering steed, patting his shoulder, Doane and his companions drew near, covering the three with their army muskets. It was then to his infinite surprise he noticed that the girl in brown, with the red hat, was the heroine of his dream, though in the vision she had been attired in black, but the gown was half off her shoulders and back when he drew her out of the water. It would have been hard to tell who was most surprised, Doane or the girl. Much as he admired her loveliness, there had been the turning of the belt, which meant there could be no change of purpose; his comrades were already eyeing the well-filled packsaddles. The frightened Indians had dismounted, being watched by one of the outlaws, while Doane politely yet firmly demanded the whereabouts of her money. Lifting her cloak and turning her belt, she disclosed two long deerskin pouches, heavy with gold. Unbuckling them, she handed them to Doane, while tears began to stream down her cheeks. “You may take it, sir,” she sobbed, "but you are ruining my chances in life. I am partly Indian, Brant’s daughter, grand-daughter of the old Brant, and my father had arranged a marriage for me with
a young officer whom I met during the war, and I love him dearly. Though I told him of my love, he would not marry me without a dowry of $3,000, and it took my father five long years to gather it together. I would not care if I did not love him so much. I was on my way to his home at the forks of Susquehanna, and now you have destroyed all my hopes." The brigand’s steely heart was for a moment touched. “Brant’s daughter,” he said, “you Indian people know the turning of the belt, which means that what is decided on at that moment must be carried out; before I saw who you were I resolved to rob you. It must be done, for I have two partners who will demand their shares.” "You said ‘before you knew who I was,’" broke in the girl, her tearful, piquant face filled with curiosity. “You never saw me before.” “Oh, yes, I did,” replied Doane, “in a dream a couple of nights ago.” “she said, as a final appeal. “I am afraid not,” he answered, as his comrade started to open one of the pouches. Then he paused, saying: “I will not take all. I’d not take anything from you except that I have these partners. I will retain half for them, and let you go on your way with the rest. Your good looks–for you are truly the prettiest thing I ever laid eyes on– will outweigh with your lover a paltry fifteen hundred dollars in gold.” “cried the girl weeping afresh. “He does not love me; he only wants the gold. I am the one that loves, and am lost and discarded without the dowry.” Meanwhile one of the outlaws had drawn the caltrop from the horse’s frog, and having smeared it with bear’s grease, the animal was walking about in a fairly comfortable manner.
AN ALLEGHENY EPISODE The girl stood looking at Doane. He was young, strong, and had a fairly decent face. How could he be so cruel? Then she looked at his partners, low-browed wretches, who were already muttering at the delay, and she realized there was no hope. Doane gave up his share, and tossed the other of the bags of gold to his “pals,” then ordered the girl and her escort to proceed. He said that he would accompany her to the river, to where the danger of meeting other highwaymen would be passed. The girl traveled on foot the entire distance, to ease her horse over the rough, uneven trail, walking side by side with the highwayman. They parted with civility, and on Doane’s side with deep regret, for the dream had inflamed his soul, and the reality was so startlingly lovely that he was deeply smitten. Before he had reached the river he wished that he had shot his grasping companions, rather than endanger this beautiful creature’s future happiness. “That was an unlucky turning of the belt,” he said to himself, as he retraced his steps towards the Indian Garden. Brant’s daughter rode with a heavy heart the balance of the journey, for she knew her lover’s nature. The Indian bodyguards
were equally downcast, for they had sworn to deliver her safe and sound at the forks of the Susquehanna. When she reached the handsome colonial gray stone house, on a headland overlooking the “meeting of the waters,” her lover, a handsome upstanding youth, with a sports suit made of his old officer’s buff uniform, and surrounded by a pack of his hunting dogs, came out to greet her. His manner was not very cordial. With penetrating eyes he saw that she was disturbed over something, so he quickly asked if she suffered from fatigue after the long overland journey. “No, Major,” she replied, “I am not at all tired in body, but I am in heart. I cannot postpone the evil moment. On the Boone Road we were stopped by three highwaymen, armed, who took from me half of my dowry.” The Major’s handsome countenance darkened. “Why did you not tell them you needed it to get married?” he blurted out angrily. “A pretty wench like you could have honey-foogled them to keep it.” “replied the girl, confidently, “and for that reason the chief of the band, a very pretty man, let me keep the one-half, but he had to retain the rest for his companions.” “ “I think I came off well,” she said, hanging her pretty head, her cheeks all crimson flush. She was sitting on the horse, her feet dangling out of the stirrups, her skirts turned up revealing those shapely legs, and he had not asked her to dismount. The Major drew nearer, with an angry gesture. “I have a mind to smack your face good and hard for your folly,” he stormed. “What do you think I have been waiting for, a paltry fifteen hundred dollars?” Brant’s daughter turned her belt and handed him the pouch of gold, which he threw down testily. It was quickly picked up by one of his German redemptioner servants, who carried it into the house. “Aren’t you going to ask me to come in?” pleaded the now humiliated love-sick girl. “You can slap me all you want. Punish me any way you will,” offering him her stiff riding crop, “only don’t cast me off.” “Come down if you wish; I don’t care,” he mumbled in reply. “I wouldn’t exert myself enough to whip you, but your hide ought to be
tanned for your stupidity.” Cut to the heart, yet still loving abjectly, she slid off the horse and meekly followed the imperious Major into the mansion. During the balance of the afternoon, and at supper, and until she begged to be allowed to retire, she was reviled and humbled in the presence of his redemptioners. He declared that no one man in a thousand, in his station of life, would consider marriage with a person of Indian blood; that it was worth twice three thousand dollars, the figure he had originally named. Nevertheless, he had carefully put the money bag in his strong box, even though saying nothing about setting a date for a marriage. She was shown into an unfinished room. There was no bed, only a few chairs, and two big walnut chests. Tearful and nervously unstrung, she took off her shoes and, wrapping herself in her cloak, lay down on the cold wooden floor. She could have called for blankets, and doubtless gotten them, but her pride had rebelled and she resolved to make the best of conditions. She could not sleep, and her mind was tortured with her love for the Major, anger at his ungrateful conduct, and an ever-recurring vision of the highwayman on the Boone Road. She heard the great Irish clock in the hall below strike every hour until one. Suddenly she got up, her face brightened with a new resolve. Tying her shoes together, she threw them them across her shoulder and tiptoed to the door, which she opened softly, and went downstairs. Her Indian bodyguards were sleeping on the stone floor in the vestibule, wrapped in their blankets. “Exundos,” she whispered in the ear of the oldest, “get me out of this; I am going to go away.” The trusty redskin, who always slept with one eye open, nudged his comrade, Firequill, and made their way to the door. It was locked and chained, and the key probably under the Major’s pillow. Exundos was determined to redeem his record. He rushed upstairs to where a portly German was sleeping in the officer’s antechamber. He knocked the valet senseless with the butt of his horse pistol. Then he sprang like a panther over the prostrate body into the
Major’s apartment. In a moment he had gagged him with the caltrop extracted from the horse’s foot, then bound him hand and foot. The key was under the pillow. In five minutes the fugitives were on the front lawn, surrounded by the Major’s pack of yelping, snarling hounds. Getting by them as best they could, the trio made for the bluffs, found a dugout in which they crossed the river, and were soon in the shelter of the friendly mountains. In the morning the Major’s other servants who slept in quarters near the stables, found the half-dazed bodyguard with a bloody head, and their gagged and helpless master. Once released, the Major decided not to send a posse after the runaways; he was heavily in debt, and needed that pouch of fifteen hundred dollars in gold. Brant’s daughter, after her fortuitous escape, was not completely happy. She had longed for the Major for five years, and had almost gotten him as the result of severe privations. It was pretty hard to lose him now. She was going home defeated, to die unwed. Her feelings became desperate when she reached the Boone Road, with all its haunting memories. As she clambered up the steep grades, and the Indian Garden came into view, she reached down and turned her belt, the symbol of resolution. No one was about as she passed the garden, which made her heart sink with loneliness for some strong man’s love. When Kettle Creek was reached and crossed near the Cold Spring, she decided to rest awhile. After a meal, which she barely tasted, she told the Indians that she was going for a little walk in the woods. “I am safe now,” she said, bitterly; “I have no gold.” Past the Cold Spring she went, on and on up the wild, narrow gorge of what is now called Ole Bull Run, where a dark and dismal hemlock forest of colossal proportions bent over the torrent, keeping out the light of day. While she was absent, who should appear at the Cold Spring but Doane, with his colleagues in crime. “So he took her after all, with only half the money,” he said, almost regretfully, to the Indians.
“I don’t know,” replied one of the bodyguard. “He was very ugly when he heard it, wanted to slap her, and she ran away in the night, leaving horses, saddle-bags and gold. Oh, she felt terribly, for she truly loved the monster.” “said Doane, in surprised tones. The Indian pointed up the dark gorge of the run. That moment the outlaw thought of his dream, of his rescuing her from an angry torrent. Motioning to her guards to follow, he made haste along the edges of the stream, slipping often on the moss-grown rocks. Half way to the top of the gigantic mountain, he heard the roar of a cascade. There was a great, dark, seething pool beneath. Just as Doane came in sight of this he beheld, to his horror, Brant’s daughter, hatless and cloakless, plunging in. It was like a Dryad’s immolation! With superhuman effort he reached the brink and sprang after her. He caught her, as she rose the first time, by her profuse brown hair, but as he lifted her ashore a snag or branch tore her shirtwaist, so that her shoulder and back were almost completely bare, just as in the dream. Aided by the faithful Indians, he laid her tenderly among the moss and ferns, and poured some rum from a buffalo horn flask down her throat. She revived and opened her pretty hazel eyes quizzically. “Am I at the Indian Garden?” she said. “You are with the one who turned his belt there,” answered Doane; “only this time I don’t want anything for my comrades. I only want you for myself.” “said Brant’s daughter, having now fully recovered the power of speech. “When I came back to the Garden and you were not there, I turned my belt.” “said Doane, “for that last resolve has brought us together. I should have known from the beginning my destiny was revealed in that dream.” “said the girl. “Of course I will, anywhere with you, and never follow the road again, or anything not strictly honorable. Wrongdoing, I see now, is caused by the preponderance of the events of life going against us. Where things come our way, and there is joy, one can never aspire to ill. Wrong is the continued disappointment. I could never molest a soul after I saw you, and have lived by hunting ever since. I made
my partners return the purse of gold; it shall go to your father to buy a farm.” Brant’s daughter now motioned to him that she felt like sitting up, and he propped her back against an old cork pine, kissing her pretty plump cheeks and shoulders many times as he did so. “And that scoundrel would have smacked you,” he thought, boiling inwardly. Then taking her cold hands in his, he said: “Out of evil comes good. I do not regret this one robbery, for if I had not taken that gold for my comrades, some one would have robbed me of you!”
XIX Riding His Pony When Rev. James Martin visited the celebrated Penn’s Cave, in the Spring of 1795, it was related that he found a small group of Indians encamped there. That evening, around the campfire, one of the redskins related a legend of one of the curiosities of the watery cave, the flambuoyant “Indian Riding Pony” mural-piece which decorates one of the walls. Spirited as a Remington, it bursts upon the view, creates a lasting impression, then vanishes as the power skiff, the “Nita-nee,” draws nearer. According to the old Indians, there lived not far from where the Karoondinha emerges from the cavern a body of aborigines of the Susquehannock tribe who made this delightful lowland their permanent abode. While most of their cabins were huddled near together on the upper reaches of the stream, there were straggling huts clear to the Beaver Dams. The finding of arrow points, beads and pottery along the creek amply attests to this. Among the clan was a maiden named Quetajaku, not good to look upon, but in no way ugly or deformed. In her youth she was light- hearted and sociable, with a gentle disposition. Yet for some reason she was not favored by the young bucks. All her contemporaries found lovers and husbands, but poor Quetajaku was left severely alone. She knew that she was not beautiful, though she was of good size; she was equally certain that she was not a physical monster. She could not understand why she could find no lover, why she was singled out to be a “chauchschisis,” or old maid. It hurt her pride as a young girl, it broke her heart completely when she was older.
Gradually she withdrew from the society of her tribal friends, building herself a lodge-house on the hill, in what is now the cave orchard. There she led a very introspective life, grieving over the love that might have been. To console herself she imagined that some day a handsome warrior would appear, seek her out, load her with gifts, overwhelm her with love and carry her away to some distant region in triumph. He would be handsomer and braver than any youth in the whole country of the Karoondinha. She would be the most envied of women when he came. This poor little fancy saved her from going stark mad; it remedied the horror of her lonely lot. Every time the night wind stirred the rude hempen curtain which hung before the door of her cabin, she would picture it was the chivalrous stranger knight come to claim her. When it was cold she drew the folds of her buffalo robe tighter about her as if it was his arms. As time went on she grew happy in her secret lover, whom no other woman’s flame could equal, whom no one could steal away. She was ever imagining him saying to her that her looks exactly suited him, that she was his ideal. But like the seeker after Eldorado, years passed, and Quetajaku did not come nearer to her spirit lover. But her soul kept up the conceit; every night when she curled herself up to sleep he was the vastness of the night. On one occasion an Indian artist named Naganit, an undersized old wanderer appeared at the lonely woman’s home. For a living he decorated pottery, shells and bones, sometimes even painted war pictures on rocks. Quetajaku was so kind to him that he built himself a lean-to on the slope of the hill, intending to spend the winter. On the long winter evenings the old woman confided to the wanderer the story of her unhappy life, of her inward consolation. She said that she had longed to meet an artist who could carry out a certain part of her dream which had a right to come true. When she died she had arranged to be buried in a fissure of rocks which ran horizontally into one of the walls of the “watery” cave. On the opposite wall she would like painted in the most brilliant colors a
portrait of a handsome young warrior, with arms outstretched, coming towards her. Naganit said that he understood what she meant exactly, but suggested that the youth be mounted on a pony, a beast which was coming into use as a mount for warriors, of which he had lately seen a number in his travels on the Virginia coast, near Chincoteague. This idea was pleasing to Quetajaku, who authorized the stranger to begin work at once. She had saved up a little property of various kinds; she promised to bestow all of this on Naganit, except what would be necessary to bury her, if the picture proved satisfactory. The artist rigged up a dog-raft with a scaffold on it, and this he poled into the place where the fissure was located, the woman accompanying him the first time, so there would be no mistake. All winter long by torchlight, he labored away. He used only one color, an intensive brick-red made from mixing sumac berries, the pollen of the Turk’s Cap Lily, a small root and the bark of a tree, as being more permanent than that made from ochers and other ores of stained earth. Marvelous and vital was the result of this early impressionist; the painting had all the action of life. The superb youth in war dress, with arms outstretched, on the agile war pony, rushing towards the foreground, almost in the act of leaping from the rocky panel into life, across the waters of the cave to the arms of his beloved. It would make old Quetajaku happy to see it, she who had never known love or beauty. The youth in the mural typified what Naganit would have been himself were he the chosen, and what the “bachelor maid” would have possessed had nature favored her. It was the ideal for two disappointed souls. Breathlessly the old artist ferried Quetajaku to the scene of his endeavors. When they reached the proper spot he held aloft his quavering torch. Quetajaku, in order to see more clearly, held her two hands above her eyes. She gave a little cry of exclamation, then turned and looked at Naganit intently. Then she dropped her eyes, beginning to cry to herself, a rare thing for an Indian to do! The artist looked at her fine face, down which the tears were streaming, and asked her the cause of her grief–was the picture
such a terrible disappointment? The woman drew herself together, replying that it was grander than she had anticipated, but the face of Naganit’s, and, strangely enough, the face she had dreamed of all her life. “But I am not the heroic youth you pictured”, said the artist, sadly. “I am sixty years old, stoop-shouldered, and one leg is shorter than the other.” “ Naganit looked at the Indian woman. She was not hideous; there was even a dignity to her large, plain features, her great, gaunt form. “I have never received such praise as yours. I always vowed I would love the woman who really understood me and my art. I am yours. Let us think no more of funeral decorations, but go to the east, to the land of war ponies, and ride to endless joy together.” Quetajaku, overcome by the majesty of his words, leaned against his massive shoulder. In that way he poled his dog-raft against the current to the entrance of the cave. There was a glory in the reflection from the setting sun over against the east; night would not close in for an hour or two. And towards the darkening east that night two happy travelers could be seen wending their way.
XX The Little Postmistress It was long past dark when Mifflin Sargeant, of the Snow Shoe Land Company, came within sight of the welcoming lights of Stover’s. For fourteen miles, through the foothills on the Narrows, he had not seen a sign of human habitation, except one deserted hunter’s cabin at Yankee Gap. There was an air of cheerfulness and life about the building he had arrived at. Several doors opened simultaneously at the signal of his approach, given by a faithful watchdog, throwing the rich glow of the fat-lamps and tallow candles across the road. The structure, which was very long and two stories high, housed under its accommodating roofs a tavern, a boarding house, a farmstead, a lumber camp, a general store, and a post office. It was the last outpost of civilization in the east end of Brush Valley; beyond were mountains and wilderness almost to Youngmanstown. Tom Tunis had not yet erected the substantial structure on the verge of the forest later known as “The Forest House.” A dark-complexioned lad, who later proved to be Reuben Stover, the son of the landlord, took the horse by the bridle, assisting the young stranger to dismount. He also helped him to unstrap his saddle-bags, carrying them into the house. Sargeant noticed, as he passed across the porch, that the walls were closely hung with stags’ horns, which showed the prevalence of these noble animals in the neighborhood. Old Daddy and Mammy Stover, who ran the quaint caravansery, quickly made the visitor feel at home. It was after the regular
supper-time, but a fresh repast of bear’s meat and corn bread was cheerfully prepared in the huge stone chimney. The young man explained to his hosts that he had ridden that day from New Berlin; he had come from Philadelphia to Harrisburg by train, to Liverpool by packet boat, at which last named place his horse had been sent on to meet him. He added that he was on his way into the Alleghenies, where he had recently purchased an interest in the Snow Shoe development. After supper he strolled along the porch to the far end, to the post office, thinking he would send a letter home. A mail had been brought in from Rebersburg during the afternoon, consequently the post office, and not the tavern stand, was the attraction of the crowd this night. The narrow room was poorly lighted by fat-lamps, which cast great, fitful shadows, making grotesques out of the oddly-costumed, bearded wolf hunters present, who were the principal inhabitants of the surrounding ridges. A few women, hooded and shawled, were noticeable in the throng. In a far corner, leaning against the water bench, was young Reuben, the hostler, tuning up his wheezy fiddle. As many persons as possible hung over the rude counter, across which the mail was being delivered, and where many letters were written in reply. Above this counter were suspended three fat-lamps, attached to grooved poles, which, by cleverly-devised pulleys, could be lifted to any height desired.
SETH NELSON, JR., AFTER A GOOD DAY’S SPORT The young Philadelphian edged his way through the good- humored concourse to ask permission to use the ink; he had brought his favorite quill pen and the paper with him. This brought him face to face, across the counter, with the postmistress. He had not been able to see her before, as her trim little figure had been wholly obscured by the ponderous forms that lined the counter. Instantly he was charmed by her appearance–it was unusual–by her look of neatness and alertness. Their eyes met–it was almost with a smile of mutual recognition. When he asked her if he could borrow the ink, which was kept in a large earthen pot of famous
Sugar Valley make, she smiled on him again, and he absorbed the charm of her personality anew. Though she was below the middle height, her figure was so lithe and erect that it fully compensated for the lack of inches. She wore a blue homespun dress, with a neat checked apron over it, the material for which constituted a luxury, and must have come all the way from Youngmanstown or Sunbury. Her profuse masses of soft, wavy, light brown hair, on which the hanging lamps above brought out a glint of gold, was worn low on her head. Her deepset eyes were a transparent blue, her features well developed, and when she turned her face in profile, the high arch of the nose showed at once mental stability and energy. Her complexion was pink and white. There seemed to be always that kindly smile playing about the eyes and lips. When she pushed the heavy inkwell towards him he noticed that her hands were very white, the fingers tapering; they were the hands of innate refinement. Almost imperceptibly the young man found himself in conversation with the little postmistress. Doubtless she was interested to meet an attractive stranger, one from such a distant city as Philadelphia. While they talked, the letter was gradually written, sealed, weighed and paid for–it was before the days of postage stamps, and the postmistress politely waited on her customers. He had told her his name–Mifflin Sargeant–and she had given him hers–Caroline Hager–and that she was eighteen years of age. He had told her about his prospective trip into the wilds of Centre County, of the fierce beasts which he had heard still abounded there. The girl informed him that he would not have to go farther west to meet wild animals; that wolf hides by the dozen were brought to Stover’s each winter, where they were traded in; that old Stover, a justice of the peace, attested to the bounty warrants–in fact, the wolves howled from the hill across the road on cold nights when the dogs were particularly restless. Her father was a wolf hunter, and would never allow her to go home alone; consequently, when he could not accompany her she remained over night in the dwelling which housed the post office.
Panthers, too, were occasionally met with in the locality–in the original surveys this region was referred to as “Catland”–also huge red bears and the somewhat smaller black ones. If he was going West, she continued in her pretty way, he must not fail to visit the great limestone cave near where the Brush Mountains ended. She had a sister married and living not far from it, from whom she had heard wonderful tales, though she had never been there herself. It was a cave so vast it had not as yet been fully explored; one could travel for miles in it in a boat; the Karoondinha, or John Penn’s Creek, had its source in it; Indians had formerly lived in the dry parts, and wild beasts. Then she lowered her voice to say that it was now haunted by the Indians’ spirits. And so they talked until a very late hour, the crowd in the post office melting away, until Jared Hager, the girl’s father, in his wolfskin coat, appeared to escort her home, to the cabin beyond the waterfall near the trail to Dolly Hope’s Valley. She was to have a holiday until the next afternoon. The wolf hunter was a courageous-looking man, much darker than his daughter, with a heavy black beard and bushy eyebrows; in fact, she was the only brown-haired, blue-eyed one in the entire family connection. He spoke pleasantly with the young stranger, and then they all said good night. “Don’t forget to visit the great cavern,” Caroline called to the youth. “I surely will,” he answered, “and stop here on my way east to tell you all about it.” “That’s good; we want to see you again,” said the girl, as she disappeared into the gloomy shadows which the shaggy white pines cast across the road. Young Stover was playing “Green Grows the Rushes” on his fiddle in the tap-room, and Sargeant sat there listening to him, dreaming and musing all the while, his consciousness singularly alert, until the closing hour came. That night, in the old stained four-poster, in his tiny, cold room, he slept not at all. “Yet he feared to dream.” Though his thoughts carried him all over the world, the little postmistress was uppermost
in every fancy. Among the other things, he wished that he had asked her to ride with him to the cave. They could have visited the subterranean marvels together. He got out of bed and managed to light the fat lamp. By its sputtering gleams he wrote her a letter, which came to an abrupt end as the small supply of ink which he carried with him was exhausted. But as he repented of the intense sentences penned to a person who knew him so slightly, he arose again before morning and tore it to bits. There was a white frost on the buildings and ground when he came downstairs. The autumn air was cold, the atmosphere was a hazy, melancholy gray. There seemed to be a cessation of all the living forces of nature, as if waiting for the summons of winter. From the chimney of the old inn came purple smoke, charged with the pungent odor of burning pine wood. With a strange sadness he saddled his horse and resumed his ride towards the west. He thought constantly of Caroline–so much so that after he had traveled ten miles he wanted to turn back; he felt miserable without her. If only she were riding beside him, the two bound for Penn’s Valley Cave, he could be supremely happy. Without her, he did not care to visit the cavern, or anything else; so at Jacobsburg he crossed the Nittany Mountains, leaving the southerly valleys behind. He rode up Nittany Valley to Bellefonte, where he met the agent of the Snow Shoe Company. With this gentleman he visited the vast tract being opened up to lumbering, mining and colonization. But his thoughts were elsewhere; they were across the mountains with the little postmistress of Stover’s. Satisfied that his investment would prove remunerative, he left the development company’s cozy lodge-house, and, with a heart growing lighter with each mile, started for the east. It was wonderful how differently–how vastly more beautiful the country seemed on this return journey. He fully appreciated the wistful loveliness of the fast-fading autumn foliage, the crispness of the air, the beauty of each stray tuft of asters, the last survivors of the wild flowers along the trail. The world was full of joy, everything was in harmony.
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

Functional programming in Python 1st Edition David Mertz

  • 1.
    Functional programming inPython 1st Edition David Mertz download https://ebookultra.com/download/functional-programming-in- python-1st-edition-david-mertz/ Explore and download more ebooks or textbooks at ebookultra.com
  • 2.
    Here are somerecommended products for you. Click the link to download, or explore more at ebookultra.com Text processing in Python 2. print Edition Mertz https://ebookultra.com/download/text-processing-in-python-2-print- edition-mertz/ Functional Programming in C First Edition Ivan Cukic https://ebookultra.com/download/functional-programming-in-c-first- edition-ivan-cukic/ Maya Programming with Python Cookbook 1st Edition Herbez https://ebookultra.com/download/maya-programming-with-python- cookbook-1st-edition-herbez/ Parallel Programming with Python First Edition Jan Palach https://ebookultra.com/download/parallel-programming-with-python- first-edition-jan-palach/
  • 3.
    Real World FunctionalProgramming 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/ Principles of Soft Computing Using Python Programming 1st Edition Gypsy Nandi https://ebookultra.com/download/principles-of-soft-computing-using- python-programming-1st-edition-gypsy-nandi/ Python Cookbook 3rd Edition David Beazley https://ebookultra.com/download/python-cookbook-3rd-edition-david- beazley/ Introduction to Computing and Programming in Python a Multimedia Approach Mark J. Guzdial https://ebookultra.com/download/introduction-to-computing-and- programming-in-python-a-multimedia-approach-mark-j-guzdial/ Elements of Programming Interviews in Python 1st Edition Adnan Aziz & Amit Prakash & Tsung-Hsien Lee https://ebookultra.com/download/elements-of-programming-interviews-in- python-1st-edition-adnan-aziz-amit-prakash-tsung-hsien-lee/
  • 5.
    Functional programming inPython 1st Edition David Mertz Digital Instant Download Author(s): David Mertz ISBN(s): 9781491928561, 1491928565 Edition: 1 File Details: PDF, 1.56 MB Year: 2015 Language: english
  • 6.
  • 7.
    Additional Resources 4 Easy Waysto Learn More and Stay Current Programming Newsletter Get programming ­related news and content delivered weekly to your inbox. oreilly.com/programming/newsletter Free Webcast Series Learn about popular programming topics from experts live, online. webcasts.oreilly.com O’Reilly Radar Read more insight and analysis about emerging technologies. radar.oreilly.com Conferences Immerse yourself in learning at an upcoming O’Reilly conference. conferences.oreilly.com ©2015 O’Reilly Media, Inc. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. #15305
  • 8.
  • 9.
    978-1-491-92856-1 [LSI] Functional Programming inPython by David Mertz Copyright © 2015 O’Reilly Media, Inc. All rights reserved. Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). See: http://creativecommons.org/licenses/by-sa/4.0/ Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com. Editor: Meghan Blanchette Production Editor: Shiny Kalapurakkel Proofreader: Charles Roumeliotis Interior Designer: David Futato Cover Designer: Karen Montgomery May 2015: First Edition Revision History for the First Edition 2015-05-27: First Release The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Functional Pro‐ gramming in Python, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limi‐ tation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsi‐ bility to ensure that your use thereof complies with such licenses and/or rights.
  • 10.
    Table of Contents Preface.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v (Avoiding) Flow Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Encapsulation 1 Comprehensions 2 Recursion 5 Eliminating Loops 7 Callables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Named Functions and Lambdas 12 Closures and Callable Instances 13 Methods of Classes 15 Multiple Dispatch 19 Lazy Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 The Iterator Protocol 27 Module: itertools 29 Higher-Order Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Utility Higher-Order Functions 35 The operator Module 36 The functools Module 36 Decorators 37 iii
  • 12.
    Preface What Is FunctionalProgramming? We’d better start with the hardest question: “What is functional pro‐ gramming (FP), anyway?” One answer would be to say that functional programming is what you do when you program in languages like Lisp, Scheme, Clojure, Scala, Haskell, ML, OCAML, Erlang, or a few others. That is a safe answer, but not one that clarifies very much. Unfortunately, it is hard to get a consistent opinion on just what functional program‐ ming is, even from functional programmers themselves. A story about elephants and blind men seems apropos here. It is also safe to contrast functional programming with “imperative programming” (what you do in languages like C, Pascal, C++, Java, Perl, Awk, TCL, and most others, at least for the most part). Functional program‐ ming is also not object-oriented programming (OOP), although some languages are both. And it is not Logic Programming (e.g., Prolog), but again some languages are multiparadigm. Personally, I would roughly characterize functional programming as having at least several of the following characteristics. Languages that get called functional make these things easy, and make other things either hard or impossible: • Functions are first class (objects). That is, everything you can do with “data” can be done with functions themselves (such as passing a function to another function). • Recursion is used as a primary control structure. In some lan‐ guages, no other “loop” construct exists. v
  • 13.
    • There isa focus on list processing (for example, it is the source of the name Lisp). Lists are often used with recursion on sublists as a substitute for loops. • “Pure” functional languages eschew side effects. This excludes the almost ubiquitous pattern in imperative languages of assign‐ ing first one, then another value to the same variable to track the program state. • Functional programming either discourages or outright disal‐ lows statements, and instead works with the evaluation of expressions (in other words, functions plus arguments). In the pure case, one program is one expression (plus supporting defi‐ nitions). • Functional programming worries about what is to be computed rather than how it is to be computed. • Much functional programming utilizes “higher order” functions (in other words, functions that operate on functions that oper‐ ate on functions). Advocates of functional programming argue that all these character‐ istics make for more rapidly developed, shorter, and less bug-prone code. Moreover, high theorists of computer science, logic, and math find it a lot easier to prove formal properties of functional languages and programs than of imperative languages and programs. One cru‐ cial concept in functional programming is that of a “pure function”—one that always returns the same result given the same arguments—which is more closely akin to the meaning of “function” in mathematics than that in imperative programming. Python is most definitely not a “pure functional programming lan‐ guage”; side effects are widespread in most Python programs. That is, variables are frequently rebound, mutable data collections often change contents, and I/O is freely interleaved with computation. It is also not even a “functional programming language” more generally. However, Python is a multiparadigm language that makes functional programming easy to do when desired, and easy to mix with other programming styles. Beyond the Standard Library While they will not be discussed withing the limited space of this report, a large number of useful third-party Python libraries for vi | Preface
  • 14.
    functional programming areavailable. The one exception here is that I will discuss Matthew Rocklin’s multipledispatch as the best current implementation of the concept it implements. Most third-party libraries around functional programming are col‐ lections of higher-order functions, and sometimes enhancements to the tools for working lazily with iterators contained in itertools. Some notable examples include the following, but this list should not be taken as exhaustive: • pyrsistent contains a number of immutable collections. All methods on a data structure that would normally mutate it instead return a new copy of the structure containing the requested updates. The original structure is left untouched. • toolz provides a set of utility functions for iterators, functions, and dictionaries. These functions interoperate well and form the building blocks of common data analytic operations. They extend the standard libraries itertools and functools and borrow heavily from the standard libraries of contemporary functional languages. • hypothesis is a library for creating unit tests for finding edge cases in your code you wouldn’t have thought to look for. It works by generating random data matching your specification and checking that your guarantee still holds in that case. This is often called property-based testing, and was popularized by the Haskell library QuickCheck. • more_itertools tries to collect useful compositions of iterators that neither itertools nor the recipes included in its docs address. These compositions are deceptively tricky to get right and this well-crafted library helps users avoid pitfalls of rolling them themselves. Resources There are a large number of other papers, articles, and books written about functional programming, in Python and otherwise. The Python standard documentation itself contains an excellent intro‐ duction called “Functional Programming HOWTO,” by Andrew Kuchling, that discusses some of the motivation for functional pro‐ gramming styles, as well as particular capabilities in Python. Preface | vii
  • 15.
    Mentioned in Kuchling’sintroduction are several very old public domain articles this author wrote in the 2000s, on which portions of this report are based. These include: • The first chapter of my book Text Processing in Python, which discusses functional programming for text processing, in the section titled “Utilizing Higher-Order Functions in Text Pro‐ cessing.” I also wrote several articles, mentioned by Kuchling, for IBM’s devel‐ operWorks site that discussed using functional programming in an early version of Python 2.x: • Charming Python: Functional programming in Python, Part 1: Making more out of your favorite scripting language • Charming Python: Functional programming in Python, Part 2: Wading into functional programming? • Charming Python: Functional programming in Python, Part 3: Currying and other higher-order functions Not mentioned by Kuchling, and also for an older version of Python, I discussed multiple dispatch in another article for the same column. The implementation I created there has no advantages over the more recent multipledispatch library, but it provides a longer conceptual explanation than this report can: • Charming Python: Multiple dispatch: Generalizing polymor‐ phism with multimethods A Stylistic Note As in most programming texts, a fixed font will be used both for inline and block samples of code, including simple command or function names. Within code blocks, a notional segment of pseudo- code is indicated with a word surrounded by angle brackets (i.e., not valid Python), such as <code-block>. In other cases, syntactically valid but undefined functions are used with descriptive names, such as get_the_data(). viii | Preface
  • 16.
    (Avoiding) Flow Control Intypical imperative Python programs—including those that make use of classes and methods to hold their imperative code—a block of code generally consists of some outside loops (for or while), assign‐ ment of state variables within those loops, modification of data structures like dicts, lists, and sets (or various other structures, either from the standard library or from third-party packages), and some branch statements (if/elif/else or try/except/finally). All of this is both natural and seems at first easy to reason about. The problems often arise, however, precisely with those side effects that come with state variables and mutable data structures; they often model our concepts from the physical world of containers fairly well, but it is also difficult to reason accurately about what state data is in at a given point in a program. One solution is to focus not on constructing a data collection but rather on describing “what” that data collection consists of. When one simply thinks, “Here’s some data, what do I need to do with it?” rather than the mechanism of constructing the data, more direct reasoning is often possible. The imperative flow control described in the last paragraph is much more about the “how” than the “what” and we can often shift the question. Encapsulation One obvious way of focusing more on “what” than “how” is simply to refactor code, and to put the data construction in a more isolated place—i.e., in a function or method. For example, consider an exist‐ ing snippet of imperative code that looks like this: 1
  • 17.
    # configure thedata to start with collection = get_initial_state() state_var = None for datum in data_set: if condition(state_var): state_var = calculate_from(datum) new = modify(datum, state_var) collection.add_to(new) else: new = modify_differently(datum) collection.add_to(new) # Now actually work with the data for thing in collection: process(thing) We might simply remove the “how” of the data construction from the current scope, and tuck it away in a function that we can think about in isolation (or not think about at all once it is sufficiently abstracted). For example: # tuck away construction of data def make_collection(data_set): collection = get_initial_state() state_var = None for datum in data_set: if condition(state_var): state_var = calculate_from(datum, state_var) new = modify(datum, state_var) collection.add_to(new) else: new = modify_differently(datum) collection.add_to(new) return collection # Now actually work with the data for thing in make_collection(data_set): process(thing) We haven’t changed the programming logic, nor even the lines of code, at all, but we have still shifted the focus from “How do we con‐ struct collection?” to “What does make_collection() create?” Comprehensions Using comprehensions is often a way both to make code more com‐ pact and to shift our focus from the “how” to the “what.” A compre‐ hension is an expression that uses the same keywords as loop and conditional blocks, but inverts their order to focus on the data 2 | (Avoiding) Flow Control
  • 18.
    rather than onthe procedure. Simply changing the form of expres‐ sion can often make a surprisingly large difference in how we reason about code and how easy it is to understand. The ternary operator also performs a similar restructuring of our focus, using the same keywords in a different order. For example, if our original code was: collection = list() for datum in data_set: if condition(datum): collection.append(datum) else: new = modify(datum) collection.append(new) Somewhat more compactly we could write this as: collection = [d if condition(d) else modify(d) for d in data_set] Far more important than simply saving a few characters and lines is the mental shift enacted by thinking of what collection is, and by avoiding needing to think about or debug “What is the state of col lection at this point in the loop?” List comprehensions have been in Python the longest, and are in some ways the simplest. We now also have generator comprehen‐ sions, set comprehensions, and dict comprehensions available in Python syntax. As a caveat though, while you can nest comprehen‐ sions to arbitrary depth, past a fairly simple level they tend to stop clarifying and start obscuring. For genuinely complex construction of a data collection, refactoring into functions remains more reada‐ ble. Generators Generator comprehensions have the same syntax as list comprehen‐ sions—other than that there are no square brackets around them (but parentheses are needed syntactically in some contexts, in place of brackets)—but they are also lazy. That is to say that they are merely a description of “how to get the data” that is not realized until one explicitly asks for it, either by calling .next() on the object, or by looping over it. This often saves memory for large sequences and defers computation until it is actually needed. For example: log_lines = (line for line in read_line(huge_log_file) if complex_condition(line)) Comprehensions | 3
  • 19.
    For typical uses,the behavior is the same as if you had constructed a list, but runtime behavior is nicer. Obviously, this generator compre‐ hension also has imperative versions, for example: def get_log_lines(log_file): line = read_line(log_file) while True: try: if complex_condition(line): yield line line = read_line(log_file) except StopIteration: raise log_lines = get_log_lines(huge_log_file) Yes, the imperative version could be simplified too, but the version shown is meant to illustrate the behind-the-scenes “how” of a for loop over an iteratable—more details we also want to abstract from in our thinking. In fact, even using yield is somewhat of an abstrac‐ tion from the underlying “iterator protocol.” We could do this with a class that had .__next__() and .__iter__() methods. For example: class GetLogLines(object): def __init__(self, log_file): self.log_file = log_file self.line = None def __iter__(self): return self def __next__(self): if self.line is None: self.line = read_line(log_file) while not complex_condition(self.line): self.line = read_line(self.log_file) return self.line log_lines = GetLogLines(huge_log_file) Aside from the digression into the iterator protocol and laziness more generally, the reader should see that the comprehension focu‐ ses attention much better on the “what,” whereas the imperative ver‐ sion—although successful as refactorings perhaps—retains the focus on the “how.” Dicts and Sets In the same fashion that lists can be created in comprehensions rather than by creating an empty list, looping, and repeatedly call‐ 4 | (Avoiding) Flow Control
  • 20.
    ing .append(), dictionariesand sets can be created “all at once” rather than by repeatedly calling .update() or .add() in a loop. For example: >>> {i:chr(65+i) for i in range(6)} {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F'} >>> {chr(65+i) for i in range(6)} {'A', 'B', 'C', 'D', 'E', 'F'} The imperative versions of these comprehensions would look very similar to the examples shown earlier for other built-in datatypes. Recursion Functional programmers often put weight in expressing flow con‐ trol through recursion rather than through loops. Done this way, we can avoid altering the state of any variables or data structures within an algorithm, and more importantly get more at the “what” than the “how” of a computation. However, in considering using recursive styles we should distinguish between the cases where recursion is just “iteration by another name” and those where a problem can readily be partitioned into smaller problems, each approached in a similar way. There are two reasons why we should make the distinction men‐ tioned. On the one hand, using recursion effectively as a way of marching through a sequence of elements is, while possible, really not “Pythonic.” It matches the style of other languages like Lisp, def‐ initely, but it often feels contrived in Python. On the other hand, Python is simply comparatively slow at recursion, and has a limited stack depth limit. Yes, you can change this with sys.setrecursion limit() to more than the default 1000; but if you find yourself doing so it is probably a mistake. Python lacks an internal feature called tail call elimination that makes deep recursion computation‐ ally efficient in some languages. Let us find a trivial example where recursion is really just a kind of iteration: def running_sum(numbers, start=0): if len(numbers) == 0: print() return total = numbers[0] + start print(total, end=" ") running_sum(numbers[1:], total) Recursion | 5
  • 21.
    Random documents withunrelated content Scribd suggests to you:
  • 22.
    Then she glancedat the date and the hour. It was the night that she had taken the train–the very moment, perhaps, that Jacob Mintges’ grinning face had looked through the curtains of her berth. Yes, the murderer had waited a long time, as the victim had tarried in the green-room. Eugenie sucked her full lips a moment, then looked hard at the picture and the whole article again. Then she turned to her mother and grandparents, who were seated about the stove. “Say, folks,” she said, coldly, “there’s the fine gent I went away with from Swinesfordstown. I got out in time, the very night he was murdered.” The mother and the old people half rose in their chairs to look at the wood cut. “How did you know he was playing you false?” said the old grandfather. “How did I know, gran’pap?” she replied. “Why, the night before, Jake Mintges came to me, and I knew something was due to go wrong, and home was the place for little me. You see I missed it all by a stone’s throw.” "You’re right, ‘Genie’," said the old mountaineer. “Mintges never comes to us unless he means business.”
  • 23.
    XVIII The Turning ofthe Belt There are not many memories of Ole Bull in the vicinity of the ruins of his castle today. Fifteen years ago, before the timber was all gone, there were quite a few old people who were living in the Black Forest at the time of his colonization venture, who remembered him well, also a couple of his original colonists, Andriesen and Oleson, but these are no more. One has to go to Renovo or to Austin or Germania to find any reminiscences now, and those have suffered through passing from “hand to mouth” and are scattered and fragmentary. They used to say that the great violinist was, like his descendants, a believer in spiritualism, and on the first snowy night that he occupied his unfinished mansion, chancing to look out he saw what seemed to him a tall, white figure standing by the ramparts. Fearing that it was some skeld come to warn him of impending disaster to his beloved colony, he rushed out hatless, only to find that it was an old hemlock stab, snow encrusted. Disaster did come, but as far as local tradition goes Ole Bull had no warning of it. The hemlock stab which so disturbed him has been gone these many years, but a smaller one, when encased in snow, has frightened many a superstitious wayfarer along the Kettle Creek road, and gone on feeling that he had seen “the ghost of Ole Bull.” But unaccountable and worthy of investigation are the weird strains of music heard on wild, stormy nights, which seem to emanate from the castle. Belated hunters coming down the deep gorge of Ole Bull Run, back of the castle, or travelers along the main highway from Oleona to Cross Forks, have heard it and refused to be
  • 24.
    convinced that thereis not a musician hidden away somewhere among the crumbling ruins. The “oldest inhabitants,” sturdy race of trappers, who antedated Ole Bull’s colonists, declare that the ghostly musician was playing just the same in the great virtuoso’s time, and that it is the ghost of a French fifer, ambushed and killed by Indians when his battalion was marching along the “Boone Road” from Fort Le Boeuf to the memorable and ill-starred attack on Fort Augusta at Sunbury in 1757. At the mention of “Boone Road” another question is opened, as there is no historic record of such a military highway between Lake Erie and the West Branch of the Susquehanna River. The afore- mentioned very old people used to say that the road was still visible to them in certain places; that there could be no doubt of its existence and former utilization. Daniel Boone, if he be the pioneer of that name who first “blazed it out,” was a very young man during the “French and Indian War,” and his presence in that part of the country is a mooted question. Perhaps it was another “Boone,” and a Norseman, for many persons named “Bonde” or “Boon” were among the first Swedish settlers on the Lanape-Wihittuck, or Delaware River, unconsciously pioneering for their famous cousin-German, Ole Borneman Bull. In all events, the French fifer was shot and grievously wounded, and his comrades, in the rout which ensued, were forced to leave him behind. After refreshing himself at the cold spring, which nearly a century later Ole Bull named “Lyso”–the water of light–he crawled up on the hill, on which the castle was afterwards partly erected, to reconnoitre the country, but dropping from exhaustion and loss of blood, soon died. The wolves carried away his physical remains, but his spirit rested on the high knoll, to startle Ole Bull and many others, with the strains of his weird, unearthly music. It seems a pity that these old legends are passing with the lives of the aged people, but the coming of Ira Keeney, the grizzled Civil War veteran, as caretaker for the handsome Armstrong-Quigley hunting lodge, on the site of one of the former proposed fogderier Walhalla, has awakened anew the world of romance, of dashing exploits in the war under Sheridan and Rosecrans, of lumbering days, wolves,
  • 25.
    panthers and wildpigeons, all of which memories the venerable soldier loves to recount. Yet can these be compared with the legend that Ole Bull, seeing a Bald Eagle rise from its nest on the top of a tall oak near the banks of Freeman’s Run, named the village he planned to locate there Odin, after the supreme deity of the Scandinavian mythology, who took the form of an eagle on one period of his development. His other settlements or herods he called Walhalla, Oleona and New Bergen. Planned at first by the French to be a purely military route for ingress to the West Branch country, but owing to the repulse at Fort Augusta, very infrequently traversed by them, if at all, it became principally an overland “short cut” for trappers, traders, travelers and settlers, all of whom knew its location well. Who could have laid out such an intricate road over high mountains and through deep valleys, unless a military force, is hard to imagine, even if for some strange reason it was never written into “history.” After the Revolutionary War there was naturally an unsettled state of affairs, and many farmers and adventurers turned their thought to the country west of the Allegheny Mountains and River, as the land of opportunity, consequently there was much desultory travel over the Boone Road. Unemployment prevailed everywhere, and hordes of penniless ex-soldiers, turned adrift by their victorious new nation, traveled backwards and forwards along all the known highways and trails, picking up a day’s work as best they could, their precarious mode of living giving them the name of “cider tramps.” A few more reckless and blood thirsty than their fellows, claimed that the country which they had freed owed them a living; if there was no work and no pensions, and they could not get it by hook they would take it by crook. In other words, certain ex-service men, became strong-arm men, road agents, or highwaymen, whichever name seems most suitable. The Boone Road, in a remote wilderness of gloomy, untrodden forests, made an ideal haunt for footpads, and when not robbing travelers, they took their toll from the wild game, elks, deer, bears, grouse and wild pigeons which infested the region. Law and order
  • 26.
    had not penetratedinto such forgotten and forbidding realms, and obscure victims could report outrages and protest to a deaf and dumb government. How long it was before these robbers were curbed is hard to say. One story which the backwoods people about Hamesley’s Fork used to tell dates back to five years after the close of the Revolution, about 1788. Jenkin Doane, possibly a member of the same family that produced the Doane outlaws in the Welsh Mountains, was one of the notorious characters along the Boone Road. Like others, he was an ex-soldier, a hero of Brandywine and Paoli, but his plight was worse, for just before peace was declared, when a premature rumor to that effect had reached his company, lying at Fort Washington, he had assaulted and beaten up an aristocratic and brutal officer who was the terror of the line. For this he had been sentenced to death, but later his sentence was commuted, and finally, because there were no satisfactory jails for military prisoners, he was quietly released, sans h. d. and the ability to make a livelihood. He finally became a wagoner and hired out with a party of emigrants going to Lake Erie, who traveled over the Boone Road. He saw them safely to their destination, but on his return journey tarried in the mountains, hunting and fishing, until his supplies were gone, when he turned “road agent.” He evidently had a low grade of morals at that time, for he robbed old as well as young, women as readily as men. He was fairly successful, considering the comparative lightness of travel and the poor class of victims financially. In an up-and-down country, where feed and shelter were scarce, he kept no horse, but traveled afoot. He had no opportunity to test his heels, as he never ran away, all his attacks being followed by speedy capitulation. If a trained force of bailiffs had been sent out to apprehend him, doubtless he could have been caught, as he had his favorite retreats, where he lingered, waiting for his prey. There were not many such places in the depths of the seemingly endless forests of giant and gloomy hemlocks and pines, places where the sun could shine and the air radiated dryness and warmth. One of his best-liked haunts was known as the Indian Garden,
  • 27.
    situated in anopen glade among the mountains which divide the country of Kettle Creek from that of Drury’s Run. “Art.” Vallon, one of the oldest hunters on Kettle Creek, who died recently, once described the spot as follows: “More than sixty years ago my father on a hunting trip showed me a clearing of perhaps half an acre, which he told me was called ‘The Indian Garden.’ I visited it many times afterwards on my trapping excursions. It impressed me as very unusual, being entirely free from undergrowth, except the furze grass one sees on poor, worked-out land. “It was a perfect square of about half an acre, and was surrounded by the deep, primeval forest. There was a fine spring not very far away.” It was there that Jenkin Doane and two other reckless characters who had served with Simon Girty and acted as his henchmen lolled for hours in the sun, waiting for victims. It was there that he usually maintained his “camp fire” and at night slept on the ground in a sleeping bag of buffalo hides. One night in the late winter, when there were still patches of snow on the ground, Doane dreamed very vividly of a girl whom he had never seen. He could hardly realize he had been dreaming when he awoke and sat up looking about him, to where his vision was cut off by the interminable “aisles of the forest.” He seemed to be married to her, at least they were together, and he had the pleasure of saving her life from drowning in a deep torrent where she had gone, probably to bathe. He had never seen a person of such unusual beauty. Her hair was dark and inclined to curl, complexion hectic, her eyes hazel, but the chief charm lay in the line of her nose and upper lip. The nose was slightly turned up at the end, adding, with the curve of her upper lip, a piquancy to an expression of exceptional loveliness. All the day he kept wishing that this charming young woman might materialize into his life; he could not bring himself to believe but that such a realistic vision must have a living counterpart. It was during the morning of the second day, when he had about given up hope, that he saw coming towards him, down a steep pitch
  • 28.
    in the BooneRoad–it is part of the Standard Oil Pipe Line now–a young woman on horseback, wearing a red velvet hat and a brown cloak. She was mounted on a flea-bitten white horse of uncertain age and gait. Close behind her rode two elderly Indians, also indifferently mounted, who seemed to be her bodyguard, and between them they were leading a heavily-laden pack-horse. He quickly turned his belt, an Indian signal of great antiquity, which indicated to his companions that they would make an attack. Just as the white horse touched fairly level ground he commenced to stumble and run sideways, having stepped on a rusty caltrop or “crow’s foot” which the outlaws had strewn across the trail at that point for that very purpose. Seeing the animal’s plight, the young equestrienne quickly stopped him and dismounted. She had been riding astride, and Doane noticed the brown woolen stockings which covered her shapely legs, her ankle-boots of good make, as she rolled off the horse’s back. As she stood before her quivering steed, patting his shoulder, Doane and his companions drew near, covering the three with their army muskets. It was then to his infinite surprise he noticed that the girl in brown, with the red hat, was the heroine of his dream, though in the vision she had been attired in black, but the gown was half off her shoulders and back when he drew her out of the water. It would have been hard to tell who was most surprised, Doane or the girl. Much as he admired her loveliness, there had been the turning of the belt, which meant there could be no change of purpose; his comrades were already eyeing the well-filled packsaddles. The frightened Indians had dismounted, being watched by one of the outlaws, while Doane politely yet firmly demanded the whereabouts of her money. Lifting her cloak and turning her belt, she disclosed two long deerskin pouches, heavy with gold. Unbuckling them, she handed them to Doane, while tears began to stream down her cheeks. “You may take it, sir,” she sobbed, "but you are ruining my chances in life. I am partly Indian, Brant’s daughter, grand-daughter of the old Brant, and my father had arranged a marriage for me with
  • 29.
    a young officerwhom I met during the war, and I love him dearly. Though I told him of my love, he would not marry me without a dowry of $3,000, and it took my father five long years to gather it together. I would not care if I did not love him so much. I was on my way to his home at the forks of Susquehanna, and now you have destroyed all my hopes." The brigand’s steely heart was for a moment touched. “Brant’s daughter,” he said, “you Indian people know the turning of the belt, which means that what is decided on at that moment must be carried out; before I saw who you were I resolved to rob you. It must be done, for I have two partners who will demand their shares.” "You said ‘before you knew who I was,’" broke in the girl, her tearful, piquant face filled with curiosity. “You never saw me before.” “Oh, yes, I did,” replied Doane, “in a dream a couple of nights ago.” “she said, as a final appeal. “I am afraid not,” he answered, as his comrade started to open one of the pouches. Then he paused, saying: “I will not take all. I’d not take anything from you except that I have these partners. I will retain half for them, and let you go on your way with the rest. Your good looks–for you are truly the prettiest thing I ever laid eyes on– will outweigh with your lover a paltry fifteen hundred dollars in gold.” “cried the girl weeping afresh. “He does not love me; he only wants the gold. I am the one that loves, and am lost and discarded without the dowry.” Meanwhile one of the outlaws had drawn the caltrop from the horse’s frog, and having smeared it with bear’s grease, the animal was walking about in a fairly comfortable manner.
  • 30.
    AN ALLEGHENY EPISODE Thegirl stood looking at Doane. He was young, strong, and had a fairly decent face. How could he be so cruel? Then she looked at his partners, low-browed wretches, who were already muttering at the delay, and she realized there was no hope. Doane gave up his share, and tossed the other of the bags of gold to his “pals,” then ordered the girl and her escort to proceed. He said that he would accompany her to the river, to where the danger of meeting other highwaymen would be passed. The girl traveled on foot the entire distance, to ease her horse over the rough, uneven trail, walking side by side with the highwayman. They parted with civility, and on Doane’s side with deep regret, for the dream had inflamed his soul, and the reality was so startlingly lovely that he was deeply smitten. Before he had reached the river he wished that he had shot his grasping companions, rather than endanger this beautiful creature’s future happiness. “That was an unlucky turning of the belt,” he said to himself, as he retraced his steps towards the Indian Garden. Brant’s daughter rode with a heavy heart the balance of the journey, for she knew her lover’s nature. The Indian bodyguards
  • 31.
    were equally downcast,for they had sworn to deliver her safe and sound at the forks of the Susquehanna. When she reached the handsome colonial gray stone house, on a headland overlooking the “meeting of the waters,” her lover, a handsome upstanding youth, with a sports suit made of his old officer’s buff uniform, and surrounded by a pack of his hunting dogs, came out to greet her. His manner was not very cordial. With penetrating eyes he saw that she was disturbed over something, so he quickly asked if she suffered from fatigue after the long overland journey. “No, Major,” she replied, “I am not at all tired in body, but I am in heart. I cannot postpone the evil moment. On the Boone Road we were stopped by three highwaymen, armed, who took from me half of my dowry.” The Major’s handsome countenance darkened. “Why did you not tell them you needed it to get married?” he blurted out angrily. “A pretty wench like you could have honey-foogled them to keep it.” “replied the girl, confidently, “and for that reason the chief of the band, a very pretty man, let me keep the one-half, but he had to retain the rest for his companions.” “ “I think I came off well,” she said, hanging her pretty head, her cheeks all crimson flush. She was sitting on the horse, her feet dangling out of the stirrups, her skirts turned up revealing those shapely legs, and he had not asked her to dismount. The Major drew nearer, with an angry gesture. “I have a mind to smack your face good and hard for your folly,” he stormed. “What do you think I have been waiting for, a paltry fifteen hundred dollars?” Brant’s daughter turned her belt and handed him the pouch of gold, which he threw down testily. It was quickly picked up by one of his German redemptioner servants, who carried it into the house. “Aren’t you going to ask me to come in?” pleaded the now humiliated love-sick girl. “You can slap me all you want. Punish me any way you will,” offering him her stiff riding crop, “only don’t cast me off.” “Come down if you wish; I don’t care,” he mumbled in reply. “I wouldn’t exert myself enough to whip you, but your hide ought to be
  • 32.
    tanned for yourstupidity.” Cut to the heart, yet still loving abjectly, she slid off the horse and meekly followed the imperious Major into the mansion. During the balance of the afternoon, and at supper, and until she begged to be allowed to retire, she was reviled and humbled in the presence of his redemptioners. He declared that no one man in a thousand, in his station of life, would consider marriage with a person of Indian blood; that it was worth twice three thousand dollars, the figure he had originally named. Nevertheless, he had carefully put the money bag in his strong box, even though saying nothing about setting a date for a marriage. She was shown into an unfinished room. There was no bed, only a few chairs, and two big walnut chests. Tearful and nervously unstrung, she took off her shoes and, wrapping herself in her cloak, lay down on the cold wooden floor. She could have called for blankets, and doubtless gotten them, but her pride had rebelled and she resolved to make the best of conditions. She could not sleep, and her mind was tortured with her love for the Major, anger at his ungrateful conduct, and an ever-recurring vision of the highwayman on the Boone Road. She heard the great Irish clock in the hall below strike every hour until one. Suddenly she got up, her face brightened with a new resolve. Tying her shoes together, she threw them them across her shoulder and tiptoed to the door, which she opened softly, and went downstairs. Her Indian bodyguards were sleeping on the stone floor in the vestibule, wrapped in their blankets. “Exundos,” she whispered in the ear of the oldest, “get me out of this; I am going to go away.” The trusty redskin, who always slept with one eye open, nudged his comrade, Firequill, and made their way to the door. It was locked and chained, and the key probably under the Major’s pillow. Exundos was determined to redeem his record. He rushed upstairs to where a portly German was sleeping in the officer’s antechamber. He knocked the valet senseless with the butt of his horse pistol. Then he sprang like a panther over the prostrate body into the
  • 33.
    Major’s apartment. Ina moment he had gagged him with the caltrop extracted from the horse’s foot, then bound him hand and foot. The key was under the pillow. In five minutes the fugitives were on the front lawn, surrounded by the Major’s pack of yelping, snarling hounds. Getting by them as best they could, the trio made for the bluffs, found a dugout in which they crossed the river, and were soon in the shelter of the friendly mountains. In the morning the Major’s other servants who slept in quarters near the stables, found the half-dazed bodyguard with a bloody head, and their gagged and helpless master. Once released, the Major decided not to send a posse after the runaways; he was heavily in debt, and needed that pouch of fifteen hundred dollars in gold. Brant’s daughter, after her fortuitous escape, was not completely happy. She had longed for the Major for five years, and had almost gotten him as the result of severe privations. It was pretty hard to lose him now. She was going home defeated, to die unwed. Her feelings became desperate when she reached the Boone Road, with all its haunting memories. As she clambered up the steep grades, and the Indian Garden came into view, she reached down and turned her belt, the symbol of resolution. No one was about as she passed the garden, which made her heart sink with loneliness for some strong man’s love. When Kettle Creek was reached and crossed near the Cold Spring, she decided to rest awhile. After a meal, which she barely tasted, she told the Indians that she was going for a little walk in the woods. “I am safe now,” she said, bitterly; “I have no gold.” Past the Cold Spring she went, on and on up the wild, narrow gorge of what is now called Ole Bull Run, where a dark and dismal hemlock forest of colossal proportions bent over the torrent, keeping out the light of day. While she was absent, who should appear at the Cold Spring but Doane, with his colleagues in crime. “So he took her after all, with only half the money,” he said, almost regretfully, to the Indians.
  • 34.
    “I don’t know,”replied one of the bodyguard. “He was very ugly when he heard it, wanted to slap her, and she ran away in the night, leaving horses, saddle-bags and gold. Oh, she felt terribly, for she truly loved the monster.” “said Doane, in surprised tones. The Indian pointed up the dark gorge of the run. That moment the outlaw thought of his dream, of his rescuing her from an angry torrent. Motioning to her guards to follow, he made haste along the edges of the stream, slipping often on the moss-grown rocks. Half way to the top of the gigantic mountain, he heard the roar of a cascade. There was a great, dark, seething pool beneath. Just as Doane came in sight of this he beheld, to his horror, Brant’s daughter, hatless and cloakless, plunging in. It was like a Dryad’s immolation! With superhuman effort he reached the brink and sprang after her. He caught her, as she rose the first time, by her profuse brown hair, but as he lifted her ashore a snag or branch tore her shirtwaist, so that her shoulder and back were almost completely bare, just as in the dream. Aided by the faithful Indians, he laid her tenderly among the moss and ferns, and poured some rum from a buffalo horn flask down her throat. She revived and opened her pretty hazel eyes quizzically. “Am I at the Indian Garden?” she said. “You are with the one who turned his belt there,” answered Doane; “only this time I don’t want anything for my comrades. I only want you for myself.” “said Brant’s daughter, having now fully recovered the power of speech. “When I came back to the Garden and you were not there, I turned my belt.” “said Doane, “for that last resolve has brought us together. I should have known from the beginning my destiny was revealed in that dream.” “said the girl. “Of course I will, anywhere with you, and never follow the road again, or anything not strictly honorable. Wrongdoing, I see now, is caused by the preponderance of the events of life going against us. Where things come our way, and there is joy, one can never aspire to ill. Wrong is the continued disappointment. I could never molest a soul after I saw you, and have lived by hunting ever since. I made
  • 35.
    my partners returnthe purse of gold; it shall go to your father to buy a farm.” Brant’s daughter now motioned to him that she felt like sitting up, and he propped her back against an old cork pine, kissing her pretty plump cheeks and shoulders many times as he did so. “And that scoundrel would have smacked you,” he thought, boiling inwardly. Then taking her cold hands in his, he said: “Out of evil comes good. I do not regret this one robbery, for if I had not taken that gold for my comrades, some one would have robbed me of you!”
  • 36.
    XIX Riding His Pony WhenRev. James Martin visited the celebrated Penn’s Cave, in the Spring of 1795, it was related that he found a small group of Indians encamped there. That evening, around the campfire, one of the redskins related a legend of one of the curiosities of the watery cave, the flambuoyant “Indian Riding Pony” mural-piece which decorates one of the walls. Spirited as a Remington, it bursts upon the view, creates a lasting impression, then vanishes as the power skiff, the “Nita-nee,” draws nearer. According to the old Indians, there lived not far from where the Karoondinha emerges from the cavern a body of aborigines of the Susquehannock tribe who made this delightful lowland their permanent abode. While most of their cabins were huddled near together on the upper reaches of the stream, there were straggling huts clear to the Beaver Dams. The finding of arrow points, beads and pottery along the creek amply attests to this. Among the clan was a maiden named Quetajaku, not good to look upon, but in no way ugly or deformed. In her youth she was light- hearted and sociable, with a gentle disposition. Yet for some reason she was not favored by the young bucks. All her contemporaries found lovers and husbands, but poor Quetajaku was left severely alone. She knew that she was not beautiful, though she was of good size; she was equally certain that she was not a physical monster. She could not understand why she could find no lover, why she was singled out to be a “chauchschisis,” or old maid. It hurt her pride as a young girl, it broke her heart completely when she was older.
  • 37.
    Gradually she withdrewfrom the society of her tribal friends, building herself a lodge-house on the hill, in what is now the cave orchard. There she led a very introspective life, grieving over the love that might have been. To console herself she imagined that some day a handsome warrior would appear, seek her out, load her with gifts, overwhelm her with love and carry her away to some distant region in triumph. He would be handsomer and braver than any youth in the whole country of the Karoondinha. She would be the most envied of women when he came. This poor little fancy saved her from going stark mad; it remedied the horror of her lonely lot. Every time the night wind stirred the rude hempen curtain which hung before the door of her cabin, she would picture it was the chivalrous stranger knight come to claim her. When it was cold she drew the folds of her buffalo robe tighter about her as if it was his arms. As time went on she grew happy in her secret lover, whom no other woman’s flame could equal, whom no one could steal away. She was ever imagining him saying to her that her looks exactly suited him, that she was his ideal. But like the seeker after Eldorado, years passed, and Quetajaku did not come nearer to her spirit lover. But her soul kept up the conceit; every night when she curled herself up to sleep he was the vastness of the night. On one occasion an Indian artist named Naganit, an undersized old wanderer appeared at the lonely woman’s home. For a living he decorated pottery, shells and bones, sometimes even painted war pictures on rocks. Quetajaku was so kind to him that he built himself a lean-to on the slope of the hill, intending to spend the winter. On the long winter evenings the old woman confided to the wanderer the story of her unhappy life, of her inward consolation. She said that she had longed to meet an artist who could carry out a certain part of her dream which had a right to come true. When she died she had arranged to be buried in a fissure of rocks which ran horizontally into one of the walls of the “watery” cave. On the opposite wall she would like painted in the most brilliant colors a
  • 38.
    portrait of ahandsome young warrior, with arms outstretched, coming towards her. Naganit said that he understood what she meant exactly, but suggested that the youth be mounted on a pony, a beast which was coming into use as a mount for warriors, of which he had lately seen a number in his travels on the Virginia coast, near Chincoteague. This idea was pleasing to Quetajaku, who authorized the stranger to begin work at once. She had saved up a little property of various kinds; she promised to bestow all of this on Naganit, except what would be necessary to bury her, if the picture proved satisfactory. The artist rigged up a dog-raft with a scaffold on it, and this he poled into the place where the fissure was located, the woman accompanying him the first time, so there would be no mistake. All winter long by torchlight, he labored away. He used only one color, an intensive brick-red made from mixing sumac berries, the pollen of the Turk’s Cap Lily, a small root and the bark of a tree, as being more permanent than that made from ochers and other ores of stained earth. Marvelous and vital was the result of this early impressionist; the painting had all the action of life. The superb youth in war dress, with arms outstretched, on the agile war pony, rushing towards the foreground, almost in the act of leaping from the rocky panel into life, across the waters of the cave to the arms of his beloved. It would make old Quetajaku happy to see it, she who had never known love or beauty. The youth in the mural typified what Naganit would have been himself were he the chosen, and what the “bachelor maid” would have possessed had nature favored her. It was the ideal for two disappointed souls. Breathlessly the old artist ferried Quetajaku to the scene of his endeavors. When they reached the proper spot he held aloft his quavering torch. Quetajaku, in order to see more clearly, held her two hands above her eyes. She gave a little cry of exclamation, then turned and looked at Naganit intently. Then she dropped her eyes, beginning to cry to herself, a rare thing for an Indian to do! The artist looked at her fine face, down which the tears were streaming, and asked her the cause of her grief–was the picture
  • 39.
    such a terribledisappointment? The woman drew herself together, replying that it was grander than she had anticipated, but the face of Naganit’s, and, strangely enough, the face she had dreamed of all her life. “But I am not the heroic youth you pictured”, said the artist, sadly. “I am sixty years old, stoop-shouldered, and one leg is shorter than the other.” “ Naganit looked at the Indian woman. She was not hideous; there was even a dignity to her large, plain features, her great, gaunt form. “I have never received such praise as yours. I always vowed I would love the woman who really understood me and my art. I am yours. Let us think no more of funeral decorations, but go to the east, to the land of war ponies, and ride to endless joy together.” Quetajaku, overcome by the majesty of his words, leaned against his massive shoulder. In that way he poled his dog-raft against the current to the entrance of the cave. There was a glory in the reflection from the setting sun over against the east; night would not close in for an hour or two. And towards the darkening east that night two happy travelers could be seen wending their way.
  • 40.
    XX The Little Postmistress Itwas long past dark when Mifflin Sargeant, of the Snow Shoe Land Company, came within sight of the welcoming lights of Stover’s. For fourteen miles, through the foothills on the Narrows, he had not seen a sign of human habitation, except one deserted hunter’s cabin at Yankee Gap. There was an air of cheerfulness and life about the building he had arrived at. Several doors opened simultaneously at the signal of his approach, given by a faithful watchdog, throwing the rich glow of the fat-lamps and tallow candles across the road. The structure, which was very long and two stories high, housed under its accommodating roofs a tavern, a boarding house, a farmstead, a lumber camp, a general store, and a post office. It was the last outpost of civilization in the east end of Brush Valley; beyond were mountains and wilderness almost to Youngmanstown. Tom Tunis had not yet erected the substantial structure on the verge of the forest later known as “The Forest House.” A dark-complexioned lad, who later proved to be Reuben Stover, the son of the landlord, took the horse by the bridle, assisting the young stranger to dismount. He also helped him to unstrap his saddle-bags, carrying them into the house. Sargeant noticed, as he passed across the porch, that the walls were closely hung with stags’ horns, which showed the prevalence of these noble animals in the neighborhood. Old Daddy and Mammy Stover, who ran the quaint caravansery, quickly made the visitor feel at home. It was after the regular
  • 41.
    supper-time, but afresh repast of bear’s meat and corn bread was cheerfully prepared in the huge stone chimney. The young man explained to his hosts that he had ridden that day from New Berlin; he had come from Philadelphia to Harrisburg by train, to Liverpool by packet boat, at which last named place his horse had been sent on to meet him. He added that he was on his way into the Alleghenies, where he had recently purchased an interest in the Snow Shoe development. After supper he strolled along the porch to the far end, to the post office, thinking he would send a letter home. A mail had been brought in from Rebersburg during the afternoon, consequently the post office, and not the tavern stand, was the attraction of the crowd this night. The narrow room was poorly lighted by fat-lamps, which cast great, fitful shadows, making grotesques out of the oddly-costumed, bearded wolf hunters present, who were the principal inhabitants of the surrounding ridges. A few women, hooded and shawled, were noticeable in the throng. In a far corner, leaning against the water bench, was young Reuben, the hostler, tuning up his wheezy fiddle. As many persons as possible hung over the rude counter, across which the mail was being delivered, and where many letters were written in reply. Above this counter were suspended three fat-lamps, attached to grooved poles, which, by cleverly-devised pulleys, could be lifted to any height desired.
  • 42.
    SETH NELSON, JR.,AFTER A GOOD DAY’S SPORT The young Philadelphian edged his way through the good- humored concourse to ask permission to use the ink; he had brought his favorite quill pen and the paper with him. This brought him face to face, across the counter, with the postmistress. He had not been able to see her before, as her trim little figure had been wholly obscured by the ponderous forms that lined the counter. Instantly he was charmed by her appearance–it was unusual–by her look of neatness and alertness. Their eyes met–it was almost with a smile of mutual recognition. When he asked her if he could borrow the ink, which was kept in a large earthen pot of famous
  • 43.
    Sugar Valley make,she smiled on him again, and he absorbed the charm of her personality anew. Though she was below the middle height, her figure was so lithe and erect that it fully compensated for the lack of inches. She wore a blue homespun dress, with a neat checked apron over it, the material for which constituted a luxury, and must have come all the way from Youngmanstown or Sunbury. Her profuse masses of soft, wavy, light brown hair, on which the hanging lamps above brought out a glint of gold, was worn low on her head. Her deepset eyes were a transparent blue, her features well developed, and when she turned her face in profile, the high arch of the nose showed at once mental stability and energy. Her complexion was pink and white. There seemed to be always that kindly smile playing about the eyes and lips. When she pushed the heavy inkwell towards him he noticed that her hands were very white, the fingers tapering; they were the hands of innate refinement. Almost imperceptibly the young man found himself in conversation with the little postmistress. Doubtless she was interested to meet an attractive stranger, one from such a distant city as Philadelphia. While they talked, the letter was gradually written, sealed, weighed and paid for–it was before the days of postage stamps, and the postmistress politely waited on her customers. He had told her his name–Mifflin Sargeant–and she had given him hers–Caroline Hager–and that she was eighteen years of age. He had told her about his prospective trip into the wilds of Centre County, of the fierce beasts which he had heard still abounded there. The girl informed him that he would not have to go farther west to meet wild animals; that wolf hides by the dozen were brought to Stover’s each winter, where they were traded in; that old Stover, a justice of the peace, attested to the bounty warrants–in fact, the wolves howled from the hill across the road on cold nights when the dogs were particularly restless. Her father was a wolf hunter, and would never allow her to go home alone; consequently, when he could not accompany her she remained over night in the dwelling which housed the post office.
  • 44.
    Panthers, too, wereoccasionally met with in the locality–in the original surveys this region was referred to as “Catland”–also huge red bears and the somewhat smaller black ones. If he was going West, she continued in her pretty way, he must not fail to visit the great limestone cave near where the Brush Mountains ended. She had a sister married and living not far from it, from whom she had heard wonderful tales, though she had never been there herself. It was a cave so vast it had not as yet been fully explored; one could travel for miles in it in a boat; the Karoondinha, or John Penn’s Creek, had its source in it; Indians had formerly lived in the dry parts, and wild beasts. Then she lowered her voice to say that it was now haunted by the Indians’ spirits. And so they talked until a very late hour, the crowd in the post office melting away, until Jared Hager, the girl’s father, in his wolfskin coat, appeared to escort her home, to the cabin beyond the waterfall near the trail to Dolly Hope’s Valley. She was to have a holiday until the next afternoon. The wolf hunter was a courageous-looking man, much darker than his daughter, with a heavy black beard and bushy eyebrows; in fact, she was the only brown-haired, blue-eyed one in the entire family connection. He spoke pleasantly with the young stranger, and then they all said good night. “Don’t forget to visit the great cavern,” Caroline called to the youth. “I surely will,” he answered, “and stop here on my way east to tell you all about it.” “That’s good; we want to see you again,” said the girl, as she disappeared into the gloomy shadows which the shaggy white pines cast across the road. Young Stover was playing “Green Grows the Rushes” on his fiddle in the tap-room, and Sargeant sat there listening to him, dreaming and musing all the while, his consciousness singularly alert, until the closing hour came. That night, in the old stained four-poster, in his tiny, cold room, he slept not at all. “Yet he feared to dream.” Though his thoughts carried him all over the world, the little postmistress was uppermost
  • 45.
    in every fancy.Among the other things, he wished that he had asked her to ride with him to the cave. They could have visited the subterranean marvels together. He got out of bed and managed to light the fat lamp. By its sputtering gleams he wrote her a letter, which came to an abrupt end as the small supply of ink which he carried with him was exhausted. But as he repented of the intense sentences penned to a person who knew him so slightly, he arose again before morning and tore it to bits. There was a white frost on the buildings and ground when he came downstairs. The autumn air was cold, the atmosphere was a hazy, melancholy gray. There seemed to be a cessation of all the living forces of nature, as if waiting for the summons of winter. From the chimney of the old inn came purple smoke, charged with the pungent odor of burning pine wood. With a strange sadness he saddled his horse and resumed his ride towards the west. He thought constantly of Caroline–so much so that after he had traveled ten miles he wanted to turn back; he felt miserable without her. If only she were riding beside him, the two bound for Penn’s Valley Cave, he could be supremely happy. Without her, he did not care to visit the cavern, or anything else; so at Jacobsburg he crossed the Nittany Mountains, leaving the southerly valleys behind. He rode up Nittany Valley to Bellefonte, where he met the agent of the Snow Shoe Company. With this gentleman he visited the vast tract being opened up to lumbering, mining and colonization. But his thoughts were elsewhere; they were across the mountains with the little postmistress of Stover’s. Satisfied that his investment would prove remunerative, he left the development company’s cozy lodge-house, and, with a heart growing lighter with each mile, started for the east. It was wonderful how differently–how vastly more beautiful the country seemed on this return journey. He fully appreciated the wistful loveliness of the fast-fading autumn foliage, the crispness of the air, the beauty of each stray tuft of asters, the last survivors of the wild flowers along the trail. The world was full of joy, everything was in harmony.
  • 46.
    Welcome to ourwebsite – 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