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

(Ebook) Design Patterns in .NET Core 3: Reusable Approaches in C# and F# for Object-Oriented Software Design by Dmitri Nesteruk ISBN 9781484261798, 9781484261804, 9781501171772, 1484261798, 1501171771, 1484261801 download

The document provides information about various ebooks authored by Dmitri Nesteruk, focusing on design patterns in programming languages such as .NET Core, .NET 6, and Modern C++. It highlights the availability of these books for download in multiple formats and emphasizes the author's aim to fill gaps in existing literature on design patterns for C# and F#. The content includes discussions on design principles, creational, structural, and behavioral patterns, along with practical code examples and modern programming features.

Uploaded by

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

(Ebook) Design Patterns in .NET Core 3: Reusable Approaches in C# and F# for Object-Oriented Software Design by Dmitri Nesteruk ISBN 9781484261798, 9781484261804, 9781501171772, 1484261798, 1501171771, 1484261801 download

The document provides information about various ebooks authored by Dmitri Nesteruk, focusing on design patterns in programming languages such as .NET Core, .NET 6, and Modern C++. It highlights the availability of these books for download in multiple formats and emphasizes the author's aim to fill gaps in existing literature on design patterns for C# and F#. The content includes discussions on design principles, creational, structural, and behavioral patterns, along with practical code examples and modern programming features.

Uploaded by

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

(Ebook) Design Patterns in .

NET Core 3: Reusable


Approaches in C# and F# for Object-Oriented
Software Design by Dmitri Nesteruk ISBN
9781484261798, 9781484261804, 9781501171772,
1484261798, 1501171771, 1484261801install
https://ebooknice.com/product/design-patterns-in-net-
download
core-3-reusable-approaches-in-c-and-f-for-object-oriented-
software-design-22374882

Download more ebook instantly today at https://ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Design Patterns in .NET 6: Reusable Approaches in C# and F# for Object-


Oriented Software Design by Dmitri Nesteruk ISBN 9781484282441, 1484282442

https://ebooknice.com/product/design-patterns-in-net-6-reusable-approaches-in-c-
and-f-for-object-oriented-software-design-44960808

ebooknice.com

(Ebook) Design Patterns in .NET: Reusable Approaches in C# and F# for Object-


Oriented Software Design by Dmitri Nesteruk ISBN 9781484243657, 9781484243664,
148424365X, 1484243668

https://ebooknice.com/product/design-patterns-in-net-reusable-approaches-in-c-
and-f-for-object-oriented-software-design-33645242

ebooknice.com

(Ebook) Design Patterns in Modern C++: Reusable Approaches for Object-Oriented


Software Design by Dmitri Nesteruk ISBN 9781484236024, 1484236025

https://ebooknice.com/product/design-patterns-in-modern-c-reusable-approaches-
for-object-oriented-software-design-11077246

ebooknice.com

(Ebook) Design Patterns in Modern C++20: Reusable Approaches for Object-Oriented


Software Design by Dmitri Nesteruk ISBN 9781484272954, 1484272951

https://ebooknice.com/product/design-patterns-in-modern-c-20-reusable-
approaches-for-object-oriented-software-design-36127942

ebooknice.com
(Ebook) Design Patterns in Modern C++20: Reusable Approaches for Object-Oriented
Software Design by Dmitri Nesteruk ISBN 9781484272947, 1484272943

https://ebooknice.com/product/design-patterns-in-modern-c-20-reusable-
approaches-for-object-oriented-software-design-36137854

ebooknice.com

(Ebook) Biota Grow 2C gather 2C cook by Loucas, Jason; Viles, James ISBN
9781459699816, 9781743365571, 9781925268492, 1459699815, 1743365578, 1925268497

https://ebooknice.com/product/biota-grow-2c-gather-2c-cook-6661374

ebooknice.com

(Ebook) Matematik 5000+ Kurs 2c Lärobok by Lena Alfredsson, Hans Heikne, Sanna
Bodemyr ISBN 9789127456600, 9127456609

https://ebooknice.com/product/matematik-5000-kurs-2c-larobok-23848312

ebooknice.com

(Ebook) SAT II Success MATH 1C and 2C 2002 (Peterson's SAT II Success) by Peterson's
ISBN 9780768906677, 0768906679

https://ebooknice.com/product/sat-ii-success-math-1c-and-2c-2002-peterson-s-sat-
ii-success-1722018

ebooknice.com

(Ebook) Master SAT II Math 1c and 2c 4th ed (Arco Master the SAT Subject Test: Math
Levels 1 & 2) by Arco ISBN 9780768923049, 0768923042

https://ebooknice.com/product/master-sat-ii-math-1c-and-2c-4th-ed-arco-master-
the-sat-subject-test-math-levels-1-2-2326094

ebooknice.com
Dmitri Nesteruk

Design Patterns in .NET Core 3


Reusable Approaches in C# and F# for Object-
Oriented Software Design
2nd ed.
Dmitri Nesteruk
St. Petersburg, c.St-Petersburg, Russia

Any source code or other supplementary material referenced by the


author in this book is available to readers on GitHub via the book’s
product page, located at www.​apress.​com/​9781484261798. For more
detailed information, please visit http://​www.​apress.​com/​source-code.

ISBN 978-1-4842-6179-8 e-ISBN 978-1-4842-6180-4


https://doi.org/10.1007/978-1-4842-6180-4

© Dmitri Nesteruk 2020

This work is subject to copyright. All rights are reserved by the


Publisher, whether the whole or part of the material is concerned,
specifically the rights of translation, reprinting, reuse of illustrations,
recitation, broadcasting, reproduction on microfilms or in any other
physical way, and transmission or information storage and retrieval,
electronic adaptation, computer software, or by similar or dissimilar
methodology now known or hereafter developed.

The use of general descriptive names, registered names, trademarks,


service marks, etc. in this publication does not imply, even in the
absence of a specific statement, that such names are exempt from the
relevant protective laws and regulations and therefore free for general
use.

The publisher, the authors and the editors are safe to assume that the
advice and information in this book are believed to be true and accurate
at the date of publication. Neither the publisher nor the authors or the
editors give a warranty, expressed or implied, with respect to the
material contained herein or for any errors or omissions that may have
been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.

Distributed to the book trade worldwide by Springer Science+Business


Media New York, 233 Spring Street, 6th Floor, New York, NY 10013.
Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-
[email protected], or visit www.springeronline.com. Apress Media,
LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM
Finance Inc is a Delaware corporation.
Introduction
The topic of Design Patterns sounds dry, academically dull, and, in all
honesty, done to death in almost every programming language
imaginable – including programming languages such as JavaScript
which aren’t even properly object-oriented! So why another book on it?
I know that if you’re reading this, you probably have a limited amount
of time to decide whether this book is worth the investment.
I decided to write this book to fill a gap left by the lack of in-depth
patterns books in the .NET space. Plenty of books have been written
over the years, but few have attempted to research all the ways in
which modern C# and F# language features can be used to implement
design patterns, and to present corresponding examples. Having just
completed a similar body of work for C++,1 I thought it fitting to
replicate the process with .NET.
Now, on to design patterns – the original Design Patterns book2 was
published with examples in C++ and Smalltalk, and since then, plenty of
programming languages have incorporated certain design patterns
directly into the language. For example, C# directly incorporated the
Observer pattern with its built-in support for events (and the
corresponding event keyword).
Design Patterns are also a fun investigation of how a problem can be
solved in many different ways, with varying degrees of technical
sophistication and different sorts of trade-offs. Some patterns are more
or less essential and unavoidable, whereas other patterns are more of a
scientific curiosity (but nevertheless will be discussed in this book,
since I’m a completionist).
Readers should be aware that comprehensive solutions to certain
problems often result in overengineering, or the creation of structures
and mechanisms that are far more complicated than is necessary for
most typical scenarios. Although overengineering is a lot of fun (hey,
you get to fully solve the problem and impress your co-workers), it’s
often not feasible due to time/cost/complexity constraints.
Who This Book Is For
This book is designed to be a modern-day update to the classic Gang of
Four (GoF, named after the four authors of the original Design Patterns
book) book, targeting specifically the C# and F# programming
languages. My focus is primarily on C# and the object-oriented
paradigm, but I thought it fair to extend the book in order to cover
some aspects of functional programming and the F# programming
language.
The goal of this book is to investigate how we can apply the latest
versions of C# and F# to the implementation of classic design patterns.
At the same time, it’s also an attempt to flesh out any new patterns and
approaches that could be useful to .NET developers.
Finally, in some places, this book is quite simply a technology demo
for C# and F#, showcasing how some of the latest features (e.g., default
interface methods) make difficult problems a lot easier to solve.

On Code Examples
The examples in this book are all suitable for putting into production,
but a few simplifications have been made in order to aid readability:
I use public fields. This is not a coding recommendation, but rather
an attempt to save you time. In the real world, more thought should
be given to proper encapsulation, and in most cases, you probably
want to use properties instead.
I often allow too much mutability either by not using readonly or
by exposing structures in such a way that their modification can
cause threading concerns. We cover concurrency issues for a few
select patterns, but I haven’t focused on each one individually.
I don’t do any sort of parameter validation or exception handling,
again to save some space. Some very clever validation can be done
using C# 8 pattern matching, but this doesn’t have much to do with
design patterns.
You should be aware that most of the examples leverage the latest
version of C# and generally use the latest C# language features that are
available to developers. For example, I use dynamic, pattern matching,
and expression-bodied members liberally.
At certain points in time, I will be referencing other programming
languages such as C++ or Kotlin. It’s sometimes interesting to note how
designers of other languages have implemented a particular feature. C#
is no stranger to borrowing generally available ideas from other
languages, so I will mention those when we come to them.

Preface to the Second Edition


As I write this book, the streets outside are almost empty. Shops are
closed, cars are parked, public transport is rare and empty too. Life is
almost at a standstill as the country endures its first “nonworking
month,” a curious occurrence that one (hopefully) only encounters once
in a lifetime. The reason for this is, of course, the COVID-19 pandemic
that will go down in the history books. We use the phrase “stop the
world” a lot when talking about the garbage collector, but this
pandemic is a real “stop the world” event.
Of course, it’s not the first. In fact, there’s a pattern there too: a virus
emerges, we pay little heed until it’s spreading around the globe. Its
exact nature is different in time, but the mechanisms for dealing with it
remain the same: we try to stop it from spreading and look for a cure.
Only this time around it seems to have really caught us off guard, and
now the whole world is suffering.
What’s the moral of the story? Pattern recognition is critical for our
survival. Just as the hunters and gatherers needed to recognize
predators from prey and distinguish between edible and poisonous
plants, so we learn to recognize common engineering problems – good
and bad – and try to be ready for when the need arises.
Table of Contents
Part I: Introduction
Chapter 1:​The SOLID Design Principles
Single Responsibility Principle
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Parameter Object
Dependency Inversion Principle
Chapter 2:​The Functional Perspective
Function Basics
Functional Literals in C#
Storing Functions in C#
Functional Literals in F#
Composition
Functional-Related Language Features
Part II: Creational Patterns
Chapter 3:​Builder
Scenario
Simple Builder
Fluent Builder
Communicating Intent
Composite Builder
Builder Parameter
Builder Extension with Recursive Generics
Lazy Functional Builder
DSL Construction in F#
Summary
Chapter 4:​Factories
Scenario
Factory Method
Asynchronous Factory Method
Factory
Inner Factory
Physical Separation
Abstract Factory
Delegate Factories in IoC
Functional Factory
Summary
Chapter 5:​Prototype
Deep vs.​Shallow Copying
ICloneable Is Bad
Deep Copying with a Special Interface
Deep-Copying Objects
Duplication via Copy Construction
Serialization
Prototype Factory
Summary
Chapter 6:​Singleton
Singleton by Convention
Classic Implementation
Lazy Loading and Thread Safety
Singletons and Inversion of Control
Summary
Part III: Structural Patterns
Chapter 7:​Adapter
Scenario
Adapter
Adapter Temporaries
The Problem with Hashing
Property Adapter (Surrogate)
Generic Value Adapter
Adapter in Dependency Injection
Adapters in the .​NET Framework
Summary
Chapter 8:​Bridge
Conventional Bridge
Dynamic Prototyping Bridge
Summary
Chapter 9:​Composite
Grouping Graphic Objects
Neural Networks
Shrink Wrapping the Composite
Composite Specification
Summary
Chapter 10:​Decorator
Custom String Builder
Adapter-Decorator
Multiple Inheritance with Interfaces
Multiple Inheritance with Default Interface Members
Dynamic Decorator Composition
Static Decorator Composition
Functional Decorator
Summary
Chapter 11:​Façade
Magic Squares
Building a Trading Terminal
An Advanced Terminal
Where’s the Façade?​
Summary
Chapter 12:​Flyweight
User Names
Text Formatting
Summary
Chapter 13:​Proxy
Protection Proxy
Property Proxy
Value Proxy
Composite Proxy:​SoA/​AoS
Composite Proxy with Array-Backed Properties
Virtual Proxy
Communication Proxy
Dynamic Proxy for Logging
Summary
Part IV: Behavioral Patterns
Chapter 14:​Chain of Responsibility
Scenario
Method Chain
Broker Chain
Summary
Chapter 15:​Command
Scenario
Implementing the Command Pattern
Undo Operations
Composite Commands (a.​k.​a.​Macros)
Functional Command
Queries and Command-Query Separation
Summary
Chapter 16:​Interpreter
Numeric Expression Evaluator
Lexing
Parsing
Using Lexer and Parser
Interpretation in the Functional Paradigm
Summary
Chapter 17:​Iterator
Array-Backed Properties
Let’s Make an Iterator
Improved Iteration
Iterator Adapter
Summary
Chapter 18:​Mediator
Chat Room
Mediator with Events
Introduction to MediatR
Summary
Chapter 19:​Memento
Bank Account
Undo and Redo
Using Memento for Interop
Summary
Chapter 20:​Null Object
Scenario
Intrusive Approaches
Null Object Virtual Proxy
Null Object
Dynamic Null Object
Summary
Chapter 21:​Observer
Observer
Weak Event Pattern
Event Streams
Property Observers
Basic Change Notification
Bidirectional Bindings
Property Dependencies
Views
Observable Collections
Observable LINQ
Declarative Subscriptions in Autofac
Summary
Chapter 22:​State
State-Driven State Transitions
Handmade State Machine
Switch-Based State Machine
Encoding Transitions with Switch Expressions
State Machines with Stateless
Types, Actions, and Ignoring Transitions
Reentrancy Again
Hierarchical States
More Features
Summary
Chapter 23:​Strategy
Dynamic Strategy
Static Strategy
Equality and Comparison Strategies
Functional Strategy
Summary
Chapter 24:​Template Method
Game Simulation
Functional Template Method
Summary
Chapter 25:​Visitor
Intrusive Visitor
Reflective Printer
Extension Methods?​
Functional Reflective Visitor
Improvements
What Is Dispatch?​
Dynamic Visitor
Classic Visitor
Implementing an Additional Visitor
Acyclic Visitor
Functional Visitor
Summary
Index
About the Author
Dmitri Nesteruk
is a quantitative analyst, developer, course and book author, and an
occasional conference speaker. His interests lie in software
development and integration practices in the areas of computation,
quantitative finance, and algorithmic trading. His technological
interests include C# and C++ programming as well as high-performance
computing using technologies such as CUDA and FPGAs. He has been a
C# MVP from 2009 to 2018.
About the Technical Reviewer
Adam Gladstone
has over 20 years of experience in investment banking, building
software mostly in C++ and C#. For the last couple of years, he has been
developing data science and machine learning skills, particularly in
Python and R after completing a degree in Maths and Statistics. He
currently works at Virtu Financial in Madrid as an Analyst Programmer.
In his free time, he develops tools for NLP.
Footnotes
1 Dmitri Nesteruk, Design Patterns in Modern C++ (New York, NY: Apress, 2017).

2 Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns:
Elements of Reusable Object-Oriented Software (Reading, MA: Addison Wesley, 1994).
Part I
Introduction
© Dmitri Nesteruk 2020
D. Nesteruk, Design Patterns in .NET Core 3
https://doi.org/10.1007/978-1-4842-6180-4_1

1. The SOLID Design Principles


Dmitri Nesteruk1
(1) St. Petersburg, c.St-Petersburg, Russia

SOLID is an acronym which stands for the following design principles (and their
abbreviations):
Single Responsibility Principle (SRP)
Open-Closed Principle (OCP)
Liskov Substitution Principle (LSP)
Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
These principles were introduced by Robert C. Martin in the early 2000s – in
fact, they are just a selection of five principles out of dozens that are expressed in
Robert’s books and his blog. These five particular topics permeate the discussion of
patterns and software design in general, so, before we dive into design patterns (I
know you’re all eager), we’re going to do a brief recap of what the SOLID principles
are all about.

Single Responsibility Principle


Suppose you decide to keep a journal of your most intimate thoughts. The journal
has a title and a number of entries. You could model it as follows:

public class Journal


{
private readonly List<string> entries = new List<string>
();
// just a counter for total # of entries
private static int count = 0;
}

Now, you could add functionality for adding an entry to the journal, prefixed by
the entry’s ordinal number in the journal. You could also have functionality for
removing entries (implemented in a very crude way in the following). This is easy:
public void AddEntry(string text)
{
entries.Add($"{++count}: {text}");
}

public void RemoveEntry(int index)


{
entries.RemoveAt(index);
}
And the journal is now usable as

var j = new Journal();


j.AddEntry("I cried today.");
j.AddEntry("I ate a bug.");

It makes sense to have this method as part of the Journal class because adding
a journal entry is something the journal actually needs to do. It is the journal’s
responsibility to keep entries, so anything related to that is fair game.
Now, suppose you decide to make the journal persist by saving it to a file. You
add this code to the Journal class:

public void Save(string filename, bool overwrite = false)


{
File.WriteAllText(filename, ToString());
}

This approach is problematic. The journal’s responsibility is to keep journal


entries, not to write them to disk. If you add the persistence functionality to
Journal and similar classes, any change in the approach to persistence (say, you
decide to write to the cloud instead of disk) would require lots of tiny changes in
each of the affected classes.
I want to pause here and make a point: an architecture that leads you to having
to do lots of tiny changes in lots of classes is generally best avoided if possible. Now,
it really depends on the situation: if you’re renaming a symbol that’s being used in a
hundred places, I’d argue that’s generally OK because ReSharper, Rider, or whatever
IDE you use will actually let you perform a refactoring and have the change
propagate everywhere. But when you need to completely rework an interface…
well, that can become a very painful process!
We therefore state that persistence is a separate concern, one that is better
expressed in a separate class. We use the term Separation of Concerns (sadly, the
abbreviation SoC is already taken1) when talking about the general approach of
splitting code into separate classes by functionality. In the cases of persistence in
our example, we would externalize it like so:
public class PersistenceManager
{
public void SaveToFile(Journal journal, string filename,
bool overwrite = false)
{
if (overwrite || !File.Exists(filename))
File.WriteAllText(filename, journal.ToString());
}
}
And this is precisely what we mean by Single Responsibility: each class has only
one responsibility and therefore has only one reason to change. Journal would
need to change only if there’s something more that needs to be done with respect to
in-memory storage of entries; for example, you might want each entry prefixed by a
timestamp, so you would change the Add() method to do exactly that. On the other
hand, if you wanted to change the persistence mechanic, this would be changed in
PersistenceManager.
An extreme example of an anti-pattern2 which violates the SRP is called a God
Object. A God Object is a huge class that tries to handle as many concerns as
possible, becoming a monolithic monstrosity that is very difficult to work with.
Strictly speaking, you can take any system of any size and try to fit it into a single
class, but more often than not, you’d end up with an incomprehensible mess.
Luckily for us, God Objects are easy to recognize either visually or automatically
(just count the number of member functions), and thanks to continuous integration
and source control systems, the responsible developer can be quickly identified and
adequately punished.

Open-Closed Principle
Suppose we have an (entirely hypothetical) range of products in a database. Each
product has a color and size and is defined as follows:

public enum Color


{
Red, Green, Blue
}

public enum Size


{
Small, Medium, Large, Yuge
}

public class Product


{
public string Name;
public Color Color;
public Size Size;

public Product(string name, Color color, Size size)


{
// obvious things here
}
}
Now, we want to provide certain filtering capabilities for a given set of products.
We make a ProductFilter service class. To support filtering products by color,
we implement it as follows:

public class ProductFilter


{
public IEnumerable<Product> FilterByColor
(IEnumerable<Product> products, Color color)
{
foreach (var p in products)
if (p.Color == color)
yield return p;
}
}

Our current approach of filtering items by color is all well and good, though of
course it could be greatly simplified with the use of Language Integrated Query
(LINQ). So, our code goes into production but, unfortunately, some time later, the
boss comes in and asks us to implement filtering by size, too. So we jump back into
ProductFilter.cs, add the following code, and recompile:

public IEnumerable<Product> FilterBySize


(IEnumerable<Product> products, Size size)
{
foreach (var p in products)
if (p.Size == size)
yield return p;
}

This feels like outright duplication, doesn’t it? Why don’t we just write a general
method that takes a predicate (i.e., a Predicate<T>)? Well, one reason could be
that different forms of filtering can be done in different ways: for example, some
record types might be indexed and need to be searched in a specific way; some data
types are amenable to search on a Graphics Processing Unit (GPU), while others are
not.
Furthermore, you might want to restrict the criteria one can filter on. For
example, if you look at Amazon or a similar online store, you are only allowed to
perform filtering on a finite set of criteria. Those criteria can be added or removed
by Amazon if they find that, say, sorting by number of reviews interferes with the
bottom line.
Okay, so our code goes into production but, once again, the boss comes back and
tells us that now there’s a need to search by both size and color. So what are we to
do but add another function?

public IEnumerable<Product> FilterBySizeAndColor(


IEnumerable<Product> products,
Size size, Color color)
{
foreach (var p in products)
if (p.Size == size && p.Color == color)
yield return p;
}

What we want, from the preceding scenario, is to enforce the Open-Closed


Principle that states that a type is open for extension but closed for modification. In
other words, we want filtering that is extensible (perhaps in a different assembly)
without having to modify it (and recompiling something that already works and
may have been shipped to clients).
How can we achieve it? Well, first of all, we conceptually separate (SRP!) our
filtering process into two parts: a filter (a construct which takes all items and only
returns some) and a specification (a predicate to apply to a data element).
We can make a very simple definition of a specification interface:

public interface ISpecification<T>


{
bool IsSatisfied(T item);
}

In this interface, type T is whatever we choose it to be: it can certainly be a


Product, but it can also be something else. This makes the entire approach
reusable.
Next up, we need a way of filtering based on an ISpecification<T>; this is
done by defining, you guessed it, an IFilter<T>:

public interface IFilter<T>


{
IEnumerable<T> Filter(IEnumerable<T> items,
ISpecification<T> spec);
}
Again, all we are doing is specifying the signature for a method called
Filter() which takes all the items and a specification and returns only those
items that conform to the specification.
Based on the preceding data, the implementation of an improved filter is really
simple:

public class BetterFilter : IFilter<Product>


{
public IEnumerable<Product> Filter(IEnumerable<Product>
items,
ISpecification<Product>
spec)
{
foreach (var i in items)
if (spec.IsSatisfied(i))
yield return i;
}
}

Again, you can think of an ISpecification<T> that’s being passed in as a


strongly typed equivalent of a Predicate<T> that has a finite set of concrete
implementations suitable for the problem domain.
Now, here’s the easy part. To make a color filter, you make a
ColorSpecification:

public class ColorSpecification : ISpecification<Product>


{
private Color color;

public ColorSpecification(Color color)


{
this.color = color;
}

public bool IsSatisfied(Product p)


{
return p.Color == color;
}
}

Armed with this specification, and given a list of products, we can now filter
them as follows:

var apple = new Product("Apple", Color.Green, Size.Small);


var tree = new Product("Tree", Color.Green, Size.Large);
var house = new Product("House", Color.Blue, Size.Large);

Product[] products = {apple, tree, house};

var pf = new ProductFilter();


WriteLine("Green products:");
foreach (var p in pf.FilterByColor(products, Color.Green))
WriteLine($" - {p.Name} is green");
The preceding code gets us “Apple” and “Tree” because they are both green.
Now, the only thing we haven’t implemented so far is searching for size and color
(or, indeed, explained how you would search for size or color, or mix different
criteria). The answer is that you simply make a combinator . For example, for the
logical AND, you can make it as follows:

public class AndSpecification<T> : ISpecification<T>


{
private readonly ISpecification<T> first, second;

public AndSpecification(ISpecification<T> first,


ISpecification<T> second)
{
this.first = first;
this.second = second;
}

public override bool IsSatisfied(T t)


{
return first.IsSatisfied(t) && second.IsSatisfied(t);
}
}

And now, you are free to create composite conditions on the basis of simpler
ISpecifications. Reusing the green specification we made earlier, finding
something green and big is now as simple as

foreach (var p in bf.Filter(products,


new AndSpecification<Product>(
new ColorSpecification(Color.Green),
new SizeSpecification(Size.Large))))
{
WriteLine($"{p.Name} is large and green");
}
Another Random Scribd Document
with Unrelated Content
“It is interesting to note that all that we are, all that we see, has
been produced by laws acting around us. These laws, taken in the
largest sense, being Growth with Reproduction; Inheritance, which is
almost implied by reproduction; Variability from the indirect and
direct action of the conditions of life, and from use and disuse; a
Ratio of Increase so high as to lead to a Struggle for Life, and as a
consequence to Natural Selection, entailing Divergence of Character
and the Extinction of less-improved forms. Thus, from the war of
nature, from famine and death, the most exalted object which we
are capable of conceiving, namely, the production of the higher
animals, directly follows.”[16]
And again: “There is grandeur in this view of life, with its several
powers, having been originally breathed by the Creator into a few
forms or into one.”[16] “Man may be excused for feeling some pride at
having risen, though not through his own exertions, to the very
summit of the organic scale; and the fact of his having thus risen,
instead of having been aboriginally placed there, may give him
hopes for a still higher destiny in the distant future.”[17] “In the future
I see open fields for far more important researches. Psychology will
be securely based on newly laid down foundations; that of the
necessary acquirement of each mental power and capacity by
gradation. Much light will be thrown on the origin of man and his
history.”[18]
Again elsewhere: “The moral sense or conscience, as Mackintosh
remarks, has a rightful supremacy over every other principle of
human action. It is summed up in that short but imperious word
ought,” and Darwin proceeds to quote Kant’s apostrophe as follows:
“Duty! wondrous thought, that workest neither by fond insinuation,
flattery, nor by any threat, but merely by holding up thy naked law in
the soul, and so extorting for thyself always reverence, if not always
obedience; before whom all appetites are dumb, however secretly
they rebel. Duty! whence thy original?”[19]
Darwin continues: “This great question, ‘Whence thy origin?’ has
been discussed by many writers of consummate ability; and my sole
excuse for touching on it is ... that, as far as I know, no one has
approached it exclusively from the side of natural history.”[20]
“But as the feelings of love and sympathy and the power of self-
command become strengthened by habit, and as the power of
reasoning becomes clearer, so that man can appreciate the justice of
the judgments of his fellow-men, he will feel himself impelled,
independently of any pleasure or pain felt at the moment, to risk his
life for his fellow-creature, or to sacrifice himself for any great cause.
He may then say, I am the supreme judge of my own conduct, and,
in the words of Kant, I will not in my own person violate the dignity
of humanity.”[21]
The warmest admirers of Darwin wish that he had expressed himself
more definitely. Some amongst them are astonished to find the word
“Creator” in certain editions of the Origin of Species, and not in all;
others have drawn attention to the fact that Darwin could say in all
good faith, “I see no good reason why the views given in this
volume should shock the religious feelings of any one.”[22] Darwin’s
line of thought has perhaps not been perfectly grasped, and his
commentators have been numerous. This, however, is certain. From
the moment when the author of the Descent of Man considered that
he had discovered in social instincts the first germ of the idea of
duty, it becomes a matter for surprise that he yielded to the desire
of referring to Kant and of quoting his apostrophe to Duty. But it is
quite evident that Darwin did not see in the universe only the
fortuitous result of a combination of matter; he admitted the
existence of a law acting from the beginning and continuing to act.
In order the better to grasp his thought, it is necessary to be in a
position to define his terms. He speaks of natural selection, but in
ordinary parlance selection presupposes the existence of distinction
and judgment; and to distinguish and choose, intelligence is
necessary; and if the essential nature is intelligent, what is this
nature?
The endeavour to prove that man has descended from a creature
not originally man has deeply stirred our generation, and the greater
number amongst us only yielded to a natural repugnance in
repulsing the idea with indignation. However, because this inward
feeling tells us that a proposition is false, it does not necessarily
follow that it is so; in looking at it more closely, we have to admit
that many humiliating facts are accepted by us without demur. We
are not scandalised at the notion of being composed of the same
chemical elements as the inferior animals, nor do we revolt against
the injustice of the circumstances and restraints imposed upon all by
the facts of birth and death; but this unreasoning submission has no
more rational basis than the revolt of our feelings, in presence of the
assumption, that an animal only was our ancestor. The notion that
animals so dissimilar as the monkey, the elephant, the bird, fish, and
man could have proceeded from the same parentage seems too
monstrous to be true; from the scientific point of view this feeling is
of no value; in the face of all the assertions of our moral convictions
science, as such, remains immovable; the only weapon admitted in a
scientific encounter is fact opposed to fact, argument to argument.
Moreover, any appeals which can be made to our pride, our dignity,
our piety, would be equally wide of the mark, so long as proof is
lacking that man possesses something which has no existence in
lower animals either actually or potentially.
It is a matter for regret to have to acknowledge the fact that the
union of a profound knowledge, combined with true sincerity in
research, is insufficient to endow the world with a well established
truth. The world is too hasty in accepting or rejecting a new system
before giving itself the trouble to divide the system into two parts,
one of which can be placed at once amongst evident truths, whilst
the other must be subjected to minute investigation and close
testing. Precisely after this manner does Darwin’s work lend itself to
a division into two parts, the former is the history of the formation
and gradual development of the organic world, represented by
plants and animals, including man (The Origin of Species), but it is
also the history of the formation and gradual development of man
considered as a being composed of body and spirit (Descent of
Man). In the author’s mind this portion of the subject is closely
connected with the former.
At first sight it would appear that a tribunal, which was quick to
distinguish truth from error in this teaching, had not been found.
Certainly scientific materialism has no voice in the matter, since its
mission is only to deal with material and actual facts; and when from
the facts accumulated conclusions are deduced as applied to origins,
this would be out of its sphere, and the conclusions reached can
only be arbitrary; thus Darwin’s theory not being found free from the
taint of idealism, it was condemned without trial. Religious
dogmatism did not show itself any more capable of deciding the
question, for this dogmatism, whose domain is faith, considered that
due reference was not made to Divine intervention, and concluded
that the theory was only judged by the light of science, and thus
condemned it unheard. But all condemnation, which cannot prove
itself to be just, has no scientific value, only one tribunal is
competent of judging and solving the question, and that is the
science of language, it alone possesses documentary evidence. The
exact point at which the animal ceases and man begins can be
determined with precision since it coincides with the beginning of
the “Radical Period” of language, and language is reason.
CHAPTER II
OUR ARYAN ANCESTORS

Some of the studies undertaken and carried on in a tentative groping


fashion, with the purpose of ascertaining the nature of that complex
being man, have been placed before you. I have mentioned the
more or less fantastic suppositions set forth on the subject, and I
have dwelt rather more fully on a recent system, of which the
fundamental portion (a magnificent scientific monument, to which
experimental tests have given a solid basis) is followed by a second
part which treats especially of the descent of man. The time has
now come to examine the studies of a school of philosophy, which,
guided by a new theory, searches in the past, and passes under
review all previous conceptions, suppositions, or even
misconceptions of the previous schools.
The science of language, based on the close connection between
thought and speech, only dates back to the beginning of the
nineteenth century. The first problem presented to it is that of origin
—the origin of thought and speech in man—which two united in
their essential parts, make man what he is. The means by which this
science works is called comparative philology; it is by the analysis of
languages—living as well as dead—that it seeks to discover the
infancy of human thought. It is evident that in order to penetrate
thus deeply, this analysis must follow the whole progress of speech
since it first sounded; to no other school of philosophy had this idea
occurred; all others ignored the fact that previous to the
commencement of human language, no vestige of humanity could
exist; therefore, probably, another fact had been ignored; that the
only archives in which it is possible to study the history of humanity
and the development of reason are those of language.
Wherever sacred writings exist, we find in them the most ancient
languages of the people who possess them; this is the case in
Persia, China, Palestine, Arabia, and India; thus it is in these writings
which are looked upon as being divinely inspired, that search must
be made for the genesis of the successive thought of these peoples.
But these ancient writings differ widely the one from the other; for
the most part they contain ideas which are the product of various
ages; often also, as in Greece, and Rome and Persia, we find
ourselves confronted by thoughts or theories which had already
arrived at a high degree of development, or are beginning to lose
their first clearness. Only amongst the Hindoos is it possible to follow
step by step the growth of the conception, and the transformation of
the names which clothe them. The Vedas show us more clearly than
any other literary monument in the world, the uninterrupted course
of the evolution of language and thought from the first word
pronounced by our ancestors to our own most recent reflection.
India does not possess remains of ancient temples nor of ancient
palaces. Edifices of this kind were probably unknown before the
invasion of Alexander. The Hindoos have always felt themselves
strangers in the land, and the constant efforts of the kings of Egypt
and of Babylon to perpetuate their names during thousands of
years, by means of bricks and blocks of stone, did not occur to them
until suggested by foreigners. But on the other hand, from the most
remote times, they have possessed sacred writings, and they still
preserve them in their ancient form. The number of separate works
in Sanscrit of which the manuscripts are still in existence is now
estimated at more than ten thousand. What would Plato and
Aristotle have said, had they been told that there existed in that
India which Alexander had just discovered—if not conquered—an
ancient literature, far richer than anything they possessed at that
time in Greece, and dating back so far that the old Sanscrit which
clothed the religious and philosophical thought of these early
inhabitants was a dead language. This literature has not ceased to
increase, and contains the canonical books of the three principal
religions of the ancient world; the Zend-Avesta, the sacred books of
the Magians, written in Zend, the ancient Persian; the Tripitaka, the
sacred books of the Buddhists, which contain moral treatises,
dogmatic philosophy, and metaphysics; and the sacred writings of
the Brahmans called the Vedas.
It would be difficult to say whether the Old Testament, or certain
portions of the Vedas, have existed for the greater number of
centuries; it is certain that the Aryan race had no existence previous
to the Vedas. The name Veda signifies “knowing, or knowledge”;
veda, Greek οἰδα, is a verb with the same meaning in Sanscrit as in
Greek, “I know.” The book of the Vedas contains an epitome of the
most ancient Brahmanic science, and is composed of four collections
of hymns; that which is called Rig-Veda (hymns of praise) is the true
Veda, and the other Vedas are to the Rig-Veda what the Talmud is to
the Bible. The Rig-Veda, which for more than three thousand years
had laid the foundations of the moral and religious life of
innumerable millions of human creatures had never been published
until Max Müller put forth a complete edition, accompanied by
authorised commentaries on Indian theology.
The composition of these hymns occupied many centuries, and in
600 B.C. the collection seems to have been complete. Some early
treatises on these hymns tell us that at this date the theological
schools had accomplished a great undertaking, that of counting
every verse, every word, every syllable of the hymns; the number of
syllables is 432,000, the number of words 153,826, and the number
of verses as computed in these treatises varies from 10,402 to
10,622. Until the introduction of writing, the Vedic hymns were
entirely preserved by memory, with such accuracy and fidelity that
the rules contained in the treatise for the repetitions correspond with
great exactness with the actual text, its accents, metre, and the
divinity it praises. The Rig-Veda now forms the foundation of all
philological and mythological studies, as well as those connected
with the science and growth of religion; without it we should never
have obtained any insight into the belief of our ancestors.
We will now transport ourselves to the cradle of the Aryas “Noble,”
according to some writers situated on the Asiatic continent,
according to others more to the north, between the Baltic and the
Caspian seas. This will suffice for the first stage; I shall make few
demands on history, or on grammar.
There was a time when the great mass of the Aryan people was
hesitating on the eve of abandoning their early habitations, previous
to a dispersion in two directions. This people was composed of two
branches, the tribes of the north, and those of the south; the former
went towards the north-west of Asia and Europe; here they
established themselves, and the great historical nations—historical,
since most of them have played noted parts amongst the nations—
the Celts, Grecians, Romans, Germans and Slavs were their
descendants. Endowed with every aptitude for an active life, they
fostered these capabilities to the highest degree; society was
founded by them, morals brought to a greater perfection, the
foundation of science and art established, and the principles of
philosophy laid down. Although constantly in conflict with the
Semitic and Turanian races, these Aryans became in their
descendants the masters of the world. Whilst the northern division
followed a north-westerly direction, the southern went to the
mountains lying to the north of India; crossing the passes of the
Himalayas, and following the long watercourses, they descended
into the vast fertile valleys, and from that time India became as their
own land. These pleasant dwelling-places of the Aryan colonists,
protected on the one side by high mountains, and on the other by
the ocean from all foreign invasions, were not disturbed by any of
the ancient conquerors of the world; around them kingdoms rose
and fell, dynasties were created and became extinct, but the inner
life of the tribes remained undisturbed by these events. The ancient
Hindoos were calm, contemplative dreamers, a nation of
philosophers, who could only conceive of disputes in themselves, in
their own thoughts; the transcendental nature of the atmosphere in
which his ideas worked, and in which the Hindoo lived, could not fail
to retard the development of practical, social, and political virtues,
and the appreciation of the beautiful and useful. The Hindoo saw
nothing in the past but the mystery of the Creation, in the future but
the mystery of his destiny; the present offered nothing to him that
could awaken physical activity, and apparently had no reality for him;
no people ever existed who believed more firmly in a future life, or
who occupied themselves less with this one; such as they were in
the beginning, such they remained. The only sphere in which the
Indian mind moves freely is the sphere of religion and that of
philosophy. In no other part of the world have metaphysical ideas
taken such deep root as in India; the forms in which these ideas
were clothed, in epochs of varying culture, and in the midst of divers
classes of society, were alternately those of the grossest superstition
and of the most exalted spiritualism.
It has been asserted that in these two Aryan branches must we look
for our ancestors. How shall we verify the truth of this assertion?
What family likeness must we seek in order to recognise the
relationship? How feel certain that the languages we speak have
been derived from them? “If we knew nothing of the existence of
Latin—if no historical documents existed to tell us of the Roman
empire—a mere comparison of the six Romance dialects would
enable us to say that at some time there must have been a language
from which all these modern dialects derived their origin in
common.”[23]
Let us conjugate the verb to be in Italian, Spanish, Portuguese,
French, Walachian, and in Rhætian, and we shall see that it is clear:
first, that all are but varieties of one common type: secondly, that it
is impossible to consider any one of these six dialects as the original
from which the others had been borrowed, since no single one
contains the elements composing them. “If we find such forms as
j’ai aimé, we can explain them by a mere reference to the
grammatical materials which French has still at its command, and
the same may be said of j’aimerai, i.e. je-aimer-ai, I have to love, I
shall love. But a change from je suis to tu es is inexplicable by the
light of French grammar; it must have been a part of some language
antecedent to any of the Romance dialects; it is, in fact, the verb to
be in Latin, which solves this difficulty; each of the six paradigms is
but a metamorphosis of the Latin.”[24]
It was known that the roots were the same in all the Aryan
languages, that the same grammatical changes were common in
many of the words in everyday use, such as father, mother, heaven,
sun, moon, horse, and cow, as well as in the principal numbers; but
it was the study of Sanscrit in its primitive form which first led the
learned to the discovery of the reason of the vowel changes in
certain words in use in our day, and which changes the English word
to wit, to know, into I wot, I know, and the German ich weise into
wir wissen; these changes are the result of a general law, the
application of which can nowhere be more clearly appreciated than
in the Vedic Sanscrit, and which was unknown until this language
was studied in the Veda. (I will here note that Sanscrit not being the
original from which the other Aryan dialects have their being, but an
elder brother, when Max Müller makes use of a Sanscrit phrase he
does it to give an idea of the process through which the language
has passed which he considers preceded Sanscrit.)
There is another list of paradigms which, under a less familiar aspect
than the first, presents the same phenomenon. Conjugate the verb
to be in Doric, Latin, old Slav, Sanscrit, Celtic, Lithuanian, Zend,
Gothic, and Armenian, and you will see that the nine are varieties of
one common type, and that it is impossible to consider any one of
them as the original of the others, since, here again, none of the
languages possess the grammatical material out of which these
forms could have been framed. Sanscrit cannot have been the
source from which the rest were derived, since Greek, in several
instances, has retained a more organic form than the Sanscrit. Nor
can Greek be considered as the earliest language from which the
others were derived, for not even Latin could be called the daughter
of Greek, since Latin has preserved certain forms more primitive
than the Greek. Hence all these nine dialects point to some more
ancient language, which was to them what Latin was to the
Romance dialects; only at that early period there was no literature to
preserve to us any remnant of that mother-tongue that died in
giving birth to all the modern Aryan dialects.[25]
There is one fact to be noted. If a comparison be made of the verb
to be in these dialects, it will be seen that Sanscrit is no more
distinct from the Greek of Homer, or from the Gothic of Ulfilas, or
from the Anglo-Saxon of Alfred, than the Romance dialects from
each other; that, in fact, the resemblance is more striking between
Sanscrit and Lithuanian, and between Sanscrit and Russian, than
between French and Italian. This circumstance proves that all the
essential grammatical forms of these languages had been fully
framed and established before the first separation of the Aryan
family took place, that is to say, at a time before there were any
Grecians to speak Greek, or any Brahmans to invoke God’s name in
Sanscrit.
The science of comparative philology enables us to have glimpses of
the social condition of our Aryan ancestors before they left their first
abode. All historical documents of this period are lacking, for the
simple reason that the time of which we are speaking is anterior to
any historical records; “but comparative philology has placed in our
hands a telescope of such power that where formerly we could see
but nebulous clouds we now discover distinct forms and outlines.”[26]
We see that our ancestors were no savages, but agricultural
nomads, that they laboured, made roads, possessed the art of
weaving and sewing; they built towns, kept domestic animals, lived
under a kingly government, and counted at least up to one hundred.
We learn this not only from the words father, mother, son, daughter,
heaven, earth, but also from house, town, king, dog, cow, hatchet,
and many others, which are found to be the same in the German,
Celtic, Slavonic, Greek, Latin, and Sanscrit. They are the same
because they all point to some more ancient language, the mother-
tongue in use before the separation of the various Aryan tribes.
From this period the other words also date, expressing all the
degrees of relationship, even those by alliance, thus giving clear
proof of the early organisation of family life.
At the same time a decimal system of numeration also existed, the
numbers from one to a hundred, “in itself one of the most
marvellous achievements of the human mind, produced from an
abstract conception of quantity, regulated by a spirit of philosophical
classification, and yet conceived, matured and finished before the
soil of Europe was trodden by Greek, Roman, Slav, or Teuton. Such a
system could only have been formed by a very small community, in
which by the help of a tacit agreement, each number could only
bear one signification. If we were suddenly obliged to invent new
names for one, two and three we should quickly feel the great
difficulty of the task; to supply new names for material objects
would be comparatively easy, as these have different attributes
which could be used in their designation; we could call the sea, the
salt water; and the rain, the water of heaven; numbers are,
however, such abstract conceptions that it would be foolish to
attempt to find in them palpable attributes, and thus give expression
to a merely quantitative idea.”[27]
Since the names of the Aryan numbers up to one hundred are the
same, it proves that they date from a time when our ancestors lived
under circumscribed conditions united by common ties. This is not so
with the word thousand; the names for thousand differ in German
and Slavonic, because they have their rise after the dispersion of the
race. Sanscrit and Zend share the name for thousand, which proves
the union of the ancestors of the Brahmans and Zoroastrians—after
their exodus—by the ties of a common language.
In this way the facts of language—which are so simple that a child
could seize them—enable us to travel from the known to the
unknown, and prove our descent from the once small family of the
Aryas.
Man in the abstract has been studied for long years. Max Müller
contemplates this abstraction in the Aryan man; this has not
previously been attempted. Certainly we Aryans of to-day differ
greatly from our first parents, but not in toto; the ties which connect
us have not been severed, and he it is—our Aryan ancestor—who
will help us to understand how we are verily the children of our
fathers.
CHAPTER III
THE PHILOSOPHY OF LANGUAGE

It is possible to distinguish in ourselves four things: sensation,


perception, conception, and the signs by means of which we
designate objects, that is their names; these enable us to separate
the one from the other. We must not imagine that these four exist as
separate entities, “no words are possible without concepts, no
concepts without percepts, no percepts without sensations.”[28]—
Science of Thought, p. 2.
These four constituent elements of thought are merely four different
phases in the growth of what we call our mind.
I employ these terms because they are in use in philosophical
language; there are also many others constantly on the lips of
philosophers, some of them newly coined. This is greatly to be
regretted, as much of our confusion of thought arises from this
superabundance of philosophical terms. If such words as impression,
sensation, perception, intuition, presentation, conception, soul,
reason, and many others could for a time be banished from our
philosophical dictionaries, and some only readmitted after they had
undergone a thorough purification and were made to return to their
primitive signification, an immense service would have been
rendered to mental science; as every writer defines them as he will,
or uses them without definition; and he seems to imagine that
because there are so many words, there must also be so many
variations, “Because in the German language there are two words:
verstand and vernunft, both originally expressing the same thing,
the greatest efforts have been made to show that there is something
to be called verstand, totally different from what is called vernunft;
and as there is a vernunft by the side of a verstand in German,
English philosophers have been most anxious to introduce the same
distinction between understanding and reason into English”;[29] and
“because we have a name for impression, and another for
sensations, we are led to imagine that impressions do actually exist
by the side of sensations. But what was originally meant by
impression was not something beside sensation, but rather one side
of sensation, namely, the passive side, which may be spoken of by
itself, but which in every real sensation is inseparable from its active
side.”[30]
All the various shades and developments of sensation were
doubtless distinguished and named for some very useful purpose;
but the inconvenience was great when the terms became too
numerous. “We may safely enjoy the wealth of language
accumulated by a long line of thinkers, if only we take care not to
accept a coin for more or less than it is really worth. We must weigh
our words as the ancients often weighed their coins, and not be
deceived by their current value.”[31] When we have bravely resolved
to throw away superfluous words, we need not imagine that we are
the poorer, since we have only lost what we, in reality, never
possessed. So powerful, however, is the action of words on
thoughts, that as soon as we throw away a word, we feel ourselves
to have been robbed of the thing itself; the sun rises just the same,
though we say now that it does not rise. Those things which we call
mind, intellect, reason, memory, in fact the soul, have no existence
as such—that is apart from ourselves. This assertion may sound very
terrible to those philosophers who imagine that the dignity of man
consists in the possession of these and other powers; at last there
arises a complete mythology, a philosophic polytheism, when these
are spoken of as distinct possessions, independent powers, with
limits not very sharply defined; and however orthodox that
polytheism has become, it is never too late to protest against it. In
making use of these terms it should be understood that they
represent certain modes of action and phases of the Ego.
It is to be regretted that our modern languages have nothing to
replace the word “mind,” such as there is in the Sanscrit language,
meaning “working within.” As soon as we speak of mind we cannot
help thinking of an independent something dwelling in our body,
whereas by mind I mean nothing but that working which is going on
within, embracing sensation, perception, conception, and naming,
and the worker who accomplishes this is the Ego.
Thus the Ego means nothing but consciousness of itself.
There is one word which it would be desirable to reintroduce into
our philosophical phraseology and that is Logos; it means the word
and the thought combined. Logos is a single intellectual act under
two aspects; it is an untranslatable word. We were told at school
that it was strange that the Greeks should not have distinguished
between Logos Speech and Logos Reason, and it was represented as
a progress toward clearer thought that later writers should have
distinguished between Logos the spoken word and Logos the inner
thought.
But the Greeks were right: no doubt it may be an advantage to be
able to distinguish between two sides of the same thing, but that
advantage is more than neutralised if such distinction leads us to
suppose that these two sides are two different things. Let us avoid
the very common error that things which can be distinguished can
therefore claim an independent existence; we can distinguish
between an orange and its peel, but no orange can grow without
peel, nor peel without the fruit.
Let it not be supposed that I am such a bigoted upholder of the
unity of the Ego as to wish to see all these names banished from our
philosophical dictionaries. Let us use the word Sense when speaking
of the Ego as perceiving. Let us use Intellect when the Ego is simply
conceiving; and the word language when it is speaking; let us even
use the word memory when we wish to speak of the partial
permanence of the work done by sensation, perception, and
conception; and let us use Reason or Reasoning for the process
which produces what the logicians call propositions and syllogisms;
but let us never forget that neither to remember nor to reason
implies the possession of a thing called reason or memory. All our
mental life will remain just the same though we deny the existence
of the terms which obscure our vision; let us hold fast to the
existence of the Ego, it exists in its entity, it only is the worker, and it
receives its highest expression in the Logos.
This truth, that thought and language are inseparable, that thought
without language is as impossible as language without thought has
only recently been affirmed by comparative philologists. Many
learned writers are still unwilling to admit that ideas without words
are impossible though at the same time they are quite willing to
concede that words are impossible without concepts.[32]
We possess an immense number of books on logic, yet we are met
everywhere by the same vagueness on this subject. John Stuart Mill
speaks of language as one of the principal elements or helps of
thought, but he never mentions any other instruments. This lack is
probably owing to the unfortunate influence of modern languages
which have two words, the one for language, the other for thought;
this gives the impression that there is a substantial instead of an
apparent difference between the two; it is also owing to the dislike
of philosophers to allow that all which is most lofty, most spiritual in
us should be dependent on such miserable crutches as words are
supposed to be. Yet it is evident that we cannot advance one step
towards philosophy without acknowledging the fact that we think in
words and words only. This thought would be less difficult to grasp if
we defined clearly what are thoughts. Sensation, pain, pleasure,
dreaming, or willing cannot be called true thought, but variations of
inward activity; in the same way as shrieks, howls, or even the
sounds of real words, taken from a foreign language, are no more
language than our emotions are thoughts. The word Logos
expresses this, since it had originally the two meanings of gathering
and combining, and so became the proper name of all that we call
reason; but as it also means language, it tells us that the process of
gathering and combining, which begins with sensation and passes
on to perception and conception, reaches its full perfection only
when the inward activity takes form in the Logos or speech.
Language therefore is not as has been often imagined, thought plus
sound; but thought is really language minus sound; words are the
external symbols of thought, sounding symbols when we articulate
in a loud voice, but mute when we confine ourselves to merely
thinking them, since it is a fact that we think in words, and it is not
possible to think otherwise. The possession of a language is shown
even in the tracing of whole sentences by ideographic signs, which
need not be pronounced at all, or as in the astronomical signs in our
almanacks which may be pronounced differently in different
languages: or we may substitute algebraic signs for words; we could
as well calculate without numbers as apply our reason without words
I have freely and fully admitted that thoughts may exist without
words, because other signs may take the place of words between
persons speaking different languages possibly between deaf and
dumb people. Five fingers held up are quite sufficient to convey the
concept of five, thus the hand may become the sign for five, both
hands for ten, hands and feet for twenty. In America and Australia
where many dialects are spoken this method has attained a great
degree of perfection, but we notice that in all cases under review
each one thinks in his own language and then translates his thought
into pantomime.
A final fact adduced against the theory that it is impossible to think
without language, which was very popular, is that deaf and dumb
people cannot speak, and yet can think; this argument has no great
value, as it is now averred that “a man born dumb who had always
lived among deaf and dumb people, and had not been taught to
express thoughts by signs would be capable of few higher
intellectual manifestations than a monkey or an elephant; and this in
spite of the fact that no naturalist could distinguish any difference
between the size of their brains and those belonging to men who
could speak.” For deaf mutes to be able to think and reason, they
must have learned from those who use words, then only can they
substitute other signs for their words and concepts. Still Professor
Huxley accords to these unfortunate men certain intellectual
heritages derived from their parents.
These are some of the chief points in the science of language. The
fundamental law which this science lays down of the unity of
thought and speech is a torch which may throw light on the origin of
man.
CHAPTER IV
ANIMALS

Whilst philosophers and moralists have studied men, and naturalists


animals, Darwin considered it necessary to collect information
concerning both men and beasts simultaneously before making a
biography of the human being. With the modesty so often
characteristic of a great genius, the English naturalist acknowledges
that “many of the views which have been advanced are highly
speculative, and some no doubt will prove erroneous. False facts are
highly injurious to the progress of science, for they often long
endure; but false views, if supported by some evidence, do little
harm, as everyone takes a salutary pleasure in proving their
falseness; and when this is done, one path towards error is closed
and the road to truth is often at the same time opened.”[33]
Although there is no doubt that the facts observed by Darwin and
recorded in the Origin of Species, are perfectly correct, I hope to be
able to dispose of the opinion that “man and animals follow parallel
lines in their lives, but that man advances more quickly, and has
taken his place in the front rank.”
Whilst making a short résumé of remarks which Noiré and other
learned writers have made on animals, I also propose to draw a
comparison between the two who are so closely connected—the
superior and inferior animal.
Darwin was not alone in his endeavour to prove that there exists no
essential difference between man and beast; some have even
asserted that the intelligence of certain animals is not only equal to,
but at times, superior to that of man. We must be on our guard,
however, against those numerous anecdotes which have led even
philosophers astray; we will also divest our minds of prejudice and
preconceived notions, that we may introduce some order into ideas
which have been disturbed by superficial observers and the makers
of false systems, those enemies of true science; let us candidly own
the smallness of our knowledge concerning the mind of an animal;
we do not in the least know how they philosophise, nor how an ox
recognises his stable door. Instead of having recourse to animals and
seeking to draw parallels between their mental faculties and ours, let
us examine ourselves to find out what passes in our own minds. We
shall then discover that we never in reality perceive anything unless
we can distinguish it from other things by means, if not of a word,
yet of a sign; that is till we have passed through the four stages of
sensation, perception, conception, and more important than all, for
our present purpose, of naming. When it is once acknowledged that
concepts are impossible without words, and that man alone amongst
organised beings possesses the power of language, and that the
mental faculties of animals are different from ours in kind, and not
only in degree, it naturally follows that a genealogical descent of
man from animals is an impossible assumption.
Formerly, in comparing the characteristics of man and animals it was
contended that the latter were ruled by instinct in place of the
reason which was the attribute of the former; and although an
affirmation is not an explanation it appeared sufficiently plausible
and was accepted. But the fact is that both man and beast possess
instinct. If the spider weaves his net by instinct, a child takes his
mother’s breast also by instinct; both are with regard to instinct at
one level. Man involuntarily extends his arm to protect himself if he
suddenly perceives an object near him on the point of striking him.
“If we tear a spider’s web, and watch the spider first run from it in
despair, then return and examine the mischief and endeavour to
mend it. Surely we have the instinct of weaving controlled by
observation, by comparison, by reflection, and by judgment.”[34]
No one has hitherto succeeded in explaining and analysing the
instinct said to be in animals. Cuvier[35] and other naturalists have
compared it with habit.[36] This comparison gives an accurate notion
of the frame of mind under which an instinctive action is performed,
but does not necessarily explain its origin.
As reason develops in man, instinct plays a less important part;
whereas a cat chases a mouse, a bird flies, and fish swim by instinct
from their birth to their last day; and the actions of ants, bees, and
moles, do not cease to amaze us, because they are inseparable from
their structure and their vital functions. The natural impulses which
guide birds and insects in making their nests, hives, and
storehouses, cocoons of silk with which they have so enriched our
world and theirs, are the results of constant and repeated acts,
during the course of innumerable generations. The fact of not
distinguishing the instinct which is in man from that found in animals
and thus attributing man’s conscious acts to the natural leanings
which guide unconscious creatures, has perhaps caused Renan to
assert that the monotheistic tendency of the Semitic race belongs to
it by a religious instinct.
It is certain that impressions are received both by man and by
animals; with both the knowledge of objects proceeds from the
impressions made on the senses, thus transmitting the image to the
intelligence; but there the likeness ends; the capacities differ. The
animal remains the slave—in every sense of the word—of his
organs; the sight of a bone to gnaw, the corner in which he lies, the
signs of friendship that he receives from human beings, call forth in
a dog a chain of feelings taking the place of the chain of ideas called
out in man.
Man’s capabilities of introducing intermediaries between the
intention and the fulfilment of his object witness to his wideness of
mind, his experience of the past and prevision of the future; all
those things that he owes to his power of imagination and
conception even in the case of things having no real existence, or
which do not exist as yet; he reproduces at will the outward likeness
of what is not at the moment before him. Thus man who names an
object, thinks it; but the animal from not possessing language
cannot think it and cannot reproduce it when out of its sight.
The use or non-use of tools creates a great gulf between man and
the brutes. The most intelligent animal, a monkey of a high order,
never uses a tool—even the most primitive—to accomplish his will;
no one can ascribe to the animal creative actions, that is, it does not
fashion an implement that it may attain another end; it has never
been known to carry an object from one spot to another that it
might act as a ladder to bring the animal nearer to the fruit it
desired to reach.
But this concession, I think, we may make to Darwin; that even in
the sphere of mental activities we can never entirely separate
ourselves from the brute creation. We experience in ourselves a
certain condition of mind, where fancies alternate with passing
agitation; these proceed from intense, but confused emotions. This
condition does not allow of clear explanation even to ourselves,
since it has nothing in common with true thought, which is
inseparable from the consciousness of objects, and therefore is
lacking in words with which to express itself. To Mendelssohn this
mental condition was perfectly known, and he says, “It is exactly at
that moment when language is impotent to express the experiences
of the soul, that the sphere of music opens to us; if all that passes in
us were capable of being expressed in words, I should write no more
music.”
A flock of birds about to migrate, all follow an unanimous impulse in
uttering at starting a few high clear notes, perhaps impelled by an
unknown motive, their inclinations and wills find collective
expression therein, by a mutual impulse which comes from
soundless depths of the life of the senses, carrying all before it. This
universal sympathy, however difficult to explain, is one of the
noblest possessions of the inferior animals; even the aptitude they
display for certain mechanical acts of labour does not stand on the
same level; but in the vocal manifestations of birds there is no
indication of true thought, the basis of real language.
Now come, my dog, for a tête-à-tête. It would be impossible to hold
converse with ants, bees, monkeys, moles, or birds, as I should not
acknowledge them as my compeers, I should not admit them as
intimates; but you I know well; and, let me tell you, your judges
have shown their impartiality towards you; none of the vices which
degrade us—your superiors—have been laid to your account. You
are called neither gourmand, thief, idler, nor hypocrite; but you lack
the qualities that might have been yours had you possessed the
faculty of combination. They say that you create nothing because
you fail to see what purpose tools may serve; and you are ignorant
of the fact that A. being given, B. must follow—such is combination.
Still, on looking closely, it is possible to discover amongst us—your
superiors—those who are stupid—or awkward—who take small
advantage of all the means put within their reach to recede from a
false position, to recover from the effects of a wrong step, or, what
is still more important, remedy their ignorance. Yes, there are many
such, and these also lack the faculty of combination.
Your judges also assert that from the want on your part of being
able to attach one idea to another, you do not think of your master
when he is absent from you. What ingratitude! But I wonder
whether those friends, who profess so much pleasure in my
company, think of me when I am absent; perhaps no more than you
do.
Let me continue my enquiries for a few minutes. We will suppose
that we two are in my study. I am occupied with a book, and am not
thinking of you at all. You are stretched at my feet with your nose
between your paws, watching a fly near you. I make a sudden
movement, you look at me, and at the same moment wag your
tail.... Am I to suppose that you wag it to hide your dislike to me?
The noble quality which I and all your superiors possess is lacking in
you; you have no speech for thought in which to tell me your love
for me; but if you could speak, that is, were like one of ourselves,
would you be as truthful as you are now, being only a dog that has
nothing but his tail with which to make his master understand his
feelings towards him? Schopenhauer ... but you know nothing of
Schopenhauer, if you could speak I should teach you to read, and
then you would know him. Schopenhauer is a great and learned
philosopher, who says, “How much this movement of the tail
surpasses in sincerity many other assurances of friendship and
devotion.”[37]
This is a long digression on Darwin’s idea that man and animals lead
parallel lives, but that the one progresses quickly, the other slowly. I
think I have shown that it is not a question of rapidity or tardiness of
progress, but rather whether both travellers are equally well
equipped with the means of passing the Rubicon.
CHAPTER V
PRIMITIVE HUMANITY

Some courage is required to attack the subject of comparative


philology as treated by certain learned authors; they are bold
enough to seek to transport themselves to an age of such remote
antiquity that history is silent on the subject, but in which a nascent
humanity endeavoured to find expression for its sensations in a
language which probably had no name.
When my attention was first attracted to the work of this school, so
long as my mind was content to skim over the surface of an
unknown world, so immeasurably distant from us, and whilst flitting
too rapidly over it to be able to distinguish any of its features, it
presented itself to me as a creation of my heated imagination. Since
then I have lived in that world of wonders, and I then grasped the
fact that it was quite possible for this world to have been a reality.
But to journey thither, even to live in this strange country, the only
path to which is by induction, in company with Max Müller and
Noiré, who, apparently, are its inhabitants, from the ease with which
they move in it, is a totally different matter from explaining the
methods of getting there, or describing the sojourn. I should have to
draw information from various sources, and the scientific and
hypothetical data connected therewith would require sorting and
rearranging to make them assimilate more easily; these would
present difficulties not readily surmounted.
How could a reasonable and speaking being come forth from that
which had no reason and no language?
The earliest traditions are silent on the manner of man’s acquisition
of his first ideas and his first words. But because a problem has not
been solved, that is no reason for the assertion that it is insoluble,
unless a refutation is at once demonstrable, as in the squaring of the
circle. “If every one had abstained from striving to penetrate hidden
things, no sciences would exist,” Noiré remarked. Newton might
have said: “The facts that a stone falls and the planets move are
known by actual experience, why search out the laws which produce
these phenomena?” And the theory of gravitation would have been
lacking. Lyell might have said: “We see that the crust of the earth is
composed of several strata, why reckon the time required for their
formation?” And there would have been no science of geology.
Liebig might have said: “We see that clover grows and cattle
prosper, why should the relation of cause and effect concern us?”
And there would have been no organic chemistry. Adam Smith might
have said: “We know by experience that valuable objects can be
exchanged, and that their prices fluctuate, why should we study the
cause of rise and fall?” And this chapter would have been missing
from political economy.
No road presents itself to me by which to arrive in the midst of
primitive humanity; of necessity, therefore, I have recourse to
analogy, which, under the circumstances, is not the worst expedient.
When the Romans first encountered Germans, they were chiefly
struck by the great stature, the blue eyes, and the light hair of this
inimical race. Tacitus, in alluding to this fact, says that each German
exactly resembled his fellow. Although we are familiar with the
external appearance of various nations, yet if we found ourselves in
the presence of a large number of negroes we should experience an
analogous sensation, only by degrees should we distinguish one
from the other. In an intensified degree primitive man must have
had similar experiences when, first finding himself in a world of
which he knew nothing, and of which he understood nothing, the
consciousness of what he saw around him was making itself
apparent. These early races learnt the meaning of the details of
surrounding nature but slowly; their eyes followed the brilliant circle
as it moved from one quarter of the heavens to the other; they
noticed the fire which came whence they knew not; they heard the
crash of thunder, reproduced by the echoes in the mountains
synchronising with the devastations caused by the storm. If one man
alone had witnessed these terrifying effects in nature, his reason
would have tottered from fear; the stones and the herbs of the field
could not share his agitation; the death of a man from terror would
leave them unmoved. Happily man was not alone, all those around
him shared his agitation, and the terror manifested itself on each by
signs which each would understand instinctively. This period of semi-
consciousness before the full awakening might have been a
prolonged one, but physical sensations and necessities multiplied
themselves, and were very various and imperative; action was
indispensable if privations were to be avoided; and instinct came to
their aid. The need of guarding themselves from the burning rays of
the sun caused them to provide shelters by interlacing branches of
trees; to protect themselves from cold they took the skins of wild
beasts to throw over their shoulders; where natural caverns were
insufficient for their wants they made themselves refuges in the
sides of the mountains; they were forced to light and maintain fires;
sharpen stones either for tools or for weapons of defence; the wants
of one were the wants of all, and all gave themselves to the task of
satisfying them. It is so evident that primitive activity must have
been co-operative, that it outrages common sense to picture each
man labouring by himself for himself alone. The mental phenomenon
known as intention, was the common property of all; the mutual
sympathy played the part of the electric current of our laboratories,
and the inarticulate sounds escaping involuntarily from the lips of
each worker, served as a means of communication.
In order the better to understand the function of the voice in the
education of primitive man, let us look around us and listen.
Whenever our senses are excited, and our muscles hard at work, we
feel a kind of relief in uttering sounds which in themselves have no
meaning. “They are a relief rather than an effort, a moderation or
modulation of the quickened breath in its escape through the
mouth.”[38]
When men work together, on account of the nature of the task
requiring united effort, they are naturally inclined to accompany their
occupations with certain more or less rhythmical utterances, which
react beneficially on the inward disturbance caused by muscular
effort. When a body of men march, row, or wield hammers, they do
not keep silence; formerly soldiers sang as they marched to battle;
our modern civilisation only caused the substitution of fife and
drums for the songs; and our soldiers do not readily abandon these
measured accompaniments, which make them less susceptible of
fatigue. When savage races dance they make the air resound with
measured cadences; our peasants sing while joining in the country
dances; the custom of singing during work is more marked amongst
those who belong to the races which are less under the influence of
civilisation, and are more entirely absorbed by their manual
occupation, and with whom personal preoccupation has small hold.
These inarticulate sounds which Noiré has named clamor
concomitans and Max Müller clamor significans, uttered by primitive
men when working in concert, and always inseparable from acts,
could be differentiated in accordance with the acts performed; and
at a period when actual speech did not yet exist, they would always
have this practical value, they would awaken the remembrance of
acts performed in the past, and be repeated in the present, they
would thus be instantly understood by all, and readily retained by
the memory. But what was there to determine the application of
certain sounds to certain occupations? This has not been made clear.
Plato, Socrates, and others, have considered that the origin of
language might be traced to the imitation of the sounds of nature,
and have sought for a resemblance between these sounds and
certain letters of the alphabet, but even were it possible here and
there to discover a faint analogy, our efforts would only end in
contradictions. There seems to be neither necessity nor absolute
freedom in the choice of the sounds expressive of these acts, but
rather the result of some accident, or of causes of which we are
ignorant. In any case these sounds were merely the materials of
which language was built.
It will be easily understood that nothing would penetrate more
deeply into man’s consciousness, or produce mutual understanding
more readily, than acts undertaken and accomplished with the same
end in view by a number of men united in a common impulse.
During the digging of the caves, the weaving of the nets, the
thrashing of the grain, the workers would follow with their eyes the
gradual transformation perceptible in these activities, and the sounds
which they emitted, or the half-formed words issuing from their lips
would be modified or softened at each development in the work;
these developments becoming more and more distinct, more and
more impressed with their own special characteristic. The idea of
individuality must have been very clouded, very confused amongst
primitive man; that which one saw the other saw after the same
manner; they designed each object in creating it; in this way the
world became as a book to them, this book, the result of their
combined labour, they learnt to read fluently by means of these
sounds and words which increased as they varied. Thus work—man’s
good genius—is proved to be the source of what is truly human, viz.,
reason and language.
Here I will note a curious fact and one which is historical. At a period
when writing was unknown in India, the Brahmans had already
established the rules of poetical metre, which were originally
connected with dancing and music. These rules had been preserved
in the Veda. The various Sanscrit names for metre are a witness of
the union of corporal and phonetic movements. The root of
Khandas, metre, is the same as the Latin scandere in the sense of
stepping; vritta, metre, from vrit, verto—to turn, meant originally the
last three or four steps of a dancing movement, the turn, the versus,
which determined the whole character of dance or of the metre.
Trishtubh, the name of a common metre in the Veda, meant three-
step, because its turn—its vritta or versus—consisted of three steps,
∪ - -. Thus the innate necessity that man feels of linking the play of
the vocal chords to the movement of hands or feet, had been
controlled by fixed laws, twenty-four centuries ago, by the Hindoo
grammarians; and the most recent theories of modern writers on the
subject attest the excellence of these laws. The assertion that it is
natural to peasants not to keep silence when working is of very
ancient date, but Noiré was the first to deduce scientific data from
the fact.
The study of Sanscrit has shown us that two thousand years ago it
occurred to Hindoo grammarians to investigate the origin of the
words of their language, when they discovered that all words could
be reduced to roots, and that these roots all expressed various forms
of activity; that they were therefore verbs, and that the number of
these roots was very restricted. Our present philologists have
continued this work and are not only able to acknowledge the
accuracy of the Brahmanic discovery, but also to certify that the
grammatical analysis of the Hindoos, put forth 500 years before our
era, has never been surpassed. It is important to remember that
roots are the fundamental elements which permeate the whole
organism of the language. Hebrew has been reduced by Renan and
other Hebraists to about 500 roots; the work has still to be done for
the whole Semitic family. The same process has been carried out
with regard to the Aryan languages; we find the number of roots in
Sanscrit reduced to about 800; of Gothic about 600; rather more
than 400 in the Teutonic family, and 600 in the Slavic. The Ural-Altaic
languages have also undergone a partial analysis of the same kind,
and the result at present corresponds to that obtained by the
examination of the other families. After eliminating the tertiary and
secondary roots from the Sanscrit the residuum is 600 or 500, and
we arrive at the fact that this entire language, and, in a great
measure, all the Aryan languages, can be traced back to an
extremely small number of roots.
As the Hindoo grammarians asserted that all roots contain the
representation of various forms of activity, it behoved our philologists
to investigate this and discover their meaning. Professor Noiré
thought that the consciousness that men had of their own acts must
have formed the origin of the primitive concepts of the human mind,
and found expression in signs or words. Max Müller shows us[39] that
all the Sanscrit roots express a concept or consciousness of the
repeated acts, the acts with which man in his infancy would be most
familiar. But it must be noted that the concepts or signs are not of
single acts, but the realisation of repeated acts; to dig was not to
put a spade into the ground once, it is the action of digging
continuously; to sharpen was not to pass one flint over another
once, it was the continual action of sharpening. The consciousness
of accomplishing these repeated acts as if one act, became the first
germ of conceptual thought. During this initial phase of thought,
when the first consciousness of his own repeated acts awoke in man
and assumed a conceptual character, will, act and knowledge were
as yet one and undivided, and the whole of his conscious knowledge
was subjective, exclusively concerned with his own voluntary act. We
possess the genealogy of a large number of Aryan roots, and we find
on examination that the activity which formed their basis was at the
beginning always a creative activity, since it called into life
conceptions which up to that time had not existed.
Nothing is more interesting than researches into the origin of the
growth of human thought, when carried out not according to the
systems of certain philologists of our day, but historically, after the
fashion of the Indian trapper, who notes on the sand every imprint
of the footsteps of him whom he pursues.
For the present I will content myself by bringing forward in
illustration three primary roots. Vê (Vâ), which is, to weave; Mar, to
crush; and Khan, to dig. Vê (Vâ), Mar, and Khan are thus verbs.
When we now picture the four acts of weaving, spinning, sewing,
and knitting, they appear so to differ the one from the other, that it
seems impossible to consider them other than four distinct acts, and
difficult to believe that there is one common origin to all. These four
processes, however, all had their germ in the one primitive act of
interlacing the boughs of trees to form a hedge or roof. This root Vê
(Vâ) had an immense number of offshoots; from the acts of
interlacing and platting came the conception of binding, in Latin
vieo, to twist, to divide; in German, winden, wickeln; the Latin words
vitis, a vine; vimen, osier, a twig; viburnum, a climbing plant; the
Slavic word vetla, willow; the Sanscrit vetra, reed, rush; the German
word for rush, binse, is connected with binden, to join, and the
secondary meaning of ties of relationship and alliance: again, in the
Old High-German, nothbendig, or nothwendigkeit, bound, straitened,
and the Gothic naudibandi, tie, chain. All these words, whether in
the Roman, German, or Slavonic dialects, have retained the root Vê
(Vâ), so that it is impossible not to recognise the trunk of which
these are the branches. Thus a large number of apparently dissimilar
images became entangled the one with the other, and in proportion
as we approach their starting-point do we find them discarding their
own special signification, and becoming absorbed in the single
conception of weaving and platting.
The root mar, to grind, has also the meaning of to crush, to powder,
to rub down, etc., and whether we look at the Latin, Greek, Celtic,
German, or Slav, the words representing the verb to mill, and the
name mill come thence; the transition from milling to fighting is
natural; thus Homer used the word mar-na-mai, I fight, I pound.
Mar produced in Latin the words mordeo, I bite; morior (originally, to
decay), I die; mortuus, dead; mors, death; morbus, illness; in Greek,
marasmos, decay; rendered in German by sich aufreiben, to become
exhausted. In Sanscrit we must remember that the consonants r and
l are cognate and interchangeable; thus, mar = mal; and that ar in
Sanscrit is shortened, and the vowel modified and pronounced ri,
mar = mri; that ar may be pronounced ra, and al, la; mar = mra and
mal = mla: thus in Sanscrit we find mrita, dead; mritya, death, and
mriye, I die. One of the earliest names for man was marta, the
dying; the equivalent in Greek for the Sanscrit mra and mla is mbro,
mblo; and after dropping the m becomes bro and blo; brotos,
mortal. Having chosen this name for himself, man gave the opposite
name to the gods; he called them Ambrotoi, without decay,
immortal; and their food ambrosia, immortality. An offshoot of mar is
mard and mrg; thence mradati, rubbing down, pulverising, grind to
powder; mrid is in Sanscrit the word for dust, and afterwards was
used for soil in general or earth; mrid, to weaken, to soften, to melt;
thus, fluid mass. This idea in English takes the form malt, grain
soaked and softened; then the Greek meldo, and the Gothic mulda,
soft ground or morass, and that which is softened by use or the
action of time. The Latin sordes and sordidus are connected
herewith, as the same root may be found in smarna, Gothic, and the
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!

ebooknice.com

You might also like