Author: Amjad Izhar

  • Bertrand Russell’s Dictionary of Mind, Matter and Morals

    Bertrand Russell’s Dictionary of Mind, Matter and Morals

    Bertrand Russell’s Dictionary of Mind, Matter and Morals presents a collection of Russell’s thoughts on a wide array of philosophical, ethical, and societal topics. The text offers definitions and discussions, ranging from abstract concepts like asymmetry and continuity to concrete issues like civilization, communism, and education. Russell explores the ideas of other philosophers, such as Plato, Aristotle, and Spinoza, offering his own perspective on their work. The dictionary format allows for concise yet insightful examinations of complex subjects. The book also includes an index of symbols denoting the abbreviated titles of books and essays by Russell. Overall, the document presents a comprehensive overview of Bertrand Russell’s philosophical and moral beliefs. The dictionary’s entries also offer insights into logic, psychology, history, and politics, showcasing the breadth of Russell’s intellectual interests.

    A Study Guide to Bertrand Russell’s Dictionary of Mind, Matter, and Morals

    I. Key Concepts Review

    A. Russell’s Philosophical Stance

    • Scientific Philosophy: Russell aimed for a philosophy grounded in definite knowledge and open to revision based on new discoveries. He favored clarity and detailed analysis over profound but unclear statements.
    • Changing Opinions: Russell openly acknowledged that his philosophical views evolved over time, similar to how scientific understanding progresses. He did not claim to hold eternal truths but rather sensible opinions for the time they were expressed.
    • Distinction Between Doubtful Problems and Exactness: Russell differentiated between areas where emotion must have its place and areas of exactness where pure thought can disport itself in freedom.

    B. Mind and Matter

    • Behaviorism: Russell acknowledges it contains much truth, and that the knowledge to be obtained by this method, so long as we take physics for granted, is self-contained, and need not, at any point, appeal to data derived from introspection. Nevertheless, he holds that there are such observations and that there is knowledge which depends upon introspection.
    • Mind as a Construct: The concept of “mind” emerges from complex interactions of compresent events within the brain. A mind is a track of sets of compresent events in a region of space-time where there is matter which is peculiarly liable to form habits
    • Matter as Events: Russell viewed matter not as a static substance but as a system of events in spacetime. This challenges the traditional view of matter as something that persists through time and space.

    C. Knowledge and Belief

    • Belief: A state of mind or body, or both, in which there is a disposition to behave in ways that aim at results which it would attain if certain circumstances existed.
    • Ostensive Definition: Definition by frequently hearing the word when the object which it denotes is present.

    D. Ethics and Morality

    • Desires and Ethics: Ethical systems reflect the desires of their proponents. Moral improvement comes from cultivating generous desires through intelligence, happiness, and freedom from fear.
    • Supreme Moral Rule: To act so as to produce harmonious rather than discordant desires.
    • Expansive and Repressive Impulses: Russell believed morality should be based on expansive impulses like love, curiosity, and constructiveness, rather than repressive ones like fear and cruelty.

    E. Society and Politics

    • Civilization: Russell defined civilization as a manner of life based on knowledge and forethought, involving the pursuit of objects not biologically necessary for survival.
    • World Citizenship: With increased global interconnectedness, Russell advocated for a revival of world citizenship.
    • Federalism: Favored a hierarchical system from world government to local councils, emphasizing self-determination for local matters and neutral authority for conflicting interests.
    • Liberty: Believed that the liberty of the individual should be respected where his actions do not directly, obviously, and indubitably do harm to other people.
    • International Police: Believed it necessary to prevent the lawless use of force by separate states

    F. Logic and Mathematics

    • Logical Atomism: Russell’s philosophy, emphasizing piecemeal, detailed analysis over large, untested generalities.
    • Disjunction: A disjunction is the verbal expression of indecision, or, if a question, of the desire to reach a decision.

    II. Quiz: Short Answer Questions

    1. According to Russell, what is the role of clarity in philosophical thought?
    2. Explain Russell’s view on the evolution of philosophical opinions.
    3. Describe Russell’s understanding of the relationship between mind and brain.
    4. How did Russell define “civilization,” and what are its key components?
    5. Summarize Russell’s argument for reviving the doctrine of world citizenship.
    6. Explain the principle of federalism as advocated by Russell.
    7. What is the supreme moral rule according to Russell?
    8. Differentiate between “expansive” and “repressive” impulses, according to Russell, and explain their importance for morality.
    9. What is Russell’s view of matter?
    10. Why did Russell think logic and mathematics were important?

    III. Quiz Answer Key

    1. Clarity is Russell’s paramount aim in philosophy. He values clear statements, even if disproven later, over ambiguous pronouncements.
    2. Russell believed philosophy should be scientific, with opinions changing as new knowledge becomes available. He saw no shame in revising his views.
    3. Russell viewed the mind and brain not as distinct entities, but that when we speak of a mind we are thinking chiefly of the set of compresent events in the region concerned, and of their several relations to other events forming parts of other periods in the history of the spatio-temporal tube which we are considering, whereas when we speak of the brain we are taking the set of compresent events as a whole, and considering its external relations to other sets of compresent events, also taken as wholes.
    4. Russell defined civilization as a manner of life due to the combination of knowledge and forethought. It involves the pursuit of objects not biologically necessary for survival, and an awareness of one’s place in time and space.
    5. Russell believed that world citizenship is necessary given increasing global interconnectedness. He notes that it promotes understanding and prevents the happiness of one from being built on the ruin of another.
    6. Russell advocated for a hierarchical federal system from world government to local councils. The general principle should be to leave to smaller bodies all functions which do not prevent the larger bodies from fulfilling their purpose.
    7. The supreme moral rule, according to Russell, is to act so as to produce harmonious rather than discordant desires. The goal is to apply this wherever a man’s influence extends: within himself, in his family, his city, his country, even the world as a whole, if he is able to influence it.
    8. Expansive impulses, such as love and curiosity, promote a richer and freer life. Repressive impulses, like fear and cruelty, diminish life. True morality consists in living by the expansive impulses.
    9. Russell viewed a piece of matter as a system of events. If the piece of matter is to be as small as possible, these events must all overlap, or be “compresent.”
    10. Russell thought mathematics has the advantage of teaching you the habit of thinking without passion. He thought you learn to use your mind primarily upon material where passion doesn’t come in, and having trained it in that way you can then use it passionlessly upon matters about which you feel passionately.

    IV. Essay Questions

    1. Discuss Bertrand Russell’s concept of “scientific philosophy.” How does it differ from traditional philosophical approaches, and why did he advocate for it?
    2. Explore Russell’s views on the relationship between mind and matter. How did he challenge traditional dualistic perspectives, and what alternative did he propose?
    3. Analyze Russell’s ethical framework. How did he connect desires, ethics, and morality, and what implications does this have for individual and social behavior?
    4. Examine Russell’s political philosophy. How did he balance individual liberty with the need for social order and international cooperation, and what specific solutions did he propose?
    5. Evaluate Russell’s concept of civilization. What are its essential characteristics, and how can societies strive to achieve it?

    V. Glossary of Key Terms

    • Behaviorism: A philosophical approach that emphasizes external observation as the primary method for understanding human behavior, minimizing the role of introspection.
    • Civilization: A manner of life characterized by knowledge, forethought, and the pursuit of objects beyond mere biological necessity.
    • Compresence: The relation between two or more qualities when one person experiences them simultaneously (e.g., seeing a color and hearing a sound at the same time).
    • Determinism: The hypothesis that there are discoverable causal laws, such that, given sufficient powers of calculation, a man who knows all that is happening within a certain sphere at a certain time can predict all that will happen at the center of the sphere during the time that it takes light to travel from the circumference of the sphere to the centre.
    • Disjunction: The verbal expression of indecision, or, if a question, of the desire to reach a decision
    • Federalism: A political system that divides powers between central and local governing bodies, allowing self-determination for local matters while addressing conflicting interests through a neutral authority.
    • Logical Atomism: A philosophical approach that analyzes complex concepts and propositions into their simplest, most fundamental components.
    • Ostensive Definition: Definition by frequently hearing the word when the object which it denotes is present.
    • World Citizenship: The idea that individuals have responsibilities and allegiances that extend beyond national boundaries to encompass all of humanity.
    • International Police: An international authority that can maintain and enforce order
    • Sentences, Molecular: Sentences containing conjunctions, conceived as the “p” and “q” which are conjoined being conceived as the “atoms.”
    • Mind: A track of sets of compresent events in a region of space-time where there is matter which is peculiarly liable to form habits.
    • Expansive Impulses: Emotions such as hope, love of art, impulse of constructiveness, love, affection, intellectual curiosity, and kindliness, that make more of life instead of less.
    • Repressive Impulses: Emotions such as cruelty, fear, and jealousy.
    • Supreme Moral Rule: To act so as to produce harmonious rather than discordant desires.

    Russell’s Dictionary: Mind, Matter, and Morals Explained

    Okay, here’s a briefing document based on the provided excerpts from Bertrand Russell’s “Dictionary of Mind, Matter and Morals.”

    Briefing Document: Bertrand Russell’s Dictionary of Mind, Matter and Morals

    Overview:

    This document summarizes key themes and ideas found in the provided excerpts from Bertrand Russell’s “Dictionary of Mind, Matter, and Morals.” The dictionary, edited by Lester E. Denonn, presents an alphabetical compilation of Russell’s thoughts on a wide range of philosophical, scientific, and ethical subjects. Russell emphasizes clarity, a scientific approach to philosophy, and a willingness to revise opinions in light of new knowledge.

    Key Themes and Ideas:

    • Evolution of Philosophical Views: Russell acknowledges changing his opinions over time, seeing it as a positive reflection of intellectual growth and adaptation to new knowledge, similar to scientific progress.
    • “I am not myself in any degree ashamed of having changed my opinions. What physicist who was already active in 1900 would dream of boasting that his opinions had not changed during the last half century? In science men change their opinions when new knowledge becomes available…”
    • He distinguishes his approach from theology, where doctrines are considered immutable.
    • Clarity and Analysis: Russell prioritizes clear and accurate thinking over profound but vague pronouncements. He values detailed analysis as the means to advance philosophical understanding.
    • “Clarity, above all, has been my aim. I prefer a clear statement subsequently disproved to a misty dictum capable of some profound interpretation which can be welcomed as a “great thought.” It is not by “great thoughts,” but by careful and detailed analysis, that the kind of technical philosophy which I value can be advanced.”
    • Limitations of Knowledge and the Role of Emotion: Russell recognizes areas where exact knowledge is lacking and where emotion necessarily plays a role. He advocates for a clear distinction between these domains.
    • “I will not deny, however, that there are regions as yet inaccessible to exact knowledge and yet of such practical importance that we cannot be content merely to suspend judgment… But I make always in my thought a sharp distinction between the doubtful problems in which the emotion must have its place and the happy realms of exactness where pure thought can disport itself in freedom.”
    • Behaviorism: While not fully endorsing it, Russell sees merit in the behaviorist method of external observation in understanding human beings.
    • “I do not fundamentally agree with this view [Behaviorism], but I think it contains much more truth than most people suppose, and I regard it as desirable to develop the behaviourist method to the fullest possible extent.”
    • He believes knowledge obtained through this method is self-contained, requiring no appeal to introspection, but simultaneously asserts there is knowledge dependent on introspection.
    • Birth Control: Russell strongly advocates for birth control, particularly to prevent the suffering of children born into poverty or with inherited diseases. He condemns moralists who oppose contraception, prioritizing abstract principles over human well-being.
    • “To please these moralists, a life of torture is inflicted upon millions of human beings who ought never to have existed, merely because it is supposed that sexual intercourse is wicked unless accompanied by desire for offspring…”
    • Civilization: Russell defines civilization as primarily characterized by forethought and knowledge, distinguishing it from mere biological survival. He also notes how civilization has become a pursuit of objects not biologically necessary for survival.
    • “First of all, what is civilization? Its first essential character, I should say, is forethought… We may then define civilization as: A manner of life due to the combination of knowledge and forethought.”
    • “What is called civilization may be defined as the pursuit of objects not biologically necessary for survival.”
    • Genuine culture is described as being a citizen of the universe and understanding human society as a whole.
    • Compresence: This is defined as the relation which holds between two or more qualities when one person experiences them simultaneously.
    • Definitions: Two types of definitions are identified, denotational and structural. Denotational defines an entity as the only one having a certain relation to known entities.
    • Desires and Ethics: Russell posits that all ethical systems are rooted in the desires of their proponents. He suggests that moral improvement comes from cultivating large and generous desires through intelligence, happiness, and freedom from fear.
    • “All systems of ethics embody the desires of those who advocate them… It is, in fact not by ethical theory, but by the cultivation of large and generous desires through intelligence, happiness, and freedom from fear, that men can be brought to act more than they do at present in a manner that is consistent with the general happiness of mankind.”
    • Determinism: Russell provides a complex definition of determinism, suggesting the possibility of predicting future events within a certain sphere, given sufficient knowledge and computational power.
    • Education: Russell promotes cultural exchange as a tool to diminish prejudice.
    • Federalism: He suggests a hierarchical structure of governance from world government to local councils.
    • Force: The entire concept of “force” is considered a mistake.
    • God: Russell presents arguments against the existence of God.
    • Habit: All kinds of matter, especially nervous tissue, are liable to form habits.
    • Impulses: Two kinds of impulses exist, possessive and creative/constructive. Russell suggests life should allow for free play of impulses that aren’t destructive or injurious. He contrasts repressive and expansive emotions, advocating for the latter as essential to true morality. Predatory impulses are identified as the cause of fear and a barrier to international cooperation.
    • Infinity: Russell credits Dedekind and Cantor with discovering a precise definition of an infinite number or collection of things.
    • Internationalism: Advocating for world citizenship as a practical necessity.
    • Liberty: Russell argues for respecting individual liberty except when actions directly harm others. He emphasizes the need for a supernational authority to prevent aggressive war and advocates for the reign of law.
    • Logical Atomism: This is a philosophical approach that scrutinizes mathematics and focuses on piecemeal, verifiable results rather than untested generalities. It is an approach that maintains there are many things and denies there is a whole composed of those things.
    • Mankind: Russell hopes for mankind to be terrified into sanity and tolerance by the hydrogen bomb.
    • Mathematics: Mathematics teaches one to think without passion.
    • Matter: Matter is described as a system of events. Every living thing seeks to transform its environment into itself and its seed.
    • Mind: Russell defines the “mind” as constructed out of habits, a track of sets of compresent events in a region of space-time where there is matter prone to form habits.
    • Moral Rules: Supreme moral rule is to act to produce harmonious rather than discordant desires.
    • Nationalism: Russell considers nationalism a development of herd-instinct, and he defines a nation as a group defined geographically.
    • Philosophy: Philosophy can provide exact thinking habits and give an impersonal breadth to conceptions of life.
    • Reverence: Reverence emphasizes respect for the liberty of others, sympathy, and tenderness.
    • Scientific Spirit: This is neither skeptical nor dogmatic and believes the truth is discoverable though not discovered.
    • Sentences: These are needed to express suspended reactions.
    • Shrewdness: This belongs more to the unconscious than the conscious.
    • Stoicism: Russell recognizes the value of stoicism in dealing with misfortune, promoting fortitude.
    • Things: Things are defined as those series of aspects that obey the laws of physics.
    • Tolerance: Practicing tolerance, kindness, truthfulness and justice is needed in sexual relations, marriage and divorce.
    • Truth-Function: A function of propositions in which the truth or falsehood is known.
    • Universities: An international university should be built in neutral territory to create and diffuse an outlook to prevent war and promote loyalty to international ideals.
    • Unverifiable: “Verifiable” can mean something wider than things human beings experience and includes things inferred in accordance with recognized canons of scientific method.
    • Vice and Virtue: Virtue is defined as a habit tending to produce a good community, and vice as a habit tending to produce a bad community.
    • Will: Will is an observable phenomenon and not a faculty.
    • Words: Egocentric words have meanings according to the speaker and his position in time and space.
    • World Government: Russell emphasizes that only a world government can make world peace secure.

    Conclusion:

    These excerpts reveal Russell’s commitment to reason, clarity, and human well-being. His dictionary offers a wide-ranging exploration of complex topics, encouraging critical thinking and a scientific approach to understanding the world. His emphasis on tolerance, individual liberty, and international cooperation reflects his deep concern for the future of humanity.

    Bertrand Russell’s Philosophy: Answering Common Questions

    FAQ on Bertrand Russell’s Philosophy

    What is Bertrand Russell’s attitude towards changing philosophical opinions?

    Russell embraces the idea of changing philosophical opinions, comparing it to the evolution of thought in science. He believes that philosophy, when pursued scientifically, should be open to revisions based on new knowledge and discoveries. He was not ashamed of changing his mind, and would be surprised if subsequent research didn’t modify his own ideas.

    What is the primary aim in Bertrand Russell’s philosophical work?

    Clarity is Russell’s paramount goal. He values a clear, even if ultimately disproved, statement over a vague or obscure pronouncement that is hailed as a “great thought.” He advocates for careful, detailed analysis as the way to advance technical philosophy.

    How does Russell distinguish between exact knowledge and areas where emotion has a place?

    Russell acknowledges that some areas are beyond exact knowledge but are still practically important. He believes emotion has a place in addressing doubtful problems, while pure thought is best suited for realms of exactness. He emphasizes a sharp distinction between these two types of problems.

    What is Russell’s view on Behaviorism?

    While not fully agreeing with behaviorism (the idea that everything knowable about man is discoverable by external observation), Russell sees value in it. He believes the behaviorist method can provide self-contained knowledge, taking physics for granted, without needing introspection. However, he maintains introspection also provides knowledge.

    What is Russell’s definition of Civilization?

    Russell offers multiple definitions of civilization, all interconnected. One essential aspect is forethought, distinguishing humans from animals. He further defines civilization as a way of life resulting from the combination of knowledge and forethought. Another definition is the pursuit of objects not biologically necessary for survival, which arose from surplus agriculture and a leisure class. Ultimately, Russell views civilization as a thing of the mind, involving knowledge and emotion, including awareness of one’s place in the world.

    What is Logical Atomism?

    Logical atomism is the philosophy Russell advocates. It scrutinizes mathematics and aims to substitute detailed, verifiable results for large, untested generalities. This philosophy maintains there are many things, but denies that there is a whole composed of those things. Philosophical propositions are concerned with all things distributively, and with properties that don’t depend on accidental nature but are true of any possible world.

    What is the importance of mathematics, according to Russell?

    Russell believes mathematics teaches the habit of thinking without passion, a skill valuable for approaching emotionally charged subjects with greater clarity and objectivity. It helps train the mind to focus on reasoning and come to conclusions.

    What is the relationship between liberty and law?

    Russell states there can be no widespread liberty except under the reign of law, because when men are lawless only the strongest are free. While he acknowledges the law can be oppressive and revolution sometimes necessary, he asserts that whoever impairs respect for the law in the name of liberty incurs a grave responsibility.

    The Nature and Nuances of Affection

    Affectionateness is an emotional habit that, in moderation, is considered good, but it can easily be excessive. When taken too far, it can lead to a lack of self-dependence, which can negatively affect one’s character.

    Some moralists, who may not be psychologists, confuse affection with benevolence and think it involves desiring the happiness of the loved one. However, affection in its instinctive forms is connected with jealousy and is not always a desirable emotion.

    Arabian Philosophy: Transmission of Greek Traditions

    Arabian philosophy is more important as a transmitter of Greek traditions than as an original school of thought.

    Key aspects of Arabian philosophy:

    • In philosophy, the Arabs were better as commentators than original thinkers.
    • Figures like Avicenna and Averroes were essentially commentators.
    • The views of more scientific philosophers came from Aristotle and the Neoplatonists in logic and metaphysics, from Galen in medicine, and from Greek and Indian sources in mathematics and astronomy. Mystics’ religious philosophy also had an admixture of old Persian beliefs.
    • Writers in Arabic showed some originality in mathematics and chemistry, with the latter being an incidental result of alchemical researches.
    • Arabian philosophy is not important as original thought.
    • Its importance is as a transmitter of Greek traditions.
    • Islamic civilization was admirable in the arts and in many technical ways but showed no capacity for independent speculation in theoretical matters.

    Logical Atomism: Philosophy Through Logic

    Logical atomism is a philosophical viewpoint that emphasizes the importance of logic. It posits that schools of thought should be characterized by their logic rather than their metaphysics.

    Key aspects of logical atomism:

    • Logical atomism is a form of pluralism because it maintains that while there are many things, there isn’t a single whole composed of those things.
    • Philosophical propositions are concerned with all things distributively and with such properties of all things as do not depend upon the accidental nature of the things that happen to be.
    • It aligns with the scientific approach of detailed, verifiable results over untested generalities.
    • The logic is atomic.
    • It involves the critical scrutiny of mathematics.

    The source describes it as a philosophy that has gradually emerged through the critical examination of mathematics. It shares a similar spirit with the “new realism” and represents an advance comparable to Galileo’s introduction of piecemeal, detailed, and verifiable results in physics. According to logical atomism, philosophical propositions are not concerned with the whole of things collectively but with all things distributively. These propositions must address properties of all things that are independent of the accidental nature of those things and hold true in any possible world, regardless of facts discovered through our senses.

    Psycho-Analysis: Unconscious Desires, Emotional Life, and Impulse Expression

    Psycho-analysis is a method used to understand hysteria and certain forms of insanity, revealing that aspects of ordinary lives bear a resemblance to the delusions seen in the insane. It emphasizes the emotional life, suggesting that character and intelligence develop spontaneously with the right emotional development.

    Key aspects of psycho-analysis:

    • Focus on Emotional Life: Psycho-analysis stresses the importance of emotional development, suggesting that character and intelligence should naturally develop if emotional aspects are appropriately addressed.
    • Unconscious Desires: Psycho-analysis brings to light the connection of dreams, irrational beliefs, and foolish actions with unconscious wishes, though with some exaggeration. These unconscious desires may be for things that one would consider wicked, leading to the entertainment of false beliefs to hide the nature of what is desired.
    • Impulse Expression: If an impulse is prevented from finding overt expression, it doesn’t necessarily die but goes underground and finds a new outlet not inhibited by training; this deflection can cause emotional disturbance and wasted energy.
    • Understanding Hysteria and Insanity: Psycho-analysis is primarily a method of understanding hysteria and certain forms of insanity.
    • Rationalizing: Rationalizing is the process of inventing rational grounds for an irrational decision.

    Psycho-analysis has taught that a life excessively against natural impulse is likely to involve effects of strain that may be as bad as indulgence in forbidden impulses. People who live an unnatural life may be filled with envy, malice, and uncharitableness.

    The State: Its Functions, Liberty, and International Role

    The concept of the State is multifaceted, encompassing its functions, relationship with individual liberty, and its potential role in international cohesion.

    Key aspects regarding the State:

    • The State seems a necessary institution for purposes such as peace and war, tariffs, regulation of sanitary conditions and the sale of noxious drugs, and the preservation of a just system of distribution. These functions could hardly be performed in a community without a central government.
    • A considerable degree of centralization is indispensable. However, powers of the State should devolve to various bodies based on geography, industry, or culture, with sufficient autonomy.
    • The State is not an end in itself but a means to enable individuals to give splendor to human life through citizenship and liberty.
    • State education is necessary but involves dangers, as seen in Nazi Germany and Russia.

    Additional considerations:

    • The tyranny of officials must be resisted to ensure mental freedom. The diffusion of power through democracy is only effective when voters are interested in the questions involved.
    • The State should treat minorities fairly. A state that treats minorities ruthlessly is a bad state.
    • The idea that the individual is of no importance and the State is divine is opposed to the Christian ethic and disregards human dignity.
    • The State, in spite of what Anarchists urge, seems a necessary institution.
    • The State is essentially an engine of power designed to give the victory to one side in the class conflict.

    Furthermore, international cohesion and a sense of the human race as one cooperative unit is increasingly necessary. The survival of scientific civilization may demand a world State and a world-wide system of education to produce loyalty to the world State. However, unrestricted national sovereignty involves disaster, making international government a necessity. The establishment of an international government will not be successful unless most civilized nations are persuaded that unrestricted national sovereignty involves disaster.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • The Basic Writings of Bertrand Russell

    The Basic Writings of Bertrand Russell

    This collection of writings by Bertrand Russell offers a comprehensive view of his philosophical thought across a range of topics. It explores his perspectives on religion, knowledge, ethics, politics, education, and international affairs. Russell examines concepts like truth, belief, and the nature of reality, often challenging traditional views. He contemplates the balance between individual liberty and social order, advocating for reason and humanism in a world facing complex challenges. The writings also reveal Russell’s deep concern for human well-being and his call for global cooperation and intellectual freedom. Ultimately, the collection presents Russell’s enduring quest for a more rational and compassionate world.

    The Basic Writings of Bertrand Russell: A Study Guide

    Quiz

    Instructions: Answer the following questions in 2-3 sentences each, based on the provided excerpts.

    1. According to Russell, how did some religious figures in the past react to scientific advancements like the lightning rod, and what was the basis of their objection?
    2. What is the orthodox Catholic doctrine on sex as outlined in the text, and what are some of its specific prohibitions and permissions within marriage?
    3. How does Russell critique generalizations about women, and what does he suggest is the basis for such generalizations?
    4. According to Russell, what happens to every moralist who consists of “don’ts”?
    5. Explain Russell’s argument about the word “not” and his encounter with the metaphysicians.
    6. What is Russell’s concept of a “spoken word,” and what are its key characteristics regarding precision and perception?
    7. What is the difference between “atomic” and “molecular” sentences, and why does Russell suggest paying attention to the atoms?
    8. What is the essence of possibility, according to Russell’s discussion of “Brutus killed Caesar?”
    9. What does Russell mean when he says that mathematical constants are, in essence, logical constants?
    10. What, according to Russell, is the relationship between the physical and mental in regards to the theories of Shakespeare and Bach?

    Quiz Answer Key

    1. Some religious figures condemned scientific advancements like the lightning rod as an impious attempt to defy God’s will, because they believed natural disasters like lightning strikes were divine punishments for sin, and interfering with them was aiding sinners to escape. Dr. Price blamed earthquakes on lightning rods.
    2. The Catholic doctrine favors celibacy but allows marriage for those lacking continence. Intercourse within marriage is permissible only for procreation; any form of contraception or abortion is considered a sin, regardless of medical necessity.
    3. Russell criticizes generalizations about women as arising from limited personal experiences, such as married men judging women solely by their wives or women judging by their own experiences. He finds fault with both favorable and unfavorable generalizations.
    4. According to Russell, the moralist whose morality consists of “don’ts” eventually becomes a part of Satan.
    5. Russell argues that the word “not” is superfluous and tries to eliminate it from his speech, leading the metaphysicians to laugh at his self-contradiction since he cannot express not using the word not without using the word not.
    6. Russell defines a spoken word as a set of closely similar bodily movements (larynx, mouth, breath), lacking sharp boundaries and both general and vague, thus relying on context and interpretation for true understanding.
    7. Atomic sentences contain only one verb, while molecular sentences state a relation between constituent atomic sentences. Russell suggests focusing on atomic sentences when considering the unity of sentences, to better understand their foundation.
    8. Possibility, according to Russell, involves a variable satisfying a condition, with some values of the variable also satisfying a further condition while others do not, thus making the subject variable possible but not necessary.
    9. Mathematical constants, such as the number 1, are derived from propositions with a constant logical form.
    10. While the thoughts of Shakespeare and Bach fall outside the scope of physics, their social impact relies on the physical act of creating symbols (marks on paper), which are subject to physical laws, indicating a connection to physical determinism.

    Essay Questions

    Instructions: Answer these questions in a well-developed essay format.

    1. Discuss Russell’s views on the relationship between religion, morality, and scientific progress. How does he use historical examples and philosophical arguments to support his position?
    2. Explore Russell’s ideas on the nature of language and its impact on thought and knowledge. Consider his concepts of atomic sentences, definitions, and the limits of language.
    3. Analyze Russell’s perspective on the concept of self and ego. How does he view the individual’s place in society and the universe, and what does he believe constitutes wisdom?
    4. Examine Russell’s views on power, economic systems, and social justice. What does he identify as the primary sources of power, and how does he propose to address inequalities?
    5. Consider Russell’s analysis of what a Christian is or is not, and what constitutes Christian values versus other philosophies.

    Glossary of Key Terms

    • Agnostic: One who holds that the existence of God is unknown or unknowable.
    • Atomic Sentence: In Russell’s philosophy, a basic sentence containing only one verb and expressing a simple fact.
    • Epistemological Premiss: A logical and psychological premiss that one can, as far as one is able, verify as true.
    • Molecular Sentence: A complex sentence consisting of two or more atomic sentences linked together, expressing a relationship between those sentences.
    • Proper Name: A word or symbol that refers directly to an object or individual, without implying any description of that object or individual.
    • Propositional Function: An expression containing a real variable that becomes a proposition when the variable is assigned a constant value.
    • Reign of Law: The idea that all events in the universe are governed by consistent and predictable natural laws.
    • Neutral Monism: The view that reality is ultimately composed of a single substance that is neither mental nor physical, but capable of manifesting as either.
    • Tautology: In logic, a statement that is always true by virtue of its logical form.
    • Wisdom: According to Russell, a state of mind that synthesizes knowledge, will, and feeling, and is essential for the responsible use of human power.

    Bertrand Russell: Key Themes and Ideas

    Okay, here’s a briefing document summarizing the main themes and ideas from the provided excerpts of Bertrand Russell’s writings.

    Briefing Document: Bertrand Russell – Key Themes and Ideas

    Overall Theme:

    These excerpts from Bertrand Russell’s work reveal a consistent focus on the critical examination of established beliefs, intellectual clarity, skepticism toward generalizations, and the importance of reason and evidence in understanding the world. He critiques religious dogma, societal norms, philosophical obfuscation, and political ideologies, advocating for a more rational and humane approach to life. Russell champions individual liberty, social justice, and a scientific worldview.

    1. Critique of Religious Dogma and Superstition:

    • Rejection of Divine Punishment: Russell challenges the notion of divine intervention and punishment, citing examples like the clergy’s opposition to lightning rods and Gandhi’s interpretation of earthquakes. He emphasizes the absurdity of attributing natural disasters to divine wrath.
    • “When Benjamin Franklin invented the lightning-rod, the clergy, both in England and America, with the enthusiastic support of George III, condemned it as an impious attempt to defeat the will of God.”
    • Critique of Sexual Repression: Russell attacks the orthodox Catholic doctrine on sex, highlighting its emphasis on celibacy, the condemnation of contraception, and its views on venereal disease. He satirizes the hypocrisy and illogicality surrounding divorce and remarriage within the Church.
    • “All intercourse outside marriage is sin, and so is intercourse within marriage if any measures are adopted to prevent conception.”
    • Rejection of Religious Explanations: Russell consistently uses logic and reason to debunk religious explanations for natural phenomena and moral issues.
    • “The phrase ‘in the sight of God’ puzzles me. One would suppose that God sees everything, but apparently this is a mistake. He does not see Reno, for you cannot be divorced in the sight of God.”

    2. Skepticism and the Rejection of Generalizations:

    • Distrust of Generalizations about Women: Russell expresses a strong aversion to broad generalizations about women, acknowledging that such statements are often based on limited experiences and biases.
    • “For my part I distrust all generalizations about women, favourable and unfavourable, masculine and feminine, ancient and modern; all alike, I should say, result from paucity of experience.”
    • Caution Against Self-Esteem: Russell warns against the human tendency to overestimate one’s own abilities, nation, or sex. He advocates for a rational perspective that acknowledges the limitations of human knowledge.
    • “Be very wary of opinions that flatter your self-esteem. Both men and women, nine times out of ten, are firmly convinced of the superior excellence of their own sex.”
    • Empiricism and the Limits of Knowledge: Russell emphasizes the importance of empirical evidence and the limitations of abstract reasoning. He argues that knowledge about the world must ultimately be grounded in experience.

    3. Logic, Language, and the Pursuit of Clarity:

    • Importance of Precise Language: Russell emphasizes the importance of clear and precise language in philosophical and scientific discourse.
    • “If we are to avoid entanglement in questions that are not linguistic, we must distinguish sentences, not by the complexity which they may happen to have, but by that implied in their form.”
    • Analysis of Language: The texts show Russell delving into the complexities of language, including the structure of sentences, the meaning of words, and the relationship between language and thought. He analyzes the nuances of words and sentences.
    • “When I say that Satan, who is the non-existent, does not exist, I mention neither Satan nor the non-existent, but only the word “Satan” and the word “non-existent”.”
    • Role of Logic in Understanding Reality: Russell believed that logic was a powerful tool for analyzing the structure of reality and for distinguishing between sense and nonsense. He emphasizes the importance of logical forms and atomic propositions.
    • “In a sentence of atomic form, expressed in a strictly logical language, there are a finite number of proper names (any finite number from one upwards), and there is one word which is not a proper name.”

    4. Morality, Ethics, and Social Justice:

    • Emphasis on Human Happiness: Russell argues that morality should be based on promoting human happiness and well-being, rather than adhering to abstract principles or divine commands.
    • “A man desires to drink, and also to be fit for his work next morning. We think him immoral if he adopts the course which gives him the smaller total satisfaction of desire.”
    • Critique of Traditional Morality: He critiques traditional moral rules related to sex, marriage, and family, arguing that they often lead to unnecessary suffering and repression.
    • Advocacy for Individual Freedom: Russell consistently defends individual freedom and autonomy, arguing that people should be free to make their own choices as long as they do not harm others.
    • Importance of Compassion and Sympathy: He stresses the importance of expanding our sympathies to embrace the entire human race, arguing that this is essential for achieving peace and justice in the world.
    • “If the world is ever to have peace it will be necessary to learn to embrace the whole human race in the same kind of sympathy which we now feel toward our compatriots.”
    • Socialism and Economic Justice: He supports efforts to reduce economic inequality and to challenge the power of monopolists.
    • “No good to the community, of any sort or kind, results from the private owner-ship of land. If men were reasonable, they would decree that it should cease tomorrow, with no compensation beyond a moderate life income to the present holders.”

    5. Education and the Cultivation of Wisdom:

    • Education as an End in Itself: Russell insists that pupils should be regarded as ends in themselves, not merely as means to achieve some other goal. He criticizes educational systems that treat students as raw material.
    • “When I say that pupils should be regarded as ends, not as means, I may be met by the retort that, after all, everybody is more important as a means than as an end.”
    • Importance of Intellectual Honesty and Critical Thinking: He emphasizes the importance of fostering intellectual honesty, critical thinking, and a spirit of inquiry in students.
    • Wisdom as the Synthesis of Knowledge, Will, and Feeling: Russell defines wisdom as a synthesis of knowledge, will, and feeling, arguing that it is essential for making good decisions and for creating a better world.
    • “The state of mind which I have been trying to describe is what I mean by wisdom, and it is undoubtedly more precious than rubies.”

    6. The Nature of Reality and the Limits of Physics:

    • Neutral Monism: A philosophical position that Russell explores, suggesting that the ultimate constituents of the universe are neither mental nor physical, but something neutral.
    • Limits of Physics: While acknowledging the power of physics, Russell argues that it cannot provide a complete account of reality because it is concerned only with structure, not with intrinsic qualities. He insists there are certain kinds of knowledge that are outside the realm of physics.
    • “Thus the knowledge which other men have and he has not is not part of physics.”

    7. Political and Social Commentary

    • World Government: Russell advocates for world government as a means of preventing war and ensuring global stability.
    • “For technical reasons it becomes advantageous that social units should increase in size as technique becomes more elaborate.”
    • Danger of Unchecked Power: Russell was acutely aware of the dangers of unchecked power, whether in the hands of individuals, states, or economic institutions. He warned against the concentration of power and advocated for checks and balances to protect individual liberty.
    • Fear of Technological Advancements: While acknowledging the potential benefits of scientific progress, Russell also warned of the dangers of technology being used for destructive purposes. He emphasized the need for ethical considerations to guide the development and use of new technologies.

    This briefing provides a concise overview of the key themes and ideas found in the provided excerpts. Russell’s work is characterized by intellectual rigor, clarity, and a deep commitment to reason, freedom, and social justice.

    Russell: Philosophical FAQs

    FAQ

    • Why did religious authorities initially oppose scientific advancements like the lightning rod?
    • Religious figures like the clergy and even King George III saw innovations like the lightning rod as defiance against God’s will. They believed that lightning was a divine punishment for sin, and interfering with it was akin to aiding criminals escaping justice. Dr. Price in Boston even attributed earthquakes to God’s wrath over the increasing use of lightning rods.
    • What are some of the traditional religious views on sex and marriage according to Russell?
    • Orthodox Catholic doctrine, as interpreted from figures like St. Paul, St. Augustine, and St. Thomas Aquinas, generally favors celibacy. Marriage is permissible for those who lack continence but only for procreation. Any form of contraception is deemed sinful, and even medical intervention to save a mother’s life during pregnancy is discouraged because God could intervene miraculously. Divorce is heavily restricted, with loopholes often available only to the wealthy. Some figures, like Tolstoy and Gandhi, considered all sexual intercourse wicked, even within marriage.
    • What generalizations about women does Russell find problematic, and why?
    • Russell distrusts all generalizations about women, whether positive or negative. He points out that such generalizations often stem from limited experience and personal biases, such as married men judging all women based on their wives, or women judging all people from their own experience. Historically, views of women have shifted from harmless and silly in antiquity to temptresses during the rise of Christianity and saints in the Victorian era. Each generalization serves a purpose related to the general status of women during the time period rather than any innate quality they have.
    • What is Russell’s view on the idea of inherent national or gender superiority?
    • Russell believes that convictions about the superiority of one’s nation or gender are rooted in self-esteem rather than objective truth. He argues that people tend to adjust their values to favor the merits of their own group while dismissing their demerits as trivial. He suggests that the rational approach is to acknowledge the lack of a demonstrably right answer and recognize humanity’s small place in the vast universe.
    • What is the relationship between language and thought according to Russell?
    • While Russell does not believe that language is strictly necessary for all thought, especially simple thoughts, he argues that complex thoughts absolutely depend on language. He notes that language enables the comprehension of abstract concepts and complex relationships, like those in mathematics. He believes language acquires a kind of autonomy, where we know statements are true even when the concepts are too complex to fully grasp.
    • What is the distinction between knowledge by acquaintance and knowledge by description, and why is it important?
    • Knowledge by acquaintance is direct, immediate knowledge of something through personal experience, like one’s own sensations or thoughts. Knowledge by description, on the other hand, is indirect and based on information or descriptions, like knowing about Bismarck through historical accounts. Russell argues that knowledge by description ultimately relies on some form of acquaintance, as descriptions must eventually connect to something with which we are directly familiar.
    • How does Russell define the “reign of law” and what are his views on its universality, even in the realm of physics?
    • Russell defines the “reign of law” as the belief that all occurrences are governed by predictable and consistent laws, akin to the law of gravitation. However, he questions its universality, even in physics. He points out that certain fundamental occurrences, such as radioactive decay and electron jumps, cannot currently be reduced to any known law. He admits there is no way to assert that a given occurance is not subject to any law, but also that with the current state of physics, any counter-assertion should also be done with caution. This is done to maintain scientific caution, noting that it is possible these phenomena have some range of caprice.
    • According to Russell, how should the expansion of our understanding of the universe affect our moral and emotional development?
    • Russell believes that the vastness of the universe can initially be bewildering. However, he argues that our minds, including our will and feelings, should grow in tandem with our knowledge. If our knowledge becomes cosmic while our will and feeling remain parochial, it can lead to a lack of harmony and potential disaster. This is because feeling determines the ends we shall pursue, and we must work to expand the feeling so we may expand what we choose to pursue. To achieve this, it will be necessary to have greater and greater compassion and sympathy for the whole human race as well as other ages.

    Bertrand Russell on International Affairs: Cooperation, Conflict, and World Order

    Bertrand Russell’s writings address various aspects of international affairs, including the importance of international cooperation, potential causes of conflict, and means of settling disputes.

    Key points regarding international affairs:

    • Importance of Internationalism Cultural internationalism has been decaying since World War I. Establishing an international authority is seen as the most important reform for multiple reasons. The creation of international cooperation is needed, but men persist in dividing into hostile groups.
    • Sources of Conflict Various issues can cause conflict between states, such as disputes over territory or resources. The conflict between communism and capitalism is a significant issue that is improbable to be settled peaceably. Other potential conflicts include the punishment of Germany after WWI and the domination by England of India and Japan of China.
    • Desires and Ideologies Politics is concerned with groups instead of individuals, and the passions involved are those arising between rival groups. The world is obsessed with the conflict of ideologies, which are a way of grouping people.
    • World Government A single, worldwide authority with a monopoly on serious weapons is the only way to make the world safe from war. If a world government is to prevent wars, it must have a monopoly on all major weapons and adequate armed forces, as well as proclaim rules for the employment of its armed forces.
    • Diminishing Fear The first and essential step to improving matters is to find a way of diminishing fear. If an international system could be established to remove the fear of war, the improvement in the everyday mentality of everyday people would be enormous and very rapid.
    • Role of Neutrals Neutrals can help by drawing up a document setting forth the likely results of war in a wholly neutral spirit and inviting comments. If an agreement making war improbable is to be reached, it will have to be by the friendly offices of neutrals.
    • Education Schools should teach world history from an impartial point of view to foster international cooperation. Children should be made aware of the modern interdependence of different groups of men and the importance of cooperation and the folly of conflict.
    • Nuclear Age There is a need to prevent a military contest, of which the issue must be disastrous to all sides. The argument to be addressed to East and West alike is that each side has vital interests, which it is not prepared to sacrifice, and neither side can defeat the other except by defeating itself at the same time.
    • Common Interests The matters in which the interests of Russia and America coincide are much more important than the matters in which they are thought to diverge. The paramount interest is to preserve the existence of mankind by preventing a great war.
    • Limitations of National Liberty To allow complete liberty to any national State is just as anarchic as it would be to allow complete liberty to an individual. The risks of war have become so great that the continued existence of the species is incompatible with the new methods of scientific destruction.
    • Overcoming Suspicion It will take time and patience and honesty to overcome the suspicion of territorial designs. There is a need everywhere for a much greater knowledge of international affairs and of the place of one’s own country in relation to the whole.

    Bertrand Russell: Life, Philosophy, and Political Thought

    Bertrand Russell was a philosopher who wrote on a wide array of topics, including philosophy, mathematics, education, ethics, and international affairs.

    General Aspects of Russell’s Life and Work:

    • Polymath: Russell was a polymath with broad and diverse interests, with the exception of aesthetics.
    • Changing Opinions: Russell acknowledged that his opinions changed over time, reflecting the progress of knowledge.
    • Wide Interests: Russell’s interests included history, politics, mathematics, philosophy, economics, psychology, and education.
    • Popular Writings: He wrote extensively for the general public, although he did not consider these works to be philosophical.
    • Writing Style: Russell’s writing is known for its clarity, succinctness, and precision.
    • ** Erudition:** He seemed to never forget anything he had read.

    Russell’s Views and Engagements:

    • Political Activism: He was actively involved in various public controversies, ranging from free trade and women’s suffrage to the Kennedy assassination and the Vietnam War.
    • Philosophy of Education: Russell defended a progressive view of education and started his own school with his second wife because he was not satisfied with the available options for his children.
    • Views on Religion: Reading John Stuart Mill led him to question the existence of God and adopt agnosticism.
    • Influence: He is considered one of the most productive and brilliant thinkers, influencing present-day philosophizing.

    Russell as a Philosopher:

    • Impact on Modern Philosophy: Russell had a profound influence on modern philosophy, although his work was sometimes misunderstood.
    • Symbolic Logic: Russell’s work in symbolic logic is considered essential for philosophical logicians and for understanding mathematics.
    • Philosophy of Language: He made important contributions to semantics and the philosophy of language, analyzing the meaning of meaning.
    • Theory of Knowledge: Russell’s epistemology emphasized the importance of perceptive premises and analysis.
    • Metaphysics: He is known for his novel view of “Atomism” in metaphysics.
    • Ethics: Russell’s views on ethics challenged conventional beliefs, particularly on the topic of sex.

    Russell as a Political Thinker:

    • Analysis of Power: Power was a key concept in his political theory, and he criticized fallacious theories in Fascism and Communism.
    • International Affairs: Russell stressed the importance of international cooperation and world government to prevent conflicts in the nuclear age.

    Russell’s life and work demonstrate a commitment to reason, clarity, and the pursuit of knowledge across a remarkably broad range of subjects.

    Bertrand Russell on Religion: Origins, Critique, and Agnosticism

    Bertrand Russell’s writings contain discussions of religious belief from a variety of angles, including its origins, its impact on society and individual behavior, and its compatibility with reason and science.

    Origins and Essence of Religious Belief:

    • Fear as a Basis: Russell argues that religion is primarily based on fear, including the terror of the unknown, the wish for protection, and the fear of death. Fear is also the parent of cruelty, which explains the frequent connection between cruelty and religion.
    • Self-Importance: Self-importance, whether individual or generic, is a significant source of religious beliefs. Even the concept of sin is derived from self-importance.
    • The Essence of Religion: The essence of religion lies in subordinating the finite aspects of life to the infinite aspects, seeking union with the universe. This involves knowledge, love, and service, contrasting with the disunion caused by insistent instinct.
    • Feeling vs. Belief: Russell suggests that religion may be rooted in feeling rather than belief, with deep, instinctive feelings potentially shaping one’s life even without intellectual articulation.

    Critique of Religious Belief:

    • Dogma and Authority: Russell is critical of dogma, seeing it as demanding authority rather than intelligent thought, leading to persecution and hostility. He argues that relying on authority instead of reason leads to endless troubles, as people selectively interpret sacred texts to suit their prejudices.
    • Superstition: Russell considers many religious beliefs as superstitions, which become allies of injustice. He criticizes the blend of utilitarianism and superstition in current morality, where the superstitious part often has a stronger hold.
    • Harmful Impact: Russell contends that religion has caused more suffering than it has prevented throughout history. He points to religious persecution and the opposition to scientific progress as examples.
    • Individualism: Traditional religion’s individualism is a defect because it does not focus on a social conception of welfare.
    • Truthfulness: Some important virtues are more likely to be found among those who reject religious dogmas than among those who accept them. This applies to truthfulness and intellectual integrity, which Russell considers of great social importance.
    • Rejection of Certain Christian Beliefs: Russell states he does not believe in God, immortality or that Christ was the best and wisest of men.

    Religion and Morality:

    • Not a Reliable Foundation for Ethics: He challenges the notion that morality depends on religious dogma, suggesting that essential virtues can exist independently of religious beliefs.
    • Social Utility: Russell notes that moral rules have either a basis in religious creed or a basis in social utility.
    • Influence on Desire: Ethical notions influence desire through the desire for approval and the fear of disapproval. Russell believes the morality of conduct should be judged by its probable consequences.
    • Agnosticism and Conduct: Agnostics are no more prone to immoral behavior than religious people, as they are motivated by the same factors, such as fear of punishment, conscience, and the desire to live in a law-abiding community.

    The Value of a Non-Dogmatic Religious Outlook:

    • Possibility of a Dogma-Free Religion: Russell suggests that a religious outlook is possible without dogma, emphasizing a life lived in the whole, free from the limitations of self and daily cares.
    • Worship, Acquiescence, and Love: Even without belief in God, elements of worship, acquiescence, and love can be preserved. Acquiescence in the inevitable, though more difficult without religious assurance, becomes nobler and deeper.
    • Union with the Universe: Religion derives its power from offering a sense of union with the universe, achievable through impartial worship and universal love, without demanding conformity to personal standards.

    Agnosticism as an Alternative:

    • Rejection of Authority: An Agnostic does not accept any authority, but thinks out questions of conduct for themselves.
    • Ethics: If religion means a system of ethics, it can be reconciled with science.
    • View of Sin: The Agnostic views sin as not a useful notion and believes punishment of undesirable conduct should only be for deterrent or reformatory purposes.

    Russell’s analysis of religious belief highlights his commitment to reason, individual freedom, and the pursuit of a more rational and humane world. He advocates for a morality grounded in human needs and social consequences, rather than divine commands or unquestioned traditions.

    Bertrand Russell on Symbolic Logic

    Bertrand Russell viewed symbolic logic as a crucial tool for exploring inference and the foundations of mathematics.

    Key aspects of symbolic logic according to Russell:

    • Definition: Symbolic logic, also called formal logic, involves studying general types of deduction. The use of mathematical symbols is a convenience, not an essential characteristic.
    • Historical Context: Modern symbolic logic progressed from recognizing asyllogistic inferences, starting with Leibniz. Boole’s Laws of Thought (1854) spurred its development, and Peano’s methods transformed it into a tool essential for philosophical logicians and mathematicians.
    • Utility: Symbolic logic increases one’s capacity for comprehension and is theoretically useful. Its practical benefits can be seen from the enhanced reasoning abilities it provides.
    • Scope: Symbolic logic is concerned with inference in general, distinguished by its generality. It investigates general rules for inferences and classifies relations or propositions based on how these rules introduce particular notions.
    • Logical Constants: The subject matter of mathematics consists of logical constants, which are notions appearing in the propositions of symbolic logic or are definable in terms of these notions. The number of indefinable logical constants is relatively small, around eight or nine. These constants are sufficient for expressing all propositions in symbolic logic.
    • Components: Symbolic logic includes the calculus of propositions, the calculus of classes, and the calculus of relations.
    • Relationship to Mathematics: Mathematics and logic have converged to the point of being indistinguishable. Starting from logical premises and deducing mathematical results demonstrates their identity.
    • Formal Reasoning: The absence of particular things or properties in logic or pure mathematics is a result of the study being purely formal.
    • Language: Russell notes that a completely logical language would express everything formal through syntax, not vocabulary, allowing mathematical propositions to be understood by knowing only the syntax.

    Russell also addressed the use of symbolism:

    • Necessity: Symbolism is essential for accurate demonstrative reasoning because the ideas are abstract, and ordinary language lacks the required precision.
    • Aids Intuition: Adapting the rules of symbolism to deduction processes aids intuition in abstract regions. Familiar symbol arrangements represent idea arrangements, helping the mind construct reasoning in areas where imagination fails.
    • Terseness: Symbolism’s terseness allows an entire proposition to be represented concisely, aiding comprehension.
    • Limitations: Symbolism becomes shorthand for registering results in areas where imagination works easily.
    • Handling: The general method for handling logical symbols is due to Peano.

    Russell saw symbolic logic as more than an abstract exercise; it was a way to clarify and extend the power of human reasoning, especially in complex and abstract domains.

    Bertrand Russell on Human Nature: Instinct, Reason, and Society

    Bertrand Russell’s writings offer various perspectives on human nature, emphasizing its variability, the interplay of instinct and reason, and the potential for both good and evil.

    Variability and Changeability of Human Nature:

    • Not Fixed: Russell disputes the popular maxim that “human nature cannot be changed”. He argues that this statement is often used to justify the status quo and resist social change.
    • Influence of Circumstances: Adult human nature is extremely variable, shaped by education and circumstances.
    • Cultural and Societal Influence: What is considered “human nature” is heavily influenced by local customs, education, and social norms. For example, behaviors and beliefs vary widely across different cultures.
    • Conditioning: Desires are subject to conditioning, where things that are initially means to an end become desired in themselves. This “conditioning” of primitive desires distinguishes human life from that of animals.
    • Limits of Change: It is important to recognize the limits of human possibility when aiming at a good life. Instinct has its rights and if violated beyond a point, it seeks vengeance in subtle ways.

    Instinct, Reason, and Emotion:

    • Instinct and Intellect: Russell sees instinct, mind, and spirit as essential to a full life, each with its own excellence and corruption.
    • The Soul of Man: Russell describes the soul of man as a mixture of God and brute, a battleground of two natures: the finite (particular, self-centered) and the infinite (universal, impartial).
    • The Role of Feeling: Feelings determine the ends humans pursue and how they use increased power. Human beings have been divided into groups, generating opposite systems of morality for insiders versus outsiders.
    • Impact of Emotions: Destructive impulses often originate in early life experiences and can lead to collective failures and societal problems.
    • Fear: Fear is a primary driver in human life, underlying religious dogma and social interactions.

    Good and Evil in Human Nature:

    • Potential for Both: Russell acknowledges the capacity for both good and evil in human nature. He does not believe that humans are inherently good or evil but that their behavior is shaped by circumstances and education.
    • Malevolence: Russell recognizes the presence of active malevolence in ordinary people, which is often masked by conventional morality. He attributes this to social and physiological causes, such as competition and fear.
    • Sources of Unhappiness: Repressive passions stem from unhappiness and can be mitigated by opening up possibilities for fulfilling and useful activities.
    • The Importance of Kindness: Creating a kindly population through positive early experiences can prevent cruel forms of idealism like patriotism and class war.

    The Influence of Power:

    • Desire for Power: The desire for power is a fundamental human motivation, influencing individual and collective behavior.
    • Collective Power: Modern technique has revived the sense of collective power within human communities, leading to a perception of humans as almost godlike.
    • Intoxication with Power: A significant challenge of the time is coping with individuals intoxicated with the prospect of almost unlimited power, alongside the apathy of the powerless.
    • Love of Power: If love of power dominates, the view emerges that the important thing is not to understand the world, but to change it. Mechanism augments human power, attracting lovers of power.

    The Importance of Education:

    • Shaping Character: Education plays a crucial role in shaping human nature and fostering desirable qualities such as intelligence, benevolence, and the ability to cooperate.
    • Sanity through Education: The cure for the world’s problems lies in making men sane through sane education, addressing factors that contribute to social disaster.
    • Free Intelligence and Happy Disposition: Creating a better world depends on emotional psychology and fostering free intelligence combined with a happy disposition.
    • Overcoming Destructive Passions: Science can help grandchildren live good lives by giving them knowledge, self-control, and characters that promote harmony.

    Implications for Society:

    • Role of Government: Survival demands government, but what gives value to survival lies outside government.
    • Balancing Social Cohesion and Individual Initiative: There is a need to strike a balance between social cohesion and individual initiative, as both are essential for a thriving society.
    • Need for International Cooperation: Given the interconnectedness of the human race, international cooperation is necessary for survival and well-being.
    • Overcoming Fear and Hatred: Politics is concerned with groups and the passions that unite them, often involving cooperation within the group and hostility towards outsiders. Overcoming fear and hatred is essential for creating a more harmonious world.

    In summary, Russell views human nature as malleable, influenced by both innate drives and external factors. He emphasizes the importance of education, reason, and social structures in shaping human behavior and fostering a more cooperative and fulfilling existence. He recognizes the potential for both good and evil, urging individuals and societies to strive for a world where creative and expansive impulses are encouraged, and destructive passions are mitigated.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Oxford English Dictionary – From A to I

    Oxford English Dictionary – From A to I

    This source is an excerpt from the Oxford English Dictionary. It provides definitions, usage notes, and etymologies for a wide range of English words, starting from “Aborigine” and progressing alphabetically. Entries include parts of speech, inflections, and examples of usage. The dictionary also often notes the origin of each term, tracing its roots back to Latin, Greek, French, or Old English. Overall, the text serves as a comprehensive guide to understanding the nuances of the English language.

    A

    A

    A-prefix (also an-before a vowel sound) not, without (amoral). [greek]

    Aa abbr. 1 automobile association. 2 alcoholics anonymous. 3 anti-aircraft.

    Aardvark n. Mammal with a tubular snout and a long tongue, feeding on termites. [afrikaans]

    Ab-prefix off, away, from (abduct). [latin]

    Aback adv. take aback surprise, disconcert. [old english: related to *a2]

    Abacus n. (pl. -cuses) 1 frame with wires along which beads are slid for calculating. 2 archit. Flat slab on top of a capital. [latin from greek from hebrew]

    Abaft naut. —adv. In the stern half of a ship. —prep. Nearer the stern than. [from *a2, -baft: see *aft]

    Abandon —v. 1 give up. 2 forsake, desert. 3 (often foll. By to; often refl.) Yield to a passion, another’s control, etc. —n. Freedom from inhibitions. abandonment n. [french: related to ad-, ban]

    Abandoned adj. 1 deserted, forsaken. 2 unrestrained, profligate.

    Abase v. (-sing) (also refl.) Humiliate, degrade. abasement n. [french: related to ad-, base2]

    Abashed predic. Adj. Embarrassed, disconcerted. [french es- *ex-1, baïr astound]

    Abate v. (-ting) make or become less strong etc.; diminish. abatement n. [french abatre from latin batt(u)o beat]

    Abattoir n. Slaughterhouse. [french abatre fell, as *abate]

    Abbacy n. (pl. -ies) office or jurisdiction of an abbot or abbess. [latin: related to *abbot]

    Abbé n. (in france) abbot or priest. [french from latin: related to *abbot]

    Abbess n. Head of a community of nuns.

    Abbey n. (pl. -s) 1 building(s) occupied by a community of monks or nuns. 2 the community itself. 3 building that was once an abbey.

    Abbot n. Head of a community of monks. [old english from latin abbas]

    Abbot n. Head of a community of monks. [old english from latin abbas]

    Abbreviate v. (-ting) shorten, esp. Represent (a word etc.) By a part of it. abbreviation n. [latin: related to *brief]

    Abc n. 1 the alphabet. 2 rudiments of a subject. 3 alphabetical guide.

    Abdicate v. (-ting) 1 (usu. Absol.) Give up or renounce (the throne). 2 renounce (a duty, right, etc.). abdication n. [latin dico declare]

    Abdomen n. 1 the belly, including the stomach, bowels, etc. 2 the hinder part of an insect etc. abdominal adj. [latin]

    Abduct v. Carry off or kidnap illegally. abduction n. Abductor n. [latin duco lead]

    Abeam adv. At right angles to a ship’s or an aircraft’s length.

    Aberdeen angus n. Animal of a scottish breed of hornless black cattle. [aberdeen in scotland]

    Aberdonian —adj. Of aberdeen. —n. Native or citizen of aberdeen. [medieval latin]

    Aberrant adj. Deviating from what is normal or accepted. [latin: related to *err]

    Aberration n. 1 aberrant behaviour; moral or mental lapse. 2 biol. Deviation from a normal type. 3 distortion of an image because of a defect in a lens or mirror. 4 astron. Apparent displacement of a celestial body.

    Abet v. (-tt-) (usu. In aid and abet) encourage or assist (an offender or offence). [french: related to ad-, bait]

    Abeyance n. (usu. Prec. By in, into) temporary disuse. [french: related to *ad-, beer gape]

    Abhor v. (-rr-) detest; regard with disgust. [latin: related to *horror

    Abhorrence n. Disgust; detestation.

    Abhorrent adj. (often foll. By to) disgusting or hateful.

    Abide v. (-ding; past abided or rarely abode) 1 (usu. In neg.) Tolerate, endure (can’t abide him). 2 (foll. By by) a act in accordance with (abide by the rules). B keep (a promise). 3 archaic remain, continue. [old english a-intensive prefix, *bide]

    Abiding adj. Enduring, permanent.

    Ability n. (pl. -ies) 1 (often foll. By to + infin.) Capacity or power. 2 cleverness, talent. [french: related to *able]

    -ability suffix forming nouns of quality from, or corresponding to, adjectives in -able.

    Ab initio adv. From the beginning. [latin]

    Abject adj. Miserable, wretched; degraded; despicable. abjection n. [latin jacio -ject-throw]

    Abjure v. (-ring) renounce on oath (an opinion, cause, etc.). abjuration n. [latin juro swear]

    Ablative gram. —n. Case (in latin) of nouns and pronouns indicating an agent, instrument, or location. —adj. Of or in the ablative. [latin ablatus taken away]

    Ablaze predic. Adj. & adv. 1 on fire. 2 glittering, glowing. 3 greatly excited.

    Able adj. (abler, ablest) 1 (often foll. By to + infin.; used esp. In is able, will be able, etc., replacing tenses of can) having the capacity or power (not able to come). 2 talented, clever. ably adv. [latin habilis]

    -able suffix forming adjectives meaning: 1 that may or must be (eatable;

    -able suffix forming adjectives meaning: 1 that may or must be (eatable; payable). 2 that can be made the subject of (dutiable; objectionable). 3 relevant to or in accordance with (fashionable; seasonable). [latin -abilis]

    Able-bodied adj. Fit, healthy.

    Able-bodied seaman n. Ordinary trained seaman.

    Ablution n. (usu. In pl.) 1 ceremonial washing of the hands, sacred vessels, etc. 2 colloq. A ordinary bodily washing. B place for this. [latin ablutio from luo lut-wash]

    -ably suffix forming adverbs corresponding to adjectives in -able.

    Abm abbr. Anti-ballistic missile.

    Abnegate v. (-ting) give up or renounce (a pleasure or right etc.). [latin nego deny]

    Abnegation n. Denial; renunciation of a doctrine.

    Abnormal adj. Deviating from the norm; exceptional. abnormality n. (pl. -ies). Abnormally adv. [french: related to *anomalous]

    Abo (also abo) austral. Slang usu. Offens. —n. (pl. -s) aboriginal. —adj. Aboriginal. [abbreviation]

    Aboard adv. & prep. On or into (a ship, aircraft, etc.). [from *a2]

    Abode1 n. Dwelling-place. [related to *abide]

    Abode2 see *abide.

    Abolish v. Put an end to (esp. A custom or institution). [latin aboleo destroy]

    Abolition n. Abolishing or being abolished. abolitionist n.

    A-bomb n. = *atomic bomb. [a for *atomic]

    Abominable adj. 1 detestable, loathsome. 2 colloq. Very unpleasant (abominable weather). abominably adv. [latin abominor deprecate]

    Abominable snowman n. Supposed manlike or bearlike himalayan animal; yeti.

    Abominate v. (-ting) detest, loathe. abomination n. [latin: related to *abominable]

    Aboriginal —adj. 1 indigenous, inhabiting a land from the earliest times, esp. Before the arrival of colonists. 2 (usu. Aboriginal) of australian aborigines. —n. 1 aboriginal inhabitant. 2 (usu. Aboriginal) aboriginal inhabitant of australia. [latin: related to *origin]

    Aborigine n. (usu. In pl.) 1 aboriginal inhabitant. 2 (usu. Aborigine) aboriginal inhabitant of australia.

    Usage when referring to the people, aboriginal is preferred for the singular form and aborigines for the plural, although aboriginals is also acceptable.

    Abort v. 1 miscarry. 2 a effect abortion of (a foetus). B effect abortion in (a mother). 3 end or cause (a project etc.) To end before completion. [latin orior be born]

    Abortion n. 1 natural or (esp.) Induced expulsion of a foetus from the womb before it is able to survive independently. 2 stunted or deformed creature or thing. 3 failed project or action. abortionist n.

    Aboriginal —adj. 1 indigenous, inhabiting a land from the earliest times, esp. Before the arrival of colonists. 2 (usu. Aboriginal) of australian aborigines. —n. 1 aboriginal inhabitant. 2 (usu. Aboriginal) aboriginal inhabitant of australia. [latin: related to *origin]

    Aborigine n. (usu. In pl.) 1 aboriginal inhabitant. 2 (usu. Aborigine) aboriginal inhabitant of australia.

    Usage when referring to the people, aboriginal is preferred for the singular form and aborigines for the plural, although aboriginals is also acceptable.

    Abort v. 1 miscarry. 2 a effect abortion of (a foetus). B effect abortion in (a mother). 3 end or cause (a project etc.) To end before completion. [latin orior be born]

    Abortion n. 1 natural or (esp.) Induced expulsion of a foetus from the womb before it is able to survive independently. 2 stunted or deformed creature or thing. 3 failed project or action. abortionist n.

    Abortive adj. Fruitless, unsuccessful.

    Abound v. 1 be plentiful. 2 (foll. By in, with) be rich; teem. [latin unda wave]

    About —prep. 1 a on the subject of (a book about birds). B relating to (glad about it). C in relation to (symmetry about a plane). 2 at a time near to (about six). 3 a in, round (walked about the town; a scarf about her neck). B all round from a centre (look about you). 4 at points in (strewn about the house). 5 carried with (no money about me). 6 occupied with (about her business). —adv. 1 a approximately (about ten miles). B colloq. In an understatement (just about had enough). 2 nearby (a lot of flu about). 3 in every direction (look about). 4 on the move; in action (out and about). 5 in rotation or succession (turn and turn about). be about (or all about) colloq. Have as its essential nature (life is all about having fun). Be about to be on the point of (was about to laugh). [old english]

    About-face n. & int. = *about-turn, about turn.

    About-turn —n. 1 turn made so as to face the opposite direction. 2 change of opinion or policy etc. —int. (about turn) mil. Command to make an about-turn.

    Above —prep. 1 over; on the top of; higher than; over the surface of (head above water; above the din). 2 more than (above twenty people). 3 higher in rank, importance, etc., than. 4 a too great or good for (not above cheating). B beyond the reach of (above my understanding; above suspicion). —adv. 1 at or to a higher point; overhead (the floor above; the sky above). 2 earlier on a page or in a book (as noted above). —adj. Preceding (the above argument). —n. (prec. By the) preceding text (the above shows). above all most of all, more than anything else. Above oneself conceited, arrogant. [old english: related to *a2]

    Above-board adj. & adv. Without concealment; open or openly.

    Abracadabra —int. Supposedly magic word used in conjuring. —n. Spell or charm. [latin from greek]

    Abrade v. (-ding) scrape or wear away (skin, rock, etc.) By rubbing. [latin rado scrape]

    Abrasion n. 1 scraping or wearing away (of skin, rock, etc.). 2 resulting damaged area.

    Abrasive —adj. 1 a tending to rub or graze. B capable of polishing by rubbing or grinding. 2 harsh or hurtful in manner. —n. Abrasive substance.

    Abreast adv. 1 side by side and facing the same way. 2 (foll. By of) up to date.

    Abridge v. (-ging) shorten (a book, film, etc.). abridgement n. [latin: related to *abbreviate]

    Abroad adv. 1 in or to a foreign country or countries. 2 widely (scatter abroad). 3 in circulation (rumour abroad).

    Abrogate v. (-ting) repeal, abolish (a law etc.). abrogation n. [latin rogo propose a law]

    Abrupt adj. 1 sudden, hasty (abrupt end). 2 (of manner etc.) Curt. 3 steep, precipitous. abruptly adv. Abruptness n. [latin: related to *rupture]

    Abscess n. (pl. Abscesses) swelling containing pus. [latin: related to ab-, cede]

    Abseil —v. Descend by using a doubled rope coiled round the body and fixed at a higher point. —n. Descent made by abseiling. [german ab down, seil rope]

    Absence n. 1 being away. 2 time of this. 3 (foll. By of) lack of. absence of mind inattentiveness. [latin absentia]

    Absent —adj. 1 not present. 2 not existing; lacking. 3 inattentive. —v.refl. Go, or stay, away. absently adv. (in sense 3 of adj.).

    Absentee n. Person not present.

    Absenteeism n. Absenting oneself from work or school etc., esp. Frequently or illicitly.

    Absentee landlord n. One who lets a property while living elsewhere.

    Absent-minded adj. Forgetful or inattentive. absent-mindedly adv. Absent-mindedness n.

    Absinth n. 1 wormwood. 2 (usu. Absinthe) aniseed-flavoured liqueur based on this. [french from latin]

    Absolute —adj. 1 complete, utter (absolute bliss). 2 unconditional (absolute authority). 3 despotic (absolute monarch). 4 not relative or comparative (absolute standard). 5 gram. A (of a construction) syntactically independent of the rest of the sentence, as in dinner being over, we left the table. B (of an adjective or transitive verb) without an expressed noun or object (e.g. The deaf, guns kill). 6 (of a legal decree etc.) Final. —n. Philos. (prec. By the) that which can exist independently of anything else. [latin: related to *absolve]

    Absolutely adv. 1 completely, utterly. 2 in an absolute sense (god exists absolutely). 3 colloq. (used in reply) quite so; yes.

    Absolute majority n. Majority over all rivals combined.

    Absolute pitch n. Ability to recognize or sound any given note.

    Absolute temperature n. One measured from absolute zero.

    Absolute zero n. Theoretical lowest possible temperature calculated as –273.15° c (or 0° k).

    Absolution n. Formal forgiveness of sins.

    Absolutism n. Principle or practice of absolute government. absolutist n.

    Absolve v. (-ving) (often foll. By from, of) set or pronounce free from blame or obligation etc. [latin: related to *solve]

    Absorb v. 1 incorporate as part of itself or oneself. 2 take in, suck up (liquid, heat, knowledge, etc.). 3 reduce the effect or intensity of; deal easily with (an impact, sound, difficulty, etc.). 4 consume (resources etc.). 5 (often as absorbing adj.) Engross the attention of. [latin sorbeo suck in]

    Absorbent —adj. Tending to absorb. —n. Absorbent substance or organ.

    Absorption n. 1 absorbing or being absorbed. 2 mental engrossment. absorptive adj.

    Abstain v. 1 (usu. Foll. By from) refrain from indulging (abstained from smoking). 2 decline to vote. [latin teneo tent-hold]

    Abstemious adj. Moderate or ascetic, esp. In eating and drinking. abstemiously adv. [latin: related to *ab-, temetum strong drink]

    Abstention n. Abstaining, esp. From voting. [latin: related to *abstain]

    Abstinence n. Abstaining, esp. From food or alcohol. abstinent adj. [french: related to *abstain]

    Abstract —adj. 1 a of or existing in thought or theory rather than matter or practice; not concrete. B (of a word, esp. A noun) denoting a quality, condition, etc., not a concrete object. 2 (of art) achieving its effect by form and colour rather than by realism. —v. 1 (often foll. By from) extract, remove. 2 summarize. —n. 1 summary. 2 abstract work of art. 3 abstraction or abstract term. [latin: related to *tract1]

    Abstracted adj. Inattentive, distracted. abstractedly adv.

    Abstraction n. 1 abstracting or taking away. 2 abstract or visionary idea. 3 abstract qualities (esp. In art). 4 absent-mindedness.

    Abstruse adj. Hard to understand, profound. [latin abstrudo -trus-conceal]

    Absurd adj. Wildly illogical or inappropriate; ridiculous. absurdity n. (pl. -ies). Absurdly adv. [latin: related to *surd]

    Abta abbr. Association of british travel agents.

    Abundance n. 1 plenty; more than enough; a lot. 2 wealth. [latin: related to *abound]

    Abundance n. 1 plenty; more than enough; a lot. 2 wealth. [latin: related to *abound]

    Abundant adj. 1 plentiful. 2 (foll. By in) rich (abundant in fruit). abundantly adv.

    Abuse —v. (-sing) 1 use improperly, misuse. 2 insult verbally. 3 maltreat. —n. 1 misuse. 2 insulting language. 3 unjust or corrupt practice. 4 maltreatment (child abuse). abuser n. [latin: related to *use]

    Abusive adj. Insulting, offensive. abusively adv.

    Abut v. (-tt-) 1 (foll. By on) (of land) border on. 2 (foll. By on, against) (of a building) touch or lean upon (another). [anglo-latin butta strip of land: related to *butt1]

    Abutment n. Lateral supporting structure of a bridge, arch, etc.

    Abuzz adv. & adj. In a state of excitement or activity.

    Abysmal adj. 1 colloq. Extremely bad (abysmal food). 2 profound, utter (abysmal ignorance). abysmally adv. [latin: related to *abyss]

    Abyss n. 1 deep chasm. 2 immeasurable depth (abyss of despair). [latin from greek, = bottomless]

    Ac abbr. 1 (also ac) alternating current. 2 aircraftman.

    Ac symb. Actinium.

    A/c abbr. Account. [account current]

    -ac suffix forming adjectives often (or only) used as nouns (cardiac; maniac). [latin -acus, greek -akos]

    Acacia n. Tree with yellow or white flowers, esp. One yielding gum arabic. [latin from greek]

    Academia n. The academic world; scholastic life.

    Academic —adj. 1 scholarly, of learning. 2 of no practical relevance; theoretical. —n. Teacher or scholar in a university etc. academically adv.

    Academician n. Member of an academy. [french académicien]

    Academy n. (pl. -ies) 1 place of specialized training (military academy). 2 (usu. Academy) society or institution of distinguished scholars, artists, scientists, etc. (royal academy). 3 scot. Secondary school. [greek akademeia the place in athens where plato taught]

    Acanthus n. (pl. -thuses) 1 herbaceous plant with spiny leaves. 2 archit. Representation of its leaf. [latin from greek]

    A cappella adj. & adv. (of choral music) unaccompanied. [italian, = in church style]

    Acas abbr. Advisory, conciliation, and arbitration service.

    Accede v. (-ding) (foll. By to) 1 take office, esp. As monarch. 2 assent or agree. [latin: related to *cede]

    Accelerate v. (-ting) move or cause to move or happen more quickly. acceleration n. [latin: related to *celerity]

    Accelerator n. 1 device for increasing speed, esp. The pedal controlling the speed of a vehicle’s engine. 2 physics apparatus for imparting high speeds to

    speed of a vehicle’s engine. 2 physics apparatus for imparting high speeds to charged particles.

    Accent —n. 1 particular (esp. Local or national) mode of pronunciation. 2 distinctive feature or emphasis (accent on speed). 3 prominence given to a syllable by stress or pitch. 4 mark on a letter or word to indicate pitch, stress, or vowel quality. —v. 1 emphasize (a word or syllable etc.). 2 write or print accents on (words etc.). 3 accentuate. [latin cantus song]

    Accentuate v. (-ting) emphasize, make prominent. accentuation n. [medieval latin: related to *accent]

    Accept v. 1 (also absol.) Willingly receive (a thing offered). 2 (also absol.) Answer affirmatively (an offer etc.). 3 regard favourably; treat as welcome (felt accepted). 4 believe, receive (an opinion, explanation, etc.) As adequate or valid. 5 take as suitable (does accept cheques). 6 undertake (an office or duty). [latin capio take]

    Acceptable adj. 1 worth accepting, welcome. 2 tolerable. acceptability n. Acceptably adv. [french: related to *accept]

    Acceptance n. 1 willingness to accept. 2 affirmative answer to an invitation etc. 3 approval, belief (found wide acceptance).

    Access —n. 1 way of approach or entry (shop with rear access). 2 a right or opportunity to reach or use or visit; admittance (access to secret files, to the prisoner). B accessibility. 3 archaic outburst (an access of anger). —v. 1 computing gain access to (data etc.). 2 accession. [french: related to *accede]

    Accessible adj. (often foll. By to) 1 reachable or obtainable; readily available. 2

    Accessible adj. (often foll. By to) 1 reachable or obtainable; readily available. 2 easy to understand. accessibility n.

    Accession —n. 1 taking office, esp. As monarch. 2 thing added. —v. Record the addition of (a new item) to a library etc.

    Accessory n. (pl. -ies) 1 additional or extra thing. 2 (usu. In pl.) Small attachment, fitting, or subsidiary item of dress (e.g. Shoes, gloves). 3 (often foll. By to) person who abets or is privy to an (esp. Illegal) act. [medieval latin: related to *accede]

    Access road n. Road giving access only to the properties along it.

    Access time n. Computing time taken to retrieve data from storage.

    Accident n. 1 unfortunate esp. Harmful event, caused unintentionally. 2 event that is unexpected or without apparent cause. by accident unintentionally. [latin cado fall]

    Accidental —adj. Happening by chance or accident. —n. Mus. Sign indicating a note’s momentary departure from the key signature. accidentally adv.

    Accident-prone adj. Clumsy.

    Acclaim —v. 1 welcome or applaud enthusiastically. 2 hail as (acclaimed him king). —n. Applause, welcome, public praise. [latin acclamo: related to *claim]

    king). —n. Applause, welcome, public praise. [latin acclamo: related to *claim]

    Acclamation n. 1 loud and eager assent. 2 (usu. In pl.) Shouting in a person’s honour.

    Acclimatize v. (also -ise) (-zing or -sing) adapt to a new climate or conditions. acclimatization n. [french acclimater: related to *climate]

    Accolade n. 1 praise given. 2 touch made with a sword at the conferring of a knighthood. [latin collum neck]

    Accommodate v. (-ting) 1 provide lodging or room for (flat accommodates two). 2 adapt, harmonize, reconcile (must accommodate himself to new ideas). 3 a do favour to, oblige (a person). B (foll. By with) supply (a person) with. [latin: related to *commode]

    Accommodating adj. Obliging, compliant.

    Accommodation n. 1 lodgings. 2 adjustment, adaptation. 3 convenient arrangement; settlement, compromise.

    Accommodation address n. Postal address used by a person unable or unwilling to give a permanent address.

    Accompaniment n. 1 instrumental or orchestral support for a solo instrument, voice, or group. 2 accompanying thing. accompanist n. (in sense 1).

    voice, or group. 2 accompanying thing. accompanist n. (in sense 1).

    Accompany v. (-ies, -ied) 1 go with; escort. 2 (usu. In passive; foll. By with, by) be done or found with; supplement. 3 mus. Partner with accompaniment. [french: related to *companion]

    Accomplice n. Partner in a crime etc. [latin: related to *complex]

    Accomplish v. Succeed in doing; achieve, complete. [latin: related to *complete]

    Accomplished adj. Clever, skilled.

    Accomplishment n. 1 completion (of a task etc.). 2 acquired, esp. Social, skill. 3 thing achieved.

    Accord —v. 1 (often foll. By with) be consistent or in harmony. 2 grant (permission, a request, etc.); give (a welcome etc.). —n. 1 agreement, consent. 2 mus. & art etc. Harmony. of one’s own accord on one’s own initiative; voluntarily. With one accord unanimously. [latin cor cord-heart]

    Accordance n. in accordance with in conformity to. accordant adj.

    According adv. 1 (foll. By to) a as stated by (according to mary). B in proportion to (lives according to his means). 2 (foll. By as + clause) in a manner or to a degree that varies as (pays according as he is able).

    Accordingly adv. 1 as circumstances suggest or require (please act accordingly). 2 consequently (accordingly, he left the room).

    Accordion n. Musical reed instrument with concertina-like bellows, keys, and buttons. accordionist n. [italian accordare to tune]

    Accost v. 1 approach and address (a person), esp. Boldly. 2 (of a prostitute) solicit. [latin costa rib]

    Accession —n. 1 taking office, esp. As monarch. 2 thing added. —v. Record the addition of (a new item) to a library etc.

    Accessory n. (pl. -ies) 1 additional or extra thing. 2 (usu. In pl.) Small attachment, fitting, or subsidiary item of dress (e.g. Shoes, gloves). 3 (often foll. By to) person who abets or is privy to an (esp. Illegal) act. [medieval latin: related to *accede]

    Access road n. Road giving access only to the properties along it.

    Access time n. Computing time taken to retrieve data from storage.

    Accident n. 1 unfortunate esp. Harmful event, caused unintentionally. 2 event that is unexpected or without apparent cause. by accident unintentionally. [latin cado fall]

    Accidental —adj. Happening by chance or accident. —n. Mus. Sign indicating a

    Accidental —adj. Happening by chance or accident. —n. Mus. Sign indicating a note’s momentary departure from the key signature. accidentally adv.

    Accident-prone adj. Clumsy.

    Acclaim —v. 1 welcome or applaud enthusiastically. 2 hail as (acclaimed him king). —n. Applause, welcome, public praise. [latin acclamo: related to *claim]

    Acclamation n. 1 loud and eager assent. 2 (usu. In pl.) Shouting in a person’s honour.

    Acclimatize v. (also -ise) (-zing or -sing) adapt to a new climate or conditions. acclimatization n. [french acclimater: related to *climate]

    Accolade n. 1 praise given. 2 touch made with a sword at the conferring of a knighthood. [latin collum neck]

    Accommodate v. (-ting) 1 provide lodging or room for (flat accommodates two). 2 adapt, harmonize, reconcile (must accommodate himself to new ideas). 3 a do favour to, oblige (a person). B (foll. By with) supply (a person) with. [latin: related to *commode]

    Accommodating adj. Obliging, compliant.

    Accommodation n. 1 lodgings. 2 adjustment, adaptation. 3 convenient arrangement; settlement, compromise.

    arrangement; settlement, compromise.

    Accommodation address n. Postal address used by a person unable or unwilling to give a permanent address.

    Accompaniment n. 1 instrumental or orchestral support for a solo instrument, voice, or group. 2 accompanying thing. accompanist n. (in sense 1).

    Accompany v. (-ies, -ied) 1 go with; escort. 2 (usu. In passive; foll. By with, by) be done or found with; supplement. 3 mus. Partner with accompaniment. [french: related to *companion]

    Accomplice n. Partner in a crime etc. [latin: related to *complex]

    Accomplish v. Succeed in doing; achieve, complete. [latin: related to *complete]

    Accomplished adj. Clever, skilled.

    Accomplishment n. 1 completion (of a task etc.). 2 acquired, esp. Social, skill. 3 thing achieved.

    Accord —v. 1 (often foll. By with) be consistent or in harmony. 2 grant (permission, a request, etc.); give (a welcome etc.). —n. 1 agreement, consent. 2 mus. & art etc. Harmony. of one’s own accord on one’s own initiative; voluntarily. With one accord unanimously. [latin cor cord-heart]

    Accordance n. in accordance with in conformity to. accordant adj.

    According adv. 1 (foll. By to) a as stated by (according to mary). B in proportion to (lives according to his means). 2 (foll. By as + clause) in a manner or to a degree that varies as (pays according as he is able).

    Accordingly adv. 1 as circumstances suggest or require (please act accordingly). 2 consequently (accordingly, he left the room).

    Accordion n. Musical reed instrument with concertina-like bellows, keys, and buttons. accordionist n. [italian accordare to tune]

    Accost v. 1 approach and address (a person), esp. Boldly. 2 (of a prostitute) solicit. [latin costa rib]

    Account —n. 1 narration, description (an account of his trip). 2 arrangement at a bank etc. For depositing and withdrawing money, credit, etc. (open an account). 3 record or statement of financial transactions with the balance (kept detailed accounts). —v. Consider as (account him wise, a fool).

    Accountable adj. 1 responsible; required to account for one’s conduct. 2 explicable, understandable. accountability n.

    Accountant n. Professional keeper or verifier of accounts. accountancy n. Accounting n.

    Accouterments n.pl. (brit. Accoutrements) 1 equipment, trappings. 2 soldier’s equipment excluding weapons and clothes. [french]

    Accoutrements n.pl. (us accouterments) 1 equipment, trappings. 2 soldier’s equipment excluding weapons and clothes. [french]

    Accredit v. (-t-) 1 (foll. By to) attribute (a saying etc.) To (a person). 2 (foll. By with) credit (a person) with (a saying etc.). 3 (usu. Foll. By to or at) send (an ambassador etc.) With credentials. 4 gain influence for or make credible (an adviser, a statement, etc.). [french: related to *credit]

    Accredited adj. 1 officially recognized. 2 generally accepted.

    Accretion n. 1 growth or increase by accumulation, addition, or organic enlargement. 2 the resulting whole. 3 a matter so added. B adhesion of this to the core matter. [latin cresco cret-grow]

    Accrue v. (-ues, -ued, -uing) (often foll. By to) come as a natural increase or advantage, esp. Financial. [latin: related to *accretion]

    Accumulate v. (-ting) 1 acquire an increasing number or quantity of; amass, collect. 2 grow numerous; increase. [latin: related to *cumulus]

    Accumulation n. 1 accumulating or being accumulated. 2 accumulated mass. 3 growth of capital by continued interest. accumulative adj.

    Accumulator n. 1 rechargeable electric cell. 2 bet placed on a sequence of events, with the winnings and stake from each placed on the next.

    Accuracy n. Exactness or careful precision. [latin cura care]

    Accurate adj. Careful, precise; conforming exactly with the truth or a standard. accurately adv.

    Accursed adj. 1 under a curse. 2 colloq. Detestable, annoying. [old english a-intensive prefix, *curse]

    Accusation n. Accusing or being accused. [french: related to *accuse]

    Accusative gram. —n. Case expressing the object of an action. —adj. Of or in this case.

    Accusatory adj. Of or implying accusation.

    Accuse v. (-sing) (often foll. By of) charge with a fault or crime; blame. [latin accusare: related to *cause]

    Accustom v. (foll. By to) make used to (accustomed him to hardship). [french: related to *custom]

    Accustomed adj. 1 (usu. Foll. By to) used to a thing. 2 customary, usual.

    Ace —n. 1 playing-card etc. With a single spot and generally signifying ‘one’. 2 a person who excels in some activity. B pilot who has shot down many enemy aircraft. 3 (in tennis) unreturnable stroke (esp. A service). —adj. Slang excellent. within an ace of on the verge of. [latin as unity]

    Acellular adj. Having no cells; not consisting of cells.

    Aceous suffix forming adjectives in the sense ‘of the nature of’, esp. In the natural sciences (herbaceous). [latin -aceus]

    Acerbic adj. Harsh and sharp, esp. In speech or manner. acerbity n. (pl. -ies). [latin acerbus sour]

    Acetaldehyde n. Colourless volatile liquid aldehyde. [from acetic, aldehyde]

    Acetate n. 1 salt or ester of acetic acid, esp. The cellulose ester. 2 fabric made from this.

    Acetic adj. Of or like vinegar. [latin acetum vinegar]

    Acetic acid n. Clear liquid acid giving vinegar its characteristic taste.

    Acetone n. Colourless volatile liquid that dissolves organic compounds, esp.

    Paints, varnishes, etc.

    Acetylene n. Hydrocarbon gas burning with a bright flame, used esp. In welding.

    Ache —n. 1 continuous dull pain. 2 mental distress. —v. (-ching) suffer from or be the source of an ache. [old english]

    Achieve v. (-ving) 1 reach or attain, esp. By effort (achieved victory; achieved notoriety). 2 accomplish (a feat or task). [french achever: related to *chief]

    Achievement n. 1 something achieved. 2 act of achieving.

    Achilles heel n. Person’s weak or vulnerable point. [achilles, greek hero in the iliad]

    Achilles tendon n. Tendon connecting the heel with the calf muscles.

    Achromatic adj. Optics 1 transmitting light without separation into constituent colours (achromatic lens). 2 without colour. achromatically adv. [french: related to a-, chrome]

    Achy adj. (-ier, -iest) full of or suffering from aches.

    Acid —n. 1 a any of a class of substances that liberate hydrogen ions in water,

    Acid —n. 1 a any of a class of substances that liberate hydrogen ions in water, are usu. Sour and corrosive, turn litmus red, and have a ph of less than 7. B any compound or atom donating protons. 2 any sour substance. 3 slang the drug lsd. —adj. 1 sour. 2 biting, sharp (an acid wit). 3 chem. Having the essential properties of an acid. acidic adj. Acidify v. (-ies, -ied). Acidity n. Acidly adv. [latin aceo be sour]

    Acid house n. A type of synthesized music with a simple repetitive beat, often associated with hallucinogenic drugs.

    Acid rain n. Acid, esp. From industrial waste gases, falling with rain.

    Acid test n. Severe or conclusive test.

    Acidulous adj. Somewhat acid.

    Ack-ack colloq. —adj. Anti-aircraft. —n. Anti-aircraft gun etc. [formerly signallers’ term for aa]

    Acknowledge v. (-ging) 1 recognize; accept the truth of (acknowledged its failure). 2 confirm the receipt of (a letter etc.). 3 a show that one has noticed (acknowledged my arrival with a grunt). B express appreciation of (a service etc.). 4 recognize the validity of, own (the acknowledged king). [from ad-, knowledge]

    Acknowledgement n. 1 act of acknowledging. 2 a thing given or done in gratitude. B letter confirming receipt of something. 3 (usu. In pl.) Author’s statement of gratitude, prefacing a book.

    statement of gratitude, prefacing a book.

    Acme n. Highest point (of achievement etc.). [greek]

    Acne n. Skin condition with red pimples. [latin]

    Acolyte n. 1 person assisting a priest. 2 assistant; beginner. [greek akolouthos follower]

    Aconite n. 1 any of various poisonous plants, esp. Monkshood. 2 drug from these. [greek akoniton]

    Acorn n. Fruit of the oak, with a smooth nut in a cuplike base. [old english]

    Acoustic adj. 1 of sound or the sense of hearing. 2 (of a musical instrument etc.) Without electrical amplification (acoustic guitar). acoustically adv. [greek akouo hear]

    Acoustics n.pl. 1 properties or qualities (of a room etc.) In transmitting sound. 2 (usu. As sing.) Science of sound.

    Acquaint v. (usu. Foll. By with) make aware of or familiar with (acquaint me with the facts). be acquainted with have personal knowledge of; know slightly. [latin: related to ad-, cognizance]

    Acquaintance n. 1 being acquainted. 2 person one knows slightly. acquaintanceship n.

    Acquiesce v. (-cing) 1 agree, esp. By default. 2 (foll. By in) accept (an arrangement etc.). acquiescence n. Acquiescent adj. [latin: related to ad-, quiet]

    Acquire v. (-ring) gain for oneself; come into possession of. [latin: related to *ad-, quaero quisit-seek]

    Acquired immune deficiency syndrome see *aids.

    Acquired taste n. 1 liking developed by experience. 2 object of this.

    Acquirement n. Thing acquired, esp. A mental attainment.

    Acquisition n. 1 thing acquired, esp. When useful. 2 acquiring or being acquired. [latin: related to *acquire]

    Acquisitive adj. Keen to acquire things.

    Acquit v. (-tt-) 1 (often foll. By of) declare not guilty. 2 refl. A behave or perform in a specified way (acquitted herself well). B (foll. By of) discharge (a duty or responsibility). acquittal n. [latin: related to ad-, quit]

    Acre n. Measure of land, 4,840 sq. Yds., 0.405 ha. [old english]

    Acreage n. A number of acres; extent of land.

    Acrid adj. (-er, -est) bitterly pungent. acridity n. [latin acer keen, pungent]

    Acrimonious adj. Bitter in manner or temper. acrimony n.

    Acrobat n. Entertainer performing gymnastic feats. acrobatic adj. Acrobatically adv. [greek akrobates from akron summit, baino walk]

    Acrobatics n.pl. 1 acrobatic feats. 2 (as sing.) Art of performing these.

    Acronym n. Word formed from the initial letters of other words (e.g. Laser, nato). [greek akron end, onoma name]

    Acropolis n. Citadel of an ancient greek city. [greek akron summit, polis city]

    Across —prep. 1 to or on the other side of (across the river). 2 from one side to another side of (spread across the floor). 3 at or forming an angle with (a stripe across the flag). —adv. 1 to or on the other side (ran across). 2 from one side to another (stretched across). across the board applying to all. [french à, en, croix: related to *cross]

    Acrostic n. Poem etc. In which certain letters (usu. The first and last in each line) form a word or words. [greek akron end, stikhos row]

    Acrylic —adj. Of synthetic material made from acrylic acid. —n. Acrylic fibre or fabric. [latin acer pungent, oleo to smell]

    Acrylic acid n. A pungent liquid organic acid.

    Act —n. 1 something done; a deed. 2 process of doing (caught in the act). 3 item of entertainment. 4 pretence (all an act). 5 main division of a play etc. 6 a decree of a legislative body. B document attesting a legal transaction. —v. 1 behave (acted wisely). 2 perform an action or function; take action (act as referee; brakes failed to act; he acted quickly). 3 (also foll. By on) have an effect (alcohol acts on the brain). 4 a perform a part in a play, film, etc. B pretend. 5 a play the part of (acted othello; acts the fool). B perform (a play etc.). C portray (an incident) by actions. act for be the (esp. Legal) representative of. Act of god natural event, e.g. An earthquake. Act up colloq. Misbehave; give trouble (car is acting up). Get one’s act together slang become properly organized; prepare. Put on an act colloq. Make a pretence. [latin ago act-do]

    Acting —n. Art or occupation of an actor. —attrib. Adj. Serving temporarily or as a substitute (acting manager).

    Actinism n. Property of short-wave radiation that produces chemical changes, as in photography. [greek aktis ray]

    Actinium n. Chem. Radioactive metallic element found in pitchblende. [as *actinism]

    Action n. 1 process of doing or acting (demanded action). 2 forcefulness or energy. 3 exertion of energy or influence (action of acid on metal). 4 deed, act (not aware of his actions). 5 (the action) a series of events in a story, play, etc. B slang exciting activity (missed the action). 6 battle, fighting (killed in action). 7 a mechanism of an instrument. B style of movement of an animal or human. 8 lawsuit. out of action not working. [latin: related to *act]

    Actionable adj. Giving cause for legal action.

    Action-packed adj. Full of action or excitement.

    Action point n. Proposal for action.

    Action replay n. Playback of part of a television broadcast, esp. A sporting event, often in slow motion.

    Action stations n.pl. Positions taken up by troops etc. Ready for battle.

    Activate v. (-ting) 1 make active. 2 chem. Cause reaction in. 3 make radioactive.

    Active —adj. 1 marked by action; energetic; diligent (an active life). 2 working, operative (active volcano). 3 not merely passive or inert; positive (active support; active ingredients). 4 radioactive. 5 gram. Designating the form of a verb whose subject performs the action (e.g. Saw in he saw a film). —n. Gram. Active form or voice of a verb. actively adv. [latin: related to *act]

    Active service n. Military service in wartime.

    Activism n. Policy of vigorous action, esp. For a political cause. activist n.

    Activity n. (pl. -ies) 1 being active; busy or energetic action. 2 (often in pl.) Occupation or pursuit (outdoor activities). 3 = *radioactivity.

    Actor n. Person who acts in a play, film, etc. [latin: related to *act]

    Actress n. Female actor.

    Actual adj. (usu. Attrib.) 1 existing in fact; real. 2 current. [latin: related to *act]

    Actuality n. (pl. -ies) 1 reality. 2 (in pl.) Existing conditions.

    Actually adv. 1 as a fact, really (not actually very rich). 2 strange as it may seem (he actually refused!).

    Actuary n. (pl. -ies) statistician, esp. One calculating insurance risks and premiums. actuarial adj. [latin actuarius bookkeeper]

    Actuate v. (-ting) 1 cause (a machine etc.) To move or function. 2 cause (a person) to act. [latin]

    Acuity n. Sharpness, acuteness. [medieval latin: related to *acute]

    Acumen n. Keen insight or discernment. [latin, = *acute thing]

    Acupuncture n. Medical treatment using needles in parts of the body. acupuncturist n. [latin acu with needle]

    Acute —adj. (acuter, acutest) 1 serious, severe (acute hardship). 2 (of senses etc.) Keen, penetrating. 3 shrewd. 4 (of a disease) coming quickly to a crisis. 5 (of an angle) less than 90°. 6 (of a sound) high, shrill. —n. = *acute accent. acutely adv. [latin acutus pointed]

    Acute accent n. Diacritical mark (´) placed over certain letters in french etc., esp. To show pronunciation.

    -acy suffix forming nouns of state or quality (accuracy; piracy), or an instance of it (conspiracy; fallacy). [french -acie, latin -acia, -atia, greek -ateia]

    Ad abbr. Of the christian era. [*anno domini]

    Ad n. Colloq. Advertisement. [abbreviation]

    Ad-prefix (altered or assimilated before some letters) implying motion or direction to, reduction or change into, addition, adherence, increase, or

    direction to, reduction or change into, addition, adherence, increase, or intensification. [latin]

    Adage n. Traditional maxim, proverb. [french from latin]

    Adagio mus. —adv. & adj. In slow time. —n. (pl. -s) such a movement or passage. [italian]

    Adam n. The first man. not know a person from adam be unable to recognize a person. [hebrew, = man]

    Adamant adj. Stubbornly resolute; unyielding. adamantly adv. [greek adamas adamant-untameable]

    Adam’s apple n. Projection of cartilage at the front of the neck.

    Adapt v. 1 a (foll. By to) fit, adjust (one thing to another). B (foll. By to, for) make suitable for a purpose. C modify (esp. A text for broadcasting etc.). 2 (also refl., usu. Foll. By to) adjust to new conditions. adaptable adj. Adaptation n. [latin: related to ad-, apt]

    Adaptor n. 1 device for making equipment compatible. 2 device for connecting several electrical plugs to one socket.

    Add v. 1 join (one thing to another) as an increase or supplement. 2 put together (numbers) to find their total. 3 say further. add in include. Add up 1 find the total of. 2 (foll. By to) amount to. 3 colloq. Make sense. [latin addo]

    Addendum n. (pl. -da) 1 thing to be added. 2 material added at the end of a book.

    Adder n. Small venomous snake, esp. The common viper. [old english, originally nadder]

    Addict n. 1 person addicted, esp. To a drug. 2 colloq. Devotee (film addict). [latin: related to *ad-, dico say]

    Addicted adj. 1 (usu. Foll. By to) dependent on a drug etc. As a habit. 2 devoted to an interest. addiction n.

    Addictive adj. Causing addiction.

    Addition n. 1 adding. 2 person or thing added. in addition (often foll. By to) also, as well (as). [latin: related to *add]

    Additional adj. Added, extra, supplementary. additionally adv.

    Additive n. Substance added to improve another, esp. To colour, flavour, or preserve food. [latin: related to *add]

    Addle v. (-ling) 1 muddle, confuse. 2 (usu. As addled adj.) (of an egg) become rotten. [old english, = filth]

    Address —n. 1 a place where a person lives or an organization is situated. B particulars of this, esp. For postal purposes. C computing location of an item of stored information. 2 discourse to an audience. —v. 1 write postal directions on (an envelope etc.). 2 direct (remarks etc.). 3 speak or write to, esp. Formally. 4 direct one’s attention to. 5 golf take aim at (the ball). address oneself to 1 speak or write to. 2 attend to. [french: related to ad-, direct]

    Addressee n. Person to whom a letter etc. Is addressed.

    Adduce v. (-cing) cite as an instance or as proof or evidence. adducible adj. [latin: related to *ad-, duco lead]

    Adenoids n.pl. Area of enlarged lymphatic tissue between the nose and the throat, often hindering breathing in the young. adenoidal adj. [greek aden gland]

    Adept —adj. (foll. By at, in) skilful. —n. Adept person. [latin adipiscor adept-attain]

    Adequate adj. Sufficient, satisfactory. adequacy n. Adequately adv. [latin: related to ad-, equate]

    À deux adv. & adj. For or between two. [french]

    Adhere v. (-ring) 1 (usu. Foll. By to) stick fast to a substance etc. 2 (foll. By to) behave according to (a rule, undertaking, etc.). 3 (foll. By to) give allegiance.

    [latin haereo stick]

    Adherent —n. Supporter. —adj. Sticking, adhering. adherence n.

    Adhesion n. 1 adhering. 2 unnatural union of body tissues due to inflammation.

    Adhesive —adj. Sticky, causing adhesion. —n. Adhesive substance. adhesiveness n.

    Ad hoc adv. & adj. For one particular occasion or use. [latin]

    Adieu int. Goodbye. [french, = to god]

    Ad infinitum adv. Without limit; for ever. [latin]

    Adipose adj. Of fat; fatty (adipose tissue). adiposity n. [latin adeps fat]

    Adjacent adj. (often foll. By to) lying near; adjoining. adjacency n. [latin jaceo lie]

    Adjective n. Word used to describe or modify a noun or pronoun. adjectival adj. [latin jaceo lie]

    Adjoin v. Be next to and joined with. [latin jungo join]

    Adjourn v. 1 put off, postpone; break off (a meeting etc.) Temporarily. 2 (of a meeting) break and disperse or (foll. By to) transfer to another place (adjourned to the pub). adjournment n. [latin: related to *ad-, diurnum day]

    Adjudge v. (-ging) 1 pronounce judgement on (a matter). 2 pronounce or award judicially. adjudgement n. (also adjudgment). [latin judex judge]

    Adjudicate v. (-ting) 1 act as judge in a competition, court, etc. 2 adjudge. adjudication n. Adjudicative adj. Adjudicator n.

    Adjunct n. 1 (foll. By to, of) subordinate or incidental thing. 2 gram. Word or phrase used to explain or amplify the predicate, subject, etc. [latin: related to *adjoin]

    Adjure v. (-ring) (usu. Foll. By to + infin.) Beg or command. adjuration n. [latin adjuro put to oath: related to *jury]

    Adjust v. 1 order or position; regulate; arrange. 2 (usu. Foll. By to) become or make suited; adapt. 3 harmonize (discrepancies). 4 assess (loss or damages). adjustable adj. Adjustment n. [latin juxta near]

    Adjutant n. 1 a army officer assisting a superior in administrative duties. B assistant. 2 (in full adjutant bird) giant indian stork. [latin: related to *ad-, juvo jut-help]

    Ad lib —v. (-bb-) improvise. —adj. Improvised. —adv. As one pleases, to any desired extent. [abbreviation of latin ad libitum according to pleasure]

    Admin n. Colloq. Administration. [abbreviation]

    Administer v. 1 manage (business affairs etc.). 2 a deliver or dispense, esp. Formally (a punishment, sacrament, etc.). B (usu. Foll. By to) direct the taking of (an oath). [latin: related to ad-, minister]

    Administrate v. (-ting) administer (esp. Business affairs); act as an administrator.

    Administration n. 1 administering, esp. Public affairs. 2 government in power.

    Administrative adj. Of the management of affairs.

    Administrator n. Manager of a business, public affairs, or a person’s estate.

    Admirable adj. Deserving admiration; excellent. admirably adv. [latin: related to *admire]

    Admiral n. 1 a commander-in-chief of a navy. B high-ranking naval officer, commander. 2 any of various butterflies. [arabic: related to *amir]

    Admiralty n. (pl. -ies) (in full admiralty board) hist. Committee superintending the royal navy.

    Admiration n. 1 respect; warm approval or pleasure. 2 object of this.

    Admire v. (-ring) 1 regard with approval, respect, or satisfaction. 2 express admiration of. admirer n. Admiring adj. Admirlingly adv. [latin: related to *ad-, miror wonder at]

    Admissible adj. 1 (of an idea etc.) Worth accepting or considering. 2 law allowable as evidence. [latin: related to *admit]

    Admission n. 1 acknowledgement (admission of error). 2 a process or right of entering. B charge for this (admission is £5).

    Admit v. (-tt-) 1 (often foll. By to be, or that + clause) acknowledge; recognize as true. 2 (foll. By to) confess to (a deed, fault, etc.). 3 allow (a person) entrance, access, etc. 4 take (a patient) into hospital. 5 (of an enclosed space) accommodate. 6 (foll. By of) allow as possible. [latin mitto miss-send]

    Admittance n. Admitting or being admitted, usu. To a place.

    Admittedly adv. As must be admitted.

    Admixture n. 1 thing added, esp. A minor ingredient. 2 adding of this.

    Admonish v. 1 reprove. 2 urge, advise. 3 (foll. By of) warn. admonishment n. Admonition n. Admonitory adj. [latin moneo warn]

    Ad nauseam adv. Excessively; disgustingly. [latin, = to sickness]

    Ado n. Fuss, busy activity; trouble. [from at, do1: originally in much ado = much to do]

    Adobe n. 1 sun-dried brick. 2 clay for making these. [spanish]

    Adolescent —adj. Between childhood and adulthood. —n. Adolescent person. adolescence n. [latin adolesco grow up]

    Adonis n. Handsome young man. [latin, name of a youth loved by venus]

    Adopt v. 1 legally take (a person) into a relationship, esp. Another’s child as one’s own. 2 choose (a course of action etc.). 3 take over (another’s idea etc.). 4 choose as a candidate for office. 5 accept responsibility for the maintenance of (a road etc.). 6 accept or approve (a report, accounts, etc.). adoption n. [latin: related to ad-, opt]

    Adoptive adj. Because of adoption (adoptive son). [latin: related to *adopt]

    Adorable adj. 1 deserving adoration. 2 colloq. Delightful, charming.

    Adorable adj. 1 deserving adoration. 2 colloq. Delightful, charming.

    Adore v. (-ring) 1 love intensely. 2 worship as divine. 3 colloq. Like very much. adoration n. Adorer n. [latin adoro worship]

    Adorn v. Add beauty to; decorate. adornment n. [latin: related to *ad-, orno decorate]

    Adrenal —adj. 1 at or near the kidneys. 2 of the adrenal glands. —n. (in full adrenal gland) either of two ductless glands above the kidneys, secreting adrenalin. [from ad-, renal]

    Adrenalin n. (also adrenaline) 1 stimulative hormone secreted by the adrenal glands. 2 this extracted or synthesized for medicinal use.

    Adrift adv. & predic.adj. 1 drifting. 2 powerless; aimless. 3 colloq. A unfastened. B out of order, wrong (plans went adrift).

    Adroit adj. Dexterous, skilful. [french à droit according to right]

    Adsorb v. (usu. Of a solid) hold (molecules of a gas or liquid etc.) To its surface, forming a thin film. adsorbent adj. & n. Adsorption n. [from ad-, absorb]

    Adulation n. Obsequious flattery. [latin adulor fawn on]

    Adult —adj. 1 mature, grown-up. 2 (attrib.) Of or for adults (adult education). — n. Adult person. adulthood n. [latin adolesco adultus grow up]

    Adulterate v. (-ting) debase (esp. Foods) by adding other substances. adulterant adj. & n. Adulteration n. [latin adultero corrupt]

    Adulterer n. (fem. Adulteress) person who commits adultery.

    Adultery n. Voluntary sexual intercourse between a married person and a person other than his or her spouse. adulterous adj.

    Adumbrate v. (-ting) 1 indicate faintly or in outline. 2 foreshadow. 3 overshadow. adumbration n. [latin: related to *ad-, umbra shade]

    Advance —v. (-cing) 1 move or put forward; progress. 2 pay or lend (money) beforehand. 3 promote (a person, cause, etc.). 4 present (a suggestion etc.). 5 (as advanced adj.) A well ahead. B socially progressive. —n. 1 going forward; progress. 2 prepayment; loan. 3 (in pl.) Amorous approaches. 4 rise in price. — attrib. Adj. Done or supplied beforehand (advance warning). advance on approach threateningly. In advance ahead in place or time. [latin: related to *ab-, ante before]

    Advanced level n. High level of gce examination.

    Advancement n. Promotion of a person, cause, or plan.

    Advantage —n. 1 beneficial feature. 2 benefit, profit. 3 (often foll. By over) superiority. 4 (in tennis) the next point after deuce. —v. (-ging) benefit, favour. take advantage of 1 make good use of. 2 exploit, esp. Unfairly. 3 euphem. Seduce. advantageous adj. [french: related to *advance]

    Advent n. 1 season before christmas. 2 coming of christ. 3 (advent) important arrival. [latin adventus from venio come]

    Adventist n. Member of a christian sect believing in the imminent second coming of christ.

    Adventitious adj. 1 accidental, casual. 2 added from outside. 3 biol. Formed accidentally or under unusual conditions. [latin: related to *advent]

    Adventure —n. 1 unusual and exciting experience. 2 enterprise (spirit of adventure). —v. (-ring) dare, venture; engage in adventure. [latin: related to *advent]

    Adventure playground n. Playground with climbing-frames, building blocks, etc.

    Adventurer n. (fem. Adventuress) 1 person who seeks adventure, esp. For personal gain or enjoyment. 2 financial speculator.

    Adventurous adj. Venturesome, enterprising.

    Adverb n. Word indicating manner, degree, circumstance, etc., used to modify

    Adverb n. Word indicating manner, degree, circumstance, etc., used to modify an adjective, verb, or other adverb (e.g. Gently, quite, then). adverbial adj. [latin: related to *ad-, verbum word, *verb]

    Adversary n. (pl. -ies) enemy, opponent.

    Adverse adj. Unfavourable; harmful. adversely adv. [latin: related to *ad-, verto vers-turn]

    Adversity n. Misfortune, distress.

    Advert n. Colloq. Advertisement. [abbreviation]

    Advertise v. (-sing) 1 promote (goods or services) publicly to increase sales. 2 make generally known. 3 (often foll. By for) seek by a notice in a newspaper etc. To buy, employ, sell, etc. [french avertir: related to *adverse]

    Advertisement n. 1 public announcement, esp. Of goods etc. For sale or wanted, vacancies, etc. 2 advertising. [french avertissement: related to *adverse]

    Advice n. 1 recommendation on how to act. 2 information given; news. 3 formal notice of a transaction.

    Advisable adj. To be recommended, expedient. advisability n.

    Advise v. (-sing) 1 (also absol.) Give advice to. 2 recommend (advised me to rest). 3 (usu. Foll. By of, or that + clause) inform. [latin: related to *ad-, video vis-see]

    Advisedly adv. After due consideration; deliberately.

    Adviser n. (also advisor) person who advises, esp. Officially.

    Usage the variant advisor is fairly common, but is considered incorrect by many people.

    Advisory adj. Giving advice (advisory body).

    Advocaat n. Liqueur of eggs, sugar, and brandy. [dutch, = *advocate]

    Advocacy n. Support or argument for a cause, policy, etc.

    Advocate —n. 1 (foll. By of) person who supports or speaks in favour. 2 person who pleads for another, esp. In a lawcourt. —v. (-ting) recommend by argument. [latin: related to *ad-, voco call]

    Adz n. (brit adze) tool like an axe, with an arched blade at right angles to the handle. [old english]

    Adze n. (us adz) tool like an axe, with an arched blade at right angles to the handle. [old english]

    Aegis n. Protection; support. [greek aigis shield of zeus or athene]

    Aeolian harp n. Stringed instrument or toy sounding when the wind passes through it. [latin aeolus wind-god, from greek]

    Aeon n. (also eon) 1 long or indefinite period. 2 an age. [latin from greek]

    Aerate v. (-ting) 1 charge (a liquid) with carbon dioxide. 2 expose to air. aeration n. [latin aer *air]

    Aerial —n. Device for transmitting or receiving radio waves. —adj. 1 by or from the air; involving aircraft (aerial attack). 2 existing in the air. 3 of or like air. [greek: related to *air]

    Aero-comb. Form air; aircraft. [greek aero-from aer air]

    Aerobatics n.pl. 1 spectacular flying of aircraft, esp. To entertain. 2 (as sing.) Performance of these. [from *aero-, after *acrobatics]

    Aerobics n.pl. Vigorous exercises designed to increase oxygen intake. aerobic adj. [from *aero-, greek bios life]

    adj. [from *aero-, greek bios life]

    Aerodrome n. Small airport or airfield. [from *aero-, greek dromos course]

    Aerodynamics n.pl. (usu. Treated as sing.) Dynamics of solid bodies moving through air. aerodynamic adj.

    Aerofoil n. Structure with curved surfaces (e.g. A wing, fin, or tailplane) designed to give lift in flight.

    Aeronautics n.pl. (usu. Treated as sing.) Science or practice of motion in the air. aeronautic adj. Aeronautical adj. [from *aero-, *nautical]

    Aeroplane n. Powered heavier-than-air flying vehicle with fixed wings. [french: related to *aero-, *plane1]

    Aerosol n. 1 pressurized container releasing a substance as a fine spray. 2 system of minute particles suspended in gas (e.g. Fog or smoke). [from *aero-, *solution]

    Aerospace n. 1 earth’s atmosphere and outer space. 2 aviation in this.

    Aesthete n. Person who has or professes a special appreciation of beauty. [greek aisthanomai perceive]

    Aesthete n. Person who has or professes a special appreciation of beauty. [greek

    Aesthete n. Person who has or professes a special appreciation of beauty. [greek aisthanomai perceive]

    Aesthetic —adj. 1 of or sensitive to beauty. 2 artistic, tasteful. —n. (in pl.) Philosophy of beauty, esp. In art. aesthetically adv. Aestheticism n.

    Aetiology n. (us etiology) study of causation or of the causes of disease. aetiological adj. [greek aitia cause]

    Af abbr. Audio frequency.

    Afar adv. At or to a distance.

    Affable adj. 1 friendly. 2 courteous. affability n. Affably adv. [latin affabilis]

    Affair n. 1 matter, concern, or thing to be attended to (that is my affair). 2 a celebrated or notorious happening. B colloq. Thing or event (puzzling affair). 3 = *love affair. 4 (in pl.) Public or private business. [french à faire to do]

    Affect v. 1 a produce an effect on. B (of disease etc.) Attack. 2 move emotionally. 3 pretend (affected ignorance). 4 pose as or use for effect (affects the aesthete; affects fancy hats). affecting adj. Affectingly adv. [latin afficio affect-influence]

    Usage affect should not be confused with effect, meaning ‘to bring about’. Note also that effect is used as a noun as well as a verb.

    also that effect is used as a noun as well as a verb.

    Affectation n. 1 artificial manner. 2 (foll. By of) studied display. 3 pretence.

    Affected adj. 1 pretended, artificial. 2 full of affectation.

    Affection n. 1 goodwill, fond feeling. 2 disease; diseased condition.

    Affectionate adj. Loving, fond. affectionately adv.

    Affidavit n. Written statement confirmed by oath. [latin, = has stated on oath]

    Affiliate —v. (-ting) (foll. By to, with) attach, adopt, or connect as a member or branch. —n. Affiliated person etc. [latin: related to *filial]

    Affiliation n. Affiliating or being affiliated.

    Affiliation order n. Legal order against the supposed father of an illegitimate child for support.

    Affinity n. (pl. -ies) 1 liking or attraction; feeling of kinship. 2 relationship, esp. By marriage. 3 similarity of structure or character suggesting a relationship. 4 chem. The tendency of certain substances to combine with others. [latin finis border]

    Affirm v. 1 assert, state as a fact. 2 law make a solemn declaration in place of an oath. affirmation n. [latin: related to *firm1]

    Affirmative —adj. Affirming; expressing approval. —n. Affirmative statement or word etc.

    Affix —v. 1 attach, fasten. 2 add in writing. —n. 1 addition. 2 gram. Prefix or suffix. [latin: related to *fix]

    Afflict v. Distress physically or mentally. [latin fligo flict-strike down]

    Affliction n. 1 distress, suffering. 2 cause of this.

    Affluent adj. Wealthy, rich. affluence n. [latin: related to *fluent]

    Afford v. 1 (prec. By can or be able to) a have enough money, time, etc., for; be able to spare. B be in a position (can’t afford to be critical). 2 provide (affords a view of the sea). [old english ge-prefix implying completeness, *forth]

    Afforest v. 1 convert into forest. 2 plant with trees. afforestation n. [latin: related to *forest]

    Affray n. Breach of the peace by fighting or rioting in public. [anglo-french = ‘remove from peace’]

    ‘remove from peace’]

    Affront —n. Open insult. —v. Insult openly; offend, embarrass. [latin: related to *front]

    Afghan —n. 1 a native or national of afghanistan. B person of afghan descent. 2 official language of afghanistan. —adj. Of afghanistan. [pashto]

    Afghan hound n. Tall hunting dog with long silky hair.

    Aficionado n. (pl. -s) devotee of a sport or pastime. [spanish]

    Afield adv. To or at a distance (esp. Far afield). [old english: related to *a2]

    Aflame adv. & predic.adj. 1 in flames. 2 very excited.

    Afloat adv. & predic.adj. 1 floating. 2 at sea. 3 out of debt or difficulty. 4 current. [old english: related to *a2]

    Afoot adv. & predic.adj. In operation; progressing.

    Afore prep. & adv. Archaic before; previously; in front (of). [old english: related to *a2]

    Afore-comb. Form before, previously (aforementioned; aforesaid).

    Afore prep. & adv. Archaic before; previously; in front (of). [old english: related to *a2]

    Afore-comb. Form before, previously (aforementioned; aforesaid).

    Aforethought adj. Premeditated (following a noun: malice aforethought).

    Afraid predic. Adj. Alarmed, frightened. be afraid colloq. Politely regret (i’m afraid we’re late). [originally past part. Of *affray]

    Afresh adv. Anew; with a fresh beginning. [earlier of fresh]

    African —n. 1 native (esp. Dark-skinned) of africa. 2 person of african descent. —adj. Of africa. [latin]

    African elephant n. The elephant of africa, larger than that of india.

    African violet n. House-plant with velvety leaves and blue, purple, or pink flowers.

    Afrikaans n. Language derived from dutch, used in s. Africa. [dutch, = ‘african’]

    Afrikaner n. Afrikaans-speaking white person in s. Africa, esp. Of dutch descent.

    Afro —adj. (of hair) tightly-curled and bushy. —n. (pl. -s) afro hairstyle.

    Afro-comb. Form african.

    Afro-american —adj. Of american blacks or their culture. —n. American black.

    Afro-caribbean —n. Caribbean person of african descent. —adj. Of afro-caribbeans.

    Aft adv. Naut. & aeron. At or towards the stern or tail. [earlier baft]

    After —prep. 1 following in time; later than (after a week). 2 in view of, in spite of (after what you did what do you expect?; after all my efforts i still lost). 3 behind (shut the door after you). 4 in pursuit or quest of (run after them). 5 about, concerning (asked after her). 6 in allusion to (named after the prince). 7 in imitation of (a painting after rubens). 8 next in importance to (best one after mine). —conj. Later than (left after they arrived). —adv. 1 later (soon after). 2 behind (followed on after). —adj. 1 later, following (in after years). 2 naut. Nearer the stern (after cabins). after all in spite of everything (after all, what does it matter?). After one’s own heart to one’s taste. [old english]

    Afterbirth n. Placenta etc. Discharged from the womb after childbirth.

    After-care n. Attention after leaving hospital etc.

    After-effect n. Delayed effect following an accident, trauma, etc.

    Afterglow n. Glow remaining after its source has disappeared.

    Afterlife n. Life after death.

    Aftermath n. 1 consequences, esp. Unpleasant (aftermath of war). 2 new grass growing after mowing. [from *after, math mowing]

    Afternoon n. Time from noon or lunch-time to evening.

    Afterpains n.pl. Pains caused by contraction of the womb after childbirth.

    Afters n.pl. Colloq. = *dessert 1.

    Aftershave n. Lotion used after shaving.

    Aftertaste n. Taste after eating or drinking.

    Afterthought n. Thing thought of or added later.

    Afterward adv. (brit. Afterwards) later, subsequently. [old english: related to after, -ward]

    Afterwards adv. (us afterward) later, subsequently. [old english: related to after, -ward]

    Ag symb. Silver. [latin argentum]

    Again adv. 1 another time; once more. 2 as previously (home again; well again). 3 in addition (as much again). 4 further, besides (again, what about you?). 5 on the other hand (i might, and again i might not). again and again repeatedly. [old english]

    Against prep. 1 in opposition to (fight against crime). 2 into collision or in contact with (lean against the wall). 3 to the disadvantage of (my age is against me). 4 in contrast to (against a dark background). 5 in anticipation of (against his coming; against the cold). 6 as a compensating factor to (income against expenditure). 7 in return for (issued against payment of the fee). against the grain see grain. Against time see time. [from *again, with inflectional -s]

    Agape predic. Adj. Gaping, open-mouthed. [from *a2]

    Agaric n. Fungus with a cap and stalk, e.g. The common mushroom. [greek

    agarikon]

    Agate n. Hard usu. Streaked chalcedony. [greek akhates]

    Agate n. Hard usu. Streaked chalcedony. [greek akhates]

    Agave n. Plant with rosettes of narrow spiny leaves and flowers on tall stem. [agave, name of a woman in greek mythology]

    Age —n. 1 length of time that a person or thing has existed. 2 a colloq. (often in pl.) A long time (waited for ages). B distinct historical period (bronze age). 3 old age. —v. (ageing) 1 show or cause to show signs of advancing age. 2 grow old. 3 mature. come of age reach adult status (esp. Law at 18, formerly 21). [latin aetas]

    -age suffix forming nouns denoting: 1 action (breakage). 2 condition (bondage). 3 aggregate or number (coverage; acreage). 4 cost (postage). 5 result (wreckage). 6 place or abode (anchorage; orphanage). [latin -aticus]

    Aged adj. 1 (predic.) Of the age of (aged 3). 2 old.

    Ageism n. Prejudice or discrimination on grounds of age. ageist adj. & n.

    Ageless adj. 1 never growing or appearing old. 2 eternal.

    Agelong adj. Existing for a very long time.

    Agelong adj. Existing for a very long time.

    Agency n. (pl. -ies) 1 business or premises of an agent. 2 action; intervention (free agency; by the agency of god). [latin: related to *act]

    Agenda n. (pl. -s) 1 list of items to be considered at a meeting. 2 things to be done.

    Agent n. 1 a person who acts for another in business etc. B spy. 2 person or thing that exerts power or produces an effect.

    Agent provocateur n. (pl. Agents provocateurs pronunc. Same) person used to tempt suspected offenders to self-incriminating action. [french, = provocative agent]

    Age of consent n. Age at which consent to sexual intercourse is valid in law.

    Age-old adj. Very long-standing.

    Agglomerate —v. (-ting) collect into a mass. —n. Mass, esp. Of fused volcanic fragments. —adj. Collected into a mass. agglomeration n. [latin glomus -meris ball]

    Agglutinate v. (-ting) stick as with glue. agglutination n. Agglutinative adj. [latin: related to *gluten]

    Aggrandize v. (also -ise) (-zing or -sing) 1 increase the power, rank or wealth of. 2 make seem greater. aggrandizement n. [french: related to *grand]

    Aggravate v. (-ting) 1 make worse or more serious. 2 annoy. aggravation n. [latin gravis heavy]

    Usage the use of aggravate in sense 2 is regarded by some people as incorrect, but it is common in informal use.

    Aggregate —n. 1 sum total, amount assembled. 2 crushed stone etc. Used in making concrete. 3 rock formed of a mass of different particles or minerals. — adj. Combined, collective, total. —v. (-ting) 1 collect, combine into one mass. 2 colloq. Amount to. 3 unite. in the aggregate as a whole. aggregation n. Aggregative adj. [latin grex greg-flock]

    Aggression n. 1 unprovoked attacking or attack. 2 hostile or destructive behaviour. [latin gradior gress-walk]

    Aggressive adj. 1 given to aggression; hostile. 2 forceful, self-assertive. aggressively adv.

    Aggressor n. Person or party that attacks without provocation.

    Aggrieved adj. Having a grievance. [french: related to *grief]

    Aggro n. Slang 1 aggressive hostility. 2 trouble, difficulty. [abbreviation of aggravation or aggression]

    Aghast predic. Adj. Filled with dismay or consternation. [past part. Of obsolete (a)gast frighten]

    Agile adj. Quick-moving, nimble, active. agility n. [latin agilis: related to *act]

    Agitate v. (-ting) 1 disturb or excite (a person or feelings). 2 (often foll. By for, against) campaign, esp. Politically (agitated for tax reform). 3 shake briskly. agitation n. Agitator n. [latin agito: related to *act]

    Aglow predic. Adj. Glowing.

    Agm abbr. Annual general meeting.

    Agnail n. Piece of torn skin at the root of a fingernail; resulting soreness. [old english, = tight (metal) nail, hard excrescence in flesh]

    Agnostic —n. Person who believes that the existence of god is not provable. — adj. Of agnosticism. agnosticism n. [from a-, gnostic]

    Ago adv. (prec. By duration) earlier, in the past. [originally agone = gone by]

    Agog predic. Adj. Eager, expectant. [french gogue fun]

    Agonize v. (also -ise) (-zing or -sing) 1 undergo (esp. Mental) anguish; suffer or cause to suffer agony. 2 (as agonized adj.) Expressing agony (an agonized look).

    Agony n. (pl. -ies) 1 extreme mental or physical suffering. 2 severe struggle. [greek agon struggle]

    Agony aunt n. Colloq. Person (esp. A woman) who answers letters in an agony column.

    Agony column n. Colloq. 1 column in a magazine etc. Offering personal advice to correspondents. 2 = *personal column.

    Agoraphobia n. Abnormal fear of open spaces or public places. agoraphobic adj. & n. [greek agora market-place]

    Agrarian —adj. 1 of the land or its cultivation. 2 of landed property. —n. Advocate of the redistribution of land. [latin ager field]

    Agree v. (-ees, -eed, -eeing) 1 hold the same opinion (i agree with you). 2 consent (agreed to go). 3 (often foll. By with) a become or be in harmony. B suit (fish didn’t agree with him). C gram. Have the same number, gender, case, or person as. 4 reach agreement about (agreed a price). 5 (foll. By on) decide mutually on (agreed on a compromise). be agreed be of one opinion. [latin: related to *ad-, gratus pleasing]

    Agreeable adj. 1 pleasing, pleasant. 2 willing to agree. agreeably adv.

    Agreement n. 1 act or state of agreeing. 2 arrangement or contract.

    Agriculture n. Cultivation of the soil and rearing of animals. agricultural adj. Agriculturalist n. [latin ager field]

    Agrimony n. (pl. -ies) perennial plant with small yellow flowers. [greek argemone poppy]

    Agronomy n. Science of soil management and crop production. agronomist n. [greek agros land]

    Aground predic. Adj. & adv. On or on to the bottom of shallow water (run aground).

    Ague n. 1 hist. Malarial fever. 2 shivering fit. [latin: related to *acute]

    Ah abbr. In the year of the hegira (ad 622); of the muslim era. [latin anno hegirae]

    Ah int. Expressing surprise, pleasure, realization, etc. [french a]

    Aha int. Expressing surprise, triumph, mockery, etc. [from ah, ha1]

    Ahead adv. 1 further forward in space or time. 2 in the lead (ahead on points).

    Ahem int. Used to attract attention, gain time, etc. [from *hem2]

    Ahoy int. Naut. Call used in hailing. [from ah, hoy]

    Ai abbr. 1 artificial insemination. 2 artificial intelligence.

    Aid abbr. Artificial insemination by donor.

    Aid —n. 1 help. 2 person or thing that helps. —v. 1 help. 2 promote (sleep will aid recovery). in aid of 1 in support of. 2 colloq. For the purpose of (what’s it all in aid of?). [latin: related to *ad-, juvo help]

    Aide n. 1 aide-de-camp. 2 esp. Us assistant. [french]

    Aide-de-camp n. (pl. Aides-de-camp pronunc. Same) officer assisting a senior officer. [french]

    Aids n. (also aids) acquired immune deficiency syndrome, an often fatal viral

    Aids n. (also aids) acquired immune deficiency syndrome, an often fatal viral syndrome marked by severe loss of resistance to infection. [abbreviation]

    Ail v. 1 archaic (only in 3rd person interrog. Or indefinite constructions) trouble or afflict (what ails him?). 2 (usu. Be ailing) be ill. [old english]

    Aileron n. Hinged flap on an aeroplane wing. [french aile wing]

    Ailing adj. 1 ill. 2 in poor condition.

    Ailment n. Minor illness or disorder.

    Aim —v. 1 intend or try; attempt (aim at winning; aim to win). 2 (usu. Foll. By at) direct or point (a weapon, remark, etc.). 3 take aim. —n. 1 purpose or object. 2 the directing of a weapon etc. At an object. take aim direct a weapon etc. At a target. [latin aestimare reckon]

    Aimless adj. Without aim or purpose. aimlessly adv.

    Ain’t contr. Colloq. 1 am, is, or are not. 2 have or has not.

    Usage the use of ain’t is usually regarded as unacceptable in spoken and written english.

    Aimless adj. Without aim or purpose. aimlessly adv.

    Ain’t contr. Colloq. 1 am, is, or are not. 2 have or has not.

    Usage the use of ain’t is usually regarded as unacceptable in spoken and written english.

    Air —n. 1 mixture mainly of oxygen and nitrogen surrounding the earth. 2 earth’s atmosphere; open space in it; this as a place for flying aircraft. 3 a distinctive impression or manner (air of mystery). B (esp. In pl.) Pretentiousness (gave himself airs). 4 tune. 5 light wind. —v. 1 expose (clothes, a room, etc.) To fresh air or warmth to remove damp. 2 express and discuss publicly (an opinion, question, grievance, etc.). by air by or in an aircraft. In the air 1 (of opinions etc.) Prevalent. 2 (of plans etc.) Uncertain. On (or off) the air being (or not being) broadcast. [greek aer]

    Airbase n. Base for military aircraft.

    Air-bed n. Inflatable mattress.

    Airborne adj. 1 transported by air. 2 (of aircraft) in the air after taking off.

    Air-brick n. Perforated brick used for ventilation.

    Airbus n. Propr. Short-haul passenger aircraft.

    Air chief marshal n. Raf officer of high rank, above air marshal.

    Air commodore n. Raf officer next above group captain.

    Air-conditioning n. 1 system for regulating the humidity, ventilation, and temperature in a building. 2 apparatus for this. air-conditioned adj.

    Aircraft n. (pl. Same) machine capable of flight, esp. An aeroplane or helicopter.

    Aircraft-carrier n. Warship carrying and used as a base for aircraft.

    Aircraftman n. Lowest rank in the raf.

    Aircraftwoman n. Lowest rank in the wraf.

    Aircrew n. Crew of an aircraft.

    Air-cushion n. 1 inflatable cushion. 2 layer of air supporting a hovercraft etc.

    Airedale n. Large terrier of a rough-coated breed. [airedale in yorkshire]

    Airer n. Stand for airing or drying clothes etc.

    Airfield n. Area with runway(s) for aircraft.

    Air force n. Branch of the armed forces fighting in the air.

    Airgun n. Gun using compressed air to fire pellets.

    Airhead n. Slang stupid or foolish person.

    Air hostess n. Stewardess in a passenger aircraft.

    Airless adj. Stuffy; still, calm.

    Air letter n. Sheet of light paper forming a letter for sending by airmail.

    Airlift —n. Emergency transport of supplies etc. By air. —v. Transport thus.

    Airline n. Public air transport system or company.

    Airliner n. Large passenger aircraft.

    Airlock n. 1 stoppage of the flow by an air bubble in a pump or pipe. 2 compartment permitting movement between areas at different pressures.

    Airmail n. 1 system of transporting mail by air. 2 mail carried by air.

    Airman n. Pilot or member of an aircraft crew, esp. In an air force.

    Air marshal n. Raf officer of high rank, above air vice-marshal.

    Airplane n. Us = *aeroplane.

    Air pocket n. Apparent vacuum causing an aircraft to drop suddenly.

    Airport n. Airfield with facilities for passengers and goods.

    Air raid n. Attack by aircraft on ground targets.

    Air rifle n. Rifle using compressed air to fire pellets.

    Airs and graces n.pl. Affected manner.

    Airscrew n. Aircraft propeller.

    Airship n. Power-driven aircraft lighter than air.

    Airsick adj. Nauseous from air travel.

    Airspace n. Air above a country and subject to its jurisdiction.

    Air speed n. Aircraft’s speed relative to the air.

    Airstrip n. Strip of ground for the take-off and landing of aircraft.

    Air terminal n. Building with transport to and from an airport.

    Airtight adj. Impermeable to air.

    Air traffic controller n. Official who controls air traffic by radio.

    Air vice-marshal n. Raf officer of high rank, just below air marshal.

    Airwaves n.pl. Colloq. Radio waves used in broadcasting.

    Airway n. Recognized route of aircraft.

    Airwoman n. Woman pilot or member of an aircraft crew, esp. In an air force.

    Airworthy adj. (of an aircraft) fit to fly.

    Airy adj. (-ier, -iest) 1 well-ventilated, breezy. 2 flippant, superficial. 3 light as air. 4 ethereal. airily adv.

    Airy-fairy adj. Colloq. Unrealistic, impractical.

    Aisle n. 1 the part of a church on either side of the nave, divided from it by pillars. 2 passage between rows of pews, seats, etc. [latin ala wing]

    Aitch n. The letter h. [french ache]

    Aitchbone n. 1 rump bone of an animal. 2 cut of beef over this. [originally nache-bone from latin natis buttock]

    Ajar adv. & predic.adj. (of a door) slightly open. [from *a2, obsolete char from old english cerr a turn]

    Akela n. Adult leader of cub scouts. [name of the leader of the wolf-pack in kipling’s jungle book]

    Akimbo adv. (of the arms) with hands on the hips and elbows turned outwards. [originally in kenebowe, probably from old norse]

    Akin predic. Adj. 1 related by blood. 2 similar.

    Al symb. Aluminium.

    -al suffix 1 (also -ial) forming adjectives meaning ‘relating to, of the kind of’ (central; tidal; dictatorial). 2 forming nouns, esp. Of verbal action (removal). [latin -alis]

    À la prep. In the manner of (à la russe). [french from *à la mode]

    Alabaster —n. Translucent usu. White form of gypsum, used for carving etc. — adj. 1 of alabaster. 2 white or smooth. [greek alabastros]

    À la carte adv. & adj. With individually priced dishes. [french]

    Alacrity n. Briskness; cheerful readiness. [latin alacer brisk]

    À la mode adv. & adj. In fashion; fashionable. [french]

    À la mode adv. & adj. In fashion; fashionable. [french]

    Alarm —n. 1 warning of danger etc. 2 a warning sound or device. B = *alarm clock. 3 apprehension (filled with alarm). —v. 1 frighten or disturb. 2 warn. alarming adj. Alarmingly adv. [italian all’arme! To arms]

    Alarm clock n. Clock that rings at a set time.

    Alarmist n. Person stirring up alarm.

    Alas int. Expressing grief, pity, or concern. [french: related to *ah, latin lassus weary]

    Alb n. Long white vestment worn by christian priests. [latin albus white]

    Albatross n. 1 a long-winged, stout-bodied bird related to the petrel. B encumbrance. 2 golf score of three strokes under par at any hole. [alteration of alcatras, from spanish and portuguese alcatraz from arabic, = the jug]

    Albeit conj. Literary though. [all be it]

    Albino n. (pl. -s) 1 person or animal lacking pigment in the skin and hair (which are white), and the eyes (usu. Pink). 2 plant lacking normal colouring. albinism n. [spanish and portuguese: related to *alb]

    Album n. 1 book for photographs, stamps, etc. 2 a long-playing gramophone record. B set of these. [latin, = blank tablet, from albus white]

    Albumen n. 1 egg-white. 2 substance found between the skin and germ of many seeds, usu. The edible part. [latin: related to *album]

    Albumin n. Water-soluble protein found in egg-white, milk, blood, etc. albuminous adj.

    Alchemy n. Medieval chemistry, esp. Seeking to turn base metals into gold. alchemist n. [arabic]

    Alcohol n. 1 (in full ethyl alcohol) colourless volatile inflammable liquid, esp. As the intoxicant in wine, beer, spirits, etc., and as a solvent, fuel, etc. 2 liquor containing this. 3 chem. Any of many organic compounds containing one or more hydroxyl groups attached to carbon atoms. [arabic: related to *kohl]

    Alcoholic —adj. Of, like, containing, or caused by alcohol. —n. Person suffering from alcoholism.

    Alcoholism n. Condition resulting from addiction to alcohol.

    Alcove n. Recess, esp. In the wall of a room. [arabic, = the vault]

    Aldehyde n. Chem. Any of a class of compounds formed by the oxidation of alcohols. [from *alcohol, de-, hydrogen]

    Aldehyde n. Chem. Any of a class of compounds formed by the oxidation of alcohols. [from *alcohol, de-, hydrogen]

    Al dente adj. (of pasta etc.) Cooked so as to be still firm when bitten. [italian, = ‘to the tooth’]

    Alder n. Tree related to the birch. [old english]

    Alderman n. Esp. Hist. Coopted member of an english county or borough council, next in dignity to the mayor. [old english aldor chief, *man]

    Ale n. Beer. [old english]

    Aleatory adj. Depending on chance. [latin alea *die2]

    Alehouse n. Hist. Tavern.

    Alembic n. 1 hist. Apparatus formerly used in distilling. 2 means of refining or extracting. [greek ambix, -ikos cap of a still]

    Alert —adj. 1 watchful, vigilant. 2 nimble, attentive. —n. 1 warning call or alarm. 2 state or period of special vigilance. —v. (often foll. By to) warn. [french alerte from italian all’erta to the watch-tower]

    alerte from italian all’erta to the watch-tower]

    A level n. = *advanced level.

    Alexander technique n. Technique for controlling posture as an aid to well-being. [alexander, name of a physiotherapist]

    Alexandrine —adj. (of a line of verse) having six iambic feet. —n. Alexandrine line. [french alexandre, title of a romance using this metre]

    Alfalfa n. Clover-like plant used for fodder. [arabic, = a green fodder]

    Alfresco adv. & adj. In the open air. [italian]

    Alga n. (pl. Algae) (usu. In pl.) Non-flowering stemless water-plant, esp. Seaweed and plankton. [latin]

    Algebra n. Branch of mathematics that uses letters etc. To represent numbers and quantities. algebraic adj. [ultimately from arabic al-jabr, = reunion of broken parts]

    Algol n. High-level computer programming language. [from algorithm, language]

    Algorithm n. Process or set of rules used for calculation etc., esp. With a computer. algorithmic adj. [persian, name of a 9th-c. Mathematician al-kuwarizmi]

    Alias —adv. Also named or known as. —n. Assumed name. [latin, = at another time]

    Alibi n. (pl. -s) 1 claim or proof that one was elsewhere when a crime etc. Was committed. 2 informal excuse. [latin, = elsewhere]

    Usage the use of alibi in sense 2 is considered incorrect by some people.

    Alien —adj. 1 (often foll. By to) unfamiliar; unacceptable or repugnant. 2 foreign. 3 of beings from other worlds. —n. 1 foreign-born resident who is not naturalized. 2 being from another world. [latin alius other]

    Alienable adj. Law able to be transferred to new ownership.

    Alienate v. (-ting) 1 estrange, make hostile. 2 transfer ownership of. alienation n.

    Alight1 predic. Adj. 1 on fire. 2 lit up; excited. [on a light (= lighted) fire]

    Alight2 v. 1 (often foll. By from) descend from a vehicle. 2 come to earth, settle. [old english]

    Align v. 1 put or bring into line. 2 (usu. Foll. By with) ally (oneself etc.) With (a cause, party, etc.). alignment n. [french à ligne into line]

    Alike —adj. (usu. Predic.) Similar, like. —adv. In a similar way.

    Alimentary adj. Of or providing food or nourishment. [latin alo nourish]

    Alimentary canal n. Passage along which food passes during digestion.

    Alimony n. Money payable to a spouse or former spouse after separation or divorce.

    Usage in uk usage this term has been replaced by maintenance.

    Aliphatic adj. Chem. Of organic compounds in which carbon atoms form open chains, not aromatic rings. [greek aleiphar -phat-fat]

    Aliquot —adj. (of a part or portion) contained by the whole an integral number of times (4 is an aliquot part of 12). —n. 1 aliquot part. 2 (in general use) any known fraction of a whole; sample. [latin, = several]

    Alive adj. (usu. Predic.) 1 living. 2 lively, active. 3 (foll. By to) aware of; alert. 4 (foll. By with) swarming or teeming with. [old english: related to a2, life]

    Alkali n. (pl. -s) 1 a any of a class of substances that liberate hydroxide ions in water, usu. Form caustic or corrosive solutions, turn litmus blue, and have a ph of more than 7, e.g. Caustic soda.

    Alkalinity n. [arabic, = the calcined ashes]

    Alkaloid n. Nitrogenous organic compound of plant origin, e.g. Morphine, quinine.

    Alkane n. Chem. Saturated aliphatic hydrocarbon having the general formula cnh2n+2, including methane and ethane.

    Alkene n. Chem. Unsaturated aliphatic hydrocarbon containing a double bond and having the general formula cnh2n, including ethylene.

    Alkyne n. Chem. Unsaturated aliphatic hydrocarbon containing a triple bond and having the general formula cnh2n-2, including acetylene.

    All —adj. 1 whole amount, quantity, or extent of (all day; all his life; take it all). 2 any whatever (beyond all doubt). 3 greatest possible (with all speed). —n. 1 all concerned; everything (all were present; all is lost). 2 (foll. By of) a the whole of (take all of it). B every one of (all of us). C colloq. As much as (all of six feet). D colloq. In a state of (all of a dither). 3 one’s whole strength or resources (prec. By my, your, etc.). 4 (in games) each (two goals all). —adv. 1 a entirely, quite (dressed all in black). B as an intensifier (stop all this grumbling). 2 colloq. Very (went all shy). 3 (foll. By the + compar.) To that, or the utmost, extent (if they go, all the better; that makes it all the worse). all along from the beginning. All and sundry everyone. All but very nearly. All for colloq. Strongly in favour of. All found with board and lodging provided free. All in colloq. Exhausted. All in

    All found with board and lodging provided free. All in colloq. Exhausted. All in all everything considered. All manner of every kind of. All of a sudden suddenly. All one (or the same) (usu. Foll. By to) a matter of indifference. All out using all one’s strength (also (with hyphen) attrib.: all-out effort). All over 1 completely finished. 2 in or on all parts of (mud all over the carpet). 3 colloq. Typically (you all over). 4 slang effusively attentive to (a person). All right (predic.) 1 satisfactory; safe and sound; in good condition. 2 satisfactorily (it worked out all right). 3 a expressing consent. B as an intensifier (that’s the one all right). All round 1 in all respects. 2 for each person. All the same nevertheless. All there colloq. Mentally alert or normal. All the time throughout (despite some contrary expectation etc.). All together all at once; all in one place or in a group (came all together) (cf. *altogether). All up with hopeless for (a person). At all (with neg. Or interrog.) In any way; to any extent (did not swim at all; did you like it at all?). In all in total; altogether. [old english]

    Usage note the differences in meaning between all together and altogether: see note at altogether.

    Allah n. The muslim and arab name of god. [arabic]

    Allay v. 1 diminish (fear, suspicion, etc.). 2 alleviate (pain etc.). [old english a-intensive prefix, *lay1]

    All-clear n. Signal that danger etc. Is over.

    All comers n.pl. Anyone who applies, takes up a challenge, etc.

    Allegation n. 1 assertion, esp. Unproved. 2 alleging. [latin allego adduce]

    Allege v. (-ging) 1 declare, esp. Without proof. 2 advance as an argument or excuse. [latin lis lit-lawsuit]

    Allegedly adv. As is alleged.

    Allegiance n. 1 loyalty (to a person or cause etc.). 2 the duty of a subject. [french: related to *liege]

    Allegory n. (pl. -ies) story whose moral is represented symbolically. allegorical adj. Allegorize v. (also -ise) (-zing or -sing). [greek allegoria other speaking]

    Allegretto mus. —adv. & adj. In a fairly brisk tempo. —n. (pl. -s) such a passage or movement. [italian, diminutive of *allegro]

    Allegro mus. —adv. & adj. In a brisk tempo. —n. (pl. -s) such a passage or movement. [italian, = lively]

    Alleluia (also hallelujah) —int. God be praised. —n. Song or shout of praise to god. [hebrew]

    Allen key n. Propr. Spanner designed to turn an allen screw. [allen, name of the us manufacturer]

    Allen screw n. Propr. Screw with a hexagonal socket in the head.

    Allergic adj. 1 (foll. By to) a having an allergy to. B colloq. Having a strong dislike for. 2 caused by an allergy.

    Allergy n. (pl. -ies) 1 adverse reaction to certain substances, esp. Particular foods, pollen, fur, or dust. 2 colloq. Antipathy. [greek allos other]

    Alleviate v. (-ting) make (pain etc.) Less severe. alleviation n. [latin levo raise]

    Alley n. (pl. -s) 1 narrow street or passageway. 2 enclosure for skittles, bowling, etc. 3 walk or lane in a park etc. [french aller go]

    Alliance n. 1 union or agreement to cooperate, esp. Of states by treaty or families by marriage. 2 (alliance) political coalition party. 3 relationship; friendship. [french: related to *ally]

    Allied adj. 1 (also allied) associated in an alliance. 2 connected or related.

    Alligator n. Large reptile of the crocodile family with a head broader and shorter than a crocodile’s. [spanish el lagarto the lizard]

    All-in attrib. Adj. Inclusive of all.

    All-in wrestling n. Wrestling with few or no restrictions.

    Alliteration n. Repetition of the same letter or sound at the beginning of adjacent or closely connected words (e.g. Cool, calm, and collected). alliterate v. (-ting). Alliterative adj. [latin: related to *letter]

    Allocate v. (-ting) (usu. Foll. By to) assign or devote to (a purpose, person, or place). allocation n. [latin: related to *local]

    Allot v. (-tt-) apportion or distribute to (a person), esp. As a share or task (they were allotted equal sums). [french a to, *lot]

    Allotment n. 1 small piece of land rented by a local authority for cultivation. 2 share. 3 allotting.

    Allotropy n. Existence of two or more different physical forms of a chemical element. allotropic adj. [greek allos different, tropos manner]

    Allow v. 1 (often foll. By to + infin.) Permit. 2 assign a limited amount etc. (was allowed £500). 3 (usu. Foll. By for) provide or set aside for a purpose; add or deduct in consideration (allow £50 for expenses; allow for wastage). [originally = commend, from french: related to *ad-, latin laudo praise, loco place]

    Allowance n. 1 amount or sum allowed, esp. Regularly for a stated purpose. 2 amount allowed in reckoning. 3 deduction or discount. make allowances (often foll. By for) 1 consider (mitigating circumstances). 2 make excuses for (a person, bad behaviour, etc.).

    Alloy —n. 1 mixture of two or more metals. 2 inferior metal mixed esp. With gold or silver. —v. 1 mix (metals). 2 debase by admixture. 3 moderate (pleasure alloyed with pain). [french: related to *ally]

    All-purpose attrib. Adj. Having many uses.

    All-right attrib. Adj. Colloq. Acceptable (an all-right guy).

    All-round attrib. Adj. (of a person) versatile.

    All-rounder n. Versatile person.

    All saints’ day n. 1 nov., christian festival in honour of saints.

    All souls’ day n. 2 nov., roman catholic festival with prayers for the souls of the dead.

    Allspice n. 1 aromatic spice obtained from the berry of the pimento plant. 2 the berry.

    All-time attrib. Adj. (of a record etc.) Unsurpassed.

    Allude v. (-ding) (foll. By to) refer to, esp. Indirectly or briefly. [latin: related to *ad-, ludo play]

    Allure —v. (-ring) attract, charm, or entice. —n. Attractiveness, personal charm, fascination. allurement n. [french: related to ad-, lure]

    Allusion n. (often foll. By to) passing or indirect reference. allusive adj. [latin: related to *allude]

    Alluvial —adj. Of alluvium. —n. Alluvium, esp. Containing a precious metal.

    Alleluia (also hallelujah) —int. God be praised. —n. Song or shout of praise to god. [hebrew]

    Allen key n. Propr. Spanner designed to turn an allen screw. [allen, name of the us manufacturer]

    Allen screw n. Propr. Screw with a hexagonal socket in the head.

    Allergic adj. 1 (foll. By to) a having an allergy to. B colloq. Having a strong dislike for. 2 caused by an allergy.

    Allergy n. (pl. -ies) 1 adverse reaction to certain substances, esp. Particular foods, pollen, fur, or dust. 2 colloq. Antipathy. [greek allos other]

    Alleviate v. (-ting) make (pain etc.) Less severe. alleviation n. [latin levo raise]

    Alleviate v. (-ting) make (pain etc.) Less severe. alleviation n. [latin levo raise]

    Alley n. (pl. -s) 1 narrow street or passageway. 2 enclosure for skittles, bowling, etc. 3 walk or lane in a park etc. [french aller go]

    Alliance n. 1 union or agreement to cooperate, esp. Of states by treaty or families by marriage. 2 (alliance) political coalition party. 3 relationship; friendship. [french: related to *ally]

    Allied adj. 1 (also allied) associated in an alliance. 2 connected or related.

    Alligator n. Large reptile of the crocodile family with a head broader and shorter than a crocodile’s. [spanish el lagarto the lizard]

    All-in attrib. Adj. Inclusive of all.

    All-in wrestling n. Wrestling with few or no restrictions.

    Alliteration n. Repetition of the same letter or sound at the beginning of adjacent or closely connected words (e.g. Cool, calm, and collected). alliterate v. (-ting). Alliterative adj. [latin: related to *letter]

    Allocate v. (-ting) (usu. Foll. By to) assign or devote to (a purpose, person, or place). allocation n. [latin: related to *local]

    Allot v. (-tt-) apportion or distribute to (a person), esp. As a share or task (they were allotted equal sums). [french a to, *lot]

    Allotment n. 1 small piece of land rented by a local authority for cultivation. 2 share. 3 allotting.

    Allotropy n. Existence of two or more different physical forms of a chemical element. allotropic adj. [greek allos different, tropos manner]

    Allow v. 1 (often foll. By to + infin.) Permit. 2 assign a limited amount etc. (was allowed £500). 3 (usu. Foll. By for) provide or set aside for a purpose; add or deduct in consideration (allow £50 for expenses; allow for wastage). [originally = commend, from french: related to *ad-, latin laudo praise, loco place]

    Allowance n. 1 amount or sum allowed, esp. Regularly for a stated purpose. 2 amount allowed in reckoning. 3 deduction or discount. make allowances (often foll. By for) 1 consider (mitigating circumstances). 2 make excuses for (a person, bad behaviour, etc.).

    Alloy —n. 1 mixture of two or more metals. 2 inferior metal mixed esp. With gold or silver. —v. 1 mix (metals). 2 debase by admixture. 3 moderate (pleasure alloyed with pain). [french: related to *ally]

    All-purpose attrib. Adj. Having many uses.

    All-right attrib. Adj. Colloq. Acceptable (an all-right guy).

    All-right attrib. Adj. Colloq. Acceptable (an all-right guy).

    All-round attrib. Adj. (of a person) versatile.

    All-rounder n. Versatile person.

    All saints’ day n. 1 nov., christian festival in honour of saints.

    All souls’ day n. 2 nov., roman catholic festival with prayers for the souls of the dead.

    Allspice n. 1 aromatic spice obtained from the berry of the pimento plant. 2 the berry.

    All-time attrib. Adj. (of a record etc.) Unsurpassed.

    Allude v. (-ding) (foll. By to) refer to, esp. Indirectly or briefly. [latin: related to *ad-, ludo play]

    Allure —v. (-ring) attract, charm, or entice. —n. Attractiveness, personal charm, fascination. allurement n. [french: related to ad-, lure]

    Allusion n. (often foll. By to) passing or indirect reference. allusive adj. [latin: related to *allude]

    related to *allude]

    Alluvial —adj. Of alluvium. —n. Alluvium, esp. Containing a precious metal.

    Alluvial —adj. Of alluvium. —n. Alluvium, esp. Containing a precious metal.

    Alluvium n. (pl. -via) deposit of usu. Fine fertile soil left behind by a flood, esp. In a river valley. [latin luo wash]

    Ally —n. (pl. -ies) state, person, etc., formally cooperating or united with another, esp. (also ally) in war. —v. Also (-ies, -ied) (often refl. And foll. By with) combine in alliance. [latin alligo bind]

    Alma mater n. One’s university, school, or college. [latin, = bounteous mother]

    Almanac n. (also almanack) calendar, usu. With astronomical data. [medieval latin from greek]

    Almighty adj. 1 having complete power. 2 (the almighty) god. 3 slang very great (almighty crash). [old english: related to all, mighty]

    Almond n. 1 nutlike kernel of a fruit allied to the peach and plum. 2 tree bearing this. [greek amugdale]

    Almoner n. Social worker attached to a hospital. [french: related to *alms]

    Usage the usual term now is medical social worker.

    Almost adv. All but; very nearly. [old english: related to all, most]

    Alms n.pl. Hist. Donation of money or food to the poor. [greek eleemosune pity]

    Almshouse n. Hist. Charitable institution for the poor.

    Aloe n. 1 plant of the lily family with toothed fleshy leaves. 2 (in pl.) (in full bitter aloes) strong laxative from aloe juice. [old english from greek]

    Aloft predic. Adj. & adv. 1 high up, overhead. 2 upwards. [old norse á lopti in air]

    Alone —predic. Adj. 1 without the presence or help of others. 2 lonely (felt alone). —adv. Only, exclusively. [earlier al one: related to all, one]

    Along —prep. Beside or through (part of) the length of. —adv. 1 onward, into a more advanced state (come along; getting along nicely). 2 with oneself or others (bring a book along). 3 beside or through part or the whole length of a thing. along with in addition to; together with. [old english, originally adj. = facing against]

    Alongside —adv. At or to the side. —prep. Close to the side of.

    Alongside —adv. At or to the side. —prep. Close to the side of.

    Aloof —adj. Distant, unsympathetic. —adv. Away, apart (he kept aloof). [originally naut., from *a2 + *luff]

    Aloud adv. Audibly.

    Alp n. 1 a high mountain. B (the alps) high range of mountains in switzerland and adjoining countries. 2 pasture land on a swiss mountainside. [originally alps, from greek alpeis]

    Alpaca n. 1 shaggy s. American mammal related to the llama. 2 its wool; fabric made from this. [spanish from quechua]

    Alpha n. 1 first letter of the greek alphabet (a, a). 2 first-class mark for a piece of work etc. alpha and omega beginning and end. [latin from greek]

    Alphabet n. 1 set of letters used in writing a language. 2 symbols or signs for these. alphabetical adj. [greek *alpha, *beta]

    Alphanumeric adj. Containing both letters and numbers.

    Alpha particle n. Helium nucleus emitted by a radioactive substance.

    Alpine —adj. Of mountainous regions or (alpine) the alps. —n. 1 plant growing in mountainous regions. 2 = *rock-plant. [latin: related to *alp]

    Already adv. 1 before the time in question (i knew that already). 2 as early or as soon as this (is back already). [from all, ready]

    Alright adv. = all right (see *all).

    Usage although widely used, alright is still non-standard and is considered incorrect by many people.

    Alsatian n. Large dog of a breed of wolfhound (also called *german shepherd). [latin alsatia alsace]

    Also adv. In addition, besides. [old english: related to all, so1]

    Also-ran n. 1 loser in a race. 2 undistinguished person.

    Altar n. 1 table or flat block for sacrifice or offering to a deity. 2 communion table. [latin altus high]

    Altarpiece n. Painting etc. Above or behind an altar.

    Alter v. Make or become different; change. alteration n. [latin alter other]

    Alter v. Make or become different; change. alteration n. [latin alter other]

    Altercate v. (-ting) (often foll. By with) dispute, wrangle. altercation n. [latin]

    Alter ego n. (pl. -s) 1 one’s hidden or second self. 2 intimate friend. [latin, = other self]

    Alter ego n. (pl. -s) 1 one’s hidden or second self. 2 intimate friend. [latin, = other self]

    Alternate —v. (-ting) 1 (often foll. By with) occur or cause to occur by turns. 2 (foll. By between) go repeatedly from one to another (alternated between hope and fear). —adj. 1 (with noun in pl.) Every other (on alternate days). 2 (of things of two kinds) alternating (alternate joy and misery). alternately adv. Alternation n. [latin alterno do by turns: related to *alter]

    Usage see note at alternative.

    Alternate angles n.pl. Two angles formed alternately on two sides of a line.

    Alternating current n. Electric current reversing its direction at regular intervals.

    Alternative —adj. 1 available as another choice (alternative route). 2 unconventional (alternative medicine). —n. 1 any of two or more possibilities. 2 choice (had no alternative but to go). alternatively adv.

    Usage the adjective alternative should not be confused with alternate, as in ‘there will be a dance on alternate saturdays’.

    Alternator n. Dynamo that generates an alternating current.

    Although conj. = *though. [from all, though]

    Altimeter n. Instrument indicating altitude reached.

    Altitude n. Height, esp. Of an object above sea level or above the horizon. [latin altus high]

    Alto n. (pl. -s) 1 = *contralto. 2 a highest adult male singing-voice, above tenor. B singer with this voice. 3 instrument pitched second-or third-highest in its family. [italian alto (canto) high (singing)]

    Altogether adv. 1 totally, completely. 2 on the whole. 3 in total. in the altogether colloq. Naked. [from all, together]

    Usage note that altogether means ‘in total’, whereas all together means ‘all at once’ or ‘all in one place’. The phrases six rooms altogether (in total) and six rooms all together (in one place) illustrate the difference.

    Altruism n. Unselfishness as a principle of action. altruist n. Altruistic adj. [italian altrui somebody else]

    Alum n. Double sulphate of aluminium and potassium. [latin alumen -min-]

    Alumina n. Aluminium oxide occurring naturally as corundum and emery.

    Aluminium n. (us aluminum) silvery light and malleable metallic element resistant to tarnishing by air.

    Aluminize v. (also -ise) (-zing or -sing) coat with aluminium.

    Aluminum n. (brit. Aluminium) silvery light and malleable metallic element resistant to tarnishing by air.

    Alumnus n. (pl. Alumni; fem. Alumna, pl. Alumnae) former pupil or student. [latin, = nursling, pupil]

    Always adv. 1 at all times; on all occasions. 2 whatever the circumstances. 3 repeatedly, often. [from all, way]

    Alyssum n. Plant with small usu. Yellow or white flowers. [greek, = curing madness]

    Alzheimer’s disease n. Brain disorder causing senility. [alzheimer, name of a neurologist]

    Am abbr. Amplitude modulation.

    Am symb. Americium.

    Am 1st person sing. Present of *be.

    A.m. Abbr. Before noon. [latin ante meridiem]

    Amalgam n. 1 mixture or blend. 2 alloy of mercury and another metal, used esp. In dentistry. [greek malagma an emollient]

    Amalgamate v. (-ting) 1 mix, unite. 2 (of metals) alloy with mercury. amalgamation n. [medieval latin: related to *amalgam]

    Amanuensis n. (pl. -enses) literary assistant, esp. Writing from dictation. [latin a manu ‘at hand’]

    Amaranth n. 1 plant with small green, red, or purple tinted flowers. 2 imaginary unfading flower. 3 purple colour. amaranthine adj. [greek amarantos unfading]

    Amaryllis n. Bulbous plant with lily-like flowers. [greek, a girl’s name]

    Amass v. Heap together; accumulate. [french: related to ad-, mass1]

    Amateur n. Person who engages in a pursuit as a pastime rather than a profession, or performs with limited skill. amateurish adj. Amateurism n. [latin amator lover: related to *amatory]

    Amatory adj. Of sexual love. [latin amo love]

    Amatory adj. Of sexual love. [latin amo love]

    Amaze v. (-zing) surprise greatly, fill with wonder. amazement n. Amazing adj. [earlier amase from old english amasod]

    Amazon n. 1 female warrior of a mythical race in the black sea area. 2 (amazon) large, strong, or athletic woman. amazonian adj. [latin from greek]

    Ambassador n. 1 diplomat sent to live abroad to represent his or her country’s interests. 2 promoter (ambassador of peace). ambassadorial adj. [latin ambactus servant]

    Amber —n. 1 a yellow translucent fossilized resin used in jewellery. B colour of this. 2 yellow traffic-light meaning caution. —adj. Of or like amber. [french from arabic]

    Ambergris n. Waxlike secretion of the sperm whale, found floating in tropical seas and used in perfumes. [french, = grey amber]

    Ambidextrous adj. Able to use either hand equally well. [latin ambi-on both sides, *dexter]

    Ambience n. Surroundings or atmosphere. [latin ambio go round]

    Ambient adj. Surrounding.

    Ambiguous adj. 1 having an obscure or double meaning. 2 difficult to classify. ambiguity n. (pl. -ies). [latin ambi-both ways, ago drive]

    Ambit n. Scope, extent, or bounds. [latin: related to *ambience]

    Ambition n. 1 determination to succeed. 2 object of this. [latin, = canvassing: related to *ambience]

    Ambitious adj. 1 full of ambition or high aims. 2 (foll. By of, or to + infin.) Strongly determined.

    Ambivalence n. Coexistence of opposing feelings. ambivalent adj. [latin ambo both, *equivalent]

    Amble —v. (-ling) move at an easy pace. —n. Such a pace. [latin ambulo walk]

    Ambrosia n. 1 (in classical mythology) the food of the gods. 2 sublimely delicious food etc. [greek, = elixir of life]

    Ambulance n. 1 vehicle equipped for conveying patients to hospital. 2 mobile hospital serving an army. [latin: related to *amble]

    Ambulatory —adj. 1 of or for walking. 2 movable. —n. (pl. -ies) arcade or cloister. [latin: related to *amble]

    Ambuscade n. & v. (-ding) = *ambush.

    Ambush —n. 1 surprise attack by persons hiding. 2 hiding-place for this. —v. Attack from an ambush; waylay. [french: related to in-1, bush1]

    Ameliorate v. (-ting) make or become better. amelioration n. Ameliorative adj. [from *ad-, latin melior better]

    Amen int. (esp. At the end of a prayer etc.) So be it. [church latin from hebrew, = certainly]

    Amenable adj. 1 responsive, docile. 2 (often foll. By to) answerable to law etc. [french: related to *ad-, latin mino drive animals]

    Amend v. 1 make minor alterations in to improve. 2 correct an error in (a

    Amend v. 1 make minor alterations in to improve. 2 correct an error in (a document etc.). [latin: related to *emend]

    Usage amend is often confused with emend, a more technical word used in the context of textual correction.

    Amendment n. Minor alteration or addition in a document, resolution, etc.

    Amends n. make amends (often foll. By for) compensate (for).

    Amenity n. (pl. -ies) 1 pleasant or useful feature or facility. 2 pleasantness (of a place etc.). [latin amoenus pleasant]

    American —adj. Of america, esp. The united states. —n. 1 native, citizen, or inhabitant of america, esp. The us. 2 english as used in the us. americanize v. (also -ise) (-zing or -sing). [name of navigator amerigo vespucci]

    American dream n. Ideal of democracy and prosperity.

    American football n. Football evolved from rugby.

    American indian see *indian.

    Americanism n. Word etc. Of us origin or usage.

    Americium n. Artificial radioactive metallic element. [america, where first made]

    Amerind adj. & n. (also amerindian) = american indian (see indian).

    Amethyst n. Semiprecious stone of a violet or purple variety of quartz. [greek, = preventing drunkenness]

    Amharic —n. Official and commercial language of ethiopia. —adj. Of this language. [amhara, region of ethiopia]

    Amiable adj. (esp. Of a person) friendly and pleasant, likeable. amiably adv. [latin: related to *amicable]

    Amiable adj. (esp. Of a person) friendly and pleasant, likeable. amiably adv. [latin: related to *amicable]

    Amicable adj. (esp. Of an arrangement, relations, etc.) Friendly. amicably adv. [latin amicus friend]

    Amid prep. In the middle of, among. [old english: related to on, mid]

    Amidships adv. In or into the middle of a ship. [from *amid, alternative form midships]

    midships]

    Amidst var. Of *amid.

    Amine n. Compound formed from ammonia by replacement of one or more hydrogen atoms by an organic radical or radicals.

    Amino acid n. Biochem. Any of a group of nitrogenous organic acids occurring naturally in plant and animal tissues and forming the basic constituents of proteins. [from amine, acid]

    Amir var. Of *emir.

    Amiss —predic. Adj. Wrong, out of order. —adv. Wrong(ly), inappropriately (everything went amiss). take amiss be offended by. [old norse à mis so as to miss]

    Amity n. Friendship. [latin amicus friend]

    Ammeter n. Instrument for measuring electric current in amperes. [from *ampere, *-meter]

    Ammo n. Slang ammunition. [abbreviation]

    Ammonia n. 1 pungent strongly alkaline gas. 2 (in general use) solution of ammonia in water. [as *sal ammoniac]

    Ammonite n. Coil-shaped fossil shell. [latin, = horn of jupiter ammon]

    Ammunition n. 1 supply of bullets, shells, grenades, etc. 2 information usable in an argument. [french la *munition taken as l’ammu-]

    Amnesia n. Loss of memory. amnesiac n. [latin from greek]

    Amnesty —n. (pl. -ies) general pardon, esp. For political offences. —v. (-ies, -ied) grant an amnesty to. [greek amnestia oblivion]

    Amniocentesis n. (pl. -teses) sampling of amniotic fluid to detect foetal abnormality. [from *amnion, greek kentesis pricking]

    Amnion n. (pl. Amnia) innermost membrane enclosing an embryo. amniotic adj. [greek, = caul]

    Amoeba n. (pl. -s) microscopic aquatic amorphous one-celled organism. amoebic adj. [greek, = change]

    Amok adv. run amok (or amuck) run wild. [malay]

    Among prep. (also amongst) 1 surrounded by, with (lived among the trees; be among friends). 2 included in (among us were dissidents). 3 in the category of (among his best works). 4 a between; shared by (divide it among you). B from the joint resources of (among us we can manage it). 5 with one another (talked among themselves). [old english, = in a crowd]

    Amoral adj. 1 beyond morality. 2 without moral principles.

    Amorous adj. Of, showing, or feeling sexual love. [latin amor love]

    Amorphous adj. 1 of no definite shape. 2 vague. 3 mineral. & chem. Non-crystalline. [greek a-not, morphe form]

    Amortize v. (also -ise) (-zing or -sing) gradually extinguish (a debt) by regular instalments. [latin ad mortem to death]

    Amount —n. Quantity, esp. A total in number, size, value, extent, etc. —v. (foll. By to) be equivalent to in number, significance, etc. [latin ad montem upward]

    Amour n. (esp. Secret) love affair. [french, = love]

    Amour propre n. Self-respect. [french]

    Amp1 n. Ampere. [abbreviation]

    Amp2 n. Colloq. Amplifier. [abbreviation]

    Ampelopsis n. (pl. Same) climbing plant related to the vine. [greek ampelos vine, opsis appearance]

    Amperage n. Strength of an electric current in amperes.

    Ampere n. Si base unit of electric current. [ampère, name of a physicist]

    Ampersand n. The sign ‘&’ (= and). [corruption of and *per se and]

    Amphetamine n. Synthetic drug used esp. As a stimulant. [abbreviation of chemical name]

    Amphibian —adj. Of a class of vertebrates (e.g. Frogs) with an aquatic larval stage followed by a terrestrial adult stage. —n. 1 vertebrate of this class. 2 vehicle able to operate both on land and in water. [greek amphi-both, bios life]

    Amphibious adj. 1 living or operating on land and in water. 2 involving military forces landed from the sea.

    Amphitheatre n. Esp. Circular unroofed building with tiers of seats surrounding a central space. [greek amphi-round]

    Amphitheatre n. Esp. Circular unroofed building with tiers of seats surrounding a central space. [greek amphi-round]

    Amphora n. (pl. -phorae) narrow-necked greek or roman vessel with two handles. [greek amphoreus]

    Ample adj. (ampler, amplest) 1 a plentiful, abundant, extensive. B euphem. Large, stout. 2 more than enough. amply adv. [latin amplus]

    Amplifier n. Electronic device for increasing the strength of electrical signals, esp. For conversion into sound.

    Amplify v. (-ies, -ied) 1 increase the strength of (sound, electrical signals, etc.). 2 add detail to, expand (a story etc.). amplification n. [latin: related to *ample]

    Amplitude n. 1 maximum departure from average of an oscillation, alternating current, etc. 2 spaciousness; abundance. [latin: related to *ample]

    Amplitude modulation n. Modulation of a wave by variation of its amplitude.

    Ampoule n. Small sealed capsule holding a solution for injection. [french: related to *ampulla]

    Ampulla n. (pl. -pullae) 1 roman globular flask with two handles. 2 ecclesiastical vessel. [latin]

    Amputate v. (-ting) cut off surgically (a limb etc.). amputation n. Amputee n. [latin amb-about, puto prune]

    Amuck var. Of *amok.

    Amulet n. Charm worn against evil. [latin]

    Amuse v. (-sing) 1 cause to laugh or smile. 2 interest or occupy. amusing adj. [french a cause to, muser stare]

    Amusement n. 1 thing that amuses. 2 being amused. 3 mechanical device (e.g. A roundabout) for entertainment at a fairground etc.

    Amusement arcade n. Indoor area with slot-machines.

    An see *a1.

    An-see *a-.

    -an suffix (also -ian) forming adjectives and nouns, esp. From names of places, systems, classes, etc. (mexican; anglican; crustacean). [french -ain, latin -anus]

    Anabaptist n. Member of a religious group believing in baptism only of adults. [greek ana again]

    Anabolic steroid n. Synthetic steroid hormone used to increase muscle size.

    Anabolism n. Synthesis of complex molecules in living organisms from simpler ones together with the storage of energy. [greek anabole ascent]

    Anachronism n. 1 a attribution of a custom, event, etc., to the wrong period. B thing thus attributed. 2 out-of-date person or thing. anachronistic adj. [greek ana-against, khronos time]

    Anaconda n. Large non-poisonous snake killing its prey by constriction. [sinhalese]

    Anaemia n. (us anemia) deficiency of red blood cells or their haemoglobin, causing pallor and weariness. [greek, = want of blood]

    Anaemic adj. (us anemic) 1 of or suffering from anaemia. 2 pale, listless.

    Anaesthesia n. (us anes-) absence of sensation, esp. Artificially induced before surgery. [greek]

    Anaesthetic (us anes-) —n. Substance producing anaesthesia. —adj. Producing anaesthesia.

    Anaesthetist n. (us anes-) specialist in the administration of anaesthetics.

    Anaesthetize v. (us anes-) (also -ise) (-zing or -sing) administer an anaesthetic to.

    Anagram n. Word or phrase formed by transposing the letters of another. [greek ana again, gramma letter]

    Anal adj. Of the anus.

    Analgesia n. Absence or relief of pain. [greek]

    Analgesic —adj. Relieving pain. —n. Analgesic drug.

    Analog n. (brit. Analogue) 1 analogous thing. 2 (attrib.) (usu. Analog) (of a computer etc.) Using physical variables, e.g. Voltage, to represent numbers (cf. *digital).

    Analogize v. (also -ise) (-zing or -sing) use, or represent or explain by, analogy.

    Analogous adj. (usu. Foll. By to) partially similar or parallel. [greek analogos proportionate]

    Analogue n. (us analog) 1 analogous thing. 2 (attrib.) (usu. Analog) (of a computer etc.) Using physical variables, e.g. Voltage, to represent numbers (cf. *digital).

    Analogy n. (pl. -ies) 1 correspondence; partial similarity. 2 arguing or reasoning from parallel cases. analogical adj. [greek analogia proportion]

    Analogy n. (pl. -ies) 1 correspondence; partial similarity. 2 arguing or reasoning from parallel cases. analogical adj. [greek analogia proportion]

    Analyse v. (us analyze) (-sing or -zing) 1 examine in detail; ascertain the constituents of (a substance, sentence, etc.). 2 psychoanalyse.

    Analysis n. (pl. -lyses) 1 a detailed examination of elements or structure. B statement of the result of this. 2 chem. Determination of the constituent parts of a mixture or compound. 3 psychoanalysis. [greek ana up, luo loose]

    Analyst n. 1 person skilled in (esp. Chemical or computer) analysis. 2 psychoanalyst.

    Analytical adj. (also analytic) of or using analysis.

    Analyze n. (brit. Analyse) 1 examine in detail; ascertain the constituents of (a substance, sentence, etc.). 2 psychoanalyse.

    Anapaest n. Metrical foot consisting of two short syllables followed by one long syllable (&anapaest.). [greek anapaistos reversed (dactyl)]

    Anarchism n. Political theory that all government and laws should be abolished. [french: related to *anarchy]

    Anarchist n. Advocate of anarchism. anarchistic adj.

    Anarchy n. Disorder, esp. Political. anarchic adj. [greek an-without, arkhe rule]

    Anathema n. (pl. -s) 1 detested thing (is anathema to me). 2 ecclesiastical curse. [greek, = thing devoted (i.e. To evil)]

    Anathematize v. (also -ise) (-zing or -sing) curse.

    Anatomy n. (pl. -ies) 1 science of animal or plant structure. 2 such a structure. 3 analysis. anatomical adj. Anatomist n. [greek ana-up, temno cut]

    Anatto var. Of *annatto.

    Anc abbr. African national congress.

    -ance suffix forming nouns expressing: 1 quality or state or an instance of one (arrogance; resemblance). 2 action (assistance). [french -ance, latin -antia]

    Ancestor n. 1 person, animal, or plant from which another has descended or evolved. 2 prototype or forerunner. [latin ante-before, cedo go]

    Ancestral adj. Belonging to or inherited from one’s ancestors.

    Ancestry n. (pl. -ies) 1 family descent, lineage. 2 ancestors collectively.

    Anchor —n. 1 heavy metal weight used to moor a ship or a balloon. 2 stabilizing thing. —v. 1 secure with an anchor. 2 fix firmly. 3 cast anchor. 4 be moored by an anchor. [greek agkura]

    Anchorage n. 1 place for anchoring. 2 anchoring or lying at anchor.

    Anchorite n. Hermit; religious recluse. [greek anakhoreo retire]

    Anchorman n. Coordinator, esp. As compère in a broadcast.

    Anchovy n. (pl. -ies) small strong-flavoured fish of the herring family. [spanish and portuguese anchova]

    Ancien régime n. (pl. Anciens régimes pronunc. Same) 1 political and social system of pre-revolutionary (before 1787) france. 2 any superseded regime. [french, = old rule]

    Ancient adj. 1 of long ago, esp. Before the fall of the roman empire in the west. 2 having lived or existed long. the ancients people of ancient times, esp. The greeks and romans. [latin ante before]

    Ancillary —adj. 1 (esp. Of health workers) providing essential support. 2 (often foll. By to) subordinate, subservient. —n. (pl. -ies) 1 ancillary worker. 2 auxiliary or accessory. [latin ancilla handmaid]

    -ancy suffix forming nouns denoting a quality (constancy) or state (infancy). [latin -antia]

    And conj. 1 a connecting words, clauses, or sentences, to be taken jointly (you and i). B implying progression (better and better). C implying causation (she hit him and he cried). D implying great duration (cried and cried). E implying a great number (miles and miles). F implying addition (two and two). G implying variety (there are books and books). 2 colloq. To (try and come). 3 in relation to (britain and the ec). and/or either or both of two stated alternatives. [old english]

    Andante mus. —adv. & adj. In a moderately slow tempo. —n. Such a passage or movement. [italian, = going]

    Andiron n. Metal stand (usu. One of a pair) for supporting logs in a fireplace. [french andier]

    Andiron n. Metal stand (usu. One of a pair) for supporting logs in a fireplace. [french andier]

    Androgynous adj. 1 hermaphrodite. 2 bot. With stamens and pistils in the same flower. [greek aner andr-man, gune woman]

    flower. [greek aner andr-man, gune woman]

    Android n. Robot with a human appearance. [greek aner andr-man, *-oid]

    Anecdote n. Short, esp. True, account or story. anecdotal adj. [greek anekdota things unpublished]

    Anemia n. (brit. Anaemia) deficiency of red blood cells or their haemoglobin, causing pallor and weariness. [greek, = want of blood]

    Anemic adj. (brit. Anaemic) 1 of or suffering from anemia. 2 pale, listless.

    Anemometer n. Instrument for measuring wind force. [greek anemos wind]

    Anemone n. Plant of the buttercup family, with vividly-coloured flowers. [greek, = wind-flower]

    Aneroid —adj. (of a barometer) measuring air-pressure by its action on the lid of a box containing a vacuum. —n. Aneroid barometer. [greek a-not, neros water]

    Anesthesia n. (brit. Anaes-) absence of sensation, esp. Artificially induced before surgery. [greek]

    Anesthetic (brit. Anaes-)—n. Substance producing anesthesia. —adj.producing anesthesia

    anesthesia

    Aneurysm n. (also aneurism) excessive localized enlargement of an artery. [greek aneuruno widen]

    Anew adv. 1 again. 2 in a different way. [earlier of newe]

    Angel n. 1 a attendant or messenger of god. B representation of this in human form with wings. 2 virtuous or obliging person. 3 slang financial backer of a play etc. [greek aggelos messenger]

    Angel cake n. Light sponge cake.

    Angel-fish n. Fish with winglike fins.

    Angelic adj. Of or like an angel. angelically adv.

    Angelica n. Aromatic plant or its candied stalks. [medieval latin, = angelic (herb)]

    Angelus n. 1 roman catholic prayers commemorating the incarnation, said at morning, noon, and sunset. 2 bell announcing this. [latin angelus domini (= the angel of the lord), opening words]

    Anger —n. Extreme or passionate displeasure. —v. Make angry. [old norse angr grief]

    Angina n. (in full angina pectoris) chest pain brought on by exertion, caused by an inadequate blood supply to the heart. [greek agkhone strangling]

    Angiosperm n. Plant producing flowers and reproducing by seeds enclosed within a carpel, including herbaceous plants, grasses, and most trees. [greek aggeion vessel]

    Angle n. (usu. In pl.) Member of a n. German tribe that settled in e. Britain in the 5th c. [latin anglus, from the name angul in germany]

    Angle1 —n. 1 space between two meeting lines or surfaces, esp. As measured in degrees. 2 corner. 3 point of view. —v. (-ling) 1 move or place obliquely. 2 present (information) in a biased way. [latin angulus]

    Angle2 v. (-ling) 1 fish with hook and line. 2 (foll. By for) seek an objective indirectly (angled for a loan). angler n. [old english]

    Anglican —adj. Of the church of england. —n. Member of the anglican church. anglicanism n. [latin anglicanus: related to *angle]

    Anglicism n. Peculiarly english word or custom. [latin anglicus: related to *angle]

    Anglicize v. (also -ise) (-zing or -sing) make english in character etc.

    Anglo-comb. Form 1 english. 2 of english origin. 3 english or british and. [latin: related to *angle]

    Anglo-catholic —adj. Of a high church anglican wing emphasizing its catholic tradition. —n. Member of this group.

    Anglo-french —adj. English (or british) and french. —n. French language as developed in england after the norman conquest.

    Anglo-indian —adj. 1 of england and india. 2 of british descent but indian residence. —n. Anglo-indian person.

    Anglo-norman —adj. English and norman. —n. Norman dialect used in england after the norman conquest.

    Anglophile n. Person who greatly admires england or the english.

    Anglo-saxon —adj. 1 of the english saxons before the norman conquest. 2 of english descent. —n. 1 anglo-saxon person. 2 old english. 3 colloq. Plain (esp. Crude) english.

    Angora n. 1 fabric or wool from the hair of the angora goat or rabbit. 2 long-haired variety of cat, goat, or rabbit. [angora (= ankara) in turkey]

    Angostura n. Aromatic bitter bark used as a flavouring. [angostura (= ciudad bolívar) in venezuela]

    Angry adj. (-ier, -iest) 1 feeling, showing, or suggesting anger (angry sky). 2 (of a wound etc.) Inflamed, painful. angrily adv.

    Angst n. Anxiety, neurotic fear; guilt, remorse. [german]

    Angstrom n. Unit of length equal to 10-10 metre. [ångström, name of a physicist]

    Anguish n. 1 severe mental suffering. 2 pain, agony. anguished adj. [latin angustia tightness]

    Angular adj. 1 having sharp corners or (of a person) features. 2 forming an angle. 3 measured by angle (angular distance). angularity n. [latin: related to *angle1]

    Anhydrous adj. Chem. Without water, esp. Water of crystallization. [greek an-without, hudor water]

    Aniline n. Colourless oily liquid used in making dyes, drugs, and plastics. [german anil indigo, former source]

    Animadvert v. (foll. By on) literary criticize, censure. animadversion n. [latin animus mind, *adverse]

    animus mind, *adverse]

    Animal —n. 1 living organism, esp. Other than man, which feeds and usu. Has sense-organs and a nervous system and can move quickly. 2 brutish person. — adj. 1 of or like an animal. 2 bestial; carnal. [latin animalis having breath]

    Animalism n. 1 nature and activity of animals. 2 belief that humans are mere animals.

    Animality n. 1 the animal world. 2 animal behaviour.

    Animalize v. (also -ise) (-zing or -sing) make (a person) bestial, sensualize.

    Animate —adj. 1 having life. 2 lively. —v. (-ting) 1 enliven. 2 give life to. [latin anima breath]

    Animated adj. 1 lively, vigorous. 2 having life. 3 (of a film etc.) Using animation.

    Animation n. 1 vivacity, ardour. 2 being alive. 3 technique of producing a moving picture from a sequence of drawings or puppet poses etc.

    Animism n. Belief that inanimate and natural phenomena have souls. animist n. Animistic adj.

    Animosity n. (pl. -ies) spirit or feeling of hostility. [latin: related to *animus]

    Animus n. Animosity, ill feeling. [latin, = spirit, mind]

    Anion n. Negatively charged ion. anionic adj. [greek ana up, *ion]

    Anise n. Plant with aromatic seeds. [greek anison]

    Aniseed n. Seed of the anise, used for flavouring.

    Ankle n. 1 joint connecting the foot with the leg. 2 this part of the leg. [old norse]

    Anklet n. Ornament or fetter worn round the ankle.

    Ankylosis n. Stiffening of a joint by fusion of the bones. [greek agkulos crooked]

    Annals n.pl. 1 narrative of events year by year. 2 historical records. annalist n. [latin annus year]

    Annatto n. (also anatto) orange-red dye from the pulp of a tropical fruit, used for

    Annatto n. (also anatto) orange-red dye from the pulp of a tropical fruit, used for colouring foods. [carib name of the fruit-tree]

    Anneal v. Heat (metal or glass) and cool slowly, esp. To toughen it. [old english ælan bake]

    Annelid n. Segmented worm, e.g. The earthworm. [latin anulus ring]

    Annex v. 1 (often foll. By to) add as a subordinate part. 2 incorporate (territory) into one’s own. 3 add as a condition or consequence. 4 colloq. Take without right. annexation n. [latin necto bind]

    Annexe n. 1 separate or added building. 2 addition to a document.

    Annihilate v. (-ting) completely destroy or defeat. annihilation n. [latin nihil nothing]

    Anniversary n. (pl. -ies) 1 date of an event in a previous year. 2 celebration of this. [latin annus year, verto vers-turn]

    Anno domini adv. Years after christ’s birth. [latin, = in the year of the lord]

    Annotate v. (-ting) add explanatory notes to. annotation n. [latin nota mark]

    Announce v. (-cing) 1 make publicly known. 2 make known the arrival or imminence of (a guest, dinner, etc.). 3 be a sign of. announcement n. [latin

    imminence of (a guest, dinner, etc.). 3 be a sign of. announcement n. [latin nuntius messenger]

    Announcer n. Person who announces, esp. In broadcasting.

    Annoy v. 1 (often in passive) anger or distress slightly (am annoyed with you). 2 molest, harass. annoyance n. [latin in odio hateful]

    Annual —adj. 1 reckoned by the year. 2 occurring yearly. 3 living or lasting (only) a year. —n. 1 book etc. Published yearly. 2 plant that lives only a year. annually adv. [latin annus year]

    Annualized adj. (of rates of interest etc.) Calculated on an annual basis, as a projection from figures obtained for a shorter period.

    Annuity n. (pl. -ies) 1 yearly grant or allowance. 2 investment yielding a fixed annual sum.

    Annul v. (-ll-) 1 declare invalid. 2 cancel, abolish. annulment n. [latin nullus none]

    Annular adj. Ring-shaped. [latin anulus ring]

    Annular eclipse n. Solar eclipse in which a ring of light remains visible.

    Annulate adj. Marked with or formed of rings.

    Annunciation n. 1 announcement, esp. (annunciation) that made by the angel gabriel to mary. 2 festival of this. [latin: related to *announce]

    Anode n. Positive electrode in an electrolytic cell etc. [greek anodos way up]

    Anodize v. (also -ise) (-zing or -sing) coat (metal) with a protective layer by electrolysis.

    Anodyne —adj. 1 pain-relieving. 2 mentally soothing. —n. Anodyne drug etc. [greek an-without, odune pain]

    Anoint v. 1 apply oil or ointment to, esp. Ritually. 2 (usu. Foll. By with) smear. [latin inungo anoint]

    Anomalous adj. Irregular, deviant, abnormal. [greek an-not, homalos even]

    Anomaly n. (pl. -ies) anomalous thing; irregularity.

    Anon adv. Archaic soon, shortly. [old english on an into one]

    Anon. Abbr. Anonymous.

    Anonymous adj. 1 of unknown name or authorship. 2 without character; featureless. anonymity n. [greek an-without, onoma name]

    Anorak n. Waterproof usu. Hooded jacket. [eskimo]

    Anorexia n. Lack of appetite, esp. (in full anorexia nervosa) an obsessive desire to lose weight by refusing to eat. anorexic adj. & n. [greek an-without, orexis appetite]

    Another —adj. 1 an additional; one more (another cake). 2 person like (another hitler). 3 a different (another matter). 4 some other (another man’s work). — pron. Additional, other, or different person or thing. [earlier an other]

    Answer —n. 1 something said or done in reaction to a question, statement, or circumstance. 2 solution to a problem. —v. 1 make an answer or response (to) (answer the door). 2 suit (a purpose or need). 3 (foll. By to, for) be responsible (you will answer to me for your conduct). 4 (foll. By to) correspond, esp. To a description. answer back answer insolently. [old english, = swear against (a charge)]

    Answerable adj. 1 (usu. Foll. By to, for) responsible (answerable to them for any accident). 2 that can be answered.

    Answering machine n. Tape recorder which answers telephone calls and takes messages.

    Answerphone n. = *answering machine.

    Ant n. Small usu. Wingless insect living in complex social colonies and proverbial for industry. [old english]

    -ant suffix 1 forming adjectives denoting attribution of an action (repentant) or state (arrogant). 2 forming agent nouns (assistant). [latin -ant-, present participial stem of verbs]

    Antacid —adj. Preventing or correcting acidity. —n. Antacid agent.

    Antagonism n. Active hostility. [french: related to *agony]

    Antagonist n. Opponent or adversary. antagonistic adj.

    Antagonize v. (also -ise) (-zing or -sing) make hostile; provoke.

    Antarctic —adj. Of the south polar regions. —n. This region. [latin: related to *arctic]

    Antarctic circle n. Parallel of latitude 66° 32´ s., forming an imaginary line round the antarctic region.

    Ante —n. 1 stake put up by a player in poker etc. Before receiving cards. 2 amount payable in advance. —v. (-tes, -ted) 1 put up as an ante. 2 us a bet, stake. B (foll. By up) pay.

    Ante-prefix before, preceding. [latin, = before]

    Anteater n. Any of various mammals feeding on ants and termites.

    Antecedent —n. 1 preceding thing or circumstance. 2 gram. Word or phrase etc. To which another word (esp. A relative pronoun) refers. 3 (in pl.) Person’s past history or ancestors. —adj. Previous. [latin cedo go]

    Antechamber n. Ante-room.

    Antedate v. (-ting) 1 precede in time. 2 assign an earlier than actual date to.

    Antediluvian adj. 1 of the time before the flood. 2 colloq. Very old or out of date. [from *ante-, latin diluvium deluge]

    Antelope n. (pl. Same or -s) swift-moving deerlike ruminant, e.g. The gazelle and gnu. [greek antholops]

    Antenatal adj. 1 before birth. 2 of pregnancy.

    Antenna n. 1 (pl. -tennae) each of a pair of feelers on the heads of insects, crustaceans, etc. 2 (pl. -s) = *aerial n. [latin, = sail-yard]

    Antepenultimate adj. Last but two.

    Ante-post adj. (of betting) done at odds determined at the time of betting, in advance of the event concerned. [from *ante-, *post1]

    Anterior adj. 1 nearer the front. 2 (often foll. By to) prior. [latin from ante before]

    Ante-room n. Small room leading to a main one.

    Anthem n. 1 elaborate choral composition usu. Based on a passage of scripture. 2 solemn hymn of praise etc., esp. = *national anthem. [latin: related to *antiphon]

    Anther n. Part of a stamen containing pollen. [greek anthos flower]

    Anthill n. Moundlike nest built by ants or termites.

    Anthology n. (pl. -ies) collection of poems, essays, stories, etc. anthologist n. [greek anthos flower, -logia collection]

    Anthracite n. Hard type of coal burning with little flame and smoke. [greek: related to *anthrax]

    Anthrax n. Disease of sheep and cattle transmissible to humans. [greek, = coal, carbuncle]

    Anthropocentric adj. Regarding mankind as the centre of existence. [greek anthropos man]

    Anthropoid —adj. Human in form. —n. Anthropoid ape.

    Anthropology n. The study of mankind, esp. Its societies and customs. anthropological adj. Anthropologist n.

    Anthropomorphism n. Attribution of human characteristics to a god, animal, or thing. anthropomorphic adj. [greek morphe form]

    Anthropomorphous adj. Human in form.

    Anti —prep. Opposed to. —n. (pl. -s) person opposed to a policy etc.

    Anti-prefix 1 opposed to (anticlerical). 2 preventing (antifreeze). 3 opposite of (anticlimax). 4 unconventional (anti-hero). [greek]

    Anti-abortion adj. Opposing abortion. anti-abortionist n.

    Anti-aircraft adj. (of a gun or missile) used to attack enemy aircraft.

    Antibiotic —n. Substance (e.g. Penicillin) that can inhibit or destroy susceptible micro-organisms. —adj. Functioning as an antibiotic. [greek bios life]

    Antibody n. (pl. -ies) a blood protein produced in response to and then counteracting antigens. [translation of german antikörper]

    Antic n. (usu. In pl.) Foolish behaviour or action. [italian antico *antique]

    Antichrist n. Enemy of christ. antichristian adj.

    Anticipate v. (-ting) 1 deal with or use before the proper time. 2 expect, foresee (did not anticipate a problem). 3 forestall (a person or thing). 4 look forward to. anticipation n. Anticipatory adj. [latin anti-before, capio take]

    Usage the use of anticipate in sense 2, ‘expect’, ‘foresee’, is well-established in informal use, but is regarded as incorrect by some people.

    Anticlerical adj. Opposed to clerical influence, esp. In politics.

    Anticlimax n. Disappointingly trivial conclusion to something significant.

    Anticlimax n. Disappointingly trivial conclusion to something significant.

    Anticlockwise adj. & adv. Moving in a curve opposite in direction to the hands of a clock.

    Anticyclone n. System of winds rotating outwards from an area of high pressure, producing fine weather.

    Antidepressant —n. Drug etc. That alleviates depression. —adj. Alleviating depression.

    Antidote n. 1 medicine etc. Used to counteract poison. 2 anything counteracting something unpleasant. [greek antidotos given against]

    Antifreeze n. Substance added to water to lower its freezing point, esp. In a vehicle’s radiator.

    Antigen n. Foreign substance (e.g. Toxin) which causes the body to produce antibodies. [greek -genes of a kind]

    Anti-hero n. (pl. -es) central character in a story, lacking conventional heroic qualities.

    Antihistamine n. Drug that counteracts the effects of histamine, used esp. In treating allergies.

    Antiknock n. Substance added to motor fuel to prevent premature combustion.

    Anti-lock attrib. Adj. (of brakes) set up so as to prevent locking and skidding when applied suddenly.

    Antilog n. Colloq. = *antilogarithm. [abbreviation]

    Antilogarithm n. Number to which a logarithm belongs.

    Antimacassar n. Detachable protective cloth for the back of a chair etc.

    Antimatter n. Matter composed solely of antiparticles.

    Antimony n. Brittle silvery metallic element used esp. In alloys. [medieval latin]

    Antinomian —adj. Believing that christians need not obey the moral law. —n. (antinomian) hist. Person believing this. [greek nomos law]

    Antinomy n. (pl. -ies) contradiction between two reasonable beliefs or conclusions.

    Antinovel n. Novel avoiding the conventions of the form.

    Anti-nuclear adj. Opposed to the development of nuclear weapons or power.

    Antiparticle n. Elementary particle with the same mass but opposite charge etc. To another particle.

    Antipathy n. (pl. -ies) (often foll. By to, for, between) strong aversion or dislike. antipathetic adj. [greek: related to *pathetic]

    Antiperspirant n. Substance preventing or reducing perspiration.

    Antiphon n. 1 hymn sung alternately by two groups. 2 versicle or phrase from this. antiphonal adj. [greek phone sound]

    Antipodes n.pl. Places diametrically opposite to one another on the earth, esp. (also antipodes) australasia in relation to europe. antipodean adj. & n. [greek, = having the feet opposite]

    Antipope n. Pope set up in opposition to one chosen by canon law.

    Antipyretic —adj. Preventing or reducing fever. —n. Antipyretic drug.

    Antiquarian —adj. Of or dealing in antiques or rare books. —n. Antiquary. antiquarianism n.

    Antiquary n. (pl. -ies) student or collector of antiques etc. [latin: related to *antique]

    Antiquated adj. Old-fashioned.

    Antique —n. Old object, esp. A piece of furniture, of high value. —adj. 1 of or from an early date. 2 old-fashioned. [latin antiquus]

    Antiquity n. (pl. -ies) 1 ancient times, esp. Before the middle ages. 2 great age. 3 (usu. In pl.) Relics from ancient times. [latin: related to *antique]

    Antirrhinum n. Plant with two-lipped flowers, esp. The snapdragon. [greek, = snout]

    Anti-semite n. Person who is prejudiced against jews. anti-semitic adj. Anti-semitism n.

    Antiseptic —adj. 1 counteracting sepsis, esp. By destroying germs. 2 sterile, uncontaminated. 3 lacking character. —n. Antiseptic agent.

    Antiserum n. Serum with a high antibody content.

    Antisocial adj. 1 opposed or harmful to society. 2 not sociable.

    Usage antisocial is sometimes used mistakenly instead of unsocial in the phrase unsocial hours. This should be avoided.

    Antistatic adj. Counteracting the effects of static electricity.

    Anti-tank attrib. Adj. Used against tanks.

    Antitetanus adj. Effective against tetanus.

    Antithesis n. (pl. -theses) 1 (foll. By of, to) direct opposite. 2 contrast. 3 rhetorical use of strongly contrasted words. antithetical adj. [greek antitithemi set against]

    Antitoxin n. Antibody counteracting a toxin. antitoxic adj.

    Antitrades n.pl. Winds blowing in the opposite direction to (and usu. Above) trade winds.

    Antiviral adj. Effective against viruses.

    Antler n. Branched horn of a stag or other deer. antlered adj. [french]

    Antonym n. Word opposite in meaning to another. [greek onoma name]

    Antrum n. (pl. Antra) natural cavity in the body, esp. In a bone. [greek, = cave]

    Anus n. (pl. Anuses) excretory opening at the end of the alimentary canal. [latin]

    Anvil n. Iron block on which metals are worked. [old english]

    Anxiety n. (pl. -ies) 1 being anxious. 2 worry or concern. 3 eagerness, troubled desire. [latin anxietas from ango choke]

    Anxious adj. 1 mentally troubled. 2 causing or marked by anxiety (anxious moment). 3 eager, uneasily wanting (anxious to please). anxiously adv. [latin anxius]

    Any —adj. 1 a one, no matter which, of several (cannot find any answer). B some, no matter how much or many or of what sort (if any books arrive; have you any sugar?). 2 a minimal amount of (hardly any difference). 3 whichever is chosen (any fool knows). 4 an appreciable or significant (did not stay for any length of time; has any amount of money). —pron. 1 any one (did not know any of them). 2 any number or amount (are any of them yours?). —adv. (usu. With neg. Or interrog.) At all (is that any good?). [old english ænig: related to one, -y1]

    Anybody n. & pron. 1 any person. 2 person of importance (is he anybody?).

    Anyhow adv. 1 anyway. 2 in a disorderly manner or state (does his work anyhow).

    anyhow).

    Anyone pron. Anybody.

    Usage anyone is written as two words to emphasize a numerical sense, as in any one of us can do it.

    Anything pron. Any thing; thing of any sort. anything but not at all.

    Anyway adv. 1 in any way or manner. 2 at any rate. 3 to resume (anyway, as i was saying).

    Anywhere —adv. In or to any place. —pron. Any place (anywhere will do).

    Aob abbr. Any other business.

    Aorta n. (pl. -s) main artery, giving rise to the arterial network carrying oxygenated blood to the body from the heart. aortic adj. [greek aeiro raise]

    Apace adv. Literary swiftly. [french à pas]

    Apache n. Member of a n. American indian tribe. [mexican spanish]

    Apart adv. 1 separately, not together (keep your feet apart). 2 into pieces (came apart). 3 to or on one side. 4 to or at a distance. apart from 1 excepting, not considering. 2 in addition to (apart from roses we grow irises). [french à part to one side]

    Apartheid n. (esp. In s. Africa) racial segregation or discrimination. [afrikaans]

    Apartment n. 1 (in pl.) Suite of rooms. 2 single room. 3 us flat. [italian a parte, apart]

    Apathy n. Lack of interest; indifference. apathetic adj. [greek a-without, *pathos]

    Ape —n. 1 tailless monkey-like primate, e.g. The gorilla, chimpanzee, orang-utan, or gibbon. 2 imitator. —v. (-ping) imitate, mimic. [old english]

    Apeman n. Extinct primate held to be the forerunner of present-day man.

    Aperient —adj. Laxative. —n. Laxative medicine. [latin aperio open]

    Aperitif n. Alcoholic drink taken before a meal. [latin aperio open]

    Aperture n. Opening or gap, esp. A variable opening in a camera for admitting light. [latin aperio open]

    Apex n. (also apex) (often attrib.) System of reduced fares for scheduled flights. [advance purchase excursion]

    Apex n. (pl. -es) 1 highest point. 2 tip or pointed end. [latin]

    Aphasia n. Loss of verbal understanding or expression, owing to brain damage. [greek aphatos speechless]

    Aphelion n. (pl. -lia) point in a celestial body’s orbit where it is furthest from the sun. [greek aph’heliou from the sun]

    Aphid n. Small insect infesting and damaging plants, e.g. The greenfly.

    Antitrades n.pl. Winds blowing in the opposite direction to (and usu. Above) trade winds.

    Antiviral adj. Effective against viruses.

    Antler n. Branched horn of a stag or other deer. antlered adj. [french]

    Antonym n. Word opposite in meaning to another. [greek onoma name]

    Antrum n. (pl. Antra) natural cavity in the body, esp. In a bone. [greek, = cave]

    Anus n. (pl. Anuses) excretory opening at the end of the alimentary canal. [latin]

    Anvil n. Iron block on which metals are worked. [old english]

    Anxiety n. (pl. -ies) 1 being anxious. 2 worry or concern. 3 eagerness, troubled desire. [latin anxietas from ango choke]

    Anxious adj. 1 mentally troubled. 2 causing or marked by anxiety (anxious moment). 3 eager, uneasily wanting (anxious to please). anxiously adv. [latin anxius]

    Any —adj. 1 a one, no matter which, of several (cannot find any answer). B some, no matter how much or many or of what sort (if any books arrive; have you any sugar?). 2 a minimal amount of (hardly any difference). 3 whichever is chosen (any fool knows). 4 an appreciable or significant (did not stay for any length of time; has any amount of money). —pron. 1 any one (did not know any of them). 2 any number or amount (are any of them yours?). —adv. (usu. With neg. Or interrog.) At all (is that any good?). [old english ænig: related to one, -y1]

    Anybody n. & pron. 1 any person. 2 person of importance (is he anybody?).

    Anyhow adv. 1 anyway. 2 in a disorderly manner or state (does his work anyhow).

    Anyone pron. Anybody.

    Anyone pron. Anybody.

    Usage anyone is written as two words to emphasize a numerical sense, as in any one of us can do it.

    Anything pron. Any thing; thing of any sort. anything but not at all.

    Anyway adv. 1 in any way or manner. 2 at any rate. 3 to resume (anyway, as i was saying).

    Anywhere —adv. In or to any place. —pron. Any place (anywhere will do).

    Aob abbr. Any other business.

    Aorta n. (pl. -s) main artery, giving rise to the arterial network carrying oxygenated blood to the body from the heart. aortic adj. [greek aeiro raise]

    Apace adv. Literary swiftly. [french à pas]

    Apache n. Member of a n. American indian tribe. [mexican spanish]

    Apart adv. 1 separately, not together (keep your feet apart). 2 into pieces (came apart). 3 to or on one side. 4 to or at a distance. apart from 1 excepting, not considering. 2 in addition to (apart from roses we grow irises). [french à part to

    considering. 2 in addition to (apart from roses we grow irises). [french à part to one side]

    Apartheid n. (esp. In s. Africa) racial segregation or discrimination. [afrikaans]

    Apartment n. 1 (in pl.) Suite of rooms. 2 single room. 3 us flat. [italian a parte, apart]

    Apathy n. Lack of interest; indifference. apathetic adj. [greek a-without, *pathos]

    Ape —n. 1 tailless monkey-like primate, e.g. The gorilla, chimpanzee, orang-utan, or gibbon. 2 imitator. —v. (-ping) imitate, mimic. [old english]

    Apeman n. Extinct primate held to be the forerunner of present-day man.

    Aperient —adj. Laxative. —n. Laxative medicine. [latin aperio open]

    Aperitif n. Alcoholic drink taken before a meal. [latin aperio open]

    Aperture n. Opening or gap, esp. A variable opening in a camera for admitting light. [latin aperio open]

    Apex n. (also apex) (often attrib.) System of reduced fares for scheduled flights. [advance purchase excursion]

    Apex n. (pl. -es) 1 highest point. 2 tip or pointed end. [latin]

    Aphasia n. Loss of verbal understanding or expression, owing to brain damage. [greek aphatos speechless]

    Aphelion n. (pl. -lia) point in a celestial body’s orbit where it is furthest from the sun. [greek aph’heliou from the sun]

    Aphid n. Small insect infesting and damaging plants, e.g. The greenfly.

    Aphis n. (pl. Aphides) aphid. [invented by linnaeus: perhaps a misreading of greek koris bug]

    Aphorism n. Short pithy maxim. aphoristic adj. [greek aphorismos definition]

    Aphorism n. Short pithy maxim. aphoristic adj. [greek aphorismos definition]

    Aphrodisiac —adj. Arousing sexual desire. —n. Aphrodisiac substance. [greek aphrodite goddess of love]

    Apiary n. (pl. -ies) place where bees are kept. apiarist n. [latin apis bee]

    Apical adj. Of, at, or forming an apex.

    Apiculture n. Bee-keeping. apiculturist n. [latin apis bee, *culture]

    Apiece adv. For each one; severally (five pounds apiece). [originally a piece]

    Apish adj. 1 of or like an ape. 2 foolishly imitating.

    Aplomb n. Skilful self-assurance. [french, = straight as a plummet]

    Apocalypse n. 1 violent or destructive event. 2 (the apocalypse) revelation, the last book of the new testament. 3 revelation, esp. About the end of the world. apocalyptic adj. [greek apokalupto reveal]

    Apocrypha n.pl. 1 books included in the septuagint and vulgate versions of the old testament but not in the hebrew bible. 2 (apocrypha) writings etc. Not considered genuine. [greek apokrupto hide away]

    Apocryphal adj. Of doubtful authenticity.

    Apogee n. 1 highest point; climax. 2 point in a celestial body’s orbit where it is furthest from the earth. [greek apogeion]

    Apolitical adj. Not interested in or concerned with politics.

    Apologetic —adj. 1 showing or expressing regret. 2 of apologetics. —n. (usu. In pl.) Reasoned defence, esp. Of christianity. apologetically adv.

    Apologia n. Formal defence of opinions or conduct. [greek: see *apology]

    Apologist n. Person who defends something by argument.

    Apologize v. (also -ise) (-zing or -sing) make an apology, express regret.

    Apology n. (pl. -ies) 1 statement of regret for an offence or failure. 2 explanation or defence. 3 (foll. By for) poor specimen of. [greek apologia from apologeomai speak in defence]

    Apophthegm n. = *aphorism. [latin from greek]

    Apoplectic adj. 1 of or causing apoplexy. 2 colloq. Enraged.

    Apoplexy n. Sudden paralysis caused by blockage or rupture of a brain artery; stroke. [greek apoplesso disable by stroke]

    Apostasy n. (pl. -ies) renunciation of a belief or faith, abandoning of principles, etc. [greek, = defection]

    Apostate n. Person who renounces a former belief etc. apostatize v. (also -ise) (-zing or -sing).

    A posteriori —adj. (of reasoning) proceeding from effects to causes; inductive. —adv. Inductively. [latin, = from what comes after]

    Apostle n. 1 (apostle) any of the twelve men sent out by christ to preach the gospel. 2 leader, esp. Of a new movement. [greek apostolos messenger]

    Apostolate n. 1 position or authority of an apostle. 2 leadership in reform.

    Apostolic adj. 1 of the apostles or their teaching. 2 of the pope.

    Apostolic succession n. Supposed uninterrupted transmission of spiritual authority from the apostles through popes and bishops.

    Apostrophe n. 1 punctuation mark (‘) indicating: a omission of letters or numbers (e.g. Can’t; may ‘92). B possessive case (e.g. Harry’s book; boys’ coats). 2 exclamatory passage addressed to (an often absent) person or thing. apostrophize v. (also -ise) (-zing or -sing) (in sense 2). [greek, = turning away]

    Apothecaries’ measure n. (also apothecaries’ weight) units formerly used in pharmacy.

    Apothecary n. (pl. -ies) archaic dispensing chemist. [greek apotheke storehouse]

    Apotheosis n. (pl. -theoses) 1 elevation to divine status, deification. 2 glorification of a thing; sublime example (apotheosis of chivalry). [greek theos god]

    Appal v. (-ll-) 1 greatly dismay or horrify. 2 (as appalling adj.) Colloq. Very bad, shocking. [french apalir grow pale: related to *pale1]

    Apparatus n. 1 equipment for a particular function, esp. Scientific or technical. 2 political or other complex organization. [latin paro prepare]

    Apparel n. Formal clothing, dress. apparelled adj. [romanic, = make fit, from latin par equal]

    Apparent adj. 1 readily visible; obvious. 2 seeming. apparently adv. [latin: related to *appear]

    Apparent adj. 1 readily visible; obvious. 2 seeming. apparently adv. [latin: related to *appear]

    Apparition n. Remarkable or unexpected thing that appears; ghost or phantom.

    Appeal —v. 1 request earnestly or formally; plead. 2 (usu. Foll. By to) attract, be of interest. 3 (foll. By to) resort to for support. 4 law a (often foll. By to) apply (to a higher court) for reconsideration of a legal decision. B refer (a case) to a higher court. 5 cricket call on the umpire to declare whether a batsman is out. — n. 1 act of appealing. 2 request for public support, esp. Financial. 3 law referral

    n. 1 act of appealing. 2 request for public support, esp. Financial. 3 law referral of a case to a higher court. 4 attractiveness. [latin appello address]

    Appear v. 1 become or be visible. 2 seem (appeared unwell). 3 present oneself publicly or formally. 4 be published. [latin appareo]

    Appearance n. 1 act of appearing. 2 outward form as perceived (appearance of prosperity). 3 semblance. keep up appearances maintain an impression or pretence of virtue, affluence, etc. Make (or put in) an appearance be present, esp. Briefly.

    Appease v. (-sing) 1 make calm or quiet, esp. Conciliate (a potential aggressor) by making concessions. 2 satisfy (an appetite, scruples). appeasement n. [french à to, pais *peace]

    Appellant n. Person who appeals to a higher court. [latin appello address]

    Appellate attrib. Adj. (esp. Of a court) concerned with appeals.

    Appellation n. Formal name or title; nomenclature.

    Appellative adj. 1 naming. 2 gram. (of a noun) designating a class, common.

    Append v. (usu. Foll. By to) attach, affix, add, esp. To a written document. [latin appendo hang]

    Appendage n. Thing attached; addition.

    Appendectomy n. (also appendicectomy) (pl. -ies) surgical removal of the appendix. [from appendix, -ectomy]

    Appendicitis n. Inflammation of the appendix.

    Appendix n. (pl. -dices) 1 tissue forming a tube-shaped sac attached to the large intestine. 2 addition to a book etc. [latin: related to *append]

    Appertain v. (foll. By to) relate, belong, or be appropriate. [latin: related to *pertain]

    Appetite n. 1 natural craving, esp. For food or sexual activity. 2 (usu. Foll. By for) inclination or desire. [latin peto seek]

    Appetizer n. (also -iser) small amount, esp. Of food or drink, to stimulate the appetite.

    Appetizing adj. (also -ising) stimulating the appetite, esp. For food; tasty.

    Applaud v. 1 express strong approval, esp. By clapping. 2 commend, approve (a person or action). [latin applaudo clap hands]

    Applause n. 1 approval shown by clapping the hands. 2 warm approval.

    Apple n. 1 roundish firm fruit with crisp flesh. 2 tree bearing this. apple of one’s eye cherished person or thing. [old english]

    Apple-pie bed n. Bed made (as a joke) with sheets folded so as to prevent a person lying flat.

    Apple-pie order n. Extreme neatness.

    Appliance n. Device etc. For a specific task. [related to *apply]

    Applicable adj. (often foll. By to) that may be applied; relevant; appropriate. applicability n. [medieval latin: related to *apply]

    Applicant n. Person who applies for something, esp. A job.

    Application n. 1 formal request. 2 act of applying. 3 substance applied. 4 a relevance. B use (has many applications). 5 diligence.

    Applicator n. Device for applying ointment etc.

    Applied adj. Practical, not merely theoretical (applied science).

    Appliqué —n. Cutting out of fabric patterns and attaching them to another fabric. —v. (-qués, -quéd, -quéing) decorate with appliqué. [french, = applied]

    Apply v. (-ies, -ied) 1 (often foll. By for, to, or to + infin.) Formally request. 2 be relevant. 3 a make use of; employ (apply the rules; apply common sense). B operate (apply the brakes). 4 (often foll. By to) put or spread on. 5 refl. (often foll. By to) devote oneself. [latin applico fasten to]

    Apply v. (-ies, -ied) 1 (often foll. By for, to, or to + infin.) Formally request. 2 be relevant. 3 a make use of; employ (apply the rules; apply common sense). B operate (apply the brakes). 4 (often foll. By to) put or spread on. 5 refl. (often foll. By to) devote oneself. [latin applico fasten to]

    Appoint v. 1 assign a job or office to. 2 (often foll. By for) fix (a time, place, etc.). 3 (as appointed adj.) Equipped, furnished (well-appointed). appointee n. [french à point to a point]

    Appointment n. 1 appointing or being appointed. 2 arrangement for meeting or consultation. 3 a post or office open to applicants. B person appointed. 4 (usu. In pl.) Furniture, fittings; equipment.

    Apportion v. (often foll. By to) share out; assign as a share. apportionment n. [medieval latin: related to *portion]

    Apposite adj. (often foll. By to) apt, appropriate; well expressed. [latin appono apply]

    Apposition n. Juxtaposition, esp. Gram. Of elements sharing a syntactic function (e.g. William the conqueror; my friend sue).

    Appraisal n. Appraising or being appraised.

    Appraise v. (-sing) 1 estimate the value or quality of. 2 set a price on (esp. Officially). [earlier apprize, assimilated to *praise]

    Appreciable adj. Significant, considerable. [french: related to *appreciate]

    Appreciate v. (-ting) 1 a esteem highly; value. B be grateful for. 2 understand, recognize (appreciate the danger). 3 rise or raise in value. appreciative adj. Appreciatory adj. [latin pretium price]

    Appreciation n. 1 favourable or grateful recognition. 2 sensitive estimation or judgement. 3 rise in value. [french: related to *appreciate]

    Apprehend v. 1 seize, arrest. 2 understand, perceive. [latin prehendo grasp]

    Apprehension n. 1 uneasiness, dread. 2 understanding. 3 arrest, capture.

    Apprehensive adj. Uneasily fearful. apprehensively adv.

    Apprentice —n. 1 person learning a trade by working in it for an agreed period at low wages. 2 novice. —v. (-cing) (usu. Foll. By to) engage as an apprentice (apprenticed to a builder). apprenticeship n. [french apprendre learn]

    Apprise v. (-sing) formal inform. [french appris(e) learnt, taught]

    Appro n. Colloq. on appro = on approval (see *approval). [abbreviation]

    Approach —v. 1 come near or nearer (to) in space or time. 2 tentatively propose to. 3 be similar or approximate to (approaching 5 million). 4 set about (a task etc.). —n. 1 act or means of approaching. 2 approximation. 3 technique (try a new approach). 4 golf stroke from the fairway to the green. 5 aeron. Part of a flight before landing. [latin prope near]

    Approachable adj. 1 friendly, easy to talk to. 2 able to be approached.

    Approbation n. Approval, consent. [latin probo test]

    Appropriate —adj. Suitable, proper. —v. (-ting) 1 take, esp. Without authority. 2 devote (money etc.) To special purposes. appropriately adv. Appropriation n. [latin proprius own]

    Approval n. 1 approving. 2 consent; favourable opinion. on approval (of goods supplied) returnable if not satisfactory.

    Approve v. (-ving) 1 confirm; sanction. 2 (often foll. By of) regard with favour. [latin probo test]

    Approx. Abbr. Approximate(ly).

    Approximate —adj. Fairly correct, near to the actual (approximate price). —v. (-ting) (often foll. By to) bring or come near (esp. In quality, number, etc.). approximately adv. Approximation n. [latin proximus nearest]

    Appurtenance n. (usu. In pl.) Belonging; accessory. [latin pertineo belong to]

    Apr abbr. Annual or annualized percentage rate (esp. Of interest on loans or credit).

    Apr. Abbr. April.

    Après-ski —n. Social activities following a day’s skiing. —attrib. Adj. (of clothes, drinks, etc.) Suitable for these. [french]

    Apricot —n. 1 a small juicy soft orange-yellow peachlike fruit. B tree bearing it. 2 its colour. —adj. Orange-yellow. [portuguese and spanish from arabic, ultimately from latin praecox early-ripe]

    Apricot —n. 1 a small juicy soft orange-yellow peachlike fruit. B tree bearing it. 2 its colour. —adj. Orange-yellow. [portuguese and spanish from arabic, ultimately from latin praecox early-ripe]

    ultimately from latin praecox early-ripe]

    April n. Fourth month of the year. [latin]

    April fool n. Person successfully tricked on 1 april.

    A priori —adj. 1 (of reasoning) from causes to effects; deductive. 2 (of concepts etc.) Logically independent of experience; not derived from experience. 3 assumed without investigation (an a priori conjecture). —adv. 1 deductively. 2 as far as one knows. [latin, = from what is before]

    Apron n. 1 garment for covering and protecting the front of the clothes. 2 theatr. Part of a stage in front of the curtain. 3 area on an airfield for manoeuvring or loading. tied to a person’s apron-strings dominated by or dependent on that person (usu. A woman). [originally napron, from french nape tablecloth]

    Apropos —adj. 1 appropriate. 2 colloq. (often foll. By of) in respect of. —adv. 1 appropriately. 2 (absol.) Incidentally. [french à propos]

    Apse n. Large arched or domed recess, esp. At the end of a church. [related to *apsis]

    Apsis n. (pl. Apsides) either of two points on the orbit of a planet etc. Nearest to or furthest from the body round which it moves. [greek (h)apsis arch, vault]

    Apt adj. 1 appropriate, suitable. 2 tending (apt to break down). 3 clever; quick to

    Apt adj. 1 appropriate, suitable. 2 tending (apt to break down). 3 clever; quick to learn. [latin aptus fitted]

    Aptitude n. 1 natural talent. 2 ability or fitness, esp. Specified. [french: related to *apt]

    Aqua n. The colour aquamarine. [abbreviation]

    Aqua fortis n. Nitric acid. [latin, = strong water]

    Aqualung n. Portable breathing-apparatus for divers. [latin aqua water]

    Aquamarine —n. 1 bluish-green beryl. 2 its colour. —adj. Bluish-green. [latin aqua marina sea water]

    Aquaplane —n. Board for riding on water, pulled by a speedboat. —v. (-ning) 1 ride on this. 2 (of a vehicle) glide uncontrollably on a wet surface. [latin aqua water, *plane1]

    Aqua regia n. Highly corrosive mixture of acids, attacking many substances unaffected by other reagents. [latin, = royal water]

    Aquarelle n. Painting in thin usu. Transparent water-colours. [french from italian]

    Aquarium n. (pl. -s) tank of water for keeping and showing fish etc. [latin aquarius of water]

    Aquarius n. (pl. -es) 1 constellation and eleventh sign of the zodiac (the water-carrier). 2 person born when the sun is in this sign. [latin: related to *aquarium]

    Aquatic —adj. 1 growing or living in water. 2 (of a sport) played in or on water. —n. 1 aquatic plant or animal. 2 (in pl.) Aquatic sports. [latin aqua water]

    Aquatint n. Etched print resembling a water-colour. [italian acqua tinta coloured water]

    Aqua vitae n. Strong alcoholic spirit, esp. Brandy. [latin, = water of life]

    Aqueduct n. Water channel, esp. A bridge on columns across a valley. [latin aquae ductus conduit]

    Aqueous adj. Of or like water. [latin aqua water]

    Aqueous humour n. Clear fluid in the eye between the lens and the cornea.

    Aquilegia n. (usu. Blue-flowered) columbine. [latin]

    Aquiline adj. 1 of or like an eagle. 2 (of a nose) curved. [latin aquila eagle]

    Ar symb. Argon.

    -ar suffix forming adjectives (angular; linear). [latin -aris]

    Arab —n. 1 member of a semitic people originating in saudi arabia and neighbouring countries, now widespread throughout the middle east. 2 horse of a breed orig. Native to arabia. —adj. Of arabia or the arabs (esp. With ethnic reference). [arabic araps]

    Arabesque n. 1 ballet posture with one leg extended horizontally backwards and arms outstretched. 2 design of intertwined leaves, scrolls, etc. 3 mus. Florid piece. [french from italian from arabo arab]

    Arabian —adj. Of or relating to arabia (esp. In geographical contexts) (arabian desert). —n. Native of arabia.

    Usage in the sense ‘native of arabia’, the usual term is now arab.

    Arabian —adj. Of or relating to arabia (esp. In geographical contexts) (arabian desert). —n. Native of arabia.

    Usage in the sense ‘native of arabia’, the usual term is now arab.

    Arabic —n. Semitic language of the arabs. —adj. Of the arabs (esp. Their language or literature).

    Arabic numeral n. Any of the numerals 0-9.

    Arable adj. (of land) suitable for crop production. [latin aro to plough]

    Arachnid n. Arthropod of a class comprising spiders, scorpions, etc. [greek arakhne spider]

    Arak var. Of *arrack.

    Araldite n. Propr. Epoxy resin for mending china etc. [origin unknown]

    Aramaic —n. Branch of the semitic family of languages, esp. The language of syria used as a lingua franca in the near east from the sixth century bc. —adj. Of or in aramaic. [greek aramaios of aram (hebrew name of syria)]

    Arbiter n. 1 arbitrator in a dispute. 2 person influential in a specific field (arbiter of taste). [latin from arbitror to judge]

    Arbitrary adj. 1 random. 2 capricious; despotic. arbitrarily adv.

    Arbitrate v. (-ting) decide by arbitration.

    Arbitration n. Settlement of a dispute by an impartial third party.

    Arbitrator n. Person appointed to arbitrate.

    Arbor1 n. Axle or spindle. [latin, = tree]

    Arbor n. (brit. Arbour) shady garden alcove enclosed by trees etc. [latin herba herb: assimilated to latin arbor tree]

    Arboreal adj. Of or living in trees. [latin arbor tree]

    Arborescent adj. Treelike in growth or form.

    Arboretum n. (pl. -ta) place cultivating and displaying rare trees.

    Arboriculture n. Cultivation of trees and shrubs. [latin arbor tree, after agriculture]

    Arbor vitae n. Any of various evergreen conifers. [latin, = tree of life]

    Arbour n. (us arbor) shady garden alcove enclosed by trees etc. [latin herba herb: assimilated to latin arbor tree]

    Arbutus n. Tree or shrub with clusters of flowers and strawberry-like berries. [latin]

    Arc —n. 1 part of the circumference of a circle or other curve. 2 electr. Luminous discharge between two electrodes. —v. (arced; arcing) form an arc; move in a curve. [latin arcus bow]

    Arcade n. 1 covered walk, esp. Lined with shops. 2 series of arches supporting or set along a wall. [romanic: related to *arc]

    Arcadian —n. Idealized country dweller. —adj. Poetically rural. [greek arkadia in the peloponnese]

    Arcane adj. Mysterious, secret. [latin arceo shut up]

    Arch1 —n. 1 curved structure as an opening, as a support for a bridge, floor, etc., or as an ornament. 2 any arch-shaped curve. —v. 1 provide with or form into an arch. 2 span like an arch. 3 form an arch. [latin arcus arc]

    Arch2 adj. Selfconsciously or affectedly playful. archly adv. [from *arch-, originally in arch rogue etc.]

    Arch-comb. Form 1 chief, superior (archbishop). 2 pre-eminent, esp. Unfavourably (arch-enemy). [greek arkhos chief]

    Archaean (us archean) —adj. Of the earliest geological era. —n. This time. [greek arkhaios ancient]

    Archaeology n. (us archeology) study of ancient cultures, esp. By the excavation and analysis of physical remains. archaeological adj. Archaeologist n. [greek arkhaiologia ancient history]

    Archaeopteryx n. Fossil bird with teeth, feathers, and a reptilian tail. [greek arkhaios ancient, pterux wing]

    Archaic adj. 1 a antiquated. B (of a word etc.) No longer in ordinary use. 2 of an early period of culture. archaically adv. [greek arkhe beginning]

    Archaism n. 1 use of the archaic esp. In language or art. 2 archaic word or expression. archaistic adj.

    Archangel n. Angel of the highest rank.

    Archbishop n. Chief bishop of a province.

    Archbishopric n. Office or diocese of an archbishop.

    Archbishopric n. Office or diocese of an archbishop.

    Archdeacon n. Church dignitary next below a bishop. archdeaconry n. (pl. -ies).

    Archdiocese n. Diocese of an archbishop. archdiocesan adj.

    Arabian —adj. Of or relating to arabia (esp. In geographical contexts) (arabian desert). —n. Native of arabia.

    Usage in the sense ‘native of arabia’, the usual term is now arab.

    Arabic —n. Semitic language of the arabs. —adj. Of the arabs (esp. Their language or literature).

    Arabic numeral n. Any of the numerals 0-9.

    Arable adj. (of land) suitable for crop production. [latin aro to plough]

    Arachnid n. Arthropod of a class comprising spiders, scorpions, etc. [greek arakhne spider]

    Arak var. Of *arrack.

    Araldite n. Propr. Epoxy resin for mending china etc. [origin unknown]

    Aramaic —n. Branch of the semitic family of languages, esp. The language of syria used as a lingua franca in the near east from the sixth century bc. —adj. Of or in aramaic. [greek aramaios of aram (hebrew name of syria)]

    Arbiter n. 1 arbitrator in a dispute. 2 person influential in a specific field (arbiter of taste). [latin from arbitror to judge]

    Arbitrary adj. 1 random. 2 capricious; despotic. arbitrarily adv.

    Arbitrate v. (-ting) decide by arbitration.

    Arbitration n. Settlement of a dispute by an impartial third party.

    Arbitrator n. Person appointed to arbitrate.

    Arbor1 n. Axle or spindle. [latin, = tree]

    Arbor n. (brit. Arbour) shady garden alcove enclosed by trees etc. [latin herba herb: assimilated to latin arbor tree]

    Arboreal adj. Of or living in trees. [latin arbor tree]

    Arborescent adj. Treelike in growth or form.

    Arboretum n. (pl. -ta) place cultivating and displaying rare trees.

    Arboriculture n. Cultivation of trees and shrubs. [latin arbor tree, after agriculture]

    Arbor vitae n. Any of various evergreen conifers. [latin, = tree of life]

    Arbour n. (us arbor) shady garden alcove enclosed by trees etc. [latin herba herb: assimilated to latin arbor tree]

    Arbutus n. Tree or shrub with clusters of flowers and strawberry-like berries. [latin]

    Arc —n. 1 part of the circumference of a circle or other curve. 2 electr. Luminous discharge between two electrodes. —v. (arced; arcing) form an arc; move in a curve. [latin arcus bow]

    Arcade n. 1 covered walk, esp. Lined with shops. 2 series of arches supporting or set along a wall. [romanic: related to *arc]

    Arcadian —n. Idealized country dweller. —adj. Poetically rural. [greek arkadia in the peloponnese]

    in the peloponnese]

    Arcane adj. Mysterious, secret. [latin arceo shut up]

    Arch1 —n. 1 curved structure as an opening, as a support for a bridge, floor, etc., or as an ornament. 2 any arch-shaped curve. —v. 1 provide with or form into an arch. 2 span like an arch. 3 form an arch. [latin arcus arc]

    Arch2 adj. Selfconsciously or affectedly playful. archly adv. [from *arch-, originally in arch rogue etc.]

    Arch-comb. Form 1 chief, superior (archbishop). 2 pre-eminent, esp. Unfavourably (arch-enemy). [greek arkhos chief]

    Archaean (us archean) —adj. Of the earliest geological era. —n. This time. [greek arkhaios ancient]

    Archaeology n. (us archeology) study of ancient cultures, esp. By the excavation and analysis of physical remains. archaeological adj. Archaeologist n. [greek arkhaiologia ancient history]

    Archaeopteryx n. Fossil bird with teeth, feathers, and a reptilian tail. [greek arkhaios ancient, pterux wing]

    Archaic adj. 1 a antiquated. B (of a word etc.) No longer in ordinary use. 2 of an early period of culture. archaically adv. [greek arkhe beginning]

    early period of culture. archaically adv. [greek arkhe beginning]

    Archaism n. 1 use of the archaic esp. In language or art. 2 archaic word or expression. archaistic adj.

    Archangel n. Angel of the highest rank.

    Archbishop n. Chief bishop of a province.

    Archbishopric n. Office or diocese of an archbishop.

    Archdeacon n. Church dignitary next below a bishop. archdeaconry n. (pl. -ies).

    Archdiocese n. Diocese of an archbishop. archdiocesan adj.

    Archdiocese n. Diocese of an archbishop. archdiocesan adj.

    Archduke n. Hist. Chief duke (esp. As the title of a son of the emperor of austria). archduchy n. (pl. -ies). [medieval latin archidux]

    Archean (brit. Archaean) —adj. Of the earliest geological era. —n. This time. [greek arkhaios ancient]

    Arch-enemy n. (pl. -ies) 1 chief enemy. 2 the devil.

    Archeology n. (brit. Archaeology) study of ancient cultures, esp. By the excavation and analysis of physical remains. archeological adj. Archeologist n. [greek arkhaiologia ancient history]

    Archer n. 1 person who shoots with a bow and arrows. 2 (the archer) zodiacal sign or constellation sagittarius. [latin arcus bow]

    Archery n. Shooting with a bow and arrows, esp. As a sport.

    Archetype n. 1 original model; prototype. 2 typical specimen. archetypal adj. [greek tupon stamp]

    Archidiaconal adj. Of an archdeacon. [medieval latin]

    Archiepiscopal adj. Of an archbishop. [church latin from greek]

    Archimandrite n. 1 superior of a large monastery in the orthodox church. 2 honorary title of a monastic priest. [greek arkhi-chief, mandrites monk]

    Archipelago n. (pl. -s) 1 group of islands. 2 sea with many islands. [greek arkhi-chief, pelagos sea]

    Architect n. 1 designer of buildings etc., supervising their construction. 2 (foll. By of) person who brings about a specified thing (architect of peace). [greek

    By of) person who brings about a specified thing (architect of peace). [greek arkhi-chief, tekton builder]

    Architectonic adj. 1 of architecture. 2 of the systematization of knowledge.

    Architecture n. 1 design and construction of buildings. 2 style of a building. 3 buildings etc. Collectively. architectural adj.

    Architrave n. 1 (in classical architecture) main beam resting across the tops of columns. 2 moulded frame around a doorway or window. [italian archi- *arch-, latin trabs beam]

    Archive —n. (usu. In pl.) 1 collection of documents or records. 2 store for these. —v. (-ving) 1 place or store in an archive. 2 computing transfer (data) to a less frequently used file. [greek arkheia public records]

    Archivist n. Keeper of archives.

    Archway n. Arched entrance or passage.

    Arc lamp n. (also arc light) light using an electric arc.

    Arctic —adj. 1 of the north polar regions. 2 (arctic) colloq. Very cold. —n. Arctic regions. [greek arktos great bear]

    Arctic circle n. Parallel of latitude 66° 33´ n, forming an imaginary line round the arctic region.

    Arc welding n. Use of an electric arc to melt metals to be welded.

    Ardent adj. 1 eager, fervent, passionate. 2 burning. ardently adv. [latin ardeo burn]

    Ardor n. (brit. Ardour) zeal, enthusiasm, passion.

    Ardour n. (us ardor) zeal, enthusiasm, passion.

    Arduous adj. Hard to accomplish; laborious, strenuous. [latin, = steep]

    Are1 2nd sing. Present & 1st, 2nd, 3rd pl. Present of *be.

    Are2 n. Metric unit of measure, 100 square metres. [latin: related to *area]

    Area n. 1 extent or measure of a surface (over a large area). 2 region (southern area). 3 space for a specific purpose (dining area). 4 scope or range. 5 space in front of the basement of a building. [latin, = vacant space]

    Arena n. 1 central part of an amphitheatre etc. 2 scene of conflict; sphere of action. [latin, = sand]

    Aren’t contr. 1 are not. 2 (in interrog.) Am not (aren’t i coming too?).

    Areola n. (pl. -lae) circular pigmented area, esp. Around a nipple. areolar adj. [latin diminutive of *area]

    Arête n. Sharp mountain ridge. [french from latin arista spine]

    Argent n. & adj. Heraldry silver; silvery-white. [latin argentum]

    Argon n. Inert gaseous element. [greek argos idle]

    Argosy n. (pl. -ies) poet. Large merchant ship. [italian ragusea nave ship of ragusa (in dalmatia)]

    Argot n. Jargon of a group or class. [french]

    Argue v. (-ues, -ued, -uing) 1 (often foll. By with, about, etc.) Exchange views forcefully or contentiously. 2 (often foll. By that) maintain by reasoning; indicate. 3 (foll.

    Argue v. (-ues, -ued, -uing) 1 (often foll. By with, about, etc.) Exchange views forcefully or contentiously. 2 (often foll. By that) maintain by reasoning; indicate. 3 (foll. By for, against) reason. 4 treat (a matter) by reasoning. 5 (foll.

    indicate. 3 (foll. By for, against) reason. 4 treat (a matter) by reasoning. 5 (foll. By into, out of) persuade. argue the toss colloq. Dispute a choice already made. arguable adj. Arguably adv. [latin arguo make clear, prove]

    Argument n. 1 (esp. Contentious) exchange of views; dispute. 2 (often foll. By for, against) reason given; reasoning process. 3 summary of a book etc.

    Argumentation n. Methodical reasoning; arguing.

    Argumentative adj. Given to arguing.

    Argus n. Watchful guardian. [greek argos mythical giant with 100 eyes]

    Argy-bargy n. (pl. -ies) joc. Dispute, wrangle. [originally scots]

    Aria n. Long accompanied solo song in an opera etc. [italian]

    Arid adj. 1 dry, parched. 2 uninteresting. aridity n. [latin areo be dry]

    Aries n. (pl. Same) 1 constellation and first sign of the zodiac (the ram). 2 person born when the sun is in this sign. [latin, = ram]

    Aright adv. Rightly.

    Arise v. (-sing; past arose; past part. Arisen) 1 originate. 2 (usu. Foll. By from, out of) result. 3 come to one’s notice; emerge. 4 rise, esp. From the dead or from kneeling. [old english a-intensive prefix]

    Aristocracy n. (pl. -ies) 1 ruling class or élite; nobility. 2 a government by an élite. B state so governed. 3 (often foll. By of) best representatives. [greek aristokratia rule by the best]

    Aristocrat n. Member of the aristocracy.

    Aristocratic adj. 1 of or like the aristocracy. 2 a distinguished. B grand, stylish.

    Aristotelian —n. Disciple or student of aristotle. —adj. Of aristotle or his ideas. [greek aristoteles (4th c. Bc), name of a greek philosopher]

    Arithmetic —n. 1 science of numbers. 2 use of numbers; computation. —adj. (also arithmetical) of arithmetic. [greek arithmos number]

    Arithmetic mean n. = *average 2.

    Arithmetic progression n. Sequence of numbers with constant intervals (e.g. 9, 7, 5, 3, etc.).

    Ark n. Ship in which noah escaped the flood with his family and animals. [old

    Ark n. Ship in which noah escaped the flood with his family and animals. [old english from latin arca]

    Ark of the covenant n. Chest or cupboard containing the tables of jewish law.

    Arm1 n. 1 upper limb of the human body from shoulder to hand. 2 forelimb or tentacle of an animal. 3 a sleeve of a garment. B arm support of a chair etc. C thing branching from a main stem (an arm of the sea). D control, means of reaching (arm of the law). arm in arm with arms linked. At arm’s length at a distance. With open arms cordially. armful n. (pl. -s). [old english]

    Arm2 —n. 1 (usu. In pl.) Weapon. 2 (in pl.) Military profession. 3 branch of the military (e.g. Infantry, cavalry). 4 (in pl.) Heraldic devices (coat of arms). —v. 1 supply, or equip oneself, with weapons etc., esp. In preparation for war. 2 make (a bomb etc.) Ready. take up arms go to war. Under arms equipped for war. Up in arms (usu. Foll. By against, about) actively resisting, highly indignant. [latin arma arms]

    Armada n. Fleet of warships, esp. (armada) that sent by spain against england in 1588. [spanish from romanic]

    Armadillo n. (pl. -s) s. American mammal with a plated body and large claws. [spanish armado armed man]

    Armageddon n. Huge battle or struggle, esp. Marking the end of the world. [rev. 16:16]

    Armament n. 1 (often in pl.) Military equipment. 2 equipping for war. 3 force

    Armament n. 1 (often in pl.) Military equipment. 2 equipping for war. 3 force equipped. [latin: related to *arm2]

    Armature n. 1 rotating coil or coils of a dynamo or electric motor. 2 iron bar placed across the poles of a horseshoe magnet to preserve its power. 3 metal framework on which a sculpture is moulded. [latin armatura, = armour]

    Armband n. Band worn around the upper arm to hold up a shirtsleeve, or as identification, or to aid swimming.

    Armchair n. 1 chair with arm supports. 2 (attrib.) Theoretical rather than active (armchair critic).

    Armhole n. Each of two holes for arms in a garment.

    Armhole n. Each of two holes for arms in a garment.

    Armistice n. Truce, esp. Permanent. [latin arma arms, sisto make stand]

    Armistice day n. Anniversary of the armistice of 11 nov. 1918.

    Armlet n. Ornamental band worn round the arm.

    Armor (brit. Armour) —n. 1 protective usu. Metal covering formerly worn in fighting. 2 a (in full armour-plate) protective metal covering for an armed

    vehicle, ship, etc. B armed vehicles collectively. 3 protective covering or shell of an animal or plant. 4 heraldic devices. —v. (usu. Asarmoured adj.) Provide with protective covering, and often guns (armoured car; armoured train). [latin armatura: related to *arm2]

    Armorial adj. Of heraldry or coats of arms. [related to *armour]

    Armour —n. 1 protective usu. Metal covering formerly worn in fighting. 2 a (in full armour-plate) protective metal covering for an armed vehicle, ship, etc. B armed vehicles collectively. 3 protective covering or shell of an animal or plant. 4 heraldic devices. —v. (usu. As armoured adj.) Provide with protective covering, and often guns (armoured car; armoured train). [latin armatura: related to *arm2]

    Armourer n. 1 maker of arms or armour. 2 official in charge of arms.

    Armoury n. (pl. -ies) arsenal.

    Armpit n. Hollow under the arm at the shoulder.

    Armrest n. = *arm1 3b.

    Arms race n. Competitive accumulation of weapons by nations.

    Arm-wrestling n. Trial of strength in which each party tries to force the other’s arm down.

    arm down.

    Army n. (pl. -ies) 1 organized armed land force. 2 (prec. By the) the military profession. 3 (often foll. By of) very large number (army of locusts). 4 organized civilian body (salvation army). [french: related to *arm2]

    Arnica n. 1 plant of the daisy family with yellow flowers. 2 medicine prepared from this. [origin unknown]

    Aroma n. 1 esp. Pleasing smell, often of food. 2 subtle pervasive quality. [greek, = spice]

    Aromatherapy n. Use of plant extracts and oils in massage. aromatherapist n.

    Aromatic —adj. 1 fragrant, spicy. 2 chem. Of organic compounds having an unsaturated ring, esp. Containing a benzene ring. —n. Aromatic substance. [latin: related to *aroma]

    Arose past of *arise.

    Around —adv. 1 on every side; all round; round about. 2 colloq. A in existence; available. B near at hand. 3 here and there (shop around). —prep. 1 on or along the circuit of. 2 on every side of. 3 here and there in or near (chairs around the room). 4 a round (church around the corner). B at a time near to (came around four o’clock). have been around colloq. Be widely experienced.

    Arouse v. (-sing) 1 induce (esp. An emotion). 2 awake from sleep. 3 stir into activity. 4 stimulate sexually. arousal n. [a-intensive prefix]

    Arpeggio n. (pl. -s) mus. Notes of a chord played in succession. [italian arpa harp]

    Arrack n. (also arak) alcoholic spirit, esp. Made from coco sap or rice. [arabic]

    Arraign v. 1 indict, accuse. 2 find fault with; call into question (an action or statement). arraignment n. [latin ratio reason]

    Arrange v. (-ging) 1 put into order; classify. 2 plan or provide for; take measures (arranged a meeting; arrange to see him; arranged for a taxi). 3 agree (arranged it with her). 4 mus. Adapt (a composition) for a particular manner of performance. [french: related to *range]

    Arrangement n. 1 arranging or being arranged. 2 manner of this. 3 something arranged. 4 (in pl.) Plans, measures (made my own arrangements). 5 mus. Composition adapted for performance in a particular way.

    Arrant adj. Literary downright, utter (arrant liar). [var. Of *errant, originally in arrant (= outlawed, roving) thief etc.]

    Arras n. Hist. Rich tapestry or wall-hanging. [arras in france]

    Array —n. 1 imposing or well-ordered series or display. 2 ordered arrangement,

    Array —n. 1 imposing or well-ordered series or display. 2 ordered arrangement, esp. Of troops (battle array). —v. 1 deck, adorn. 2 set in order; marshal (forces). [latin ad-, *ready]

    Array —n. 1 imposing or well-ordered series or display. 2 ordered arrangement, esp. Of troops (battle array). —v. 1 deck, adorn. 2 set in order; marshal (forces). [latin ad-, *ready]

    Arrears n.pl. Amount (esp. Of work, rent, etc.) Still outstanding or uncompleted. in arrears behind, esp. In payment. [medieval latin adretro behindhand]

    Arrest —v. 1 lawfully seize (a suspect etc.). 2 stop or check the progress of. 3 attract (a person’s attention). —n. 1 arresting or being arrested. 2 stoppage (cardiac arrest). [latin resto remain]

    Arrester n. Device for slowing an aircraft after landing.

    Arrière-pensée n. 1 secret motive. 2 mental reservation. [french]

    Arris n. Archit. Sharp edge at the junction of two surfaces. [french areste, = *arête]

    Arrival n. 1 arriving; appearance on the scene. 2 person or thing that has arrived.

    Arrive v. (-ving) 1 (often foll. By at, in) reach a destination. 2 (foll. By at) reach (a conclusion etc.). 3 colloq. Become successful. 4 colloq. (of a child) be born. 5 (of a time) come. [latin ripa shore]

    Arriviste n. Ambitious or ruthless person. [french: related to *arrive]

    Arrogant adj. Aggressively assertive or presumptuous. arrogance n. Arrogantly adv. [related to *arrogate]

    Arrogate v. (-ting) 1 (often foll. By to oneself) claim (power etc.) Without right. 2 (often foll. By to) attribute unjustly (to a person). arrogation n. [latin rogo ask]

    Arrow n. 1 pointed slender missile shot from a bow. 2 representation of this, esp. Indicating direction. [old english]

    Arrowhead n. 1 pointed tip of an arrow. 2 water-plant with arrow-shaped leaves.

    Arrowroot n. 1 nutritious starch. 2 plant yielding this.

    Arse n. (us ass) coarse slang buttocks. [old english]

    Arsehole n. (us asshole) coarse slang 1 anus. 2 offens. Contemptible person.

    Arsenal n. 1 store, esp. Of weapons. 2 place for the storage and manufacture of weapons and ammunition. [arabic, = workshop]

    Arsenic —n. 1 non-scientific name for arsenic trioxide, a highly poisonous white powder used in weed-killers etc. 2 chem. Brittle semi-metallic element. —adj. Of or containing arsenic. [french, ultimately from persian zar gold]

    Arson n. Crime of deliberately setting fire to property. arsonist n. [latin ardeo ars-burn]

    Art n. 1 a human creative skill or its application. B work showing this. 2 a (in pl.; prec. By the) branches of creative activity concerned with the production of imaginative designs, sounds, or ideas, e.g. Painting, music, writing. B any one of these. 3 creative activity resulting in visual representation (good at music but not art). 4 human skill as opposed to nature (art and nature combined). 5 (often foll. By of) a skill, knack. B cunning; trick, stratagem. 6 (in pl.; usu. Prec. By the) supposedly creative subjects (esp. Languages, literature, and history) as opposed to scientific, technical, or vocational subjects. [latin ars art-]

    Art deco n. Decorative art style of 1910–30, with geometric motifs and strong colours.

    Artefact n. (also artifact) man-made object, esp. A tool or vessel as an archaeological item. [latin arte by art, facio make]

    Arterial adj. 1 of or like an artery. 2 (esp. Of a road) main, important. [french: related to *artery]

    Arteriosclerosis n. Loss of elasticity and thickening of artery walls, esp. In old age. [from artery, sclerosis]

    Artery n. (pl. -ies) 1 any of the blood-vessels carrying blood from the heart. 2 main road or railway line. [greek, probably from airo raise]

    Artesian well n. Well in which water rises to the surface by natural pressure through a vertically drilled hole. [artois, old french province]

    Artful adj. Crafty, deceitful. artfully adv.

    Arthritis n. Inflammation of a joint or joints. arthritic adj. & n. [greek arthron joint]

    Arthropod n. Invertebrate with a segmented body and jointed limbs, e.g. An insect, spider, or crustacean. [greek arthron joint, pous pod-foot]

    Arthropod n. Invertebrate with a segmented body and jointed limbs, e.g. An insect, spider, or crustacean. [greek arthron joint, pous pod-foot]

    Artichoke n. 1 plant allied to the thistle. 2 (in full globe artichoke) its partly edible flower-head (see also *jerusalem artichoke). [italian from arabic]

    Article —n. 1 item or thing. 2 non-fictional journalistic essay. 3 clause or item in an agreement or contract. 4 definite or indefinite article. —v. (-ling) employ under contract as a trainee. [latin articulus from artus joint]

    Articled clerk n. Trainee solicitor.

    Articular adj. Of a joint or joints. [latin: related to *article]

    Articulate —adj. 1 fluent and clear in speech. 2 (of sound or speech) having clearly distinguishable parts. 3 having joints. —v. (-ting) 1 a pronounce distinctly. B speak or express clearly. 2 (usu. In passive) connect by joints. 3 mark with apparent joints. 4 (often foll. By with) form a joint. articulately adv.

    Articulated lorry n. One with sections connected by a flexible joint.

    Articulation n. 1 a speaking or being spoken. B articulate utterance; speech. 2 a act or mode of jointing. B joint. [latin: related to *articulate]

    Artifact var. Of *artefact.

    Artifice n. 1 trick or clever device. 2 cunning. 3 skill, ingenuity. [latin ars art-art, facio make]

    Artificer n. 1 craftsman. 2 skilled military mechanic.

    Artificial adj. 1 not natural (artificial lake). 2 imitating nature (artificial flowers). 3 affected, insincere. artificiality n. Artificially adv. [latin: related to *artifice]

    Artificial insemination n. Non-sexual injection of semen into the uterus.

    Artificial intelligence n. Use of computers for tasks normally regarded as needing human intelligence.

    Artificial respiration n. Manual or mechanical stimulation of breathing.

    Artillery n. (pl. -ies) 1 heavy guns used in land warfare. 2 branch of the army using these. artilleryman n. [french artiller equip]

    Artisan n. Skilled manual worker or craftsman. [latin artio instruct in the arts]

    Artist n. 1 practitioner of any of the arts, esp. Painting. 2 artiste. 3 person using skill or taste. artistry n. [french artiste from italian]

    Artiste n. Professional performer, esp. A singer or dancer.

    Artistic adj. 1 having natural skill in art. 2 skilfully or tastefully done. 3 of art or artists. artistically adv.

    Artless adj. 1 guileless, ingenuous. 2 natural. 3 clumsy. artlessly adv.

    Art nouveau n. Art style of the late 19th century, with flowing lines.

    Artwork n. 1 illustrative material in printed matter. 2 works of art collectively (exhibition of children’s artwork).

    Arty adj. (-ier, -iest) colloq. Pretentiously or affectedly artistic.

    Arum n. Plant with arrow-shaped leaves. [greek aron]

    -ary suffix forming adjectives (contrary; primary). [french -aire, latin -ari(u)s]

    Aryan —n. 1 speaker of any of the languages of the indo-european family. 2 improperly (in nazi ideology) non-jewish caucasian. —adj. Of aryans. [sanskrit]

    As symb. Arsenic.

    As1 —adv. & conj. (adv. As antecedent in main sentence; conj. In relative clause expressed or implied) to the extent to which … is or does etc. (am as tall as he; am as tall as he is; (colloq.) Am as tall as him; as recently as last week). —conj. (with relative clause expressed or implied) 1 (with antecedent so) expressing result or purpose (came early so as to meet us). 2 (with antecedent adverb omitted) although (good as it is = although it is good). 3 (without antecedent adverb) a in the manner in which (do as you like; rose as one man). B in the capacity or form of (i speak as your friend; olivier as hamlet). C while (arrived as i was eating). D since, seeing that (as you are here, we can talk). E for instance (cathedral cities, as york). —rel. Pron.

    As2 n. (pl. Asses) roman copper coin. [latin]

    Asafetida n. (brit. Asafoetida) resinous pungent plant gum used in cooking and

    Asafetida n. (brit. Asafoetida) resinous pungent plant gum used in cooking and formerly in medicine. [persian aza mastic: related to *fetid]

    Asafoetida n. (us asafetida) resinous pungent plant gum used in cooking and formerly in medicine. [persian aza mastic: related to *fetid]

    A.s.a.p. Abbr. As soon as possible.

    Asbestos n. 1 fibrous silicate mineral. 2 this as a heat-resistant or insulating material. [greek, = unquenchable]

    Ascend v. 1 move or slope upwards, rise. 2 climb; go up. ascend the throne become king or queen. [latin scando climb]

    Ascendancy n. (often foll. By over) dominant power or control.

    Ascendant —adj. 1 rising. 2 astron. Rising towards the zenith. 3 astrol. Just above the eastern horizon. 4 predominant. —n. Astrol. Ascendant point of the sun’s apparent path. in the ascendant gaining or having power or authority.

    Ascension n. 1 ascent. 2 (ascension) ascent of christ into heaven.

    Ascent n. 1 ascending, rising, or progressing. 2 upward slope or path etc.

    Ascertain v. Find out for certain. ascertainment n. [french: related to *certain]

    Ascetic —adj. Severely abstinent; self-denying. —n. Ascetic, esp. Religious, person. asceticism n. [greek askeo exercise]

    Ascii abbr. Computing american standard code for information interchange.

    Ascorbic acid n. Vitamin c, which prevents scurvy. [from a-, scorbutic]

    Ascribe v. (-bing) (usu. Foll. By to) 1 attribute (ascribes his health to exercise). 2 regard as belonging. ascription n. [latin scribo write]

    Asepsis n. 1 absence of sepsis or harmful micro-organisms. 2 method of achieving asepsis in surgery. aseptic adj.

    Asexual adj. 1 without sex, sexual organs, or sexuality. 2 (of reproduction) not involving the fusion of gametes. asexually adv.

    Ash1 n. 1 (often in pl.) Powdery residue left after burning. 2 (pl.) Human remains after cremation. 3 (the ashes) cricket trophy competed for by australia and england. [old english]

    Ash2 n. 1 tree with silver-grey bark. 2 its hard, pale wood. [old english]

    Ashamed adj. (usu. Predic.) 1 embarrassed by shame (ashamed of myself). 2 (foll. By to + infin.) Hesitant, reluctant out of shame (am ashamed to say). [old english a-intensive prefix]

    Ashcan n. Us dustbin.

    Ashcan n. Us dustbin.

    Ashen adj. Like ashes, esp. Grey or pale.

    Ashkenazi n. (pl. -zim) east european jew. [hebrew]

    Ashlar n. 1 large square-cut stone used in building; masonry made of these. 2 thin slabs of masonry used for facing walls. [latin axis board]

    Ashore adv. Towards or on the shore or land.

    Ashram n. Place of religious retreat for hindus. [sanskrit]

    Ashtray n. Small receptacle for cigarette ash, stubs, etc.

    Ashy adj. (-ier, -iest) 1 = *ashen. 2 covered with ashes.

    Asian —n. 1 native of asia. 2 person of asian descent. —adj. Of asia. [latin from

    Asian —n. 1 native of asia. 2 person of asian descent. —adj. Of asia. [latin from greek]

    Asiatic —n. Offens. Asian. —adj. Asian. [latin from greek]

    Aside —adv. To or on one side; away, apart. —n. Words spoken aside, esp. Confidentially to the audience by an actor.

    Asinine adj. Like an ass, esp. Stupid or stubborn. asininity n. [latin asinus ass]

    Ask v. 1 call for an answer to or about (ask her about it; ask him his name). 2 seek to obtain from someone (ask a favour of). 3 (usu. Foll. By out, in, or over, or to (a function etc.)) Invite (must ask them over; asked her to dinner). 4 (foll. By for) seek to obtain, meet, or be directed to (ask for help; asking for you; ask for the bar). ask after inquire about (esp. A person). Ask for it slang invite trouble. [old english]

    Askance adv. Sideways or squinting. look askance at regard suspiciously. [origin unknown]

    Askew —adv. Awry, crookedly. —predic. Adj. Oblique; awry.

    Aslant —adv. Obliquely or at a slant. —prep. Obliquely across.

    Asleep predic. Adj. & adv. 1 a in or into a state of sleep. B inactive, inattentive. 2 (of a limb etc.) Numb. 3 euphem. Dead.

    2 (of a limb etc.) Numb. 3 euphem. Dead.

    Asp n. Small venomous snake of north africa or southern europe. [greek aspis]

    Asparagus n. 1 plant of the lily family. 2 edible shoots of this. [latin from greek]

    Aspect n. 1 viewpoint, feature, etc. To be considered (one aspect of the problem). 2 appearance or look (cheerful aspect). 3 side of a building or location facing a particular direction (southern aspect). [latin adspicio look at]

    Aspen n. Poplar with very tremulous leaves. [old english: originally adj.]

    Asperity n. (pl. -ies) 1 sharpness of temper or tone. 2 roughness; rough excrescence. [latin asper rough]

    Aspersion n. cast aspersions on attack the reputation of. [latin aspergo besprinkle]

    Asphalt —n. 1 dark bituminous pitch. 2 mixture of this with sand, gravel, etc., for surfacing roads etc. —v. Surface with asphalt. [latin from greek]

    Asphodel n. 1 plant of the lily family. 2 poet. Immortal flower growing in elysium. [latin from greek]

    Asphyxia n. Lack of oxygen in the blood, causing unconsciousness or death;

    Asphyxia n. Lack of oxygen in the blood, causing unconsciousness or death; suffocation. asphyxiant adj. & n. [greek a-not, sphuxis pulse]

    Asphyxiate v. (-ting) suffocate. asphyxiation n.

    Aspic n. Savoury jelly used esp. To contain game, eggs, etc. [french, = *asp, suggested by the colours of the jelly]

    Aspidistra n. House-plant with broad tapering leaves. [greek aspis shield]

    Aspirant —adj. Aspiring. —n. Person who aspires. [latin: related to *aspire]

    Aspirate —adj. Pronounced with an exhalation of breath; blended with the sound of h. —n. Sound of h; consonant pronounced in this way. —v. (-ting) 1 pronounce with breath or with initial h. 2 draw (fluid) by suction from a cavity etc.

    Aspiration n. 1 ambition or desire. 2 drawing breath or phonet. Aspirating.

    Aspirator n. Apparatus for aspirating fluid. [latin: related to *aspire]

    Aspire v. (-ring) (usu. Foll. By to or after, or to + infin.) Have ambition or a strong desire. [latin aspiro breathe upon]

    Aspirin n. (pl. Same or -s) 1 white powder, acetylsalicylic acid, used to reduce pain and fever. 2 tablet of this. [german]

    Ass1 n. 1 a four-legged long-eared mammal related to the horse. B donkey. 2 stupid person. [old english from latin]

    Ass n. (brit. Arse) coarse slang buttocks. [old english]

    Assagai var. Of *assegai.

    Assagai var. Of *assegai.

    Assail v. 1 attack physically or verbally. 2 tackle (a task) resolutely. assailant n. [latin salio leap]

    Assassin n. Killer, esp. Of a political or religious leader. [arabic, = hashish-eater]

    Assassinate v. (-ting) kill for political or religious motives. assassination n.

    Assault —n. 1 violent physical or verbal attack. 2 law threat or display of violence against a person. —v. Make an assault on. assault and battery law threatening act resulting in physical harm to a person. [latin: related to *assail]

    Assay —n. Testing of a metal or ore to determine its ingredients and quality. — v. Make an assay of (a metal or ore). [french, var. Of essai *essay]

    Assegai n. (also assagai) light iron-tipped s. African spear. [arabic, = the spear]

    Assemblage n. 1 assembling. 2 assembled group.

    Assemble v. (-ling) 1 gather together; collect. 2 esp. Mech. Fit together (components, a whole). [latin ad to, simul together]

    Assembler n. 1 person who assembles a machine etc. 2 computing a program for converting instructions written in low-level symbolic code into machine code. B the low-level symbolic code itself.

    Assembly n. (pl. -ies) 1 assembling. 2 assembled group, esp. As a deliberative body. 3 assembling of components.

    Assembly line n. Machinery arranged so that a product can be progressively assembled.

    Assent —v. (usu. Foll. By to) 1 express agreement. 2 consent. —n. Consent or approval, esp. Official. assenter n. [latin sentio think]

    Assert v. 1 declare, state clearly. 2 refl. Insist on one’s rights. 3 enforce a claim to (assert one’s rights). [latin assero -sert-]

    Assertion n. Declaration, forthright statement.

    Assertion n. Declaration, forthright statement.

    Assertive adj. Tending to assert oneself; forthright, positive. assertively adv. Assertiveness n.

    Assess v. 1 estimate the size or quality of. 2 estimate the value of (property etc.) For taxation. assessment n. [latin assideo -sess-sit by]

    Assessor n. 1 person who assesses (esp. For tax or insurance). 2 legal adviser on technical questions.

    Asset n. 1 useful or valuable person or thing. 2 (usu. In pl.) Property and possessions, esp. That can be set against debts etc. [french asez from latin ad satis to enough]

    Asset-stripping n. The taking over of a company and selling off of its assets to make a profit.

    Asseverate v. (-ting) declare solemnly. asseveration n. [latin severus serious]

    Asshole n. (brit. Arsehole) coarse slang 1 anus. 2 offens. Contemptible person.

    Assiduous adj. 1 persevering, hard-working. 2 attending closely. assiduity n. Assiduously adv. [latin: related to *assess]

    Assign —v. 1 (usu. Foll. By to) a allot as a share or responsibility. B appoint to a position, task, etc. 2 fix (a time, place, etc.). 3 (foll. By to) ascribe to (a reason, date, etc.) (assigned the manuscript to 1832). 4 (foll. By to) law transfer formally (esp. Property) to (another). —n. Assignee. assigner n. Assignor n. Law. [latin assigno mark out]

    Assignation n. 1 appointment to meet, esp. By lovers in secret. 2 assigning or being assigned.

    Assignee n. Law person to whom a right or property is assigned.

    Assignment n. 1 task or mission. 2 assigning or being assigned. 3 legal transfer.

    Assimilate v. (-ting) 1 absorb or be absorbed, either physically or mentally. 2 (usu. Foll. By to, with) make like; cause to resemble. assimilable adj. Assimilation n. Assimilative adj. Assimilator n. [latin similis like]

    Assist v. (often foll. By in + verbal noun) help. assistance n. [latin assisto stand by]

    Assistant n. 1 (often attrib.) Person who helps, esp. As a subordinate. 2 = *shop assistant.

    Assizes n.pl. Hist. Court periodically administering the civil and criminal law. [french: related to *assess]

    Usage in 1972 the civil jurisdiction of assizes in england and wales was transferred to the high court and the criminal jurisdiction to the crown court.

    Assoc. Abbr. Association.

    Associate —v. (-ting) 1 connect mentally (associate holly with christmas). 2 join or combine, esp. For a common purpose. 3 refl. Declare oneself or be in agreement. 4 (usu. Foll. By with) meet frequently or deal. —n. 1 partner, colleague. 2 friend, companion. 3 subordinate member of a society etc. —adj. 1 joined or allied. 2 of lower status (associate member). associative adj. [latin socius allied]

    Association n. 1 group organized for a joint purpose; society. 2 associating or being associated. 3 companionship. 4 mental connection of ideas. [medieval latin: related to *associate]

    Association football n. Football played with a round ball which may not be handled except by the goalkeepers.

    Assonance n. Partial resemblance of sound between two syllables e.g. Sonnet, porridge, and killed, cold, culled. assonant adj. [latin sonus sound]

    Assort v. 1 classify or arrange in sorts. 2 (usu. Foll. By with) suit or harmonize with. [french: related to *sort]

    Assorted adj. 1 of various sorts, mixed. 2 classified. 3 matched (ill-assorted pair).

    pair).

    Assortment n. Diverse group or mixture.

    Assuage v. (-ging) 1 calm or soothe. 2 appease (an appetite). assuagement n. [latin suavis sweet]

    Assume v. (-ming) 1 (usu. Foll. By that) take to be true. 2 simulate (ignorance etc.). 3 undertake (an office etc.). 4 take or put on (an aspect, attribute, etc.) (assumed immense importance). [latin sumo take]

    Assuming adj. Arrogant, presumptuous.

    Assumption n. 1 assuming. 2 thing assumed. 3 (assumption) reception of the virgin mary bodily into heaven.

    Assurance n. 1 emphatic declaration; guarantee. 2 insurance, esp. Life insurance. 3 certainty. 4 self-confidence; assertiveness.

    Assure v. (-ring) 1 (often foll. By of) a convince. B tell (a person) confidently (assured him all was well). 2 ensure; guarantee (a result etc.). 3 insure (esp. A life). 4 (as assured adj.) A guaranteed. B self-confident. [latin securus safe]

    Assuredly adv. Certainly.

    Ast abbr. Atlantic standard time.

    Astatine n. Radioactive element, the heaviest of the halogens. [greek astatos unstable]

    Aster n. Plant with bright daisy-like flowers. [greek, = star]

    Asterisk —n. Symbol (*) used to mark words or to indicate omission etc. —v. Mark with an asterisk. [greek, = little star]

    Astern adv. (often foll. By of) 1 in or to the rear of a ship or aircraft. 2 backwards.

    Asteroid n. 1 any of the minor planets orbiting the sun, mainly between the orbits of mars and jupiter. 2 starfish. [greek: related to *aster]

    Asthma n. Respiratory condition marked by wheezing. [greek azo breathe hard]

    Asthmatic —adj. Of or suffering from asthma. —n. Asthmatic person.

    Astigmatism n. Eye or lens defect resulting in distorted images. astigmatic adj. [from a-, stigma]

    Astir predic. Adj. & adv. 1 in motion. 2 out of bed.

    Astir predic. Adj. & adv. 1 in motion. 2 out of bed.

    Astonish v. Surprise greatly, amaze. astonishment n. [latin ex-forth, tono thunder]

    Astound v. Astonish greatly.

    Astraddle adv. Astride.

    Astrakhan n. 1 dark curly fleece of young astrakhan lambs. 2 cloth imitating this. [astrakhan in russia]

    Astral adj. Of the stars; starry. [latin astrum star]

    Astray adv. & predic.adj. Out of the right way, erring. go astray be missing. [latin extra away, vagor wander]

    Astride —adv. 1 (often foll. By of) with a leg on each side. 2 with legs apart. — prep. Astride of; extending across.

    Astringent —adj. 1 checking bleeding by contracting body tissues. 2 severe, austere. —n. Astringent substance. astringency n. [latin astringo draw tight]

    Astrolabe n. Instrument formerly used to measure the altitude of stars etc. [greek, = star-taking]

    Astrology n. Study of supposed planetary influence on human affairs. astrologer n. Astrological adj. Astrologist n. [greek astron star]

    Astronaut n. Crew member of a spacecraft. [greek astron star, nautes sailor]

    Astronaut n. Crew member of a spacecraft. [greek astron star, nautes sailor]

    Astronautics n.pl. (treated as sing.) Science of space travel. astronautical adj.

    Astronomical adj. (also astronomic) 1 of astronomy. 2 vast, gigantic. astronomically adv.

    Astronomy n. The scientific study of celestial bodies. astronomer n. [greek astron star, nemo arrange]

    Astrophysics n.pl. (treated as sing.) The study of the physics and chemistry of celestial bodies. astrophysical adj. Astrophysicist n. [greek astron star]

    Astute adj. Shrewd. astutely adv. Astuteness n. [latin astus craft]

    Asunder adv. Literary apart.

    Asylum n. 1 sanctuary; protection, esp. For fugitives from the law (seek asylum). 2 hist. Institution for the mentally ill or destitute. [greek a-not, sulon right of seizure]

    Asymmetry n. Lack of symmetry. asymmetric adj. Asymmetrical adj. [greek]

    At symb. Astatine.

    At prep. 1 expressing position (wait at the corner; at school). 2 expressing a point in time (at dawn). 3 expressing a point in a scale (at his best). 4 expressing engagement in an activity etc. (at war). 5 expressing a value or rate (sell at £10 each). 6 a with or with reference to (annoyed at losing; came at a run). B by means of (starts at a touch). 7 expressing motion or aim towards (aim at the target; laughed at us). at all see *all. At hand see hand. At home see home. At it engaged in an activity; working hard. At once see once. At that 1 moreover (a good one at that). 2 then (at that he left). At times see time. [old english]

    Atavism n. 1 reappearance of a remote ancestral characteristic, throwback. 2 reversion to an earlier type. atavistic adj. [latin atavus ancestor]

    Ataxia n. Med. Imperfect control of bodily movements. [greek a-without, taxis order]

    Ate past of *eat.

    -ate1 suffix forming nouns denoting status, function, or office (doctorate;

    -ate1 suffix forming nouns denoting status, function, or office (doctorate; consulate). [latin]

    -ate2 suffix forming adjectives with the sense ‘having, full of’ (foliate; passionate). [latin participial ending -atus]

    Atelier n. Workshop or artist’s studio. [french]

    Atheism n. Belief that there is no god. atheist n. Atheistic adj. [greek a-not, theos god]

    Atherosclerosis n. Degeneration of the arteries caused by a build-up of fatty deposits. [greek athere groats]

    Athirst predic. Adj. Poet. 1 (usu. Foll. By for) eager. 2 thirsty.

    Athlete n. Person who engages in athletics, exercise, etc. [greek athlon prize]

    Athlete’s foot n. Fungal foot condition.

    Athletic adj. 1 of athletes or athletics. 2 physically strong or agile. athletically adv. Athleticism n. [latin: related to *athlete]

    Athletics n.pl. (usu. Treated as sing.) Physical exercises, esp. Track and field

    Athletics n.pl. (usu. Treated as sing.) Physical exercises, esp. Track and field events.

    At-home n. Social reception in a person’s home.

    -ation suffix 1 forming nouns denoting an action or an instance of it (flirtation; hesitation). 2 forming nouns denoting a result or product of action (plantation; starvation). [latin -atio]

    Atlantic adj. Of or adjoining the ocean between europe and africa to the east and america to the west. [greek: related to *atlas]

    Atlas n. Book of maps or charts. [greek atlas, the titan who held up the universe]

    Atmosphere n. 1 a gases enveloping the earth, any other planet, etc. B air in a room etc., esp. If fetid. 2 pervading tone or mood of a place, situation, or work of art. 3 unit of pressure equal to mean atmospheric pressure at sea level, 101,325 pascals. atmospheric adj. [greek atmos vapour, *sphere]

    Atmospherics n.pl. 1 electrical atmospheric disturbance, esp. Caused by lightning. 2 interference with telecommunications caused by this.

    Atoll n. Ring-shaped coral reef enclosing a lagoon. [maldive]

    Atom n. 1 a smallest particle of a chemical element that can take part in a chemical reaction. B this as a source of nuclear energy. 2 minute portion or thing

    chemical reaction. B this as a source of nuclear energy. 2 minute portion or thing (atom of pity). [greek atomos indivisible]

    Atom n. 1 a smallest particle of a chemical element that can take part in a chemical reaction. B this as a source of nuclear energy. 2 minute portion or thing (atom of pity). [greek atomos indivisible]

    Atom bomb n. Bomb in which energy is released by nuclear fission.

    Atomic adj. 1 of or using atomic energy or atomic bombs. 2 of atoms.

    Atomic bomb n. = *atom bomb.

    Atomic energy n. Nuclear energy.

    Atomic mass n. Mass of an atom measured in atomic mass units.

    Atomic mass unit n. Unit of mass used to express atomic and molecular weights, equal to one-twelfth of the mass of an atom of carbon-12.

    Atomic number n. Number of protons in the nucleus of an atom.

    Atomic theory n. Theory that all matter consists of atoms.

    Atomic weight n. = *relative atomic mass.

    Atomic weight n. = *relative atomic mass.

    Atomize v. (also -ise) (-zing or -sing) reduce to atoms or fine particles.

    Atomizer n. (also -iser) = *aerosol 1.

    Atonal adj. Mus. Not written in any key or mode. atonality n.

    Atone v. (-ning) (usu. Foll. By for) make amends (for a wrong). [from *atonement]

    Atonement n. 1 atoning. 2 (the atonement) expiation by christ of mankind’s sins. [at one + *-ment]

    Atrium n. (pl. -s or atria) 1 a central court of an ancient roman house. B (usu. Skylit) central court rising through several storeys. 2 each of the two upper cavities of the heart. [latin]

    Atrocious adj. 1 very bad or unpleasant (atrocious manners). 2 wicked (atrocious cruelty). atrociously adv. [latin atrox cruel]

    Atrocity n. (pl. -ies) 1 wicked or cruel act. 2 extreme wickedness. [latin: related to *atrocious]

    Atrophy —n. Wasting away, esp. Through disuse; emaciation. —v. (-ies, -ied) suffer atrophy or cause atrophy in. [greek a-without, trophe food]

    Atropine n. Poisonous alkaloid in deadly nightshade. [greek atropos, the fate who cut the thread of life]

    Attach v. 1 fasten, affix, join. 2 (in passive; foll. By to) be very fond of. 3 attribute or be attributable; assign (can’t attach a name to it; no blame attaches to us). 4 accompany; form part of (no conditions are attached). 5 refl. (usu. Foll. By to) take part in; join (attached himself to the team). 6 seize by legal authority. [french from germanic]

    Attaché n. Specialist member of an ambassador’s staff.

    Attaché case n. Small rectangular document case.

    Attachment n. 1 thing attached, esp. For a purpose. 2 affection, devotion. 3 attaching or being attached. 4 legal seizure. 5 temporary position in an organization.

    Attack —v. 1 try to hurt or defeat using force. 2 criticize adversely. 3 act harmfully upon (rust attacks metal). 4 vigorously apply oneself to. 5 sport try to gain ground or score (against). —n. 1 act of attacking. 2 offensive operation. 3 sudden onset of an illness. attacker n. [french from italian]

    Attain v. 1 reach, gain, accomplish (a goal etc.). 2 (foll. By to) arrive at by effort or development. [latin attingo reach]

    or development. [latin attingo reach]

    Attainment n. 1 (often in pl.) Accomplishment or achievement. 2 attaining.

    Attar n. Perfume made from rose-petals. [persian]

    Attempt —v. 1 (often foll. By to + infin.) Try to do or achieve (attempted to explain). 2 try to conquer (a mountain etc.). —n. (often foll. By at, on, or to + infin.) Attempting; endeavour (attempt at winning; attempt on his life). [latin tempto try]

    Attend v. 1 a be present (at) (attended the meeting). B go regularly to (attends church). 2 escort. 3 a (often foll. By to) turn or apply one’s mind. B (foll. By to) deal with (attend to the matter). [latin tendo stretch]

    Attendance n. 1 attending or being present. 2 number present (high attendance).

    Attendant —n. Person escorting or providing a service (cloakroom attendant). — adj. 1 accompanying (attendant costs). 2 (often foll. By on) waiting (attendant on the queen).

    Attendee n. Person who attends (a meeting etc.).

    Attendee n. Person who attends (a meeting etc.).

    Attention n. 1 act or faculty of applying one’s mind; notice (attention wandered; attract his attention). 2 consideration, care. 3 (in pl.) A courtesies. B sexual

    attract his attention). 2 consideration, care. 3 (in pl.) A courtesies. B sexual advances. 4 erect esp. Military attitude of readiness.

    Attentive adj. 1 concentrating; paying attention. 2 assiduously polite. attentively adv. Attentiveness n.

    Attenuate v. (-ting) 1 make thin. 2 reduce in force, value, etc. attenuation n. [latin tenuis thin]

    Attest v. 1 certify the validity of. 2 (foll. By to) bear witness to. attestation n. [latin testis witness]

    Attic —adj. Of ancient athens or attica, or the form of greek used there. —n. Greek as used by the ancient athenians. [greek attikos]

    Attic n. Space or room at the top of a house, usu. Under the roof. [from *attic, with ref. To an architectural feature]

    Attire formal —n. Clothes, esp. Formal. —v. (-ring) (usu. As attired adj.) Dress, esp. Formally. [french à tire in order]

    Attitude n. 1 opinion or way of thinking; behaviour reflecting this (don’t like his attitude). 2 bodily posture; pose. 3 position of an aircraft etc. Relative to given points. [latin aptus fitted]

    Attitudinize v. (also -ise) (-zing or -sing) adopt (esp. Affected) attitudes; pose.

    Attitudinize v. (also -ise) (-zing or -sing) adopt (esp. Affected) attitudes; pose.

    Attorney n. (pl. -s) 1 lawyer etc. Appointed to act for another in business or legal matters. 2 us qualified lawyer. [french atorner assign]

    Attorney-general n. (pl. Attorneys-general) chief legal officer in some countries.

    Attract v. 1 (also absol.) (of a magnet etc.) Draw to itself or oneself. 2 arouse interest or admiration in. [latin traho draw]

    Attraction n. 1 a attracting or being attracted. B attractive quality (can’t see the attraction in it). C person or thing that attracts. 2 physics tendency of bodies to attract each other.

    Attractive adj. 1 attracting (esp. Interest or admiration). 2 aesthetically pleasing; good-looking. attractively adv.

    Attribute —v. (-ting) (usu. Foll. By to) 1 regard as belonging to, written or said by, etc. (a poem attributed to milton). 2 ascribe to (a cause) (delays attributed to snow). —n. 1 esp. Characteristic quality ascribed to a person or thing. 2 object symbolizing or appropriate to a person, office, or status. attributable adj. Attribution n. [latin tribuo allot]

    Attributive adj. Gram. (of an adjective or noun) preceding the word described, as old in the old dog.

    Attrition n. 1 gradual wearing down (war of attrition). 2 abrasion, friction. [latin tero trit-rub]

    Attune v. (-ning) 1 (usu. Foll. By to) adjust to a situation etc. 2 mus. Tune. [related to *tune]

    Atypical adj. Not typical. atypically adv.

    Au symb. Gold. [latin aurum]

    Aubergine n. Plant with white or purple egg-shaped fruit used as a vegetable; eggplant. [french, ultimately from sanskrit]

    Aubrietia n. (also aubretia) dwarf perennial rock-plant with purple or pink flowers. [aubriet, name of an artist]

    Auburn adj. Reddish-brown (usu. Of hair). [originally = yellowish white: from latin albus white]

    Auction —n. Sale in which articles are sold to the highest bidder. —v. Sell by auction. [latin augeo auct-increase]

    Auction bridge n. Game in which players bid for the right to name trumps.

    Auctioneer n. Person who conducts auctions, esp. For a living.

    Audacious adj. 1 daring, bold. 2 impudent. audacity n. [latin audax bold]

    Audible adj. Able to be heard. audibility n. Audibly adv. [latin audio hear]

    Audience n. 1 a assembled listeners or spectators, esp. At a play, concert, etc. B people addressed by a film, book, etc. 2 formal interview with a superior. [latin: related to *audible]

    Audio n. (usu. Attrib.) Sound or its reproduction. [latin audio hear]

    Audio-comb. Form hearing or sound.

    Audio frequency n. Frequency able to be perceived by the human ear.

    Audiotape n. (also audio tape) 1 a magnetic tape for recording sound. B a length of this. 2 a sound recording on tape.

    Audiotape n. (also audio tape) 1 a magnetic tape for recording sound. B a length of this. 2 a sound recording on tape.

    Audio typist n. Person who types from a tape-recording.

    Audiovisual adj. (of teaching methods etc.) Using both sight and sound.

    Audit —n. Official scrutiny of accounts. —v. (-t-) conduct an audit of.

    Audition —n. Test of a performer’s suitability or ability. —v. Assess or be assessed at an audition. [latin audio hear]

    Auditor n. Person who audits accounts. [french from latin]

    Auditorium n. (pl. -s) part of a theatre etc. For the audience. [latin]

    Auditory adj. Of hearing.

    Au fait predic. Adj. (usu. Foll. By with) conversant (au fait with the rules). [french]

    Aug. Abbr. August.

    Augean adj. Filthy. [greek augeas, a mythical king: his filthy stables were cleaned by hercules diverting a river through them]

    Auger n. Tool with a screw point for boring in wood. [old english]

    Aught n. Archaic anything. [old english]

    Augment v. Make or become greater; increase. augmentation n. [latin: related to *auction]

    Augmentative adj. Augmenting.

    Au gratin adj. Cooked with a crust of breadcrumbs or melted cheese. [french]

    Augur —v. Portend, serve as an omen (augur well or ill). —n. Hist. Roman religious official interpreting natural phenomena in order to pronounce on proposed actions. [latin]

    Augury n. (pl. -ies) 1 omen. 2 interpretation of omens.

    August n. Eighth month of the year. [latin augustus, first roman emperor]

    August adj. Venerable, imposing. [latin]

    Augustan adj. 1 of the reign of augustus, esp. As a flourishing literary period. 2 (of literature) refined and classical in style. [latin: see *august]

    Auk n. Black and white sea bird with short wings, e.g. The guillemot, puffin, etc. [old norse]

    Auld lang syne n. Times long past. [scots, = old long since]

    Aunt n. 1 sister of one’s father or mother. 2 uncle’s wife. 3 colloq. (form of address by a child to) parent’s female friend. [latin amita]

    Auntie n. (also aunty) (pl. -ies) colloq. = *aunt.

    Aunt sally n. 1 game in which sticks or balls are thrown at a wooden dummy. 2 target of general abuse.

    Au pair n. Young foreigner, esp. A woman, helping with housework etc. In exchange for board and lodging. [french]

    Aura n. (pl. -s) 1 distinctive atmosphere. 2 subtle emanation. [greek, = breeze]

    Aural adj. Of the ear or hearing. aurally adv. [latin auris ear]

    Aureate adj. Literary 1 golden. 2 resplendent. [latin aurum gold]

    Aureole n. (also aureola) 1 halo or circle of light, esp. In a religious painting. 2 corona round the sun or moon. [latin, = golden (crown)]

    corona round the sun or moon. [latin, = golden (crown)]

    Au revoir int. & n. Goodbye (until we meet again). [french]

    Auricle n. 1 each atrium of the heart. 2 external ear of animals. auricular adj. [related to *auricula]

    Auricula n. (pl. -s) primula with ear-shaped leaves. [latin, diminutive of auris ear]

    Auriferous adj. Yielding gold. [latin aurifer from aurum gold]

    Aurochs n. (pl. Same) extinct wild ox. [german]

    Aurora n. (pl. -s or aurorae) luminous phenomenon, usu. Of streamers of light in the night sky above the northern (aurora borealis) or southern (aurora australis) magnetic pole. [latin, = dawn, goddess of dawn]

    Auscultation n. Listening, esp. To sounds from the heart, lungs, etc., for purposes of diagnosis. [latin ausculto listen]

    Auspice n. 1 (in pl.) Patronage (esp. Under the auspices of). 2 omen, premonition. [originally ‘observation of bird-flight’: latin avis bird]

    Auspicious adj. Promising well; favourable.

    Aussie slang —n. 1 australian. 2 australia. —adj. Australian. [abbreviation]

    Austere adj. (-terer, -terest) 1 severely simple. 2 morally strict. 3 stern, grim. [greek austeros]

    Austerity n. (pl. -ies) being austere; hardship.

    Austral adj. 1 southern. 2 (austral) of australia or australasia. [latin auster south]

    Austral adj. 1 southern. 2 (austral) of australia or australasia. [latin auster south]

    Australasian adj. Of australasia, including australia and the islands of the sw pacific.

    Australian —n. 1 native or national of australia. 2 person of australian descent. —adj. Of australia.

    Autarchy n. Absolute rule; despotism. [greek autos self, arkhe rule]

    Autarky n. Self-sufficiency, esp. Economic. [greek autos self, arkeo suffice]

    Authentic adj. 1 of undisputed origin; genuine. 2 reliable, trustworthy.

    Authentic adj. 1 of undisputed origin; genuine. 2 reliable, trustworthy. authentically adv. Authenticity n. [greek authentikos]

    Authenticate v. (-ting) establish as true, genuine, or valid. authentication n.

    Author n. (fem. Authoress) 1 writer, esp. Of books. 2 originator of an idea, event, etc. [latin auctor]

    Authoritarian —adj. Favouring or enforcing strict obedience to authority. —n. Authoritarian person.

    Authoritative adj. 1 reliable, esp. Having authority. 2 official.

    Authority n. (pl. -ies) 1 a power or right to enforce obedience. B (often foll. By for, or to + infin.) Delegated power. 2 (esp. In pl.) Body having authority. 3 influence based on recognized knowledge or expertise. 4 expert. [latin auctoritas]

    Authorize v. (also -ise) (-zing or -sing) 1 officially approve, sanction. 2 (foll. By to + infin.) Give authority to (a person to do a thing). authorization n.

    Authorized version n. English translation of the bible made in 1611.

    Authorship n. 1 origin of a book etc. 2 profession of an author.

    Autism n. Condition characterized by self-absorption and social withdrawal. autistic adj. [related to *auto-]

    Auto n. (pl. -s) us colloq. Car. [abbreviation of *automobile]

    Auto-comb. Form 1 self. 2 one’s own. 3 of or by oneself or itself. [greek autos]

    Autobahn n. (pl. -s) german, austrian, or swiss motorway. [german]

    Autobiography n. (pl. -ies) 1 written account of one’s own life. 2 this as a literary genre. autobiographer n. Autobiographical adj.

    Autoclave n. Sterilizer using high-pressure steam. [latin clavus nail or clavis key]

    Autocracy n. (pl. -ies) 1 rule by an autocrat. 2 dictatorship. [greek kratos power]

    Autocrat n. 1 absolute ruler. 2 dictatorial person. autocratic adj. Autocratically adv.

    Autocross n. Motor racing across country or on unmade roads.

    Autocue n. Propr. Screen etc. From which a speaker reads a television script.

    Auto-da-fé n. (pl. Autos-da-fé) 1 hist. Ceremonial judgement of heretics by the spanish inquisition. 2 public burning of heretics. [portuguese, = act of the faith]

    Autograph —n. Signature, esp. That of a celebrity. —v. Sign or write on in one’s own hand. [greek grapho write]

    Autoimmune adj. (of a disease) caused by antibodies produced against substances naturally present in the body.

    Automat n. Us 1 slot-machine. 2 cafeteria dispensing food and drink from slot-machines. [french: related to *automaton]

    Automate v. (-ting) convert to or operate by automation.

    Automatic —adj. 1 working by itself, without direct human intervention. 2 a done spontaneously (automatic reaction). B following inevitably (automatic penalty). 3 (of a firearm) able to be loaded and fired continuously. 4 (of a vehicle or its transmission) using gears that change automatically. —n. 1 automatic machine, firearm, or tool. 2 vehicle with automatic transmission. automatically adv. [related to *automaton]

    Automatic pilot n. Device for keeping an aircraft or ship on a set course.

    Automation n. 1 use of automatic equipment in place of manual labour. 2 production of goods etc. By this.

    Automatism n. 1 involuntary action. 2 unthinking routine. [french: related to *automaton]

    Automaton n. (pl. -mata or -s) 1 machine controlled automatically; robot. 2 person acting like a robot. [greek, = acting of itself]

    Automobile n. Us motor car. [french]

    Automotive adj. Of motor vehicles.

    Automotive adj. Of motor vehicles.

    Autonomous adj. 1 having self-government. 2 acting or free to act independently. [greek nomos law]

    Autonomy n. 1 self-government. 2 personal freedom.

    Autopilot n. = *automatic pilot.

    Autopsy n. (pl. -ies) post-mortem. [greek autoptes eyewitness]

    Autoroute n. French motorway. [french]

    Autostrada n. (pl. -s or -strade) italian motorway. [italian]

    Auto-suggestion n. Hypnotic or subconscious suggestion made to oneself.

    Autumn n. 1 (often attrib.) Season between summer and winter. 2 time of incipient decline. autumnal adj. [latin autumnus]

    Autumn equinox n. (also autumnal equinox) equinox about 22 sept.

    Auxiliary —adj. 1 subsidiary, additional. 2 giving help. —n. (pl. -ies) 1 auxiliary person or thing. 2 (in pl.) Foreign or allied troops in the service of a nation at war. 3 verb used to form tenses or moods of other verbs (e.g. Have in i have seen). [latin auxilium help]

    Auxin n. Plant hormone that regulates growth.

    Av abbr. Authorized version.

    Avail —v. 1 help; be of use. 2 refl. (foll. By of) make use of, profit by. —n. Use, profit (of no avail). [latin valeo be strong]

    Available adj. 1 at one’s disposal, obtainable. 2 a (of a person) free, not

    Available adj. 1 at one’s disposal, obtainable. 2 a (of a person) free, not committed. B able to be contacted. availability n.

    Avalanche n. 1 rapidly sliding mass of snow and ice on a mountain. 2 sudden abundance (avalanche of work). [french]

    Avant-garde —n. Pioneers or (esp. Artistic) innovators. —adj. New; pioneering. [french, = vanguard]

    Avarice n. Extreme greed for wealth. avaricious adj. [latin avarus greedy]

    Avatar n. (in hindu mythology) descent of a deity etc. To earth in bodily form. [sanskrit, = descent]

    Ave n. (in full ave maria) prayer to the virgin mary (luke 1:28). [latin]

    Ave. Abbr. Avenue.

    Avenge v. (-ging) 1 inflict retribution on behalf of. 2 take vengeance for (an injury). be avenged avenge oneself. [latin vindico]

    Avenue n. 1 a broad esp. Tree-lined road or street. B tree-lined path etc. 2 approach (explored every avenue). [french avenir come to]

    Aver v. (-rr-) formal assert, affirm. averment n. [latin verus true]

    Average —n. 1 usual amount, extent, or rate. 2 amount obtained by adding two or more numbers and dividing by how many there are. 3 (with ref. To speed etc.) Ratio obtained by subtracting the inital from the final value of each element of the ratio (average of 50 miles per hour). 4 law damage to or loss of a ship or cargo. —adj. 1 a usual, ordinary. B mediocre. 2 constituting an average (the average age is 72). —v. (-ging) 1 amount on average to. 2 do on average. 3 estimate the average of. average out (at) result in an average (of). Law of averages principle that if one of two extremes occurs the other will also. On (or on an) average as an average rate or estimate. [arabic, = damaged goods]

    Averse predic. Adj. (usu. Foll. By to) opposed, disinclined. [latin verto vers-turn]

    Aversion n. 1 (usu. Foll. By to, for) dislike or unwillingness. 2 object of this.

    Avert v. (often foll. By from) 1 turn away (one’s eyes or thoughts). 2 prevent or ward off (esp. Danger).

    Avesta n. (usu. Prec. By the) sacred writings of zoroastrianism (cf. *zend). [persian]

    Aviary n. (pl. -ies) large cage or building for keeping birds. [latin avis bird]

    Aviation n. Science or practice of flying aircraft. [latin: related to *aviary]

    Aviator n. Person who flies aircraft.

    Avid adj. Eager, greedy. avidity n. Avidly adv. [latin aveo crave]

    Avionics n.pl. (usu. Treated as sing.) Electronics as applied to aviation. [from *aviation, *electronics]

    Avocado n. (pl. -s) 1 (in full avocado pear) dark green edible pear-shaped fruit with yellowish-green creamy flesh. 2 tree bearing it. [spanish from aztec]

    Avocet n. Long-legged wading bird with an upward-curved bill. [french from italian]

    Avocet n. Long-legged wading bird with an upward-curved bill. [french from italian]

    Avoid v. 1 keep away or refrain from. 2 escape; evade. 3 law quash, annul. avoidable adj. Avoidance n. [french]

    Avoirdupois n. (in full avoirdupois weight) system of weights based on a pound of 16 ounces or 7,000 grains. [french, = goods of weight]

    Avow v. Formal declare, confess. avowal n. Avowedly adv. [latin voco call]

    Avuncular adj. Like or of an uncle, esp. In manner. [latin avunculus uncle]

    Await v. 1 wait for. 2 be in store for. [french: related to *wait]

    Awake —v. (-king; past awoke; past part. Awoken) 1 cease to sleep or arouse from sleep. 2 (often foll. By to) become or make alert, aware, or active. — predic. Adj. 1 not asleep. 2 (often foll. By to) alert, aware. [old english: related to *a2]

    Awaken v. = *awake v.

    Usage awake and awaken are interchangeable but awaken is much rarer than awake as an intransitive verb.

    Award —v. Give or order to be given as a payment or prize. —n. 1 thing or amount awarded. 2 judicial decision. [french]

    Aware predic. Adj. 1 (often foll. By of or that) conscious; having knowledge. 2 well-informed. awareness n. [old english]

    Usage aware is also found used attributively in sense 2, as in ‘a very aware person’, but this should be avoided in formal contexts.

    Awash predic. Adj. 1 level with the surface of, and just covered by, water. 2 (foll. By with) overflowing, abounding.

    Away —adv. 1 to or at a distance from the place, person, or thing in question (go, give, look, away; 5 miles away). 2 into non-existence (explain, fade, away). 3 constantly, persistently (work away). 4 without delay (ask away). —attrib. Adj. Sport not played on one’s own ground (away match). —n. Sport away match or win. [old english: related to a2, way]

    Awe —n. Reverential fear or wonder. —v. (awing) inspire with awe. [old norse]

    Aweigh predic. Adj. (of an anchor) clear of the bottom.

    Awe-inspiring adj. Awesome; magnificent.

    Awesome adj. Inspiring awe; dreaded.

    Awful adj. 1 colloq. Very bad or unpleasant (has awful writing; awful weather). 2 (attrib.) As an intensifier (awful lot of money). 3 poet. Inspiring awe.

    Awfully adv. 1 badly; unpleasantly (played awfully). 2 colloq. Very (awfully pleased).

    Awhile adv. For a short time. [a while]

    Awkward adj. 1 difficult to use or deal with. 2 clumsy, ungainly. 3 a embarrassed. B embarrassing. [obsolete awk perverse]

    embarrassed. B embarrassing. [obsolete awk perverse]

    Awl n. Small tool for piercing holes, esp. In leather. [old english]

    Awn n. Bristly head of a sheath of barley and other grasses. [old norse]

    Awning n. Sheet of canvas etc. Stretched on a frame as a shelter against the sun or rain. [origin uncertain]

    Awoke past of *awake.

    Awoken past part. Of *awake.

    Awol abbr. Colloq. Absent without leave.

    Awry —adv. 1 crookedly, askew. 2 amiss, wrong. —predic. Adj. Crooked; unsound.

    Ax (brit. Axe) —n. 1 chopping-tool with a handle and heavy blade. 2 (the ax) dismissal (of employees); abandonment of a project etc. —v. (axing) cut (esp. Costs or staff) drastically; abandon (a project). an ax to grind private ends to serve. [old english]

    Axe (us ax) —n. 1 chopping-tool with a handle and heavy blade. 2 (the axe) dismissal (of employees); abandonment of a project etc. —v. (axing) cut (esp. Costs or staff) drastically; abandon (a project). an axe to grind private ends to serve. [old english]

    Axial adj. Of, forming, or placed round an axis.

    Axil n. Upper angle between a leaf and stem. [latin axilla armpit]

    Axiom n. 1 established or accepted principle. 2 self-evident truth. axiomatic adj. [greek axios worthy]

    Axis n. (pl. Axes) 1 a imaginary line about which a body rotates. B line which divides a regular figure symmetrically. 2 fixed reference line for the measurement of coordinates etc. 3 (the axis) alliance of germany, italy, and later japan, in the war of 1939–45. [latin, = axle]

    Axis n. (pl. Axes) 1 a imaginary line about which a body rotates. B line which divides a regular figure symmetrically. 2 fixed reference line for the measurement of coordinates etc. 3 (the axis) alliance of germany, italy, and later japan, in the war of 1939–45. [latin, = axle]

    Axle n. Spindle on which a wheel is fixed or turns. [old norse]

    Axolotl n. Newtlike salamander, which in natural conditions retains its larval form of life. [nahuatl, = water-servant]

    Ayatollah n. Shiite religious leader in iran. [persian from arabic, = token of god]

    Ayatollah n. Shiite religious leader in iran. [persian from arabic, = token of god]

    Aye —adv. Archaic or dial. Yes. —n. Affirmative answer or vote. [probably from i, expressing assent]

    Azalea n. A kind of rhododendron. [greek azaleos dry]

    Azimuth n. Angular distance from a north or south point of the horizon to the intersection with the horizon of a vertical circle passing through a given celestial body. azimuthal adj. [french from arabic]

    Azt abbr. Drug intended for use against the aids virus. [from the chemical name]

    Aztec —n. 1 member of the native mexican people overthrown by the spanish in 1519. 2 language of this people. —adj. Of the aztecs or their language. [nahuatl, = men of the north]

    Azure —n. 1 deep sky-blue colour. 2 poet. Clear sky. —adj. Deep sky-blue. [arabic]

    B

    B1 n. (pl. Bs or b’s) 1 (also b) second letter of the alphabet. 2 mus. Seventh note of the diatonic scale of c major. 3 second hypothetical person or example. 4 second highest category (of roads, academic marks, etc.). 5 (usu. B) algebra second known quantity.

    B2 symb. Boron.

    B3 abbr. (also b.) Black (pencil-lead).

    B. Abbr. 1 born. 2 cricket a bowled by. B bye.

    Ba abbr. 1 bachelor of arts. 2 british airways.

    Ba symb. Barium.

    Baa —v. (baas, baaed or baa’d) bleat. —n. Sheep’s cry. [imitative]

    Babble —v. (-ling) 1 a talk, chatter, or say incoherently or excessively. B (of a stream etc.) Murmur. 2 repeat or divulge foolishly. —n. 1 babbling. 2 murmur of voices, water, etc. [imitative]

    Babe n. 1 literary baby. 2 innocent or helpless person. 3 us slang young woman. [as *baby]

    Babel n. 1 confused noise, esp. Of voices. 2 scene of confusion. [hebrew, = babylon (gen. 11)]

    Baboon n. Large long-nosed african and arabian monkey. [french or medieval latin]

    Baby —n. (pl. -ies) 1 very young child. 2 childish person. 3 youngest member of a family etc. 4 (often attrib.) A very young animal. B small specimen. 5 slang sweetheart. 6 one’s special concern etc. —v. (-ies, -ied) treat like a baby; pamper. babyhood n. Babyish adj. [imitative of child’s ba ba]

    Baby boom n. Colloq. Temporary increase in the birthrate.

    Baby buggy n. Propr. A kind of child’s pushchair.

    Baby carriage n. Us pram.

    Baby grand n. Small grand piano.

    Babygro n. (pl. -s) propr. Stretchy all-in-one baby suit.

    Babysit v. (-tt-; past and past part. -sat) look after a child while its parents are out. babysitter n.

    Baccalaureate n. Final secondary school examination in france and many international schools. [medieval latin baccalaureus bachelor]

    Baccarat n. Gambling card-game. [french]

    Bacchanal —n. 1 drunken revelry or reveller. 2 priest or follower of bacchus. — adj. 1 of or like bacchus. 2 drunkenly riotous. [latin bacchus from greek, god of wine]

    Bacchanalia n.pl. 1 roman festival of bacchus. 2 (bacchanalia) drunken revelry.

    Bacchant —n. (fem. Bacchante) 1 priest or follower of bacchus. 2 drunken reveller. —adj. 1 of or like bacchus or his rites. 2 drunkenly riotous, roistering.

    Bacchic adj. = *bacchanal adj.

    Baccy n. (pl. -ies) colloq. Tobacco. [abbreviation]

    Bachelor n. 1 unmarried man. 2 person with a university first degree. bachelorhood n. [related to *baccalaureate]

    Bachelor girl n. Independent young single woman.

    Bacillus n. (pl. Bacilli) rod-shaped bacterium, esp. One causing disease. bacillary adj. [latin, diminutive of baculus stick]

    Back —n. 1 a rear surface of the human body from shoulder to hip. B upper surface of an animal’s body. C spine (broke his back). D keel of a ship. 2 backlike surface (back of the head, chair, shirt). 3 reverse or more distant part (back of the room; sat in the back; write it on the back). 4 defensive player in football etc. —adv. 1 to the rear (go back a bit; looked back). 2 in or into a previous state, place, or time (came back; put it back; back in june). 3 at a distance (stand back). 4 in return (pay back). 5 in check (hold him back). —v. 1 a give moral or financial support to. B bet on (a horse etc.). 2 (often foll. By up) move backwards. 3 a put or serve as a back, background, or support to. B mus. Accompany. 4 lie at the back of (beach backed by cliffs). 5 (of the wind) move anticlockwise. —adj. 1 situated to the rear; remote, subsidiary (back teeth). 2 past; not current (back pay; back issue). 3 reversed (back flow). back and forth to and fro. Back down withdraw from confrontation. The back of beyond very remote place. Back off 1 draw back, retreat. 2 = back down. Back on to have its back adjoining (backs on to a field). Back out (often foll. By of) withdraw from a commitment. Back-pedal reverse one’s action or opinion. Back to back with backs adjacent and facing each other (stood back to back). Back up 1 give (esp. Moral) support to. 2 computing make a backup of (data, a disk, etc.). Get (or put) a person’s back up annoy a person. Get off a person’s back stop troubling a person. Turn one’s back on abandon; ignore. backer n. (in sense 1 of v.). Backless adj. [old english]

    Backache n. Ache in the back.

    Back-bencher n. Mp not holding a senior office.

    Backbiting n. Malicious talk. backbite v.

    Back-boiler n. Boiler behind a domestic fire.

    Backbone n. 1 spine. 2 chief support. 3 firmness of character.

    Back-breaking adj. (esp. Of manual work) extremely hard.

    Back-burner n. on the back-burner receiving little attention.

    Backchat n. Colloq. Verbal insolence.

    Backcloth n. 1 painted cloth at the back of a stage. 2 background to a scene or situation.

    Backcomb v. Comb (the hair) towards the scalp to give it fullness.

    Back-crawl n. = *backstroke.

    Backdate v. (-ting) 1 make retrospectively valid. 2 put an earlier date to than the actual one.

    Back door n. Secret or ingenious means.

    Backdrop n. = *backcloth.

    Backfire v. (-ring) 1 (of an engine or vehicle) ignite or explode too early in the cylinder or exhaust. 2 (of a plan etc.) Rebound adversely on its originator.

    Back-formation n. 1 formation of a word from its seeming derivative (e.g. Laze from lazy). 2 word so formed.

    Backgammon n. Board-game with pieces moved according to throws of the dice. [from *back + obsolete form of *game1]

    Background n. 1 part of a scene or picture furthest from the observer. 2 (often attrib.) Inconspicuous position (kept in the background; background music). 3 person’s education, social circumstances, etc. 4 explanatory or contributory information or events.

    Backhand —attrib. Adj. (of a stroke) made with the hand across one’s body. — n. Such a stroke.

    Backhanded adj. 1 made with the back of the hand. 2 indirect; ambiguous (backhanded compliment).

    Backhander n. 1 a backhand stroke. B backhanded blow. 2 slang bribe.

    Backing n. 1 a support, esp. Financial or moral. B material used for a thing’s back or support. 2 musical accompaniment, esp. To a pop singer.

    back or support. 2 musical accompaniment, esp. To a pop singer.

    Backing track n. Recorded musical accompaniment.

    Backlash n. 1 violent, usu. Hostile, reaction. 2 sudden recoil in a mechanism.

    Backlist n. Publisher’s list of books still in print.

    Backlog n. Arrears of work.

    Back number n. 1 out-of-date issue of a periodical. 2 slang out-of-date person or thing.

    Backpack —n. Rucksack. —v. Travel or hike with this. backpacker n.

    Back passage n. Colloq. Rectum.

    Backrest n. Support for the back.

    Back room n. (often, with hyphen, attrib.) Place where secret work is done.

    Back seat n. Less prominent or important position.

    Back seat n. Less prominent or important position.

    Back-seat driver n. Person eager to advise without taking responsibility.

    Backside n. Colloq. Buttocks.

    Back slang n. Slang using words spelt backwards (e.g. Yob).

    Backslide v. (-ding; past -slid; past part. -slid or -slidden) return to bad habits etc.

    Backspace v. (-cing) move a typewriter carriage etc. Back one or more spaces.

    Backspin n. Backward spin making a ball bounce erratically.

    Backstage adv. & adj. Behind the scenes.

    Backstairs —n.pl. Rear or side stairs of a building. —attrib. Adj. (also backstair) underhand; secret.

    Backstitch n. Sewing with each stitch starting behind the end of the previous one.

    Back-stop n. 1 cricket etc. A position directly behind the wicket-keeper. B fielder in this position. 2 last resort.

    Backstreet —n. Side-street, alley. —attrib. Adj. Illicit; illegal (backstreet abortion).

    Backstroke n. Swimming stroke done on the back.

    Back-to-back adj. (of houses) with a party wall at the rear.

    Back to front adj. 1 with back and front reversed. 2 in disorder.

    Back-to-nature attrib. Adj. Seeking a simpler way of life.

    Backtrack v. 1 retrace one’s steps. 2 reverse one’s policy or opinion.

    Backup n. (often attrib.) 1 support; reserve (back-up team). 2 computing a making of spare copies of data for safety. B copy so made.

    Backward —adv. = *backwards. —adj. 1 towards the rear or starting-point (backward look). 2 reversed (backward roll). 3 slow to develop or progress. 4 hesitant, shy.

    Backwards adv. 1 away from one’s front (lean backwards). 2 a with the back

    Backwards adv. 1 away from one’s front (lean backwards). 2 a with the back foremost (walk backwards). B in reverse of the usual way (count backwards). 3 a into a worse state. B into the past. C (of motion) back towards the starting-point (roll backwards). backwards and forwards to and fro. Bend (or fall or lean) over backwards colloq. Make every effort, esp. To be fair or helpful.

    Backwash n. 1 receding waves made by a ship etc. 2 repercussions.

    Backwater n. 1 peaceful, secluded, or dull place. 2 stagnant water fed from a stream.

    Backwoods n.pl. 1 remote uncleared forest land. 2 remote region. backwoodsman n.

    Backyard n. Yard behind a house etc.

    Bacon n. Cured meat from the back or sides of a pig. [french from germanic]

    Bacteriology n. The study of bacteria.

    Bacterium n. (pl. -ria) unicellular micro-organism lacking an organized nucleus, esp. Of a kind causing disease. bacterial adj. [greek, = little stick]

    Bad —adj. (worse, worst) 1 inadequate, defective (bad work, light). 2 unpleasant (bad weather). 3 harmful (is bad for you). 4 (of food) decayed. 5 colloq. Ill, injured (feeling bad today; a bad leg). 6 colloq. Regretful, guilty (feels bad about it). 7 serious, severe (a bad headache, mistake). 8 a morally unacceptable (bad man; bad language). B naughty. 9 not valid (a bad cheque). 10 (badder, baddest)

    man; bad language). B naughty. 9 not valid (a bad cheque). 10 (badder, baddest) esp. Us slang excellent. —n. Ill fortune; ruin. —adv. Us colloq. Badly. not (or not so) bad colloq. Fairly good. Too bad colloq. Regrettable. [old english]

    Bad blood n. Ill feeling.

    Bad books see *book.

    Bad breath n. Unpleasant-smelling breath.

    Bad debt n. Debt that is not recoverable.

    Baddy n. (pl. -ies) colloq. Villain in a story, film, etc.

    Bade see *bid.

    Bad egg see *egg1.

    Bad faith n. Intent to deceive.

    Badge n. 1 small flat emblem worn to signify office, membership, etc., or as decoration. 2 thing that reveals a condition or quality. [origin unknown]

    Badger —n. Nocturnal burrowing mammal with a black and white striped head. —v. Pester, harass. [origin uncertain]

    Badinage n. Playful ridicule. [french]

    Bad lot n. Person of bad character.

    Badly adv. (worse, worst) 1 in a bad manner. 2 colloq. Very much (wants it badly). 3 severely (badly defeated).

    Badminton n. Game with rackets and a shuttlecock. [badminton in s. England]

    Bad-mouth v. Esp. Us slang abuse verbally, put down.

    Bad news n. Colloq. Unpleasant or troublesome person or thing.

    Bad-tempered adj. Irritable.

    Baffle —v. (-ling) 1 perplex. 2 frustrate, hinder. —n. Device that checks flow esp. Of fluid or sound waves. bafflement n. [origin uncertain]

    Bafta abbr. British association of film and television arts.

    Bag —n. 1 soft open-topped receptacle. 2 a piece of luggage. B woman’s handbag. 3 (in pl.; usu. Foll. By of) colloq. Large amount (bags of time). 4 slang derog. Woman. 5 animal’s sac. 6 amount of game shot by one person. 7 (usu. In pl.) Baggy skin under the eyes. 8 slang particular interest (folk music is not my bag). —v. (-gg-) 1 colloq. A secure (bagged the best seat). B (often in phr. Bags i) colloq. Claim as being the first (bags i go next). 2 put in a bag. 3 (cause to) hang loosely; bulge. in the bag colloq. Achieved, secured. bagful n. (pl. -s). [origin unknown]

    Bagatelle n. 1 game in which small balls are struck into holes on a board. 2 mere trifle. 3 short piece of esp. Piano music. [french from italian]

    Bagel n. Ring-shaped bread roll. [yiddish]

    Baggage n. 1 luggage. 2 portable army equipment. 3 joc. Or derog. Girl or woman. 4 mental encumbrances. [french]

    Baggy adj. (-ier, -iest) hanging loosely. baggily adv. Bagginess n.

    Bagpipe n. (usu. In pl.) Musical instrument consisting of a windbag connected to reeded pipes.

    Baguette n. Long thin french loaf. [french]

    Bah int. Expressing contempt or disbelief. [french]

    Baha’i n. (pl. -s) member of a monotheistic religion emphasizing religious unity and world peace. [persian bahá splendour]

    Bail1 —n. 1 money etc. Pledged against the temporary release of an untried prisoner. 2 person(s) giving this. —v. (usu. Foll. By out) 1 release or secure the release of (a prisoner) on payment of bail. 2 release from a difficulty; rescue. on bail released after payment of bail. [latin bajulus carrier]

    Bail2 n. 1 cricket either of two crosspieces bridging the stumps. 2 bar holding the paper against a typewriter platen. 3 bar separating horses in an open stable. [french]

    Bail3 v. (also bale) 1 (usu. Foll. By out) scoop water out of (a boat etc.). 2 scoop (water etc.) Out. bail out var. Of bale out 1 (see *bale1). [french]

    Bail2 n. 1 cricket either of two crosspieces bridging the stumps. 2 bar holding the paper against a typewriter platen. 3 bar separating horses in an open stable. [french]

    Bail3 v. (also bale) 1 (usu. Foll. By out) scoop water out of (a boat etc.). 2 scoop (water etc.) Out. bail out var. Of bale out 1 (see *bale1). [french]

    Bailey n. (pl. -s) 1 outer wall of a castle. 2 court enclosed by it. [french: related to *bail2]

    Bailey bridge n. Prefabricated military bridge for rapid assembly. [sir d. Bailey, name of its designer]

    name of its designer]

    Bailiff n. 1 sheriff’s officer who executes writs and carries out distraints. 2 landlord’s agent or steward. [french: related to *bail1]

    Bailiwick n. 1 law district of a bailiff. 2 joc. Person’s particular interest. [as *bailiff, obsolete wick district]

    Bain-marie n. (pl. Bains-marie pronunc. Same) pan of hot water holding a pan containing sauce etc. For slow heating. [french, translation of medieval latin balneum mariae bath of maria (a supposed alchemist)]

    Bairn n. Scot. & n.engl. Child. [old english: related to *bear1]

    Bait —n. 1 food used to entice prey. 2 allurement. —v. 1 harass, torment, or annoy (a person or chained animal). 2 put bait on (a hook, trap, etc.). [old norse]

    Baize n. Usu. Green woollen felted material, used for coverings. [french pl. Baies chestnut-coloured]

    Bake v. (-king) 1 cook or become cooked by dry heat, esp. In an oven. 2 colloq. (usu. As be baking) (of weather, a person, etc.) Be very hot. 3 harden by heat. [old english]

    Baked beans n.pl. Baked haricot beans, usu. Tinned in tomato sauce.

    Bakelite n. Propr. Plastic made from formaldehyde and phenol, used formerly for buttons, plates, etc. [german from baekeland, name of its inventor]

    Baker n. Person who bakes and sells bread, cakes, etc., esp. For a living.

    Baker day n. Colloq. Day set aside for in-service training of teachers. [baker, name of the education secretary responsible for introducing them]

    Baker’s dozen n. Thirteen.

    Bakery n. (pl. -ies) place where bread and cakes are made or sold.

    Bakewell tart n. Open pastry case lined with jam and filled with almond paste. [bakewell in derbyshire]

    Baking-powder n. Mixture of sodium bicarbonate, cream of tartar, etc., as a raising agent.

    Baking-soda n. Sodium bicarbonate.

    Baklava n. Rich sweetmeat of flaky pastry, honey, and nuts. [turkish]

    Baksheesh n. Gratuity, tip. [persian]

    Balaclava n. (in full balaclava helmet) usu. Woollen covering for the whole head and neck, except for the face. [balaclava in the crimea, the site of a battle in 1854]

    Balalaika n. Guitar-like stringed instrument with a triangular body. [russian]

    Balance —n. 1 a even distribution of weight or amount. B stability of body or mind. 2 apparatus for weighing, esp. One with a central pivot, beam, and two scales. 3 a counteracting weight or force. B (in full balance-wheel) regulating device in a clock etc. 4 decisive weight or amount (balance of opinion). 5 a agreement or difference between credits and debits in an account. B amount still owing or outstanding (will pay the balance). C amount left over. 6 a art harmony and proportion. B mus. Relative volume of sources of sound. 7 (the balance) zodiacal sign or constellation libra. —v. (-cing) 1 bring into, keep, or be in equilibrium (balanced a book on her head; balanced on one leg). 2 (often foll. By with, against) offset or compare (one thing) with another (balance the pros and cons). 3 counteract, equal, or neutralize the weight or importance of. 4 (usu. As balanced adj.) Make well-proportioned and harmonious (balanced diet; balanced opinion). 5 a compare and esp

    Balance of payments n. Difference in value between payments into and out of a country.

    Balance of power n. 1 situation of roughly equal power among the chief states of the world. 2 power held by a small group when larger groups are of equal strength.

    Balance of trade n. Difference in value between imports and exports.

    Balance sheet n. Statement giving the balance of an account.

    Balcony n. (pl. -ies) 1 usu. Balustraded platform on the outside of a building with access from an upper floor. 2 upper tier of seats in a theatre etc. balconied adj. [italian]

    Bald adj. 1 lacking some or all hair on the scalp. 2 lacking the usual hair, feathers, leaves, etc. 3 colloq. With a worn surface (bald tyre). 4 plain, direct (bald statement, style). balding adj. (in senses 1–3). Baldly adv. (in sense 4). Baldness n. [old english]

    Balderdash n. Nonsense. [origin unknown]

    Bale1 —n. Tightly bound bundle of merchandise or hay. —v. (-ling) make up into bales. bale out 1 (also bail out) (of an airman) make an emergency parachute descent. 2 var. Of *bail1 v. 2. [dutch: related to *ball1]

    Bale2 var. Of *bail3.

    Baleen n. Whalebone. [latin balaena whale]

    Baleful adj. 1 menacing in look, manner, etc. 2 malignant, destructive. balefully adv. [archaic bale evil]

    Balk var. Of *baulk.

    Balkan adj. 1 of the region of se europe bounded by the adriatic, aegean, and black sea. 2 of its peoples or countries. [turkish]

    Ball1 —n. 1 sphere, esp. For use in a game. 2 a ball-shaped object; material in the shape of a ball (ball of snow, wool). B rounded part of the body (ball of the foot). 3 cannon-ball. 4 single delivery or pass of a ball in cricket, baseball, football, etc. 5 (in pl.) Coarse slang a testicles. B (usu. As int.) Nonsense. C = *balls-up. D courage, ‘guts’. —v. Form into a ball. balls up coarse slang bungle; make a mess of. On the ball colloq. Alert. [old norse]

    Ball2 n. 1 formal social gathering for dancing. 2 slang enjoyable time (esp. Have a ball). [greek ballo throw]

    Ballad n. 1 poem or song narrating a popular story. 2 slow sentimental song. [provençal: related to *ball2]

    Balladry n. Ballad poetry.

    Ball-and-socket joint n. Joint in which a rounded end lies in a concave socket.

    Ballast —n. 1 heavy material stabilizing a ship, the car of a balloon, etc. 2 coarse stone etc. As the bed of a railway track or road. 3 mixture of coarse and fine aggregate for making concrete. —v. Provide with ballast. [low german or scandinavian]

    Ball-bearing n. 1 bearing in which the two halves are separated by a ring of small balls. 2 one of these balls.

    Ballboy n. (fem. Ballgirl) (in tennis) boy or girl who retrieves balls.

    Ballcock n. Floating ball on a hinged arm controlling the water level in a cistern.

    Ballerina n. Female ballet-dancer. [italian: related to *ball2]

    Ballet n. 1 dramatic or representational style of dancing to music. 2 particular piece or performance of ballet. balletic adj. [french: related to *ball2]

    Ballet-dancer n. Dancer of ballet.

    Ball game n. 1 a game played with a ball. B us baseball game. 2 esp. Us colloq. Affair; matter (a whole new ball game).

    Ballista n. (pl. -stae) (in ancient warfare) catapult for hurling large stones etc. [latin from greek ballo throw]

    Ballistic adj. Of projectiles.

    Ballistic missile n. Missile that is powered and guided but falls by gravity.

    Ballistics n.pl. (usu. Treated as sing.) Science of projectiles and firearms.

    Ballocking var. Of *bollocking.

    Ballocks var. Of *bollocks.

    Balloon —n. 1 small inflatable rubber toy or decoration. 2 large usu. Round inflatable flying bag, often carrying a basket for passengers. 3 colloq. Balloon shape enclosing dialogue etc. In a comic strip or cartoon. —v. 1 (cause to) swell out like a balloon. 2 travel by balloon. balloonist n. [french or italian, = large ball]

    Ballot —n. 1 occasion or system of voting, in writing and usu. Secret. 2 total of such votes. 3 paper etc. Used in voting. —v. (-t-) 1 (usu. Foll. By for) a hold a ballot; give a vote. B draw lots for precedence etc. 2 take a ballot of (balloted the members). [italian ballotta: related to *balloon]

    Ballot-box n. Sealed box for completed ballot-papers.

    Ballot-paper n. = *ballot n. 3.

    Ballpark n. Us 1 baseball ground. 2 colloq. Sphere of activity, etc. 3 (attrib.) Colloq. Approximate. in the right ballpark colloq. Approximately correct.

    Ball-point n. (in full ball-point pen) pen with a tiny ball as its writing point.

    Ballroom n. Large room for dancing.

    Ballroom dancing n. Formal social dancing.

    Balls-up n. Coarse slang bungle, mess.

    Bally adj. & adv. Slang mild form of bloody (see *bloody adj. 3). [alteration of *bloody]

    Ballyhoo n. 1 loud noise or fuss. 2 noisy publicity. [origin unknown]

    Balm n. 1 aromatic ointment. 2 fragrant oil or resin exuded from certain trees and plants. 3 thing that heals or soothes. 4 aromatic herb. [latin: related to *balsam]

    Balmy adj. (-ier, -iest) 1 mild and fragrant; soothing. 2 slang = *barmy. balmily adv. Balminess n.

    Baloney var. Of *boloney.

    Balsa n. 1 (in full balsa-wood) tough lightweight wood used for making models

    etc. 2 tropical american tree yielding it. [spanish, = raft]

    Balsam n. 1 resin exuded from various trees and shrubs. 2 ointment, esp. Containing oil or turpentine. 3 tree or shrub yielding balsam. 4 any of several flowering plants. balsamic adj. [latin balsamum]

    Baluster n. Short post or pillar supporting a rail. [greek balaustion wild-pomegranate flower]

    Usage baluster is often confused with banister. A baluster is usually part of a balustrade whereas a banister supports a stair handrail.

    Balustrade n. Railing supported by balusters, esp. On a balcony. balustraded adj.

    Bamboo n. 1 tropical giant woody grass. 2 its stem, used for canes, furniture, etc. [dutch from malay]

    Bamboo shoot n. Young shoot of bamboo, eaten as a vegetable.

    Bamboozle v. (-ling) colloq. Cheat; mystify. bamboozlement n. [origin unknown]

    Ban —v. (-nn-) forbid, prohibit, esp. Formally. —n. Formal prohibition (ban on smoking). [old english, = summon]

    Banal adj. Trite, commonplace. banality n. (pl. -ies). Banally adv. [french, related to *ban: originally = compulsory, hence = common]

    Banana n. 1 long curved soft fruit with a yellow skin. 2 treelike plant bearing it. go bananas slang go mad. [portuguese or spanish, from an african name]

    Banana republic n. Derog. Small state, esp. In central america, dependent on foreign capital.

    Band —n. 1 flat, thin strip or loop of paper, metal, cloth, etc., put round something esp. To hold or decorate it. 2 a strip of material on a garment. B stripe. 3 group of esp. Non-classical musicians. 4 organized group of criminals etc. 5 range of frequencies, wavelengths, or values. 6 belt connecting wheels or pulleys. —v. 1 (usu. Foll. By together) unite. 2 put a band on. 3 mark with stripes. [old norse (related to *bind) and french]

    Bandage —n. Strip of material used to bind a wound etc. —v. (-ging) bind with a bandage. [french: related to *band]

    Bandanna n. Large patterned handkerchief or neckerchief. [portuguese from hindi]

    B. & b. Abbr. Bed and breakfast.

    Bandbox n. Hatbox.

    Bandeau n. (pl. -x) narrow headband. [french]

    Banderole n. 1 long narrow flag with a cleft end. 2 ribbon-like inscribed scroll. [italian: related to *banner]

    Bandicoot n. 1 catlike australian marsupial. 2 (in full bandicoot rat) destructive rat in india. [telugu, = pig-rat]

    Bandit n. Robber or outlaw, esp. One attacking travellers etc. banditry n. [italian]

    Bandmaster n. Conductor of a band.

    Bandog n. Fighting-dog bred for its strength and ferocity. [from band, dog]

    Bandolier n. (also bandoleer) shoulder belt with loops or pockets for cartridges. [dutch or french]

    Band-saw n. Mechanical saw with a blade formed by an endless toothed band.

    Bandsman n. Player in a band.

    Bandstand n. Outdoor platform for musicians.

    Bandwagon n. climb (or jump) on the bandwagon join a popular or successful cause etc.

    Bandwidth n. Range of frequencies within a given band.

    Bandy1 adj. (-ier, -iest) 1 (of the legs) curved so as to be wide apart at the knees. 2 (also bandy-legged) having bandy legs. [perhaps from obsolete bandy curved stick]

    Bandy2 v. (-ies, -ied) 1 (often foll. By about) a pass (a story, rumour, etc.) To and fro. B discuss disparagingly (bandied her name about). 2 (often foll. By with) exchange (blows, insults, etc.). [perhaps from french]

    Bane n. 1 cause of ruin or trouble. 2 poet. Ruin. 3 archaic (except in comb.) Poison (ratsbane). baneful adj. [old english]

    Bang —n. 1 loud short sound. 2 sharp blow. 3 coarse slang act of sexual intercourse. 4 us fringe cut straight across the forehead. —v. 1 strike or shut noisily (banged the door). 2 (cause to) make a bang. 3 coarse slang have sexual intercourse (with). —adv. 1 with a bang. 2 colloq. Exactly (bang in the middle). bang on colloq. Exactly right. Go bang 1 shut noisily. 2 explode. 3 (as bang goes etc.) Colloq. Be suddenly lost (bang go my hopes). [imitative]

    Banger n. 1 slang sausage. 2 slang noisy old car. 3 firework designed to go bang.

    Bangle n. Rigid bracelet or anklet. [hindi bangri]

    Bangle n. Rigid bracelet or anklet. [hindi bangri]

    Banian var. Of *banyan.

    Banish v. 1 condemn to exile. 2 dismiss (esp. From one’s mind). banishment n. [germanic: related to *ban]

    Banister n. (also bannister) (usu. In pl.) Uprights and handrail beside a staircase. [corruption of *baluster]

    Usage see note at baluster.

    Banjo n. (pl. -s or -es) guitar-like stringed instrument with a circular body. banjoist n. [us southern corruption of bandore from greek pandoura lute]

    Bank1 —n. 1 sloping ground beside a river. 2 raised area, esp. In the sea; slope. 3 mass of cloud, fog, snow, etc. —v. 1 (often foll. By up) heap or rise into banks. 2 pack (a fire) tightly for slow burning. 3 a (of a vehicle, aircraft, etc.) Round a curve with one side higher than the other. B cause to do this. [old norse: related to *bench]

    Bank2 —n. 1 establishment for depositing, withdrawing, and borrowing money. 2 kitty in some gambling games. 3 storage place (blood bank). —v. 1 deposit (money etc.) In a bank. 2 (often foll. By at, with) keep money (at a bank). bank on colloq. Rely on (i’m banking on you). [french banque or italian banca: related to *bank1]

    Banknote n. Piece of paper money.

    Banknote n. Piece of paper money.

    Bankrupt —adj. 1 legally declared insolvent. 2 (often foll. By of) exhausted or drained (of emotion etc.). —n. Insolvent person, esp. One whose assets are used to repay creditors. —v. Make bankrupt. bankruptcy n. (pl. -ies). [italian banca rotta broken bench: related to *bank2]

    Banksia n. Australian evergreen flowering shrub. [banks, name of a naturalist]

    Banner n. 1 large sign bearing a slogan or design, esp. In a demonstration or procession; flag. 2 slogan, esp. Political. [latin bandum standard]

    Banner headline n. Large, esp. Front-page, newspaper headline.

    Bannister var. Of *banister.

    Bannock n. Scot. & n.engl. Round flat loaf, usu. Unleavened. [old english]

    Banns n.pl. Notice announcing an intended marriage, read out in a parish church. [pl. Of *ban]

    Banquet —n. Sumptuous, esp. Formal, feast or dinner. —v. (-t-) attend, or entertain with, a banquet; feast. [french diminutive of banc bench]

    Banquette n. Upholstered bench, esp. In a restaurant or bar. [french from italian]

    Banshee n. Ir. & scot. Wailing female spirit warning of death in a house. [irish, = fairy woman]

    Bantam n. 1 a kind of small domestic fowl. 2 small but aggressive person. [apparently from bantan in java]

    Bantamweight n. 1 weight in certain sports between flyweight and featherweight, in amateur boxing 51–4 kg. 2 sportsman of this weight.

    Banter —n. Good-humoured teasing. —v. 1 tease. 2 exchange banter. [origin unknown]

    Bantu —n. (pl. Same or -s) 1 often offens. Member of a large group of central and southern african blacks. 2 group of languages spoken by them. —adj. Of these peoples or languages. [bantu, = people]

    Bantustan n. S.afr. Often offens. = *homeland 2.

    Banyan n. (also banian) indian fig tree with self-rooting branches. [portuguese from sanskrit, = trader]

    Baobab n. African tree with a massive trunk and large pulpy fruit. [probably african dial.]

    Bap n. Soft flattish bread roll. [origin unknown]

    Baptism n. Symbolic admission to the christian church, with water and usu. Name-giving. baptismal adj. [greek baptizo baptize]

    Baptism of fire n. 1 initiation into battle. 2 painful initiation into an activity.

    Baptist n. 1 person who baptizes, esp. John the baptist. 2 (baptist) christian advocating baptism by total immersion.

    Baptistery n. (pl. -ies) 1 a part of a church used for baptism. B hist. Separate building used for baptism. 2 (in a baptist chapel) receptacle used for immersion.

    Baptize v. (also -ise) (-zing or -sing) 1 administer baptism to. 2 give a name or nickname to.

    Bar1 —n. 1 long piece of rigid material, esp. Used to confine or obstruct. 2 a something of similar form (bar of soap; bar of chocolate). B band of colour or light. C heating element of an electric fire. D metal strip below the clasp of a medal, awarded as an extra distinction. E heraldry narrow horizontal stripe across a shield. 3 a counter for serving alcohol etc. On. B room or building containing it. C small shop or stall serving refreshments (snack bar). D counter for a special service (heel bar). 4 a barrier. B restriction (colour bar; bar to promotion). 5 prisoner’s enclosure in a lawcourt. 6 any of the sections into which a piece of music is divided by vertical lines. 7 (the bar) law a barristers collectively. B profession of barrister. —v. (-rr-) 1 a fasten with a bar or bars. B

    (usu. Foll. By in, out) shut or keep in or out. 2 obstruct, prevent. 3 (usu. Foll. By from) prohibit, exclude. 4 mark with stripes. —prep. Except. be called to the bar be admitted as barrister. Behind bars in prison. [french]

    Bar2 n. Esp. Meteorol. Unit of pressure, 105 newtons per square metre, approx. One atmosphere. [greek baros weight]

    Barathea n. Fine wool cloth. [origin unknown]

    Barb —n. 1 secondary backward-facing projection from an arrow, fish-hook, etc. 2 hurtful remark. 3 fleshy filament at the mouth of some fish. —v. 1 fit with a barb. 2 (as barbed adj.) (of a remark etc.) Deliberately hurtful. [latin barba beard]

    Barbarian —n. 1 uncultured or brutish person. 2 member of a primitive tribe etc. —adj. 1 rough and uncultured. 2 uncivilized. [greek barbaros foreign]

    Barbaric adj. 1 uncultured; brutal, cruel. 2 primitive.

    Barbarism n. 1 barbaric state or act. 2 non-standard word or expression.

    Barbarity n. (pl. -ies) 1 savage cruelty. 2 brutal act.

    Barbarous adj. = *barbaric 1.

    Barbecue —n. 1 a meal cooked over charcoal etc. Out of doors. B party for this.

    2 grill etc. Used for this. —v. (-ues, -ued, -uing) cook on a barbecue. [spanish from haitian]

    Barbed wire n. Wire with interwoven sharp spikes, used in fences and barriers.

    Barbel n. 1 freshwater fish with barbs. 2 = barb n. 3. [latin: related to barb]

    Barbell n. Iron bar with removable weights at each end, used for weightlifting.

    Barber n. Person who cuts men’s hair etc. By profession. [medieval latin barba beard]

    Barberry n. (pl. -ies) 1 shrub with yellow flowers and red berries. 2 its berry. [french berberis]

    Barber-shop n. Colloq. Close harmony singing for four male voices.

    Barber’s pole n. Pole with spiral red and white stripes as a barber’s sign.

    Barbican n. Outer defence, esp. A double tower above a gate or drawbridge. [french]

    Barbie n. Austral. Slang barbecue. [abbreviation]

    Bar billiards n.pl. Form of billiards with holes in the table.

    Barbiturate n. Soporific or sedative drug from barbituric acid. [german, from the name barbara]

    Barbituric acid n. Organic acid from which barbiturates are derived.

    Barbour n. Propr. Type of green waxed jacket. [barbour, name of a draper]

    Barcarole n. 1 gondoliers’ song. 2 music imitating this. [italian barca boat]

    Bar code n. Machine-readable striped code on packaging etc.

    Bard n. 1 poet. Poet. 2 a hist. Celtic minstrel. B prizewinner at an eisteddfod. bardic adj. [celtic]

    Bare —adj. 1 unclothed or uncovered. 2 leafless; unfurnished; empty. 3 plain, unadorned (the bare truth; bare facts). 4 (attrib.) Scanty, just sufficient (a bare majority; bare necessities). —v. (-ring) uncover, reveal (bared his teeth; bared his soul). [old english]

    Bareback adj. & adv. Without a saddle.

    Barefaced adj. Shameless, impudent.

    Barefoot adj. & adv. (also barefooted) wearing nothing on the feet.

    Bareheaded adj. & adv. Wearing nothing on the head.

    Barely adv. 1 scarcely (barely escaped). 2 scantily (barely furnished).

    Bargain —n. 1 a agreement on the terms of a sale etc. B this from the buyer’s viewpoint (a bad bargain). 2 cheap thing. —v. (often foll. By with, for) discuss the terms of a sale etc. (bargained with me; bargain for the table). bargain for (or colloq. On) be prepared for; expect. Bargain on rely on. Into the bargain moreover. [french from germanic]

    Barge —n. 1 long flat-bottomed cargo boat on a canal or river. 2 long ornamental pleasure boat. —v. (-ging) 1 (foll. By in, into) a intrude rudely or awkwardly (barged in on him). B collide with (barged into her). 2 (often foll. By around) move clumsily about. [french: related to *barque]

    Bargeboard n. Board fixed to the gable-end of a roof to hide the ends of the roof timbers. [perhaps from medieval latin bargus gallows]

    Bargee n. Person sailing a barge.

    Bargepole n. would not touch with a bargepole refuse to be associated or concerned with.

    Baritone n. 1 a second-lowest adult male singing voice. B singer with this voice. 2 instrument pitched second-lowest in its family. [greek barus heavy, tonos tone]

    Barium n. White soft metallic element. [from *baryta]

    Barium meal n. Mixture swallowed to reveal the abdomen in x-rays.

    Bark1 —n. 1 sharp explosive cry of a dog, fox, etc. 2 sound like this. —v. 1 (of a dog etc.) Give a bark. 2 speak or utter sharply or brusquely. 3 colloq. Cough harshly. bark up the wrong tree make false assumptions. [old english]

    Bark2 —n. Tough outer skin of tree-trunks, branches, etc. —v. 1 graze (one’s shin etc.). 2 strip bark from. [scandinavian]

    Barker n. Tout at an auction, sideshow, etc. [from *bark1]

    Barley n. 1 cereal used as food and in spirits. 2 (also barleycorn) its grain. [old english]

    Barley sugar n. Sweet made from sugar, usu. In twisted sticks.

    Barley water n. Drink made from a boiled barley mixture.

    Barm n. Froth on fermenting malt liquor. [old english]

    Barmaid n. Woman serving in a pub etc.

    Barman n. Man serving in a pub etc.

    Bar mitzvah n. 1 religious initiation ceremony of a jewish boy at 13. 2 boy undergoing this. [hebrew, = son of the commandment]

    Barmy adj. (-ier, -iest) slang crazy, stupid. [from *barm: earlier, = frothy]

    Barn n. Large farm building for storing grain etc. [old english, = barley house]

    Barnacle n. 1 marine crustacean clinging to rocks, ships’ bottoms, etc. 2 tenacious attendant or follower. [french or medieval latin]

    Barnacle goose n. Arctic goose.

    Barn dance n. 1 informal gathering for country dancing. 2 a kind of country dance.

    Barney n. (pl. -s) colloq. Noisy quarrel. [perhaps dial.]

    Barn-owl n. A kind of owl frequenting barns.

    Barnstorm v. Tour rural areas as an actor or political campaigner. barnstormer n.

    Barnyard n. Area around a barn.

    Barograph n. Barometer equipped to record its readings. [greek baros weight]

    Barometer n. 1 instrument measuring atmospheric pressure, used in meteorology. 2 anything which reflects change. barometric adj. [related to *barograph]

    Baron n. 1 member of the lowest order of the british or foreign nobility. 2 powerful businessman, entrepreneur, etc. 3 hist. Person holding lands from the sovereign. baronial adj. [medieval latin, = man]

    Baroness n. 1 woman holding the rank of baron. 2 baron’s wife or widow.

    Baronet n. Member of the lowest hereditary titled british order. baronetcy n. (pl. -ies).

    Baron of beef n. Double sirloin.

    Barony n. (pl. -ies) domain or rank of a baron.

    Baroque —adj. 1 highly ornate and extravagant in style, esp. Of european art etc. Of the 17th and 18th c. 2 of this period. —n. Baroque style or art. [portuguese, originally = misshapen pearl]

    Bar person n. Barmaid or barman.

    Barque n. 1 sailing-ship with the rear mast fore-and-aft rigged and other masts square-rigged. 2 poet. Boat. [provençal from latin barca]

    Barrack1 —n. (usu. In pl., often treated as sing.) 1 housing for soldiers. 2 large bleak building. —v. Lodge (soldiers etc.) In barracks. [italian or spanish]

    Barrack2 v. 1 shout or jeer at (players, a speaker, etc.). 2 (foll. By for) cheer for, encourage (a team etc.). [perhaps from australian slang borak banter]

    Barracouta n. (pl. Same or -s) long slender fish of southern oceans. [var. Of *barracuda]

    Barracuda n. (pl. Same or -s) large tropical marine fish. [spanish]

    Barrage n. 1 concentrated artillery bombardment. 2 rapid succession of questions or criticisms. 3 artificial barrier in a river etc. [french barrer *bar1]

    Barrage balloon n. Large anchored balloon used as a defence against lowflying aircraft.

    Barratry n. Fraud or gross negligence by a ship’s master or crew. [french barat deceit]

    Barre n. Horizontal bar at waist level, used in dance exercises. [french]

    Barré n. Method of playing a chord on the guitar etc. With a finger laid across the strings at a particular fret. [french barrer bar]

    Barrel —n. 1 cylindrical usu. Convex container. 2 its contents. 3 measure of capacity (30 to 40 gallons). 4 cylindrical tube forming part of an object, e.g. A gun or a pen. —v.

    Barrel-organ n. Mechanical musical instrument with a rotating pin-studded cylinder.

    Barren adj. (-er, -est) 1 a unable to bear young. B (of land, a tree, etc.) Unproductive. 2 unprofitable, dull. barrenness n. [french]

    Barricade —n. Barrier, esp. Improvised. —v. (-ding) block or defend with this. [french barrique cask]

    Barrier n. 1 fence etc. That bars advance or access. 2 obstacle (class barriers). [romanic: related to *bar1]

    Barrier cream n. Protective skin cream.

    Barrier reef n. Coral reef separated from the shore by a channel.

    Barring prep. Except, not including.

    Barrister n. Advocate entitled to practise in the higher courts. [from bar1: cf. minister]

    Barrow1 n. 1 two-wheeled handcart. 2 = wheelbarrow. [old english: related to bear1]

    Barrow2 n. Ancient grave-mound. [old english]

    Bar sinister n. = *bend sinister.

    Bartender n. Person serving in a pub etc.

    Barter —v. 1 trade in goods without using money. 2 exchange (goods). —n. Trade by bartering. [perhaps from french]

    Baryon n. Heavy elementary particle (i.e. A nucleon or a hyperon). [greek barus heavy]

    Baryta n. Barium oxide or hydroxide. [from *barytes]

    Barytes n. Mineral form of barium sulphate. [greek barus heavy]

    Basal adj. Of, at, or forming a base.

    Basalt n. A dark volcanic rock. basaltic adj. [latin basaltes from greek]

    Base1 —n. 1 a part supporting from beneath or serving as a foundation. B notional support or foundation (power base). 2 principle or starting-point. 3 esp. Mil. Headquarters. 4 main or important ingredient. 5 number in terms of which other numbers or logarithms are expressed. 6 substance capable of combining with an acid to form a salt. 7 baseball etc. Each of the four stations on a pitch. — v. (-sing) 1 (usu. Foll. By on, upon) found or establish (a theory, hope, etc.). 2 station (troops based in malta). [greek basis stepping]

    Base2 adj. 1 cowardly, despicable. 2 menial. 3 alloyed (base coin). 4 (of a metal) low in value. [latin bassus]

    Baseball n. 1 game played esp. In the us with a circuit of four bases which batsmen must complete. 2 ball used in this.

    Baseless adj. Unfounded, groundless.

    Baseline n. 1 line used as a base or starting-point. 2 line marking each end of a tennis-court.

    Basement n. Floor of a building below ground level.

    Base rate n. Interest rate set by the bank of england, used as the basis for other banks’ rates.

    Bases pl. Of base1, basis.

    Bash —v. 1 a strike bluntly or heavily. B (often foll. By up) colloq. Attack violently. C (often foll. By down, in, etc.) Damage or break by striking forcibly. 2 (foll. By into) collide with. —n. 1 heavy blow. 2 slang attempt. [imitative]

    Bashful adj. Shy, diffident. bashfully adv. [as *abashed]

    Basic n. Computer programming language using familiar english words. [beginner’s all-purpose symbolic instruction code]

    Basic —adj. 1 serving as a base; fundamental. 2 a simplest or lowest in level (basic pay, needs). B vulgar (basic humour). —n. (usu. In pl.) Fundamental facts or principles. basically adv.

    Basic slag n. Fertilizer containing phosphates formed as a by-product in steel manufacture.

    Basil n. Aromatic herb used as flavouring. [greek basilikos royal]

    Basilica n. 1 ancient roman hall with an apse and colonnades, used as a lawcourt etc. 2 similar building as a christian church. [greek basilike (stoa) royal (portico)]

    Basilisk n. 1 mythical reptile with lethal breath and glance. 2 small american crested lizard. [greek, diminutive of basileus king]

    Basin n. 1 round open vessel for holding liquids or preparing food in. 2 = *wash-basin. 3 hollow depression. 4 sheltered mooring area. 5 round valley. 6 area drained by a river. basinful n. (pl. -s). [medieval latin ba(s)cinus]

    Basis n. (pl. Bases) 1 foundation or support. 2 main principle or ingredient (on a friendly basis). 3 starting-point for a discussion etc. [greek: related to *base1]

    Bask v. 1 relax in warmth and light. 2 (foll. By in) revel in (basking in glory). [old norse: related to *bathe]

    Basket n. 1 container made of interwoven cane, reed, wire, etc. 2 amount held by this. 3 the goal in basketball, or a goal scored. 4 econ. Group or range (of currencies). [french]

    Basketball n. 1 game in which goals are scored by putting the ball through high nets. 2 ball used in this.

    Basketry n. 1 art of weaving cane etc. 2 work so produced.

    Basket weave n. Weave like wickerwork.

    Basketwork n. = *basketry.

    Basking shark n. Large shark which lies near the surface of the sea.

    Basque —n. 1 member of a people of the western pyrenees. 2 their language. — adj. Of the basques or their language. [latin vasco]

    Bas-relief n. Sculpture or carving with figures projecting slightly from the background. [french and italian]

    Bass1 —n. 1 a lowest adult male singing voice. B singer with this voice. 2 instrument pitched lowest in its family. 3 colloq. Bass guitar or double-bass. 4

    low-frequency output of a radio, record-player, etc. —adj. 1 lowest in musical pitch. 2 deep-sounding. bassist n. (in sense 3). [from *base2 altered after italian basso]

    Bass2 n. (pl. Same or -es) 1 common perch. 2 other spiny-finned fish of the perch family. [old english]

    Bass clef n. Clef placing f below middle c on the second highest line of the staff.

    Basset n. (in full basset-hound) sturdy hunting-dog with a long body and short legs. [french diminutive of bas low]

    Bass guitar n. Electric guitar tuned as a double-bass.

    Bassinet n. Child’s wicker cradle, usu. Hooded. [french diminutive of bassin *basin]

    Basso n. (pl. -s) singer with a bass voice. [italian, = *bass1]

    Bassoon n. Bass instrument of the oboe family. bassoonist n. [italian: related to *bass1]

    Bast n. Fibre from the inner bark of a tree (esp. The lime). [old english]

    Bastard often offens. —n. 1 person born of an unmarried mother. 2 slang a unpleasant or despicable person. B person of a specified kind (poor, lucky, bastard). 3 slang difficult or awkward thing. —attrib. Adj. 1 illegitimate by birth. 2 unauthorized, counterfeit, hybrid. bastardy n. (in sense 1 of n.). [french from medieval latin]

    Bastardize v. (also -ise) (-zing or -sing) 1 corrupt, debase. 2 declare (a person) illegitimate.

    Baste1 v. (-ting) 1 moisten (meat) with fat etc. During cooking. 2 beat, thrash. [origin unknown]

    Baste2 v. (-ting) sew with large loose stitches, tack. [french from germanic]

    Bastinado —n. Beating with a stick on the soles of the feet. —v. (-es, -ed) punish in this way. [spanish baston stick]

    Bastion n. 1 projecting part of a fortification. 2 thing regarded as protecting (bastion of freedom). [italian bastire build]

    Bat1 —n. 1 implement with a handle, used for hitting balls in games. 2 turn with this. 3 batsman. —v. (-tt-) 1 hit with or as with a bat. 2 take a turn at batting. off one’s own bat unprompted, unaided. [old english from french]

    Bat2 n. Mouselike nocturnal flying mammal. [scandinavian]

    Bat3 v. (-tt-) not (or never) bat an eyelid colloq. Show no reaction or emotion. [var. Of obsolete bate flutter]

    Batch —n. 1 group of things or persons considered or dealt with together; instalment. 2 loaves produced at one baking. 3 computing group of records processed as one unit. —v. Arrange or deal with in batches. [related to *bake]

    Bated adj. with bated breath very anxiously. [as *abate]

    Bath —n. (pl. -s) 1 a (usu. Plumbed-in) container for sitting in and washing the body. B its contents. 2 act of washing in it (have a bath). 3 (usu. In pl.) Public building with baths or a swimming-pool. 4 a vessel containing liquid for immersing something, e.g. A film for developing. B its contents. —v. 1 wash (esp. A baby) in a bath. 2 take a bath. [old english]

    Bath bun n. Round spiced bun with currants, often iced. [bath in s. England]

    Bath chair n. Wheelchair for invalids.

    Bath cube n. Cube of soluble substance for scenting or softening bath-water.

    Bathe —v. (-thing) 1 immerse oneself in water, esp. To swim or wash oneself. 2 immerse in, wash, or treat with liquid. 3 (of sunlight etc.) Envelop. —n. Swim. [old english]

    Bathhouse n. Public building with baths.

    Bathhouse n. Public building with baths.

    Bathing-costume n. (also bathing-suit) garment worn for swimming.

    Bathos n. Lapse in mood from the sublime to the absurd or trivial; anticlimax. bathetic adj. Bathotic adj. [greek, = depth]

    Bathrobe n. Esp. Us dressing-gown, esp. Of towelling.

    Bathroom n. 1 room with a bath, wash-basin, etc. 2 us room with a lavatory.

    Bath salts n.pl. Soluble powder or crystals for scenting or softening bath-water.

    Bathyscaphe n. Manned vessel for deep-sea diving. [greek bathus deep, skaphos ship]

    Bathysphere n. Vessel for deep-sea observation. [greek bathus deep, *sphere]

    Batik n. 1 method of dyeing textiles by applying wax to parts to be left uncoloured. 2 cloth so treated. [javanese, = painted]

    Batiste n. Fine linen or cotton cloth. [french from baptiste, name of the first maker]

    Batman n. Army officer’s servant. [bat pack-saddle, from french]

    Baton n. 1 thin stick for conducting an orchestra etc. 2 short stick passed on in a relay race. 3 stick carried by a drum major. 4 staff of office. [french from latin]

    Baton round n. Rubber or plastic bullet.

    Batrachian —n. Amphibian that discards its gills and tail, esp. A frog or toad. — adj. Of batrachians. [greek batrakhos frog]

    Bats predic. Adj. Slang crazy. [originally pl. Of *bat2]

    Batsman n. Person who bats, esp. In cricket.

    Battalion n. 1 army unit usu. Of 300–1000 men. 2 large group with a common aim. [italian battaglia *battle]

    Batten1 —n. 1 a long flat strip of squared timber. B horizontal strip of wood to which laths, tiles, etc., are fastened. 2 strip for securing tarpaulin over a ship’s hatchway. —v. Strengthen or (often foll. By down) fasten with battens. [french: related to *batter1]

    Batten2 v. (foll. By on) thrive at the expense of (another). [old norse]

    Battenberg n. Oblong sponge cake, usu. Of two colours and covered with marzipan. [battenberg in germany]

    Batter1 v. 1 a strike hard and repeatedly. B (often foll. By against, at, etc.) Pound insistently (batter at the door). 2 (often in passive) a subject to long-term violence (battered baby, wife). B criticize severely. batterer n. [french battre beat: related to *battle]

    Batter2 n. Mixture of flour, egg, and milk or water, used for pancakes etc. [french: related to *batter1]

    Battered adj. Coated in batter and deep-fried.

    Battering-ram n. Hist. Beam used in breaching fortifications.

    Battery n. (pl. -ies) 1 usu. Portable container of an electrically charged cell or cells as a source of current. 2 (often attrib.) Series of cages for the intensive breeding and rearing of poultry or cattle. 3 set of similar units of equipment; series, sequence. 4 emplacement for heavy guns. 5 law unlawful physical violence against a person. [latin: related to *battle]

    Battle —n. 1 prolonged fight between armed forces. 2 difficult struggle; contest (battle for supremacy; battle of wits). —v. (-ling) engage in battle; fight. half the battle key to the success of an undertaking. [latin battuo beat]

    Battleaxe n. 1 large axe used in ancient warfare. 2 colloq. Formidable older

    Battleaxe n. 1 large axe used in ancient warfare. 2 colloq. Formidable older woman.

    Battlebus n. Colloq. Bus used by a politician during an election campaign as a mobile centre of operations.

    Battle-cruiser n. Hist. Warship of higher speed and lighter armour than a battleship.

    Battle-cry n. Cry or slogan used in a battle or contest.

    Battledore n. Hist. 1 (in full battledore and shuttlecock) game played with a shuttlecock and rackets. 2 racket used in this. [perhaps from provençal batedor beater]

    Battledress n. Everyday uniform of a soldier.

    Battlefield n. (also battleground) scene of a battle.

    Battlement n. (usu. In pl.) Recessed parapet along the top of a wall, as part of a fortification. [french batailler fortify]

    Battle royal n. 1 battle of many combatants; free fight. 2 heated argument.

    Battleship n. Heavily armoured warship.

    Batty adj. (-ier, -iest) slang crazy. [from *bat2]

    Batwing attrib. Adj. (esp. Of a sleeve) shaped like a bat’s wing.

    Bauble n. Showy worthless trinket or toy. [french ba(u)bel toy]

    Baulk (also balk) —v. 1 (often foll. By at) jib, hesitate. 2 a thwart, hinder. B disappoint. 3 miss, let slip (a chance etc.). —n. 1 hindrance; stumbling-block. 2 roughly-squared timber beam. [old english]

    Bauxite n. Claylike mineral, the chief source of aluminium. [french from les baux in s. France]

    Bawdy —adj. (-ier, -iest) humorously indecent. —n. Such talk or writing. [bawd brothel-keeper from french baudetrot]

    Bawdy-house n. Brothel.

    Bawl v. 1 speak or shout noisily. 2 weep loudly. bawl out colloq. Reprimand angrily. [imitative]

    Bay1 n. Broad curving inlet of the sea. [spanish bahia]

    Bay1 n. Broad curving inlet of the sea. [spanish bahia]

    Bay2 n. 1 laurel with deep green leaves. 2 (in pl.) Bay wreath, for a victor or poet. [latin baca berry]

    Bay3 n. 1 recess; alcove in a wall. 2 compartment (bomb bay). 3 area specially allocated (loading bay). [french baer gape]

    Bay4 —adj. (esp. Of a horse) dark reddish-brown. —n. Bay horse. [latin badius]

    Bay5 —v. Bark or howl loudly and plaintively. —n. Sound of this, esp. Of hounds in close pursuit. at bay cornered, unable to escape. Keep at bay hold off (a pursuer). [french bayer to bark]

    Bayberry n. (pl. -ies) fragrant n. American tree.

    Bay-leaf n. Leaf of the bay-tree, used for flavouring.

    Bayonet —n. 1 stabbing blade attachable to the muzzle of a rifle. 2 electrical fitting pushed into a socket and twisted. —v. (-t-) stab with bayonet. [french, perhaps from bayonne in sw france]

    Bay rum n. Perfume distilled orig. From bayberry leaves in rum.

    Bay window n. Window projecting outwards from a wall.

    Bazaar n. 1 oriental market. 2 fund-raising sale of goods, esp. For charity. [persian]

    Bazooka n. Anti-tank rocket-launcher. [origin unknown]

    Bb abbr. Double-black (pencil-lead).

    Bbc abbr. British broadcasting corporation.

    Bc abbr. British columbia.

    Bc abbr. Before christ.

    Bcg abbr. Bacillus calmette-guérin, an anti-tuberculosis vaccine.

    Bd abbr. Bachelor of divinity.

    Bdellium n. 1 tree yielding resin. 2 this used in perfumes. [latin from greek]

    Be symb. Beryllium.

    Be symb. Beryllium.

    Be v. (sing. Present am; are; is; past was; were; pres. Part. Being; past part. Been) 1 exist, live (i think, therefore i am; there is no god). 2 a occur; take place (dinner is at eight).

    Bevel —n. 1 slope from the horizontal or vertical in carpentry etc.; sloping surface or edge. 2 tool for marking angles. —v. (-ll-; us -l-) 1 reduce (a square edge) to a sloping edge. 2 slope at an angle. [french]

    Bevel gear n. Gear working another at an angle to it.

    Beverage n. Formal drink. [latin bibo drink]

    Bevy n. (pl. -ies) company (of quails, larks, women, etc.). [origin unknown]

    Bewail v. Lament; wail over.

    Beware v. (only in imper. Or infin.; often foll. By of) be cautious (of) (beware of the dog; beware the ides of march). [from *be, ware cautious]

    Bewilder v. Perplex, confuse. bewildering adj. Bewilderment n. [from *be-, obsolete wilder lose one’s way]

    Bewitch v. 1 enchant. 2 cast a spell on.

    Bewitch v. 1 enchant. 2 cast a spell on.

    Beyond —prep. 1 at or to the further side of. 2 outside the scope or understanding of (beyond repair; it is beyond me). 3 more than. —adv. 1 at or to the further side. 2 further on. —n. (prec. By the) the unknown after death. [old english: related to *by, *yon]

    Bezel n. 1 sloped edge of a chisel. 2 oblique faces of a cut gem. 3 groove holding a watch-glass or gem. [french]

    Bezique n. Card-game for two. [french]

    B.f. Abbr. 1 colloq. Bloody fool. 2 brought forward.

    Bhang n. Indian hemp used as a narcotic. [portuguese from sanskrit]

    B.h.p. Abbr. Brake horsepower.

    Bi symb. Bismuth.

    Bi-comb. Form forming nouns, adjectives, and verbs, meaning: 1 division into two (biplane; bisect). 2 a occurring twice in every one or once in every two (bi-weekly). B lasting for two (biennial). 3 chem. Substance having a double proportion of what is indicated by the simple word (bicarbonate). 4 bot. & zool. Having divided parts which are themselves similarly divided (bipinnate). [latin]

    Biannual adj. Occurring etc. Twice a year.

    Bias —n. 1 (often foll. By towards, against) predisposition or prejudice. 2 statistics distortion of a statistical result due to a neglected factor. 3 edge cut obliquely across the weave of a fabric. 4 sport a irregular shape given to a bowl. B oblique course this causes it to run. —v. (-s-or -ss-) 1 (esp. As biased adj.) Influence (usu. Unfairly); prejudice. 2 give a bias to. on the bias obliquely, diagonally. [french]

    Bias binding n. Strip of fabric cut obliquely and used to bind edges.

    Biathlon n. Athletic contest in skiing and shooting or cycling and running. [from *bi-, after *pentathlon]

    Bib n. 1 piece of cloth etc. Fastened round a child’s neck while eating. 2 top front part of an apron, dungarees, etc. [origin uncertain]

    Bib-cock n. Tap with a bent nozzle. [perhaps from *bib]

    Bible n. 1 a (prec. By the) christian scriptures of old and new testaments. B (bible) copy of these. 2 (bible) colloq. Authoritative book. biblical adj. [greek biblia books]

    Bible-bashing n. (also bible-thumping) slang aggressive fundamentalist preaching. bible-basher n. (also -thumper).

    Bibliography n. (pl. -ies) 1 list of books on a specific subject, by a particular author, etc.; book containing this. 2 the study of books, their authorship, editions, etc. bibliographer n. Bibliographical adj. [greek: related to *bible]

    Bibliophile n. Lover or collector of books.

    Bibulous adj. Tending to drink alcohol. [latin bibo drink]

    Bicameral adj. (of a legislative body) having two chambers. [from *bi-, latin camera chamber]

    Bicarb n. Colloq. = *bicarbonate 2. [abbreviation]

    Bicarbonate n. 1 any acid salt of carbonic acid. 2 (in full bicarbonate of soda) sodium bicarbonate used as an antacid or in baking-powder.

    Bicentenary n. (pl. -ies) 1 two-hundredth anniversary. 2 celebration of this.

    Bicentennial esp. Us —n. Bicentenary. —adj. Occurring every two hundred years.

    Biceps n. (pl. Same) muscle with two heads or attachments, esp. That bending the elbow. [latin caput head]

    Bicker v. Argue pettily. [origin unknown]

    Bicuspid —adj. Having two cusps. —n. The premolar tooth in humans. [from bi-, cusp]

    Bicycle —n. Pedal-driven two-wheeled vehicle. —v. (-ling) ride a bicycle. [greek kuklos wheel]

    Bid —v. (-dd-; past bid, archaic bade; past part. Bid, archaic bidden) 1 (past and past part. Bid) a (esp. At an auction) make an offer (of) (bid for the vase; bid £20). B offer a service for a stated price. 2 literary command; invite (bid the soldiers shoot; bade her start). 3 literary utter (a greeting or farewell) to (i bade him welcome). 4 (past and past part. Bid) cards state before play how many tricks one intends to make. —n. 1 act of bidding. 2 amount bid. 3 colloq. Attempt; effort (bid for power). bidder n. [old english]

    Biddable adj. Obedient.

    Bidding n. 1 command, request, or invitation. 2 bids at an auction or in a card-game.

    Biddy n. (pl. -ies) slang woman (esp. Old biddy). [a form of the name bridget]

    Bide v. (-ding) bide one’s time wait for a good opportunity. [old english]

    Bidet n. Low basin for sitting on to wash the genital area. [french, = pony]

    Biennial —adj. Lasting, or recurring every, two years. —n. Plant that grows from seed one year and flowers and dies the following. [latin annus year]

    Bier n. Movable frame on which a coffin or corpse rests. [old english]

    Biff slang —n. Sharp blow. —v. Strike (a person). [imitative]

    Bifid adj. Divided by a deep cleft into two parts. [latin findo cleave]

    Bifocal —adj. Having two focuses, esp. Of a lens with a part for distant and a part for near vision. —n. (in pl.) Bifocal spectacles.

    Bifurcate —v. (-ting) fork. —adj. Forked; branched. bifurcation n. [latin furca fork]

    Big —adj. (bigger, biggest) 1 a of considerable size, amount, intensity, etc. B of a large or the largest size (big toe). 2 important (my big day). 3 adult, elder (big sister). 4 colloq. A boastful (big words). B often iron. Generous (big of him). C ambitious (big ideas). 5 (usu. Foll. By with) advanced in pregnancy (big with child). —adv. Colloq. Impressively or grandly (think big). in a big way colloq. With great enthusiasm, display, etc. biggish adj. [origin unknown]

    Bigamy n. (pl. -ies) crime of marrying while still married to another person. bigamist n. Bigamous adj. [greek gamos marriage]

    Big apple n. Us slang new york city.

    Big bang theory n. Theory that the universe began with the explosion of dense matter.

    Big brother n. Supposedly benevolent watchful dictator.

    Big end n. (in a vehicle) end of the connecting-rod, encircling the crankpin.

    Big-head n. Colloq. Conceited person. big-headed adj.

    Big-hearted adj. Generous.

    Bight n. 1 bay, inlet, etc. 2 loop of rope. [old english]

    Big money n. Large amounts of money.

    Big noise n. (also big shot) colloq. = *bigwig.

    Bigot n. Obstinate believer who is intolerant of others. bigoted adj. Bigotry n. [french]

    Big stick n. Colloq. Display of force.

    Big time n. (prec. By the) slang success, esp. In show business. big-timer n.

    Big top n. Main tent in a circus.

    Big wheel n. Ferris wheel.

    Bigwig n. Colloq. Important person.

    Bijou —n. (pl. -x pronunc. Same) jewel; trinket. —attrib. Adj. (bijou) small and elegant. [french]

    Bike colloq. —n. Bicycle or motor cycle. —v. (-king) ride a bike. biker n. [abbreviation]

    Bikini n. (pl. -s) two-piece swimsuit for women. [bikini, pacific atoll]

    Bilateral adj. 1 of, on, or with two sides. 2 affecting or between two parties, countries, etc. bilaterally adv.

    Bilberry n. (pl. -ies) 1 hardy n. European shrub of heaths and mountains. 2 its small dark-blue edible berry. [scandinavian]

    Bile n. 1 bitter digestive fluid secreted by the liver. 2 bad temper; peevish anger. [latin bilis]

    Bilge n. 1 a the almost flat part of a ship’s bottom. B (in full bilge-water) filthy water that collects there. 2 slang nonsense. [probably var. Of *bulge]

    Bilharzia n. Chronic tropical disease caused by a parasitic flatworm. [bilharz, name of a physician]

    Biliary adj. Of the bile. [french: related to *bile]

    Bilingual —adj. 1 able to speak two languages. 2 spoken or written in two languages. —n. Bilingual person. bilingualism n. [latin lingua tongue]

    Bilious adj. 1 affected by a disorder of the bile. 2 bad-tempered. [latin: related to *bile]

    Bilk v. Slang 1 cheat. 2 elude. 3 avoid paying (a creditor or debt). [origin uncertain]

    Bill n. Slang = *old bill. [diminutive of william]

    Bill1 —n. 1 statement of charges for goods or services. 2 draft of a proposed law. 3 poster, placard. 4 programme of entertainment. 5 us banknote. —v. 1 send a statement of charges to. 2 put in the programme; announce. 3 (foll. By as) advertise as. [medieval latin bulla seal]

    Bill2 —n. 1 bird’s beak. 2 narrow promontory. —v. (of doves etc.) Stroke bills. bill and coo exchange caresses. [old english]

    Bill3 n. 1 hist. Weapon with a hooked blade. 2 = *billhook. [old english]

    Billabong n. (in australia) backwater of a river. [aboriginal]

    Billboard n. Large outdoor advertising hoarding.

    Billet1 —n. 1 a place where troops etc. Are lodged. B order to provide this. 2 colloq. Job. —v. (-t-) (usu. Foll. By on, in, at) quarter (soldiers etc.). [anglo-french diminutive of *bill1]

    Billet2 n. 1 thick piece of firewood. 2 small metal bar. [french diminutive of bille tree-trunk]

    Billet-doux n. (pl. Billets-doux) often joc. Love-letter. [french, = sweet note]

    Billhook n. Pruning tool with a hooked blade.

    Billhook n. Pruning tool with a hooked blade.

    Billiards n. 1 game played on a table, with three balls struck with cues. 2 (billiard) (in comb.) Used in billiards (billiard-ball). [french: related to *billet2]

    Billion adj. & n. (pl. Same or (in sense 3) -s) 1 a thousand million (109). 2 (now less often) a million million (1012). 3 (in pl.) Colloq. A very large number (billions of years). billionth adj. & n. [french]

    Billionaire n. Person who has over a billion pounds, dollars, etc. [after *millionaire]

    Bill of exchange n. Written order to pay a sum of money on a given date to the drawer or to a named payee.

    Bill of fare n. Menu.

    Bill of lading n. Detailed list of a ship’s cargo.

    Billow —n. 1 wave. 2 any large mass. —v. Rise, fill, or surge in billows. billowy adj. [old norse]

    Billposter n. (also billsticker) person who pastes up advertisements on hoardings.

    Billy1 n. (pl. -ies) (in full billycan) austral. Tin or enamel outdoor cooking-pot. [perhaps from aboriginal billa water]

    Billy2 n. (pl. -ies) (in full billy-goat) male goat. [from the name billy]

    Bimbo n. (pl. -s or -es) slang usu. Derog. Attractive but unintelligent young woman. [italian, = little child]

    Bimetallic adj. Using or made of two metals. [french]

    Bin n. Large receptacle for rubbish or storage. [old english]

    Binary —adj. 1 of two parts, dual. 2 of the binary system. —n. (pl. -ies) 1 something having two parts. 2 binary number. [latin bini two together]

    Binary star n. System of two stars orbiting each other.

    Binary system n. System using the digits 0 and 1 to code information, esp. In computing.

    Binaural adj. 1 of or used with both ears. 2 (of sound) recorded using two microphones and usu. Transmitted separately to the two ears. [from bi-, aural]

    Bind —v. (past and past part. Bound) 1 tie or fasten tightly. 2 restrain forcibly. 3 (cause to) cohere. 4 compel; impose a duty on. 5 a edge with braid etc. B fasten (the pages of a book) in a cover. 6 constipate. 7 ratify (a bargain, agreement, etc.). 8 (often foll. By up) bandage. —n. Colloq. Nuisance; restriction. bind over law order (a person) to do something, esp. Keep the peace. [old english]

    Binder n. 1 cover for loose papers etc. 2 substance that binds things together. 3 hist. Reaping-machine that binds grain into sheaves. 4 bookbinder.

    Bindery n. (pl. -ies) bookbinder’s workshop.

    Binding —n. Thing that binds, esp. The covers, glue, etc., of a book. —adj. Obligatory.

    Bindweed n. 1 convolvulus. 2 honeysuckle or other climber.

    Bine n. 1 twisting stem of a climbing plant, esp. The hop. 2 flexible shoot. [dial. Form of *bind]

    Bin end n. One of the last bottles from a bin of wine, usu. Sold at a reduced price.

    Binge slang —n. Bout of excessive eating, drinking, etc.; spree. —v. (-ging) indulge in a binge. [probably dial., = soak]

    Bingo n. Gambling game in which each player has a card with numbers to be

    Bingo n. Gambling game in which each player has a card with numbers to be marked off as they are called. [origin uncertain]

    Bin-liner n. Bag for lining a rubbish bin.

    Binman n. Colloq. Dustman.

    Binnacle n. Case for a ship’s compass. [latin habitaculum dwelling]

    Binocular adj. For both eyes. [latin bini two together, oculus eye]

    Binoculars n.pl. Instrument with a lens for each eye, for viewing distant objects.

    Binomial —n. Algebraic expression of the sum or the difference of two terms. —adj. Of two terms. [greek nomos part]

    Binomial theorem n. Formula for finding any power of a binomial.

    Bint n. Slang, usu. Offens. Girl or woman. [arabic]

    Bio-comb. Form 1 life (biography). 2 biological; of living things. [greek bios life]

    Biochemistry n. The study of the chemistry of living organisms. biochemical adj. Biochemist n.

    Biodegradable adj. Capable of being decomposed by bacteria or other living organisms.

    Bioengineering n. 1 the application of engineering techniques to biological processes. 2 the use of artificial tissues, organs, etc. To replace parts of the body, e.g. Artificial limbs, pacemakers, etc.

    Biogenesis n. 1 hypothesis that a living organism arises only from a similar living organism. 2 synthesis of substances by living organisms.

    Biography n. (pl. -ies) 1 account of a person’s life, written usu. By another. 2 these as a literary genre. biographer n. Biographical adj. [french: related to *bio-]

    Biological adj. Of biology or living organisms. biologically adv.

    Biological clock n. Innate mechanism controlling an organism’s rhythmic physiological activities.

    Biological warfare n. Use of toxins or micro-organisms against an enemy.

    Biology n. The study of living organisms. biologist n. [german: related to *bio-]

    Bionic adj. Having electronically operated body parts or the resulting superhuman powers. [from *bio-after *electronic]

    Bionics n.pl. (treated as sing.) The study of mechanical systems that function like living organisms.

    Biophysics n.pl. (treated as sing.) Science of the application of the laws of physics to biological phenomena. biophysical adj. Biophysicist n.

    Biopsy n. (pl. -ies) examination of severed tissue for diagnosis. [greek bios life, opsis sight]

    Biorhythm n. Any recurring biological cycle thought to affect one’s physical or mental state.

    Biosphere n. Regions of the earth’s crust and atmosphere occupied by living things. [german: related to *bio-]

    Biosynthesis n. Production of organic molecules by living organisms. biosynthetic adj.

    Biotechnology n. Branch of technology exploiting biological processes, esp. Using micro-organisms, in industry, medicine, etc.

    Biotin n. Vitamin of the b complex, found in egg-yolk, liver, and yeast. [greek bios life]

    Bipartisan adj. Of or involving two parties.

    Bipartite adj. 1 of two parts. 2 shared by or involving two parties. [latin bipartio divide in two]

    Biped —n. Two-footed animal. —adj. Two-footed. bipedal adj. [latin bipes -edis]

    Biplane n. Aeroplane with two sets of wings, one above the other.

    Bipolar adj. Having two poles or extremities.

    Birch —n. 1 tree with pale hard wood and thin peeling bark, bearing catkins. 2 bundle of birch twigs used for flogging. —v. Beat with a birch. [old english]

    Bird n. 1 two-legged feathered winged vertebrate, egg-laying and usu. Able to fly. 2 slang young woman. 3 slang person. 4 slang prison; prison sentence. a bird in the hand something secured or certain. The birds and the bees euphem. Sexual activity and reproduction. Birds of a feather similar people. For the birds colloq. Trivial, uninteresting. Get the bird slang be rejected, esp. By an audience. [old english]

    Bird-bath n. Basin with water for birds to bathe in.

    Birdbrain n. Colloq. Stupid or flighty person. birdbrained adj.

    Birdcage n. Cage for birds.

    Birdie n. 1 colloq. Little bird. 2 golf hole played in one under par.

    Birdlime n. Sticky substance spread to trap birds.

    Bird-nesting n. Hunting for birds’ eggs.

    Bird of paradise n. Bird, the male of which has brilliant plumage.

    Bird of passage n. 1 migrant. 2 habitual traveller.

    Bird of prey n. Bird which hunts animals for food.

    Birdseed n. Blend of seeds for caged birds.

    Bird’s-eye view n. Detached view from above.

    Birdsong n. Musical cry of birds.

    Bird table n. Platform on which food for birds is placed.

    Bird-watcher n. Person who observes wild birds as a hobby. bird-watching n.

    Biretta n. Square usu. Black cap worn by roman catholic priests. [latin birrus cape]

    Biro n. (pl. -s) propr. A kind of ball-point pen. [biró, name of its inventor]

    Birth n. 1 emergence of a baby or young from its mother’s body. 2 beginning (birth of civilization). 3 a ancestry (of noble birth). B high or noble birth; inherited position. give birth to 1 produce (young). 2 be the cause of. [old norse]

    Birth certificate n. Official document detailing a person’s birth.

    Birth control n. Contraception.

    Birthday n. 1 day on which one was born. 2 anniversary of this.

    Birthing pool n. Large bath for giving birth in.

    Birthmark n. Unusual coloured mark on one’s body at or from birth.

    Birthplace n. Place where one was born.

    Birth rate n. Number of live births per thousand of population per year.

    Birthright n. Inherited, esp. Property, rights.

    Birthstone n. Gem popularly associated with the month of one’s birth.

    Biscuit n. 1 flat thin unleavened cake, usu. Crisp and sweet. 2 fired unglazed pottery. 3 light brown colour. [latin bis twice, coquo cook]

    Bisect v. Divide into two (strictly, equal) parts. bisection n. Bisector n. [from *bi-, latin seco sect-cut]

    Bisexual —adj. 1 feeling or involving sexual attraction to people of both sexes. 2 hermaphrodite. —n. Bisexual person. bisexuality n.

    Bishop n. 1 senior clergyman in charge of a diocese. 2 mitre-shaped chess piece.

    Bishop n. 1 senior clergyman in charge of a diocese. 2 mitre-shaped chess piece. [greek episkopos overseer]

    Bishopric n. Office or diocese of a bishop.

    Bismuth n. 1 reddish-white metallic element used in alloys etc. 2 compound of it used medicinally. [german]

    Bison n. (pl. Same) wild humpbacked ox of europe or n. America. [latin from germanic]

    Bisque1 n. Rich soup, esp. Of lobster. [french]

    Bisque2 n. Advantage of one free point or stroke in certain games. [french]

    Bisque3 n. = *biscuit 2.

    Bister n. (brit. Bistre) brownish pigment from wood soot. [french]

    Bistre n. (us bister) brownish pigment from wood soot. [french]

    Bistro n. (pl. -s) small informal restaurant. [french]

    Bit1 n. 1 small piece or quantity. 2 (prec. By a) fair amount (sold quite a bit). 3 often colloq. Short or small time, distance, or amount (wait a bit; move up a bit;

    often colloq. Short or small time, distance, or amount (wait a bit; move up a bit; a bit tired; a bit of an idiot). bit by bit gradually. Do one’s bit colloq. Make a useful contribution. [old english]

    Bit2 past of *bite.

    Bit3 n. 1 metal mouthpiece of a bridle. 2 tool or piece for boring or drilling. 3 cutting or gripping part of a plane, pincers, etc. [old english]

    Bit4 n. Computing unit of information expressed as a choice between two possibilities. [binary digit]

    Bitch —n. 1 female dog or other canine animal. 2 slang offens. Spiteful woman. 3 slang unpleasant or difficult thing. —v. 1 speak scathingly or spitefully. 2 complain. [old english]

    Bitchy adj. (-ier, -iest) slang spiteful. bitchily adv. Bitchiness n.

    Bite —v. (-ting; past bit; past part. Bitten) 1 cut or puncture with the teeth. 2 (foll. By off, away, etc.) Detach thus. 3 (of an insect etc.) Sting. 4 (of a wheel etc.) Grip, penetrate. 5 accept bait or an inducement. 6 be harsh in effect, esp. Intentionally. 7 (in passive) a swindle. B (foll. By by, with, etc.) Be infected by (enthusiasm etc.). 8 colloq. Worry, perturb. 9 cause smarting pain (biting wind). 10 be sharp or effective (biting wit). 11 (foll. By at) snap at. —n. 1 act of biting. 2 wound etc. Made by biting. 3 a mouthful of food. B snack. 4 taking of bait by a fish. 5 pungency (esp. Of flavour). 6 incisiveness, sharpness. 7 position of the teeth when the jaws are closed. bite the dust slang die. Bite a person’s head off colloq. Respond angrily. Bite one’s lip repress emotion etc. [old english]

    Bit on the side n. Slang sexual relationship involving infidelity.

    Bit part n. Minor role.

    Bitter —adj. 1 having a sharp pungent taste; not sweet. 2 causing, showing, or feeling mental pain or resentment (bitter memories). 3 a harsh; virulent (bitter animosity). B piercingly cold. —n. 1 beer flavoured with hops and tasting slightly bitter. 2 (in pl.) Liquor flavoured esp. With wormwood, used in cocktails. to the bitter end to the very end in spite of difficulties. bitterly adv. Bitterness n. [old english]

    Bittern n. Wading bird of the heron family. [french butor from latin butio]

    Bitter-sweet —adj. Sweet with a bitter aftertaste. —n. 1 such sweetness. 2 = *woody nightshade.

    Bitty adj. (-ier, -iest) made up of bits; scrappy.

    Bitumen n. Tarlike mixture of hydrocarbons derived from petroleum. [latin]

    Bituminous adj. Of or like bitumen.

    Bituminous coal n. Coal burning with a smoky flame.

    Bivalve —n. Aquatic mollusc with a hinged double shell, e.g. The oyster and mussel. —adj. With such a shell.

    Bivouac —n. Temporary open encampment without tents. —v. (-ck-) make, or camp in, a bivouac. [french, probably from german]

    Biz n. Colloq. Business. [abbreviation]

    Bizarre adj. Strange; eccentric; grotesque. [french]

    Bk symb. Berkelium.

    Bl abbr. British library.

    Blab v. (-bb-) 1 talk foolishly or indiscreetly. 2 reveal (a secret etc.); confess. [imitative]

    Blabber —n. (also blabbermouth) person who blabs. —v. (often foll. By on) talk foolishly or inconsequentially.

    Black —adj. 1 reflecting no light, colourless from lack of light (like coal or soot); completely dark. 2 (black) of the human group with dark-coloured skin, esp. African. 3 (of the sky etc.) Heavily overcast. 4 angry; gloomy (black look,

    mood). 5 implying disgrace etc. (in his black books). 6 wicked, sinister, deadly. 7 portending trouble (things look black). 8 comic but sinister (black comedy). 9 (of tea or coffee) without milk. 10 (of industrial labour or its products) boycotted, esp. By a trade union, in a strike etc. —n. 1 black colour or pigment. 2 black clothes or material (dressed in black). 3 a (in a game) black piece, ball, etc. B player of this. 4 credit side of an account (in the black).

    Black —adj. 1 reflecting no light, colourless from lack of light (like coal or soot); completely dark. 2 (black) of the human group with dark-coloured skin, esp. African. 3 (of the sky etc.) Heavily overcast. 4 angry; gloomy (black look, mood). 5 implying disgrace etc. (in his black books). 6 wicked, sinister, deadly. 7 portending trouble (things look black). 8 comic but sinister (black comedy). 9 (of tea or coffee) without milk. 10 (of industrial labour or its products) boycotted, esp. By a trade union, in a strike etc. —n. 1 black colour or pigment. 2 black clothes or material (dressed in black). 3 a (in a game) black piece, ball, etc. B player of this. 4 credit side of an account (in the black). 5 (black) member of a dark-skinned race, esp. An african. —v. 1 make black (blacked his boots). 2 declare (goods etc.) ‘black’. black out 1 effect a blackout on. 2 undergo a blackout. [old english]

    Black and blue adj. Bruised.

    Black and white —n. Writing or printing (in black and white). —adj. 1 (of a film etc.) Monochrome. 2 consisting of extremes only, oversimplified.

    Black art n. = *black magic.

    Blackball v. Reject (a candidate) in a ballot.

    Black beetle n. The common cockroach.

    Black belt n. 1 highest grade of proficiency in judo, karate, etc. 2 holder of this grade, entitled to wear a black belt.

    Blackberry n. (pl. -ies) black fleshy edible fruit of the bramble.

    Blackbird n. Common thrush of which the male is black with an orange beak.

    Blackboard n. Board with a smooth dark surface for writing on with chalk.

    Black box n. Flight-recorder.

    Blackcap n. Small warbler, the male of which has a black-topped head.

    Black country n. (prec. By the) industrial area of the midlands.

    Blackcurrant n. 1 cultivated flowering shrub. 2 its small dark edible berry.

    Black death n. (prec. By the) 14th-c. Plague in europe.

    Black economy n. Unofficial and untaxed trade.

    Black economy n. Unofficial and untaxed trade.

    Blacken v. 1 make or become black or dark. 2 defame, slander.

    Black eye n. Bruised skin around the eye.

    Black flag n. Flag of piracy.

    Blackfly n. 1 dark coloured thrips or aphid. 2 these collectively.

    Black forest gateau n. Chocolate sponge with cherries and whipped cream.

    Black friar n. Dominican friar.

    Blackguard n. Villain, scoundrel. blackguardly adj. [originally = menial]

    Blackhead n. Black-topped pimple on the skin.

    Black hole n. Region of space from which matter and radiation cannot escape.

    Black ice n. Thin hard transparent ice on a road etc.

    Blacking n. Black polish, esp. For shoes.

    Blackjack n. = *pontoon1.

    Blacklead n. Graphite.

    Blackleg —n. Derog. Person refusing to join a strike etc. —v. (-gg-) act as a blackleg.

    Blacklist —n. List of people in disfavour etc. —v. Put on a blacklist.

    Black magic n. Magic supposed to invoke evil spirits.

    Blackmail —n. 1 a extortion of payment in return for silence. B payment so extorted. 2 use of threats or moral pressure. —v. 1 (try to) extort money etc. From by blackmail. 2 threaten, coerce. blackmailer n. [obsolete mail rent]

    Black maria n. Slang police van.

    Black mark n. Mark of discredit.

    Black market n. Illicit trade in rationed, prohibited, or scarce commodities. black

    Black market n. Illicit trade in rationed, prohibited, or scarce commodities. black marketeer n.

    Black mass n. Travesty of the mass, in worship of satan.

    Blackout n. 1 temporary loss of consciousness or memory. 2 loss of electric power, radio reception, etc. 3 compulsory darkness as a precaution against air raids. 4 temporary suppression of news. 5 sudden darkening of a theatre stage.

    Black pepper n. Pepper made by grinding the whole dried pepper berry including the outer husk.

    Black power n. Movement for black rights and political power.

    Black pudding n. Sausage of pork, dried pig’s blood, suet, etc.

    Black rod n. Principal usher of the house of lords etc.

    Black sheep n. Colloq. Member of a family, group, etc. Regarded as a disgrace or failure.

    Blackshirt n. Hist.member of a fascist organization.

    Blacksmith n. Smith who works in iron.

    Black spot n. 1 place of danger or trouble. 2 plant disease producing black spots.

    Black tea n. Tea that is fully fermented before drying.

    Blackthorn n. Thorny shrub bearing white blossom and sloes.

    Black tie n. 1 black bow-tie worn with a dinner jacket. 2 colloq. Man’s formal evening dress.

    Black velvet n. Mixture of stout and champagne.

    Black watch n. (prec. By the) royal highland regiment.

    Black widow n. Venomous spider of which the female devours the male.

    Bladder n. 1 a sac in some animals, esp. That holding urine. B this adapted for various uses. 2 inflated blister in seaweed etc. [old english]

    Bladderwrack n. Brown seaweed with air bladders.

    Blade n. 1 cutting part of a knife etc. 2 flattened part of an oar, propeller, etc. 3 a flat narrow leaf of grass etc. B broad thin part of a leaf. 4 flat bone, e.g. In the shoulder. [old english]

    Blame —v. (-ming) 1 assign fault or responsibility to. 2 (foll. By on) fix responsibility for (an error etc.) On (blamed it on his brother). —n. 1 responsibility for an error etc. 2 blaming or attributing of responsibility (got all the blame). be to blame be responsible; deserve censure. blameable adj. Blameless adj. Blameworthy adj. [french: related to *blaspheme]

    Blanch v. 1 make or become white or pale. 2 a peel (almonds etc.) By scalding. B immerse (vegetables etc.) Briefly in boiling water. 3 whiten (a plant) by depriving it of light. [french: related to *blank]

    Blancmange n. Sweet opaque jelly of flavoured cornflour and milk. [french, = white food]

    Bland adj. 1 a mild, not irritating. B tasteless; insipid. 2 gentle in manner; suave. blandly adv. Blandness n. [latin blandus smooth]

    Blandish v. Flatter; coax. blandishment n. (usu. In pl.). [latin: related to *bland]

    Blank —adj. 1 a (of paper) not written or printed on. B (of a document) with spaces left for a signature or details. 2 a empty (blank space). B unrelieved (blank wall). 3 a without interest, result, or expression (blank face). B having (temporarily) no knowledge etc. (mind went blank). 4 complete (a blank refusal; blank despair). —n. 1 a unfilled space, esp. In a document. B document having blank spaces. 2 (in full blank cartridge) cartridge containing gunpowder but no bullet. 3 dash written instead of a word or letter. —v. (usu. Foll. By off, out) screen, obscure. draw a blank get no response; fail. blankly adv. Blankness n. [french blanc white, from germanic]

    Blank cheque n. 1 cheque left for the payee to fill in. 2 colloq. Unlimited freedom of action.

    Blanket —n. 1 large esp. Woollen sheet used as a bed-covering etc. 2 thick covering mass or layer. —attrib. Adj. Covering everything; inclusive. —v. (-t-) 1 cover. 2 stifle, suppress. [french: related to *blank]

    Blanket bath n. Body wash given to a bedridden patient.

    Blanket stitch n. Stitch used to finish the edges of a blanket etc.

    Blank verse n. Unrhymed verse, esp. Iambic pentameters.

    Blare —v. (-ring) 1 sound or utter loudly. 2 make the sound of a trumpet. —n. Blaring sound. [low german or dutch, imitative]

    Blarney —n. Cajoling talk; flattery. —v. (-eys, -eyed) flatter, cajole. [blarney, castle near cork]

    Blasé adj. Bored or indifferent through over-familiarity. [french]

    Blaspheme v. (-ming) 1 use religious names irreverently; treat a religious or sacred subject irreverently. 2 talk irreverently about; use blasphemy against. [greek blasphemeo]

    [greek blasphemeo]

    Blasphemy n. (pl. -ies) 1 irreverent talk or treatment of a religious or sacred thing. 2 instance of this. blasphemous adj.

    Blast —n. 1 strong gust of air. 2 a explosion. B destructive wave of air from this. 3 loud note from a wind instrument, car horn, etc. 4 colloq. Severe reprimand. — v. 1 blow up with explosives. 2 wither, blight (blasted oak; blasted her hopes). 3 (cause to) make a loud noise. —int. Expressing annoyance. at full blast colloq. At maximum volume, speed, etc. Blast off take off from a launching site. [old english]

    Blasted colloq. —attrib. Adj. Damned; annoying. —adv. Damned; extremely.

    Blast-furnace n. Smelting furnace into which hot air is driven.

    Blast-off n. Launching of a rocket etc.

    Blatant adj. 1 flagrant, unashamed. 2 loudly obtrusive. blatantly adv. [coined by spenser]

    Blather (also blether) —n. Foolish talk. —v. Talk foolishly. [old norse]

    Blaze1 —n. 1 bright flame or fire. 2 violent outburst (of passion etc.). 3 brilliant display (blaze of scarlet, of glory). —v. (-zing) 1 burn or shine brightly or fiercely. 2 be consumed with anger, excitement, etc. blaze away (often foll. By at) 1 shoot continuously. 2 work vigorously. [old english, = torch]

    Blaze2 —n. 1 white mark on an animal’s face. 2 mark cut on a tree, esp. To show a route. —v. (-zing) mark (a tree or a path) with blazes. blaze a trail show the way for others. [origin uncertain]

    Blazer n. Jacket without matching trousers, esp. Lightweight and often part of a uniform. [from *blaze1]

    Blazon —v. 1 proclaim (esp. Blazon abroad). 2 heraldry describe or paint (arms). —n. Heraldry shield or coat of arms. blazonment n. Blazonry n. [french, originally = shield]

    Bleach —v. Whiten in sunlight or by a chemical process. —n. Bleaching substance or process. [old english]

    Bleak adj. 1 exposed, windswept. 2 dreary, grim. [old norse]

    Bleary adj. (-ier, -iest) 1 dim; blurred. 2 indistinct. [low german]

    Bleary-eyed adj. Having dim sight.

    Bleat —v. 1 (of a sheep, goat, or calf) make a wavering cry. 2 (often foll. By out) speak or say plaintively. —n. Bleating cry. [old english]

    Bleed —v. (past and past part. Bled) 1 emit blood. 2 draw blood from surgically.

    Bleed —v. (past and past part. Bled) 1 emit blood. 2 draw blood from surgically. 3 colloq. Extort money from. 4 (often foll. By for) suffer wounds or violent death. 5 a emit sap. B (of dye) come out in water. 6 empty (a system) of excess air or fluid. —n. Act of bleeding. one’s heart bleeds usu. Iron. One is very sorrowful. [old english]

    Bleeder n. Coarse slang unpleasant or contemptible person.

    Bleeding adj. & adv. Coarse slang expressing annoyance or antipathy.

    Bleep —n. Intermittent high-pitched electronic sound. —v. 1 make a bleep. 2 summon with a bleeper. [imitative]

    Bleeper n. Small electronic device bleeping to contact the carrier.

    Blemish —n. Flaw, defect, or stain. —v. Spoil, mark, or stain. [french]

    Blench v. Flinch, quail. [old english]

    Blend —v. 1 mix together as required. 2 become one. 3 (often foll. By with, in) mingle; mix thoroughly. 4 (esp. Of colours) merge imperceptibly; harmonize. — n. Mixture. [old norse]

    Blender n. Machine for liquidizing, chopping, or puréeing food.

    Blenny n. (pl. -ies) small spiny-finned scaleless marine fish. [greek blennos mucus]

    Bless v. (past and past part. Blessed, poet. Blest) 1 ask god to look favourably on, esp. By making the sign of the cross over. 2 consecrate (food etc.). 3 glorify (god). 4 attribute one’s good luck to (stars etc.); thank. 5 (usu. In passive) make happy or successful (blessed with children). bless me (or my soul) exclamation of surprise etc. Bless you! Exclamation of endearment, gratitude, etc., or to a person who has just sneezed. [old english]

    Blessed adj. (also poet. Blest) 1 holy. 2 euphem. Cursed (blessed nuisance!). 3 rc ch. Beatified. blessedness n.

    Blessing n. 1 invocation of (esp. Divine) favour. 2 grace said at a meal. 3 benefit.

    Blether var. Of *blather.

    Blew past of *blow1.

    Blether var. Of *blather.

    Blew past of *blow1.

    Blight —n. 1 plant disease caused by insects etc. 2 such an insect etc. 3 harmful or destructive force. 4 ugly urban area. —v. 1 affect with blight. 2 harm, destroy.

    3 spoil. [origin unknown]

    Blighter n. Colloq. Contemptible or annoying person.

    Blighty n. Mil. Slang england; home. [hindustani, = foreign]

    Blimey int. Coarse slang expression of surprise, contempt, etc. [(god) blind me!]

    Blimp n. 1 (also (colonel) blimp) reactionary person. 2 small non-rigid airship. 3 soundproof cover for a cine-camera. [origin uncertain]

    Blind —adj. 1 lacking the power of sight. 2 a without adequate foresight, discernment, or information (blind effort). B (often foll. By to) unwilling or unable to appreciate a factor etc. (blind to argument). 3 not governed by purpose or reason (blind forces). 4 reckless (blind hitting). 5 a concealed (blind ditch). B closed at one end. 6 (of flying) using instruments only. 7 cookery (of a flan case etc.) Baked without a filling. —v. 1 deprive of sight. 2 rob of judgement; deceive; overawe. 3 slang go recklessly. —n. 1 screen for a window; awning. 2 thing used to hide the truth. 3 obstruction to sight or light. —adv. Blindly. blindly adv. Blindness n. [old english]

    Blind alley n. 1 alley closed at one end. 2 futile course.

    Blind date n. Colloq. Date between two people who have not previously met.

    Blind drunk adj. Colloq. Extremely drunk.

    Blind drunk adj. Colloq. Extremely drunk.

    Blindfold —v. Cover the eyes of (a person) with a tied cloth etc. —n. Cloth etc. So used. —adj. & adv. 1 with eyes covered. 2 without due care. [originally blindfelled = struck blind]

    Blind man’s buff n. Game in which a blindfold player tries to catch others.

    Blind spot n. 1 point on the retina insensitive to light. 2 area where vision or understanding is lacking.

    Blindworm n. = *slow-worm.

    Blink —v. 1 shut and open the eyes quickly. 2 (often foll. By back) prevent (tears) by blinking. 3 shine unsteadily, flicker. —n. 1 act of blinking. 2 momentary gleam or glimpse. blink at 1 look at while blinking. 2 ignore, shirk. On the blink slang not working properly; out of order. [dutch, var. Of *blench]

    Blinker —n. 1 (usu. In pl.) Each of two screens on a bridle preventing lateral vision. 2 device that blinks. —v. 1 obscure with blinkers. 2 (as blinkered adj.) Having narrow and prejudiced views.

    Blinking adj. & adv. Slang expressing annoyance etc. (it’s blinking stupid).

    Blip —n. 1 minor deviation or error. 2 quick popping sound. 3 small image on a radar screen. —v. (-pp-) make a blip. [imitative]

    radar screen. —v. (-pp-) make a blip. [imitative]

    Bliss n. 1 perfect joy. 2 being in heaven. blissful adj. Blissfully adv. [old english]

    Blister —n. 1 small bubble on the skin filled with watery fluid and caused by heat or friction. 2 similar swelling on plastic, wood, etc. —v. 1 come up in blisters. 2 raise a blister on. 3 attack sharply. [origin uncertain]

    Blithe adj. 1 cheerful, happy. 2 careless, casual. blithely adv. [old english]

    Blithering attrib. Adj. Colloq. Hopeless; contemptible (esp. In blithering idiot). [blither, var. Of *blather]

    Blitt. Abbr. Bachelor of letters. [latin baccalaureus litterarum]

    Blitz colloq. —n. 1 a intensive or sudden (esp. Aerial) attack. B intensive period of work etc. (must have a blitz on this room). 2 (the blitz) german air raids on london in 1940. —v. Inflict a blitz on. [abbreviation of *blitzkrieg]

    Blitzkrieg n. Intense military campaign intended to bring about a swift victory. [german, = lightning war]

    Blizzard n. Severe snowstorm. [origin unknown]

    Bloat v. 1 inflate, swell. 2 (as bloated adj.) Inflated with pride, wealth, or food. 3 cure (a herring) by salting and smoking lightly. [old norse]

    Bloater n. Bloated herring.

    Blob n. Small drop or spot. [imitative]

    Bloc n. Group of governments etc. Sharing a common purpose. [french: related to *block]

    Block —n. 1 solid piece of hard material, esp. Stone or wood. 2 this as a base for chopping etc., as a stand, or for mounting a horse from. 3 a large building, esp. When subdivided. B group of buildings between streets. 4 obstruction. 5 two or more pulleys mounted in a case. 6 piece of wood or metal engraved for printing. 7 slang head. 8 (often attrib.) Number of things as a unit, e.g. Shares, theatre seats (block booking). 9 sheets of paper glued along one edge. —v. 1 a (often foll. By up) obstruct. B impede. 2 restrict the use of. 3 cricket stop (a ball) with a bat defensively. block in 1 sketch roughly; plan. 2 confine. Block out 1 shut out (light, noise, a memory, view, etc.). 2 sketch roughly; plan. Block up confine; enclose. [low german or dutch]

    Blockade —n. Surrounding or blocking of a place by an enemy to prevent entry and exit. —v. (-ding) subject to a blockade.

    Blockage n. Obstruction.

    Block and tackle n. System of pulleys and ropes, esp. For lifting.

    Blockbuster n. Slang 1 thing of great power, esp. A very successful film, book, etc. 2 highly destructive bomb.

    Block capitals n.pl. (also block letters) letters printed without serifs, or written with each letter separate and in capitals.

    Blockhead n. Stupid person.

    Blockhouse n. 1 reinforced concrete shelter. 2 hist. Small fort of timber.

    Block vote n. Vote proportional in power to the number of people a delegate represents.

    Bloke n. Slang man, fellow. [shelta]

    Blond (of a woman usu. Blonde) —adj. (of a person, hair, or complexion) light-coloured, fair. —n. Blond person. [latin blondus yellow]

    Blood —n. 1 usu. Red fluid circulating in the arteries and veins of animals. 2 bloodshed, esp. Killing. 3 passion, temperament. 4 race, descent, parentage (of the same blood). 5 relationship; relations (blood is thicker than water). 6 dandy. —v. 1 give (a hound) a first taste of blood. 2 initiate (a person). in one’s blood inherent in one’s character. [old english]

    Blood bank n. Store of blood for transfusion.

    Blood bath n. Massacre.

    Blood count n. Number of corpuscles in a specific amount of blood.

    Blood-curdling adj. Horrifying.

    Blood donor n. Person giving blood for transfusion.

    Blood group n. Any of the types of human blood.

    Blood-heat n. Normal human temperature, about 37 °c or 98.4 °f.

    Bloodhound n. Large keen-scented dog used in tracking.

    Bloodless adj. 1 without blood or bloodshed. 2 unemotional. 3 pale. 4 feeble.

    Blood-letting n. Surgical removal of blood.

    Blood-money n. 1 money paid as compensation for a death. 2 money paid to a killer.

    killer.

    Blood orange n. Red-fleshed orange.

    Blood-poisoning n. Diseased condition caused by micro-organisms in the blood.

    Blood pressure n. Pressure of the blood in the arteries etc., measured for diagnosis.

    Blood relation n. (also blood relative) relative by birth.

    Bloodshed n. Killing.

    Bloodshot adj. (of an eyeball) inflamed.

    Blood sport n. Sport involving the killing or wounding of animals.

    Bloodstain n. Stain caused by blood. bloodstained adj.

    Bloodstream n. Blood in circulation.

    Bloodsucker n. 1 leech. 2 extortioner. bloodsucking adj.

    Blood sugar n. Amount of glucose in the blood.

    Blood test n. Examination of blood, esp. For diagnosis.

    Bloodthirsty adj. (-ier, -iest) eager for bloodshed.

    Blood-vessel n. Vein, artery, or capillary carrying blood.

    Bloody —adj. (-ier, -iest) 1 of, like, running with, or smeared with blood. 2 a involving bloodshed. B bloodthirsty, cruel. 3 coarse slang expressing annoyance or antipathy, or as an intensifier (bloody fool; a bloody sight better). 4 red. — adv. Coarse slang as an intensifier (bloody awful). —v. (-ies, -ied) stain with blood.

    Bloody mary n. Mixture of vodka and tomato juice.

    Bloody-minded adj. Colloq. Deliberately uncooperative.

    Bloom —n. 1 a flower, esp. Cultivated. B state of flowering (in bloom). 2 one’s prime (in full bloom). 3 a healthy glow of the complexion. B fine powder on fresh fruit and leaves. —v. 1 bear flowers; be in flower. 2 be in one’s prime; flourish. [old norse]

    Bloomer1 n. 1 slang blunder. 2 plant that blooms in a specified way.

    Bloomer2 n. Long loaf with diagonal marks. [origin uncertain]

    Bloomers n.pl. 1 women’s long loose knickers. 2 hist. Women’s loose knee-length trousers. [mrs a. Bloomer, name of the originator]

    Blooming —adj. 1 flourishing; healthy. 2 slang an intensifier (blooming miracle). —adv. Slang an intensifier (blooming difficult).

    Blossom —n. 1 flower or mass of flowers, esp. Of a fruit-tree. 2 promising stage (blossom of youth). —v. 1 open into flower. 2 mature, thrive. [old english]

    Blot —n. 1 spot or stain of ink etc. 2 disgraceful act or quality. 3 blemish. —v. (-tt-) 1 make a blot on, stain. 2 dry with blotting-paper. blot one’s copybook damage one’s reputation. Blot out 1 obliterate. 2 obscure (a view, sound, etc.). [probably scandinavian]

    Blotch —n. 1 discoloured or inflamed patch on the skin. 2 irregular patch of colour. —v. Cover with blotches. blotchy adj. (-ier, -iest). [obsolete plotch, *blot]

    Blotter n. Pad of blotting-paper.

    Blotting-paper n. Absorbent paper for drying wet ink.

    Blotto adj. Slang very drunk. [origin uncertain]

    Blouse —n. 1 woman’s garment like a shirt. 2 upper part of a military uniform. —v. (-sing) make (a bodice etc.) Full like a blouse. [french]

    Blouson n. Short blouse-shaped jacket. [french]

    Blow1 —v. (past blew; past part. Blown) 1 direct a current of air (at) esp. From the mouth. 2 drive or be driven by blowing (blew the door open). 3 (esp. Of the wind) move rapidly. 4 expel by breathing (blew smoke). 5 sound or be sounded by blowing. 6 (past part. Blowed) slang (esp. In imper.) Curse, confound (i’m blowed if i know; blow it!). 7 clear (the nose) by blowing. 8 puff, pant. 9 slang depart suddenly (from). 10 shatter etc. By an explosion. 11 make or shape (glass or a bubble) by blowing. 12 a melt from overloading (the fuse has blown). B break or burst suddenly. 13 (of a whale) eject air and water. 14 break into with explosives. 15 slang a squander (blew £20). B bungle (an opportunity etc.). C reveal (a secret etc.). —n. 1 act of blowing. 2 a gust of wind or air. B exposure to fresh air. be blowed if one will colloq. Be unwilling to. Blow a gasket slang lose one’s temper. Blow hot and cold colloq. Vacillate. Blow in 1 break inwards by an explosion. 2 colloq. Arrive unexpectedly. Blow a person’s mind slang cause to have hallucinations etc.; astound. Blow off 1 escape or allow (steam etc.) To escape forcibly. 2 slang break wind noisily. Blow out 1 extinguish by blowing. 2 send outwards by an explosion. Blow over (of trouble etc.) Fade away. Blow one’s top colloq. Explode in rage. Blow up 1 explode. 2 colloq. Rebuke strongly. 3 inflate (a tyre etc.). 4 colloq. A enlarge (a photograph). B exaggerate. 5 colloq. Arise, happen. 6 colloq. Lose one’s temper. [old english]

    Blow2 n. 1 hard stroke with a hand or weapon. 2 sudden shock or misfortune. [origin unknown]

    Blow-by-blow attrib. Adj. (of a narrative etc.) Detailed.

    Blow-by-blow attrib. Adj. (of a narrative etc.) Detailed.

    Blow-dry —v. Arrange (the hair) while drying it. —n. Act of doing this.

    Blower n. 1 device for blowing. 2 colloq. Telephone.

    Blowfly n. Bluebottle.

    Blow-hole n. 1 nostril of a whale. 2 hole (esp. In ice) for breathing or fishing through. 3 vent for air, smoke, etc.

    Blow-job n. Coarse slang instance of fellatio or cunnilingus.

    Blowlamp n. Device with a very hot flame for burning off paint, plumbing, etc.

    Blown past part. Of *blow1.

    Blow-out n. Colloq. 1 burst tyre. 2 melted fuse. 3 huge meal.

    Blowpipe n. 1 tube for blowing air through, esp. To intensify a flame or to blow glass. 2 tube for propelling poisoned darts etc. By blowing.

    Blowtorch n. Us = *blowlamp.

    Blow-up n. 1 colloq. Enlargement (of a photograph etc.). 2 explosion.

    Blowy adj. (-ier, -iest) windy.

    Blowzy adj. (-ier, -iest) 1 coarse-looking; red-faced. 2 slovenly. [obsolete blowze beggar’s wench]

    Blub v. (-bb-) slang sob. [shortening of *blubber]

    Blubber —n. Whale fat. —v. 1 sob loudly. 2 sob out (words). —adj. Swollen, thick. [probably imitative]

    Bludgeon —n. Heavy club. —v. 1 beat with this. 2 coerce. [origin unknown]

    Blue —adj. (bluer, bluest) 1 having the colour of a clear sky. 2 sad, depressed. 3 pornographic (a blue film). 4 politically conservative. —n. 1 blue colour or pigment. 2 blue clothes or material (dressed in blue). 3 person who represents a university in a sport, esp. Oxford or cambridge. 4 conservative party supporter. —v. (blues, blued, bluing or blueing) 1 make blue. 2 slang squander. once in a blue moon very rarely. Out of the blue unexpectedly. [french from germanic]

    Blue baby n. Baby with a blue complexion due to a congenital heart defect.

    Bluebell n. Woodland plant with bell-shaped blue flowers.

    Bluebell n. Woodland plant with bell-shaped blue flowers.

    Blueberry n. (pl. -ies) small blue-black edible fruit of various plants.

    Blue blood n. Noble birth.

    Blue book n. Report issued by parliament or the privy council.

    Bluebottle n. Large buzzing fly; blowfly.

    Blue cheese n. Cheese with veins of blue mould.

    Blue-collar attrib. Adj. (of a worker or work) manual; industrial.

    Blue-eyed boy n. Colloq. Favourite.

    Blue funk n. Colloq. Terror or panic.

    Bluegrass n. A kind of instrumental country-and-western music.

    Blue-pencil v. Censor or cut (a manuscript, film, etc.).

    Blue peter n. Blue flag with a white square flown by a ship about to leave port.

    Blueprint n. 1 photographic print of plans in white on a blue background. 2 detailed plan.

    Blue rinse n. Bluish dye for grey hair.

    Blues n.pl. 1 (prec. By the) bout of depression. 2 a (prec. By the; often treated as sing.) Melancholic music of black american origin, usu. In a twelve-bar sequence. B (pl. Same) (as sing.) Piece of such music (played a blues).

    Bluestocking n. Usu. Derog. Intellectual or literary woman. [18th-c. Blue stocking society]

    Blue tit n. Common tit with a blue crest.

    Blue whale n. Rorqual, the largest known living mammal.

    Bluff1 —v. Pretend strength, confidence, etc. —n. Act of bluffing. call a person’s bluff challenge a person to prove a claim. [dutch bluffen brag]

    Bluff2 —adj. 1 blunt, frank, hearty. 2 vertical or steep and broad in front. —n. Steep cliff or headland. [origin unknown]

    Bluish adj. Fairly blue.

    Blunder —n. Serious or foolish mistake. —v. 1 make a blunder. 2 move clumsily; stumble. [probably scandinavian]

    Blunderbuss n. Hist. Short large-bored gun. [dutch donderbus thunder gun]

    Blunt —adj. 1 not sharp or pointed. 2 direct, outspoken. —v. Make blunt or less sharp. bluntly adv. (in sense 2 of adj.). Bluntness n. [probably scandinavian]

    Blur —v. (-rr-) make or become unclear or less distinct; smear. —n. Blurred object, sound, memory, etc. [perhaps related to *bleary]

    Blurb n. Promotional description, esp. Of a book. [coined by g. Burgess 1907]

    Blurt v. (usu. Foll. By out) utter abruptly, thoughtlessly, or tactlessly. [imitative]

    Blush —v. 1 a become pink in the face from embarrassment or shame. B (of the face) redden thus. 2 feel embarrassed or ashamed. 3 redden. —n. 1 act of blushing. 2 pink tinge. [old english]

    Blusher n. Rouge.

    Bluster —v. 1 behave pompously or boisterously. 2 (of the wind etc.) Blow fiercely. —n. Bombastic talk; empty threats. blustery adj. [imitative]

    Bm abbr. 1 british museum. 2 bachelor of medicine.

    Bma abbr. British medical association.

    B.mus. Abbr. Bachelor of music.

    Bmx n. 1 organized bicycle-racing on a dirt-track. 2 bicycle used for this. [abbreviation of bicycle moto-cross]

    Bo abbr. Colloq. Body odour.

    Boa n. 1 large snake which kills by crushing and suffocating. 2 long stole of feathers or fur. [latin]

    Boa constrictor n. Species of boa.

    Boar n. 1 male wild pig. 2 uncastrated male pig. [old english]

    Board —n. 1 a flat thin piece of sawn timber, usu. Long and narrow. B material resembling this, of compressed fibres. C thin slab of wood etc. D thick stiff card

    used in bookbinding. 2 provision of regular meals, usu. With accommodation, for payment. 3 directors of a company; official administrative body. 4 (in pl.) Stage of a theatre. 5 side of a ship. —v. 1 go on board (a ship, train, etc.). 2 receive, or provide with, meals and usu. Lodging. 3 (usu. Foll. By up) cover with boards; seal or close. go by the board be neglected or discarded. On board on or on to a ship, aircraft, oil rig, etc. Take on board consider, take notice of; accept. [old english]

    Boarder n. 1 person who boards, esp. At a boarding-school. 2 person who boards a ship, esp. An enemy.

    Board-game n. Game played on a board.

    Boarding-house n. Unlicensed establishment providing board and lodging, esp. To holiday-makers.

    Boarding-school n. School in which pupils live in term-time.

    Boardroom n. Room in which a board of directors etc. Meets regularly.

    Boast —v. 1 declare one’s virtues, wealth, etc. With excessive pride. 2 own or have with pride (hotel boasts a ballroom). —n. 1 act of boasting. 2 thing one is proud of. [anglo-french]

    Boastful adj. Given to boasting. boastfully adv.

    Boat —n. 1 small vessel propelled on water by an engine, oars, or sails. 2 any ship. 3 long low jug for sauce etc. —v. Go in a boat, esp. For pleasure. in the same boat having the same problems. [old english]

    Boater n. Flat-topped straw hat with a brim.

    Boat-hook n. Long hooked pole for moving boats.

    Boat-house n. Waterside shed for housing boats.

    Boating n. Rowing or sailing as recreation.

    Boatman n. Person who hires out boats or provides transport by boat.

    Boat people n.pl. Refugees travelling by sea.

    Boatswain n. (also bosun, bo’sun) ship’s officer in charge of equipment and crew.

    Boat-train n. Train scheduled to meet or go on a boat.

    Bob1 —v. (-bb-) 1 move quickly up and down. 2 (usu. Foll. By back, up) bounce or emerge buoyantly or suddenly. 3 cut (the hair) in a bob. 4 curtsy. —n. 1

    jerking or bouncing movement, esp. Upward. 2 hairstyle with the hair hanging evenly above the shoulders. 3 weight on a pendulum etc. 4 horse’s docked tail. 5 curtsy. [imitative]

    Bob2 n. (pl. Same) hist. Slang shilling (now = 5 pence). [origin unknown]

    Bob3 n. bob’s your uncle slang expression of completion or success. [pet form of robert]

    Bobbin n. Spool or reel for thread etc. [french]

    Bobble n. Small woolly ball on a hat etc. [diminutive of *bob1]

    Bobby n. (pl. -ies) colloq. Police officer. [sir robert peel, 19th-c. Statesman]

    Bob-sled n. Us = *bob-sleigh.

    Bob-sleigh —n. Mechanically-steered and -braked racing sledge. —v. Race in a bob-sleigh.

    Bobtail n. 1 docked tail. 2 horse or dog with this.

    Boche n. Slang derog. German, esp. A soldier. [french]

    Bod n. Colloq. Person. [shortening of *body]

    Bode v. (-ding) be a sign of, portend. bode well (or ill) be a good (or bad) sign. [old english]

    Bodega n. Cellar or shop selling wine. [spanish]

    Bodge var. Of *botch.

    Bodice n. 1 part of a woman’s dress above the waist. 2 woman’s vest-like undergarment. [originally pair of bodies]

    Bodily —adj. Of the body. —adv. 1 as a whole body (threw them bodily). 2 in the flesh, in person.

    Bodkin n. Blunt thick needle for drawing tape etc. Through a hem. [origin uncertain]

    Body n. (pl. -ies) 1 whole physical structure, including the bones, flesh, and organs, of a person or an animal, whether dead or alive. 2 = *trunk 2. 3 main or central part; bulk or majority (body of opinion). 4 a group regarded as a unit. B (usu. Foll. By of) collection (body of facts). 5 quantity (body of water). 6 piece of matter (heavenly body). 7 colloq. Person. 8 full or substantial quality of flavour, tone, etc. in a body all together. [old english]

    Body-blow n. Severe setback.

    Body-blow n. Severe setback.

    Body-building n. Exercises to enlarge and strengthen the muscles.

    Bodyguard n. Person or group escorting and protecting another.

    Body language n. Communication through gestures and poses.

    Body odour n. Smell of the human body, esp. When unpleasant.

    Body politic n. Nation or state as a corporate body.

    Body shop n. Workshop where bodywork is repaired.

    Body stocking n. Woman’s undergarment covering the torso.

    Bodysuit n. Close-fitting all-in-one garment for women, worn esp. For sport.

    Bodywork n. Outer shell of a vehicle.

    Boer —n. South african of dutch descent. —adj. Of the boers. [dutch, = farmer]

    Boffin n. Colloq. Research scientist. [origin unknown]

    Bog —n. 1 a wet spongy ground. B stretch of this. 2 slang lavatory. —v. (-gg-) (foll. By down; usu. In passive) impede (bogged down by snow). boggy adj. (-ier, -iest). [irish or gaelic bogach]

    Bogey1 n. (pl. -eys) golf 1 score of one stroke more than par at any hole. 2 (formerly) par. [perhaps from bogey, as an imaginary player]

    Bogey2 n. (also bogy) (pl. -eys or -ies) 1 evil or mischievous spirit; devil. 2 awkward thing. 3 slang piece of dried nasal mucus. [originally (old) bogey the devil]

    Bogeyman n. (also bogyman) frightening person etc.

    Boggle v. (-ling) colloq. Be startled or baffled (esp. The mind boggles). [probably dial. Boggle *bogey2]

    Bogie n. Wheeled undercarriage below a locomotive etc. [origin unknown]

    Bogus adj. Sham, spurious. [origin unknown]

    Bogy var. Of *bogey2.

    Bogyman var. Of *bogeyman.

    Bohemian —n. 1 native of bohemia, a czech. 2 (also bohemian) socially unconventional person, esp. An artist or writer. —adj. 1 of bohemia or its people. 2 (also bohemian) socially unconventional. bohemianism n. [bohemia, part of czechoslovakia]

    Boil1 —v. 1 a (of a liquid) start to bubble up and turn into vapour on reaching a certain temperature. B (of a vessel) contain boiling liquid (kettle is boiling). 2 a bring to boiling point. B cook in boiling liquid. C subject to boiling water, e.g. To clean. 3 a move or seethe like boiling water. B be very angry. —n. Act or process of boiling; boiling-point (on the boil; bring to the boil). boil down 1 reduce in volume by boiling. 2 reduce to essentials. 3 (foll. By to) amount to. Boil over 1 spill over in boiling. 2 lose one’s temper. [latin bullio to bubble]

    Boil2 n. Inflamed pus-filled swelling under the skin. [old english]

    Boiler n. 1 apparatus for heating a hot-water supply. 2 tank for heating water or turning it to steam. 3 tub for boiling laundry etc. 4 fowl etc. For boiling.

    Boiler-room n. Room with a boiler and other heating equipment, esp. In a basement.

    Boiler suit n. Protective outer garment of trousers and jacket in one.

    Boiling adj. Colloq. Very hot.

    Boiling adj. Colloq. Very hot.

    Boiling point n. 1 temperature at which a liquid begins to boil. 2 great excitement.

    Boisterous adj. 1 noisily exuberant, rough. 2 (of the sea etc.) Stormy. [origin unknown]

    Bold adj. 1 confidently assertive; adventurous, brave. 2 impudent. 3 vivid (bold colours). make (or be) so bold as to presume to; venture to. boldly adv. Boldness n. [old english]

    Bole n. Trunk of a tree. [old norse]

    Bolero n. (pl. -s) 1 spanish dance, or the music for it, in triple time. 2 woman’s short open jacket. [spanish]

    Boll n. Round seed-vessel of cotton, flax, etc. [dutch]

    Bollard n. 1 short post in the road, esp. On a traffic island. 2 short post on a quay or ship for securing a rope. [perhaps related to *bole]

    Bollocking n. (also ballocking) coarse slang severe reprimand.

    Bollocks n. (also ballocks) coarse slang 1 (usu. As int.) Nonsense. 2 testicles. [old english: related to *ball1]

    [old english: related to *ball1]

    Boloney n. (also baloney) slang nonsense. [origin uncertain]

    Bolshevik —n. 1 hist. Member of the radical faction of the russian social democratic party becoming the communist party in 1918. 2 russian communist. 3 any revolutionary socialist. —adj. 1 of the bolsheviks. 2 communist. bolshevism n. Bolshevist n. [russian, = member of the majority]

    Bolshie (also bolshy) slang —adj. (usu. Bolshie) 1 uncooperative; bad-tempered. 2 leftwing. —n. (pl. -ies) bolshevik. [abbreviation]

    Bolster —n. Long cylindrical pillow. —v. (usu. Foll. By up) encourage, support, prop up. [old english]

    Bolt1 —n. 1 sliding bar and socket used to fasten a door etc. 2 large metal pin with a thread, usu. Used with a nut, to hold things together. 3 discharge of lightning. 4 act of bolting. —v. 1 fasten with a bolt. 2 (foll. By in, out) keep (a person etc.) In or out by bolting a door. 3 fasten together with bolts. 4 a dash off suddenly. B (of a horse) suddenly gallop out of control. 5 gulp down (food) unchewed. 6 (of a plant) run to seed. —adv. (usu. In bolt upright) rigidly, stiffly. bolt from the blue complete surprise. [old english]

    Bolt2 v. (also boult) sift (flour etc.). [french]

    Bolt-hole n. Means of escape.

    Bomb —n. 1 container filled with explosive, incendiary material, etc., designed to explode and cause damage. 2 (prec. By the) the atomic or hydrogen bomb. 3 slang large sum of money (cost a bomb). —v. 1 attack with bombs; drop bombs on. 2 (usu. Foll. By along, off) colloq. Go very quickly. like a bomb colloq. 1 very successfully. 2 very fast. [greek bombos hum]

    Bombard v. 1 attack with heavy guns or bombs etc. 2 (often foll. By with) question or abuse persistently. 3 physics direct a stream of high-speed particles at. bombardment n. [latin: related to *bomb]

    Bombardier n. 1 non-commissioned officer in the artillery. 2 us crew member in an aircraft who aims and releases bombs.

    Bombast n. Pompous language; hyperbole. bombastic adj. [earlier bombace cotton wool]

    Bombay duck n. Dried fish as a relish, esp. With curry. [corruption of bombil, native name of fish]

    Bombazine n. Twilled worsted dress-material. [greek bombux silk]

    Bomber n. 1 aircraft equipped to drop bombs. 2 person using bombs, esp. Illegally.

    Bomber jacket n. Jacket gathered at the waist and cuffs.

    Bombshell n. 1 overwhelming surprise or disappointment. 2 artillery bomb. 3 slang very attractive woman.

    Bomb-site n. Area where bombs have caused destruction.

    Bona fide —adj. Genuine; sincere. —adv. Genuinely; sincerely. [latin]

    Bonanza n. 1 source of wealth or prosperity. 2 large output (esp. Of a mine). [spanish, = fair weather]

    Bon-bon n. Sweet. [french bon good]

    Bond —n. 1 thing or force that unites or (usu. In pl.) Restrains. 2 binding agreement. 3 commerce certificate issued by a government or a company promising to repay borrowed money at a fixed rate of interest. 4 adhesiveness. 5 law deed binding a person to make payment to another. 6 chem. Linkage between atoms in a molecule. —v. 1 hold or tie together. 2 connect or reinforce with a bond. 3 place (goods) in bond.

    Bondage n. 1 slavery. 2 subjection to constraint etc. 3 sexual practices involving constraint. [anglo-latin: related to *bondsman]

    Bonded adj. 1 stored in or for storing in bond (bonded whisky, warehouse). 2 (of a debt) secured by bonds.

    Bond paper n. High-quality writing-paper.

    Bond paper n. High-quality writing-paper.

    Bondsman n. Serf, slave. [old english bonda husbandman]

    Bone —n. 1 any piece of hard tissue making up the skeleton in vertebrates. 2 (in pl.) A skeleton, esp. As remains. B body. 3 material of bones or similar material, e.g. Ivory. 4 thing made of bone. 5 (in pl.) Essentials (the bones of an agreement). 6 strip of stiffening in a corset etc. —v. (-ning) 1 remove the bones from. 2 stiffen with bone etc. bone up (often foll. By on) colloq. Study intensively. Have a bone to pick (usu. Foll. By with) have cause for dispute (with a person). Make no bones about 1 be frank about. 2 not hesitate or scruple. boneless adj. [old english]

    Bone china n. Fine china made of clay mixed with bone ash.

    Bone-dry adj. Completely dry.

    Bone-idle adj. Utterly idle.

    Bone-marrow n. = *marrow 2.

    Bone-meal n. Crushed bones, esp. As a fertilizer.

    Bone of contention n. Source of dispute.

    Boneshaker n. Decrepit or uncomfortable old vehicle.

    Bonfire n. Large open-air fire, esp. For burning rubbish. [from bone (because bones were once used), fire]

    Bongo n. (pl. -s or -es) either of a pair of small drums usu. Held between the knees and played with the fingers. [american spanish]

    Bonhomie n. Good-natured friendliness. [french]

    Bonk —v. 1 bang, bump. 2 coarse slang have sexual intercourse (with). —n. Instance of bonking (bonk on the head). [imitative]

    Bonkers predic. Adj. Slang crazy. [origin unknown]

    Bon mot n. (pl. Bons mots) witty saying. [french]

    Bonnet n. 1 a hat tied under the chin, worn esp. By babies. B scotsman’s floppy beret. 2 hinged cover over a vehicle’s engine. [french]

    Bonny adj. (-ier, -iest) esp. Scot. & n.engl. 1 a physically attractive. B healthy-looking. 2 good, pleasant. [perhaps from french bon good]

    Bonsai n. (pl. Same) 1 dwarfed tree or shrub. 2 art of growing these. [japanese]

    Bonus n. Extra benefit or payment. [latin, = good]

    Bon vivant n. (pl. Bon or bons vivants pronunc. Same) person fond of good food and drink. [french]

    Bon voyage int. Expression of good wishes to a departing traveller. [french]

    Bony adj. (-ier, -iest) 1 thin with prominent bones. 2 having many bones. 3 of or like bone. boniness n.

    Boo —int. 1 expression of disapproval etc. 2 sound intended to surprise. —n. Utterance of boo, esp. To a performer etc. —v. (boos, booed) 1 utter boos. 2 jeer at by booing. [imitative]

    Boob1 colloq. —n. 1 silly mistake. 2 foolish person. —v. Make a silly mistake. [shortening of *booby]

    Boob2 n. Slang woman’s breast. [origin uncertain]

    Booby n. (pl. -ies) stupid or childish person. [spanish bobo]

    Booby prize n. Prize given for coming last.

    Booby trap n. 1 practical joke in the form of a trap. 2 disguised explosive device triggered by the unknowing victim.

    Boodle n. Slang money, esp. Gained or used dishonestly. [dutch boedel possessions]

    Boogie v. (-ies, -ied, -ieing) slang dance to pop music.

    Boogie-woogie n. Style of playing blues or jazz on the piano. [origin unknown]

    Book —n. 1 a written or printed work with pages bound along one side. B work intended for publication. 2 bound blank sheets for notes, records, etc. 3 bound set of tickets, stamps, matches, etc. 4 (in pl.) Set of records or accounts. 5 main division of a large literary work. 6 telephone directory. 7 colloq. Magazine. 8 libretto, script, etc. 9 record of bets. —v. 1 a (also absol.) Reserve (a seat etc.) In advance. B engage (an entertainer etc.). 2 a take the personal details of (an offender or rule-breaker). B enter in a book or list. book in register at a hotel etc. Book up 1 buy tickets in advance. 2 (as booked up) with all places reserved. Bring to book call to account. Go by the book proceed by the rules. In a person’s good (or bad) books in (or out of) favour with a person. [old english]

    Bookbinder n. Person who binds books for a living. bookbinding n.

    Bookcase n. Cabinet of shelves for books.

    Book club n. Society in which selected books are available cheaply.

    Book-end n. Prop used to keep books upright.

    Bookie n. Colloq. = *bookmaker. [abbreviation]

    Booking n. Reservation or engagement.

    Booking-hall n. (also booking-office) ticket office at a railway station etc.

    Bookish adj. 1 studious; fond of reading. 2 having knowledge mainly from books.

    Bookkeeper n. Person who keeps accounts, esp. For a living. bookkeeping n.

    Booklet n. Small book usu. With a paper cover.

    Bookmaker n. Professional taker of bets. bookmaking n.

    Bookmark n. Thing used to mark a reader’s place.

    Book-plate n. Decorative personalized label stuck in a book.

    Bookseller n. Dealer in books.

    Bookshop n. Shop selling books.

    Bookstall n. Stand selling books, newspapers, etc.

    Book token n. Voucher exchangeable for books.

    Bookworm n. 1 colloq. Devoted reader. 2 larva feeding on the paper and glue in books.

    Boolean adj. Denoting a system of algebraic notation to represent logical propositions. [boole, name of a mathematician]

    Boolean logic n. Use of ‘and’, ‘or’, and ‘not’ in retrieving information from a database.

    Boom1 —n. Deep resonant sound. —v. Make or speak with a boom. [imitative]

    Boom2 —n. Period of economic prosperity or activity. —v. Be suddenly

    Boom2 —n. Period of economic prosperity or activity. —v. Be suddenly prosperous. [perhaps from *boom1]

    Boom3 n. 1 pivoted spar to which a sail is attached. 2 long pole carrying a microphone, camera, etc. 3 barrier across a harbour etc. [dutch, = *beam]

    Boomerang —n. 1 flat v-shaped hardwood missile used esp. By australian aboriginals, able to return to its thrower. 2 plan that recoils on its originator. —v. (of a plan etc.) Backfire. [aboriginal]

    Boon1 n. Advantage; blessing. [old norse]

    Boon2 adj. Intimate, favourite (usu. Boon companion). [french bon from latin bonus good]

    Boor n. Ill-mannered person. boorish adj. [low german or dutch]

    Boost colloq. —v. 1 promote or encourage. 2 increase, assist. 3 push from below. —n. Act or result of boosting. [origin unknown]

    Booster n. 1 device for increasing power or voltage. 2 auxiliary engine or rocket for initial speed. 3 dose, injection, etc. Renewing the effect of an earlier one.

    Boot1 —n. 1 outer foot-covering reaching above the ankle. 2 luggage compartment of a car. 3 colloq. A firm kick. B (prec. By the) dismissal (got the boot). —v. 1 kick. 2 (often foll. By out) eject forcefully. 3 (usu. Foll. By up)

    boot). —v. 1 kick. 2 (often foll. By out) eject forcefully. 3 (usu. Foll. By up) make (a computer) ready. put the boot in 1 kick brutally. 2 harm a person. [old norse]

    Boot2 n. to boot as well, in addition. [old english]

    Bootblack n. Us person who polishes boots and shoes.

    Bootee n. Baby’s soft shoe.

    Booth n. 1 small temporary structure used esp. As a market stall. 2 enclosure for telephoning, voting, etc. 3 cubicle in a restaurant etc. [old norse]

    Bootleg —adj. (esp. Of alcohol) smuggled, illicit. —v. (-gg-) illicitly make or deal in (alcohol etc.). bootlegger n.

    Bootlicker n. Colloq. Toady.

    Boots n. Hotel servant who cleans shoes etc.

    Bootstrap n. Loop used to pull a boot on. pull oneself up by one’s bootstraps better oneself.

    Booty n. 1 loot, spoil. 2 colloq. Prize or gain. [german]

    Booze colloq. —n. Alcoholic drink. —v. (-zing) drink alcohol, esp. To excess. boozy adj. (-ier, -iest). [dutch]

    Boozer n. Colloq. 1 habitual drinker. 2 public house.

    Booze-up n. Slang drinking bout.

    Bop1 colloq. —n. 1 a spell of dancing, esp. To pop music. B social occasion for this. 2 = *bebop. —v. (-pp-) dance, esp. To pop music. bopper n. [abbreviation]

    Bop2 colloq. —v. (-pp-) hit or punch, esp. Lightly. —n. Esp. Light blow or hit. [imitative]

    Boracic adj. Of borax.

    Boracic acid n. = *boric acid.

    Borage n. Plant with leaves used as flavouring. [french ultimately from arabic]

    Borax n. Salt used in making glass and china, and as an antiseptic. [french ultimately from persian]

    Bordeaux n. (pl. Same) wine (esp. Red) from the bordeaux district in sw france.

    Border —n. 1 edge or boundary, or the part near it. 2 a line or region separating two countries. B (the border) boundary between scotland and england (usu. The borders), or n. Ireland and the irish republic. 3 esp. Ornamental strip round an edge. 4 long narrow flower-bed (herbaceous border). —v. 1 be a border to. 2 provide with a border. 3 (usu. Foll. By on, upon) a adjoin; come close to being. B resemble. [french from germanic: related to *board]

    Border collie n. Sheepdog of the north country.

    Borderer n. Person living near a border.

    Borderland n. 1 district near a border. 2 condition between two extremes. 3 area for debate.

    Borderline —n. 1 line dividing two conditions. 2 line marking a boundary. — adj. 1 on the borderline. 2 barely acceptable.

    Border terrier n. Small rough-haired terrier.

    Bore1 —v. (-ring) 1 make (a hole), esp. With a revolving tool. 2 make a hole in, hollow out. —n. 1 hollow of a firearm barrel or of a cylinder in an internal-combustion engine. 2 diameter of this. 3 deep hole made esp. To find water. [old english]

    Bore2 —n. Tiresome or dull person or thing. —v. (-ring) weary by tedious talk or dullness. bored adj. Boring adj. [origin unknown]

    or dullness. bored adj. Boring adj. [origin unknown]

    Bore3 n. High tidal wave in an estuary. [scandinavian]

    Bore4 past of *bear1.

    Boredom n. State of being bored. [from *bore2]

    Boric acid n. Acid derived from borax, used as an antiseptic.

    Born adj. 1 existing as a result of birth. 2 a of natural ability or quality (a born leader). B (usu. Foll. By to + infin.) Destined (born lucky; born to be king). 3 (in comb.) Of a certain status by birth (french-born; well-born). [past part. Of *bear1]

    Born-again attrib. Adj. Converted (esp. To fundamentalist christianity).

    Borne past part. Of *bear1. —adj. (in comb.) Carried by (airborne).

    Boron n. Non-metallic usu. Crystalline element. [from *borax, after carbon]

    Borough n. 1 a town represented in the house of commons. B town or district granted the status of a borough. 2 hist. Town with a municipal corporation conferred by a royal charter. [old english]

    conferred by a royal charter. [old english]

    Borrow v. 1 a acquire temporarily, promising or intending to return. B obtain money thus. 2 use (another’s idea, invention, etc.); plagiarize. borrower n. [old english]

    Borstal n. Hist. Residential institution for youth custody. [borstal in kent]

    Usage this term has now been replaced by detention centre and youth custody centre.

    Bortsch n. Russian soup of beetroot, cabbage, etc. [russian]

    Borzoi n. Large silky-coated dog. [russian, = swift]

    Bosh n. & int. Slang nonsense. [turkish, = empty]

    Bosom n. 1 a person’s (esp. Woman’s) breast. B colloq. Each of a woman’s breasts. C enclosure formed by the breast and arms. 2 emotional centre (bosom of one’s family). [old english]

    Bosom friend n. Intimate friend.

    Boss1 colloq. —n. Employer, manager, or supervisor. —v. (usu. Foll. By about, around) give orders to; order about. [dutch baas]

    Boss2 n. 1 round knob, stud, etc., esp. On the centre of a shield. 2 archit. Ornamental carving etc. At the junction of the ribs in a vault. [french]

    Bossa nova n. 1 dance like the samba. 2 music for this. [portuguese, = new flair]

    Boss-eyed adj. Colloq. 1 cross-eyed; blind in one eye. 2 crooked. [boss = bad shot, origin unknown]

    Bossy adj. (-ier, -iest) colloq. Domineering. bossiness n.

    Bosun (also bo’sun) var. Of *boatswain.

    Botany n. The study of plants. botanic adj. Botanical adj. Botanist n. [greek botane plant]

    Botch (also bodge) —v. 1 bungle; do badly. 2 patch clumsily. —n. Bungled or spoilt work. [origin unknown]

    Both —adj. & pron. The two, not only one (both boys; both the boys; both of the boys; i like both). —adv. With equal truth in two cases (is both hot and dry). [old norse]

    Bother —v. 1 trouble; worry, disturb. 2 (often foll. By about, with, or to + infin.) Take the time or trouble (didn’t bother to tell me; shan’t bother with dessert). —

    Take the time or trouble (didn’t bother to tell me; shan’t bother with dessert). — n. 1 a person or thing that bothers. B minor nuisance. 2 trouble, worry. —int. Expressing irritation. [irish bodhraim deafen]

    Botheration n. & int. Colloq. = *bother n., int.

    Bothersome adj. Causing bother.

    Bottle —n. 1 container, esp. Glass or plastic, for storing liquid. 2 amount filling it. 3 baby’s feeding-bottle. 4 = hot-water bottle. 5 metal cylinder for liquefied gas. 6 slang courage. —v. (-ling) 1 put into, or preserve in, bottles or jars. 2 (foll. By up) conceal or restrain (esp. A feeling). hit the bottle slang drink heavily. [medieval latin: related to butt4]

    Bottle bank n. Place for depositing bottles for recycling.

    Bottle-feed v. Feed (a baby) from a bottle as opposed to the breast.

    Bottle green adj. & n. (as adj. Often hyphenated) dark green.

    Bottleneck n. 1 narrow congested area, esp. On a road. 2 impeding thing.

    Bottlenose dolphin n. Dolphin with a bottle-shaped snout.

    Bottle party n. Party to which guests bring bottles of drink.

    Bottom —n. 1 a lowest point or part. B base. C underneath part. D furthest or inmost part. 2 colloq. A buttocks. B seat of a chair etc. 3 a less honourable end of a table, class, etc. B person occupying this (he’s bottom of the class). 4 ground below water. 5 basis or origin. 6 essential character. —adj. Lowest, last. —v. 1 put a bottom to (a chair etc.). 2 find the extent of. 3 touch the bottom or lowest point (of). at bottom basically. Be at the bottom of have caused. Bottom out reach the lowest level. Get to the bottom of fully investigate and explain. [old english]

    Bottom drawer n. Linen etc. Stored by a woman for marriage.

    Bottomless adj. 1 without a bottom. 2 inexhaustible.

    Bottom line n. Colloq. Underlying truth; ultimate, esp. Financial, criterion.

    Botulism n. Poisoning caused by a bacillus in badly preserved food. [latin botulus sausage]

    Bouclé n. 1 looped or curled yarn (esp. Wool). 2 fabric made of this. [french, = curled]

    Boudoir n. Woman’s private room. [french bouder sulk]

    Bouffant adj. (of a dress, hair, etc.) Puffed out. [french]

    Bouffant adj. (of a dress, hair, etc.) Puffed out. [french]

    Bougainvillaea n. Tropical plant with large coloured bracts. [bougainville, name of a navigator]

    Bough n. Main branch of a tree. [old english]

    Bought past and past part. Of *buy.

    Bouillon n. Clear broth. [french bouillir to boil]

    Boulder n. Large smooth rock. [scandinavian]

    Boule n. (also boules pronunc. Same) french form of bowls played on rough ground. [french]

    Boulevard n. 1 broad tree-lined avenue. 2 esp. Us broad main road. [french from german]

    Boult var. Of *bolt2.

    Boult var. Of *bolt2.

    Bounce —v. (-cing) 1 (cause to) rebound. 2 slang (of a cheque) be returned by a

    Bounce —v. (-cing) 1 (cause to) rebound. 2 slang (of a cheque) be returned by a bank when there are no funds to meet it. 3 (foll. By about, up, in, out, etc.) Jump, move, or rush boisterously. —n. 1 a rebound. B power of rebounding. 2 colloq. A swagger, self-confidence. B liveliness. bounce back recover well after a setback. bouncy adj. (-ier, -iest). [imitative]

    Bouncer n. 1 slang doorman ejecting troublemakers from a dancehall, club, etc. 2 = *bumper 3.

    Bouncing adj. (esp. Of a baby) big and healthy.

    Bound1 —v. 1 spring, leap. 2 (of a ball etc.) Bounce. —n. 1 springy leap. 2 bounce. [french bondir from latin bombus hum]

    Bound2 —n. (usu. In pl.) 1 limitation; restriction. 2 border, boundary. —v. 1 limit. 2 be the boundary of. out of bounds outside a permitted area. [french from medieval latin]

    Bound3 adj. 1 (usu. Foll. By for) starting or having started (bound for stardom). 2 (in comb.) In a specified direction (northbound). [old norse, = ready]

    Bound4 past and past part. Of *bind. bound to certain to (he’s bound to come). Bound up with closely associated with.

    Boundary n. (pl. -ies) 1 line marking the limits of an area etc. 2 cricket hit crossing the limits of the field, scoring 4 or 6 runs. [related to *bound2]

    Bounden duty n. Formal solemn responsibility. [archaic past part. Of *bind]

    Bounder n. Colloq. Cad.

    Boundless adj. Unlimited.

    Bounteous adj. Poet. = *bountiful. [french: related to *bounty]

    Bountiful adj. 1 generous. 2 ample.

    Bounty n. (pl. -ies) 1 generosity. 2 reward, esp. From the state. 3 gift. [french from latin bonus good]

    Bouquet n. 1 bunch of flowers, esp. Professionally arranged. 2 scent of wine etc. 3 compliment. [french bois wood]

    Bouquet garni n. (pl. Bouquets garnis) bunch or bag of herbs for seasoning.

    Bourbon n. Us whisky from maize and rye. [bourbon county, kentucky]

    Bourgeois often derog. —adj. 1 a conventionally middle-class. B materialistic. 2 capitalist. —n. (pl. Same) bourgeois person. [french]

    capitalist. —n. (pl. Same) bourgeois person. [french]

    Bourgeoisie n. 1 capitalist class. 2 middle class. [french]

    Bourn n. Small stream. [var. Of *burn2]

    Bourse n. 1 (bourse) paris stock exchange. 2 money-market. [french: related to *purse]

    Bout n. 1 (often foll. By of) a spell (of work or activity). B attack (bout of flu). 2 wrestling-or boxing-match. [obsolete bought bending]

    Boutique n. Small shop selling esp. Fashionable clothes. [french]

    Bouzouki n. (pl. -s) greek form of mandolin. [modern greek]

    Bovine adj. 1 of cattle. 2 stupid, dull. [latin bos ox]

    Bovine spongiform encephalopathy see *bse.

    Bow1 —n. 1 a slip-knot with a double loop. B ribbon etc. So tied. 2 curved piece of wood etc. With a string stretched across its ends, for shooting arrows. 3 rod with horsehair stretched along its length, for playing the violin etc. 4 shallow curve or bend; thing of this form. —v. (also absol.) Use a bow on (a violin etc.).

    [old english]

    Bow2 —v. 1 incline the head or body, esp. In greeting or acknowledgement. 2 submit (bowed to the inevitable). 3 cause (the head etc.) To incline. —n. Act of bowing. bow and scrape toady. Bow down 1 bend or kneel esp. In submission or reverence. 2 make stoop; crush (bowed down by care). Bow out 1 exit (esp. Formally). 2 withdraw; retire. Take a bow acknowledge applause. [old english]

    Bow3 n. 1 (often in pl.) Front end of a boat. 2 rower nearest this. [low german or dutch: related to *bough]

    Bowdlerize v. (also -ise) (-zing or -sing) expurgate (a book etc.). bowdlerization n. [bowdler, name of an expurgator of shakespeare]

    Bowel n. 1 (often in pl.) = *intestine. 2 (in pl.) Innermost parts. [latin botulus sausage]

    Bower n. 1 arbour; summerhouse. 2 poet. Inner room. [old english, = dwelling]

    Bowerbird n. Australasian bird, the male of which constructs elaborate runs.

    Bowie n. (in full bowie knife) a kind of long hunting-knife. [bowie, name of an american soldier]

    Bowl1 n. 1 a usu. Round deep basin for food or liquid. B contents of a bowl. 2 hollow part of a tobacco-pipe, spoon, etc. bowlful n. (pl. -s). [old english]

    Bowl2 —n. 1 hard heavy ball, made with a bias to run in a curve. 2 (in pl.; usu. Treated as sing.) Game played with these on grass. 3 spell or turn of bowling in cricket. —v. 1 a roll (a ball etc.). B play bowls. 2 (also absol.) Cricket etc. A deliver (a ball, over, etc.). B (often foll. By out) dismiss (a batsman) by knocking down the wicket with a ball. 3 (often foll. By along) go along rapidly. bowl out cricket etc. Dismiss (a batsman or a side). Bowl over 1 knock down. 2 colloq. Impress greatly, overwhelm. [latin bulla bubble]

    Bow-legs n.pl. Bandy legs. bow-legged adj.

    Bowler1 n. 1 cricket etc. Player who bowls. 2 bowls-player.

    Bowler2 n. (in full bowler hat) man’s hard round felt hat. [bowler, name of a hatter]

    Bowline n. 1 rope from a ship’s bow keeping the sail taut against the wind. 2 knot forming a non-slipping loop at the end of a rope.

    Bowling n. The game of skittles, tenpin bowling, or bowls.

    Bowling-alley n. 1 long enclosure for skittles or tenpin bowling. 2 building with these.

    Bowling-green n. Lawn for playing bowls.

    Bowman n. Archer.

    Bowsprit n. Spar running forward from a ship’s bow.

    Bowstring n. String of an archer’s bow.

    Bow-tie n. Necktie in the form of a bow.

    Bow-window n. Curved bay window.

    Bow-wow —int. Imitation of a dog’s bark. —n. Colloq. Dog. [imitative]

    Box1 —n. 1 container, usu. Flat-sided and firm. 2 amount contained in a box. 3 compartment, e.g. In a theatre or lawcourt. 4 receptacle or kiosk for a special purpose (often in comb.: money box; telephone box). 5 facility at a newspaper office for receiving replies to an advertisement. 6 (prec. By the) colloq. Television. 7 enclosed area or space. 8 area of print enclosed by a border. 9 light shield for the genitals in cricket etc. 10 (prec. By the) football colloq. Penalty area. —v. 1 put in or provide with a box. 2 (foll. By in, up) confine. [latin buxis: related to *box3]

    Box2 —v. 1 a take part in boxing. B fight (an opponent) at boxing. 2 slap (esp. A person’s ears). —n. Hard slap, esp. On the ears. [origin unknown]

    Box3 n. 1 small evergreen tree with dark green leaves. 2 its fine hard wood. [latin buxus, greek puxos]

    Box and cox n. Two people sharing accommodation etc. In shifts. [names of characters in a play (1847)]

    Box camera n. Simple box-shaped camera.

    Boxer n. 1 person who boxes, esp. As a sport. 2 medium-size short-haired dog with a puglike face.

    Boxer shorts n.pl. Men’s loose underpants like shorts.

    Box girder n. Hollow girder square in cross-section.

    Boxing n. Fighting with the fists, esp. As a sport.

    Boxing day n. First weekday after christmas. [from *box1, from the custom of giving christmas-boxes]

    Boxing glove n. Each of a pair of heavily padded gloves worn in boxing.

    Box junction n. Road area marked with a yellow grid, which a vehicle should enter only if its exit is clear.

    enter only if its exit is clear.

    Box number n. Number for replies to a private advertisement in a newspaper.

    Box office n. Ticket-office at a theatre etc.

    Box pleat n. Arrangement of parallel pleats folding in alternate directions.

    Boxroom n. Small room for storing boxes, cases, etc.

    Box spring n. Each of a set of vertical springs in a frame, e.g. In a mattress.

    Boxwood n. = *box3 2.

    Boxy adj. (-ier, -iest) cramped.

    Boy —n. 1 male child, son. 2 young man. 3 male servant etc. —int. Expressing pleasure, surprise, etc. boyhood n. Boyish adj. [origin uncertain]

    Boycott —v. 1 refuse to have social or commercial relations with (a person, country, etc.). 2 refuse to handle (goods). —n. Such a refusal. [capt. Boycott, so treated from 1880]

    Boyfriend n. Person’s regular male companion or lover.

    Boyo n. (pl. -s) welsh & ir. Colloq. (esp. As a form of address) boy, mate.

    Boy scout n. = *scout n. 4.

    Bp abbr. 1 boiling-point. 2 blood pressure. 3 before the present (era). 4 british petroleum. 5 british pharmacopoeia.

    Bq abbr. Becquerel.

    Br abbr. British rail.

    Br symb. Bromine.

    Bra n. Undergarment worn by women to support the breasts. [abbreviation]

    Brace —n. 1 device that clamps or fastens tightly. 2 timber etc. Strengthening a framework. 3 (in pl.) Straps supporting trousers from the shoulders. 4 wire device for straightening the teeth. 5 (pl. Same) pair (esp. Of game). 6 rope for trimming a sail. 7 connecting mark { or } in printing. —v. (-cing) 1 make steady by supporting. 2 fasten tightly to make firm. 3 (esp. As bracing adj.) Invigorate, refresh. 4 (often refl.) Prepare for a difficulty, shock, etc. [latin bracchia arms]

    Brace and bit n. Revolving tool for boring, with a d-shaped central handle.

    Bracelet n. 1 ornamental band or chain worn on the wrist or arm. 2 slang handcuff.

    Brachiosaurus n. (pl. -ruses) plant-eating dinosaur with forelegs longer than its hind legs. [latin from greek brakhion arm, sauros lizard]

    Bracken n. 1 large coarse fern. 2 mass of these. [old norse]

    Bracket —n. 1 (esp. Angled) support projecting from a vertical surface. 2 shelf fixed to a wall with this. 3 each of a pair of marks () [] {} enclosing words or figures. 4 group or classification (income bracket). —v. (-t-) 1 enclose in brackets. 2 group or classify together. [latin bracae breeches]

    Brackish adj. (of water etc.) Slightly salty. [low german or dutch]

    Bract n. Leaflike and often brightly coloured part of a plant, growing before the flower. [latin bractea thin sheet]

    Brad n. Thin flat nail with a head on only one side. [old norse]

    Bradawl n. Small pointed tool for boring holes by hand.

    Brae n. Scot. Hillside. [old norse]

    Brag —v. (-gg-) talk boastfully. —n. 1 card-game like poker. 2 boastful statement or talk. [origin unknown]

    Braggart —n. Boastful person. —adj. Boastful.

    Brahma n. 1 hindu creator. 2 supreme divine hindu reality. [sanskrit, = creator]

    Brahman n. (also brahman) (pl. -s) 1 (also brahmin) member of the highest or priestly hindu caste. 2 = *brahma 2. brahmanic adj. Brahmanism n.

    Braid —n. 1 woven band as edging or trimming. 2 us plait of hair. —v. 1 us plait. 2 trim with braid. braiding n. [old english]

    Braille —n. System of writing and printing for the blind, with patterns of raised dots. —v. (-ling) print or transcribe in braille. [braille, name of its inventor]

    Brain —n. 1 organ of soft nervous tissue in the skull of vertebrates, the centre of sensation and of intellectual and nervous activity. 2 a colloq. Intelligent person. B (often in pl.) Intelligence. 3 (usu. In pl.; prec. By the) colloq. Cleverest person in a group; mastermind. 4 electronic device functioning like a brain. —v. 1 dash out the brains of. 2 colloq. Strike hard on the head. on the brain colloq. Obsessively in one’s thoughts. [old english]

    Brainchild n. Colloq. Person’s clever idea or invention.

    Brain death n. Irreversible brain damage causing the end of independent respiration, regarded as indicative of death. brain-dead adj.

    Brain drain n. Colloq. Loss of skilled personnel by emigration.

    Brainless adj. Foolish.

    Brainpower n. Mental ability or intelligence.

    Brainstorm n. 1 sudden mental disturbance. 2 colloq. Mental lapse. 3 us brainwave. 4 pooling of spontaneous ideas about a problem etc. brainstorming n. (in sense 4).

    Brains trust n. Group of experts answering questions, usu. Publicly and impromptu.

    Brainwash v. Implant ideas or esp. Ideology into (a person) by repetition etc. brainwashing n.

    Brainwave n. 1 (usu. In pl.) Electrical impulse in the brain. 2 colloq. Sudden bright idea.

    Brainy adj. (-ier, -iest) intellectually clever.

    Braise v. (-sing) stew slowly with a little liquid in a closed container. [french braise live coals]

    Brake1 —n. 1 (often in pl.) Device for stopping or slowing a wheel, vehicle, etc. 2 thing that impedes. —v. (-king) 1 apply a brake. 2 slow or stop with a brake. [probably obsolete brake = curb]

    Brake2 n. Large estate car. [var. Of *break]

    Brake3 —n. 1 toothed instrument for crushing flax and hemp. 2 (in full brake harrow) heavy harrow. —v. (-king) crush (flax or hemp). [low german or dutch: related to *break]

    Brake4 n. Thicket or clump of brushwood. [old english]

    Brake drum n. Cylinder attached to a wheel, on which the brake shoes press to brake.

    Brake horsepower n. Power of an engine measured by the force needed to brake it.

    Brake lining n. Strip of fabric increasing the friction of a brake shoe.

    Brake shoe n. Long curved block which presses on a brake drum to brake.

    Bramble n. Wild thorny shrub, esp. The blackberry. brambly adj. [old english]

    Brambling n. The speckled finch. [german: related to *bramble]

    Bran n. Grain husks separated from flour. [french]

    Branch —n. 1 limb of a tree or bough. 2 lateral extension or subdivision, esp. Of a river, road, or railway. 3 subdivision of a family, knowledge, etc. 4 local office etc. Of a large business. —v. (often foll. By off) 1 diverge. 2 divide into branches. branch out extend one’s field of interest. [latin branca paw]

    Brand —n. 1 a particular make of goods. B identifying trade mark, label, etc. 2 (usu. Foll. By of) characteristic kind (brand of humour). 3 identifying mark burned esp. On livestock. 4 iron used for this. 5 piece of burning or charred wood. 6 stigma; mark of disgrace. 7 poet. Torch. —v. 1 mark with a hot iron. 2 stigmatize (branded him a liar). 3 impress unforgettably. 4 assign a trademark etc. To. [old english]

    Brandish v. Wave or flourish as a threat or display. [french from germanic]

    Brand-new adj. Completely new.

    Brandy n. (pl. -ies) strong alcoholic spirit distilled from wine or fermented fruit juice. [dutch brandewijn]

    Brandy butter n. Mixture of brandy, butter, and sugar.

    Brandy-snap n. Crisp rolled gingerbread wafer usu. Filled with cream.

    Bran-tub n. Lucky dip with prizes hidden in bran.

    Brash adj. Vulgarly self-assertive; impudent. brashly adv. Brashness n. [dial.]

    Brass —n. 1 yellow alloy of copper and zinc. 2 brass objects collectively. 3 brass wind instruments. 4 slang money. 5 brass memorial tablet. 6 colloq. Effrontery. —adj. Made of brass. brassed off slang fed up. [old english]

    Brass band n. Band of brass instruments.

    Brasserie n. Restaurant, orig. One serving beer with food. [french brasser brew]

    Brassica n. Plant of the cabbage family. [latin, = cabbage]

    Brassière n. = *bra. [french]

    Brass monkey n. Coarse slang used in various phrases to indicate extreme cold.

    Brass-rubbing n. 1 practice of taking impressions by rubbing heelball etc. Over paper laid on engraved brasses. 2 impression obtained by this.

    Brass tacks n.pl. Slang essential details.

    Brassy adj. (-ier, -iest) 1 of or like brass. 2 impudent. 3 vulgarly showy. 4 loud and blaring.

    Brat n. Usu. Derog. Child, esp. An ill-behaved one. [origin unknown]

    Bravado n. Show of boldness. [spanish]

    Brave —adj. 1 able or ready to face and endure danger, disgrace, or pain. 2 formal splendid, spectacular. —n. American indian warrior. —v. (-ving) face bravely or defiantly. bravely adv. Braveness n. Bravery n. [ultimately latin barbarus barbarian]

    Bravo —int. Expressing approval. —n. (pl. -s) cry of ‘bravo’. [french from italian]

    Bravura n. 1 brilliance of execution. 2 (often attrib.) Passage of (esp. Vocal) music requiring brilliant technique. [italian]

    Brawl —n. Noisy quarrel or fight. —v. 1 engage in a brawl. 2 (of a stream) run noisily. [provençal]

    Brawn n. 1 muscular strength. 2 muscle; lean flesh. 3 jellied meat made from a pig’s head. brawny adj. (-ier, -iest). [french from germanic]

    Bray —n. 1 cry of a donkey. 2 harsh sound like this. —v. 1 make a bray. 2 utter harshly. [french braire]

    Braze v. (-zing) solder with an alloy of brass and zinc. [french braser]

    Brazen —adj. 1 shameless; insolent. 2 of or like brass. 3 harsh in sound. —v. (foll. By out) face or undergo defiantly (brazen it out). brazenly adv. [old english]

    Brazier1 n. Metal pan or stand holding burning coals etc. [french: related to *braise]

    Brazier2 n. Worker in brass. [probably from *brass]

    Brazil n. 1 tall s. American tree. 2 (in full brazil nut) its large three-sided nut. [brazil in s. America]

    Breach —n. 1 (often foll. By of) breaking or non-observation of a law, contract, etc. 2 breaking of relations; quarrel. 3 opening, gap. —v. 1 break through; make a gap in. 2 break (a law, contract, etc.). step into the breach help in a crisis, esp. As a replacement. [germanic: related to *break]

    Breach of promise n. Breaking of a promise, esp. To marry.

    Breach of the peace n. Crime of causing a public disturbance.

    Bread —n. 1 baked dough of flour and water, usu. Leavened with yeast. 2 necessary food. 3 slang money. —v. Coat with breadcrumbs for cooking. [old english]

    Bread and butter —n. One’s livelihood. —attrib. Adj. (bread-and-butter) done or produced to earn a basic living.

    Breadboard n. 1 board for cutting bread on. 2 board for making an experimental model of an electric circuit.

    Breadcrumb n. Small fragment of bread, esp. (in pl.) For use in cooking.

    Breadfruit n. 1 fruit which resembles new bread when roasted. 2 tropical evergreen tree bearing it.

    Breadline n. Subsistence level (esp. On the breadline).

    Bread sauce n. White sauce thickened with breadcrumbs.

    Breadth n. 1 distance or measurement from side to side of a thing. 2 freedom from prejudice or intolerance. [old english: related to *broad]

    Breadwinner n. Person who works to support a family.

    Break —v. (past broke; past part. Broken) 1 a separate into pieces under a blow or strain; shatter. B make or become inoperative. C break a bone in or dislocate (part of the body). 2 a interrupt (broke our journey). B have an interval (broke for tea). 3 fail to keep (a law, promise, etc.). 4 a make or become subdued or weak; (cause to) yield; destroy. B weaken the effect of (a fall, blow, etc.). C = break in 3c. 5 surpass (a record). 6 (foll. By with) end a friendship with (a person etc.). 7 a be no longer subject to (a habit). B (foll. By of) free (a person) from a habit (broke them of their addiction). 8 reveal or be revealed (broke the news; story broke). 9 a (of fine weather) change suddenly. B (of waves) curl over and foam. C (of the day) dawn. D (of clouds) move apart. E (of a storm) begin violently. 10 electr. Disconnect (a circuit). 11 a (of the voice) change with emotion. B (of a boy’s voice) change at puberty. 12 a (often foll. By up) divide (a set etc.). B change (a banknote etc.) For coins. 13 ruin financially (see also *broke adj.). 14 penetrate (e.g. A safe) by force. 15 decipher (a code). 16 make (a way, path, etc.) By force. 17 burst forth (sun broke through). 18 a (of troops) disperse in confusion. B rupture (ranks). 19 a (usu. Foll.

    Breakable —adj. Easily broken. —n. (esp. In pl.) Breakable thing.

    Breakage n. 1 a broken thing. B damage caused by breaking. 2 act or instance of breaking.

    Breakaway n. (often attrib.) Breaking away; secession (breakaway group).

    Break-dancing n. Acrobatic style of street-dancing.

    Breakdown n. 1 a mechanical failure. B loss of (esp. Mental) health. 2 collapse (breakdown of communication). 3 analysis (of statistics etc.).

    Breaker n. 1 heavy breaking wave. 2 person or thing that breaks something, esp. Disused machinery.

    Breakfast —n. First meal of the day. —v. Have breakfast.

    Breakin n. Illegal forced entry, esp. With criminal intent.

    Breaking and entering n. (formerly) the illegal entering of a building with intent to commit a felony.

    Breaking-point n. Point of greatest strain.

    Breakneck attrib. Adj. (of speed) dangerously fast.

    Break-out n. Forcible escape.

    Breakthrough n. 1 major advance or discovery. 2 act of breaking through an obstacle etc.

    Breakup n. 1 disintegration or collapse. 2 dispersal.

    Breakwater n. Barrier breaking the force of waves.

    Bream n. (pl. Same) 1 yellowish arch-backed freshwater fish. 2 (in full sea bream) similar marine fish. [french from germanic]

    Breast —n. 1 a either of two milk-secreting organs on a woman’s chest. B corresponding part of a man’s body. 2 a chest. B corresponding part of an animal. 3 part of a garment that covers the breast. 4 breast as a source of nourishment or emotion. —v. 1 contend with. 2 reach the top of (a hill). make a clean breast of confess fully. [old english]

    Breastbone n. Thin flat vertical bone in the chest between the ribs.

    Breast-feed v. Feed (a baby) from the breast.

    Breastplate n. Armour covering the breast.

    Breast-stroke n. Swimming stroke made by extending both arms forward and sweeping them back.

    Breastwork n. Low temporary defence or parapet.

    Breath n. 1 a air drawn into or expelled from the lungs. B one respiration of air. C breath as perceived by the senses. 2 a slight movement of air. B whiff (of perfume etc.). 3 whisper, murmur (esp. Of scandal). catch one’s breath 1 cease breathing momentarily in surprise etc. 2 rest to restore normal breathing. Hold one’s breath cease breathing temporarily. Out of breath gasping for air, esp. After exercise. Take one’s breath away surprise, delight, etc. Under one’s breath in a whisper. [old english]

    Breathalyser n. (also -lyzer) propr. Instrument for measuring alcohol levels in the breath exhaled into it. breathalyse v. (also -lyze) (-sing or -zing). [from breath, analyse]

    Breathe v. (-thing) 1 draw air into and expel it from the lungs. 2 be or seem alive. 3 a utter or sound (esp. Quietly). B express (breathed defiance). 4 pause. 5 send out or take in (as if) with the breath (breathed new life into them; breathed whisky). 6 (of wine etc.) Be exposed to the air. breathe again (or freely) feel relief.

    Breather n. 1 colloq. Brief pause for rest. 2 brief period in the fresh air.

    Breathing-space n. Time to recover; pause.

    Breathless adj. 1 panting, out of breath. 2 holding the breath. 3 still, windless. breathlessly adv.

    Breathtaking adj. Astounding; awe-inspiring. breathtakingly adv.

    Breath test n. Test with a breathalyser.

    Bred past and past part. Of *breed.

    Breech n. Back part of a rifle or gun barrel. [old english]

    Breech birth n. (also breech delivery) delivery of a baby with the buttocks or feet foremost.

    Breeches n.pl. Short trousers, esp. Fastened below the knee.

    Breeches buoy n. Lifebuoy with canvas breeches for the user’s legs.

    Breed —v. (past and past part. Bred) 1 (of animals) produce young. 2 propagate; raise (animals). 3 yield; result in. 4 arise; spread. 5 bring up; train. 6 create (fissile material) by nuclear reaction. —n. 1 stock of similar animals or plants within a species, usu. Developed by deliberate selection. 2 race; lineage. 3 sort, kind. breeder n. [old english]

    Breeder reactor n. Nuclear reactor creating surplus fissile material.

    Breeding n. 1 raising of offspring; propagation. 2 social behaviour; ancestry.

    Breeze1 —n. 1 gentle wind. 2 colloq. Quarrel. 3 esp. Us colloq. Easy task. —v.

    Breeze1 —n. 1 gentle wind. 2 colloq. Quarrel. 3 esp. Us colloq. Easy task. —v. (-zing) (foll. By in, out, along, etc.) Colloq. Saunter casually. [probably spanish and portuguese briza]

    Breeze2 n. Small cinders. [french: related to *braise]

    Breeze-block n. Lightweight building block, esp. Of breeze mixed with sand and cement.

    Breezy adj. (-ier, -iest) 1 slightly windy. 2 colloq. Cheerful, light-hearted, casual.

    Bren n. (in full bren gun) lightweight quick-firing machine-gun. [brno in czechoslovakia, enfield in england]

    Brent n. (in full brent-goose) small migratory goose. [origin unknown]

    Brethren see *brother.

    Breton —n. 1 native of brittany. 2 celtic language of brittany. —adj. Of brittany, its people, or language. [french, = *briton]

    Breve n. 1 mus. Note twice the length of a semibreve. 2 mark ( ) indicating a short or unstressed vowel. [var. Of *brief]

    Breviary n. (pl. -ies) book containing the roman catholic daily office. [latin: related to *brief]

    related to *brief]

    Brevity n. 1 economy of expression; conciseness. 2 shortness (of time etc.). [anglo-french: related to *brief]

    Brew —v. 1 a make (beer etc.) By infusion, boiling, and fermentation. B make (tea etc.) By infusion. 2 undergo these processes. 3 gather force; threaten (storm is brewing). 4 concoct (a plan etc.). —n. 1 liquid or amount brewed; concoction. 2 process of brewing. brew up make tea. brewer n. [old english]

    Brewery n. (pl. -ies) factory for brewing beer etc.

    Brew-up n. Instance of making tea.

    Briar1 var. Of *brier1.

    Briar2 var. Of *brier2.

    Bribe —v. (-bing) (often foll. By to + infin.) Persuade to act improperly in one’s favour by a gift of money etc. —n. Money or services offered in bribing. bribery n. [french briber beg]

    Bric-à-brac n. (also bric-a-brac) cheap ornaments, trinkets, etc. [french]

    Brick —n. 1 a small usu. Rectangular block of fired or sun-dried clay used in

    Brick —n. 1 a small usu. Rectangular block of fired or sun-dried clay used in building. B material of this. 2 child’s toy block. 3 brick-shaped thing. 4 slang generous or loyal person. —v. (foll. By in, up) close or block with brickwork. — adj. 1 built of brick (brick wall). 2 (also brick-red) dull red. [low german or dutch]

    Brickbat n. 1 piece of brick, esp. As a missile. 2 insult.

    Brickie n. Slang bricklayer.

    Bricklayer n. Person who builds with bricks, esp. For a living. bricklaying n.

    Brickwork n. Building or work in brick.

    Brickyard n. Place where bricks are made.

    Bridal adj. Of a bride or wedding. [old english]

    Bride n. Woman on her wedding day and during the period just before and after it. [old english]

    Bridegroom n. Man on his wedding day and during the period just before and after it. [old english]

    Bridesmaid n. Girl or unmarried woman attending a bride at her wedding.

    Bridge1 —n. 1 a structure providing a way across a river, road, railway, etc. B thing joining or connecting. 2 operational superstructure on a ship. 3 upper bony part of the nose. 4 piece of wood on a violin etc. Over which the strings are stretched. 5 = *bridgework. —v. (-ging) 1 be or make a bridge over. 2 reduce (a gap, deficiency, etc.). [old english]

    Bridge2 n. Card-game derived from whist. [origin unknown]

    Bridgehead n. Fortified position held on the enemy’s side of a river etc.

    Bridge roll n. Small soft bread roll.

    Bridgework n. Dentistry dental structure covering a gap, joined to the teeth on either side.

    Bridging loan n. Loan to cover the interval between buying a house etc. And selling another.

    Bridle —n. 1 headgear for controlling a horse, including reins and bit. 2 restraining thing. —v. (-ling) 1 put a bridle on. 2 curb, restrain. 3 (often foll. By up) express anger, offence, etc., esp. By throwing up the head and drawing in the chin. [old english]

    Bridle-path n. (also bridle-way) rough path for riders or walkers.

    Bridle-path n. (also bridle-way) rough path for riders or walkers.

    Brie n. A kind of soft cheese. [brie in n. France]

    Brief —adj. 1 of short duration. 2 concise; abrupt, brusque. 3 scanty (brief skirt). —n. 1 (in pl.) Short pants. 2 a summary of a case drawn up for counsel. B piece of work for a barrister. 3 instructions for a task. 4 papal letter on discipline. —v. 1 instruct (a barrister) by brief. 2 inform or instruct in advance. hold a brief for argue in favour of. In brief to sum up. briefly adv. Briefness n. [latin brevis short]

    Briefcase n. Flat document case.

    Brier1 n. (also briar) wild rose or other prickly bush. [old english]

    Brier2 n. (also briar) 1 white heath of s. Europe. 2 tobacco pipe made from its root. [french bruyère]

    Brig. Abbr. Brigadier.

    Brig1 n. Two-masted square-rigged ship. [abbreviation of *brigantine]

    Brig2 n. Scot. & n.engl. Bridge. [var. Of *bridge1]

    Brigade n. 1 military unit, usu. Three battalions, as part of a division. 2 group organized for a special purpose. [italian briga strife]

    organized for a special purpose. [italian briga strife]

    Brigadier n. 1 officer commanding a brigade. 2 staff officer of similar standing.

    Brigand n. Member of a robber band; bandit. brigandage n. [italian brigante: related to *brigade]

    Brigantine n. Two-masted ship with a square-rigged foremast and a fore-and-aft rigged mainmast. [french or italian: related to *brigand]

    Bright —adj. 1 emitting or reflecting much light; shining. 2 intense, vivid. 3 clever. 4 cheerful. —adv. Esp. Poet. Brightly. brightly adv. Brightness n. [old english]

    Brighten v. Make or become brighter.

    Bright’s disease n. Kidney disease. [bright, name of a physician]

    Brill1 n. (pl. Same) european flat-fish. [origin unknown]

    Brill2 adj. Colloq. = *brilliant adj. 4. [abbreviation]

    Brilliant —adj. 1 very bright; sparkling. 2 outstandingly talented. 3 showy. 4 colloq. Excellent. —n. Diamond of the finest cut with many facets. brilliance n. Brilliantly adv. [french briller shine, from italian]

    Brilliantly adv. [french briller shine, from italian]

    Brilliantine n. Dressing for making the hair glossy. [french: related to *brilliant]

    Brim —n. 1 edge or lip of a vessel. 2 projecting edge of a hat. —v. (-mm-) fill or be full to the brim. brim over overflow. [origin unknown]

    Brim-full adj. (also brimful) filled to the brim.

    Brimstone n. Archaic sulphur. [from burn1, stone]

    Brindled adj. (esp. Of domestic animals) brown or tawny with streaks of another colour. [scandinavian]

    Brine n. 1 water saturated or strongly impregnated with salt. 2 sea water. [old english]

    Bring v. (past and past part. Brought) 1 come carrying; lead, accompany; convey. 2 cause or result in (war brings misery). 3 be sold for; produce as income. 4 a prefer (a charge). B initiate (legal action). 5 cause to become or to reach a state (brings me alive; cannot bring myself to agree). 6 adduce (evidence, an argument, etc.). bring about cause to happen. Bring back call to mind. Bring down 1 cause to fall. 2 lower (a price). Bring forth 1 give birth to. 2 cause. Bring forward 1 move to an earlier time. 2 transfer from the previous page or account. 3 draw attention to. Bring home to cause to realize fully. Bring the house down receive rapturous applause. Bring in 1 introduce. 2 yield as income or profit. Bring off achieve successfully. Bring on cause to happen, appear, or make progress. Bring out 1 emphasize; make evident. 2 publish. Bring over convert to

    progress. Bring out 1 emphasize; make evident. 2 publish. Bring over convert to one’s own side. Bring round 1 restore to consciousness. 2 persuade. Bring through aid (a person) through adversity, esp. Illness. Bring to restore to consciousness (brought him to). Bring up 1 rear (a child). 2 vomit. 3 call attention to. 4 (absol.) Stop suddenly. [old english]

    Bring-and-buy sale n. Charity sale at which people bring items for sale and buy those brought by others.

    Brink n. 1 extreme edge of land before a precipice, river, etc. 2 furthest point before danger, discovery, etc. on the brink of about to experience or suffer; in imminent danger of. [old norse]

    Brinkmanship n. Pursuit (esp. Habitual) of danger etc. To the brink of catastrophe.

    Briny —adj. (-ier, -iest) of brine or the sea; salty. —n. (prec. By the) slang the sea.

    Briquette n. Block of compressed coal-dust as fuel. [french diminutive: related to *brick]

    Brisk —adj. 1 quick, lively, keen (brisk pace, trade). 2 enlivening (brisk wind). —v. (often foll. By up) make or grow brisk. briskly adv. Briskness n. [probably french *brusque]

    Brisket n. Animal’s breast, esp. As a joint of meat. [french]

    Brisling n. Small herring or sprat. [norwegian and danish]

    Bristle —n. Short stiff hair, esp. One on an animal’s back, used in brushes. —v. (-ling) 1 a (of hair) stand upright. B make (hair) do this. 2 show irritation. 3 (usu. Foll. By with) be covered or abundant (in). bristly adj. (-ier, -iest). [old english]

    Brit n. Colloq. British person. [abbreviation]

    Britannia n. Personification of britain, esp. As a helmeted woman with shield and trident. [latin]

    Britannia metal n. Silvery alloy of tin, antimony, and copper.

    Britannic adj. (esp. In his or her britannic majesty) of britain.

    Briticism n. Idiom used only in britain. [after gallicism]

    British —adj. Of great britain, the british commonwealth, or their people. —n. (prec. By the; treated as pl.) The british people. [old english]

    British english n. English as used in great britain.

    British legion n. = *royal british legion.

    British summer time n. = *summer time.

    British thermal unit n. Amount of heat needed to raise 1 lb of water through one degree fahrenheit, equivalent to 1.055 x 103 joules.

    Briton n. 1 inhabitant of s. Britain before the roman conquest. 2 native or inhabitant of great britain. [latin britto -onis]

    Brittle adj. Hard and fragile; apt to break. brittlely adv. (also brittly). [old english]

    Brittle-bone disease n. = *osteoporosis.

    Broach —v. 1 raise for discussion. 2 pierce (a cask) to draw liquor. 3 open and start using. —n. 1 bit for boring. 2 roasting-spit. [latin broccus projecting]

    Broad —adj. 1 large in extent from one side to the other; wide. 2 in breadth (two metres broad). 3 extensive (broad acres). 4 full and clear (broad daylight). 5 explicit (broad hint). 6 general (broad intentions, facts). 7 tolerant, liberal (broad view). 8 coarse (broad humour). 9 markedly regional (broad scots). —n. 1 broad part (broad of the back). 2 us slang woman. 3 (the broads) large areas of water in e. Anglia, formed where rivers widen. broadly adv. Broadness n. [old english]

    Broad bean n. 1 bean with large edible flat seeds. 2 one such seed.

    Broad bean n. 1 bean with large edible flat seeds. 2 one such seed.

    Broadcast —v. (past and past part. Broadcast) 1 transmit by radio or television. 2 take part in such a transmission. 3 scatter (seed etc.). 4 disseminate (information) widely. —n. Radio or television programme or transmission. broadcaster n. Broadcasting n.

    Broadcloth n. Fine cloth of wool, cotton, or silk.

    Broaden v. Make or become broader.

    Broad gauge n. Railway track with a wider than standard gauge.

    Broad-leaved adj. (of a tree) deciduous and hard-timbered.

    Broadloom adj. (esp. Of carpet) woven in broad widths.

    Broad-minded adj. Tolerant, liberal.

    Broadsheet n. 1 large-sized newspaper. 2 large sheet of paper printed on one side only.

    Broadside n. 1 vigorous verbal attack. 2 simultaneous firing of all guns from one side of a ship. 3 side of a ship above the water between the bow and quarter.

    side of a ship. 3 side of a ship above the water between the bow and quarter. broadside on sideways on.

    Broadsword n. Broad-bladed sword, for cutting rather than thrusting.

    Brocade —n. Rich fabric woven with a raised pattern. —v. (-ding) weave in this way. [italian brocco twisted thread]

    Broccoli n. Brassica with greenish flower-heads. [italian]

    Brochure n. Pamphlet or booklet, esp. With descriptive information. [french brocher stitch]

    Broderie anglaise n. Open embroidery on white linen etc. [french, = english embroidery]

    Brogue1 n. 1 strong outdoor shoe with ornamental perforations. 2 rough shoe of untanned leather. [gaelic and irish brog from old norse]

    Brogue2 n. Marked accent, esp. Irish. [perhaps related to *brogue1]

    Broil v. Esp. Us 1 grill (meat). 2 make or become very hot, esp. From the sun. [french bruler burn]

    Broiler n. Young chicken for broiling or roasting.

    Broke past of *break. —predic. Adj. Colloq. Having no money.

    Broken past part. Of *break. —adj. 1 having been broken. 2 reduced to despair; beaten. 3 (of language) badly spoken, esp. By a foreigner. 4 interrupted (broken sleep).

    Broken-down adj. 1 worn out by age, use, etc. 2 not functioning.

    Broken-hearted adj. Overwhelmed with grief.

    Broken home n. Family disrupted by divorce or separation.

    Broker n. 1 agent; middleman. 2 member of the stock exchange dealing in stocks and shares. 3 official appointed to sell or appraise distrained goods. broking n. [anglo-french]

    Usage in sense 2, brokers have officially been called broker-dealers in the uk since oct. 1986, and entitled to act as agents and principals in share dealings.

    Brokerage n. Broker’s fee or commission.

    Brolly n. (pl. -ies) colloq. Umbrella. [abbreviation]

    Bromide n. 1 any binary compound of bromine. 2 trite remark. 3 reproduction or proof on paper coated with silver bromide emulsion.

    Bromine n. Poisonous liquid element with a choking smell. [greek bromos stink]

    Bronchial adj. Of the bronchi (see *bronchus) or of the smaller tubes into which they divide.

    Bronchitis n. Inflammation of the mucous membrane in the bronchial tubes.

    Bronchus n. (pl. -chi) either of the two main divisions of the windpipe. [latin from greek]

    Bronco n. (pl. -s) wild or half-tamed horse of the western us. [spanish, = rough]

    Brontosaurus n. (pl. -ruses) large plant-eating dinosaur with a long whiplike tail. [greek bronte thunder, sauros lizard]

    Bronze —n. 1 alloy of copper and tin. 2 its brownish colour. 3 thing of bronze, esp. A sculpture. —adj. Made of or coloured like bronze. —v. (-zing) make or become brown; tan. [french from italian]

    Bronze age n. Archaeol. Period when weapons and tools were usu. Made of bronze.

    bronze.

    Bronze medal n. Medal, usu. Awarded as third prize.

    Brooch n. Ornamental hinged pin. [french broche: related to *broach]

    Brood —n. 1 young of esp. A bird born or hatched at one time. 2 colloq. Children in a family. —v. 1 worry or ponder (esp. Resentfully). 2 (of a bird) sit on eggs to hatch them. [old english]

    Broody adj. (-ier, -iest) 1 (of a hen) wanting to brood. 2 sullenly thoughtful. 3 colloq. (of a woman) wanting pregnancy.

    Brook1 n. Small stream. [old english]

    Brook2 v. (usu. With neg.) Literary tolerate, allow. [old english]

    Broom n. 1 long-handled brush for sweeping. 2 shrub with bright yellow flowers. [old english]

    Broomstick n. Handle of a broom.

    Bros. Abbr. Brothers (esp. In the name of a firm).

    Broth n. Thin soup of meat or fish stock. [old english]

    Brothel n. Premises for prostitution. [originally = worthless fellow, from old english]

    Brother n. 1 man or boy in relation to his siblings. 2 close male friend or associate. 3 (pl. Also brethren) a member of a male religious order, esp. A monk. B fellow christian etc. 4 fellow human being. brotherly adj. [old english]

    Brother german see *german.

    Brotherhood n. 1 relationship between brothers. 2 association of people with a common interest. 3 community of feeling between human beings.

    Brother-in-law n. (pl. Brothers-in-law) 1 one’s wife’s or husband’s brother. 2 one’s sister’s or sister-in-law’s husband.

    Brought past and past part. Of *bring.

    Brouhaha n. Commotion; sensation. [french]

    Brow n. 1 forehead. 2 eyebrow. 3 summit of a hill etc. 4 edge of a cliff etc. [old english]

    Browbeat v. (past -beat; past part. -beaten) intimidate, bully.

    Brown —adj. 1 having the colour of dark wood or rich soil. 2 dark-skinned or suntanned. 3 (of bread) made from wholemeal or wheatmeal flour. —n. 1 brown colour or pigment. 2 brown clothes or material. —v. Make or become brown. browned off colloq. Fed up, disheartened.

    Brown bear n. Large n. American brown bear.

    Brown coal n. = *lignite.

    Brownie n. 1 (in full brownie guide) junior guide. 2 (brownie) small square of chocolate cake with nuts. 3 (brownie) benevolent elf.

    Brownie point n. Colloq. Notional mark awarded for good conduct etc.

    Browning n. Additive to colour gravy.

    Brown owl n. 1 any of various owls, esp. The tawny owl. 2 (brown owl) adult leader of brownie guides.

    Brown rice n. Unpolished rice.

    Brown sugar n. Unrefined or partially refined sugar.

    Brown sugar n. Unrefined or partially refined sugar.

    Browse —v. (-sing) 1 read desultorily or look over goods for sale. 2 (often foll. By on) feed on leaves, twigs, etc. —n. 1 twigs, shoots, etc. As fodder. 2 act of browsing. [french brost bud]

    Brucellosis n. Bacterial disease, esp. Of cattle. [sir d. Bruce, name of a physician]

    Bruise —n. 1 discolouration of the skin caused esp. By a blow. 2 similar damage on a fruit etc. —v. (-sing) 1 a inflict a bruise on. B hurt mentally. 2 be susceptible to bruising. [originally = crush, from old english]

    Bruiser n. Colloq. 1 large tough-looking person. 2 professional boxer.

    Bruit v. (often foll. By abroad, about) spread (a report or rumour). [french, = noise]

    Brunch n. Combined breakfast and lunch. [portmanteau word]

    Brunette n. Woman with dark brown hair. [french diminutive]

    Brunt n. Chief impact of an attack, task, etc. (esp. Bear the brunt of). [origin unknown]

    Brush —n. 1 implement with bristles, hair, wire, etc. Set into a block, for cleaning, painting, arranging the hair, etc. 2 act of brushing. 3 (usu. Foll. By with) short esp. Unpleasant encounter. 4 fox’s bushy tail. 5 piece of carbon or metal as an electrical contact esp. With a moving part. 6 = *brushwood 2. —v. 1 sweep, scrub, treat, or tidy with a brush. 2 remove or apply with a brush. 3 graze in passing. brush aside dismiss curtly or lightly. Brush off dismiss abruptly. Brush up 1 clean up or smarten. 2 revise (a subject). [french]

    Brush-off n. Abrupt dismissal.

    Brush-up n. Act of brushing up.

    Brushwood n. 1 undergrowth, thicket. 2 cut or broken twigs etc.

    Brushwork n. 1 use of the brush in painting. 2 painter’s style in this.

    Brusque adj. Abrupt or offhand. brusquely adv. Brusqueness n. [italian brusco sour]

    Brussels sprout n. 1 brassica with small cabbage-like buds on a stem. 2 such a bud. [brussels in belgium]

    Brutal adj. 1 savagely cruel. 2 harsh, merciless. brutality n. (pl. -ies). Brutally adv. [french: related to *brute]

    Brutalize v. (also -ise) (-zing or -sing) 1 make brutal. 2 treat brutally.

    Brute —n. 1 a brutal or violent person. B colloq. Unpleasant person or difficult thing. 2 animal. —attrib. Adj. 1 unthinking (brute force). 2 cruel; stupid; sensual. brutish adj. Brutishly adv. Brutishness n. [latin brutus stupid]

    Bryony n. (pl. -ies) climbing plant with red berries. [latin from greek]

    Bs abbr. 1 bachelor of surgery. 2 british standard(s).

    B.sc. Abbr. Bachelor of science.

    Bse abbr. Bovine spongiform encephalopathy, a usu. Fatal cattle disease.

    Bsi abbr. British standards institution.

    Bst abbr. 1 british summer time. 2 bovine somatotrophin, a growth hormone added to cattle-feed to boost milk production.

    Bt abbr. British telecom.

    Bt. Abbr. Baronet.

    Bt. Abbr. Baronet.

    B.th.u. Abbr. (also b.t.u., btu, b.th.u.) British thermal unit(s).

    Bubble —n. 1 a thin sphere of liquid enclosing air etc. B air-filled cavity in a liquid or solidified liquid. 2 transparent domed canopy. 3 visionary or unrealistic project. —v. (-ling) 1 rise in or send up bubbles. 2 make the sound of boiling. bubble over (often foll. By with) be exuberant. [imitative]

    Bubble and squeak n. Cooked cabbage etc. Fried with cooked potatoes.

    Bubble bath n. Foaming preparation for adding to bath water.

    Bubble car n. Small domed car.

    Bubble gum n. Chewing-gum that can be blown into bubbles.

    Bubbly —adj. (-ier, -iest) 1 having or like bubbles. 2 exuberant. —n. Colloq. Champagne.

    Bubo n. (pl. -es) inflamed swelling in the armpit or groin. [greek boubon groin]

    Bubonic plague n. Contagious disease with buboes.

    Buccaneer n. 1 pirate. 2 unscrupulous adventurer. buccaneering n. & adj.

    Buccaneer n. 1 pirate. 2 unscrupulous adventurer. buccaneering n. & adj. [french]

    Buck1 —n. 1 male deer, hare, rabbit, etc. 2 archaic dandy. 3 (attrib.) Slang male. —v. 1 (of a horse) jump upwards with its back arched. 2 (usu. Foll. By off) throw (a rider) in this way. 3 (usu. Foll. By up) colloq. A cheer up. B hurry up; make an effort. [old english]

    Buck2 n. Us slang dollar. [origin unknown]

    Buck3 n. Slang (in poker) article placed before the next dealer. pass the buck colloq. Shift responsibility (to another). [origin unknown]

    Bucket —n. 1 a round open container with a handle, for carrying or drawing water etc. B amount contained in this. 2 (in pl.) Colloq. Large quantities, esp. Of rain or tears. 3 scoop in a water wheel, dredger, etc. —v. (-t-) colloq. 1 (often foll. By down) (esp. Of rain) pour heavily. 2 (often foll. By along) move or drive fast or bumpily. [anglo-french]

    Bucket seat n. Seat with a rounded back for one person, esp. In a car.

    Bucket-shop n. 1 unregistered broking agency. 2 colloq. Travel agency specializing in cheap air tickets.

    Buckle —n. Clasp with a hinged pin for securing a belt, strap, etc. —v. (-ling) 1 (often foll. By up, on, etc.) Fasten with a buckle. 2 (often foll. By up) (cause to) crumple under pressure. buckle down make a determined effort. [latin buccula

    cheek-strap]

    Buckler n. Hist. Small round shield.

    Buckram n. Coarse linen etc. Stiffened with paste etc. [french boquerant]

    Buck’s fizz n. Cocktail of champagne and orange juice. [buck’s club in london]

    Buckshee adj. & adv. Slang free of charge. [corruption of *baksheesh]

    Buckshot n. Coarse lead shot.

    Buckskin n. 1 leather from a buck’s skin. 2 thick smooth cotton or woollen cloth.

    Buckthorn n. Thorny shrub with berries formerly used as a purgative.

    Buck-tooth n. Upper projecting tooth.

    Buckwheat n. Seed of a plant related to rhubarb, used to make flour, or as an alternative to rice. [dutch, = beech-wheat]

    Bucolic —adj. Of shepherds; rustic, pastoral. —n. (usu. In pl.) Pastoral poem or

    Bucolic —adj. Of shepherds; rustic, pastoral. —n. (usu. In pl.) Pastoral poem or poetry. [greek boukolos herdsman]

    Bud —n. 1 a knoblike shoot from which a stem, leaf, or flower develops. B flower or leaf not fully open. 2 asexual outgrowth from an organism separating to form a new individual. —v. (-dd-) 1 form buds. 2 begin to grow or develop (budding artist). 3 graft a bud of (a plant) on to another. [origin unknown]

    Buddha n. 1 title of the indian philosopher gautama (5th c. Bc) and his successors. 2 sculpture etc. Of buddha. [sanskrit, = enlightened]

    Buddhism n. Asian religion or philosophy founded by gautama buddha. buddhist n. & adj.

    Buddleia n. Shrub with fragrant flowers attractive to butterflies. [buddle, name of a botanist]

    Buddy —n. (pl. -ies) esp. Us colloq. Friend or mate. [perhaps from *brother]

    Budge v. (-ging) (usu. With neg.) 1 move slightly. 2 (cause to) change an opinion. budge up (or over) make room for another person by moving. [french bouger]

    Budgerigar n. Small parrot, often kept as a cage-bird. [aboriginal]

    Budget —n. 1 amount of money needed or available. 2 a (the budget) government’s annual estimate or plan of revenue and expenditure. B similar

    estimate by a company etc. 3 (attrib.) Inexpensive. —v. (-t-) (often foll. By for) allow or arrange for in a budget. budgetary adj. [latin bulga bag]

    Budgie n. Colloq. = *budgerigar. [abbreviation]

    Buff —adj. Of a yellowish beige colour (buff envelope). —n. 1 this colour. 2 (in comb.) Colloq. Enthusiast (railway buff). 3 velvety dull-yellow ox-leather. —v. 1 polish (metal etc.). 2 make (leather) velvety. in the buff colloq. Naked. [originally = buffalo, from french buffle]

    Buffalo n. (pl. Same or -es) 1 wild ox of africa or asia. 2 n. American bison. [greek boubalos ox]

    Buffer1 n. 1 thing that deadens impact, esp. A device on a train or at the end of a track. 2 substance that maintains the constant acidity of a solution. 3 computing temporary memory area or queue for data. [imitative]

    Buffer2 n. Slang silly or incompetent old man. [perhaps from *buffer1]

    Buffer state n. Small state between two larger ones, regarded as reducing friction.

    Buffet1 n. 1 room or counter where refreshments are sold. 2 self-service meal of several dishes set out at once. 3 also sideboard or recessed cupboard. [french, = stool]

    Buffet2 —v. (-t-) 1 strike repeatedly. 2 contend with (waves etc.). —n. 1 blow, esp. Of the hand. 2 shock. [french diminutive of bufe blow]

    Buffet car n. Railway coach serving refreshments.

    Buffoon n. Clownish or stupid person. buffoonery n. [latin buffo clown]

    Bug —n. 1 a any of various insects with mouthparts modified for piercing and sucking. B esp. Us small insect. 2 slang virus; infection. 3 slang concealed microphone. 4 slang error in a computer program or system etc. 5 slang obsession, enthusiasm, etc. —v. (-gg-) 1 slang conceal a microphone in. 2 slang annoy. [origin unknown]

    Bugbear n. 1 cause of annoyance. 2 object of baseless fear. [bug = bogey]

    Bugger coarse slang (except in sense 2 of n. And 3 of v.) —n. 1 a unpleasant or awkward person or thing. B person of a specified kind (clever bugger!). 2 person who commits buggery. —v. 1 as an exclamation of annoyance (bugger it!). 2 (often foll. By up) a ruin; spoil. B exhaust. 3 commit buggery with. —int. Expressing annoyance. bugger-all nothing. Bugger about (or around) (often foll. By with) mess about. Bugger off (often in imper.) Go away. [latin bulgarus bulgarian heretic]

    Buggery n. 1 anal intercourse. 2 = *bestiality 2.

    Buggy n. (pl. -ies) 1 small, sturdy, esp. Open, motor vehicle. 2 lightweight pushchair. 3 light, horse-drawn vehicle for one or two people. [origin unknown]

    pushchair. 3 light, horse-drawn vehicle for one or two people. [origin unknown]

    Bugle —n. Brass military instrument like a small trumpet. —v. (-ling) 1 sound a bugle. 2 sound (a call etc.) On a bugle. bugler n. [latin buculus young bull]

    Bugloss n. Plant with bright blue tubular flowers, related to borage. [french buglosse from greek, = ox-tongued]

    Build —v. (past and past part. Built) 1 construct or cause to be constructed. 2 a (often foll. By up) establish or develop (built the business up). B (often foll. By on) base (hopes, theories, etc.). 3 (as built adj.) Of specified build (sturdily built). —n. 1 physical proportions (slim build). 2 style of construction; make. build in incorporate. Build on add (an extension etc.). Build up 1 increase in size or strength. 2 praise; boost. 3 gradually become established. [old english]

    Builder n. Person who builds, esp. A building contractor.

    Building n. 1 permanent fixed structure e.g. A house, factory, or stable. 2 constructing of these.

    Building society n. Public finance company paying interest to investors and lending capital for mortgages etc.

    Build-up n. 1 favourable advance publicity. 2 gradual approach to a climax. 3 accumulation or increase.

    Built past and past part. Of *build.

    Built past and past part. Of *build.

    Built-in adj. Integral.

    Built-up adj. 1 (of a locality) densely developed. 2 increased in height etc. By addition. 3 made of prefabricated parts.

    Bulb n. 1 a globular base of the stem of some plants, sending roots downwards and leaves upwards. B plant grown from this, e.g. A daffodil. 2 = *light-bulb. 3 object or part shaped like a bulb. [latin bulbus from greek, = onion]

    Bulbous adj. Bulb-shaped; fat or bulging.

    Bulge —n. 1 irregular swelling. 2 colloq. Temporary increase (baby bulge). —v. (-ging) swell outwards. bulgy adj. [latin bulga bag]

    Bulimia n. (in full bulimia nervosa) disorder in which overeating alternates with self-induced vomiting, fasting, etc. [greek bous ox, limos hunger]

    Bulk —n. 1 a size; magnitude (esp. Large). B large mass, body, etc. C large quantity. 2 (treated as pl. & usu. Prec. By the) greater part or number (the bulk of the applicants are women). 3 roughage. —v. 1 seem (in size or importance) (bulks large). 2 make (a book etc.) Thicker etc. in bulk in large quantities. [old norse]

    Bulk buying n. Buying in quantity at a discount.

    Bulkhead n. Upright partition in a ship, aircraft, etc.

    Bulky adj. (-ier, -iest) awkwardly large. bulkiness n.

    Bull1 n. 1 a uncastrated male bovine animal. B male of the whale, elephant, etc. 2 (the bull) zodiacal sign or constellation taurus. 3 bull’s-eye of a target. 4 person who buys shares hoping to sell them at a profit. take the bull by the horns face danger or a challenge boldly. bullish adj. [old norse]

    Bull2 n. Papal edict. [latin bulla seal]

    Bull3 n. 1 slang a nonsense. B unnecessary routine tasks. 2 absurdly illogical statement. [origin unknown]

    Bulldog n. 1 short-haired heavy-jowled sturdy dog. 2 tenacious and courageous person.

    Bulldog clip n. Strong sprung clip for papers.

    Bulldoze v. (-zing) 1 clear with a bulldozer. 2 colloq. A intimidate. B make (one’s way) forcibly.

    Bulldozer n. Powerful tractor with a broad vertical blade at the front for clearing ground.

    ground.

    Bullet n. Small pointed missile fired from a rifle, revolver, etc. [french diminutive of boule ball]

    Bulletin n. 1 short official news report. 2 society’s regular list of information etc. [italian diminutive: related to *bull2]

    Bulletproof adj. Designed to protect from bullets.

    Bullfight n. Public baiting, and usu. Killing, of bulls. bullfighter n. Bullfighting n.

    Bullfinch n. Pink and black finch.

    Bullfrog n. Large n. American frog with a booming croak.

    Bull-headed n. Obstinate, blundering.

    Bullion n. Gold or silver in bulk before coining, or valued by weight. [french: related to *boil1]

    Bullock n. Castrated male of domestic cattle. [old english diminutive of *bull1]

    Bullring n. Arena for bullfights.

    Bull’s-eye n. 1 centre of a target. 2 hard minty sweet. 3 hemispherical ship’s window. 4 small circular window. 5 a hemispherical lens. B lantern with this. 6 boss of glass in a blown glass sheet.

    Bullshit coarse slang —n. (often as int.) Nonsense; pretended knowledge. —v. (-tt-) talk nonsense or as if one has specialist knowledge (to). bullshitter n. [from *bull3]

    Bull-terrier n. Cross between a bulldog and a terrier.

    Bully1 —n. (pl. -ies) person coercing others by fear. —v. (-ies, -ied) persecute or oppress by force or threats. —int. (foll. By for) often iron. Expressing approval (bully for you). [dutch]

    Bully2 (in full bully off) —n. (pl. -ies) start of play in hockey in which two opponents strike each other’s sticks three times and then go for the ball. —v. (-ies, -ied) start play in this way. [origin unknown]

    Bully3 n. (in full bully beef) corned beef. [french: related to *boil1]

    Bulrush n. 1 a kind of tall rush. 2 bibl. Papyrus. [perhaps from *bull1 = coarse + *rush2]

    Bulwark n. 1 defensive wall, esp. Of earth. 2 protecting person or thing. 3 (usu. In pl.) Ship’s side above deck. [low german or dutch]

    Bum1 n. Slang buttocks. [origin uncertain]

    Bum2 us slang —n. Loafer or tramp; dissolute person. —v. (-mm-) 1 (often foll. By around) loaf or wander around. 2 cadge. —attrib. Adj. Of poor quality. [german bummler loafer]

    Bum-bag n. Slang small pouch worn on a belt round the waist or hips.

    Bumble v. (-ling) 1 (foll. By on) speak in a rambling way. 2 (often as bumbling adj.) Be inept; blunder. [from *boom1]

    Bumble-bee n. Large bee with a loud hum.

    Bumf n. Colloq. Usu. Derog. Papers, documents. [abbreviation of bum-fodder = toilet-paper]

    Bump —n. 1 dull-sounding blow or collision. 2 swelling or dent so caused. 3 uneven patch on a road etc. 4 prominence on the skull thought to indicate a mental faculty. —v. 1 a hit or come against with a bump. B (often foll. By against, into) collide. 2 (often foll. By against, on) hurt or damage by striking (bumped my head, the car). 3 (usu. Foll. By along) move along with jolts. —adv. With a bump; suddenly; violently. bump into colloq. Meet by chance. Bump off slang murder. Bump up colloq. Increase (prices etc.). bumpy adj. (-ier, -iest).

    [imitative]

    Bumper n. 1 horizontal bar at the front or back of a motor vehicle, reducing damage in a collision. 2 (usu. Attrib.) Unusually large or fine example (bumper crop). 3 cricket ball rising high after pitching. 4 brim-full glass.

    Bumper car n. = *dodgem.

    Bumpkin n. Rustic or socially inept person. [dutch]

    Bumptious adj. Offensively self-assertive or conceited. [from *bump, after fractious]

    Bun n. 1 small sweet bread roll or cake, often with dried fruit. 2 hair coiled and pinned to the head. [origin unknown]

    Bunch —n. 1 things gathered together. 2 collection; lot (best of the bunch). 3 colloq. Group; gang. —v. 1 make into a bunch; gather into close folds. 2 form into a group or crowd. [origin unknown]

    Bundle —n. 1 things tied or fastened together. 2 set of nerve fibres etc. 3 slang large amount of money. —v. (-ling) 1 (usu. Foll. By up) tie or make into a bundle. 2 (usu. Foll. By into) throw or move carelessly. 3 (usu. Foll. By out, off, away, etc.) Send away hurriedly. be a bundle of nerves (or fun etc.) Be extremely nervous (or amusing etc.). Go a bundle on slang admire; like. [low german or dutch]

    Bun fight n. Slang tea party.

    Bung —n. Stopper, esp. For a cask. —v. 1 stop with a bung. 2 slang throw. bunged up blocked up. [dutch]

    Bungalow n. One-storeyed house. [gujarati, = of bengal]

    Bungee n. (in full bungee cord, rope) elasticated cord or rope used for securing baggage or in bungee jumping.

    Bungee jumping n. Sport of jumping from a height while secured by a bungee from the ankles or a harness.

    Bungle —v. (-ling) 1 mismanage or fail at (a task). 2 work badly or clumsily. — n. Bungled attempt or work. [imitative]

    Bunion n. Swelling on the foot, esp. On the big toe. [french]

    Bunk1 n. Shelflike bed against a wall, esp. In a ship. [origin unknown]

    Bunk2 slang —v. (often foll. By off) play truant (from). —n. (in do a bunk) leave or abscond hurriedly. [origin unknown]

    Bunk3 n. Slang nonsense, humbug. [shortening of *bunkum]

    Bunk-bed n. Each of two or more tiered beds forming a unit.

    Bunker n. 1 container for fuel. 2 reinforced underground shelter. 3 sandy hollow in a golf-course. [origin unknown]

    Bunkum n. Nonsense, humbug. [buncombe in us]

    Bunny n. (pl. -ies) 1 child’s name for a rabbit. 2 (in full bunny girl) club hostess, waitress, etc., wearing rabbit ears and tail. [dial. Bun rabbit]

    Bunsen burner n. Small adjustable gas burner used in a laboratory. [bunsen, name of a chemist]

    Bunting1 n. Small bird related to the finches. [origin unknown]

    Bunting2 n. 1 flags and other decorations. 2 loosely-woven fabric for these. [origin unknown]

    Bunting2 n. 1 flags and other decorations. 2 loosely-woven fabric for these. [origin unknown]

    Buoy —n. 1 anchored float as a navigation mark etc. 2 lifebuoy. —v. 1 (usu. Foll. By up) a keep afloat. B encourage, uplift. 2 (often foll. By out) mark with a buoy. [dutch, perhaps from latin boia collar]

    Buoyant adj. 1 able or apt to keep afloat. 2 resilient; exuberant. buoyancy n. [french or spanish: related to *buoy]

    Bupa abbr. British united provident association, a private health insurance organization.

    Bur n. 1 a prickly clinging seed-case or flower-head. B any plant having these. 2 clinging person. 3 var. Of *burr n. 2. [scandinavian]

    Burble v. 1 talk ramblingly. 2 make a bubbling sound. [imitative]

    Burbot n. (pl. Same) eel-like freshwater fish. [french]

    Burden —n. 1 load, esp. A heavy one. 2 oppressive duty, expense, emotion, etc. 3 bearing of loads (beast of burden). 4 a refrain of a song. B chief theme of a speech, book, etc. —v. Load with a burden; oppress. burdensome adj. [old english: related to *birth]

    Burden of proof n. Obligation to prove one’s case.

    Burdock n. Plant with prickly flowers and docklike leaves. [from bur, dock3]

    Bureau n. (pl. -x or -s) 1 a desk with drawers and usu. An angled hinged top. B us chest of drawers. 2 a office or department for specific business. B government department. [french, originally = baize]

    Bureaucracy n. (pl. -ies) 1 a government by central administration. B state etc. So governed. 2 government officials, esp. Regarded as oppressive and inflexible. 3 conduct typical of these.

    Bureaucrat n. 1 official in a bureaucracy. 2 inflexible administrator. bureaucratic adj. Bureaucratically adv.

    Buret n. (brit. Burette) graduated glass tube with an end-tap for measuring liquid in chemical analysis. [french]

    Burette n. (us buret) graduated glass tube with an end-tap for measuring liquid in chemical analysis. [french]

    Burgeon v. Literary grow rapidly; flourish. [latin burra wool]

    Burger n. Colloq. Hamburger. [abbreviation]

    Burgher n. Citizen of a continental town. [german or dutch]

    Burglar n. Person who commits burglary. [anglo-french]

    Burglar n. Person who commits burglary. [anglo-french]

    Burglary n. (pl. -ies) 1 illegal entry with intent to commit theft, do bodily harm, or do damage. 2 instance of this.

    Usage before 1968 in english law, burglary was a crime under statute and common law; since 1968 it has been a statutory crime only; cf. *housebreaking.

    Burgle v. (-ling) commit burglary (on).

    Burgomaster n. Mayor of a dutch or flemish town. [dutch]

    Burgundy n. (pl. -ies) 1 (also burgundy) a red or white wine from burgundy in e. France. B hist. Similar wine from elsewhere. 2 dark red colour of this.

    Burial n. 1 a burying of a corpse. B funeral. 2 archaeol. Grave or its remains.

    Burin n. 1 tool for engraving copper or wood. 2 archaeol. Chisel-pointed flint tool. [french]

    Burk var. Of *berk.

    Burlesque —n. 1 a comic imitation, parody. B this as a genre. 2 us variety show, esp. With striptease. —adj. Of or using burlesque. —v. (-ques, -qued, -quing)

    esp. With striptease. —adj. Of or using burlesque. —v. (-ques, -qued, -quing) parody. [italian burla mockery]

    Burly adj. (-ier, -iest) large and sturdy. [old english]

    Burn1 —v. (past and past part. Burnt or burned) 1 (cause to) be consumed or destroyed by fire. 2 blaze or glow with fire. 3 (cause to) be injured or damaged by fire, heat, radiation, acid, etc. 4 use or be used as fuel etc. 5 char in cooking. 6 produce (a hole, mark, etc.) By fire or heat. 7 a heat (clay, chalk, etc.). B harden (bricks) by fire. 8 colour, tan, or parch with heat or light. 9 (be) put to death by fire. 10 cauterize, brand. 11 make, be, or feel hot, esp. Painfully. 12 (often foll. By with) (cause to) feel great emotion or passion (burn with shame). 13 slang drive fast. —n. Mark or injury caused by burning. burn one’s boats (or bridges) commit oneself irrevocably. Burn the candle at both ends work etc. Excessively.

    Burn2 n. Scot. Brook. [old english]

    Burner n. Part of a gas cooker, lamp, etc. That emits the flame.

    Burning adj. 1 ardent, intense. 2 hotly discussed, vital, urgent.

    Burning-glass n. Lens for concentrating the sun’s rays to produce a flame.

    Burnish v. Polish by rubbing. [french brunir from brun brown]

    Burnous n. Arab or moorish hooded cloak. [arabic from greek]

    Burn-out n. Exhaustion. burnt-out adj.

    Burnt see *burn1.

    Burnt ochre n. (also burnt sienna or umber) pigment darkened by burning.

    Burnt offering n. Offering burnt on an altar as a sacrifice.

    Burp colloq. —v. 1 belch. 2 make (a baby) belch. —n. Belch. [imitative]

    Burr —n. 1 a whirring sound. B rough sounding of the letter r. 2 (also bur) a rough edge on metal or paper. B surgeon’s or dentist’s small drill. 3 var. Of *bur 1, 2. —v. Make a burr. [imitative]

    Burrow —n. Hole or tunnel dug by a rabbit etc. As a dwelling or shelter. —v. 1 make a burrow. 2 make (a hole, one’s way, etc.) (as) by digging. 3 (foll. By into) investigate, search. [apparently var. Of *borough]

    Bursar n. 1 treasurer, esp. Of a college. 2 holder of a bursary. [medieval latin bursarius from bursa purse]

    Bursary n. (pl. -ies) grant, esp. A scholarship. [medieval latin: related to *bursar]

    Burst —v. (past and past part. Burst) 1 (cause to) break violently apart; open forcibly from within. 2 a (usu. Foll. By in, out) make one’s way suddenly or by force. B break away from or through (river burst its banks). 3 be full to overflowing. 4 appear or come suddenly (burst into flame). 5 (foll. By into) suddenly begin to shed (tears) or utter. 6 seem about to burst from effort, excitement, etc. —n. 1 act of bursting. 2 sudden issue or outbreak (burst of flame; burst of applause). 3 sudden effort, spurt. burst out 1 suddenly begin (burst out laughing). 2 exclaim. [old english]

    Burton n. go for a burton slang be lost, destroyed, or killed. [origin uncertain]

    Bury v. (-ies, -ied) 1 place (a corpse) in the earth, a tomb, or the sea. 2 lose by death (buried two sons). 3 a put or hide under ground. B cover up; conceal. 4 consign to obscurity; forget. 5 (refl. Or passive) involve deeply (buried in a book). bury the hatchet cease to quarrel. [old english]

    Bus —n. (pl. Buses or us busses) 1 large esp. Public passenger vehicle, usu. Travelling a fixed route. 2 colloq. Car, aeroplane, etc. —v. (buses or busses, bussed, bussing) 1 go by bus. 2 us transport by bus, esp. To aid racial integration. [abbreviation of *omnibus]

    Busby n. (pl. -ies) tall fur hat worn by hussars etc. [origin unknown]

    Bush1 n. 1 shrub or clump of shrubs. 2 thing like a bush, esp. A clump of hair. 3 (esp. In australia and africa) uncultivated area; woodland or forest. [old english and old norse]

    Bush2 —n. 1 metal lining for a hole enclosing a revolving shaft etc. 2 sleeve giving electrical insulation. —v. Fit with a bush. [dutch busse box]

    Bush-baby n. (pl. -ies) small african lemur.

    Bushed adj. Colloq. Tired out.

    Bushel n. Measure of capacity for corn, fruit, etc. (8 gallons or 36.4 litres). [french]

    Bushfire n. Forest or scrub fire often spreading widely.

    Bushman n. 1 traveller or dweller in the australian bush. 2 (bushman) member or language of a s.african aboriginal people.

    Bush telegraph n. Rapid spreading of information, rumour, etc.

    Bushy adj. (-ier, -iest) 1 growing thickly like a bush. 2 having many bushes.

    Business n. 1 one’s regular occupation or profession. 2 one’s own concern. 3 task or duty. 4 serious work or activity. 5 (difficult or unpleasant) matter or affair. 6 thing(s) needing attention or discussion. 7 buying and selling; trade. 8 commercial firm. mind one’s own business not meddle. [old english: related to *busy]

    Businesslike adj. Efficient, systematic.

    Businessman n. (fem. Businesswoman) man or woman engaged in trade or commerce.

    Business park n. Area designed for commerce and light industry.

    Business person n. Businessman or businesswoman.

    Busk v. Perform esp. Music in the street etc. For tips. busker n. [obsolete busk peddle]

    Bus lane n. Part of a road mainly for use by buses.

    Busman n. Bus driver.

    Busman’s holiday n. Holiday spent in an activity similar to one’s regular work.

    Bus shelter n. Shelter beside a bus-stop.

    Bus station n. Centre where buses depart and arrive.

    Bus-stop n. 1 regular stopping-place of a bus. 2 sign marking this.

    Bust1 n. 1 human chest, esp. Of a woman; bosom. 2 sculpture of a person’s head, shoulders, and chest. busty adj. (-ier, -iest). [french from italian]

    Bust2 —v. (past and past part. Busted or bust) colloq. 1 break, burst. 2 a raid, search. B arrest. —adj. (also busted) 1 broken, burst. 2 bankrupt. bust up 1 collapse. 2 (esp. Of a married couple) separate. [var. Of *burst]

    Bustard n. Large land bird that can run very fast. [latin avis tarda slow bird (‘slow’ unexplained)]

    Buster n. Esp. Us slang mate; fellow. [from *bust2]

    Bustier n. Strapless close-fitting bodice. [french]

    Bustle1 —v. (-ling) 1 (often foll. By about) (cause to) move busily and energetically. 2 (as bustling adj.) Active, lively. —n. Excited or energetic activity. [perhaps from obsolete busk prepare]

    Bustle2 n. Hist. Padding worn under a skirt to puff it out behind. [origin unknown]

    Bust-up n. 1 quarrel. 2 collapse.

    Busy —adj. (-ier, -iest) 1 occupied or engaged in work etc. 2 full of activity; fussy (busy evening, street; busy design). 3 esp. Us (of a telephone line) engaged. —v. (-ies, -ied) (often refl.) Keep busy; occupy. busily adv. [old english]

    Busybody n. (pl. -ies) meddlesome person.

    Busy lizzie n. Plant with abundant esp. Red, pink, or white flowers.

    But —conj. 1 a nevertheless, however (tried but failed). B on the other hand; on the contrary (i am old but you are young). 2 except, otherwise than (cannot choose but do it; what could we do but run?). 3 without the result that (it never rains but it pours). —prep. Except; apart from; other than (all cried but me; nothing but trouble). —adv. 1 only; no more than; only just (we can but try; is but a child; had but arrived). 2 in emphatic repetition; definitely (would see nobody, but nobody). —rel. Pron. Who not; that not (not a man but feels pity). —n. Objection (ifs and buts). but for without the help or hindrance etc. Of (but for you i’d be rich). But one (or two etc.) Excluding one (or two etc.) From the number (next door but one; last but one). But then however (i won, but then i am older). [old english]

    Butane n. Gaseous alkane hydrocarbon, used in liquefied form as fuel. [from *butyl]

    Butch adj. Slang masculine; tough-looking. [origin uncertain]

    Butcher —n. 1 a person who deals in meat. B slaughterer. 2 brutal murderer. — v. 1 slaughter or cut up (an animal) for food. 2 kill wantonly or cruelly. 3 colloq. Ruin through incompetence. [french boc *buck1]

    Butchery n. (pl. -ies) 1 needless or cruel slaughter (of people). 2 butcher’s trade.

    Butler n. Principal manservant of a household. [french bouteille bottle]

    Butt1 —v. 1 push or strike with the head or horns. 2 (cause to) meet edge to edge. —n. 1 push with the head. 2 join of two edges. butt in interrupt, meddle. [french from germanic]

    Butt2 n. 1 (often foll. By of) object of ridicule etc. 2 a mound behind a target. B (in pl.) Shooting-range. [french but goal]

    Butt3 n. 1 thicker end, esp. Of a tool or weapon. 2 stub of a cigarette etc. 3 esp. Us slang buttocks. [dutch]

    Butt4 n. Cask. [latin buttis]

    Butter —n. 1 solidified churned cream, used as a spread and in cooking. 2 substance of similar texture (peanut butter). —v. Spread, cook, or serve with butter. butter up colloq. Flatter. [greek bouturon]

    Butter-bean n. 1 flat, dried, white lima bean. 2 yellow-podded bean.

    Butter-cream n. Mixture of butter, icing sugar, etc., as a filling etc. For a cake.

    Buttercup n. Wild plant with yellow cup-shaped flowers.

    Butterfat n. Essential fats of pure butter.

    Butter-fingers n. Colloq. Person prone to drop things.

    Butterfly n. (pl. -flies) 1 insect with four usu. Brightly coloured wings. 2 (in pl.) Colloq. Nervous sensation in the stomach.

    Butterfly nut n. A kind of wing-nut.

    Butterfly stroke n. Stroke in swimming, with arms raised and lifted forwards together.

    Butter-icing n. = *butter-cream.

    Buttermilk n. Liquid left after churning butter.

    Butter muslin n. Thin loosely-woven cloth, orig. For wrapping butter.

    Butterscotch n. Brittle toffee made from butter, brown sugar, etc.

    Buttery1 n. (pl. -ies) food store, esp. In a college; snack-bar etc. [related to *butt4]

    Buttery2 adj. Like or containing butter.

    Buttock n. 1 each of the two fleshy protuberances at the rear of the human trunk. 2 corresponding part of an animal. [butt ridge]

    Button —n. 1 small disc etc. Sewn to a garment as a fastener or worn as an ornament. 2 small round knob etc. Pressed to operate electronic equipment. —v. = button up 1. button up 1 fasten with buttons. 2 colloq. Complete satisfactorily. 3 colloq. Be silent. [french from germanic]

    Buttonhole —n. 1 slit in cloth for a button. 2 flower etc. Worn in a lapel buttonhole. —v. (-ling) colloq. Accost and detain (a reluctant listener).

    Button mushroom n. Young unopened mushroom.

    Buttress —n. 1 projecting support built against a wall. 2 source of help etc. —v. (often foll. By up) 1 support with a buttress. 2 support by argument etc. (buttressed by facts). [related to *butt1]

    Butty n. (pl. -ies) n.engl. Sandwich. [from *butter]

    Butyl n. The univalent alkyl radical c4h9. [latin butyrum *butter]

    Buxom adj. (esp. Of a woman) plump and rosy; busty. [earlier = pliant: related to *bow2]

    Buy —v. (buys, buying; past and past part. Bought) 1 a obtain for money etc. B serve to obtain (money can’t buy happiness; the best that money can buy). 2 a procure by bribery etc. B bribe. 3 get by sacrifice etc. 4 slang believe in, accept. 5 be a buyer for a store etc. —n. Colloq. Purchase. buy in buy a stock of. Buy into pay for a share in (an enterprise). Buy off pay to get rid of. Buy oneself out obtain one’s release (esp. From the armed services) by payment. Buy out pay (a person) for ownership, an interest, etc. Buy up 1 buy as much as possible of. 2 absorb (a firm etc.) By purchase. [old english]

    Buyer n. 1 person employed to purchase stock for a large store etc. 2 purchaser, customer.

    Buyer’s market n. (also buyers’ market) trading conditions favourable to buyers.

    Buyout n. Purchase of a controlling share in a company etc.

    Buzz —n. 1 hum of a bee etc. 2 sound of a buzzer. 3 a low murmur as of conversation. B stir; hurried activity (buzz of excitement). 4 slang telephone call. 5 slang thrill. —v. 1 hum. 2 a summon with a buzzer. B slang telephone. 3 a (often foll. By about) move busily. B (of a place) appear busy or full of excitement. buzz off slang go or hurry away. [imitative]

    Buzzard n. Large bird of the hawk family. [latin buteo falcon]

    Buzzer n. Electrical buzzing device as a signal.

    Buzz-word n. Colloq. Fashionable technical or specialist word; catchword.

    By —prep. 1 near, beside (sit by me; path by the river). 2 through the agency or means of (by proxy; poem by donne; by bus; by cheating; divide by two; killed by robbers). 3 not later than (by next week). 4 a past, beyond (drove by the church). B through; via (went by paris). 5 during (by day; by daylight). 6 to the extent of (missed by a foot; better by far). 7 according to; using as a standard or unit (judge by appearances; paid by the hour). 8 with the succession of (worse by the minute; day by day). 9 concerning; in respect of (did our duty by them; smith by name). 10 used in mild oaths (by god). 11 expressing dimensions of an area etc. (three feet by two). 12 avoiding, ignoring (passed us by). 13 inclining to (north by north-west). —adv. 1 near (sat by). 2 aside; in reserve (put £5 by). 3 past (marched by). —n. (pl. Byes) = *bye1. by and by before long; eventually. By and large on the whole. By the by (or bye) incidentally. By oneself 1 a unaided. B unprompted. 2 alone. [old english]

    By-prefix subordinate, incidental (by-effect; byroad).

    Bye1 n. 1 cricket run scored from a ball that passes the batsman without being hit. 2 status of an unpaired competitor in a sport, who proceeds to the next round by default. [from *by as a noun]

    Bye2 int. (also bye-bye) colloq. = *goodbye. [abbreviation]

    By-election n. Election to fill a vacancy arising between general elections.

    By-election n. Election to fill a vacancy arising between general elections.

    Byelorussian (also belorussian) —n. Native or language of byelorussia in eastern europe. —adj. Of byelorussia, its people, or language. [russian from belyi white, russiya russia]

    Bygone —adj. Past, antiquated. —n. (in phr. Let bygones be bygones) forgive and forget past quarrels.

    By-law n. Regulation made by a local authority or corporation. [obsolete by town]

    Byline n. 1 line naming the writer of a newspaper article etc. 2 secondary line of work. 3 goal-line or touchline.

    Bypass —n. 1 main road passing round a town or its centre. 2 a secondary channel or pipe etc. Used in emergencies. B alternative passage for the circulation of blood through the heart. —v. Avoid, go round (a town, difficulty, etc.).

    Byplay n. Secondary action, esp. In a play.

    By-product n. 1 incidental product made in the manufacture of something else. 2 secondary result.

    Byre n. Cowshed. [old english]

    Byroad n. Minor road.

    Byroad n. Minor road.

    Byssinosis n. Lung disease caused by textile fibre dust. [greek bussinos made of linen]

    Bystander n. Person present but not taking part; onlooker.

    Byte n. Computing group of eight binary digits, often representing one character. [origin uncertain]

    Byway n. 1 byroad or secluded path. 2 minor activity.

    Byword n. 1 person or thing as a notable example (is a byword for luxury). 2 familiar saying.

    Byzantine —adj. 1 of byzantium or the e. Roman empire. 2 of its highly decorated style of architecture. 3 (of a political situation etc.) Complex, inflexible, or underhand. —n. Citizen of byzantium or the e. Roman empire. byzantinism n. Byzantinist n. [latin byzantium, now istanbul]

    C

    C1 n. (pl. Cs or c’s) 1 (also c) third letter of the alphabet. 2 mus. First note of the diatonic scale of c major. 3 third hypothetical person or example. 4 third highest category etc. 5 algebra (usu. C) third known quantity. 6 (as a roman numeral) 100. 7 (also ©) copyright.

    C2 symb. Carbon.

    C3 abbr. (also c.) 1 celsius, centigrade. 2 coulomb(s), capacitance.

    C. Abbr. 1 century. 2 cent(s).

    C. Abbr. Circa.

    Ca symb. Calcium.

    Ca. Abbr. Circa.

    Caa abbr. Civil aviation authority.

    Cab n. 1 taxi. 2 driver’s compartment in a lorry, train, or crane etc. [abbreviation

    of *cabriolet]

    Cabal n. 1 secret intrigue. 2 political clique. [french from latin]

    Cabaret n. Entertainment in a nightclub or restaurant. [french, = tavern]

    Cabbage n. 1 vegetable with a round head and green or purple leaves. 2 = *vegetable 2. [french caboche head]

    Cabbage white n. Butterfly whose caterpillars feed on cabbage leaves.

    Cabby n. (also cabbie) (pl. -ies) colloq. Taxi-driver.

    Caber n. Trimmed tree-trunk tossed as a sport in the scottish highlands. [gaelic]

    Cabin n. 1 small shelter or house, esp. Of wood. 2 room or compartment in an aircraft or ship for passengers or crew. 3 driver’s cab. [french from latin]

    Cabin-boy n. Boy steward on a ship.

    Cabin cruiser n. Large motor boat with accommodation.

    Cabinet n. 1 a cupboard or case for storing or displaying things. B casing of a radio, television, etc. 2 (cabinet) committee of senior ministers in a government. [diminutive of *cabin]

    Cabinet-maker n. Skilled joiner.

    Cable —n. 1 encased group of insulated wires for transmitting electricity etc. 2 thick rope of wire or hemp. 3 cablegram. 4 (in full cable stitch) knitting stitch resembling twisted rope. —v. (-ling) transmit (a message) or inform (a person) by cablegram. [latin caplum halter, from arabic]

    Cable-car n. Small cabin suspended on a looped cable, for carrying passengers up and down a mountain etc.

    Cablegram n. Telegraph message sent by undersea cable.

    Cable television n. Television transmission by cable to subscribers.

    Cabman n. Driver of a cab.

    Caboodle n. the whole caboodle slang the whole lot. [origin uncertain]

    Caboose n. 1 kitchen on a ship’s deck. 2 us guard’s van on a train etc. [dutch]

    Cabriole n. A kind of esp. 18th-c. Curved table or chair leg. [french: related to *capriole]

    Cabriolet n. 1 car with a folding top. 2 light two-wheeled one-horse carriage with a hood. [french: related to *capriole]

    Cacao n. (pl. -s) 1 seed from which cocoa and chocolate are made. 2 tree bearing these. [spanish from nahuatl]

    Cache —n. 1 hiding-place for treasure, stores, guns, etc. 2 things so hidden. —v. (-ching) put in a cache. [french cacher hide]

    Cachet n. 1 prestige. 2 distinguishing mark or seal. 3 flat capsule of medicine. [french cacher press]

    Cachou n. Lozenge to sweeten the breath. [portuguese cachu from malay kachu]

    Cack-handed adj. Colloq. 1 clumsy. 2 left-handed. [dial. Cack excrement]

    Cackle —n. 1 clucking of a hen etc. 2 raucous laugh. 3 noisy chatter. —v. (-ling) 1 emit a cackle. 2 chatter noisily. [imitative]

    Cacophony n. (pl. -ies) harsh discordant sound. cacophonous adj. [greek kakos bad, phone sound]

    Cactus n. (pl. -ti or cactuses) plant with a thick fleshy stem and usu. Spines but

    Cactus n. (pl. -ti or cactuses) plant with a thick fleshy stem and usu. Spines but no leaves. [latin from greek]

    Cad abbr. Computer aided design.

    Cad n. Man who behaves dishonourably. caddish adj. [abbreviation of *caddie]

    Cadaver n. Esp. Med. Corpse. [latin cado fall]

    Cadaverous adj. Corpselike; very pale and thin.

    Caddie (also caddy) —n. (pl. -ies) person who carries a golfer’s clubs during play. —v. (-ies, -ied, caddying) act as a caddie. [french *cadet]

    Caddis-fly n. Small nocturnal insect living near water. [origin unknown]

    Caddis-worm n. (also caddis) larva of the caddis-fly. [origin unknown]

    Caddy1 n. (pl. -ies) small container for tea. [malay]

    Caddy2 var. Of *caddie.

    Cadence n. 1 rhythm; the measure or beat of a sound or movement. 2 fall in pitch

    Cadence n. 1 rhythm; the measure or beat of a sound or movement. 2 fall in pitch of the voice. 3 tonal inflection. 4 close of a musical phrase. [latin cado fall]

    Cadenza n. Virtuoso passage for a soloist. [italian: related to *cadence]

    Cadet n. Young trainee for the armed services or police force. cadetship n. [french, ultimately from latin caput head]

    Cadge v. (-ging) colloq. Get or seek by begging. [origin unknown]

    Cadi n. (pl. -s) judge in a muslim country. [arabic]

    Cadmium n. Soft bluish-white metallic element. [greek kadmia cadmean (earth)]

    Cadre n. 1 basic unit, esp. Of servicemen. 2 group of esp. Communist activists. [french from latin quadrus square]

    Caecum n. (us cecum) (pl. -ca) blind-ended pouch at the junction of the small and large intestines. [latin caecus blind]

    Caenozoic var. Of *cenozoic.

    Caerphilly n. A kind of mild white cheese. [caerphilly in wales]

    Caesar n. 1 title of roman emperors. 2 autocrat. [latin (c. Julius) caesar]

    Caesura n. (pl. -s) pause in a line of verse. caesural adj. [latin caedo cut]

    Café n. Small coffee-house or restaurant. [french]

    Cafeteria n. Self-service restaurant. [american spanish, = coffee-shop]

    Caffeine n. Alkaloid stimulant in tea-leaves and coffee beans. [french café coffee]

    Caftan n. (also kaftan) 1 long tunic worn by men in the near east. 2 long loose dress or shirt. [turkish]

    Cage —n. 1 structure of bars or wires, esp. For confining animals or birds. 2 similar open framework, esp. A lift in mine etc. —v. (-ging) place or keep in a cage. [latin cavea]

    Cagey adj. (also cagy) (-ier, -iest) colloq. Cautious and non-committal. cagily adv. Caginess n. [origin unknown]

    Cagoule n. Thin hooded windproof jacket. [french]

    Cahoots n.pl. in cahoots slang in collusion. [origin uncertain]

    Caiman var. Of *cayman.

    Cain n. raise cain colloq. = raise the roof. [cain, eldest son of adam (gen. 4)]

    Cainozoic var. Of *cenozoic.

    Cairn n. 1 mound of stones as a monument or landmark. 2 (in full cairn terrier) small shaggy short-legged terrier. [gaelic]

    Cairngorm n. Semiprecious form of quartz. [cairngorms, in scotland]

    Caisson n. Watertight chamber for underwater construction work. [italian cassone]

    Cajole v. (-ling) persuade by flattery, deceit, etc. cajolery n. [french]

    Cake —n. 1 mixture of flour, butter, eggs, sugar, etc., baked in the oven and often iced and decorated. 2 other food in a flat round shape (fish cake). 3 flattish compact mass (cake of soap). —v. (-king) 1 form into a compact mass. 2 (usu. Foll. By with) cover (with a hard or sticky mass). have one’s cake and eat it colloq. Enjoy both of two mutually exclusive alternatives. A piece of cake colloq. Something easily achieved. Sell (or go) like hot cakes colloq. Be sold (or

    colloq. Something easily achieved. Sell (or go) like hot cakes colloq. Be sold (or go) quickly; be popular. [old norse]

    Cakewalk n. 1 obsolete american black dance. 2 colloq. Easy task. 3 fairground entertainment consisting of a promenade moved by machinery.

    Cal abbr. Large calorie(s).

    Cal abbr. Small calorie(s).

    Calabash n. 1 gourd-bearing tree of tropical america. 2 such a gourd, esp. As a vessel for water, etc. [french from spanish]

    Calabrese n. Variety of broccoli. [italian, = calabrian]

    Calamine n. Powdered form of zinc carbonate and ferric oxide used as a skin lotion. [french from latin]

    Calamity n. (pl. -ies) disaster, great misfortune. calamitous adj. [french from latin]

    Calcareous adj. Of or containing calcium carbonate. [related to *calx]

    Calceolaria n. Plant with slipper-shaped flowers. [latin calceus shoe]

    Calces pl. Of *calx.

    Calciferol n. Vitamin (d2) promoting calcium deposition in the bones. [related to *calx]

    Calciferous adj. Yielding calcium salts, esp. Calcium carbonate.

    Calcify v. (-ies, -ied) 1 harden by the depositing of calcium salts. 2 convert or be converted to calcium carbonate. calcification n.

    Calcine v. (-ning) decompose or be decomposed by strong heat. calcination n. [french or medieval latin: related to *calx]

    Calcite n. Natural crystalline calcium carbonate. [latin: related to *calx]

    Calcium n. Soft grey metallic element occurring in limestone, marble, chalk, etc. [related to *calx]

    Calcium carbide n. Greyish solid used in the production of acetylene.

    Calcium carbonate n. White insoluble solid occurring as chalk, marble, etc.

    Calcium hydroxide n. White crystalline powder used in the manufacture of mortar.

    Calcium oxide n. White crystalline solid from which many calcium compounds are manufactured.

    Calculate v. (-ting) 1 ascertain or forecast esp. By mathematics or reckoning. 2 plan deliberately. 3 (foll. By on) rely on; reckon on. calculable adj. [latin: related to *calculus]

    Calculated adj. 1 (of an action) done deliberately or with foreknowledge. 2 (foll. By to + infin.) Designed or suitable; intended.

    Calculating adj. Scheming, mercenary.

    Calculation n. Act, process, or result of calculating. [latin: related to *calculus]

    Calculator n. Device (esp. A small electronic one) for making mathematical calculations.

    Calculus n. (pl. -luses or -li) 1 particular method of mathematical calculation or reasoning. 2 stone or mineral mass in the body. [latin, = small stone (used on an abacus)]

    Caldron var. Of *cauldron.

    Caledonian literary —adj. Of scotland. —n. Scotsman. [latin caledonia n. Britain]

    Calendar —n. 1 system fixing the year’s beginning, length, and subdivision. 2 chart etc. Showing such subdivisions. 3 timetable of dates, events, etc. —v. Enter in a calendar; register (documents). [latin: related to *calends]

    Calendar year n. Period from 1 jan. To 31 dec. Inclusive.

    Calender —n. Machine in which cloth, paper, etc. Is rolled to glaze or smooth it. —v. Press in a calender. [french]

    Calends n.pl. (also kalends) first of the month in the ancient roman calendar. [latin kalendae]

    Calendula n. Plant with large yellow or orange flowers, esp. The marigold. [latin diminutive of kalendae]

    Calf1 n. (pl. Calves) 1 young cow or bull. 2 young of other animals, e.g. The elephant, deer, and whale. 3 calfskin. [old english]

    Calf2 n. (pl. Calves) fleshy hind part of the human leg below the knee. [old norse]

    Calf-love n. Romantic adolescent love.

    Calfskin n. Calf-leather.

    Caliber n. (brit. Calibre) 1 a internal diameter of a gun or tube. B diameter of a bullet or shell. 2 strength or quality of character; ability, importance. [french from italian from arabic, = mould]

    Calibrate v. (-ting) 1 mark (a gauge) with a scale of readings. 2 correlate the readings of (an instrument or system of measurement) with a standard. 3 determine the calibre of (a gun). calibration n.

    Calibre n. (us caliber) 1 a internal diameter of a gun or tube. B diameter of a bullet or shell. 2 strength or quality of character; ability, importance. [french from italian from arabic, = mould]

    Calices pl. Of *calix.

    Calico —n. (pl. -es or us -s) 1 cotton cloth, esp. Plain white or unbleached. 2 us printed cotton fabric. —adj. 1 of calico. 2 us multicoloured. [calicut in india]

    Californium n. Artificial radioactive metallic element. [california in us, where first made]

    Caliper var. Of *calliper.

    Caliph n. Esp. Hist. Chief muslim civil and religious ruler. caliphate n. [arabic, = successor (of muhammad)]

    Calisthenics var. Of *callisthenics.

    Calix var. Of *calyx.

    Calk us var. Of *caulk.

    Call —v. 1 a (often foll. By out) cry, shout; speak loudly. B (of a bird etc.) Emit its characteristic sound. 2 communicate with by telephone or radio. 3 summon. 4 (often foll. By at, in, on) pay a brief visit. 5 order to take place (called a meeting). 6 name; describe as. 7 regard as (i call that silly). 8 rouse from sleep. 9 (foll. By for) demand. 10 (foll. By on, upon) appeal to (called on us to be quiet). 11 name (a suit) in bidding at cards. 12 guess the outcome of tossing a coin etc. —n. 1 shout, cry. 2 a characteristic cry of a bird etc. B instrument for imitating it. 3 brief visit. 4 a act of telephoning. B telephone conversation. 5 a invitation, summons. B vocation. 6 need, occasion (no call for rudeness). 7 demand (a call on one’s time). 8 signal on a bugle etc. 9 option of buying stock at a fixed price at a given date. 10 cards a player’s right or turn to make a bid. B bid made. call in 1 withdraw from circulation. 2 seek the advice or services of. Call off 1 cancel (an arrangement). 2 order (an attacker or pursuer) to desist. Call out 1 summon to action. 2 order (workers) to strike. Call the shots (or tune) colloq. Be in control; take the initiative. Call up 1 telephone. 2 recall. 3 summon to military service. On call ready or available if required. [old english from old norse]

    Call-box n. Telephone box.

    Caller n. Person who calls, esp. One who pays a visit or makes a telephone call.

    Caller n. Person who calls, esp. One who pays a visit or makes a telephone call.

    Call-girl n. Prostitute accepting appointments by telephone.

    Calligraphy n. 1 handwriting, esp. When fine. 2 art of this. calligrapher n. Calligraphic adj. Calligraphist n. [greek kallos beauty]

    Calling n. 1 profession or occupation. 2 vocation.

    Calliper n. (also caliper) 1 (in pl.) Compasses for measuring diameters. 2 metal splint to support the leg. [var. Of *calibre]

    Callisthenics n.pl. (also calisthenics) exercises for fitness and grace. callisthenic adj. [greek kallos beauty, sthenos strength]

    Callosity n. (pl. -ies) area of hard thick skin. [latin: related to *callous]

    Callous adj. 1 unfeeling, insensitive. 2 (also calloused) (of skin) hardened. callously adv. Callousness n. [latin: related to *callus]

    Callow adj. Inexperienced, immature. [old english, = bald]

    Call-up n. Summons to do military service.

    Callus n. (pl. Calluses) 1 area of hard thick skin or tissue. 2 hard tissue formed round bone ends after a fracture. [latin]

    Calm —adj. 1 tranquil, quiet, windless. 2 serene; not agitated. —n. Calm condition or period. —v. (often foll. By down) make or become calm. calmly adv. Calmness n. [greek kauma heat]

    Calomel n. Compound of mercury used as a cathartic. [greek kalos beautiful, melas black]

    Calor gas n. Propr. Liquefied butane gas stored under pressure in containers for domestic use. [latin calor heat]

    Caloric adj. Of heat or calories.

    Calorie n. (pl. -ies) unit of quantity of heat, the amount needed to raise the temperature of one gram (small calorie) or one kilogram (large calorie) of water by 1 °c. [latin calor heat]

    Calibre n. (us caliber) 1 a internal diameter of a gun or tube. B diameter of a bullet or shell. 2 strength or quality of character; ability, importance. [french from italian from arabic, = mould]

    Calices pl. Of *calix.

    Calico —n. (pl. -es or us -s) 1 cotton cloth, esp. Plain white or unbleached. 2 us

    Calico —n. (pl. -es or us -s) 1 cotton cloth, esp. Plain white or unbleached. 2 us printed cotton fabric. —adj. 1 of calico. 2 us multicoloured. [calicut in india]

    Californium n. Artificial radioactive metallic element. [california in us, where first made]

    Caliper var. Of *calliper.

    Caliph n. Esp. Hist. Chief muslim civil and religious ruler. caliphate n. [arabic, = successor (of muhammad)]

    Calisthenics var. Of *callisthenics.

    Calix var. Of *calyx.

    Calk us var. Of *caulk.

    Call —v. 1 a (often foll. By out) cry, shout; speak loudly. B (of a bird etc.) Emit its characteristic sound. 2 communicate with by telephone or radio. 3 summon. 4 (often foll. By at, in, on) pay a brief visit. 5 order to take place (called a meeting). 6 name; describe as. 7 regard as (i call that silly). 8 rouse from sleep. 9 (foll. By for) demand. 10 (foll. By on, upon) appeal to (called on us to be quiet). 11 name (a suit) in bidding at cards. 12 guess the outcome of tossing a coin etc. —n. 1 shout, cry. 2 a characteristic cry of a bird etc. B instrument for imitating it. 3 brief visit. 4 a act of telephoning. B telephone conversation. 5 a invitation, summons. B vocation. 6 need, occasion (no call for rudeness). 7 demand (a call on one’s time). 8 signal on a bugle etc. 9 option of buying stock at a fixed price

    at a given date. 10 cards a player’s right or turn to make a bid. B bid made. call in 1 withdraw from circulation. 2 seek the advice or services of. Call off 1 cancel (an arrangement). 2 order (an attacker or pursuer) to desist. Call out 1 summon to action. 2 order (workers) to strike. Call the shots (or tune) colloq. Be in control; take the initiative. Call up 1 telephone. 2 recall. 3 summon to military service. On call ready or available if required. [old english from old norse]

    Call-box n. Telephone box.

    Caller n. Person who calls, esp. One who pays a visit or makes a telephone call.

    Call-girl n. Prostitute accepting appointments by telephone.

    Calligraphy n. 1 handwriting, esp. When fine. 2 art of this. calligrapher n. Calligraphic adj. Calligraphist n. [greek kallos beauty]

    Calling n. 1 profession or occupation. 2 vocation.

    Calliper n. (also caliper) 1 (in pl.) Compasses for measuring diameters. 2 metal splint to support the leg. [var. Of *calibre]

    Callisthenics n.pl. (also calisthenics) exercises for fitness and grace. callisthenic adj. [greek kallos beauty, sthenos strength]

    Callosity n. (pl. -ies) area of hard thick skin. [latin: related to *callous]

    Callous adj. 1 unfeeling, insensitive. 2 (also calloused) (of skin) hardened. callously adv. Callousness n. [latin: related to *callus]

    Callow adj. Inexperienced, immature. [old english, = bald]

    Call-up n. Summons to do military service.

    Callus n. (pl. Calluses) 1 area of hard thick skin or tissue. 2 hard tissue formed round bone ends after a fracture. [latin]

    Calm —adj. 1 tranquil, quiet, windless. 2 serene; not agitated. —n. Calm condition or period. —v. (often foll. By down) make or become calm. calmly adv. Calmness n. [greek kauma heat]

    Calomel n. Compound of mercury used as a cathartic. [greek kalos beautiful, melas black]

    Calor gas n. Propr. Liquefied butane gas stored under pressure in containers for domestic use. [latin calor heat]

    Caloric adj. Of heat or calories.

    Calorie n. (pl. -ies) unit of quantity of heat, the amount needed to raise the temperature of one gram (small calorie) or one kilogram (large calorie) of water

    temperature of one gram (small calorie) or one kilogram (large calorie) of water by 1 °c. [latin calor heat]

    Calorific adj. Producing heat.

    Calorimeter n. Instrument for measuring quantity of heat.

    Calumniate v. (-ting) slander. [latin]

    Calumny n. (pl. -ies) slander; malicious representation. calumnious adj. [latin]

    Calvados n. Apple brandy. [calvados in france]

    Calve v. (-ving) give birth to a calf. [old english: related to *calf1]

    Calves pl. Of calf1, calf2.

    Calvinism n. Theology of calvin or his followers, stressing predestination and divine grace. calvinist n. & adj. Calvinistic adj. [calvin, name of a theologian]

    Calx n. (pl. Calces) powdery substance formed when an ore or mineral has been heated. [latin calx calc-lime]

    Calypso n. (pl. -s) w. Indian song with improvised usu. Topical words and a

    Calypso n. (pl. -s) w. Indian song with improvised usu. Topical words and a syncopated rhythm. [origin unknown]

    Calyx n. (pl. Calyces or -es) (also calix) 1 sepals forming the protective case of a flower in bud. 2 cuplike cavity or structure. [greek, = husk]

    Cam n. Projection on a wheel etc., shaped to convert circular into reciprocal or variable motion. [dutch kam comb]

    Camaraderie n. Friendly comradeship. [french]

    Camber —n. Convex surface of a road, deck, etc. —v. Build with a camber. [latin camurus curved]

    Cambrian —adj. 1 welsh. 2 geol. Of the first period in the palaeozoic era. —n. This period. [welsh: related to *cymric]

    Cambric n. Fine linen or cotton fabric. [cambrai in france]

    Cambridge blue adj. & n. (as adj. Often hyphenated) pale blue. [cambridge in england]

    Camcorder n. Combined video camera and sound recorder. [from *camera, *recorder]

    Came past of *come.

    Camel n. 1 long-legged ruminant with one hump (arabian camel) or two humps (bactrian camel). 2 fawn colour. [greek]

    Camel-hair n. Fine soft hair used in artists’ brushes or for fabric.

    Camellia n. Evergreen shrub with shiny leaves and showy flowers. [camellus, name of a botanist]

    Camembert n. A kind of soft creamy pungent cheese. [camembert in france]

    Cameo n. (pl. -s) 1 small piece of hard stone carved in relief with a background of a different colour. 2 a short descriptive literary sketch or acted scene. B small character part in a play or film, usu. Brief and played by a distinguished actor. [french and medieval latin]

    Camera n. 1 apparatus for taking photographs or moving film. 2 equipment for converting images into electrical signals. in camera law in private. [latin: related to *chamber]

    Cameraman n. Person who operates a camera professionally, esp. In film-making or television.

    Camiknickers n.pl. Women’s knickers and vest combined. [from *camisole, *knickers]

    *knickers]

    Camisole n. Women’s lightweight vest. [italian or spanish: related to *chemise]

    Camomile n. (also chamomile) aromatic plant with daisy-like flowers used esp. To make tea. [greek, = earth-apple]

    Camouflage —n. 1 a disguising of soldiers, tanks, etc. So that they blend into the background. B such a disguise. 2 the natural blending colouring of an animal. 3 misleading or evasive behaviour etc. —v. (-ging) hide by camouflage. [french camoufler disguise]

    Camp1 —n. 1 place where troops are lodged or trained. 2 temporary accommodation of huts, tents, etc., for detainees, holiday-makers, etc. 3 ancient fortified site. 4 party supporters etc. Regarded collectively. —v. Set up or spend time in a camp. [latin campus level ground]

    Camp2 colloq. —adj. 1 affected, effeminate, theatrically exaggerated. 2 homosexual. —n. Camp manner or style. —v. Behave or do in a camp way. camp it up overact; behave affectedly. campy adj. (-ier, -iest). [origin uncertain]

    Campaign —n. 1 organized course of action, esp. To gain publicity. 2 military operations towards a particular objective. —v. Take part in a campaign. campaigner n. [latin: related to *camp1]

    Campanile n. Bell-tower (usu. Free-standing), esp. In italy. [italian campana ‘bell’, from latin]

    Campanology n. 1 the study of bells. 2 bell-ringing. campanologist n. [latin campana bell]

    Campanula n. Plant with bell-shaped usu. Blue, purple, or white flowers. [diminutive: related to *campanology]

    Camp-bed n. Portable folding bed.

    Camper n. 1 person who camps. 2 large motor vehicle with beds etc.

    Camp-follower n. 1 civilian worker in a military camp. 2 disciple or adherent.

    Camphor n. Pungent white crystalline substance used in making celluloid, medicine, and mothballs. [french ultimately from sanskrit]

    Camphorate v. (-ting) impregnate or treat with camphor.

    Campion n. Wild plant with usu. Pink or white notched flowers. [origin uncertain]

    Campsite n. Place for camping.

    Campus n. (pl. -es) 1 grounds of a university or college. 2 esp. Us a university. [latin, = field]

    [latin, = field]

    Camra abbr. Campaign for real ale.

    Camshaft n. Shaft with one or more cams.

    Can1 v.aux. (3rd sing. Present can; past could) 1 a be able to; know how to. B be potentially capable of (these storms can last for hours). 2 be permitted to. [old english, = know]

    Can2 —n. 1 metal vessel for liquid. 2 sealed tin container for the preservation of food or drink. 3 (in pl.) Slang headphones. 4 (prec. By the) slang a prison. B us lavatory. —v. (-nn-) put or preserve in a can. in the can colloq. Completed, ready. [old english]

    Canada goose n. Wild n. American goose with a brownish-grey body and white neck and breast.

    Canaille n. Rabble; populace. [french from italian]

    Canal n. 1 artificial inland waterway. 2 tubular duct in a plant or animal. [latin canalis]

    Canalize v. (also -ise) (-zing or -sing) 1 provide with or convert into a canal or canals. 2 channel. canalization n. [french: related to *canal]

    Canapé n. Small piece of bread or pastry with a savoury topping. [french]

    Canard n. Unfounded rumour or story. [french, = duck]

    Canary n. (pl. -ies) small songbird with yellow feathers. [canary islands]

    Canasta n. Card-game using two packs and resembling rummy. [spanish, = basket]

    Cancan n. Lively stagedance with high kicking. [french]

    Cancel v. (-ll-; us -l-) 1 revoke or discontinue (an arrangement). 2 delete (writing etc.). 3 mark (a ticket, stamp, etc.) To invalidate it. 4 annul; make void. 5 (often foll. By out) neutralize or counterbalance. 6 math. Strike out (an equal factor) on each side of an equation etc. cancellation n. [latin: related to *chancel]

    Cancer n. 1 a malignant tumour of body cells. B disease caused by this. 2 evil influence or corruption. 3 (cancer) a constellation and fourth sign of the zodiac (the crab). B person born when the sun is in this sign. cancerous adj. Cancroid adj. [latin, = crab]

    Candela n. Si unit of luminous intensity. [latin, = candle]

    Candelabrum n. (also -bra) (pl. -bra, us -brums, -bras) large branched candlestick

    Candelabrum n. (also -bra) (pl. -bra, us -brums, -bras) large branched candlestick or lamp-holder. [latin: related to *candela]

    Usage the form candelabra is, strictly speaking, the plural. However, candelabra (singular) and candelabras (plural) are often found in informal use.

    Candid adj. 1 frank; open. 2 (of a photograph) taken informally, usu. Without subject’s knowledge. candidly adv. Candidness n. [latin candidus white]

    Candida n. Fungus causing thrush. [latin candidus: related to *candid]

    Candidate n. 1 person nominated for or seeking office, an award, etc. 2 person or thing likely to gain some distinction or position. 3 person entered for an examination. candidacy n. Candidature n. [latin, = white-robed]

    Candle n. Cylinder or block of wax or tallow with a central wick which gives light when burning. cannot hold a candle to is much inferior to. Not worth the candle not justifying cost or trouble. [latin candela]

    Candlelight n. Light from candles. candlelit adj.

    Candlemas n. Feast of the purification of the virgin mary (2 feb.). [old english: related to *mass2]

    Candlepower n. Unit of luminous intensity.

    Candlestick n. Holder for one or more candles.

    Candlewick n. 1 thick soft cotton yarn. 2 tufted material from this.

    Candor n. (brit. Candour) frankness; openness. [latin candor]

    Candour n. (us candor) frankness; openness. [latin candor]

    C. & w. Abbr. Country-and-western (music).

    Candy —n. (pl. -ies) 1 (in full sugar-candy) sugar crystallized by repeated boiling and slow evaporation. 2 us sweets; a sweet. —v. (-ies, -ied) (usu. As candied adj.) Preserve (fruit etc.) In candy. [french from arabic]

    Candyfloss n. Fluffy mass of spun sugar round a stick.

    Candystripe n. Alternate stripes of white and a colour. candystriped adj.

    Candytuft n. Plant with white, pink, or purple flowers in tufts. [candia crete, *tuft]

    Cane —n. 1 a hollow jointed stem of giant reeds or grasses. B solid stem of slender palms. 2 = *sugar cane. 3 cane used for wickerwork etc. 4 cane used as a

    walking-stick, plant support, for punishment, etc. —v. (-ning) 1 beat with a cane. 2 weave cane into (a chair etc.). [greek kanna reed]

    Cane sugar n. Sugar from sugar-cane.

    Canine —adj. Of a dog or dogs. —n. 1 dog. 2 (in full canine tooth) pointed tooth between incisors and premolars. [latin canis dog]

    Canister n. 1 small container for tea etc. 2 cylinder of shot, tear-gas, etc., exploding on impact. [greek kanastron wicker basket]

    Canker —n. 1 destructive disease of trees and plants. 2 ulcerous ear disease of animals. 3 corrupting influence. —v. 1 infect with canker. 2 corrupt. 3 (as cankered adj.) Soured, malignant. cankerous adj. [latin: related to *cancer]

    Canna n. Tropical plant with bright flowers and ornamental leaves. [latin: related to *cane]

    Cannabis n. 1 hemp plant. 2 parts of it used as a narcotic. [latin from greek]

    Canned adj. 1 pre-recorded (canned music). 2 sold in a can (canned beer). 3 slang drunk.

    Cannelloni n.pl. Tubes of pasta stuffed with a savoury mixture. [italian]

    Cannery n. (pl. -ies) canning-factory.

    Cannibal n. Person or animal that eats its own species. cannibalism n. Cannibalistic adj. [spanish from carib]

    Cannibalize v. (also -ise) (-zing or -sing) use (a machine etc.) As a source of spare parts. cannibalization n.

    Cannon —n. 1 hist. (pl. Usu. Same) large heavy esp. Mounted gun. 2 billiards hitting of two balls successively by the player’s ball. —v. (usu. Foll. By against, into) collide. [italian: related to *cane]

    Cannonade —n. Period of continuous heavy gunfire. —v. (-ding) bombard with a cannonade. [italian: related to *cannon]

    Cannon-ball n. Hist. Large ball fired by a cannon.

    Cannon-fodder n. Soldiers regarded as expendable.

    Cannot v.aux. Can not.

    Canny adj. (-ier, -iest) 1 shrewd, worldly-wise; thrifty. 2 scot. & n.engl. Pleasant, agreeable. cannily adv. Canniness n. [from *can1]

    Canoe —n. Small narrow boat with pointed ends, usu. Paddled. —v. (-noes, -noed, -noeing) travel in a canoe. canoeist n. [spanish and haitian]

    Canon n. 1 a general law, rule, principle, or criterion. B church decree or law. 2 member of a cathedral chapter. 3 body of (esp. Sacred) writings accepted as genuine. 4 the part of the roman catholic mass containing the words of consecration. 5 mus. Piece with different parts taking up the same theme successively. [greek kanon rule]

    Cañon var. Of *canyon.

    Canonical —adj. (also canonic) 1 a according to canon law. B included in the canon of scripture. 2 authoritative, accepted. 3 of a cathedral chapter or a member of it. —n. (in pl.) Canonical dress of clergy. [medieval latin: related to *canon]

    Canonist n. Expert in canon law.

    Canonize v. (also -ise) (-zing or -sing) 1 a declare officially to be a saint, usu. With a ceremony. B regard as a saint. 2 admit to the canon of scripture. 3 sanction by church authority. canonization n. [medieval latin: related to *canon]

    Canon law n. Ecclesiastical law.

    Canoodle v. (-ling) colloq. Kiss and cuddle. [origin unknown]

    Canopy —n. (pl. -ies) 1 a covering suspended over a throne, bed, etc. B sky. C overhanging shelter. 2 archit. Rooflike projection over a niche etc. 3 expanding part of a parachute. —v. (-ies, -ied) supply or be a canopy to. [greek, = mosquito-net]

    Canst archaic 2nd person sing. Of *can1.

    Cant1 —n. 1 insincere pious or moral talk. 2 language peculiar to a class, profession, etc.; jargon. —v. Use cant. [probably from latin: related to *chant]

    Cant2 —n. 1 slanting surface, bevel. 2 oblique push or jerk. 3 tilted position. — v. Push or pitch out of level; tilt. [low german or dutch, = edge]

    Can’t contr. Can not.

    Cantab abbr. Of cambridge university. [latin cantabrigiensis]

    Cantabile mus. —adv. & adj. In smooth flowing style. —n. Cantabile passage or movement. [italian, = singable]

    Cantabrigian —adj. Of cambridge or its university. —n. Person from cambridge or its university. [cantabrigia, latinized name of cambridge]

    Cantaloup n. (also cantaloupe) small round ribbed melon. [cantaluppi near rome, where it was first grown in europe]

    Cantankerous adj. Bad-tempered, quarrelsome. cantankerously adv. Cantankerousness n. [origin uncertain]

    Cantata n. Mus. Composition with vocal solos and usu. Choral and orchestral accompaniment. [italian: related to *chant]

    Canteen n. 1 a restaurant for employees in an office, factory, etc. B shop for provisions in a barracks or camp. 2 case of cutlery. 3 soldier’s or camper’s water-flask. [italian, = cellar]

    Canter —n. Horse’s pace between a trot and a gallop. —v. Go or make go at a canter. [canterbury gallop of medieval pilgrims]

    Canticle n. Song or chant with a biblical text. [latin canticum *chant]

    Cantilever n. 1 bracket or beam etc. Projecting from a wall to support a balcony etc. 2 beam or girder fixed at one end only. cantilevered adj. [origin unknown]

    Cantilever bridge n. Bridge made of cantilevers projecting from piers and connected by girders.

    Canto n. (pl. -s) division of a long poem. [latin cantus: related to *chant]

    Canton —n. Subdivision of a country, esp. Of switzerland. —v. Put (troops) into

    Canton —n. Subdivision of a country, esp. Of switzerland. —v. Put (troops) into quarters. [french, = corner: related to *cant2]

    Cantonment n. 1 lodging assigned to troops. 2 hist. Permanent military station in india. [french: related to *canton]

    Cantor n. 1 church choir leader. 2 precentor in a synagogue. [latin, = singer]

    Canvas —n. 1 strong coarse cloth used for sails and tents etc. And for oil-painting. 2 a painting on canvas, esp. In oils. —v. (-ss-; us -s-) cover with canvas. under canvas 1 in tents. 2 with sails spread. [latin: related to *cannabis]

    Canvass —v. 1 solicit votes, esp. From a constituency electorate. 2 a ascertain the opinions of. B seek custom from. 3 propose (an idea or plan etc.). —n. Canvassing, esp. Of electors. canvasser n. [originally = toss in sheet, from *canvas]

    Canyon n. (also cañon) deep gorge. [spanish cañón tube]

    Cap abbr. Common agricultural policy (of the ec).

    Cap abbr. Common agricultural policy (of the ec).

    Cap —n. 1 a soft brimless hat, usu. With a peak. B head-covering worn in a particular profession. C cap as a sign of membership of a sports team. D mortarboard. 2 a cover like a cap (kneecap). B top for a bottle, jar, pen, camera lens, etc. 3 = dutch cap. 4 = percussion cap. 5 dental crown. —v. (-pp-) 1 a put a

    cap on. B cover the top or end of. C set a limit to (charge-capping). 2 award a sports cap to. 3 form the top of. 4 surpass, excel. cap in hand humbly. If the cap fits (of a remark) if it applies to you, so be it. To cap it all after everything else. [latin cappa]

    Capability n. (pl. -ies) 1 ability, power. 2 undeveloped or unused faculty.

    Capable adj. 1 competent, able, gifted. 2 (foll. By of) a having the ability, fitness, etc. For. B admitting of (explanation, improvement, etc.). capably adv. [latin capio hold]

    Capacious adj. Roomy. capaciousness n. [latin capax: related to *capable]

    Capacitance n. 1 ability to store electric charge. 2 ratio of change in the electric charge in a system to the corresponding change in its potential.

    Capacitor n. Device able to store electric charge.

    Capacity n. (pl. -ies) 1 a power to contain, receive, experience, or produce (capacity for heat, pain, etc.). B maximum amount that can be contained or produced etc. C (attrib.) Fully occupying the available space etc. (capacity crowd). 2 mental power. 3 position or function. 4 legal competence. to capacity fully. [latin: related to *capacious]

    Caparison literary —n. 1 (usu. In pl.) Horse’s trappings. 2 equipment, finery. — v. Adorn. [spanish, = saddle-cloth]

    Cape1 n. 1 sleeveless cloak. 2 this worn over or as part of a longer cloak or coat. [latin cappa *cap]

    Cape2 n. 1 headland, promontory. 2 (the cape) the cape of good hope. [latin caput head]

    Caper1 —v. Jump or run playfully. —n. 1 playful leap. 2 a prank. B slang illicit activity. cut a caper frolic. [abbreviation of *capriole]

    Caper2 n. 1 bramble-like shrub. 2 (in pl.) Its pickled buds used esp. In a sauce. [greek kapparis]

    Capercaillie n. (also capercailzie) large european grouse. [gaelic, = horse of the forest]

    Capillarity n. The rise or depression of a liquid in a narrow tube. [french: related to *capillary]

    Capillary —attrib. Adj. 1 of or like a hair, esp. (of a tube) of very small diameter. 2 of the branching blood-vessels connecting arteries and veins. —n. (pl. -ies) 1 capillary tube. 2 capillary blood vessel. [latin capillus hair]

    Capillary action n. = *capillarity.

    Capital —n. 1 chief town or city of a country or region. 2 a money etc. With which a company starts in business. B accumulated wealth. 3 capitalists collectively. 4 capital letter. 5 head of a column or pillar. —adj. 1 a principal, most important. B colloq. Excellent. 2 a involving punishment by death. B (of an error etc.) Vitally harmful, fatal. 3 (of letters of the alphabet) large in size, used to begin sentences and names etc. make capital out of use to one’s advantage. [latin caput -itis head]

    Capital gain n. Profit from the sale of investments or property.

    Capital goods n.pl. Machinery, plant, etc.

    Capitalism n. Economic and political system dependent on private capital and profit-making.

    Capitalist —n. 1 person investing or possessing capital. 2 advocate of capitalism. —adj. Of or favouring capitalism. capitalistic adj.

    Capitalize v. (also -ise) (-zing or -sing) 1 (foll. By on) use to one’s advantage. 2 convert into or provide with capital. 3 a write (a letter of the alphabet) as a capital. B begin (a word) with a capital letter. capitalization n. [french: related to *capital]

    Capital levy n. Tax on wealth or property.

    Capital sum n. Lump sum, esp. Payable to an insured person.

    Capital transfer tax n. Hist. Tax levied on the transfer of capital by gift or bequest etc.

    Capital transfer tax n. Hist. Tax levied on the transfer of capital by gift or bequest etc.

    Usage this tax was replaced in 1986 by inheritance tax.

    Capitation n. Tax or fee paid per person. [latin: related to *capital]

    Capitular adj. Of a cathedral chapter. [latin capitulum *chapter]

    Capitulate v. (-ting) surrender. capitulation n. [medieval latin, = put under headings]

    Capo n. (pl. -s) device fitted across the strings of a guitar etc. To raise their pitch equally. [italian capo tasto head stop]

    Capon n. Castrated cock fattened for eating. [latin capo]

    Cappuccino n. (pl. -s) frothy milky coffee. [italian, = *capuchin]

    Caprice n. 1 a whim. B tendency to this. 2 lively or fanciful work of art, music,

    etc. [italian capriccio sudden start]

    Capricious adj. Subject to whims; unpredictable. capriciously adv. Capriciousness n.

    Capricorn n. 1 constellation and tenth sign of the zodiac (the goat). 2 person born when the sun is in this sign. [latin caper -pri goat, cornu horn]

    Capriole —n. Leap, caper, esp. Of a trained horse. —v. (-ling) perform this. [italian: related to *capricorn]

    Capsicum n. 1 plant with edible fruits, esp. Any of several varieties of pepper. 2 red, green, or yellow fruit of these. [latin capsa case]

    Capsize v. (-zing) (of a boat etc.) Be overturned; overturn. [spanish capuzar sink]

    Capstan n. 1 thick revolving cylinder for winding a cable etc. 2 revolving spindle carrying the spool on a tape recorder. [provençal]

    Capstan lathe n. Lathe with a revolving tool-holder.

    Capsule n. 1 small edible soluble case enclosing medicine. 2 detachable compartment of a spacecraft or nose of a rocket. 3 enclosing membrane in the body. 4 dry fruit that releases its seeds when ripe. 5 (attrib.) Concise; condensed. capsular adj. [latin capsa case]

    capsular adj. [latin capsa case]

    Capsulize v. (also -ise) (-zing or -sing) put (information etc.) In compact form.

    Capt. Abbr. Captain.

    Captain —n. 1 a chief, leader. B leader of a team. 2 a commander of a ship. B pilot of a civil aircraft. 3 army officer next above lieutenant. —v. Be captain of; lead. captaincy n. (pl. -ies). [latin caput head]

    Caption —n. 1 wording appended to an illustration, cartoon, etc. 2 wording on a cinema or television screen. 3 heading of a chapter, article, etc. —v. Provide with a caption. [latin capio take]

    Captious adj. Fault-finding. [latin: related to *caption]

    Captivate v. (-ting) fascinate; charm. captivation n. [latin: related to *captive]

    Captive —n. Confined or imprisoned person or animal. —adj. 1 taken prisoner; restrained. 2 unable to escape (captive audience). captivity n. [latin capio capt-take]

    Captor n. Person who captures. [latin: related to *captive]

    Capture —v. (-ring) 1 a take prisoner; seize. B obtain by force or trickery. 2 portray; record on film etc. 3 absorb (a subatomic particle). 4 record (data) for use in a computer. —n. 1 act of capturing. 2 thing or person captured. [latin: related to *captive]

    Capuchin n. 1 franciscan friar. 2 (capuchin) a monkey with cowl-like head hair. B pigeon with a cowl-like head and neck. [italian cappuccio cowl]

    Capybara n. Large semi-aquatic s. American rodent. [tupi]

    Car n. 1 (in full motor car) motor vehicle for a driver and small number of passengers. 2 (in comb.) Road vehicle or railway carriage esp. Of a specified kind (tramcar; dining-car). 3 us any railway carriage or van. 4 passenger compartment of a lift, balloon, etc. [french from latin]

    Caracul var. Of *karakul.

    Carafe n. Glass container for water or wine. [french from arabic]

    Caramel n. 1 a burnt sugar or syrup as a flavouring or colouring. B a kind of soft toffee. 2 light-brown colour. caramelize v. (also -ise) (-zing or -sing). [french from spanish]

    Carapace n. Upper shell of a tortoise or crustacean. [french from spanish]

    Carat n. 1 unit of weight for precious stones (200 mg). 2 measure of purity of gold (pure gold = 24 carats). [french ultimately from greek keras horn]

    Caravan —n. 1 vehicle equipped for living in and usu. Towed by a car. 2 people travelling together, esp. Across a desert. —v. (-nn-) travel or live in a caravan. caravanner n. [french from persian]

    Caravanserai n. Eastern inn with a central court. [persian, = caravan place]

    Caravel n. (also carvel) hist. Small light fast ship. [greek karabos, literally ‘horned beetle’]

    Caraway n. Plant with tiny white flowers. [spanish from arabic]

    Caraway seed n. Fruit of the caraway as flavouring and a source of oil.

    Carb n. Colloq. Carburettor. [abbreviation]

    Carbide n. 1 binary compound of carbon. 2 = *calcium carbide.

    Carbine n. Short rifle orig. For cavalry use. [french]

    Carbohydrate n. Energy-producing organic compound of carbon, hydrogen, and oxygen (e.g. Starch, sugar).

    Carbolic n. (in full carbolic acid) phenol. [from *carbon]

    Carbolic soap n. Soap containing carbolic.

    Car bomb n. Terrorist bomb placed in or under a parked car.

    Carbon n. 1 non-metallic element occurring naturally as diamond, graphite, and charcoal, and in all organic compounds. 2 a = carbon copy. B = carbon paper. 3 rod of carbon in an arc lamp. [latin carbo charcoal]

    Carbon-14 n. Radioisotope of mass 14, used in carbon dating.

    Carbon-12 n. Stable isotope of carbon, used as a standard.

    Carbonaceous adj. 1 consisting of or containing carbon. 2 of or like coal or charcoal.

    Carbonate —n. Chem. Salt of carbonic acid. —v. (-ting) fill with carbon dioxide. [french: related to *carbon]

    Carbon copy n. 1 copy made with carbon paper. 2 exact copy.

    Carbon dating n. Determination of the age of an organic object from the ratio of isotopes, which changes as carbon-14 decays.

    isotopes, which changes as carbon-14 decays.

    Carbon dioxide n. Gas occurring naturally in the atmosphere and formed by respiration.

    Carbon fibre n. Thin strong crystalline filament of carbon used as a strengthening material.

    Carbonic adj. Containing carbon.

    Carbonic acid n. Weak acid formed from carbon dioxide in water.

    Carboniferous —adj. 1 producing coal. 2 (carboniferous) of the fifth period in the palaeozoic era, with extensive formation of coal. —n. (carboniferous) this period.

    Carbonize v. (also -ise) (-zing or -sing) 1 convert into carbon. 2 reduce to charcoal or coke. 3 coat with carbon. carbonization n.

    Carbon monoxide n. Toxic gas formed by the incomplete burning of carbon.

    Carbon paper n. Thin carbon-coated paper used for making copies.

    Carbon tetrachloride n. Colourless liquid used as a solvent.

    Carbon tetrachloride n. Colourless liquid used as a solvent.

    Car-boot sale n. Sale of goods from (tables stocked from) the boots of cars.

    Carborundum n. Compound of carbon and silicon used esp. As an abrasive. [from *carbon, *corundum]

    Carboy n. Large globular glass bottle usu. In a frame. [persian]

    Carbuncle n. 1 severe skin abscess. 2 bright-red gem. [latin: related to *carbon]

    Carburettor n. (us carburetor) apparatus in an internal-combustion engine for mixing petrol and air to make an explosive mixture.

    Carcass n. (also carcase) 1 dead body of an animal, esp. As meat. 2 bones of a cooked bird. 3 colloq. Human body; corpse. 4 framework. 5 worthless remains. [french]

    Carcinogen n. Substance producing cancer. carcinogenic adj. [related to *carcinoma]

    Carcinoma n. (pl. -s or -mata) cancerous tumour. [greek karkinos crab]

    Card1 n. 1 thick stiff paper or thin pasteboard. 2 a piece of this for writing or

    printing on, esp. To send greetings, to identify a person, or to record information. B small rectangular piece of plastic used for identity etc. 3 a = *playing-card. B (in pl.) Card-playing. 4 (in pl.) Colloq. Tax and national insurance documents etc., held by an employer. 5 programme of events at a race-meeting etc. 6 colloq.

    Card2 —n. Wire brush etc. For raising a nap on cloth etc. —v. Brush or comb with a card. [latin caro card (v.)]

    Cardamom n. Seeds of an aromatic se asian plant used as a spice. [latin from greek]

    Cardboard n. Pasteboard or stiff paper, esp. For making boxes.

    Cardboard city n. Area where homeless people make shelters from cardboard boxes etc.

    Card-carrying adj. Registered as a member (esp. Of a political party or trade union).

    Card-game n. Game using playing-cards.

    Cardiac adj. Of the heart. [greek kardia heart]

    Cardigan n. Knitted jacket. [earl of cardigan]

    Cardinal —adj. 1 chief, fundamental. 2 deep scarlet. —n. 1 (as a title cardinal)

    Cardinal —adj. 1 chief, fundamental. 2 deep scarlet. —n. 1 (as a title cardinal) leading roman catholic dignitary, one of the college electing the pope. 2 small scarlet american songbird. [latin cardo -din-hinge]

    Cardinal number n. Number denoting quantity (1, 2, 3, etc.), as opposed to an ordinal number.

    Cardinal points n.pl. Four main points of the compass (n., s., e., w.).

    Cardinal virtues n.pl. Justice, prudence, temperance, and fortitude.

    Card index n. Index with a card for each entry.

    Cardiogram n. Record of heart movements. [greek kardia heart]

    Cardiograph n. Instrument recording heart movements. cardiographer n. Cardiography n.

    Cardiology n. Branch of medicine concerned with the heart. cardiologist n.

    Cardiovascular adj. Of the heart and blood-vessels.

    Cardoon n. Thistle-like plant with leaves used as a vegetable. [french from latin]

    Cardphone n. Public telephone operated by a machine-readable card instead of money.

    Card-sharp n. (also card-sharper) swindler at card-games.

    Card-table n. (esp. Folding) table for card-playing.

    Card vote n. = *block vote.

    Care —n. 1 worry, anxiety. 2 cause of this. 3 serious attention; caution. 4 a protection, looking after, charge. B = *child care. 5 thing to be done or seen to. —v. (-ring) 1 (usu. Foll. By about, for, whether) feel concern or interest. 2 (usu. Foll. By for) like, be fond of (don’t care for jazz). 3 (foll. By to + infin.) Wish or be willing (would you care to try?). care for provide for; look after. Care of at the address of. In care (of a child) in local authority care. Not care a damn etc. = not give a damn etc. (see *give). Take care 1 be careful. 2 (foll. By to + infin.) Not fail or neglect. Take care of 1 look after. 2 deal with, dispose of. [old english, = sorrow]

    Careen v. 1 turn (a ship) on one side for repair etc. 2 tilt, lean over. 3 swerve about. [latin carina keel]

    Usage sense 3 of careen is influenced by the verb career.

    Career —n. 1 one’s professional etc. Progress through life. 2 profession or

    occupation, esp. As offering advancement. 3 (attrib.) A pursuing or wishing to pursue a career (career woman). B working permanently in a specified profession (career diplomat). 4 swift course (in full career). —v. 1 move or swerve about wildly. 2 go swiftly. [latin: related to *car]

    Careerist n. Person predominantly concerned with personal advancement.

    Carefree adj. Light-hearted; joyous.

    Careful adj. 1 painstaking, thorough. 2 cautious. 3 taking care; not neglecting (careful to remind them). carefully adv. Carefulness n.

    Careless adj. 1 lacking care or attention. 2 unthinking, insensitive. 3 light-hearted. 4 (foll. By of) not concerned about. carelessly adv. Carelessness n.

    Carer n. Person who cares for a sick or elderly person, esp. A relative at home.

    Caress —v. Touch or stroke gently or lovingly. —n. Loving or gentle touch. [latin carus dear]

    Caret n. Mark (^) indicating a proposed insertion in printing or writing. [latin, = is lacking]

    Caretaker n. 1 person employed to look after a house, building, etc. 2 (attrib.) Exercising temporary authority (caretaker government).

    Careworn adj. Showing the effects of prolonged worry.

    Cargo n. (pl. -es or -s) goods carried on a ship or aircraft. [spanish: related to *charge]

    Carib —n. 1 aboriginal inhabitant of the southern w. Indies or adjacent coasts. 2 their language. —adj. Of the caribs. [spanish from haitian]

    Caribbean adj. Of the caribs or the w. Indies generally.

    Caribou n. (pl. Same) n. American reindeer. [french from american indian]

    Caricature —n. 1 grotesque usu. Comically exaggerated representation esp. Of a person. 2 ridiculously poor imitation or version. —v. (-ring) make or give a caricature of. caricaturist n. [italian caricare exaggerate]

    Caries n. (pl. Same) decay of a tooth or bone. [latin]

    Carillon n. 1 set of bells sounded either from a keyboard or mechanically. 2 tune played on bells. [french]

    Caring adj. 1 kind, humane. 2 (attrib.) Concerned with looking after people (caring professions).

    Carioca n. 1 brazilian dance like the samba. 2 music for this. [portuguese]

    Carmelite —n. 1 friar of the order of our lady of carmel. 2 nun of a similar order. —adj. Of the carmelites. [mt. Carmel in palestine, where the order was founded]

    Carminative —adj. Relieving flatulence. —n. Carminative drug. [latin carmino heal by *charm]

    Carmine —adj. Of vivid crimson colour. —n. 1 this colour. 2 carmine pigment made from cochineal. [probably from latin carmesinum *crimson]

    Carnage n. Great slaughter, esp. In battle. [latin: related to *carnal]

    Carnal adj. 1 of the body or flesh; worldly. 2 sensual, sexual. carnality n. [latin caro carn-flesh]

    Carnation —n. 1 clove-scented pink. 2 rosy-pink colour. —adj. Rosy-pink. [italian: related to *carnal because of the flesh-colour]

    Carnelian var. Of *cornelian.

    Carnet n. Permit to drive across a frontier, use a camp-site, etc. [french, = notebook]

    Carnival n. 1 a annual festivities including a parade through the streets in fancy dress. B festival preceding lent. 2 merrymaking. 3 us funfair or circus. [latin carnem levo put away meat]

    Carnivore n. Carnivorous animal or plant, esp. A mammal of the order including cats, dogs, and bears.

    Carnivorous adj. (of an animal or plant) feeding on flesh. [latin: related to *carnal, voro devour]

    Carob n. Seed pod of a mediterranean tree used as a chocolate substitute. [arabic karruba]

    Carol —n. Joyous song, esp. A christmas hymn. —v. (-ll-; us -l-) 1 sing carols. 2 sing joyfully. [french]

    Carolingian —adj. Of the frankish dynasty founded by charlemagne. —n. Member of this dynasty. [latin carolus charles]

    Carotene n. Orange-coloured pigment found in carrots, tomatoes, etc., acting as a source of vitamin a. [latin: related to *carrot]

    Carotid —n. Each of the two main arteries carrying blood to the head and neck. —adj. Of these arteries. [latin from greek]

    Carouse —v. (-sing) have a lively drinking-party. —n. Such a party. carousal n.

    Carouse —v. (-sing) have a lively drinking-party. —n. Such a party. carousal n. Carouser n. [german gar aus (drink) right out]

    Carousel n. 1 us merry-go-round. 2 rotating luggage delivery system at an airport etc. [french from italian]

    Carp1 n. (pl. Same) freshwater fish often bred for food. [provençal or latin]

    Carp2 v. Find fault; complain pettily. carper n. [old norse, = brag]

    Carp2 v. Find fault; complain pettily. carper n. [old norse, = brag]

    Carpal —adj. Of the bones in the wrist. —n. Wrist-bone. [from *carpus]

    Car park n. Area for parking cars.

    Carpel n. Female reproductive organ of a flower. [greek karpos fruit]

    Carpenter —n. Person skilled in woodwork. —v. 1 make or construct in wood. 2 construct; fit together. carpentry n. [latin carpentum wagon]

    Carpet —n. 1 a thick fabric for covering floor or stairs. B piece of this. 2 thing resembling this etc. (carpet of snow). —v. (-t-) 1 cover with or as with carpet. 2 colloq. Reprimand. on the carpet colloq. 1 being reprimanded. 2 under consideration. Sweep under the carpet conceal (a problem or difficulty). [latin

    carpo pluck]

    Carpet-bag n. Travelling-bag, orig. Made of carpet-like material.

    Carpet-bagger n. Colloq. 1 esp. Us political candidate etc. Without local connections. 2 unscrupulous opportunist.

    Carpeting n. 1 material for carpets. 2 carpets collectively.

    Carpet slipper n. Soft slipper.

    Carpet-sweeper n. Household implement for sweeping carpets.

    Car phone n. Radio-telephone for use in a car etc.

    Carport n. Roofed open-sided shelter for a car.

    Carpus n. (pl. -pi) small bones forming the wrist in humans and similar parts in other mammals. [latin from greek]

    Carrageen n. (also carragheen) edible red seaweed. [origin uncertain]

    Carrel n. Small cubicle for a reader in a library. [french from medieval latin]

    Carriage n. 1 railway passenger vehicle. 2 wheeled horse-drawn passenger vehicle. 3 a conveying of goods. B cost of this. 4 carrying part of a machine (e.g. A typewriter). 5 gun-carriage. 6 bearing, deportment. [french: related to *carry]

    Carriage clock n. Portable clock with a handle.

    Carriageway n. The part of a road intended for vehicles.

    Carrier n. 1 person or thing that carries. 2 transport or freight company. 3 = *carrier bag. 4 framework on a bicycle for luggage or a passenger. 5 person or animal that may transmit disease etc. Without suffering from it. 6 = *aircraft-carrier.

    Carrier bag n. Plastic or paper bag with handles.

    Carrier pigeon n. Pigeon trained to carry messages.

    Carrier wave n. High-frequency electromagnetic wave modulated in amplitude or frequency to convey a signal.

    Carrion n. 1 dead putrefying flesh. 2 something vile or filthy. [latin caro flesh]

    Carrion crow n. Crow feeding on carrion.

    Carrot n. 1 a plant with a tapering orange-coloured root. B this as a vegetable. 2 incentive. carroty adj. [greek karoton]

    Carry —v. (-ies, -ied) 1 support or hold up, esp. While moving. 2 convey with one or have on one’s person. 3 conduct or transmit (pipe carries water). 4 (often foll. By to) take (a process etc.) To a specified point; continue; prolong (carry into effect; carry a joke too far). 5 involve, imply (carries 6% interest). 6 math. Transfer (a figure) to a column of higher value. 7 hold in a specified way (carry oneself erect). 8 a (of a newspaper etc.) Publish. B (of a radio or television station) broadcast. 9 keep a regular stock of. 10 a (of sound) be audible at a distance. B (of a missile or gun etc.) Travel or propel to a specified distance. 11 a win victory or acceptance for (a proposal etc.). B win acceptance from (carried the audience with her). C win, capture (a prize, fortress, etc.). 12 a endure the weight of; support. B be the driving force in (you carry the department). 13 be pregnant with. —n. (pl. -ies) 1 act of carrying. 2 golf distance a ball travels before reaching the ground. carry away 1 remove. 2 inspire. 3 deprive of self-control (got carried away). Carry the can colloq. Bear the responsibility or blame. Carry the day be victorious or successful. Carry forward transfer to a new page or account. Carry it off do well under difficulties. Carry off 1 take away, esp. By force. 2 win (a prize). 3 (esp.

    Carry-out attrib. Adj. & n. Esp. Scot. & us = *take-away.

    Carsick adj. Nauseous from car travel. carsickness n.

    Cart —n. 1 open usu. Horse-drawn vehicle for carrying loads. 2 light vehicle for pulling by hand. —v. 1 convey in a cart. 2 slang carry or convey with effort. put the cart before the horse reverse the proper order or procedure. [old norse]

    Carte blanche n. Full discretionary power. [french, = blank paper]

    Cartel n. Union of suppliers etc. To control prices. [italian diminutive: related to *card1]

    Cartesian —adj. Of descartes or his philosophy. —n. Follower of descartes. [latin cartesius descartes]

    Cartesian coordinates n.pl. System for locating a point by reference to its distance from axes intersecting at right angles.

    Cart-horse n. Thickset horse.

    Carthusian —n. Monk of a contemplative order founded by st bruno. —adj. Of this order. [latin: related to *chartreuse]

    Cartilage n. Firm flexible connective tissue, mainly replaced by bone in adulthood. cartilaginous adj. [french from latin]

    Cartography n. Map-drawing. cartographer n. Cartographic adj. [french carte map]

    Carton n. Light esp. Cardboard box or container. [french: related to *cartoon]

    Cartoon n. 1 humorous, esp. Topical, drawing in a newspaper etc. 2 sequence of drawings telling a story. 3 animated sequence of these on film. 4 full-size preliminary design for a tapestry etc. cartoonist n. [italian: related to *card1]

    Cartouche n. 1 scroll-like ornamentation. 2 oval ring enclosing the name and title of a pharaoh. [french: related to *cartoon]

    Cartridge n. 1 case containing an explosive charge or bullet for firearms or blasting. 2 sealed container of film etc. 3 component carrying the stylus on a record-player. 4 ink-container for insertion in a pen. [french: related to *cartoon]

    Cartridge-belt n. Belt with pockets or loops for cartridges.

    Cartridge paper n. Thick paper for drawing etc.

    Cartwheel n. 1 wheel of a cart. 2 circular sideways handspring with arms and legs extended.

    Cart-wright n. Maker of carts.

    Carve v. (-ving) 1 produce or shape by cutting. 2 a cut patterns etc. In. B (foll. By into) form a pattern etc. From (carved it into a bust). 3 (absol.) Cut (meat etc.) Into slices. carve out 1 take from a larger whole. 2 establish (a career etc.) Purposefully. Carve up 1 subdivide. 2 drive aggressively into the path of (another vehicle). [old english]

    Carvel var. Of *caravel.

    Carvel-built adj. (of a boat) made with planks flush, not overlapping.

    Carver n. 1 person who carves. 2 carving knife. 3 chair with arms, for a person carving.

    Carvery n. (pl. -ies) buffet or restaurant with joints displayed for carving.

    Carve-up n. Slang sharing-out, esp. Of spoils.

    Carving n. Carved object, esp. As a work of art.

    Carving knife n. Knife for carving meat.

    Casanova n. Notorious womanizer. [italian adventurer]

    Cascade —n. 1 small waterfall, esp. One of series. 2 thing falling or arranged like a cascade. —v. (-ding) fall in or like a cascade. [latin: related to *case1]

    Cascara n. Bark of a californian buckthorn, used as a laxative. [spanish]

    Case1 n. 1 instance of something occurring. 2 hypothetical or actual situation. 3

    a person’s illness, circumstances, etc., as regarded by a doctor, social worker, etc. B such a person. 4 matter under esp. Police investigation. 5 suit at law. 6 a sum of the arguments on one side, esp. In a lawsuit. B set of arguments (have a good case). C valid set of arguments (have no case). 7 gram. A relation of a word to other words in a sentence. B form of a noun, adjective, or pronoun expressing this. 8 colloq. Comical person. in any case whatever the truth is; whatever may happen. In case 1 in the event that; if. 2 lest; in provision against a possibility (took it in case). In case of in the event of. Is (or is not) the case is (or is not) so. [latin casus from cado fall]

    Case2 —n. 1 container or enclosing covering. 2 this with its contents. 3 protective outer covering. 4 item of luggage, esp. A suitcase. —v. (-sing) 1 enclose in a case. 2 (foll. By with) surround. 3 slang reconnoitre (a house etc.) Before burgling it. [latin capsa box]

    Case-harden v. 1 harden the surface of (esp. Iron by carbonizing). 2 make callous.

    Case history n. Record of a person’s life or medical history for use in professional treatment.

    Casein n. The main protein in milk and cheese. [latin caseus cheese]

    Case-law n. Law as established by the outcome of former cases.

    Casemate n. 1 embrasured room in a fortress wall. 2 armoured enclosure for guns on a warship. [french and italian]

    Casement n. Window or part of a window hinged to open like a door. [anglo-latin: related to *case2]

    Casework n. Social work concerned with studying a person’s family and background. caseworker n.

    Cash —n. 1 money in coins or notes. 2 (also cash down) full payment at the time of purchase. 3 colloq. Wealth. —v. Give or obtain cash for (a note, cheque, etc.). cash in 1 obtain cash for. 2 colloq. (usu. Foll. By on) profit (from); take advantage (of). Cash up count and check the day’s takings. [latin: related to *case2]

    Cash and carry n. 1 system (esp. In wholesaling) of cash payment for goods taken away by the purchaser. 2 store where this operates.

    Cash-book n. Book for recording receipts and cash payments.

    Cashcard n. Plastic card for withdrawing money from a cash dispenser.

    Cash crop n. Crop produced for sale.

    Cash desk n. Counter etc. Where payment is made in a shop.

    Cash dispenser n. Automatic machine for the withdrawal of cash, esp. With a

    Cash dispenser n. Automatic machine for the withdrawal of cash, esp. With a cashcard.

    Cashew n. 1 evergreen tree bearing kidney-shaped nuts. 2 this edible nut. [portuguese from tupi]

    Cash flow n. Movement of money into and out of a business.

    Cashier1 n. Person dealing with cash transactions in a shop, bank, etc.

    Cashier2 v. Dismiss from service, esp. With disgrace. [french: related to *quash]

    Cashmere n. 1 fine soft wool, esp. That of a kashmir goat. 2 material made from this. [kashmir in asia]

    Cash on delivery n. Payment for goods when they are delivered.

    Cashpoint n. = *cash dispenser.

    Cash register n. Till recording sales, totalling receipts, etc.

    Casing n. Protective or enclosing cover or material.

    Casino n. (pl. -s) public room or building for gambling. [italian diminutive of

    Casino n. (pl. -s) public room or building for gambling. [italian diminutive of casa house]

    Cask n. 1 barrel, esp. For alcohol. 2 its contents. [french casque or spanish casco helmet]

    Casket n. 1 small often ornamental box for jewels etc. 2 us coffin. [latin: related to *case2]

    Cassata n. Ice-cream containing fruit and nuts. [italian]

    Cassava n. 1 plant with starchy roots. 2 starch or flour from these, used e.g. In tapioca. [taino]

    Casserole —n. 1 covered dish for cooking food in the oven. 2 food cooked in this. —v. (-ling) cook in a casserole. [greek kuathion little cup]

    Cassette n. Sealed case containing magnetic tape, film etc., ready for insertion in a tape recorder, camera, etc. [french diminutive: related to *case2]

    Cassia n. 1 tree from the leaves of which senna is extracted. 2 cinnamon-like bark of this used as a spice. [greek kasia from hebrew]

    Cassis n. Blackcurrant flavouring for drinks etc. [french]

    Cassock n. Long usu. Black or red clerical garment. cassocked adj. [french from italian]

    Cassoulet n. Ragout of meat and beans. [french]

    Cassowary n. (pl. -ies) large flightless australasian bird. [malay]

    Cast —v. (past and past part. Cast) 1 throw, esp. Deliberately or forcefully. 2 (often foll. By on, over) a direct or cause (one’s eyes, a glance, light, a shadow, a spell, etc.) To fall. B express (doubts, aspersions, etc.). 3 throw out (a fishing-line etc.) Into the water. 4 let down (an anchor etc.). 5 a throw off, get rid of. B shed or lose (horns, skin, a horseshoe, etc.). 6 register (a vote). 7 a shape (molten metal etc.) In a mould. B make thus. 8 a (usu. Foll. By as) assign (an actor) to a role. B allocate roles in (a play etc.). 9 (foll. By in, into) arrange (facts etc.) In a specified form. 10 reckon, add up (accounts or figures). 11 calculate (a horoscope). —n. 1 throwing of a missile, dice, line, net, etc. 2 a object made in a mould. B moulded mass of solidified material, esp. Plaster for a broken limb. 3 actors in a play etc. 4 form, type, or quality. 5 tinge or shade of colour. 6 slight squint. 7 worm-cast. cast about (or around) search. Cast adrift leave to drift. Cast aside abandon. Cast loose detach (oneself). Cast lots see *lot. Cast off 1 abandon. 2 finish a piece of knitting. 3 set a ship free from a quay etc. Cast on make the first row of a piece of knitting. Cast up 1 deposit on the shore. 2 add up (figures etc.). [old norse]

    Castanet n. (usu. In pl.) Each of a pair of hand-held pieces of wood etc., clicked together as an accompaniment, esp. By spanish dancers. [latin: related to *chestnut]

    Castaway —n. Shipwrecked person. —adj. Shipwrecked.

    Caste n. 1 any of the hindu hereditary classes whose members have no social contact with other classes. 2 exclusive social class or system of classes. lose caste descend in social order. [spanish and portuguese: related to *chaste]

    Casteism n. Caste system.

    Castellated adj. 1 having battlements. 2 castle-like. castellation n. [medieval latin: related to *castle]

    Caster var. Of *castor.

    Castigate v. (-ting) rebuke or punish severely. castigation n. Castigator n. [latin castus pure]

    Casting n. Cast, esp. Of molten metal.

    Casting vote n. Deciding vote when the votes on two sides are equal. [from an obsolete sense of cast, = turn the scale]

    Cast iron n. Hard alloy of iron, carbon, and silicon cast in a mould.

    Cast-iron adj. 1 of cast iron. 2 very strong; rigid; unchallengeable.

    Castle —n. 1 large fortified building with towers and battlements. 2 chess =

    Castle —n. 1 large fortified building with towers and battlements. 2 chess = *rook2. —v. (-ling) chess move a rook next to the king and the king to the other side of the rook. castles in the air day-dream; impractical scheme. [latin castellum]

    Cast-off —adj. Abandoned, discarded. —n. Cast-off thing, esp. A garment.

    Castor n. (also caster) 1 small swivelled wheel on the leg or underside of a piece of furniture. 2 small perforated container for sprinkling sugar, flour, etc. [from *cast]

    Castor oil n. Oil from the seeds of a tropical plant, used as a purgative and lubricant. [origin uncertain]

    Castor sugar n. Finely granulated white sugar.

    Castrate v. (-ting) 1 remove the testicles of; geld. 2 deprive of vigour. castration n. [latin castro]

    Castrato n. (pl. -ti) hist. Castrated male soprano or alto singer. [italian: related to *castrate]

    Casual —adj. 1 accidental; chance. 2 not regular or permanent (casual work). 3 a unconcerned. B careless; unthinking. 4 (of clothes) informal. —n. 1 casual worker. 2 (usu. In pl.) Casual clothes or shoes. casually adv. Casualness n. [french and latin: related to *case1]

    Casualty n. (pl. -ies) 1 person killed or injured in a war or accident. 2 thing lost or destroyed. 3 = casualty department. 4 accident, mishap. [medieval latin: related to casual]

    Casualty department n. Part of a hospital where casualties are dealt with.

    Casuist n. 1 person who uses clever but false reasoning in matters of conscience etc. 2 sophist, quibbler. casuistic adj. Casuistry n. [latin: related to *case1]

    Cat n. 1 small soft-furred four-legged domesticated animal. 2 wild animal of the same family, e.g. Lion, tiger. 3 colloq. Malicious or spiteful woman. 4 = *cat-o’-nine-tails. the cat’s whiskers colloq. Excellent person or thing. Let the cat out of the bag reveal a secret. Like a cat on hot bricks very agitated. Put (or set) the cat among the pigeons cause trouble. Rain cats and dogs rain hard. [latin cattus]

    Cata-prefix 1 down. 2 wrongly. [greek]

    Catabolism n. Breakdown of complex molecules in living organisms to release energy; destructive metabolism. catabolic adj. [greek katabole throwing down]

    Catachresis n. (pl. -chreses) incorrect use of words. catachrestic adj. [greek khraomai use]

    Cataclysm n. 1 a violent upheaval or disaster. B great change. 2 great flood. cataclysmic adj. [greek kluzo wash]

    Catacomb n. (often in pl.) Underground cemetery, esp. Roman. [french from latin]

    Catafalque n. Decorated bier, used esp. In state funerals or for lying in state. [french from italian]

    Catalan —n. Native or language of catalonia in spain. —adj. Of catalonia. [french from spanish]

    Catalepsy n. Trance or seizure with unconsciousness and rigidity of the body. cataleptic adj. & n. [greek lepsis seizure]

    Catalog (brit. Catalogue) —n. 1 complete alphabetical or otherwise ordered list of items, often with a description of each. 2 extensive list (catalog of disasters). —v. (-logs, -loged, -loging; brit. -logues, -logued, -loguing) 1 make a catalog of. 2 enter in a catalog. [greek lego choose]

    Catalogue (us catalog) —n. 1 complete alphabetical or otherwise ordered list of items, often with a description of each. 2 extensive list (catalogue of disasters). —v. (-logues, -logued, -loguing; us -logs, -loged, -loging) 1 make a catalogue of. 2 enter in a catalogue. [greek lego choose]

    Catalpa n. Tree with long pods and showy flowers. [n. American indian]

    Catalyse v. (us -yze) (-sing or -zing) produce (a reaction) by catalysis.

    Catalysis n. (pl. -lyses) acceleration of a chemical reaction by a catalyst. [greek luo set free]

    Catalyst n. 1 substance that does not itself change, but speeds up a chemical reaction. 2 person or thing that precipitates change.

    Catalytic adj. Of or involving catalysis.

    Catalytic converter n. Device incorporated in a vehicle’s exhaust system, with a catalyst for converting pollutant gases into harmless products.

    Catalyze v. (brit. -yse) produce (a reaction) by catalysis.

    Catamaran n. 1 boat with parallel twin hulls. 2 raft of yoked logs or boats. [tamil]

    Catamite n. Passive partner (esp. A boy) in homosexual practices. [latin, = ganymede]

    Cat-and-dog adj. (of a relationship etc.) Quarrelsome.

    Catapult —n. 1 forked stick etc. With elastic for shooting stones. 2 mil hist. Machine for hurling large stones etc. 3 device for launching a glider etc. —v. 1 a hurl from or launch with a catapult. B fling forcibly. 2 leap or be hurled forcibly. [latin from greek]

    Cataract n. 1 a large waterfall. B downpour; rush of water. 2 eye condition in which the lens becomes progressively opaque. [greek katarrhaktes, = down-rushing]

    Catarrh n. 1 inflammation of the mucous membrane of the nose, air-passages, etc. 2 mucus caused by this. catarrhal adj. [greek rheo flow]

    Catastrophe n. 1 great and usu. Sudden disaster. 2 denouement of a drama. catastrophic adj. Catastrophically adv. [greek strepho turn]

    Catatonia n. 1 schizophrenia with intervals of catalepsy and sometimes violence. 2 catalepsy. catatonic adj. & n. [greek: related to cata-, tone]

    Cat burglar n. Burglar who enters by climbing to an upper storey.

    Catcall —n. Shrill whistle of disapproval. —v. Make a catcall.

    Catch —v. (past and past part. Caught) 1 capture in a trap, one’s hands, etc. 2 detect or surprise (esp. A guilty person). 3 a intercept and hold (a moving thing) in the hands etc. B cricket dismiss (a batsman) by catching the ball before it reaches the ground. 4 a contract (a disease) from an infected person. B acquire (a quality etc.) From another. 5 a reach in time and board (a train, bus, etc.). B be in time to see etc. (a person or thing about to leave or finish). 6 apprehend with the senses or mind (esp. A thing occurring quickly or briefly). 7 (of an artist etc.) Reproduce faithfully. 8 a (cause to) become fixed, entangled, or checked. B (often foll. By on) hit, deal a blow to (caught his elbow on the table). 9 draw the

    attention of; captivate (caught his eye; caught her fancy). 10 begin to burn. 11 reach or overtake (a person etc. Ahead). 12 (foll. By at) try to grasp. —n. 1 a act of catching. B cricket etc. Chance or act of catching the ball. 2 a amount of a thing caught, esp. Of fish. B thing or person caught or worth catching, esp. In marriage. 3 a question, trick, etc., intended to deceive, incriminate, etc. B unexpected or hidden difficulty or disadvantage. 4 device for fastening a door or window etc. 5 mus. Round, esp. With words arranged to produce a humorous effect. catch fire see *fire. Catch hold of grasp, seize. Catch it slang be punished. Catch on colloq. 1 become popular. 2 understand what is meant. Catch out 1 detect in a mistake etc. 2 take unawares. 3 = sense 3b of v. Catch up 1 a (often foll. By with) reach a person etc. Ahead (caught us up; caught up with us). B (often foll. By with, on) make up arrears. 2 pick up hurriedly. 3 (often in passive) a involve; entangle (caught up in crime). B fasten up (hair caught up in a ribbon). [latin capto try to catch]

    Catch-all n. (often attrib.) Thing designed to be all-inclusive.

    Catch-as-catch-can n. Wrestling with few holds barred.

    Catching adj. (of a disease, practice, etc.) Infectious.

    Catchline n. Short line of type, esp. At the head of copy or as a running headline.

    Catchment n. Collection of rainfall.

    Catchment area n. 1 area served by a school, hospital, etc. 2 area from which rainfall flows into a river etc.

    Catchpenny attrib. Adj. Intended merely to sell quickly; superficially attractive.

    Catch-phrase n. Phrase in frequent use.

    Catch-22 n. (often attrib.) Colloq. Unresolvable situation containing conflicting or mutually dependent conditions.

    Catchweight —adj. Unrestricted as regards weight. —n. Unrestricted weight category in sports.

    Catchword n. 1 phrase, word, or slogan in frequent current use. 2 word so placed as to draw attention.

    Catchy adj. (-ier, -iest) (of a tune) easy to remember, attractive.

    Cat door var. Of *cat flap.

    Catechism n. 1 a principles of a religion in the form of questions and answers. B book containing this. 2 series of questions. [church latin: related to *catechize]

    Catechist n. Religious teacher, esp. One using a catechism.

    Catechize v. (also -ise) (-zing or -sing) instruct by using a catechism. [greek katekheo cause to hear]

    katekheo cause to hear]

    Catechumen n. Christian convert under instruction before baptism. [church latin catechumenus]

    Categorical adj. Unconditional, absolute; explicit. categorically adv. [related to *category]

    Categorize v. (also -ise) (-zing or -sing) place in a category. categorization n.

    Category n. (pl. -ies) class or division (of things, ideas, etc.). [greek, = statement]

    Cater v. 1 supply food. 2 (foll. By for) provide what is needed or desired (caters for all tastes). 3 (foll. By to) pander to (esp. Low tastes). [anglo-french acatour buyer, from latin capto: related to *catch]

    Caterer n. Professional supplier of food for social events.

    Caterpillar n. 1 larva of a butterfly or moth. 2 (caterpillar) a (in full caterpillar track or tread) propr. Steel band passing round the wheels of a tractor etc. For travel on rough ground. B vehicle with these. [anglo-french, = hairy cat]

    Caterwaul —v. Make the shrill howl of a cat. —n. This noise. [from *cat, -waul imitative]

    Catfish n. (pl. Same) freshwater fish with whisker-like barbels round the mouth.

    Cat flap n. (also cat door) small swinging flap in an outer door, for a cat to pass in and out.

    Catgut n. Material used for the strings of musical instruments and surgical sutures, made of intestines of the sheep, horse, etc. (but not cat).

    Catharsis n. (pl. Catharses) 1 emotional release in drama or art. 2 psychol. Freeing and elimination of repressed emotion. 3 emptying of the bowels. [greek katharos clean]

    Cathartic —adj. 1 effecting catharsis. 2 laxative. —n. Laxative.

    Cathedral n. Principal church of a diocese. [greek kathedra seat]

    Catherine wheel n. Flat coiled firework spinning when lit. [st catherine, who was martyred on a spiked wheel]

    Catheter n. Tube inserted into a body cavity for introducing or removing fluid. [greek kathiemi send down]

    Cathode n. Electr. 1 negative electrode in an electrolytic cell. 2 positive terminal

    of a battery etc. [greek kathodos way down]

    Cathode ray n. Beam of electrons from the cathode of a vacuum tube.

    Cathode-ray tube n. Vacuum tube in which cathode rays produce a luminous image on a fluorescent screen.

    Catholic —adj. 1 all-embracing; of wide sympathies or interests. 2 of interest or use to all; universal. 3 (catholic) a roman catholic. B including all christians, or all of the western church. —n. (catholic) roman catholic. catholicism n. Catholicity n. [greek holos whole]

    Cation n. Positively charged ion. cationic adj. [from cata-, ion]

    Catkin n. Small spike of usu. Hanging flowers on a willow, hazel, etc. [dutch, = kitten]

    Catlick n. Colloq. Perfunctory wash.

    Catmint n. Pungent plant attractive to cats.

    Catnap —n. Short sleep. —v. (-pp-) have a catnap.

    Catnip n. = catmint. [from cat, dial. Nip catmint]

    Cat-o’-nine-tails n. Hist. Whip with nine knotted lashes.

    Cat’s cradle n. Child’s game of forming patterns from a loop of string.

    Cat’s-eye n. Propr. Reflector stud set into a road.

    Cat’s-eye n. Precious stone.

    Cat’s-paw n. 1 person used as a tool by another. 2 slight breeze.

    Catsuit n. Close-fitting garment with trouser legs, covering the whole body.

    Catsup us var. Of *ketchup.

    Cattery n. (pl. -ies) place where cats are boarded or bred.

    Cattle n.pl. Large ruminant animals with horns and cloven hoofs, esp. Bred for milk or meat. [anglo-french catel: related to *capital]

    Cattle-grid n. Grid over a ditch, allowing people and vehicles but not livestock to pass over.

    Catty adj. (-ier, -iest) spiteful. cattily adv. Cattiness n.

    Catwalk n. Narrow footway or platform.

    Caucasian —adj. 1 of the white or light-skinned race. 2 of the caucasus. —n. Caucasian person. [caucasus in georgia]

    Caucasoid adj. Of caucasians.

    Caucus n. (pl. -es) 1 us meeting of party members, esp. In the senate etc., to decide policy. 2 often derog. A meeting of a group within a larger organization or party. B such a group. [perhaps from algonquian]

    Caudal adj. 1 of or like a tail. 2 of the posterior part of the body. [latin cauda tail]

    Caudate adj. Tailed.

    Caught past and past part. Of *catch.

    Caul n. 1 membrane enclosing a foetus. 2 part of this occasionally found on a child’s head at birth. [french]

    Cauldron n. (also caldron) large deep vessel used for boiling. [latin caldarium hot bath]

    Cauliflower n. Cabbage with a large white flower-head. [french chou fleuri flowered cabbage]

    Cauliflower ear n. Ear thickened by repeated blows.

    Caulk v. (also calk) 1 stop up (the seams of a boat etc.). 2 make (esp. A boat) watertight. [latin calco tread]

    Causal adj. 1 of or forming a cause. 2 relating to cause and effect. causally adv.

    Causality n. 1 relation of cause and effect. 2 principle that everything has a cause.

    Causation n. 1 act of causing. 2 = *causality.

    Causative adj. Acting as or expressing a cause.

    Cause —n. 1 a thing that produces an effect. B person or thing that occasions or produces something. C reason or motive. 2 adequate reason (show cause). 3 principle, belief, or purpose. 4 a matter to be settled at law. B case offered at law (plead a cause). —v. (-sing) be the cause of, produce, make happen. [latin causa]

    Cause célèbre n. (pl. Causes célèbres pronunc. Same) lawsuit that attracts much interest. [french]

    Causerie n. (pl. -s pronunc. Same) informal article or talk. [french]

    Causeway n. 1 raised road across low ground or water. 2 raised path by a road. [anglo-french caucée from latin *calx]

    Caustic —adj. 1 corrosive; burning. 2 sarcastic, biting. —n. Caustic substance. caustically adv. Causticity n. [greek kaio burn]

    Caustic soda n. Sodium hydroxide.

    Cauterize v. (also -ise) (-zing or -sing) burn (tissue), esp. To stop bleeding. [french: related to *caustic]

    Caution —n. 1 attention to safety; prudence, carefulness. 2 a law warning, esp. A formal one. B warning and reprimand. 3 colloq. Amusing or surprising person or thing. —v. 1 warn or admonish. 2 issue a caution to. [latin caveo take heed]

    Cautionary adj. Giving or serving as a warning.

    Cautious adj. Having or showing caution. cautiously adv. Cautiousness n.

    Cavalcade n. Procession or assembly of riders, vehicles, etc. [italian: related to *chevalier]

    Cavalier —n. 1 hist. (cavalier) supporter of charles i in the civil war. 2 courtly gentleman. 3 archaic horseman. —adj. Offhand, supercilious, curt. [related to *cavalcade]

    Cavalry n. (pl. -ies) (usu. Treated as pl.) Soldiers on horseback or in armoured vehicles. [related to *cavalcade]

    Cave —n. Large hollow in the side of a cliff, hill, etc., or underground. —v. (-ving) explore caves. cave in 1 (cause to) subside or collapse. 2 yield, give up. [latin cavus hollow]

    Caveat n. 1 warning, proviso. 2 law process in court to suspend proceedings. [latin, = let him beware]

    Caveat emptor n. Principle that the buyer alone is responsible if dissatisfied. [latin, = let the buyer beware]

    Caveman n. 1 prehistoric person living in caves. 2 crude person.

    Cavern n. Cave, esp. A large or dark one. cavernous adj. [latin caverna: related to *cave]

    Caviar n. (brit. Caviare) pickled roe of sturgeon or other large fish. [italian from

    Caviar n. (brit. Caviare) pickled roe of sturgeon or other large fish. [italian from turkish]

    Caviare n. (us caviar) pickled roe of sturgeon or other large fish. [italian from turkish]

    Cavil —v. (-ll-, us -l-) (usu. Foll. By at, about) make petty objections; carp. —n. Petty objection. [latin cavillor]

    Cavity n. (pl. -ies) 1 hollow within a solid body. 2 decayed part of a tooth. [latin: related to *cave]

    Cavity wall n. Double wall with a space between.

    Cavort v. Caper excitedly. [origin uncertain]

    Cavy n. (pl. -ies) small s. American rodent, esp. The guinea pig. [latin from galibi]

    Caw —n. Harsh cry of a rook, crow, etc. —v. Utter this cry. [imitative]

    Cayenne n. (in full cayenne pepper) powdered red pepper. [tupi]

    Cayman n. (also caiman) (pl. -s) s. American alligator-like reptile. [spanish and

    Cayman n. (also caiman) (pl. -s) s. American alligator-like reptile. [spanish and portuguese from carib]

    Cb abbr. 1 citizens’ band. 2 companion of the order of the bath.

    Cbe abbr. Commander of the order of the british empire.

    Cbi abbr. Confederation of british industry.

    Cc abbr. (also c.c.) 1 cubic centimetre(s). 2 copy or copies (to).

    Cd abbr. 1 compact disc. 2 civil defence. 3 corps diplomatique.

    Cd symb. Cadmium.

    Cd abbr. Candela.

    Cd-rom abbr. Compact disc read-only memory (for the retrieval of text or data on a vdu screen).

    Cdt abbr. Craft, design, and technology.

    Cd-video n. (pl. -s) 1 system of simultaneously reproducing high-quality sound

    Cd-video n. (pl. -s) 1 system of simultaneously reproducing high-quality sound and video pictures from a compact disc. 2 such a compact disc.

    Ce symb. Cerium.

    Cease formal —v. (-sing) stop; bring or come to an end. —n. (in without cease) unending. [latin cesso]

    Cease-fire n. 1 period of truce. 2 order to stop firing.

    Ceaseless adj. Without end. ceaselessly adv.

    Cecum n. (brit. Caecum) (pl. -ca) blind-ended pouch at the junction of the small and large intestines. [latin caecus blind]

    Cedar n. 1 spreading evergreen conifer. 2 its hard fragrant wood. [greek kedros]

    Cede v. (-ding) formal give up one’s rights to or possession of. [latin cedo cess-yield]

    Cedilla n. 1 mark written under c, esp. In french, to show it is sibilant (as in façade). 2 similar mark under s in turkish etc. [spanish diminutive of zeda z]

    Ceefax n. Propr. Teletext service provided by the bbc. [representing a

    Ceefax n. Propr. Teletext service provided by the bbc. [representing a pronunciation of seeing + facsimile]

    Ceilidh n. Informal gathering for music, dancing, etc. [gaelic]

    Ceiling n. 1 upper interior surface of a room or other compartment. 2 upper limit. 3 maximum altitude a given aircraft can reach. [origin uncertain]

    Celandine n. Yellow-flowered plant. [greek khelidon a swallow]

    Celebrant n. Person who performs a rite, esp. The priest at the eucharist.

    Celebrate v. (-ting) 1 mark with or engage in festivities. 2 perform (a rite or ceremony). 3 praise publicly. celebration n. Celebrator n. Celebratory adj. [latin celeber renowned]

    Celebrity n. (pl. -ies) 1 well-known person. 2 fame. [latin: related to *celebrate]

    Celeriac n. Variety of celery. [from *celery]

    Celerity n. Archaic or literary swiftness. [latin celer swift]

    Celery n. Plant with crisp long whitish leaf-stalks used as a vegetable. [greek selinon parsley]

    Celesta n. Small keyboard instrument with steel plates struck to give a bell-like sound. [french: related to *celestial]

    Celestial adj. 1 of the sky or heavenly bodies. 2 heavenly; divinely good; sublime. [latin caelum sky]

    Celestial equator n. The great circle of the sky in the plane perpendicular to the earth’s axis.

    Celestial sphere n. Imaginary sphere, of any radius, of which the observer is the centre and in which celestial bodies are represented as lying.

    Celibate —adj. 1 unmarried or committed to sexual abstention, esp. For religious reasons. 2 having no sexual relations. —n. Celibate person. celibacy n. [latin caelebs unmarried]

    Cell n. 1 small room, esp. In a prison or monastery. 2 small compartment, e.g. In a honeycomb. 3 small, active, esp. Subversive, political group. 4 a smallest structural and functional unit of living matter, consisting of cytoplasm and a nucleus enclosed in a membrane. B enclosed cavity in an organism etc. 5 vessel containing electrodes for current-generation or electrolysis. [latin cella]

    Cellar —n. 1 storage room below ground level in a house. 2 stock of wine in a cellar. —v. Store in a cellar. [latin cellarium: related to *cell]

    Cello n. (pl. -s) bass instrument of the violin family, held between the legs of the seated player. cellist n. [abbreviation of *violoncello]

    seated player. cellist n. [abbreviation of *violoncello]

    Cellophane n. Propr. Thin transparent viscose wrapping material. [from cellulose: cf. diaphanous]

    Cellphone n. Small portable radio-telephone.

    Cellular adj. Consisting of cells, of open texture; porous. cellularity n. [french: related to *cell]

    Cellular radio n. System of mobile radio-telephone transmission with an area divided into ‘cells’, each served by a small transmitter.

    Cellulite n. Lumpy fat, esp. On the hips and thighs of women. [french: related to *cell]

    Celluloid n. 1 plastic made from camphor and cellulose nitrate. 2 cinema film.

    Cellulose n. 1 carbohydrate forming plant-cell walls, used in textile fibres. 2 (in general use) paint or lacquer consisting of esp. Cellulose acetate or nitrate in solution. [latin: related to *cell]

    Celsius adj. Of a scale of temperature on which water freezes at 0° and boils at 100°. [name of an astronomer]

    Usage see note at centigrade.

    Celt n. (also kelt) member of an ethnic group, including the inhabitants of ireland, wales, scotland, cornwall, and brittany. [latin from greek]

    Celtic —adj. Of the celts. —n. Group of celtic languages, including gaelic and irish, welsh, cornish, and breton.

    Cement —n. 1 powdery substance of calcined lime and clay, mixed with water to form mortar or used in concrete. 2 similar substance. 3 uniting factor or principle. 4 substance used in filling teeth, doing hip replacements, etc. —v. 1 a unite with or as with cement. B establish or strengthen (a friendship etc.). 2 apply cement to. 3 line or cover with cement. cementation n. [latin caedo cut]

    Cemetery n. (pl. -ies) burial ground, esp. One not in a churchyard. [greek koimao put to sleep]

    Cenobite n. (brit. Coenobite) member of a monastica community. [greek koinos bios common life]

    Cenotaph n. Tomblike monument to a person whose body is elsewhere. [greek kenos empty, taphos tomb]

    Cenozoic (also cainozoic, caenozoic) —adj. Of the most recent geological era, marked by the evolution and development of mammals etc. —n. This era. [greek kainos new, zoion animal]

    Censer n. Vessel for burning incense. [anglo-french: related to *incense1]

    Censor —n. Official authorized to suppress or expurgate books, films, news, etc., on grounds of obscenity, threat to security, etc. —v. 1 act as a censor of. 2 make deletions or changes in. censorial adj. Censorship n. [latin censeo assess]

    Usage as a verb, censor is often confused with censure.

    Censorious adj. Severely critical. censoriously adv.

    Censure —v. (-ring) criticize harshly; reprove. —n. Hostile criticism; disapproval. [latin: related to *censor]

    Usage as a verb, censure is often confused with censor.

    Census n. (pl. -suses) official count of population etc. [latin: related to *censor]

    Cent n. 1 a one-hundredth of a dollar or other decimal currency unit. B coin of this value. 2 colloq. Very small amount. [latin centum 100]

    Centaur n. Creature in greek mythology with the upper half of a man and the lower half of a horse. [latin from greek]

    Centenarian —n. Person a hundred or more years old. —adj. A hundred or more

    Centenarian —n. Person a hundred or more years old. —adj. A hundred or more years old.

    Centenary —n. (pl. -ies) 1 hundredth anniversary. 2 celebration of this. —adj. 1 of a centenary. 2 occurring every hundred years. [latin centeni 100 each]

    Centennial —adj. 1 lasting for a hundred years. 2 occurring every hundred years. —n. Us = centenary n. [latin centum 100: cf. biennial]

    Center (brit. Centre) —n. 1 middle point. 2 pivot or axis of rotation. 3 a place or buildings forming a central point or a main area for an activity (shopping centre; town centre). B (with a preceding word) equipment for a number of connected functions (music centre). 4 point of concentration or dispersion; nucleus, source. 5 political party or group holding moderate opinions. 6 filling in chocolate etc. 7 sport a middle player in a line in some field games. B kick or hit from the side to the centre of a pitch. 8 (attrib.) Of or at the centre. —v. (-ring) 1 (foll. By in, on, round) have as its main centre. 2 place in the centre. 3 (foll. By in etc.) Concentrate. [greek kentron sharp point]

    Centerboard n. (brit. Centreboard) board lowered through a boat’s keel to prevent leeway.

    Centerfold n. (brit. Centrefold) centre spread of a magazine etc., esp. With nude photographs.

    Centesimal adj. Reckoning or reckoned by hundredths. [latin centum 100]

    Centi-comb. Form 1 one-hundredth. 2 hundred. [latin centum 100]

    Centi-comb. Form 1 one-hundredth. 2 hundred. [latin centum 100]

    Centigrade adj. 1 = *celsius. 2 having a scale of a hundred degrees. [latin gradus step]

    Usage in sense 1, celsius is usually preferred in technical contexts.

    Centigram n. (also centigramme) metric unit of mass, equal to 0.01 gram.

    Centiliter n. (brit. Centilitre) 0.01 litre.

    Centilitre n. (us centiliter) 0.01 litre.

    Centime n. 1 one-hundredth of a franc. 2 coin of this value. [latin centum 100]

    Centimeter n. (brit. Centimetre) 0.01 metre.

    Centimetre n. (us centimeter) 0.01 metre.

    Centipede n. Arthropod with a segmented wormlike body and many legs. [latin pes ped-foot]

    Central adj. 1 of, at, or forming the centre. 2 from the centre. 3 chief, essential,

    Central adj. 1 of, at, or forming the centre. 2 from the centre. 3 chief, essential, most important. centrality n. Centrally adv.

    Central bank n. National bank issuing currency etc.

    Central heating n. Method of heating a building by pipes, radiators, etc., fed from a central source.

    Centralism n. System that centralizes (esp. Administration). centralist n.

    Centralize v. (also -ise) (-zing or -sing) 1 concentrate (esp. Administration) at a single centre. 2 subject (a state) to this system. centralization n.

    Central nervous system n. Brain and spinal cord.

    Central processor n. (also central processing unit) principal operating part of a computer.

    Centre (us center) —n. 1 middle point. 2 pivot or axis of rotation. 3 a place or buildings forming a central point or a main area for an activity (shopping centre; town centre). B (with a preceding word) equipment for a number of connected functions (music centre). 4 point of concentration or dispersion; nucleus, source. 5 political party or group holding moderate opinions. 6 filling in chocolate etc. 7 sport a middle player in a line in some field games. B kick or hit from the side to the centre of a pitch. 8 (attrib.) Of or at the centre. —v. (-ring) 1 (foll. By in, on, round) have as its main centre. 2 place in the centre. 3 (foll. By in etc.) Concentrate. [greek kentron sharp point]

    Usage the use of the verb in sense 1 with round is common and used by good writers, but is still considered incorrect by some people.

    Centre back n. Sport middle player or position in a half-back line.

    Centreboard n. (us centerboard) board lowered through a boat’s keel to prevent leeway.

    Centrefold n. (us centerfold) centre spread of a magazine etc., esp. With nude photographs.

    Centre forward n. Sport middle player or position in a forward line.

    Centre half n. = *centre back.

    Centre of gravity n. (also centre of mass) point at which the weight of a body may be considered to act.

    Centre-piece n. 1 ornament for the middle of a table. 2 principal item.

    Centre spread n. Two facing middle pages of a newspaper etc.

    Centric adj. 1 at or near the centre. 2 from a centre. centrical adj. Centrically adv.

    Centrifugal adj. Moving or tending to move from a centre. centrifugally adv. [from *centre, latin fugio flee]

    Centrifugal force n. Apparent force that acts outwards on a body moving about a centre.

    Centrifuge n. Rapidly rotating machine designed to separate liquids from solids etc.

    Centripetal adj. Moving or tending to move towards a centre. centripetally adv. [latin peto seek]

    Centripetal force n. Force acting on a body causing it to move towards a centre.

    Centrist n. Polit. Often derog. Person holding moderate views. centrism n.

    Centurion n. Commander of a century in the ancient roman army. [latin: related to *century]

    Century n. (pl. -ies) 1 a 100 years. B any century reckoned from the birth of christ (twentieth century = 1901–2000; fifth century bc = 500–401 bc). 2 score etc. Of 100 esp. By one batsman in cricket. 3 company in the ancient roman army, orig. Of 100 men. [latin centuria: related to *cent]

    Usage strictly speaking, since the first century ran from the year 1 to 100, the first year of a given century should be that ending in 01. However, in popular use this has been moved back a year, and so the twenty-first century will commonly be regarded as running from 2000–2099.

    Cephalic adj. Of or in the head. [greek kephale head]

    Cephalopod n. Mollusc with a distinct tentacled head, e.g. The octopus. [from *cephalic, greek pous pod-foot]

    Ceramic —adj. 1 made of (esp.) Baked clay. 2 of ceramics. —n. Ceramic article or product. [greek keramos pottery]

    Ceramics n.pl. 1 ceramic products collectively. 2 (usu. Treated as sing.) Art of making ceramic articles.

    Cereal —n. 1 a grain used for food. B wheat, maize, rye, etc. Producing this. 2 breakfast food made from a cereal. —adj. Of edible grain. [latin ceres goddess of agriculture]

    Cerebellum n. (pl. -s or -bella) part of the brain at the back of the skull. [latin diminutive of *cerebrum]

    Cerebral adj. 1 of the brain. 2 intellectual; unemotional. [related to *cerebrum]

    Cerebral palsy n. Paralysis resulting from brain damage before or at birth,

    Cerebral palsy n. Paralysis resulting from brain damage before or at birth, involving spasm of the muscles and involuntary movements.

    Cerebration n. Working of the brain.

    Cerebrospinal adj. Of the brain and spine.

    Cerebrum n. (pl. -bra) principal part of the brain in vertebrates, at the front of the skull. [latin]

    Ceremonial —adj. Of or with ceremony; formal. —n. System of rites or ceremonies. ceremonially adv.

    Ceremonious adj. Fond of or characterized by ceremony; formal. ceremoniously adv.

    Ceremony n. (pl. -ies) 1 formal procedure, esp. At a public event or anniversary. 2 formalities, esp. Ritualistic. 3 excessively polite behaviour. stand on ceremony insist on formality. [latin caerimonia worship]

    Cerise n. Light clear red. [french: related to *cherry]

    Cerium n. Silvery metallic element of the lanthanide series. [ceres, name of an asteroid]

    Cern abbr. European organization for nuclear research. [french conseil européen pour la recherche nucléaire, former title]

    Cert n. (esp. Dead cert) slang a certainty. [abbreviation]

    Cert. Abbr. 1 certificate. 2 certified.

    Cern abbr. European organization for nuclear research. [french conseil européen pour la recherche nucléaire, former title]

    Cert n. (esp. Dead cert) slang a certainty. [abbreviation]

    Cert. Abbr. 1 certificate. 2 certified.

    Certain —adj. 1 a confident, convinced. B indisputable (it is certain that he is guilty). 2 (often foll. By to + infin.) Sure; destined (it is certain to rain; certain to win). 3 unerring, reliable. 4 that need not be specified or may not be known to the reader or hearer (of a certain age; a certain john smith). 5 some but not much (a certain reluctance). —pron. (as pl.) Some but not all (certain of them knew). for certain without doubt. [latin certus]

    Certainly adv. 1 undoubtedly. 2 (in answer) yes; by all means.

    Certainty n. (pl. -ies) 1 a undoubted fact. B indubitable prospect. 2 absolute conviction. 3 reliable thing or person.

    Cert. Ed. Abbr. Certificate in education.

    Certifiable adj. 1 able or needing to be certified. 2 colloq. Insane.

    Certificate —n. Formal document attesting a fact, esp. Birth, marriage, or death, a medical condition, or a qualification. —v. (-ting) (esp. As certificated adj.) Provide with, license, or attest by a certificate. certification n. [latin: related to *certify]

    Certificate of secondary education n. Hist. Secondary-school leaving examination in england, wales, and northern ireland.

    Usage this examination was replaced in 1988 by the general certificate of secondary education (gcse).

    Certified cheque n. Cheque guaranteed by a bank.

    Certify v. (-ies, -ied) 1 attest; attest to, esp. Formally. 2 declare by certificate. 3 officially declare insane. [latin certus]

    Certitude n. Feeling of certainty. [latin: related to *certain]

    Cerulean adj. & n. Literary deep sky-blue. [latin caeruleus]

    Cervical adj. Of the neck or the cervix (cervical vertebrae). [related to *cervix]

    Cervical screening n. Mass routine examination for cervical cancer.

    Cervical smear n. Specimen from the neck of the womb for examination.

    Cervix n. (pl. Cervices) 1 necklike structure, esp. The neck of the womb. 2 the neck. [latin]

    Cesarean (brit. Caesarean) —adj. (of birth) effected by caesarean section. —n. Caesarean section. [from *caesar: julius caesar was supposedly born this way]

    Cesium n. (brit. Caesium) soft silver-white element. [latin caesius blue-grey]

    Cessation n. Ceasing or pause. [latin: related to *cease]

    Cession n. 1 ceding. 2 territory etc. Ceded. [latin: related to *cede]

    Cesspit n. (also cesspool) covered pit for the temporary storage of liquid waste or sewage. [origin uncertain]

    Cetacean —n. Marine mammal, e.g. The whale. —adj. Of cetaceans. [greek ketos whale]

    Cetane n. Liquid hydrocarbon used in standardizing ratings of diesel fuel. [from *spermaceti]

    Cf symb. Californium.

    Cf. Abbr. Compare. [latin confer]

    Cfc abbr. Chlorofluorocarbon, a usu. Gaseous compound of carbon, hydrogen, chlorine, and fluorine, used in refrigerants, aerosol propellants, etc., and thought to harm the ozone layer.

    Cfe abbr. College of further education.

    Cg abbr. Centigram(s).

    Ch abbr. Companion of honour.

    Chablis n. (pl. Same) very dry white wine from chablis in e. France.

    Cha-cha n. (also cha-cha-cha) 1 latin-american dance. 2 music for this. [american spanish]

    [american spanish]

    Chaconne n. 1 musical variations over a ground bass. 2 dance performed to this. [french from spanish]

    Chafe —v. (-fing) 1 make or become sore or damaged by rubbing. 2 make or become annoyed; fret. 3 rub (esp. The skin to restore warmth or sensation). —n. Sore caused by rubbing. [latin calefacio make warm]

    Chaff —n. 1 separated husks of corn etc. 2 chopped hay or straw. 3 light-hearted teasing. 4 worthless things. —v. Tease, banter. [old english]

    Chaffinch n. A common european finch. [old english: related to chaff, finch]

    Chafing-dish n. Vessel in which food is cooked or kept warm at table.

    Chagrin —n. Acute annoyance or disappointment. —v. Affect with chagrin. [french]

    Chain —n. 1 a connected flexible series of esp. Metal links. B thing resembling this. 2 (in pl.) Fetters; restraining force. 3 sequence, series, or set. 4 group of associated hotels, shops, etc. 5 badge of office in the form of a chain worn round the neck. 6 unit of length (66 ft). —v. (often foll. By up) secure or confine with a chain. [latin catena]

    Chain-gang n. Hist. Team of convicts chained together to work out of doors.

    Chain-mail n. Armour made of interlaced rings.

    Chain reaction n. 1 chemical or nuclear reaction forming products which initiate further reactions. 2 series of events, each caused by the previous one.

    Chain-saw n. Motor-driven saw with teeth on an endless chain.

    Chain-smoke v. Smoke continually, esp. By lighting the next cigarette etc. From the previous one. chain-smoker n.

    Chain store n. One of a series of similar shops owned by one firm.

    Chair —n. 1 seat for one person usu. With a back. 2 professorship. 3 a chairperson. B seat or office of a chairperson. 4 us = *electric chair. —v. 1 preside over (a meeting). 2 carry (a person) aloft in triumph. take the chair preside over a meeting. [greek kathedra]

    Chair-lift n. Series of chairs on a looped cable, for carrying passengers up and down a mountain etc.

    Chairman n. (fem. Also chairwoman) 1 person chosen to preside over a meeting. 2 permanent president of a committee, board of directors, etc.

    Chairperson n. Chairman or chairwoman.

    Chairperson n. Chairman or chairwoman.

    Chaise n. Esp. Hist. Horse-drawn usu. Open carriage for one or two persons. [french]

    Chaise longue n. (pl. Chaise longues or chaises longues pronunc. Same) sofa with only one arm rest. [french, = long chair]

    Chalcedony n. (pl. -ies) type of quartz with many varieties, e.g. Onyx. [latin from greek]

    Chalet n. 1 swiss mountain hut or cottage with overhanging eaves. 2 house in a similar style. 3 small cabin in a holiday camp etc. [swiss french]

    Chalice n. 1 goblet. 2 eucharistic cup. [latin *calix]

    Chalk —n. 1 white soft limestone. 2 a similar substance, sometimes coloured, for writing or drawing. B piece of this. —v. 1 rub, mark, draw, or write with chalk. 2 (foll. By up) a write or record with chalk. B register or gain (success etc.). by a long chalk by far. chalky adj. (-ier, -iest). Chalkiness n. [latin *calx]

    Challenge —n. 1 summons to take part in a contest etc. Or to prove or justify something. 2 demanding or difficult task. 3 objection made to a jury member. 4 call to respond. —v. (-ging) 1 issue a challenge to. 2 dispute, deny. 3 (as challenging adj.) Stimulatingly difficult. 4 object to (a jury member, evidence, etc.). challenger n. [latin calumnia calumny]

    Chalybeate adj. (of water etc.) Impregnated with iron salts. [latin chalybs steel, from greek]

    Chamber n. 1 a hall used by a legislative or judicial body. B body that meets in it, esp. Any of the houses of a parliament. 2 (in pl.) A rooms used by a barrister or barristers, esp. In inns of court. B judge’s room for hearing cases not needing to be taken in court. 3 archaic room, esp. A bedroom. 4 mus. (attrib.) Of or for a small group of instruments. 5 cavity or compartment in the body, machinery, etc. (esp. The part of a gun-bore that contains the charge). [greek kamara vault]

    Chamberlain n. 1 officer managing a royal or noble household. 2 treasurer of a corporation etc. [germanic: related to *chamber]

    Chambermaid n. Woman who cleans hotel bedrooms.

    Chamber of commerce n. Association to promote local commercial interests.

    Chamber-pot n. Receptacle for urine etc., used in the bedroom.

    Chameleon n. 1 small lizard able to change colour for camouflage. 2 variable or inconstant person. [greek, = groundlion]

    Chamfer —v. Bevel symmetrically (a right-angled edge or corner). —n. Bevelled surface at an edge or corner. [french chant edge, fraint broken]

    Chamois n. (pl. Same) 1 agile european and asian mountain antelope. 2 (in full chamois leather) a soft leather from sheep, goats, deer, etc. B piece of this. [french]

    Chamomile var. Of *camomile.

    Champ1 —v. Munch or chew noisily. —n. Chewing noise. champ at the bit be restlessly impatient. [imitative]

    Champ2 n. Slang champion. [abbreviation]

    Champagne n. 1 a white sparkling wine from champagne. B similar wine from elsewhere. 2 pale cream colour. [champagne, former province in e. France]

    Usage the use of this word in sense 1b is, strictly speaking, incorrect.

    Champers n. Slang champagne.

    Champion —n. 1 (often attrib.) Person or thing that has defeated or surpassed all rivals. 2 person who fights or argues for a cause or another person. —v. Support the cause of, defend. —adj. Colloq. Splendid. —adv. Colloq. Splendidly. [medieval latin campio fighter]

    Championship n. 1 (often in pl.) Contest to decide the champion in a sport etc. 2 position of champion.

    Chance —n. 1 possibility. 2 (often in pl.) Probability. 3 unplanned occurrence. 4 opportunity. 5 fortune; luck. 6 (often chance) course of events regarded as a power; fate. —attrib. Adj. Fortuitous, accidental. —v. (-cing) 1 colloq. Risk. 2 happen (i chanced to find it). by any chance perhaps. By chance fortuitously. Chance one’s arm try though unlikely to succeed. Chance on (or upon) happen to find, meet, etc. Game of chance one decided by luck, not skill. On the off chance just in case (the unlikely occurs). Stand a chance have a prospect of success etc. Take a chance (or chances) risk failure; behave riskily. Take a (or one’s) chance on (or with) risk the consequences of. [latin cado fall]

    Chancel n. Part of a church near the altar. [latin cancelli grating]

    Chancellery n. (pl. -ies) 1 chancellor’s department, staff, or residence. 2 us office attached to an embassy or consulate.

    Chancellor n. 1 state or legal official. 2 head of government in some european countries. 3 non-resident honorary head of a university. [latin cancellarius secretary]

    Chancellor of the exchequer n. Uk finance minister.

    Chancery n. (pl. -ies) 1 (chancery) lord chancellor’s division of the high court of justice. 2 records office. 3 chancellery. [contraction of *chancellery]

    Chancy adj. (-ier, -iest) uncertain; risky. chancily adv.

    Chandelier n. Ornamental branched hanging support for lighting. [french: related to *candle]

    Chandler n. Dealer in candles, oil, soap, paint, etc. [french: related to *candle]

    Change —n. 1 a making or becoming different. B alteration or modification. 2 a money exchanged for money in larger units or a different currency. B money returned as the balance of that given in payment. 3 new experience; variety (need a change). 4 substitution of one thing for another (change of scene). 5 (in full change of life) colloq. Menopause. 6 (usu. In pl.) One of the different orders in which bells can be rung. —v. (-ging) 1 undergo, show, or subject to change; make or become different. 2 a take or use another instead of; go from one to another (change one’s socks; changed trains). B (usu. Foll. By for) give up or get rid of in exchange (changed the car for a van). 3 give or get money in exchange for. 4 put fresh clothes or coverings on. 5 (often foll. By with) give and receive, exchange. 6 change trains etc. 7 (of the moon) arrive at a fresh phase. change down engage a lower gear. Change gear engage a different gear. Change hands 1 pass to a different owner. 2 substitute one hand for the other. Change one’s mind adopt a different opinion or plan. Change over change from one system or situation to another.

    Changeable adj. 1 inconstant. 2 that can change or be changed.

    Changeling n. Child believed to be substituted for another.

    Change of clothes n. Second outfit in reserve.

    Change of heart n. Conversion to a different view.

    Change-over n. Change from one system to another.

    Channel —n. 1 a piece of water wider than a strait, joining esp. Two seas. B (the channel) the english channel. 2 medium of communication; agency. 3 band of frequencies used in radio and television transmission, esp. By a particular station. 4 course in which anything moves. 5 a hollow bed of water. B navigable part of a waterway. 6 passage for liquid. 7 lengthwise strip on recording tape etc. —v. (-ll-; us -l-) 1 guide, direct. 2 form channel(s) in. [latin: related to *canal]

    Chant —n. 1 spoken singsong phrase. 2 a simple tune used for singing unmetrical words, e.g. Psalms. B song, esp. Monotonous or repetitive. —v. 1 talk or repeat monotonously. 2 sing or intone (a psalm etc.). [latin canto from cano sing]

    Chanter n. Melody-pipe of bagpipes.

    Chanticleer n. Name given to a domestic cock in stories. [french: related to *chant, *clear]

    Chantry n. (pl. -ies) 1 endowment for the singing of masses. 2 priests, chapel, etc., so endowed. [french: related to *chant]

    Chaos n. 1 utter confusion. 2 formless matter supposed to have existed before the creation of the universe. chaotic adj. Chaotically adv. [latin from greek]

    Chap1 n. Colloq. Man, boy, fellow. [abbreviation of *chapman]

    Chap1 n. Colloq. Man, boy, fellow. [abbreviation of *chapman]

    Chap2 —v. (-pp-) 1 (esp. Of the skin) develop cracks or soreness. 2 (of the wind, cold, etc.) Cause to chap. —n. (usu. In pl.) Crack in the skin etc. [origin uncertain]

    Chaparral n. Us dense tangled brushwood. [spanish]

    Chapatti n. (also chapati, chupatty) (pl. Chapat(t)is or chupatties) flat thin cake of unleavened bread. [hindi]

    Chapel n. 1 a place for private christian worship in a cathedral or large church, with its own altar. B this attached to a private house etc. 2 a place of worship for nonconformists. B chapel service. 3 members or branch of a printers’ trade union at a place of work. [medieval latin cappa cloak: the first chapel was a sanctuary in which st martin’s cloak (cappella) was preserved]

    Chaperon —n. Person, esp. An older woman, ensuring propriety by accompanying a young unmarried woman on social occasions. —v. Act as chaperon to. chaperonage n. [french from chape cope: related to *cape1]

    Chaplain n. Member of the clergy attached to a private chapel, institution, ship, regiment, etc. chaplaincy n. (pl. -ies). [latin: related to *chapel]

    Chaplet n. 1 garland or circlet for the head. 2 short string of beads; rosary. [latin: related to *cap]

    Chapman n. Hist. Pedlar. [old english: related to cheap, man]

    Chappie n. Colloq. = *chap1.

    Chapter n. 1 main division of a book. 2 period of time (in a person’s life etc.). 3 a canons of a cathedral or members of a religious community. B meeting of these. [latin diminutive of caput head]

    Chapter and verse n. Exact reference or details.

    Chapter of accidents n. Series of misfortunes.

    Char1 v. (-rr-) 1 make or become black by burning; scorch. 2 burn to charcoal. [from *charcoal]

    Char2 colloq. —n. = *charwoman. —v. (-rr-) work as a charwoman. [old english, = turn]

    Char3 n. Slang tea. [chinese cha]

    Char4 n. (pl. Same) a kind of small trout. [origin unknown]

    Charabanc n. Hist. Early form of motor coach. [french char à bancs seated carriage]

    carriage]

    Character n. 1 collective qualities or characteristics that distinguish a person or thing. 2 a moral strength. B reputation, esp. Good reputation. 3 a person in a novel, play, etc. B part played by an actor; role. 4 colloq. Person, esp. An eccentric one. 5 printed or written letter, symbol, etc. 6 written description of a person’s qualities. 7 characteristic (esp. Of a biological species). in (or out of) character consistent (or inconsistent) with a person’s character. characterless adj. [greek kharakter]

    Characteristic —adj. Typical, distinctive. —n. Characteristic feature or quality. characteristically adv.

    Characterize v. (also -ise) (-zing or -sing) 1 a describe the character of. B (foll. By as) describe as. 2 be characteristic of. 3 impart character to. characterization n.

    Charade n. 1 (usu. In pl., treated as sing.) Game of guessing a word from acted clues. 2 absurd pretence. [provençal charra chatter]

    Charcoal n. 1 a form of carbon consisting of black residue from partially burnt wood etc. B piece of this for drawing. C a drawing in charcoal. 2 (in full charcoal grey) dark grey. [origin unknown]

    Charge —v. (-ging) 1 a ask (an amount) as a price. B ask (a person) for an amount as a price. 2 a (foll. By to, up to) debit the cost of to (a person or account). B debit (a person or account). 3 a (often foll. By with) accuse (of an offence). B (foll. By that + clause) make an accusation that. 4 (foll. By to + infin.) Instruct or urge. 5 (foll. By with) entrust with. 6 make a rushing attack

    (on). 7 (often foll. By up) a give an electric charge to. B store energy in (a battery). 8 (often foll. By with) load or fill (a vessel, gun, etc.) To the full or proper extent. 9 (usu. As charged adj.) A (foll. By with) saturated with. B (usu. Foll. By with) pervaded (with strong feelings etc.). —n. 1 a price asked for services or goods. B financial liability or commitment. 2 accusation. 3 a task, duty, commission. B care, custody. C person or thing entrusted. 4 a impetuous rush or attack, esp. In battle. B signal for this. 5 appropriate amount of material to be put into a receptacle, mechanism, etc. At one time, esp. Of explosive for a gun. 6 a property of matter causing electrical phenomena. B quantity of this carried by the body. C energy stored chemically for conversion into electricity. 7 exhortation; directions, orders. 8 heraldic device or bearing. in charge having command. Take charge (often foll. By of) assume control. chargeable adj. [latin carrus *car]

    Charge-capping n. Imposition of an upper limit on the community charge leviable by a local authority.

    Charge card n. = *credit card.

    Chargé d’affaires n. (pl. Chargés pronunc. Same) 1 ambassador’s deputy. 2 envoy to a minor country. [french]

    Charger n. 1 cavalry horse. 2 apparatus for charging a battery.

    Chariot n. Hist. Two-wheeled vehicle drawn by horses, used in ancient warfare and racing. [french: related to *car]

    Charioteer n. Chariot-driver.

    Charisma n. 1 power to inspire or attract others; exceptional charm. 2 divinely conferred power or talent. charismatic adj. [greek kharis grace]

    Charitable adj. 1 generous in giving to those in need. 2 of or relating to a charity or charities. 3 generous in judging others. charitably adv.

    Charity n. (pl. -ies) 1 giving voluntarily to those in need. 2 organization set up to help those in need or for the common good. 3 a kindness, benevolence. B tolerance in judging others. C love of fellow men. [latin caritas from carus dear]

    Charlady n. = *charwoman.

    Charlatan n. Person falsely claiming knowledge or skill. charlatanism n. [italian, = babbler]

    Charleston n. (also charleston) lively dance of the 1920s with side-kicks from the knee. [charleston in s. Carolina]

    Charlotte n. Pudding of stewed fruit covered with bread etc. [french]

    Charm —n. 1 power or quality of delighting, arousing admiration, or influencing; fascination, attractiveness. 2 trinket on a bracelet etc. 3 object, act, or word(s) supposedly having magic power. —v. 1 delight, captivate. 2 influence or protect as if by magic (a charmed life). 3 obtain or gain by charm (charmed his way into the bbc). charmer n. [latin carmen song]

    Charming adj. Delightful. charmingly adv.

    Charnel-house n. Repository of corpses or bones. [latin: related to *carnal]

    Chart —n. 1 geographical map or plan, esp. For navigation. 2 sheet of information in the form of a table, graph, or diagram. 3 (usu. In pl.) Colloq. Listing of the currently best-selling pop records. —v. Make a chart of, map. [latin charta: related to *card1]

    Charter —n. 1 a document granting rights, issued esp. By a sovereign or legislature. B written constitution or description of an organization’s functions etc. 2 contract to hire an aircraft, ship, etc., for a special purpose. —v. 1 grant a charter to. 2 hire (an aircraft, ship, etc.). [latin chartula: related to *chart]

    Chartered attrib. Adj. (of an accountant, engineer, librarian, etc.) Qualified member of a professional body that has a royal charter.

    Charter flight n. Flight by chartered aircraft.

    Chartism n. Hist. Uk parliamentary reform movement of 1837–48. chartist n. [from *charter: name taken from ‘people’s charter’]

    Chartreuse n. Pale green or yellow brandy-based liqueur. [chartreuse, monastery in s. France]

    Charwoman n. Woman employed as a cleaner in a house.

    Charwoman n. Woman employed as a cleaner in a house.

    Chary adj. (-ier, -iest) 1 cautious, wary. 2 sparing; ungenerous. [old english: related to *care]

    Charybdis see *scylla and charybdis.

    Chase1 —v. (-sing) 1 run after; pursue. 2 (foll. By from, out of, to, etc.) Force to run away or flee. 3 a (foll. By after) hurry in pursuit of. B (foll. By round etc.) Colloq. Act or move about hurriedly. 4 (usu. Foll. By up) colloq. Pursue (a thing overdue). 5 colloq. A try to attain. B court persistently. —n. 1 pursuit. 2 unenclosed hunting-land. 3 (prec. By the) hunting, esp. As a sport. [latin capto: related to *catch]

    Chase2 v. (-sing) emboss or engrave (metal). [french: related to *case2]

    Chaser n. 1 horse for steeplechasing. 2 colloq. Drink taken after another of a different kind.

    Chasm n. 1 deep cleft or opening in the earth, rock, etc. 2 wide difference of feeling, interests, etc. [latin from greek]

    Chassis n. (pl. Same) 1 base-frame of a motor vehicle, carriage, etc. 2 frame to carry radio etc. Components. [latin: related to *case2]

    Chaste adj. 1 abstaining from extramarital, or from all, sexual intercourse. 2

    Chaste adj. 1 abstaining from extramarital, or from all, sexual intercourse. 2 pure, virtuous. 3 simple, unadorned. chastely adv. Chasteness n. [latin castus]

    Chasten v. 1 (esp. As chastening, chastened adjs.) Subdue, restrain. 2 discipline, punish.

    Chastise v. (-sing) 1 rebuke severely. 2 punish, esp. By beating. chastisement n.

    Chastity n. Being chaste.

    Chasuble n. Loose sleeveless usu. Ornate outer vestment worn by a celebrant at mass or the eucharist. [latin casubla]

    Chat —v. (-tt-) talk in a light familiar way. —n. 1 pleasant informal talk. 2 any of various songbirds. chat up colloq. Chat to, esp. Flirtatiously or with an ulterior motive. [shortening of *chatter]

    Château n. (pl. -x) large french country house or castle. [french: related to *castle]

    Chatelaine n. 1 mistress of a large house. 2 hist. Set of short chains attached to a woman’s belt, for carrying keys etc. [medieval latin castellanus: related to *castle]

    Chatline n. Telephone service which sets up a conference call among youngsters.

    Chat show n. Television or radio broadcast in which celebrities are interviewed informally.

    Chattel n. (usu. In pl.) Movable possession. [french: related to *cattle]

    Chatter —v. 1 talk quickly, incessantly, trivially, or indiscreetly. 2 (of a bird, monkey, etc.) Emit short quick sounds. 3 (of teeth) click repeatedly together. — n. Chattering talk or sounds. [imitative]

    Chatterbox n. Talkative person.

    Chatty adj. (-ier, -iest) 1 fond of chatting. 2 resembling chat. chattily adv. Chattiness n.

    Chauffeur —n. (fem. Chauffeuse) person employed to drive a car. —v. Drive (a car or person) as a chauffeur. [french, = stoker]

    Chauvinism n. 1 exaggerated or aggressive patriotism. 2 excessive or prejudiced support or loyalty for one’s cause or group. [chauvin, name of a character in a french play 1831]

    Chauvinist n. 1 person exhibiting chauvinism. 2 (in full male chauvinist) man who shows prejudice against women. chauvinistic adj. Chauvinistically adv.

    Cheap —adj. 1 low in price; worth more than its cost. 2 charging low prices; offering good value. 3 of poor quality; inferior. 4 costing little effort and hence

    offering good value. 3 of poor quality; inferior. 4 costing little effort and hence of little worth. —adv. Cheaply. on the cheap cheaply. cheaply adv. Cheapness n. [old english, = price, bargain]

    Cheapen v. Make or become cheap; depreciate, degrade.

    Cheapjack —n. Seller of inferior goods at low prices. —adj. Inferior, shoddy.

    Cheapskate n. Esp. Us colloq. Stingy person.

    Cheat —v. 1 a (often foll. By into, out of) deceive or trick. B (foll. By of) deprive of. 2 gain an unfair advantage by deception or breaking rules. —n. 1 person who cheats. 2 trick, deception. cheat on colloq. Be sexually unfaithful to. [from *escheat]

    Check —v. 1 a examine the accuracy or quality of. B make sure, verify. 2 a stop or slow the motion of; curb. B colloq. Rebuke. 3 chess directly threaten (the opposing king). 4 us agree on comparison. 5 us mark with a tick etc. 6 us deposit (luggage etc.). —n. 1 means or act of testing or ensuring accuracy, quality, etc. 2 a stopping or slowing of motion. B rebuff or rebuke. C person or thing that restrains. 3 a pattern of small squares. B fabric so patterned. C (attrib.) So patterned. 4 (also as int.) Chess exposure of a king to direct attack. 5 us restaurant bill. 6 us = *cheque. 7 esp. Us token of identification for left luggage etc. 8 us cards counter used in games. 9 temporary loss of the scent in hunting. check in 1 arrive or register at a hotel, airport, etc. 2 record the arrival of. Check into register one’s arrival at (a hotel etc.). Check off mark on a list etc. As having been examined. Check on examine, verify, keep watch on. Check out 1 (often foll. By of) leave a hotel etc. With due formalities. 2 esp. Us investigate. Check up make sure, verify. Check up on = check on. [persian, = king]

    Checked adj. Having a check pattern.

    Checker1 n. Person etc. That examines, esp. In a factory etc.

    Checker2 n. 1 var. Of *chequer. 2 us a (in pl., usu. Treated as sing.) Draughts. B piece used in this game.

    Checkin n. Act or place of checking in.

    Checkmate —n. (also as int.) Chess check from which a king cannot escape. — v. (-ting) 1 chess put into checkmate. 2 frustrate. [french: related to *check, persian mat is dead]

    Checkout n. 1 act of checking out. 2 pay-desk in a supermarket etc.

    Checkpoint n. Place, esp. A barrier or entrance, where documents, vehicles, etc., are inspected.

    Check-up n. Thorough (esp. Medical) examination.

    Cheddar n. A kind of firm smooth cheese. [cheddar in somerset]

    Cheek —n. 1 a side of the face below the eye. B side-wall of the mouth. 2 a impertinence; cool confidence. B impertinent speech. 3 slang buttock. —v. Be

    impertinence; cool confidence. B impertinent speech. 3 slang buttock. —v. Be impertinent to. cheek by jowl close together; intimate. [old english]

    Cheek-bone n. Bone below the eye.

    Cheeky adj. (-ier, -iest) impertinent. cheekily adv. Cheekiness n.

    Cheep —n. Weak shrill cry of a young bird. —v. Make such a cry. [imitative]

    Cheer —n. 1 shout of encouragement or applause. 2 mood, disposition (full of good cheer). 3 (in pl.; as int.) Colloq. A expressing good wishes on parting or before drinking. B expressing gratitude. —v. 1 a applaud with shouts. B (usu. Foll. By on) urge with shouts. 2 shout for joy. 3 gladden; comfort. cheer up make or become less depressed. [latin cara face, from greek]

    Cheerful adj. 1 in good spirits, noticeably happy. 2 bright, pleasant. cheerfully adv. Cheerfulness n.

    Cheerio int. Colloq. Expressing good wishes on parting.

    Cheer-leader n. Person who leads cheers of applause etc.

    Cheerless adj. Gloomy, dreary.

    Cheery adj. (-ier, -iest) cheerful. cheerily adv. Cheeriness n.

    Cheese n. 1 a food made from curds of milk. B cake of this with rind. 2 conserve with the consistency of soft cheese. cheesy adj. [latin caseus]

    Cheeseburger n. Hamburger with cheese in or on it.

    Cheesecake n. 1 tart filled with sweetened curds etc. 2 slang portrayal of women in a sexually stimulating manner.

    Cheesecloth n. Thin loosely-woven cloth.

    Cheesed adj. Slang (often foll. By off) bored, fed up. [origin unknown]

    Cheese-paring adj. Stingy.

    Cheese plant n. Climbing plant with holes in its leaves.

    Cheetah n. Swift-running spotted leopard-like feline. [hindi]

    Chef n. (usu. Male) cook, esp. The chief cook in a restaurant. [french]

    Chelsea bun n. Currant bun in the form of a flat spiral. [chelsea in london]

    Chelsea pensioner n. Inmate of the chelsea royal hospital for old or disabled soldiers.

    Chemical —adj. Of, made by, or employing chemistry or chemicals. —n. Substance obtained or used in chemistry. chemically adv. [french or medieval latin: related to *alchemy]

    Chemical engineering n. Creation and operation of industrial chemical plants.

    Chemical warfare n. Warfare using poison gas and other chemicals.

    Chemise n. Hist. Woman’s loose-fitting undergarment or dress. [latin camisia shirt]

    Chemist n. 1 dealer in medicinal drugs etc. 2 expert in chemistry. [french: related to *alchemy]

    Chemistry n. (pl. -ies) 1 branch of science dealing with the elements and the compounds they form and the reactions they undergo. 2 chemical composition and properties of a substance. 3 colloq. Sexual attraction.

    Chemotherapy n. Treatment of disease, esp. Cancer, by chemical substances.

    Chenille n. 1 tufty velvety cord or yarn. 2 fabric of this. [french, = caterpillar, from latin canicula little dog]

    Cheque n. 1 written order to a bank to pay the stated sum from the drawer’s account. 2 printed form on which this is written. [from *check]

    Cheque-book n. Book of forms for writing cheques.

    Cheque card n. Card issued by a bank to guarantee the honouring of cheques up to a stated amount.

    Cheque card n. Card issued by a bank to guarantee the honouring of cheques up to a stated amount.

    Chequer —n. 1 (often in pl.) Pattern of squares often alternately coloured. 2 var. Of *checker2 2. —v. 1 mark with chequers. 2 variegate; break the uniformity of. 3 (as chequered adj.) With varied fortunes (chequered career). [from *exchequer]

    Cherish v. 1 protect or tend lovingly. 2 hold dear, cling to (hopes, feelings, etc.). [french cher dear, from latin carus]

    Cheroot n. Cigar with both ends open. [french from tamil]

    Cherry —n. (pl. -ies) 1 a small soft round stone-fruit. B tree bearing this or grown for its ornamental flowers. C its wood. 2 light red colour. —adj. Of light

    grown for its ornamental flowers. C its wood. 2 light red colour. —adj. Of light red colour. [greek kerasos]

    Cherub n. 1 (pl. -im) angelic being of the second order of the celestial hierarchy. 2 a representation of a winged child or its head. B beautiful or innocent child. cherubic adj. [ultimately from hebrew]

    Chervil n. Herb used for flavouring. [greek khairephullon]

    Cheshire n. A kind of firm crumbly cheese. like a cheshire cat with a broad fixed grin. [cheshire in england]

    Chess n. Game for two with 16 men each, played on a chessboard. [french: related to *check]

    Chessboard n. Chequered board of 64 squares on which chess and draughts are played.

    Chessman n. Any of the 32 pieces and pawns with which chess is played.

    Chest n. 1 large strong box. 2 a part of the body enclosed by the ribs. B front surface of the body from the neck to the bottom of the ribs. 3 small cabinet for medicines etc. get a thing off one’s chest colloq. Disclose a secret etc. To relieve one’s anxiety about it. [latin cista]

    Chesterfield n. Sofa with arms and back of the same height and curved outwards

    Chesterfield n. Sofa with arms and back of the same height and curved outwards at the top. [earl of chesterfield]

    Chestnut —n. 1 a glossy hard brown edible nut. B tree bearing it. 2 = *horse chestnut. 3 wood of any chestnut. 4 horse of a reddish-brown colour. 5 colloq. Stale joke etc. 6 reddish-brown. —adj. Reddish-brown. [greek kastanea nut]

    Chest of drawers n. Piece of furniture consisting of a set of drawers in a frame.

    Chesty adj. (-ier, -iest) colloq. Inclined to or symptomatic of chest disease. chestily adv. Chestiness n.

    Cheval-glass n. Tall mirror swung on an upright frame. [latin caballus horse]

    Chevalier n. Member of certain orders of knighthood, or of the french legion of honour etc. [medieval latin caballarius horseman]

    Chevron n. V-shaped line or stripe. [latin caper goat]

    Chew —v. Work (food etc.) Between the teeth. —n. 1 act of chewing. 2 chewy sweet. chew on 1 work continuously between the teeth. 2 think about. Chew over 1 discuss, talk over. 2 think about. [old english]

    Chewing-gum n. Flavoured gum for chewing.

    Chewy adj. (-ier, -iest) 1 needing much chewing. 2 suitable for chewing. chewiness n.

    Chez prep. At the home of. [latin casa cottage]

    Chi n. Twenty-second letter of the greek alphabet (c, c). [greek]

    Chianti n. (pl. -s) red wine from the chianti area in italy.

    Chiaroscuro n. 1 treatment of light and shade in drawing and painting. 2 use of contrast in literature etc. [italian, = clear dark]

    Chic —adj. (chic-er, chic-est) stylish, elegant. —n. Stylishness, elegance. [french]

    Chicane —n. 1 artificial barrier or obstacle on a motor racecourse. 2 chicanery. —v. (-ning) archaic 1 use chicanery. 2 (usu. Foll. By into, out of, etc.) Cheat (a person). [french]

    Chicanery n. (pl. -ies) 1 clever but misleading talk. 2 trickery, deception. [french]

    Chick n. 1 young bird. 2 slang young woman. [old english: related to *chicken]

    Chicken —n. 1 a domestic fowl. B its flesh as food. 2 young bird of a domestic fowl. 3 youthful person (is no chicken). —adj. Colloq. Cowardly. —v. (foll. By out) colloq. Withdraw through cowardice. [old english]

    Chicken-feed n. 1 food for poultry. 2 colloq. Trivial amount, esp. Of money.

    Chickenpox n. Infectious disease, esp. Of children, with a rash of small blisters.

    Chicken-wire n. Light wire netting with a hexagonal mesh.

    Chick-pea n. Yellow pea-like seed used as a vegetable. [latin cicer]

    Chickweed n. Small weed with tiny white flowers.

    Chicle n. Milky juice of a tropical tree, used in chewing-gum. [spanish from nahuatl]

    Chicory n. (pl. -ies) 1 plant with leaves used in salads. 2 its root, roasted and ground and used with or instead of coffee. 3 esp. Us = *endive. [greek kikhorion]

    Chide v. (past chided or chid; past part. Chided or chidden) archaic scold, rebuke. [old english]

    Chief —n. 1 a leader or ruler. B head of a tribe, clan, etc. 2 head of a department; highest official. —adj. 1 first in position, importance, influence, etc. 2 prominent, leading. [latin caput head]

    Chief constable n. Head of the police force of a county etc.

    Chiefly adv. Above all; mainly but not exclusively.

    Chief of staff n. Senior staff officer of a service or command.

    Chieftain n. Leader of a tribe, clan, etc. chieftaincy n. (pl. -ies). [latin: related to *chief]

    Chiffchaff n. Small european warbler. [imitative]

    Chiffon n. Light diaphanous fabric of silk, nylon, etc. [french chiffe rag]

    Chignon n. Coil of hair at the back of a woman’s head. [french]

    Chihuahua n. Dog of a very small smooth-haired breed. [chihuahua in mexico]

    Chilblain n. Painful itching swelling on a hand, foot, etc., caused by exposure to cold. [from *chill, blain inflamed sore, blister]

    Child n. (pl. Children) 1 a young human being below the age of puberty. B unborn or newborn human being. 2 one’s son or daughter. 3 (foll. By of) descendant, follower, or product of. 4 childish person. childless adj. [old english]

    Child abuse n. Maltreatment of a child, esp. By physical violence or sexual molestation.

    Child benefit n. Regular payment by the state to the parents of a child up to a certain age.

    Childbirth n. Giving birth to a child.

    Child care n. The care of children, esp. By a local authority.

    Childhood n. State or period of being a child.

    Childish adj. 1 of, like, or proper to a child. 2 immature, silly. childishly adv. Childishness n.

    Childlike adj. Having the good qualities of a child, such as innocence, frankness, etc.

    Child-minder n. Person looking after children for payment.

    Child’s play n. Easy task.

    Chili var. Of *chilli.

    Chill —n. 1 a unpleasant cold sensation; lowered body temperature. B feverish cold. 2 unpleasant coldness (of air, water, etc.). 3 depressing influence. 4 coldness of manner. —v. 1 make or become cold. 2 depress; horrify. 3 preserve (food or drink) by cooling. —adj. Literary chilly. [old english]

    Chilli n. (also chili) (pl. -es) hot-tasting dried red capsicum pod. [spanish from aztec]

    Chilli con carne n. Dish of chilli-flavoured mince and beans.

    Chilly adj. (-ier, -iest) 1 somewhat cold. 2 sensitive to the cold. 3 unfriendly; unemotional.

    Chiltern hundreds n.pl. Crown manor, whose administration is a nominal office for which an mp applies as a way of resigning from the house of commons. [chiltern hills in s. England]

    Chime —n. 1 set of attuned bells. 2 sounds made by this. —v. (-ming) 1 (of bells) ring. 2 show (the time) by chiming. 3 (usu. Foll. By together, with) be in

    Agreement. chime in 1 interject a remark. 2 join in harmoniously. 3 (foll. By with) agree with. [old english: related to *cymbal]

    with) agree with. [old english: related to *cymbal]

    Chimera n. 1 (in greek mythology) monster with a lion’s head, goat’s body, and serpent’s tail. 2 bogey. 3 wild or fantastic conception. chimerical adj. [latin from greek]

    Chimney n. (pl. -s) 1 channel conducting smoke etc. Up and away from a fire, engine, etc. 2 part of this above a roof. 3 glass tube protecting the flame of a lamp. 4 narrow vertical crack in a rock-face. [latin caminus oven, from greek]

    Chimney-breast n. Projecting wall surrounding a chimney.

    Chimney-pot n. Earthenware or metal pipe at the top of a chimney.

    Chimney-stack n. Number of chimneys grouped in one structure.

    Chimney-sweep n. Person who removes soot from inside chimneys.

    Chimp n. Colloq. = *chimpanzee. [abbreviation]

    Chimpanzee n. Small african manlike ape. [french from kongo]

    Chin n. Front of the lower jaw. keep one’s chin up colloq. Remain cheerful. Take on the chin suffer a severe blow from; endure courageously. [old english]

    Take on the chin suffer a severe blow from; endure courageously. [old english]

    China —n. 1 fine white or translucent ceramic ware, porcelain, etc. 2 things made of this. —adj. Made of china. [china in asia]

    China clay n. Kaolin.

    Chinaman n. 1 archaic or derog. (now usu. Offens.) Native of china. 2 cricket ball bowled by a left-handed bowler that spins from off to leg.

    Chinchilla n. 1 a small s. American rodent. B its soft grey fur. 2 breed of cat or rabbit. [spanish chinche bug]

    Chine —n. 1 a backbone. B joint of meat containing all or part of this. 2 ridge. —v. (-ning) cut (meat) through the backbone. [latin spina *spine]

    Chinese —adj. Of china. —n. 1 chinese language. 2 (pl. Same) a native or national of china. B person of chinese descent.

    Chinese lantern n. 1 collapsible paper lantern. 2 plant with an orange-red papery calyx.

    Chinese leaf n. Lettuce-like cabbage.

    Chink n. Slang offens. A chinese. [abbreviation]

    Chink n. Slang offens. A chinese. [abbreviation]

    Chink1 n. Narrow opening; slit. [related to chine narrow ravine]

    Chink2 —v. (cause to) make a sound like glasses or coins striking together. —n. This sound. [imitative]

    Chinless adj. Colloq. Weak or feeble in character.

    Chinless wonder n. Ineffectual esp. Upper-class person.

    Chinoiserie n. 1 imitation of chinese motifs in painting and in decorating furniture. 2 object(s) in this style. [french]

    Chintz n. Printed multicoloured usu. Glazed cotton fabric. [hindi from sanskrit]

    Chintzy adj. (-ier, -iest) 1 like chintz. 2 gaudy, cheap. 3 characteristic of décor associated with chintz soft furnishings.

    Chin-wag slang —n. Talk or chat. —v. (-gg-) chat.

    Chip —n. 1 small piece removed by chopping etc. 2 place or mark where a piece has been broken off. 3 a strip of potato, usu. Deep-fried. B us potato crisp. 4

    counter used in some games to represent money. 5 = *microchip. —v. (-pp-) 1 (often foll. By off, away) cut or break (a piece) from a hard material. 2 (often foll. By at, away at) cut pieces off (a hard material) to alter its shape etc. 3 be apt to break at the edge. 4 (usu. As chipped adj.) Make (potatoes) into chips. chip in colloq. 1 interrupt. 2 contribute (money etc.). A chip off the old block child resembling its parent, esp. In character. A chip on one’s shoulder colloq. Inclination to feel resentful or aggrieved. When the chips are down colloq. When it comes to the point. [old english]

    Chipboard n. Board made from compressed wood chips.

    Chipmunk n. Striped n. American ground squirrel. [algonquian]

    Chipolata n. Small thin sausage. [french from italian]

    Chippendale adj. (of furniture) of an elegantly ornate 18th-c. Style. [name of a cabinet-maker]

    Chiro-comb. Form hand. [greek kheir]

    Chiromancy n. Palmistry. [greek mantis seer]

    Chiropody n. Treatment of the feet and their ailments. chiropodist n. [greek pous podos foot]

    Chiropractic n. Treatment of disease by manipulation of esp. The spinal column. chiropractor n. [greek pratto do]

    Chirp —v. 1 (of small birds, grasshoppers, etc.) Utter a short sharp note. 2 speak or utter merrily. —n. Chirping sound. [imitative]

    Chirpy adj. Colloq. (-ier, -iest) cheerful, lively. chirpily adv. Chirpiness n.

    Chirrup —v. (-p-) chirp, esp. Repeatedly. —n. Chirruping sound. [imitative]

    Chisel —n. Hand tool with a squared bevelled blade for shaping wood, stone, or metal. —v. 1 (-ll-; us -l-) cut or shape with a chisel. 2 (as chiselled adj.) (of facial features) clear-cut, fine. 3 slang cheat. [latin caedo cut]

    Chit1 n. 1 derog. Or joc. Young small woman (esp. A chit of a girl). 2 young child. [originally = whelp, cub]

    Chit2 n. 1 note of requisition, of a sum owed, etc. 2 note or memorandum. [hindi from sanskrit]

    Chit-chat n. Colloq. Light conversation; gossip. [reduplication of *chat]

    Chivalrous adj. 1 gallant, honourable. 2 of or showing chivalry. chivalrously adv. [latin: related to *chevalier]

    Chivalry n. 1 medieval knightly system with its religious, moral, and social code. 2 honour, courtesy, and readiness to help the weak. chivalric adj.

    2 honour, courtesy, and readiness to help the weak. chivalric adj.

    Chive n. Small plant with long onion-flavoured leaves. [latin cepa onion]

    Chivvy v. (-ies, -ied) urge persistently, nag. [probably from ballad of chevy chase]

    Chloral n. 1 colourless liquid aldehyde used in making ddt. 2 (in full chloral hydrate) pharm. Crystalline solid made from this and used as a sedative. [french: related to chlorine, alcohol]

    Chloride n. 1 compound of chlorine and another element or group. 2 bleaching agent containing this.

    Chlorinate v. (-ting) impregnate or treat with chlorine. chlorination n.

    Chlorine n. Poisonous gaseous element used for purifying water etc. [greek khloros green]

    Chlorofluorocarbon see *cfc.

    Chloroform —n. Colourless volatile liquid formerly used as a general anaesthetic. —v. Render unconscious with this. [from chlorine, formic acid]

    Chlorophyll n. Green pigment found in most plants. [greek khloros green, phullon leaf]

    Choc n. Colloq. Chocolate. [abbreviation]

    Choc-ice n. Bar of ice-cream covered with chocolate.

    Chock —n. Block or wedge to check the motion of a wheel etc. —v. Make fast with chocks. [french]

    Chock-a-block predic. Adj. (often foll. By with) crammed together or full.

    Chock-full predic. Adj. (often foll. By of) crammed full.

    Chocolate —n. 1 a food preparation in the form of a paste or solid block made from ground cacao seeds and usu. Sweetened. B sweet made of or coated with this. C drink containing this. 2 deep brown. —adj. 1 made from chocolate. 2 deep brown. [aztec chocolatl]

    Choice —n. 1 a act of choosing. B thing or person chosen. 2 range from which to choose. 3 power or opportunity to choose. —adj. Of superior quality. [germanic: related to *choose]

    Choir n. 1 regular group of singers, esp. In a church. 2 part of a cathedral or large church between the altar and nave. [latin: related to *chorus]

    Choirboy n. (fem. Choirgirl) boy singer in a church choir.

    Choke —v. (-king) 1 stop the breathing of (a person or animal), esp. By constricting the windpipe or (of gas, smoke, etc.) By being unbreathable. 2 suffer a stoppage of breath. 3 make or become speechless from emotion. 4 retard the growth of or kill (esp. Plants) by depriving of light etc. 5 (often foll. By back) suppress (feelings) with difficulty. 6 block or clog (a passage, tube, etc.). 7 (as choked adj.) Colloq. Disgusted, disappointed. —n. 1 valve in a carburettor controlling the intake of air. 2 device for smoothing the variations of an alternating current. choke up block (a channel etc.). [old english]

    Choker n. Close-fitting necklace.

    Cholecalciferol n. A vitamin (d3) produced by the action of sunlight on a steroid in the skin. [from *choler, *calciferol]

    Choler n. 1 hist. One of the four humours, bile. 2 poet. Or archaic anger, irascibility. [greek khole bile]

    Cholera n. Infectious often fatal bacterial disease of the small intestine. [related to *choler]

    Choleric adj. Irascible, angry.

    Cholesterol n. Sterol found in most body tissues, including the blood where high concentrations promote arteriosclerosis. [from *choler, greek stereos stiff]

    Chomp v. = *champ1. [imitative]

    Choose v. (-sing; past chose; past part. Chosen) 1 select out of a greater number. 2 (usu. Foll. By between, from) take or select one or another. 3 (usu. Foll. By to + infin.) Decide, be determined. 4 select as (was chosen leader). nothing (or little) to choose between them they are very similar. [old english]

    Choosy adj. (-ier, -iest) colloq. Fastidious. choosiness n.

    Chop1 —v. (-pp-) 1 (usu. Foll. By off, down, etc.) Cut or fell by the blow of an axe etc. 2 (often foll. By up) cut into small pieces. 3 strike (esp. A ball) with a short heavy edgewise blow. —n. 1 cutting blow. 2 thick slice of meat (esp. Pork or lamb) usu. Including a rib. 3 short chopping stroke in cricket etc. 4 (prec. By the) slang a = sack1 n. 2. B killing or being killed. [related to chap2]

    Chop2 n. (usu. In pl.) Jaw. [origin unknown]

    Chop3 v. (-pp-) chop and change vacillate; change direction frequently. Chop logic argue pedantically. [perhaps related to *cheap]

    Chopper n. 1 a short axe with a large blade. B butcher’s cleaver. 2 colloq. Helicopter. 3 colloq. Type of bicycle or motor cycle with high handlebars.

    Choppy adj. (-ier, -iest) (of the sea etc.) Fairly rough. choppily adv. Choppiness n. [from *chop1]

    Chopstick n. Each of a pair of sticks held in one hand as eating utensils by the chinese, japanese, etc. [pidgin english from chinese, = nimble ones]

    Chopsuey n. (pl. -s) chinese-style dish of meat fried with vegetables and rice. [chinese, = mixed bits]

    Choral adj. Of, for, or sung by a choir or chorus. [medieval latin: related to *chorus]

    Chorale n. 1 simple stately hymn tune; harmonized form of this. 2 esp. Us choir. [german: related to *choral]

    Chord1 n. Group of notes sounded together. [originally cord from *accord]

    Chord2 n. 1 straight line joining the ends of an arc or curve. 2 poet. String of a harp etc. strike a chord elicit sympathy. [var. Of *cord]

    Chordate —n. Animal having a cartilaginous skeletal rod at some stage of its development. —adj. Of chordates. [latin chorda *chord2 after vertebrata etc.]

    Chore n. Tedious or routine task, esp. Domestic. [from *char2]

    Choreograph v. Compose choreography for (a ballet etc.). choreographer n.

    Choreography n. Design or arrangement of a ballet etc. choreographic adj. [greek khoreia dance]

    Chorister n. Member of a choir, esp. A choirboy. [french: related to *choir]

    Chortle —n. Gleeful chuckle. —v. (-ling) utter or express with a chortle. [probably from *chuckle, *snort]

    Chorus —n. (pl. -es) 1 group of singers; choir. 2 music composed for a choir. 3 refrain or main part of a song. 4 simultaneous utterance. 5 group of singers and dancers performing together. 6 gk antiq. A group of performers who comment on the action in a greek play. B utterance made by it. 7 character speaking the prologue in a play. —v. (-s-) speak or utter simultaneously. [latin from greek]

    Chose past of *choose.

    Chosen past part. Of *choose.

    Chough n. Bird with glossy blue-black plumage and red legs. [imitative]

    Choux pastry n. Very light pastry enriched with eggs. [french]

    Chow n. 1 slang food. 2 dog of a chinese breed with long woolly hair. [chinese chow-chow]

    chow-chow]

    Chow mein n. Chinese-style dish of fried noodles with shredded meat or shrimps etc. And vegetables. [chinese chao mian fried flour]

    Christ —n. 1 title, also now treated as a name, given to jesus. 2 messiah as prophesied in the old testament. —int. Slang expressing surprise, anger, etc. [greek, = anointed]

    Christen v. 1 baptize as a sign of admission to the christian church. 2 give a name to. 3 colloq. Use for the first time. christening n. [latin: related to *christian]

    Christendom n. Christians worldwide.

    Christian —adj. 1 of christ’s teaching. 2 believing in or following the religion of christ. 3 showing the associated qualities. 4 colloq. Kind. —n. Adherent of christianity. [latin christianus of *christ]

    Christian era n. Era reckoned from christ’s birth.

    Christianity n. 1 christian religion. 2 being a christian; christian quality or character.

    Christian name n. Forename, esp. As given at baptism.

    Christian science n. Christian sect believing in the power of healing by prayer alone. christian scientist n.

    Christmas n. 1 (also christmas day) annual festival of christ’s birth, celebrated on 25 dec. 2 period around this. christmassy adj. [old english: related to *christ, *mass2]

    Christmas-box n. Present or gratuity given at christmas.

    Christmas eve n. 24 dec.

    Christmas pudding n. Rich boiled pudding of flour, suet, dried fruit, etc.

    Christmas rose n. White-flowered winter-blooming hellebore.

    Christmas tree n. Evergreen tree or imitation of this set up and decorated at christmas.

    Chromatic adj. 1 of colour; in colours. 2 mus. A of or having notes not belonging to a particular diatonic scale. B (of a scale) ascending or descending by semitones. chromatically adv. [greek khroma -mat-colour]

    Chromatin n. Chromosome material in a cell nucleus which stains with basic dyes. [greek: related to *chrome]

    Chromatography n. Separation of the components of a mixture by slow passage through or over material which adsorbs them differently. [greek: related to *chrome]

    Chrome n. 1 chromium, esp. As plating. 2 (in full chrome yellow) yellow pigment got from a certain compound of chromium. [greek khroma colour]

    Chromite n. Mineral of chromium and iron oxides.

    Chromium n. Metallic element used as a shiny decorative or protective coating.

    Chromium plate n. Protective coating of chromium.

    Chromosome n. Threadlike structure, usu. Found in the cell nucleus of animals and plants, carrying genes. [greek: related to *chrome, soma body]

    Chronic adj. 1 (esp. Of an illness) long-lasting. 2 having a chronic complaint. 3 colloq. Very bad; intense, severe. 4 colloq. Habitual, inveterate (a chronic liar). chronically adv. [greek khronos time]

    Usage the use of chronic in sense 3 is very informal, and its use in sense 4 is considered incorrect by some people.

    Chronicle —n. Register of events in order of occurrence. —v. (-ling) record

    Chronicle —n. Register of events in order of occurrence. —v. (-ling) record (events) thus. [greek khronika: related to *chronic]

    Chronological adj. 1 according to order of occurrence. 2 of chronology. chronologically adv.

    Chronology n. (pl. -ies) 1 science of determining dates. 2 a arrangement of events etc. In order of occurrence. B table or document displaying this. [greek khronos time, *-logy]

    Chronometer n. Time-measuring instrument, esp. One used in navigation. [from chronology, -meter]

    Chrysalis n. (pl. -lises) 1 pupa of a butterfly or moth. 2 case enclosing it. [greek khrusos gold]

    Chrysanthemum n. Garden plant of the daisy family blooming in autumn. [greek, = gold flower]

    Chrysoberyl n. Yellowish-green gem. [greek khrusos gold, *beryl]

    Chrysolite n. Precious variety of olivine. [greek khrusos gold, lithos stone]

    Chrysoprase n. Apple-green variety of chalcedony. [greek khrusos gold, prason leek]

    Chub n. (pl. Same) thick-bodied river fish. [origin unknown]

    Chubb n. (in full chubb lock) propr. Lock with a device for fixing the bolt immovably should someone try to pick it. [chubb, name of a locksmith]

    Chubby adj. (-ier, -iest) plump and rounded. [from *chub]

    Chuck1 —v. 1 colloq. Fling or throw carelessly or casually. 2 (often foll. By in, up) colloq. Give up; reject. 3 touch playfully, esp. Under the chin. —n. 1 playful touch under the chin. 2 toss. the chuck slang dismissal; rejection. Chuck out colloq. 1 expel (a person) from a gathering etc. 2 get rid of, discard. [perhaps from french chuquer knock]

    Chuck2 —n. 1 cut of beef from neck to ribs. 2 device for holding a workpiece or bit. —v. Fix to a chuck. [var. Of *chock]

    Chuckle —v. (-ling) laugh quietly or inwardly. —n. Quiet or suppressed laugh. [chuck cluck]

    Chuff v. (of an engine etc.) Work with a regular sharp puffing sound. [imitative]

    Chuffed adj. Slang delighted. [dial. Chuff]

    Chug —v. (-gg-) 1 emit a regular muffled explosive sound, as of an engine running slowly. 2 move with this sound. —n. Chugging sound. [imitative]

    Chukka boot n. Ankle-high leather boot.

    Chukker n. (also chukka) period of play in polo. [sanskrit cakra wheel]

    Chum n. Colloq. Close friend. chum up (-mm-) (often foll. By with) become a close friend (of). chummy adj. (-ier, -iest). Chummily adv. Chumminess n. [abbreviation of chamber-fellow]

    Chump n. 1 colloq. Foolish person. 2 thick end of a loin of lamb or mutton (chump chop). 3 short thick block of wood. off one’s chump slang crazy. [blend of *chunk, *lump1]

    Chunk n. 1 thick piece cut or broken off. 2 substantial amount. [var. Of *chuck2]

    Chunky adj. (-ier, -iest) 1 consisting of or resembling chunks; thick, substantial. 2 small and sturdy. chunkiness n.

    Chunter v. Colloq. Mutter, grumble. [probably imitative]

    Chupatty var. Of *chapatti.

    Church n. 1 building for public christian worship. 2 public worship (met after church). 3 (church) a body of all christians. B clergy or clerical profession. C organized christian society (the early church). [greek kuriakon lord’s (house)]

    organized christian society (the early church). [greek kuriakon lord’s (house)]

    Churchgoer n. Person attending church regularly.

    Churchman n. Member of the clergy or of a church.

    Church of england n. English protestant church.

    Churchwarden n. Either of two elected lay representatives of an anglican parish.

    Churchyard n. Enclosed ground around a church used for burials.

    Churl n. 1 ill-bred person. 2 archaic peasant. [old english, = man]

    Churlish adj. Surly; mean. churlishly adv. Churlishness n. [from *churl]

    Churn —n. 1 large milk-can. 2 butter-making machine. —v. 1 agitate (milk or cream) in a churn. 2 produce (butter) in a churn. 3 (usu. Foll. By up) upset, agitate. churn out produce in large quantities. [old english]

    Chute1 n. Sloping channel or slide for sending things to a lower level. [latin cado fall]

    Chute2 n. Colloq. Parachute. [abbreviation]

    Chutney n. (pl. -s) pungent condiment of fruits, vinegar, spices, etc. [hindi]

    Chutzpah n. Slang shameless audacity. [yiddish]

    Chyle n. Milky fluid of food materials formed in the intestine after digestion. [greek khulos juice]

    Chyme n. Acid pulp formed from partly-digested food. [greek khumos juice]

    Cia abbr. (in the us) central intelligence agency.

    Ciao int. Colloq. 1 goodbye. 2 hello. [italian]

    Cicada n. Large transparent-winged insect making a rhythmic chirping sound. [latin]

    Cicatrice n. Scar left by a wound. [latin]

    Cicely n. (pl. -ies) flowering plant related to parsley and chervil. [greek seselis]

    Cicerone n. (pl. -roni pronunc. Same) person who guides sightseers. [latin cicero, name of a roman statesman]

    Cid abbr. Criminal investigation department.

    -cide suffix 1 person or substance that kills (regicide; insecticide). 2 killing of (infanticide). [latin caedo kill]

    -cide suffix 1 person or substance that kills (regicide; insecticide). 2 killing of (infanticide). [latin caedo kill]

    Cider n. Drink of fermented apple juice. [hebrew, = strong drink]

    Cigar n. Tight roll of tobacco-leaves for smoking. [french or spanish]

    Cigarette n. Finely-cut tobacco rolled in paper for smoking. [french diminutive]

    Cilium n. (pl. Cilia) 1 minute hairlike structure on the surface of many animal cells. 2 eyelash. ciliary adj. Ciliate adj. [latin, = eyelash]

    Cinch n. Colloq. 1 sure thing; certainty. 2 easy task. [spanish cincha saddle-girth]

    Cinchona n. 1 a s. American evergreen tree or shrub. B its bark, containing

    Cinchona n. 1 a s. American evergreen tree or shrub. B its bark, containing quinine. 2 drug from this. [countess of chinchón]

    Cincture n. Literary girdle, belt, or border. [latin cingo gird]

    Cinder n. 1 residue of coal or wood etc. After burning. 2 (in pl.) Ashes. [old english sinder = slag]

    Cinderella n. Person or thing of unrecognized or disregarded merit or beauty. [name of a girl in a fairy tale]

    Cine-comb. Form cinematographic (cine-camera). [abbreviation]

    Cinema n. 1 theatre where films are shown. 2 a films collectively. B art or industry of producing films. cinematic adj. [french: related to *kinematics]

    Cinematography n. Art of making films. cinematographer n. Cinematographic adj.

    Cineraria n. Composite plant with bright flowers and ash-coloured down on its leaves. [latin cinis -ner-ashes]

    Cinnabar n. 1 bright red mercuric sulphide. 2 vermilion. 3 moth with reddish-marked wings. [latin from greek]

    Cinnamon n. 1 aromatic spice from the bark of a se asian tree. 2 this tree. 3 yellowish-brown. [greek kinnamon]

    Cinque n. The five on dice. [latin quinque five]

    Cinquefoil n. 1 plant with compound leaves of five leaflets. 2 archit. Five-cusped ornament in a circle or arch. [latin: related to *cinque, folium leaf]

    Cinque ports n.pl. Group of (orig. Five) ports in se england with ancient privileges. [latin quinque portus five ports]

    Cipher (also cypher) —n. 1 a secret or disguised writing. B thing so written. C key to it. 2 arithmetical symbol (0) used to occupy a vacant place in decimal etc. Numeration. 3 person or thing of no importance. —v. Write in cipher. [arabic sifr]

    Circa prep. (preceding a date) about. [latin]

    Circadian adj. Physiol. Occurring about once per day. [from *circa, latin dies day]

    Circle —n. 1 round plane figure whose circumference is everywhere equidistant from its centre. 2 circular or roundish enclosure or structure. 3 curved upper tier of seats in a theatre etc. 4 circular route. 5 persons grouped round a centre of interest. 6 set or restricted group (literary circles). —v. (-ling) 1 (often foll. By

    round, about) move in a circle. 2 a revolve round. B form a circle round. come full circle return to the starting-point. [latin diminutive: related to *circus]

    Circlet n. 1 small circle. 2 circular band, esp. As an ornament.

    Circuit n. 1 line or course enclosing an area; the distance round. 2 a path of an electric current. B apparatus through which a current passes. 3 a judge’s itinerary through a district to hold courts. B such a district. C lawyers following a circuit. 4 chain of theatres, cinemas, etc. Under a single management. 5 motor-racing track. 6 itinerary or specific sphere of operation (election circuit; cabaret circuit). 7 sequence of sporting events or athletic exercises. [latin: related to *circum-, eo it-go]

    Circuit-breaker n. Automatic device for interrupting an electric circuit.

    Circuitous adj. 1 indirect. 2 going a long way round.

    Circuitry n. (pl. -ies) 1 system of electric circuits. 2 equipment forming this.

    Circular —adj. 1 a having the form of a circle. B moving (roughly) in a circle, finishing at the starting-point (circular walk). 2 (of reasoning) using the point it is trying to prove as evidence for its conclusion, hence invalid.

    Circularize v. (also -ise) (-zing or -sing) distribute circulars to.

    Circular saw n. Power saw with a rapidly rotating toothed disc.

    Circulate v. (-ting) 1 be in circulation; spread. 2 a put into circulation. B send circulars to. 3 move about among guests etc. [latin: related to *circle]

    Circulation n. 1 movement to and fro, or from and back to a starting-point, esp. That of the blood from and to the heart. 2 a transmission or distribution. B number of copies sold. in (or out of) circulation active (or not active) socially.

    Circulatory adj. Of circulation, esp. Of the blood.

    Circum-comb. Form round, about. [latin]

    Circumcise v. (-sing) cut off the foreskin or clitoris of. circumcision n. [latin caedo cut]

    Circumference n. 1 enclosing boundary, esp. Of a circle. 2 distance round. circumferential adj. [latin fero carry]

    Circumflex n. (in full circumflex accent) mark (ˆ) placed over a vowel to show contraction, length, etc. [latin: related to *flex1]

    Circumlocution n. 1 a roundabout expression. B evasive talk. 2 verbosity. circumlocutory adj.

    Circumnavigate v. (-ting) sail round (esp. The world). circumnavigation n.

    Circumnavigate v. (-ting) sail round (esp. The world). circumnavigation n.

    Circumscribe v. (-bing) 1 (of a line etc.) Enclose or outline. 2 lay down the limits of; confine, restrict. 3 geom. Draw (a figure) round another, touching it at points but not cutting it. circumscription n. [latin scribo write]

    Circumspect adj. Cautious; taking everything into account. circumspection n. Circumspectly adv. [latin specio spect-look]

    Circumstance n. 1 fact, occurrence, or condition, esp. (in pl.) Connected with or influencing an event; (bad) luck (victim of circumstance(s)). 2 (in pl.) One’s financial or material condition. 3 ceremony, fuss. in (or under) the circumstances the state of affairs being what it is. In (or under) no circumstances not at all; never. circumstanced adj. [latin sto stand]

    Circumstantial adj. 1 giving full details (circumstantial account). 2 (of evidence etc.) Indicating a conclusion by inference from known facts hard to explain otherwise. circumstantiality n.

    Circumvent v. 1 evade, find a way round. 2 baffle, outwit. circumvention n. [latin venio vent-come]

    Circus n. (pl. -es) 1 travelling show of performing acrobats, clowns, animals, etc. 2 colloq. A scene of lively action. B group of people in a common activity, esp. Sport. 3 open space in a town, where several streets converge. 4 rom. Antiq. Arena for sports and games. [latin, = ring]

    Cirrhosis n. Chronic liver disease, as a result of alcoholism etc. [greek kirrhos tawny]

    Cirrus n. (pl. Cirri) 1 white wispy cloud at high altitude. 2 tendril or appendage of a plant or animal. [latin, = curl]

    Cisalpine adj. On the south side of the alps. [latin cis-on this side of]

    Cissy var. Of *sissy.

    Cistercian —n. Monk or nun of the order founded as a stricter branch of the benedictines. —adj. Of the cistercians. [french cîteaux in france]

    Cistern n. 1 tank for storing water. 2 underground reservoir. [latin cista box, from greek]

    Cistus n. Shrub with large white or red flowers. [latin from greek]

    Citadel n. Fortress, usu. On high ground, protecting or dominating a city. [french citadelle]

    Citation n. 1 citing; passage cited. 2 mil. Mention in dispatches. 3 description of the reasons for an award.

    Cite v. (-ting) 1 mention as an example etc. 2 quote (a book etc.) In support. 3 mil. Mention in dispatches. 4 summon to appear in court. [latin cieo set in motion]

    Citizen n. 1 member of a state, either native or naturalized. 2 inhabitant of a city. 3 us civilian. citizenry n. Citizenship n. [anglo-french: related to *city]

    Citizen’s band n. System of local intercommunication by individuals on special radio frequencies.

    Citrate n. A salt of citric acid.

    Citric adj. Derived from citrus fruit.

    Citric acid n. Sharp-tasting acid in citrus fruits.

    Citron n. 1 tree with large lemon-like fruits. 2 this fruit. [french from latin *citrus]

    Citronella n. 1 a fragrant oil. 2 grass from s. Asia yielding it.

    Citrus n. (pl. -es) 1 tree of a group including the lemon, orange, and grapefruit. 2 (in full citrus fruit) fruit of such a tree. [latin]

    City n. (pl. -ies) 1 large town, strictly one created by charter and containing a cathedral. 2 (the city) a part of london governed by the lord mayor and

    cathedral. 2 (the city) a part of london governed by the lord mayor and corporation. B business part of this. C commercial circles. [latin civitas: related to *civic]

    City-state n. Esp. Hist. City that with its surrounding territory forms an independent state.

    Civet n. 1 (in full civet-cat) catlike animal of central africa. 2 strong musky perfume obtained from it. [french ultimately from arabic]

    Civic adj. 1 of a city. 2 of citizens or citizenship. civically adv. [latin civis citizen]

    Civic centre n. 1 area where municipal offices etc. Are situated. 2 the offices themselves.

    Civics n.pl. (usu. Treated as sing.) The study of the rights and duties of citizenship.

    Civil adj. 1 of or belonging to citizens. 2 of ordinary citizens; non-military. 3 polite, obliging, not rude. 4 law concerning private rights and not criminal offences. 5 (of the length of a day, year, etc.) Fixed by custom or law, not natural or astronomical. civilly adv. [latin civilis: related to *civic]

    Civil defence n. Organizing of civilians for protection during wartime attacks.

    Civil disobedience n. Refusal to comply with certain laws as a peaceful protest.

    Civil engineer n. One who designs or maintains roads, bridges, dams, etc.

    Civilian —n. Person not in the armed services or police force. —adj. Of or for civilians.

    Civility n. (pl. -ies) 1 politeness. 2 act of politeness. [latin: related to *civil]

    Civilization n. (also -isation) 1 advanced stage or system of social development. 2 peoples of the world that are regarded as having this. 3 a people or nation (esp. Of the past) regarded as an element of social evolution (inca civilization).

    Civilize v. (also -ise) (-zing or -sing) 1 bring out of a barbarous or primitive stage of society. 2 enlighten; refine and educate. [french: related to *civil]

    Civil liberty n. (often in pl.) Freedom of action subject to the law.

    Civil list n. Annual allowance voted by parliament for the royal family’s household expenses.

    Civil marriage n. One solemnized without religious ceremony.

    Civil rights n.pl. Rights of citizens to freedom and equality.

    Civil rights n.pl. Rights of citizens to freedom and equality.

    Civil servant n. Member of the civil service.

    Civil service n. Branches of state administration, excluding military and judicial branches and elected politicians.

    Civil war n. War between citizens of the same country.

    Civvies n.pl. Slang civilian clothes. [abbreviation]

    Civvy street n. Slang civilian life. [abbreviation]

    Cl symb. Chlorine.

    Cl abbr. Centilitre(s).

    Clack —v. 1 make a sharp sound as of boards struck together. 2 chatter. —n. Clacking noise or talk. [imitative]

    Clad adj. 1 clothed. 2 provided with cladding. [past part. Of *clothe]

    Cladding n. Covering or coating on a structure or material etc.

    Cladistics n.pl. (usu. Treated as sing.) Biol. Method of classifying animals and plants on the basis of shared characteristics. [greek klados branch]

    Claim —v. 1 state, declare, assert. 2 demand as one’s due or property. 3 represent oneself as having or achieving (claim victory). 4 (foll. By to + infin.) Profess. 5 have as an achievement or consequence (fire claimed two victims). 6 (of a thing) deserve (attention etc.). —n. 1 demand or request for a thing considered one’s due (lay claim to; put in a claim). 2 (foll. By to, on) right or title to a thing. 3 assertion. 4 thing claimed. [latin clamo call out]

    Claimant n. Person making a claim, esp. In a lawsuit, or claiming state benefit.

    Clairvoyance n. Supposed faculty of perceiving the future or things beyond normal sensory perception. clairvoyant n. & adj. [french: related to *clear, voir see]

    Clam —n. Edible bivalve mollusc. —v. (-mm-) (foll. By up) colloq. Refuse to talk. [related to *clamp1]

    Clamber —v. Climb laboriously using hands and feet. —n. Difficult climb. [from *climb]

    Clammy adj. (-ier, -iest) unpleasantly damp and sticky. clammily adv. Clamminess n. [clam to daub]

    Clamor (brit. Clamour) —n. 1 loud or vehement shouting or noise. 2 protest,

    Clamor (brit. Clamour) —n. 1 loud or vehement shouting or noise. 2 protest, demand. —v. 1 make a clamour. 2 utter with a clamour. clamorous adj. [latin: related to *claim]

    Clamour (us clamor) —n. 1 loud or vehement shouting or noise. 2 protest, demand. —v. 1 make a clamour. 2 utter with a clamour. clamorous adj. [latin: related to *claim]

    Clamp1 —n. 1 device, esp. A brace or band of iron etc., for strengthening or holding things together. 2 device for immobilizing an illegally parked vehicle. —v. 1 strengthen or fasten with a clamp; fix firmly. 2 immobilize (a vehicle) with a clamp. clamp down (usu. Foll. By on) become stricter (about); suppress. [low german or dutch]

    Clamp2 n. Potatoes etc. Stored under straw or earth. [dutch: related to *clump]

    Clamp-down n. Sudden policy of suppression.

    Clan n. 1 group of people with a common ancestor, esp. In the scottish highlands. 2 large family as a social group. 3 group with a strong common interest. [gaelic]

    Clandestine adj. Surreptitious, secret. [latin]

    Clang —n. Loud resonant metallic sound. —v. (cause to) make a clang. [imitative: cf. Latin clango resound]

    Clanger n. Slang mistake, blunder.

    Clangor n. (brit. Clangour) prolonged clanging. clangorous adj.

    Clangour n. (us clangor) prolonged clanging. clangorous adj.

    Clank —n. Sound as of metal on metal. —v. (cause to) make a clank. [imitative]

    Clannish adj. Often derog. (of a family or group) associating closely with each other; inward-looking.

    Clansman n. (fem. Clanswoman) member or fellow-member of a clan.

    Clap1 —v. (-pp-) 1 a strike the palms of one’s hands together, esp. Repeatedly as applause. B strike (the hands) together in this way. 2 applaud thus. 3 put or place quickly or with determination (clapped him in prison; clap a tax on whisky). 4 (foll. By on) give a friendly slap (clapped him on the back). —n. 1 act of clapping, esp. As applause. 2 explosive sound, esp. Of thunder. 3 slap, pat. clap eyes on colloq. See. [old english]

    Clap2 n. Coarse slang venereal disease, esp. Gonorrhoea. [french]

    Clapped out adj. Slang worn out; exhausted.

    Clapper n. Tongue or striker of a bell. like the clappers slang very fast or hard.

    Clapperboard n. Device in film-making of hinged boards struck together to synchronize the starting of picture and sound machinery.

    Claptrap n. Insincere or pretentious talk, nonsense.

    Claque n. Group of people hired to applaud. [french]

    Claret n. 1 red wine, esp. From bordeaux. 2 purplish-red. [french: related to *clarify]

    Clarify v. (-ies, -ied) 1 make or become clearer. 2 a free (liquid etc.) From impurities. B make transparent. clarification n. [latin: related to *clear]

    Clarinet n. Woodwind instrument with a single reed. clarinettist n. (us clarinetist). [french diminutive of clarine, a kind of bell]

    Clarion n. 1 clear rousing sound. 2 hist. Shrill war-trumpet. [latin: related to *clear]

    Clarity n. Clearness.

    Clash —n. 1 a loud jarring sound as of metal objects struck together. B collision. 2 a conflict. B discord of colours etc. —v. 1 (cause to) make a clashing sound. 2 collide; coincide awkwardly. 3 (often foll. By with) a come into conflict or be at variance. B (of colours) be discordant. [imitative]

    Clasp —n. 1 device with interlocking parts for fastening. 2 a embrace. B grasp, handshake. 3 bar on a medal-ribbon. —v. 1 fasten with or as with a clasp. 2 a grasp, hold closely. B embrace. [old english]

    Clasp-knife n. Folding knife, usu. With a catch to hold the blade open.

    Class —n. 1 any set of persons or things grouped together, or graded or differentiated from others esp. By quality (first class; economy class). 2 division or order of society (upper class). 3 colloq. Distinction, high quality. 4 a group of students taught together. B occasion when they meet. C their course of instruction. 5 division of candidates by merit in an examination. 6 biol. Next grouping of organisms below a division or phylum. —v. Assign to a class or category. in a class of (or on) its (or one’s) own unequalled. classless adj. [latin classis assembly]

    Class-conscious adj. Aware of social divisions or one’s place in them. class-consciousness n.

    Classic —adj. 1 first-class; of lasting value and importance. 2 very typical (a classic case). 3 a of ancient greek and latin literature, art, etc. B (of style) simple, harmonious. 4 famous because long-established. —n. 1 classic writer, artist, work, or example. 2 (in pl.) Ancient greek and latin. [latin classicus: related to *class]

    Classical adj. 1 a of ancient greek or roman literature or art. B (of a language) having the form used by ancient standard authors. 2 (of music) serious or conventional, or of the period from c.1750–1800. 3 restrained in style. classicality n. Classically adv.

    Classicism n. 1 following of a classic style. 2 classical scholarship. 3 ancient greek or latin idiom. classicist n.

    Classify v. (-ies, -ied) 1 a arrange in classes or categories. B assign to a class or category. 2 designate as officially secret or not for general disclosure. classifiable adj. Classification n. Classificatory adj. [french: related to *class]

    Classmate n. Person in the same class at school.

    Classroom n. Room where a class of students is taught.

    Classy adj. (-ier, -iest) colloq. Superior, stylish. classily adv. Classiness n.

    Clatter —n. Sound as of hard objects struck together. —v. (cause to) make a clatter. [old english]

    Clause n. 1 gram. Part of a sentence, including a subject and predicate. 2 single statement in a treaty, law, contract, etc. clausal adj. [latin clausula: related to *close2]

    Clause 28 n. Clause in the local government bill (and later act) banning local

    Clause 28 n. Clause in the local government bill (and later act) banning local authorities from promoting homosexuality.

    Claustrophobia n. Abnormal fear of confined places. claustrophobic adj. [latin claustrum *cloister, *-phobia]

    Clavichord n. Small keyboard instrument with a very soft tone. [medieval latin: related to *clavicle]

    Clavicle n. Collar-bone. [latin clavis key]

    Claw —n. 1 a pointed nail on an animal’s foot. B foot armed with claws. 2 pincers of a shellfish. 3 device for grappling, holding, etc. —v. Scratch, maul, or pull with claws or fingernails. [old english]

    Claw back v. Regain laboriously or gradually.

    Claw-hammer n. Hammer with one side of the head forked for extracting nails.

    Claw-hammer n. Hammer with one side of the head forked for extracting nails.

    Clay n. 1 stiff sticky earth, used for making bricks, pottery, etc. 2 poet. Substance of the human body. clayey adj. [old english]

    Claymore n. Hist. Scottish two-edged broadsword. [gaelic, = great sword]

    Clay pigeon n. Breakable disc thrown up from a trap as a target for shooting.

    Clean —adj. 1 free from dirt or impurities, unsoiled. 2 clear; unused; pristine (clean air; clean page). 3 not obscene or indecent. 4 attentive to personal hygiene and cleanliness. 5 complete, clear-cut. 6 showing no record of crime, disease, etc. 7 fair (a clean fight). 8 streamlined; well-formed. 9 adroit, skilful. 10 (of a nuclear weapon) producing relatively little fallout. —adv. 1 completely, outright, simply. 2 in a clean manner. —v. Make or become clean. —n. Act or process of cleaning. clean out 1 clean thoroughly. 2 slang empty or deprive (esp. Of money). Clean up 1 a clear away (a mess). B (also absol.) Put (things) tidy. C make (oneself) clean. 2 restore order or morality to. 3 slang acquire as or make a profit. Come clean colloq. Confess fully. Make a clean breast of see *breast. [old english]

    Clean bill of health n. Declaration that there is no disease or defect.

    Clean-cut adj. 1 sharply outlined or defined. 2 (of a person) clean and tidy.

    Cleaner n. 1 person employed to clean rooms etc. 2 establishment for cleaning clothes etc. 3 device or substance for cleaning. take a person to the cleaners slang 1 defraud or rob a person. 2 criticize severely.

    Cleanly1 adv. In a clean way.

    Cleanly2 adj. (-ier, -iest) habitually clean; with clean habits. cleanliness n.

    Cleanse v. (-sing) make clean or pure. cleanser n.

    Clean-shaven adj. Without beard or moustache.

    Clean sheet n. (also clean slate) freedom from commitments or imputations; removal of these from one’s record.

    Clean-up n. Act of cleaning up.

    Clear —adj. 1 free from dirt or contamination. 2 (of weather, the sky, etc.) Not dull. 3 transparent. 4 a easily perceived; distinct; evident (a clear voice; it is clear that). B easily understood. 5 discerning readily and accurately (clear mind). 6 confident, convinced. 7 (of a conscience) free from guilt. 8 (of a road etc.) Unobstructed. 9 a net, without deduction. B complete (three clear days). 10 (often foll. By of) free, unhampered; unencumbered. —adv. 1 clearly. 2 completely (got clear away). 3 apart, out of contact (keep clear). —v. 1 make or become clear. 2 (often foll. By of) make or become free from obstruction etc. 3 (often foll. By of) show (a person) to be innocent. 4 approve (a person etc.) For a special duty, access, etc. 5 pass over or by, safely or without touching. 6 make (an amount of money) as a net gain or to balance expenses. 7 pass (a cheque) through a clearing-house. 8 pass through (customs etc.). 9 disappear (mist cleared). clear the air remove suspicion, tension, etc. Clear away 1 remove (esp. Dishes etc.). 2 disappear. Clear the decks prepare for action. Clear off colloq. Go away. Clear out 1 empty, tidy by emptying. 2 remove. 3 colloq. Go away. Clear up 1 tidy up. 2 solve. 3 (of weather) become fine. 4 disappear (cold has cleared up). Clear a thing with get approval or authorization for it from (a person). In the clear free from suspicion or difficulty. clearly adj. Clearness n. [latin clarus]

    Clearance n. 1 removal of obstructions etc. 2 space allowed for the passing of two objects or parts in machinery etc. 3 special authorization. 4 a clearing by customs. B certificate showing this. 5 clearing of cheques. 6 clearing out.

    Clear-cut adj. Sharply defined.

    Clear-headed adj. Thinking clearly, sensible.

    Clearing n. Open area in a forest.

    Clearing bank n. Bank which is a member of a clearing-house.

    Clearing-house n. 1 bankers’ establishment where cheques and bills are exchanged, only the balances being paid in cash. 2 agency for collecting and distributing information etc.

    Clear-out n. Tidying by emptying and sorting.

    Clear-sighted adj. Seeing, thinking, or understanding clearly.

    Clear-up n. 1 tidying up. 2 (usu. Attrib.) Solving of crimes (clear-up rates).

    Clearway n. Main road (other than a motorway) on which vehicles may not normally stop.

    Cleat n. 1 piece of metal, wood, etc., bolted on for fastening ropes to, or to strengthen woodwork etc. 2 projecting piece on a spar, gangway, etc. To prevent slipping. [old english]

    Cleavage n. 1 hollow between a woman’s breasts. 2 division, splitting. 3 line along which rocks, crystals, etc. Split.

    Cleave1 v. (-ving; past clove or cleft or cleaved; past part. Cloven or cleft or cleaved) literary 1 chop or break apart; split, esp. Along the grain or line of cleavage. 2 make one’s way through (air or water). [old english]

    Cleave2 v. (-ving) (foll. By to) literary stick fast; adhere. [old english]

    Cleaver n. Butcher’s heavy chopping tool.

    Clef n. Mus. Symbol indicating the pitch of notes on a staff. [latin clavis key]

    Cleft1 adj. Split, partly divided. [past part. Of *cleave1]

    Cleft2 n. Split, fissure. [old english: related to *cleave1]

    Cleft palate n. Congenital split in the roof of the mouth.

    Clematis n. Climbing plant with white, pink, or purple flowers. [greek]

    Clement adj. 1 (of weather) mild. 2 merciful. clemency n. [latin clemens]

    Clementine n. Small tangerine-like citrus fruit. [french]

    Clench —v. 1 close (the teeth, fingers, etc.) Tightly. 2 grasp firmly. —n. Clenching action; clenched state. [old english]

    Clerestory n. (pl. -ies) upper row of windows in a cathedral or large church, above the level of the aisle roofs. [clear storey]

    Clergy n. (pl. -ies) (usu. Treated as pl.) Those ordained for religious duties. [french (related to *cleric) and church latin]

    Clergyman n. Member of the clergy.

    Cleric n. Member of the clergy. [greek klerikos from kleros lot, heritage]

    Clerical adj. 1 of clergy or clergymen. 2 of or done by clerks.

    Clerical collar n. Stiff upright white collar fastening at the back.

    Clerical collar n. Stiff upright white collar fastening at the back.

    Clerihew n. Short comic biographical verse in two rhyming couplets. [e. Clerihew bentley, name of its inventor]

    Clerk —n. 1 person employed to keep records, accounts, etc. 2 secretary or agent of a local council, court, etc. 3 lay officer of a church. —v. Work as clerk. [old english and french: related to *cleric]

    Clever adj. (-er, -est) 1 skilful, talented; quick to understand and learn. 2 adroit, dexterous. 3 ingenious. cleverly adv. Cleverness n. [old english]

    Cliché n. 1 hackneyed phrase or opinion. 2 metal casting of a stereotype or electrotype. clichéd adj. (also cliché‘d). [french]

    Click —n. Slight sharp sound. —v. 1 (cause to) make a click. 2 colloq. A become clear or understood. B be popular. C (foll. By with) strike up a rapport. [imitative]

    Client n. 1 person using the services of a lawyer, architect, or other professional person. 2 customer. [latin cliens]

    Clientele n. 1 clients collectively. 2 customers. [french and latin: related to *client]

    Cliff n. Steep rock-face, esp. On a coast. [old english]

    Cliff n. Steep rock-face, esp. On a coast. [old english]

    Cliff-hanger n. Story etc. With a strong element of suspense.

    Climacteric n. Period of life when fertility and sexual activity are in decline. [greek: related to *climax]

    Climate n. 1 prevailing weather conditions of an area. 2 region with particular weather conditions. 3 prevailing trend of opinion or feeling. climatic adj. Climatically adv. [greek klima]

    Climax —n. 1 event or point of greatest intensity or interest; culmination. 2 orgasm. —v. Colloq. Reach or bring to a climax. climactic adj. [greek, = ladder]

    Climb —v. 1 (often foll. By up) ascend, mount, go or come up. 2 grow up a wall etc. By clinging or twining. 3 progress, esp. In social rank. —n. 1 ascent by climbing. 2 hill etc. Climbed or to be climbed. climb down 1 descend, esp. Using hands. 2 withdraw from a stance taken up in an argument etc. climber n. [old english]

    Climb-down n. Withdrawal from a stance taken up.

    Climbing-frame n. Structure of joined bars etc. For children to climb on.

    Clime n. Literary 1 region. 2 climate. [latin: related to *climate]

    Clinch —v. 1 confirm or settle (an argument, bargain, etc.) Conclusively. 2 (of

    Clinch —v. 1 confirm or settle (an argument, bargain, etc.) Conclusively. 2 (of boxers etc.) Become too closely engaged. 3 secure (a nail or rivet) by driving the point sideways when through. —n. 1 a clinching action. B clinched state. 2 colloq. Embrace. [var. Of *clench]

    Clincher n. Colloq. Point or remark that settles an argument etc.

    Cling v. (past and past part. Clung) 1 (often foll. By to) adhere. 2 (foll. By to) be unwilling to give up; be emotionally dependent on (a habit, idea, friend, etc.). 3 (often foll. By to) maintain grasp; keep hold; resist separation. clingy adj. (-ier, -iest). [old english]

    Cling film n. Thin transparent plastic covering for food.

    Clinic n. 1 private or specialized hospital. 2 place or occasion for giving medical treatment or specialist advice. 3 gathering at a hospital bedside for medical teaching. [greek kline bed]

    Clinical adj. 1 of or for the treatment of patients. 2 dispassionate, coolly detached. 3 (of a room, building, etc.) Bare, functional. clinically adv. [greek: related to *clinic]

    Clinical death n. Death judged by professional observation of a person’s condition.

    Clink1 —n. Sharp ringing sound. —v. (cause to) make a clink. [dutch: imitative]

    Clink2 n. Slang prison. [origin unknown]

    Clinker n. 1 mass of slag or lava. 2 stony residue from burnt coal. [dutch: related to *clink1]

    Clinker-built adj. (of a boat) having external planks overlapping downwards and secured with clinched nails. [clink, northern english var. Of *clinch]

    Clip1 —n. 1 device for holding things together or for attaching something. 2 piece of jewellery fastened by a clip. 3 set of attached cartridges for a firearm. — v. (-pp-) fix with a clip. [old english]

    Clip2 —v. (-pp-) 1 cut (hair, wool, etc.) Short with shears or scissors. 2 trim or remove the hair or wool of. 3 colloq. Hit smartly. 4 a omit (a letter etc.) From a word. B omit letters or syllables of (words uttered). 5 punch a hole in (a ticket) to show it has been used. 6 cut from a newspaper etc. 7 slang swindle, rob. —n. 1 act of clipping. 2 colloq. Smart blow. 3 sequence from a motion picture. 4 yield of wool etc. 5 colloq. Speed, esp. Rapid. [old norse]

    Clipboard n. Small board with a spring clip for holding papers etc.

    Clip-joint n. Slang club etc. Charging exorbitant prices.

    Clip-on adj. Attached by a clip.

    Clipper n. 1 (usu. In pl.) Instrument for clipping hair etc. 2 hist. Fast sailing-ship.

    Clipping n. Piece clipped, esp. From a newspaper.

    Clique n. Small exclusive group of people. cliquey adj. (cliquier, cliquiest). Cliquish adj. [french]

    Clitoris n. Small erectile part of the female genitals at the upper end of the vulva. clitoral adj. [latin from greek]

    Cllr. Abbr. Councillor.

    Cloak —n. 1 outdoor usu. Long and sleeveless over-garment. 2 covering (cloak of snow). —v. 1 cover with a cloak. 2 conceal, disguise. under the cloak of using as pretext. [ultimately from medieval latin clocca bell]

    Cloak-and-dagger adj. Involving intrigue and espionage.

    Cloakroom n. 1 room where outdoor clothes or luggage may be left. 2 euphem. Lavatory.

    Clobber1 v. Slang 1 hit; beat up. 2 defeat. 3 criticize severely. [origin unknown]

    Clobber2 n. Slang clothing, belongings. [origin unknown]

    Clobber2 n. Slang clothing, belongings. [origin unknown]

    Cloche n. 1 small translucent cover for protecting outdoor plants. 2 (in full cloche hat) woman’s close-fitting bell-shaped hat. [french, = bell, medieval latin clocca]

    Clock1 —n. 1 instrument for measuring and showing time. 2 a measuring device resembling this. B colloq. Speedometer, taximeter, or stopwatch. 3 slang person’s face. 4 seed-head of the dandelion. —v. 1 colloq. A (often foll. By up) attain or register (a stated time, distance, or speed). B time (a race) with a stopwatch. 2 slang hit. clock in (or on) register one’s arrival at work. Clock off (or out) register one’s departure from work. Round the clock all day and (usu.) Night. [medieval latin clocca bell]

    Clock2 n. Ornamental pattern on the side of a stocking or sock near the ankle. [origin unknown]

    Clockwise adj. & adv. In a curve corresponding in direction to that of the hands of a clock.

    Clockwork n. 1 mechanism like that of a clock, with a spring and gears. 2 (attrib.) Driven by clockwork. like clockwork smoothly, regularly, automatically.

    Clod n. Lump of earth, clay, etc. [var. Of *clot]

    Cloddish adj. Loutish, foolish, clumsy.

    Clodhopper n. (usu. In pl.) Colloq. Large heavy shoe.

    Clog —n. Shoe with a thick wooden sole. —v. (-gg-) 1 (often foll. By up) obstruct or become obstructed; choke. 2 impede. [origin unknown]

    Cloister —n. 1 covered walk round a quadrangle, esp. In a college or ecclesiastical building. 2 monastic life or seclusion. —v. Seclude. cloistered adj. Cloistral adj. [latin claustrum: related to *close2]

    Clomp var. Of *clump v. 2.

    Clone —n. 1 a group of organisms produced asexually from one stock or ancestor. B one such organism. 2 colloq. Person or thing regarded as identical to another. —v. (-ning) propagate as a clone. clonal adj. [greek klon twig]

    Clonk —n. Abrupt heavy sound of impact. —v. 1 make this sound. 2 colloq. Hit. [imitative]

    Close1 —adj. 1 (often foll. By to) situated at a short distance or interval. 2 a having a strong or immediate relation or connection (close friend). B in intimate friendship or association. C corresponding almost exactly (close resemblance). 3 in or almost in contact (close combat). 4 dense, compact, with no or only slight intervals. 5 (of a contest etc.) In which competitors are almost equal. 6 leaving no gaps or weaknesses, rigorous (close reasoning). 7 concentrated, searching. 8 (of air etc.) Stuffy, humid. 9 closed, shut. 10 limited to certain persons etc. (close corporation). 11 hidden, secret; secretive. 12 niggardly. —adv. At only a short

    distance or interval. —n. 1 street closed at one end. 2 precinct of a cathedral. at close quarters very close together. closely adv. Closeness n. [latin clausus from claudo shut]

    Close2 —v. (-sing) 1 a shut. B block up. 2 bring or come to an end. 3 end the day’s business. 4 bring or come closer or into contact. 5 make (an electric circuit etc.) Continuous. —n. Conclusion, end. close down (of a shop etc.) Discontinue business. Close in 1 enclose. 2 come nearer. 3 (of days) get successively shorter. Close up 1 (often foll. By to) move closer. 2 shut. 3 block up. 4 (of an aperture) grow smaller. [latin: related to *close1]

    Closed book n. Subject one does not understand.

    Closed-circuit adj. (of television) transmitted by wires to a restricted set of receivers.

    Closed shop n. Business etc. Where employees must belong to a specified trade union.

    Close harmony n. Harmony in which the notes of a chord are close together.

    Close-knit adj. Tightly interlocked; closely united in friendship.

    Close season n. Season when the killing of game etc. Is illegal.

    Close shave n. (also close thing) colloq. Narrow escape.

    Close shave n. (also close thing) colloq. Narrow escape.

    Closet —n. 1 small room. 2 cupboard. 3 = water-closet. 4 (attrib.) Secret (closet homosexual). —v. (-t-) shut away, esp. In private conference or study. [french diminutive: related to close2]

    Close-up n. Photograph etc. Taken at close range.

    Closure n. 1 closing. 2 closed state. 3 procedure for ending a debate and taking a vote. [latin: related to *close2]

    Clot —n. 1 thick mass of coagulated liquid etc., esp. Of blood. 2 colloq. Foolish person. —v. (-tt-) form into clots. [old english]

    Cloth n. 1 woven or felted material. 2 piece of this, esp. For a particular purpose; tablecloth, dishcloth, etc. 3 fabric for clothes. 4 a status, esp. Of the clergy, as shown by clothes. B (prec. By the) the clergy. [old english]

    Clothe v. (-thing; past and past part. Clothed or formal clad) 1 put clothes on; provide with clothes. 2 cover as with clothes. [old english]

    Clothes n.pl. 1 garments worn to cover the body and limbs. 2 bedclothes. [old english]

    Clothes-horse n. Frame for airing washed clothes.

    Clothes-line n. Rope etc. On which clothes are hung to dry.

    Clothes-peg n. Clip etc. For securing clothes to a clothes-line.

    Clothier n. Seller of men’s clothes.

    Clothing n. Clothes collectively.

    Clotted cream n. Thick cream obtained by slow scalding.

    Cloud —n. 1 visible mass of condensed watery vapour floating high above the ground. 2 mass of smoke or dust. 3 (foll. By of) mass of insects etc. Moving together. 4 state of gloom, trouble, or suspicion. —v. 1 cover or darken with clouds or gloom or trouble. 2 (often foll. By over, up) become overcast or gloomy. 3 make unclear. on cloud nine colloq. Extremely happy. Under a cloud out of favour, under suspicion. With one’s head in the clouds day-dreaming. cloudless adj. [old english]

    Cloudburst n. Sudden violent rainstorm.

    Cloud chamber n. Device containing vapour for tracking the paths of charged particles, x-rays, and gamma rays.

    Cloud-cuckoo-land n. Fanciful or ideal place. [translation of greek nephelokokkugia in aristophanes’ birds]

    Cloudy adj. (-ier, -iest) 1 (of the sky, weather) covered with clouds, overcast. 2 not transparent; unclear. cloudily adv. Cloudiness n.

    Clout —n. 1 heavy blow. 2 colloq. Influence, power of effective action. 3 dial. Piece of cloth or clothing. —v. Hit hard. [old english]

    Clove1 n. Dried bud of a tropical plant used as a spice. [latin clavus nail (from its shape)]

    Clove2 n. Small segment of a compound bulb, esp. Of garlic. [old english: related to *cleave1]

    Clove3 past of *cleave1.

    Clove hitch n. Knot by which a rope is secured to a spar etc. [clove, old past part. Of *cleave1]

    Cloven adj. Split, partly divided. [past part. Of *cleave1]

    Cloven hoof n. (also cloven foot) divided hoof, esp. Of oxen, sheep, or goats, or of the devil.

    Clover n. Trefoil fodder plant. in clover in ease and luxury. [old english]

    Clown —n. 1 comic entertainer, esp. In a circus. 2 foolish or playful person. —v. (often foll. By about, around) behave like a clown. [origin uncertain]

    Cloy v. Satiate or sicken with sweetness, richness, etc. [obsolete acloy from anglo-french: related to *enclave]

    Club —n. 1 heavy stick with a thick end, esp. As a weapon. 2 stick with a head used in golf. 3 association of persons meeting periodically for a shared activity. 4 organization or premises offering members social amenities, meals, temporary residence, etc. 5 a playing-card of the suit denoted by a black trefoil. B (in pl.) This suit. 6 commercial organization offering subscribers special deals (book club). —v. (-bb-) 1 beat with or as with a club. 2 (foll. By together, with) combine, esp. To raise a sum of money for a purpose. [old norse]

    Clubbable adj. Sociable; fit for club membership.

    Club class n. Class of fare on an aircraft etc. Designed for business travellers.

    Club-foot n. Congenitally deformed foot.

    Club-foot n. Congenitally deformed foot.

    Clubhouse n. Premises of a (usu. Sporting) club.

    Clubland n. Area where there are many nightclubs.

    Club-root n. Disease of cabbages etc. With swelling at the base of the stem.

    Club sandwich n. Sandwich with two layers of filling between three slices of toast or bread.

    Cluck —n. Guttural cry like that of a hen. —v. Emit cluck(s). [imitative]

    Clue —n. 1 fact or idea that serves as a guide, or suggests a line of inquiry, in a problem or investigation. 2 piece of evidence etc. In the detection of a crime. 3 verbal formula as a hint to what is to be inserted in a crossword. —v. (clues, clued, cluing or clueing) provide a clue to. clue in (or up) slang inform. Not have a clue colloq. Be ignorant or incompetent. [var. Of old english clew]

    Clueless adj. Colloq. Ignorant, stupid.

    Clump —n. (foll. By of) cluster or mass, esp. Of trees. —v. 1 a form a clump. B heap or plant together. 2 (also clomp) walk with a heavy tread. [low german or dutch]

    Clumsy adj. (-ier, -iest) 1 awkward in movement or shape; ungainly. 2 difficult to handle or use. 3 tactless. clumsily adv. Clumsiness n. [obsolete clumse be numb with cold]

    Clung past and past part. Of *cling.

    Clunk —n. Dull sound as of thick pieces of metal meeting. —v. Make such a sound. [imitative]

    Cluster —n. Close group or bunch of similar people or things growing or occurring together. —v. 1 bring into, come into, or be in cluster(s). 2 (foll. By round, around) gather. [old english]

    Clutch1 —v. 1 seize eagerly; grasp tightly. 2 (foll. By at) try desperately to seize. —n. 1 tight grasp. 2 (in pl.) Grasping hands; cruel or relentless grasp or control. 3 a (in a vehicle) device for connecting and disconnecting the engine and the transmission. B pedal operating this. [old english]

    Clutch2 n. 1 set of eggs for hatching. 2 brood of chickens. [old norse, = hatch]

    Clutch bag n. Slim flat handbag without handles.

    Clutter —n. 1 crowded and untidy collection of things. 2 untidy state. —v. (often foll. By up, with) crowd untidily, fill with clutter. [related to *clot]

    Cm symb. Curium.

    Cm abbr. Centimetre(s).

    Cmg abbr. Companion (of the order) of st michael and st george.

    Cmg abbr. Companion (of the order) of st michael and st george.

    Cnd abbr. Campaign for nuclear disarmament.

    Co abbr. Commanding officer.

    Co symb. Cobalt.

    Co. Abbr. 1 company. 2 county.

    Co-prefix added to: 1 nouns, with the sense ‘joint, mutual, common’ (co-author; coequality). 2 adjectives and adverbs, with the sense ‘jointly, mutually’ (coequal). 3 verbs, with the sense ‘together with another or others’ (cooperate). [var. Of *com-]

    C/o abbr. Care of.

    Coach —n. 1 single-decker bus, usu. Comfortably equipped for long journeys. 2 railway carriage. 3 closed horse-drawn carriage. 4 a instructor or trainer in a sport. B private tutor. —v. Train or teach as a coach. [french from magyar]

    Coachload n. Group of tourists etc. Taken by coach.

    Coachman n. Driver of a horse-drawn carriage.

    Coachman n. Driver of a horse-drawn carriage.

    Coachwork n. Bodywork of a road or rail vehicle.

    Coagulate v. (-ting) 1 change from a fluid to a semisolid. 2 clot, curdle. coagulant n. Coagulation n. [latin coagulum rennet]

    Coal n. 1 hard black rock, mainly carbonized plant matter, found underground and used as a fuel. 2 piece of this, esp. One that is burning. coals to newcastle something brought to a place where it is already plentiful. Haul (or call) over the coals reprimand. [old english]

    Coalesce v. (-cing) come together and form a whole. coalescence n. Coalescent adj. [latin alo nourish]

    Coalface n. Exposed working surface of coal in a mine.

    Coalfield n. Extensive area yielding coal.

    Coal gas n. Mixed gases formerly extracted from coal and used for lighting and heating.

    Coalition n. 1 temporary alliance, esp. Of political parties. 2 fusion into one whole. [medieval latin: related to *coalesce]

    Coalman n. Man who carries or delivers coal.

    Coalman n. Man who carries or delivers coal.

    Coalmine n. Mine in which coal is dug. coalminer n.

    Coal-scuttle n. Container for coal for a domestic fire.

    Coal tar n. Thick black oily liquid distilled from coal and used as a source of benzene.

    Coal-tit n. Small greyish bird with a black head.

    Coaming n. Raised border round a ship’s hatches etc. To keep out water. [origin unknown]

    Coarse adj. 1 rough or loose in texture; made of large particles. 2 lacking refinement; crude, obscene. coarsely adv. Coarseness n. [origin unknown]

    Coarse fish n. Freshwater fish other than salmon and trout.

    Coarsen v. Make or become coarse.

    Coast —n. Border of land near the sea; seashore. —v. 1 ride or move, usu.

    Coast —n. Border of land near the sea; seashore. —v. 1 ride or move, usu. Downhill, without the use of power. 2 make progress without much effort. 3 sail along the coast. the coast is clear there is no danger of being observed or caught. coastal adj. [latin costa side]

    Coaster n. 1 ship that travels along the coast. 2 small tray or mat for a bottle or glass.

    Coastguard n. 1 member of a group of people employed to keep watch on coasts to save life, prevent smuggling, etc. 2 such a group.

    Coastline n. Line of the seashore, esp. With regard to its shape.

    Coat —n. 1 outer garment with sleeves, usu. Extending below the hips; overcoat or jacket. 2 animal’s fur or hair. 3 covering of paint etc. Laid on a surface at one time. —v. 1 (usu. Foll. By with, in) cover with a coat or layer. 2 (of paint etc.) Form a covering to. [french from germanic]

    Coat-hanger see *hanger 2.

    Coating n. 1 layer of paint etc. 2 material for coats.

    Coat of arms n. Heraldic bearings or shield of a person, family, or corporation.

    Coat of mail n. Jacket covered with mail.

    Coat-tail n. Each of the flaps formed by the back of a tailcoat.

    Coax v. 1 persuade gradually or by flattery. 2 (foll. By out of) obtain (a thing from a person) thus. 3 manipulate (a thing) carefully or slowly. [obsolete cokes a fool]

    Coaxial adj. 1 having a common axis. 2 electr. (of a cable or line) transmitting by means of two concentric conductors separated by an insulator.

    Cob n. 1 roundish lump. 2 domed loaf. 3 = *corn-cob. 4 large hazelnut. 5 sturdy riding-horse with short legs. 6 male swan. [origin unknown]

    Cobalt n. 1 silvery-white metallic element. 2 a pigment made from this. B its deep-blue colour. [german, probably = kobold demon in mines]

    Cobber n. Austral. & nz colloq. Companion, friend. [origin uncertain]

    Cobble1 —n. (in full cobblestone) small rounded stone used for paving. —v. (-ling) pave with cobbles. [from *cob]

    Cobble2 v. (-ling) 1 mend or patch up (esp. Shoes). 2 (often foll. By together) join or assemble roughly. [from *cobbler]

    Cobbler n. 1 person who mends shoes professionally. 2 stewed fruit topped with

    Cobbler n. 1 person who mends shoes professionally. 2 stewed fruit topped with scones. 3 (in pl.) Slang nonsense. [origin unknown]

    Cobol n. Computer language for use in commerce. [common business oriented language]

    Cobra n. Venomous hooded snake of africa and asia. [latin colubra snake]

    Cobweb n. 1 fine network spun by a spider from liquid it secretes. 2 thread of this. cobwebby adj. [obsolete coppe spider]

    Coca n. 1 s. American shrub. 2 its dried leaves, chewed as a stimulant. [spanish from quechua]

    Cocaine n. Drug from coca, used as a local anaesthetic and as a stimulant.

    Coccyx n. (pl. Coccyges) small triangular bone at the base of the spinal column. [greek, = cuckoo (from shape of its bill)]

    Cochineal n. 1 scarlet dye used esp. For colouring food. 2 insects whose dried bodies yield this. [latin coccinus scarlet, from greek]

    Cock1 —n. 1 male bird, esp. Of the domestic fowl. 2 slang (as a form of address) friend; fellow. 3 coarse slang penis. 4 slang nonsense. 5 a firing lever in a gun, raised to be released by the trigger. B cocked position of this. 6 tap or valve controlling flow. —v. 1 raise or make upright or erect. 2 turn or move (the

    valve controlling flow. —v. 1 raise or make upright or erect. 2 turn or move (the eye or ear) attentively or knowingly.

    Cock2 n. Conical heap of hay or straw. [perhaps from scandinavian]

    Cockade n. Rosette etc. Worn in the hat as a badge. [french: related to *cock1]

    Cock-a-doodle-doo n. Cock’s crow.

    Cock-a-hoop adj. Exultant.

    Cock-a-leekie n. Scottish soup of boiling fowl and leeks.

    Cock-and-bull story n. Absurd or incredible account.

    Cockatoo n. Crested parrot. [dutch from malay]

    Cockchafer n. Large pale-brown beetle. [from *cock1]

    Cock crow n. Dawn.

    Cocker n. (in full cocker spaniel) small spaniel with a silky coat. [related to *cock1]

    Cockerel n. Young cock. [diminutive of *cock1]

    Cock-eyed adj. Colloq. 1 crooked, askew. 2 absurd, not practical. [from *cock1]

    Cock-fight n. Fight between cocks as sport.

    Cockle n. 1 a edible bivalve shellfish. B its shell. 2 (in full cockle-shell) small shallow boat. 3 pucker or wrinkle in paper, glass, etc. warm the cockles of one’s heart make one contented. [french coquille from greek: related to *conch]

    Cockney —n. (pl. -s) 1 native of london, esp. Of the east end. 2 dialect or accent used there. —adj. Of cockneys or their dialect. [cokeney ‘cock’s egg’]

    Cockpit n. 1 a compartment for the pilot (and crew) of an aircraft or spacecraft. B driver’s seat in a racing car. C space for the helmsman in some yachts. 2 arena of war or other conflict. 3 place for cock-fights.

    Cockroach n. Flat dark-brown beetle-like insect infesting kitchens, bathrooms, etc. [spanish cucaracha]

    Cockscomb n. Crest of a cock.

    Cocksure adj. Arrogantly confident. [from *cock1]

    Cocktail n. 1 drink made of various spirits, fruit juices, etc. 2 appetizer containing shellfish or fruit. 3 any hybrid mixture. [origin unknown]

    Cocktail dress n. Short evening dress worn at a drinks party.

    Cocktail stick n. Small pointed stick for serving an olive, cherry, etc.

    Cock-up n. Slang muddle or mistake.

    Cocky adj. (-ier, -iest) colloq. Conceited, arrogant. cockily adv. Cockiness n. [from *cock1]

    Coco n. (pl. -s) coconut palm. [portuguese and spanish, = grimace]

    Cocoa n. 1 powder made from crushed cacao seeds, often with other ingredients. 2 drink made from this. [altered from *cacao]

    Cocoa bean n. Cacao seed.

    Cocoa butter n. Fatty substance obtained from the cocoa bean.

    Coconut n. Large brown seed of the coco, with a hard shell and edible white

    Coconut n. Large brown seed of the coco, with a hard shell and edible white lining enclosing milky juice.

    Coconut matting n. Matting made of fibre from coconut husks.

    Coconut shy n. Fairground sideshow where balls are thrown to dislodge coconuts.

    Cocoon —n. 1 silky case spun by insect larvae for protection as pupae. 2 protective covering. —v. Wrap or coat in a cocoon. [provençal coca shell]

    Cocotte n. Small fireproof dish for cooking and serving an individual portion. [french]

    Cod abbr. Cash (us collect) on delivery.

    Cod1 n. (pl. Same) large sea fish. [origin unknown]

    Cod2 slang —n. 1 parody. 2 hoax. —v. (-dd-) 1 perform a hoax. 2 parody. [origin unknown]

    Cod3 n. Slang nonsense. [abbreviation of *codswallop]

    Coda n. 1 mus. Final additional passage of a piece or movement. 2 concluding section of a ballet. [latin cauda tail]

    section of a ballet. [latin cauda tail]

    Coddle v. (-ling) 1 treat as an invalid; protect attentively; pamper. 2 cook (an egg) in water below boiling point. coddler n. [a dialect form of caudle invalids’ gruel]

    Code —n. 1 system of words, letters, symbols, etc., used to represent others for secrecy or brevity. 2 system of prearranged signals used to ensure secrecy in transmitting messages. 3 computing piece of program text. 4 systematic set of laws etc. 5 prevailing standard of moral behaviour. —v. (-ding) put into code. [latin *codex]

    Codeine n. Alkaloid derived from morphine, used to relieve pain. [greek kodeia poppy-head]

    Codependency n. Addiction to a supportive role in a relationship. codependent adj. & n.

    Codex n. (pl. Codices) 1 ancient manuscript text in book form. 2 collection of descriptions of drugs etc. [latin, = tablet, book]

    Codfish n. (pl. Same) = *cod1.

    Codger n. (usu. In old codger) colloq. Person, esp. A strange one. [origin uncertain]

    Codicil n. Addition to a will. [latin diminutive of *codex]

    Codify v. (-ies, -ied) arrange (laws etc.) Systematically into a code. codification n. Codifier n.

    Codling1 n. (also codlin) 1 a kind of cooking apple. 2 moth whose larva feeds on apples. [anglo-french quer de lion lion-heart]

    Codling2 n. Small codfish.

    Cod-liver oil n. Oil from cod livers, rich in vitamins d and a.

    Codpiece n. Hist. Bag or flap at the front of a man’s breeches. [cod scrotum]

    Codswallop n. Slang nonsense. [origin unknown]

    Coed colloq. —n. 1 school for both sexes. 2 esp. Us female pupil of a coed school. —adj. Coeducational. [abbreviation]

    Coeducation n. Education of pupils of both sexes together. coeducational adj.

    Coefficient n. 1 math. Quantity placed before and multiplying an algebraic expression. 2 physics multiplier or factor by which a property is measured (coefficient of expansion). [related to *co-, *efficient]

    Coelacanth n. Large sea fish formerly thought to be extinct. [greek koilos hollow, akantha spine]

    Coelenterate n. Marine animal with a simple tube-shaped or cup-shaped body, e.g. Jellyfish, corals, and sea anemones. [greek koilos hollow, enteron intestine]

    Coeliac disease n. Disease of the small intestine, brought on by contact with dietary gluten. [latin coeliacus from greek koilia belly]

    Coenobite n. (us cenobite) member of a monastic community. [greek koinos bios common life]

    Coequal adj. & n. Archaic or literary equal.

    Coerce v. (-cing) persuade or restrain by force. coercible adj. Coercion n. Coercive adj. [latin coerceo restrain]

    Coeval formal —adj. Of the same age; existing at the same time; contemporary. —n. Coeval person or thing. coevally adv. [latin aevum age]

    Coexist v. (often foll. By with) 1 exist together. 2 (esp. Of nations) exist in mutual tolerance of each other’s ideologies etc. coexistence n. Coexistent adj.

    Coextensive adj. Extending over the same space or time.

    Coextensive adj. Extending over the same space or time.

    C. Of e. Abbr. Church of england.

    Coffee n. 1 a drink made from roasted and ground beanlike seeds of a tropical shrub. B cup of this. 2 a the shrub. B its seeds. 3 pale brown. [turkish from arabic]

    Coffee bar n. Bar or café serving coffee and light refreshments from a counter.

    Coffee-mill n. Small machine for grinding roasted coffee beans.

    Coffee morning n. Morning gathering, esp. For charity, at which coffee is served.

    Coffee shop n. Small informal restaurant, esp. In a hotel or department store.

    Coffee-table n. Small low table.

    Coffee-table book n. Large lavishly illustrated book.

    Coffer n. 1 large strong box for valuables. 2 (in pl.) Treasury, funds. 3 sunken panel in a ceiling etc. [latin cophinus basket]

    Coffer-dam n. Watertight enclosure pumped dry to permit work below the waterline, e.g. Building bridges etc. Or repairing a ship.

    Coffin n. Box in which a corpse is buried or cremated. [latin: related to *coffer]

    Cog n. 1 each of a series of projections on the edge of a wheel or bar transferring motion by engaging with another series. 2 unimportant member of an organization etc. [probably scandinavian]

    Cogent adj. (of an argument etc.) Convincing, compelling. cogency n. Cogently adv. [latin cogo drive]

    Cogitate v. (-ting) ponder, meditate. cogitation n. Cogitative adj. [latin cogito]

    Cognac n. High-quality brandy, properly that distilled in cognac in w. France.

    Cognate —adj. 1 related to or descended from a common ancestor. 2 (of a word) having the same linguistic family or derivation. —n. 1 relative. 2 cognate word. [latin cognatus]

    Cognate object n. Gram. Object related in origin and sense to its verb (as in live a good life).

    Cognition n. 1 knowing, perceiving, or conceiving as an act or faculty distinct from emotion and volition. 2 result of this. cognitional adj. Cognitive adj. [latin cognitio: related to *cognizance]

    cognitio: related to *cognizance]

    Cognizance n. Formal 1 knowledge or awareness; perception. 2 sphere of observation or concern. 3 heraldry distinctive device or mark. [latin cognosco get to know]

    Cognizant adj. (foll. By of) formal having knowledge or being aware of.

    Cognomen n. 1 nickname. 2 ancient roman’s third or fourth name designating a branch of a family, as in marcus tullius cicero, or as an epithet, as in p. Cornelius scipio africanus. [latin]

    Cognoscente n. (pl. -ti) connoisseur. [italian]

    Cog-wheel n. Wheel with cogs.

    Cohabit v. (-t-) (esp. Of an unmarried couple) live together as husband and wife. cohabitation n. Cohabitee n. [latin habito dwell]

    Cohere v. (-ring) 1 (of parts or a whole) stick together, remain united. 2 (of reasoning etc.) Be logical or consistent. [latin haereo haes-stick]

    Coherent adj. 1 intelligible and articulate. 2 (of an argument etc.) Consistent; easily followed. 3 cohering. 4 physics (of waves) having a constant phase relationship. coherence n. Coherently adv.

    Cohesion n. 1 a sticking together. B tendency to cohere. 2 chem. Force with which molecules cohere. cohesive adj.

    Cohort n. 1 ancient roman military unit, one-tenth of a legion. 2 band of warriors. 3 a persons banded together. B group of persons with a common statistical characteristic. [latin]

    Coif n. Hist. Close-fitting cap. [latin cofia helmet]

    Coiff v. (usu. As coiffed adj.) Dress or arrange (the hair). [french coiffer]

    Coiffeur n. (fem. Coiffeuse) hairdresser. [french]

    Coiffure n. Hairstyle. [french]

    Coil —v. 1 arrange or be arranged in spirals or concentric rings. 2 move sinuously. —n. 1 coiled arrangement. 2 coiled length of rope etc. 3 single turn of something coiled. 4 flexible loop as a contraceptive device in the womb. 5 coiled wire for the passage of an electric current and acting as an inductor. [latin: related to *collect1]

    Coin —n. 1 stamped disc of metal as official money. 2 (collect.) Metal money. —v. 1 make (coins) by stamping. 2 make (metal) into coins. 3 invent (esp. A new word or phrase). coin money make much money quickly. [latin cuneus wedge]

    Coinage n. 1 coining. 2 a coins. B system of coins in use. 3 invention, esp. Of a word.

    Coin-box n. 1 telephone operated by inserting coins. 2 receptacle for these.

    Coincide v. (-ding) 1 occur at the same time. 2 occupy the same portion of space. 3 (often foll. By with) agree or be identical. [latin: related to *incident]

    Coincidence n. 1 coinciding. 2 remarkable concurrence of events etc. Apparently by chance. coincident adj.

    Coincidental adj. In the nature of or resulting from a coincidence. coincidentally adv.

    Coir n. Coconut fibre used for ropes, matting, etc. [malayalam kayar cord]

    Coition n. = *coitus. [latin coitio from eo go]

    Coitus n. Sexual intercourse. coital adj. [latin: related to *coition]

    Coitus interruptus n. Sexual intercourse with withdrawal of the penis before ejaculation.

    Coke1 —n. Solid substance left after gases have been extracted from coal. —v.

    Coke1 —n. Solid substance left after gases have been extracted from coal. —v. (-king) convert (coal) into coke. [dial. Colk core]

    Coke2 n. Slang cocaine. [abbreviation]

    Col. Abbr. Colonel.

    Col n. Depression in a chain of mountains. [latin collum neck]

    Col. Abbr. Column.

    Col-see *com-.

    Cola n. (also kola) 1 w. African tree bearing seeds containing caffeine. 2 carbonated drink usu. Flavoured with these. [west african]

    Colander n. Perforated vessel used to strain off liquid in cookery. [latin colo strain]

    Cold —adj. 1 of or at a low temperature. 2 not heated; cooled after heat. 3 feeling cold. 4 lacking ardour, friendliness, or affection. 5 a depressing, uninteresting. B (of colour) suggestive of cold. 6 a dead. B colloq. Unconscious. 7 (of a scent in hunting) grown faint. 8 (in games) far from finding what is sought. —n. 1 a prevalence of low temperature. B cold weather or environment. 2 infection of the nose or throat with sneezing, catarrh, etc. —adv. Unrehearsed.

    in cold blood without emotion, deliberately. Out in the cold ignored, neglected. Throw (or pour) cold water on be discouraging about. coldly adv. Coldness n. [old english]

    Cold-blooded adj. 1 having a body temperature varying with that of the environment. 2 callous; deliberately cruel. cold-bloodedly adv. Cold-bloodedness n.

    Cold call —n. Marketing call on a person who has previously not shown interest in the product. —v. Visit or telephone (a person) in this way.

    Cold chisel n. Chisel for cutting metal, stone, or brick.

    Cold comfort n. Poor consolation.

    Cold cream n. Ointment for cleansing and softening the skin.

    Cold feet n.pl. Colloq. Loss of nerve.

    Cold frame n. Unheated glass-topped frame for growing small plants.

    Cold fusion n. Nuclear fusion at room temperature, esp. As a possible energy source.

    Cold-hearted adj. Lacking sympathy or kindness. cold-heartedly adv. Cold-heartedness n.

    Cold shoulder —n. (prec. By the) intentional unfriendliness. —v. (cold-shoulder) be deliberately unfriendly towards.

    Cold sore n. Inflammation and blisters in and around the mouth, caused by a virus infection.

    Cold storage n. 1 storage in a refrigerator. 2 temporary putting aside (of an idea etc.), postponement.

    Cold sweat n. Sweating induced by fear or illness.

    Cold table n. Selection of dishes of cold food.

    Cold turkey n. Slang abrupt withdrawal from addictive drugs.

    Cold war n. Hostility between nations without actual fighting.

    Cole n. (usu. In comb.) Cabbage. [latin caulis]

    Coleopteron n. Insect with front wings serving as sheaths, e.g. The beetle and

    weevil. coleopterous adj. [greek koleon sheath, pteron wing]

    Coleslaw n. Dressed salad of sliced raw cabbage etc. [from *cole, dutch sla salad]

    Coleus n. Plant with variegated leaves. [greek koleon sheath]

    Coley n. (pl. -s) any of several fish used as food, e.g. The rock-salmon. [origin uncertain]

    Colic n. Severe spasmodic abdominal pain. colicky adj. [latin: related to *colon2]

    Colitis n. Inflammation of the lining of the colon.

    Collaborate v. (-ting) (often foll. By with) 1 work together. 2 cooperate with an enemy. collaboration n. Collaborative adj. Collaborator n. [latin: related to *labour]

    Collage n. Form or work of art in which various materials are fixed to a backing. [french, = gluing]

    Collagen n. Protein found in animal connective tissue, yielding gelatin on boiling. [greek kolla glue]

    Collapse —n. 1 falling down or in of a structure; folding up; giving way. 2 sudden failure of a plan etc. 3 physical or mental breakdown; exhaustion. —v. (-sing) 1 (cause to) undergo collapse. 2 colloq. Lie or sit down and relax, esp. After prolonged effort. 3 fold up. collapsible adj. [latin labor laps-slip]

    Collar —n. 1 neckband, upright or turned over. 2 band of leather etc. Round an animal’s neck. 3 band or ring or pipe in machinery. 4 piece of meat rolled up and tied. —v. 1 capture, seize. 2 colloq. Accost. 3 slang appropriate. [latin collum neck]

    Collar-bone n. Bone joining the breastbone and shoulder-blade.

    Collate v. (-ting) 1 assemble and arrange systematically. 2 compare (texts, statements, etc.). collator n. [latin: related to *confer]

    Collateral —n. 1 security pledged as a guarantee for the repayment of a loan. 2 person having the same ancestor as another but by a different line. —adj. 1 descended from the same ancestor but by a different line. 2 side by side; parallel. 3 a additional but subordinate. B contributory. C connected but aside from the main subject, course, etc. collaterally adv. [latin: related to *lateral]

    Collation n. 1 collating. 2 thing collated. 3 light meal. [latin: related to *confer]

    Colleague n. Fellow worker, esp. In a profession or business. [latin collega]

    Collect1 —v. 1 bring or come together; assemble, accumulate. 2 systematically seek and acquire, esp. As a hobby. 3 obtain (contributions etc.) From a number

    seek and acquire, esp. As a hobby. 3 obtain (contributions etc.) From a number of people. 4 call for; fetch. 5 a refl. Regain control of oneself. B concentrate (one’s thoughts etc.). C (as collected adj.) Not perturbed or distracted. —adj. & adv. Us (of a telephone call, parcel, etc.) To be paid for by the receiver. [latin lego lect-pick]

    Collect2 n. Short prayer of the anglican or roman catholic church. [latin collecta: related to *collect1]

    Collectable (also collectible) —adj. Worth collecting. —n. Item sought by collectors.

    Collection n. 1 collecting or being collected. 2 things collected, esp. Systematically. 3 money collected, esp. At a meeting or church service.

    Collective —adj. Of, by, or relating to a group or society as a whole; joint; shared. —n. 1 cooperative enterprise; its members. 2 = *collective noun. collectively adv.

    Collective bargaining n. Negotiation of wages etc. By an organized body of employees.

    Collective farm n. Jointly-operated esp. State-owned amalgamation of several smallholdings.

    Collective noun n. Singular noun denoting a collection or number of individuals (e.g. Assembly, family, troop).

    Collective ownership n. Ownership of land etc., by all for the benefit of all.

    Collectivism n. Theory and practice of collective ownership of land and the means of production. collectivist n. & adj.

    Collectivize v. (also -ise) (-zing or -sing) organize on the basis of collective ownership. collectivization n.

    Collector n. 1 person who collects things of interest. 2 person who collects money etc. Due.

    Collector’s item n. (also collector’s piece) thing of interest to collectors.

    Colleen n. Ir. Girl. [irish cailín]

    College n. 1 establishment for further, higher, or professional education. 2 college premises (lived in college). 3 students and teachers in a college. 4 school. 5 organized body of persons with shared functions and privileges. [latin: related to *colleague]

    Collegiate adj. 1 of, or constituted as, a college; corporate. 2 (of a university) consisting of different colleges.

    Collegiate church n. Church endowed for a chapter of canons but without a

    Collegiate church n. Church endowed for a chapter of canons but without a bishop’s see.

    Collide v. (-ding) (often foll. By with) come into collision or conflict. [latin collido -lis-clash]

    Collie n. Sheepdog of an orig. Scottish breed. [perhaps from coll *coal]

    Collier n. 1 coalminer. 2 a coal ship. B member of its crew. [from *coal]

    Colliery n. (pl. -ies) coalmine and its buildings.

    Collision n. 1 violent impact of a moving body with another or with a fixed object. 2 clashing of interests etc. [latin: related to *collide]

    Collocate v. (-ting) juxtapose (a word etc.) With another. collocation n. [latin: related to *locus]

    Colloid n. 1 substance consisting of ultramicroscopic particles. 2 mixture of such particles dispersed in another substance. colloidal adj. [greek kolla glue]

    Colloquial adj. Of ordinary or familiar conversation, informal. colloquially adv. [latin: related to *colloquy]

    Colloquialism n. 1 colloquial word or phrase. 2 use of these.

    Colloquium n. (pl. -s or -quia) academic conference or seminar. [latin: related to *colloquy]

    Colloquy n. (pl. -quies) literary conversation, talk. [latin loquor speak]

    Collude v. (-ding) conspire together. collusion n. Collusive adj. [latin ludo lus-play]

    Collywobbles n.pl. Colloq. 1 rumbling or pain in the stomach. 2 apprehensive feeling. [from *colic, *wobble]

    Cologne n. Eau-de-cologne or similar toilet water. [abbreviation]

    Colon1 n. Punctuation mark (:), used esp. To mark illustration or antithesis. [greek, = clause]

    Colon2 n. Lower and greater part of the large intestine. [latin from greek]

    Colonel n. Army officer in command of a regiment, ranking next below brigadier. colonelcy n. (pl. -ies). [italian colonnello: related to *column]

    Colonial —adj. 1 of a colony or colonies. 2 of colonialism. —n. Inhabitant of a colony.

    Colonialism n. 1 policy of acquiring or maintaining colonies. 2 derog. Exploitation of colonies. colonialist n. & adj.

    Colonist n. Settler in or inhabitant of a colony.

    Colonize v. (also -ise) (-zing or -sing) 1 establish a colony in. 2 join a colony. colonization n.

    Colonnade n. Row of columns, esp. Supporting an entablature or roof. colonnaded adj. [french: related to *column]

    Colony n. (pl. -ies) 1 a settlement or settlers in a new country, fully or partly subject to the mother country. B their territory. 2 a people of one nationality, occupation, etc., esp. Forming a community in a city. B separate or segregated group (nudist colony). 3 group of animals, plants, etc., living close together. [latin colonia farm]

    Colophon n. 1 publisher’s imprint, esp. On the title-page. 2 tailpiece in a manuscript or book, giving the writer’s or printer’s name, date, etc. [greek, = summit]

    Color (brit. Colour) —n. 1 sensation produced on the eye by rays of light when resolved as by a prism into different wavelengths. 2 one, or any mixture, of the constituents into which light can be separated as in a spectrum or rainbow, sometimes including (loosely) black and white. 3 colouring substance, esp. Paint. 4 use of all colours in photography etc. 5 a pigmentation of the skin, esp.

    When dark. B this as ground for discrimination. 6 ruddiness of complexion. 7 (in pl.) Appearance or aspect (saw them in their true colours). 8 (in pl.) A coloured ribbon or uniform etc. Worn to signify membership of a school, club, team, etc. B flag of a regiment or ship. 9 quality, mood, or variety in music, literature, etc. 10 show of reason; pretext (lend colour to; under colour of). —v. 1 apply colour to, esp. By painting, dyeing, etc. 2 influence. 3 misrepresent, exaggerate. 4 take on colour; blush. show one’s true colours reveal one’s true character or intentions. [latin color]

    Colorado beetle n. Yellow and black beetle, with larva destructive to the potato plant. [colorado in us]

    Coloration n. (also colouration) 1 appearance as regards colour. 2 act or mode of colouring. [latin: related to *colour]

    Coloratura n. 1 elaborate ornamentation of a vocal melody. 2 soprano skilled in this. [italian: related to *colour]

    Colored (brit. Coloured) —adj. 1 having colour. 2 (coloured) often offens. A wholly or partly of non-white descent. B s.afr. Of mixed descent. —n. 1 (coloured) often offens. A coloured person.

    Colored (brit. Coloured) —adj. 1 having colour. 2 (coloured) often offens. A wholly or partly of non-white descent. B s.afr. Of mixed descent. —n. 1 (coloured) often offens. A coloured person. B s.afr. Person of mixed descent. 2 (in pl.) Coloured clothing etc. For washing.

    Colorful adj. (brit. Colour-) 1 full of colour; bright. 2 full of interest; vivid. colourfully adv.

    Coloring n. (brit. Colour-) 1 appearance as regards colour, esp. Facial complexion. 2 use or application of colour. 3 substance giving colour.

    Colorless adj. (brit. Colour-) 1 without colour. 2 lacking character or interest.

    Colossal adj. 1 huge. 2 colloq. Splendid. colossally adv. [related to *colossus]

    Colossus n. (pl. -ssi or -ssuses) 1 statue much bigger than life size. 2 gigantic or remarkable person etc. 3 imperial power personified. [latin from greek]

    Colostomy n. (pl. -ies) operation on the colon to make an opening in the abdominal wall to provide an artificial anus. [from *colon2]

    Colour (us color) —n. 1 sensation produced on the eye by rays of light when resolved as by a prism into different wavelengths. 2 one, or any mixture, of the constituents into which light can be separated as in a spectrum or rainbow, sometimes including (loosely) black and white. 3 colouring substance, esp. Paint. 4 use of all colours in photography etc. 5 a pigmentation of the skin, esp. When dark. B this as ground for discrimination. 6 ruddiness of complexion. 7 (in pl.) Appearance or aspect (saw them in their true colours). 8 (in pl.) A coloured ribbon or uniform etc. Worn to signify membership of a school, club, team, etc. B flag of a regiment or ship. 9 quality, mood, or variety in music, literature, etc. 10 show of reason; pretext (lend colour to; under colour of). —v. 1 apply colour to, esp. By painting, dyeing, etc. 2 influence. 3 misrepresent, exaggerate. 4 take on colour; blush. show one’s true colours reveal one’s true character or intentions. [latin color]

    Colouration var. Of *coloration.

    Colour bar n. Racial discrimination against non-white people.

    Colour-blind adj. Unable to distinguish certain colours. colour-blindness n.

    Colour code —n. Use of colours as a means of identification. —v. (colour-code) identify by means of a colour code.

    Coloured (us colored) —adj. 1 having colour. 2 (coloured) often offens. A wholly or partly of non-white descent. B s.afr. Of mixed descent. —n. 1 (coloured) often offens. A coloured person. B s.afr. Person of mixed descent. 2 (in pl.) Coloured clothing etc. For washing.

    Colourful adj. (us color-) 1 full of colour; bright. 2 full of interest; vivid. colourfully adv.

    Colouring n. (us color-) 1 appearance as regards colour, esp. Facial complexion. 2 use or application of colour. 3 substance giving colour.

    Colourless adj. (us color-) 1 without colour. 2 lacking character or interest.

    Colour scheme n. Arrangement of colours, esp. In interior design.

    Colour-sergeant n. Senior sergeant of an infantry company.

    Colour supplement n. Magazine with colour printing, as a supplement to a newspaper.

    Colposcopy n. Examination of the vagina and neck of the womb. colposcope n. [greek kolpos womb]

    Colt n. 1 young male horse. 2 sport inexperienced player. coltish adj. [old english]

    Colter n. (brit. Coulter) vertical blade in front of a ploughshare. [latin culter knife]

    Coltsfoot n. (pl. -s) wild plant with large leaves and yellow flowers.

    Columbine n. Garden plant with purple-blue flowers like a cluster of doves. [latin columba dove]

    Column n. 1 pillar, usu. Of circular section and with a base and capital. 2 column-shaped object. 3 vertical cylindrical mass of liquid or vapour. 4 vertical division of a printed page. 5 part of a newspaper etc. Regularly devoted to a particular subject.

    Columnist n. Journalist contributing regularly to a newspaper etc.

    Com-prefix (also co-, col-, con-, cor-) with, together, jointly, altogether. [latin com-, cum with]

    Usage com-is used before b, m, p, and occasionally before vowels and f; co-esp. Before vowels, h, and gn; col-before l, cor-before r, and con-before other consonants.

    Coma n. (pl. -s) prolonged deep unconsciousness. [latin from greek]

    Comatose adj. 1 in a coma. 2 drowsy, sleepy.

    Comb —n. 1 a toothed strip of rigid material for tidying the hair. B similar curved decorative strip worn in the hair. 2 thing like a comb, esp. A device for tidying and straightening wool etc. 3 red fleshy crest of a fowl, esp. A cock. 4 honeycomb. —v. 1 draw a comb through (the hair). 2 dress (wool etc.) With a comb. 3 colloq. Search (a place) thoroughly. comb out 1 arrange (the hair) loosely by combing. 2 remove with a comb. 3 search out and get rid of. [old english]

    Combat —n. Fight, struggle, contest. —v. (-t-) 1 engage in combat (with). 2 oppose; strive against. [latin: related to *battle]

    Combatant —n. Person engaged in fighting. —adj. 1 fighting. 2 for fighting.

    Combative adj. Pugnacious.

    Combe var. Of *coomb.

    Combination n. 1 combining or being combined. 2 combined set of things or people. 3 sequence of numbers or letters used to open a combination lock. 4 motor cycle with a side-car attached. 5 (in pl.) Single undergarment for the body and legs. [latin: related to *combine]

    Combination lock n. Lock that can be opened only by a specific sequence of movements.

    Combine —v. (-ning) 1 join together; unite for a common purpose. 2 possess (qualities usually distinct) together. 3 form or cause to form a chemical compound. 4 harvest with a combine harvester. —n. 1 combination of esp. Commercial interests. 2 (in full combine harvester) machine that reaps and threshes in one operation. [latin bini a pair]

    Combings n.pl. Hairs combed off.

    Combining form n. Linguistic element used in combination with another to form a word (e.g. Anglo- = english).

    Combo n. (pl. -s) slang small jazz or dance band. [abbreviation of *combination]

    Combustible —adj. Capable of or used for burning. —n. Combustible substance. combustibility n. [latin comburo -bust-burn up]

    Combustion n. 1 burning. 2 development of light and heat from the chemical combination of a substance with oxygen.

    Come —v. (-ming; past came; past part. Come) 1 move, be brought towards, or reach a place. 2 reach a specified situation or result (came to no harm). 3 reach or extend to a specified point. 4 traverse or accomplish (with compl.: have come a long way). 5 occur, happen; (of time) arrive in due course (how did you come to break your leg?; the day soon came). 6 take or occupy a specified position in space or time (nero came after claudius). 7 become perceptible or known (it will come to me). 8 be available (comes in three sizes). 9 become (come loose). 10 (foll. By from, of) a be descended from. B be the result of (that comes of complaining). 11 colloq. Play the part of; behave like (don’t come the bully with me). 12 slang have an orgasm. 13 (in subjunctive) colloq. When a specified time is reached (come next month). 14 (as int.) Expressing mild protest or encouragement (come, it cannot be that bad). —n. Slang semen ejaculated. come about happen. Come across 1 meet or find by chance. 2 colloq. Be effective or understood; give a specified impression. Come again colloq. 1 make a further effort.

    Comeback n. 1 return to a previous (esp. Successful) state. 2 slang retaliation or retort.

    Comecon n. Economic association of socialist countries in e. Europe. [abbreviation of council for mutual economic assistance]

    Comedian n. 1 humorous entertainer. 2 comedy actor. 3 slang buffoon. [french]

    Comedienne n. Female comedian. [french feminine]

    Comedown n. 1 loss of status. 2 disappointment.

    Comedy n. (pl. -ies) 1 a play, film, etc., of amusing character, usu. With a happy ending. B such works as a dramatic genre. 2 humour; amusing aspects. comedic adj. [greek: related to *comic]

    Comedy of manners n. Satirical play portraying the social behaviour of the upper classes.

    Come-hither attrib. Adj. Colloq. Flirtatious, inviting.

    Comely adj. (-ier, -iest) literary handsome, good-looking. comeliness n. [old english]

    Come-on n. Slang enticement.

    Comer n. Person who comes as an applicant etc. (offered it to the first comer).

    Comestibles n.pl. Formal or joc. Food. [french from latin]

    Comet n. Hazy object moving in a path about the sun, usu. With a nucleus of ice surrounded by gas and with a tail pointing away from the sun. [greek kometes]

    Comeuppance n. Colloq. Deserved punishment. [come up, *-ance]

    Comfit n. Archaic sweet consisting of a nut etc. In sugar. [latin: related to *confection]

    Comfort —n. 1 a state of physical well-being. B (usu. In pl.) Things that make life easy or pleasant. 2 relief of suffering or grief, consolation. 3 person or thing giving consolation. —v. Soothe in grief; console. [latin fortis strong]

    Comfortable adj. 1 giving ease. 2 free from discomfort; at ease. 3 having an easy conscience. 4 a having an adequate standard of living; free from financial worry. B sufficient (comfortable income). 5 a with a wide margin (comfortable win). B appreciable (comfortable margin). comfortably adv.

    Comforter n. 1 person who comforts. 2 baby’s dummy. 3 archaic woollen scarf.

    Comfortless adj. 1 dreary, cheerless. 2 without comfort.

    Comfort station n. Us euphem. Public lavatory.

    Comfrey n. (pl. -s) tall bell-flowered plant growing in damp, shady places. [french from latin]

    Comfy adj. (-ier, -iest) colloq. Comfortable. [abbreviation]

    Comic —adj. 1 of or like comedy. 2 funny. —n. 1 comedian. 2 periodical in the

    Comic —adj. 1 of or like comedy. 2 funny. —n. 1 comedian. 2 periodical in the form of comic strips. comical adj. Comically adv. [greek komos revel]

    Comic strip n. Sequence of drawings telling a story.

    Coming —attrib. Adj. 1 approaching, next (the coming week). 2 of potential importance (coming man). —n. Arrival.

    Comity n. (pl. -ies) formal 1 courtesy, friendship. 2 a association of nations etc. B (in full comity of nations) mutual recognition by nations of the laws and customs of others. [latin comis courteous]

    Comma n. Punctuation mark (,) indicating a pause or break between parts of a sentence etc. [greek, = clause]

    Command —v. 1 (often foll. By to + infin., or that + clause) give a formal order or instruction to. 2 (also absol.) Have authority or control over. 3 have at one’s disposal or within reach (a skill, resources, etc.). 4 deserve and get (sympathy, respect, etc.). 5 dominate (a strategic position) from a superior height; look down over. —n. 1 order, instruction. 2 mastery, control, possession. 3 exercise or tenure of authority, esp. Naval or military. 4 a body of troops etc. B district under a commander. [latin: related to *mandate]

    Commandant n. Commanding officer, esp. Of a military academy. [french or italian or spanish: related to *command]

    Commandeer v. 1 seize (esp. Goods) for military use. 2 take arbitrary possession of. [afrikaans kommanderen]

    of. [afrikaans kommanderen]

    Commander n. 1 person who commands, esp. A naval officer next below captain. 2 (in full knight commander) member of a higher class in some orders of knighthood.

    Commander-in-chief n. (pl. Commanders-in-chief) supreme commander, esp. Of a nation’s forces.

    Commanding adj. 1 exalted, impressive. 2 (of a position) giving a wide view. 3 (of an advantage etc.) Substantial (commanding lead).

    Commandment n. Divine command.

    Command module n. Control compartment in a spacecraft.

    Commando n. (pl. -s) 1 unit of shock troops. 2 member of this. [portuguese: related to *command]

    Command paper n. Paper laid before parliament by royal command.

    Command performance n. Theatrical or film performance given at royal request.

    Commemorate v. (-ting) 1 preserve in memory by a celebration or ceremony. 2 be a memorial of. commemoration n. Commemorative adj. [latin: related to *memory]

    *memory]

    Commence v. (-cing) formal begin. [latin: related to *com-, *initiate]

    Commencement n. Formal beginning.

    Commend v. 1 praise. 2 entrust, commit. 3 recommend. commendation n. [latin: related to *mandate]

    Commendable adj. Praiseworthy. commendably adv.

    Commensurable adj. 1 (often foll. By with, to) measurable by the same standard. 2 (foll. By to) proportionate to. 3 math. (of numbers) in a ratio equal to the ratio of integers. commensurability n. [latin: related to *measure]

    Commensurate adj. 1 (usu. Foll. By with) coextensive. 2 (often foll. By to, with) proportionate.

    Comment —n. 1 brief critical or explanatory remark or note; opinion. 2 commenting; criticism (aroused much comment; his art is a comment on society). —v. (often foll. By on or that) make (esp. Critical) remarks. no comment colloq. I decline to answer your question. [latin]

    Commentary n. (pl. -ies) 1 descriptive spoken esp. Broadcast account of an event or performance as it happens. 2 set of explanatory notes on a text etc. [latin]

    Commentate v. (-ting) act as a commentator.

    Commentator n. 1 person who provides a commentary. 2 person who comments on current events. [latin]

    Commerce n. Financial transactions, esp. Buying and selling; trading. [latin: related to *mercer]

    Commercial —adj. 1 of or engaged in commerce. 2 having financial profit as its primary aim. 3 (of chemicals) for industrial use. —n. Television or radio advertisement. commercially adv.

    Commercial broadcasting n. Broadcasting financed by advertising.

    Commercialism n. 1 commercial practices. 2 emphasis on financial profit.

    Commercialize v. (also -ise) (-zing or -sing) 1 exploit or spoil for profit. 2 make commercial. commercialization n.

    Commercial traveller n. Firm’s representative visiting shops etc. To get orders.

    Commie n. Slang derog. Communist. [abbreviation]

    Commination n. Literary threatening of divine vengeance. comminatory adj. [latin: related to *menace]

    Commingle v. (-ling) literary mingle together.

    Comminute v. (-ting) 1 reduce to small fragments. 2 divide (property) into small portions. comminution n. [latin: related to *minute2]

    Comminuted fracture n. Fracture producing multiple bone splinters.

    Commiserate v. (-ting) (usu. Foll. By with) express or feel sympathy. commiseration n. [latin: related to *miser]

    Commissar n. Hist. 1 official of the soviet communist party responsible for political education and organization. 2 head of a government department in the ussr. [latin: related to *commit]

    Commissariat n. 1 esp. Mil. A department for the supply of food etc. B food supplied. 2 hist. Government department of the ussr. [related to *commissary]

    Commissary n. (pl. -ies) 1 deputy, delegate. 2 us mil. Store for supplies of food etc. [latin: related to *commit]

    Commission —n. 1 a authority to perform a task etc. B person(s) entrusted with such authority. C task etc. Given to such person(s). 2 order for something to be produced specially. 3 a warrant conferring the rank of officer in the armed forces. B rank so conferred. 4 pay or percentage paid to an agent. 5 act of committing (a crime etc.). —v. 1 empower by commission.

    Commission-agent n. Bookmaker.

    Commissionaire n. Uniformed door-attendant. [french: related to *commissioner]

    Commissioner n. 1 person appointed by a commission to perform a specific task, e.g. The head of the london police etc. 2 member of a government commission. 3 representative of government in a district, department, etc. [medieval latin: related to *commission]

    Commissioner for oaths n. Solicitor authorized to administer an oath in an affidavit etc.

    Commit v. (-tt-) 1 do or make (a crime, blunder, etc.). 2 (usu. Foll. By to) entrust or consign for safe keeping or treatment. 3 send (a person) to prison. 4 pledge or bind (esp. Oneself) to a certain course or policy. 5 (as committed adj.) (often foll. By to) a dedicated. B obliged. commit to memory memorize. Commit to paper write down. [latin committo -miss-]

    Commitment n. 1 engagement or obligation. 2 committing or being committed. 3 dedication; committing oneself.

    Committal n. Act of committing, esp. To prison.

    Committal n. Act of committing, esp. To prison.

    Committee n. 1 body of persons appointed for a special function by (and usu. Out of) a larger body. 2 (committee) house of commons sitting as a committee. [from commit, -ee]

    Committee stage n. Third of five stages of a bill’s progress through parliament.

    Commode n. 1 chamber-pot in a chair with a cover. 2 chest of drawers. [latin commodus convenient]

    Commodious adj. Roomy.

    Commodity n. (pl. -ies) article of trade, esp. A raw material or product as opposed to a service. [latin: related to *commode]

    Commodore n. 1 naval officer above captain and below rear-admiral. 2 commander of a squadron or other division of a fleet. 3 president of a yacht-club. [french: related to *commander]

    Common —adj. (-er, -est) 1 a occurring often. B ordinary; without special rank or position. 2 a shared by, coming from, more than one (common knowledge). B belonging to the whole community; public. 3 derog. Low-class; vulgar; inferior. 4 of the most familiar type (common cold). 5 math. Belonging to two or more quantities (common denominator). 6 gram. (of gender) referring to individuals of either sex. —n. 1 piece of open public land. 2 slang = *common sense. in common 1 in joint use; shared. 2 of joint interest. In common with in the same way as. [latin communis]

    way as. [latin communis]

    Commonality n. (pl. -ies) 1 sharing of an attribute. 2 common occurrence. 3 = *commonalty. [var. Of *commonalty]

    Commonalty n. (pl. -ies) 1 the common people. 2 the general body (esp. Of mankind). [medieval latin: related to *common]

    Commoner n. 1 one of the common people (below the rank of peer). 2 university student without a scholarship. [medieval latin: related to *common]

    Common ground n. Point or argument accepted by both sides in a dispute.

    Common law n. Unwritten law based on custom and precedent.

    Common-law husband n. (also common-law wife) partner recognized by common law without formal marriage.

    Commonly adv. Usually, frequently; ordinarily.

    Common market n. European community.

    Common noun n. Gram. Name denoting a class of objects or a concept, not a particular individual.

    Common or garden adj. Colloq. Ordinary.

    Common noun n. Gram. Name denoting a class of objects or a concept, not a particular individual.

    Common or garden adj. Colloq. Ordinary.

    Commonplace —adj. Lacking originality; trite; ordinary. —n. 1 event, topic, etc. That is ordinary or usual. 2 trite remark. [translation of latin locus communis]

    Common-room n. Room for the social use of students or teachers at a college etc.

    Commons n.pl. 1 (the commons) = *house of commons. 2 the common people.

    Common sense n. Sound practical sense.

    Commonsensical adj. Having or marked by common sense.

    Common time n. Mus. Four crotchets in a bar.

    Commonwealth n. 1 independent state or community, esp. A democratic republic. 2 (the commonwealth) a association of the uk with states that were previously part of the british empire. B republican government of britain 1649–

    previously part of the british empire. B republican government of britain 1649– 60. 3 federation of states.

    Commotion n. Confused and noisy disturbance, uproar. [latin: related to *com-]

    Communal adj. 1 shared between members of a group or community; for common use. 2 (of conflict etc.) Between esp. Ethnic or religious communities. communally adv. [latin: related to *commune1]

    Commune1 n. 1 group of people sharing accommodation, goods, etc. 2 small district of local government in france etc. [medieval latin: related to *common]

    Commune2 v. (-ning) (usu. Foll. By with) 1 speak intimately. 2 feel in close touch (with nature etc.). [french: related to *common]

    Communicable adj. (esp. Of a disease) able to be passed on. [latin: related to *communicate]

    Communicant n. 1 person who receives holy communion. 2 person who imparts information. [related to *communicate]

    Communicate v. (-ting) 1 impart, transmit (news, heat, motion, feelings, disease, ideas, etc.). 2 succeed in conveying information. 3 (often foll. By with) relate socially; have dealings. 4 be connected (they have communicating rooms). communicator n. Communicatory adj. [latin: related to *common]

    Communication n. 1 a communicating or being communicated. B information etc. Communicated. C letter, message, etc. 2 connection or means of access. 3 social dealings. 4 (in pl.) Science and practice of transmitting information.

    Communication cord n. Cord or chain pulled to stop a train in an emergency.

    Communication(s) satellite n. Artificial satellite used to relay telephone circuits or broadcast programmes.

    Communicative adj. Ready to talk and impart information.

    Communion n. 1 sharing, esp. Of thoughts etc.; fellowship. 2 participation; sharing in common (communion of interests). 3 (communion or holy communion) eucharist. 4 body or group within the christian faith (the methodist communion). [latin: related to *common]

    Communiqué n. Official communication, esp. A news report. [french, = communicated]

    Communism n. 1 a social system in which most property is publicly owned and each person works for the common benefit. B political theory advocating this. 2 (usu. Communism) the form of socialist society established in cuba, china, etc., and previously, the ussr. [french: related to *common]

    Communist —n. 1 person advocating communism. 2 (usu. Communist) supporter of communism or member of a communist party. —adj. 1 of or relating to communism. 2 (usu. Communist) of communists or a communist

    relating to communism. 2 (usu. Communist) of communists or a communist party. communistic adj.

    Communist party n. Political party advocating communism or communism.

    Community n. (pl. -ies) 1 body of people living in one place, district, or country. 2 body of people having religion, ethnic origin, profession, etc., in common. 3 fellowship (community of interest). 4 commune. 5 joint ownership or liability. [latin: related to *common]

    Community centre n. Place providing social facilities for a neighbourhood.

    Community charge n. Tax levied locally on every adult.

    Community charge n. Tax levied locally on every adult.

    Usage the community charge, or poll tax, replaced household rates in 1989-90 and is itself to be replaced by a council tax in 1993.

    Community home n. Centre housing young offenders and other juveniles.

    Community service n. Unpaid work in the community, esp. By an offender.

    Community singing n. Singing by a large group, esp. Of old popular songs or hymns.

    Community spirit n. Feeling of belonging to a community, expressed in mutual support etc.

    Commute v. (-ting) 1 travel some distance to and from work. 2 (usu. Foll. By to) change (a punishment) to one less severe. 3 (often foll. By into, for) change (one kind of payment or obligation) for another. 4 exchange. commutable adj. Commutation n. [latin muto change]

    Commuter n. Person who commutes to and from work.

    Compact1 —adj. 1 closely or neatly packed together. 2 small and economically designed. 3 concise. 4 (of a person) small but well-proportioned. —v. Make compact. —n. (in full powder compact) small flat case for face-powder. compactly adv. Compactness n. [latin pango fasten]

    Compact2 n. Agreement, contract. [latin: related to *pact]

    Compact disc n. Disc on which information or sound is recorded digitally and reproduced by reflection of laser light.

    Companion n. 1 a person who accompanies or associates with another. B (foll. By in, of) partner, sharer. C person employed to live with and assist another. 2 handbook or reference book. 3 thing that matches another. 4 (companion) member of some orders of knighthood. [latin panis bread]

    Companionable adj. Sociable, friendly. companionably adv.

    Companionable adj. Sociable, friendly. companionably adv.

    Companionship n. Friendship; being together.

    Companion-way n. Staircase from a ship’s deck to the saloon or cabins.

    Company n. (pl. -ies) 1 a number of people assembled. B guest(s). 2 person’s associate(s). 3 a commercial business. B partners in this. 4 actors etc. Working together. 5 subdivision of an infantry battalion. 6 body of people combined for a common purpose (the ship’s company). 7 being with another or others. in company with together with. Keep a person company remain with a person to be sociable. Part company (often foll. By with) cease to associate; separate; disagree. [french: related to *companion]

    Comparable adj. (often foll. By with, to) able or fit to be compared. comparability n. Comparably adv. [latin: related to *compare]

    Usage use of comparable with to and with corresponds to the senses of compare: to is more common.

    Comparative —adj. 1 perceptible or estimated by comparison; relative (in comparative comfort). 2 of or involving comparison (a comparative study). 3 gram. (of an adjective or adverb) expressing a higher degree of a quality (e.g. Braver, more quickly). —n. Gram. Comparative expression or word. comparatively adv. [latin: related to *compare]

    Compare —v. (-ring) 1 (usu. Foll. By to) express similarities in; liken. 2 (often foll. By to, with) estimate the similarity of. 3 (often foll. By with) bear

    foll. By to, with) estimate the similarity of. 3 (often foll. By with) bear comparison. 4 gram. Form comparative and superlative degrees of (an adjective or adverb). —n. Literary comparison (beyond compare). compare notes exchange ideas or opinions. [latin compar equal]

    Usage in current use, to and with are generally interchangeable, but with often implies a greater element of formal analysis.

    Comparison n. 1 comparing. 2 illustration or example of similarity. 3 capacity for being likened (there’s no comparison). 4 (in full degrees of comparison) gram. Positive, comparative, and superlative forms of adjectives and adverbs. bear (or stand) comparison (often foll. By with) be able to be compared favourably. Beyond comparison 1 totally different in quality. 2 greatly superior; excellent.

    Compartment n. 1 space within a larger space, separated by partitions. 2 watertight division of a ship. 3 area of activity etc. Kept apart from others in a person’s mind. [latin: related to *part]

    Compartmental adj. Of or divided into compartments or categories.

    Compartmentalize v. (also -ise) (-zing or -sing) divide into compartments or categories.

    Compass n. 1 instrument showing the direction of magnetic north and bearings from it. 2 (usu. In pl.) Instrument for taking measurements and describing circles, with two arms connected at one end by a hinge. 3 circumference or boundary. 4 area, extent; scope; range. [latin passus pace]

    Compassion n. Pity inclining one to help or be merciful. [church latin: related to *passion]

    Compassionate adj. Showing compassion, sympathetic. compassionately adv.

    Compassionate leave n. Leave granted on grounds of bereavement etc.

    Compatible adj. 1 a able to coexist; well-suited. B (often foll. By with) consistent. 2 (of equipment etc.) Able to be used in combination. compatibility n. [medieval latin: related to *passion]

    Compatriot n. Fellow-countryman. [latin compatriota]

    Compel v. (-ll-) 1 force, constrain. 2 arouse irresistibly (compels admiration). 3 (as compelling adj.) Rousing strong interest, conviction, or admiration. compellingly adv. [latin pello puls-drive]

    Compendious adj. Comprehensive but brief. [latin: related to *compendium]

    Compendium n. (pl. -s or -dia) 1 concise summary or abridgement. 2 collection of table-games etc. [latin]

    Compensate v. (-ting) 1 a (often foll. By for) recompense (a person). B recompense (loss, damage, etc.). 2 (usu. Foll. By for a thing) make amends. 3 counterbalance. 4 offset disability or frustration by development in another direction. compensatory adj. [latin pendo pens-weigh]

    direction. compensatory adj. [latin pendo pens-weigh]

    Compensation n. 1 compensating or being compensated. 2 money etc. Given as recompense.

    Compère —n. Person who introduces a variety show etc. —v. (-ring) act as compère (to). [french, = godfather]

    Compete v. (-ting) 1 take part in a contest etc. 2 (often foll. By with, against a person, for a thing) strive. [latin peto seek]

    Competence n. (also competency) 1 ability; being competent. 2 income large enough to live on. 3 legal capacity.

    Competent adj. 1 adequately qualified or capable. 2 effective. competently adv. [latin: related to *compete]

    Competition n. 1 (often foll. By for) competing. 2 event in which people compete. 3 the other people or trade competing; opposition. [latin: related to *compete]

    Competitive adj. 1 of or involving competition. 2 (of prices etc.) Comparing favourably with those of rivals. 3 having a strong urge to win. competitiveness n.

    Competitor n. Person who competes; rival, esp. In business.

    Compile v. (-ling) 1 a collect and arrange (material) into a list, book, etc. B produce (a book etc.) Thus. 2 computing translate (a programming language) into machine code. compilation n. [latin compilo plunder]

    Compiler n. 1 person who compiles. 2 computing program for translating a programming language into machine code.

    Complacent adj. Smugly self-satisfied or contented. complacence n. Complacency n. Complacently adv. [latin placeo please]

    Usage complacent is often confused with complaisant.

    Complain v. 1 express dissatisfaction. 2 (foll. By of) a say that one is suffering from (an ailment). B state a grievance concerning. 3 creak under strain. [latin plango lament]

    Complainant n. Plaintiff in certain lawsuits.

    Complaint n. 1 complaining. 2 grievance, cause of dissatisfaction. 3 ailment. 4 formal accusation.

    Complaisant adj. Formal 1 deferential. 2 willing to please; acquiescent. complaisance n. [french: related to *complacent]

    Usage complaisant is often confused with complacent.

    Complement —n. 1 thing that completes; counterpart. 2 full number needed. 3 word(s) added to a verb to complete the predicate of a sentence. 4 amount by which an angle is less than 90°. —v. 1 complete. 2 form a complement to. [latin compleo fill up]

    Complementary adj. 1 completing; forming a complement. 2 (of two or more things) complementing each other.

    Complementary medicine n. Alternative medicine.

    Complete —adj. 1 having all its parts; entire. 2 finished. 3 total, in every way. — v. (-ting) 1 finish. 2 make complete. 3 fill in (a form etc.). 4 conclude the sale or purchase of property. complete with having (as an important feature) (comes complete with instructions). completely adv. Completeness n. Completion n. [latin: related to *complement]

    Complex —n. 1 building, series of rooms, etc., made up of related parts (shopping complex). 2 psychol. Group of usu. Repressed feelings or thoughts which cause abnormal behaviour or mental states. 3 preoccupation; feeling of inadequacy. —adj. 1 complicated. 2 consisting of related parts; composite. complexity n. (pl. -ies). [latin complexus]

    Complexion n. 1 natural colour, texture, and appearance of the skin, esp. Of the face. 2 aspect, character (puts a different complexion on the matter). [latin: related to *complex]

    Compliance n. 1 obedience to a request, command, etc. 2 capacity to yield. in compliance with according to.

    Compliant adj. Obedient; yielding. compliantly adv.

    Complicate v. (-ting) 1 make difficult or complex. 2 (as complicated adj.) Complex; intricate. [latin plico to fold]

    Complication n. 1 a involved or confused condition or state. B complicating circumstance; difficulty. 2 (often in pl.) Disease or condition aggravating or arising out of a previous one. [latin: related to *complicate]

    Complicity n. Partnership in wrongdoing. [french: related to *complex]

    Compliment —n. 1 a polite expression of praise. B act implying praise. 2 (in pl.) A formal greetings accompanying a present etc. B praise. —v. (often foll. By on) congratulate; praise. [latin: related to *complement]

    Complimentary adj. 1 expressing a compliment. 2 given free of charge.

    Compline n. 1 last of the canonical hours of prayer. 2 service during this. [latin: related to *comply]

    Comply v. (-ies, -ied) (often foll. By with) act in accordance (with a request or command). [latin compleo fill up]

    Component —n. Part of a larger whole. —adj. Being part of a larger whole. [latin: related to *compound1]

    Comport v.refl. Literary conduct oneself; behave. comport with suit, befit. comportment n. [latin porto carry]

    Compose v. (-sing) 1 create in music or writing. 2 constitute; make up. 3 arrange artistically, neatly, or for a specified purpose. 4 a (often refl.) Calm; settle. B (as composed adj.) Calm, self-possessed. 5 printing a set up (type). B arrange (an article etc.) In type. composed of made up of, consisting of. composedly adv. [french: related to *pose]

    Usage see note at comprise.

    Composer n. Person who composes (esp. Music).

    Composite —adj. 1 made up of parts. 2 of mixed ionic and corinthian style. 3 (of a plant) having a head of many flowers forming one bloom. —n. Composite thing or plant. [latin: related to *compose]

    Composition n. 1 a act or method of putting together; composing. B thing composed, esp. Music. 2 constitution of a substance. 3 school essay. 4 arrangement of the parts of a picture etc. 5 compound artificial substance. compositional adj.

    Compositor n. Person who sets up type for printing. [latin: related to *compose]

    Compositor n. Person who sets up type for printing. [latin: related to *compose]

    Compos mentis adj. Sane. [latin]

    Compost —n. 1 mixture of decayed organic matter. 2 loam soil with fertilizer for growing plants. —v. 1 treat with compost. 2 make into compost. [latin: related to *compose]

    Composure n. Tranquil manner. [from *compose]

    Compote n. Fruit preserved or cooked in syrup. [french: related to *compose]

    Compound1 —n. 1 mixture of two or more things. 2 word made up of two or more existing words. 3 substance formed from two or more elements chemically united in fixed proportions. —adj. 1 made up of two or more ingredients or parts. 2 combined; collective. —v. 1 mix or combine (ingredients or elements). 2 increase or complicate (difficulties etc.). 3 make up (a composite whole). 4 settle (a matter) by mutual agreement. 5 law condone or conceal (a liability or offence) for personal gain. 6 (usu. Foll. By with) law come to terms with a person. [latin compono -pos-put together]

    Compound2 n. 1 enclosure or fenced-in space. 2 enclosure, esp. In india, china, etc., in which a factory or house stands. [malay kampong]

    Compound fracture n. Fracture complicated by a wound.

    Compound interest n. Interest payable on capital and its accumulated interest.

    Comprehend v. 1 grasp mentally; understand. 2 include. [latin comprehendo seize]

    Comprehensible adj. That can be understood. [latin: related to *comprehend]

    Comprehension n. 1 a understanding. B text set as a test of understanding. 2 inclusion.

    Comprehensive —adj. 1 including all or nearly all, inclusive. 2 (of motor insurance) providing protection against most risks. —n. (in full comprehensive school) secondary school for children of all abilities. comprehensively adv. Comprehensiveness n.

    Compress —v. 1 squeeze together. 2 bring into a smaller space or shorter time. —n. Pad of lint etc. Pressed on to part of the body to relieve inflammation, stop bleeding, etc. compressible adj. [latin: related to *press1]

    Compression n. 1 compressing. 2 reduction in volume of the fuel mixture in an internal-combustion engine before ignition.

    Compressor n. Machine for compressing air or other gases.

    Comprise v. (-sing) 1 include. 2 consist of. 3 make up, compose. [french: related to *comprehend]

    Usage the use of this word in sense 3 is considered incorrect and compose is generally preferred.

    Compromise —n. 1 settlement of a dispute by mutual concession. 2 (often foll. By between) intermediate state between conflicting opinions, actions, etc. —v. (-sing) 1 a settle a dispute by mutual concession. B modify one’s opinions, demands, etc. 2 bring into disrepute or danger by indiscretion. [latin: related to *promise]

    Comptroller n. Controller (used in the title of some financial officers). [var. Of *controller]

    Compulsion n. 1 compelling or being compelled; obligation. 2 irresistible urge. [latin: related to *compel]

    Compulsive adj. 1 compelling. 2 resulting or acting (as if) from compulsion (compulsive gambler). 3 irresistible (compulsive entertainment). compulsively adv. [medieval latin: related to *compel]

    Compulsory adj. 1 required by law or a rule. 2 essential. compulsorily adv.

    Compulsory purchase n. Enforced sale of land or property to a local authority etc.

    Compunction n. 1 pricking of conscience. 2 slight regret; scruple. [church latin: related to *point]

    related to *point]

    Compute v. (-ting) 1 reckon or calculate. 2 use a computer. computation n. [latin puto reckon]

    Computer n. Electronic device for storing and processing data, making calculations, or controlling machinery.

    Computerize v. (also -ise) (-zing or -sing) 1 equip with a computer. 2 store, perform, or produce by computer. computerization n.

    Computer-literate adj. Able to use computers.

    Computer science n. The study of the principles and use of computers.

    Computer virus n. Self-replicating code maliciously introduced into a computer program and intended to corrupt the system or destroy data.

    Comrade n. 1 associate or companion in some activity. 2 fellow socialist or communist. comradely adj. Comradeship n. [spanish: related to *chamber]

    Con1 slang —n. Confidence trick. —v. (-nn-) swindle; deceive. [abbreviation]

    Con2 —n. (usu. In pl.) Reason against. —prep. & adv. Against (cf. *pro2). [latin contra against]

    Con3 n. Slang convict. [abbreviation]

    Con4 v. (us conn) (-nn-) direct the steering of (a ship). [originally cond from french: related to *conduct]

    Con-see *com-.

    Concatenation n. Series of linked things or events. [latin catena chain]

    Concave adj. Curved like the interior of a circle or sphere. concavity n. [latin: related to *cave]

    Conceal v. 1 keep secret. 2 hide. concealment n. [latin celo hide]

    Concede v. (-ding) 1 admit to be true. 2 admit defeat in. 3 grant (a right, privilege, etc.). [latin: related to *cede]

    Conceit n. 1 personal vanity; pride. 2 literary a far-fetched comparison. B fanciful notion. [from *conceive]

    Conceited adj. Vain. conceitedly adv.

    Conceivable adj. Capable of being grasped or imagined. conceivably adv.

    Conceive v. (-ving) 1 become pregnant (with). 2 a (often foll. By of) imagine, think. B (usu. In passive) formulate (a belief, plan, etc.). [latin concipio -cept-]

    Concentrate —v. (-ting) 1 (often foll. By on) focus one’s attention or thought. 2 bring together to one point. 3 increase the strength of (a liquid etc.) By removing water etc. 4 (as concentrated adj.) Intense, strong. —n. Concentrated substance. [latin: related to *centre]

    Concentration n. 1 concentrating or being concentrated. 2 mental attention. 3 something concentrated. 4 weight of a substance in a given amount of material.

    Concentration camp n. Camp where political prisoners etc. Are detained.

    Concentric adj. Having a common centre. concentrically adv. [french or medieval latin: related to *centre]

    Concept n. General notion; abstract idea. [latin: related to *conceive]

    Conception n. 1 conceiving or being conceived. 2 idea, plan. 3 understanding (has no conception). conceptional adj. [french from latin: related to *concept]

    Conceptual adj. Of mental conceptions or concepts. conceptually adv.

    Conceptualize v. (also -ise) (-zing or -sing) form a concept or idea of. conceptualization n.

    Concern —v. 1 a be relevant or important to. B relate to; be about. 2 (refl.; often foll. By with, about, in) interest or involve oneself. 3 worry, affect. —n. 1 anxiety, worry. 2 a matter of interest or importance to one. B interest, connection (has a concern in politics). 3 business, firm. 4 colloq. Complicated thing, contrivance. [latin cerno sift]

    Concerned adj. 1 involved, interested. 2 troubled, anxious. be concerned (often foll. By in) take part. concernedly adv. Concernedness n.

    Concerning prep. About, regarding.

    Concert n. 1 musical performance of usu. Several separate compositions. 2 agreement. 3 combination of voices or sounds. [italian: related to *concerto]

    Concerted adj. 1 jointly arranged or planned. 2 mus. Arranged in parts for voices or instruments.

    Concertina —n. Musical instrument like an accordion but smaller. —v. (-nas, -naed or -na’d, -naing) compress or collapse in folds like those of a concertina.

    Concerto n. (pl. -s or -ti) composition for solo instrument(s) and orchestra. [italian]

    Concert pitch n. Pitch internationally agreed whereby the a above middle c = 440 hz.

    Concession n. 1 a conceding. B thing conceded. 2 reduction in price for a certain category of persons. 3 a right to use land etc. B right to sell goods in a particular territory. concessionary adj. [latin: related to *concede]

    Concessive adj. Gram. (of a preposition or conjunction) introducing a phrase or clause which contrasts with the main clause (e.g. In spite of, although). [latin: related to *concede]

    Conch n. 1 thick heavy spiral shell of various marine gastropod molluscs. 2 any such gastropod. [latin concha]

    Conchology n. The study of shells. [from *conch]

    Concierge n. (esp. In france) doorkeeper or porter of a block of flats etc. [french]

    Conciliate v. (-ting) 1 make calm and amenable; pacify; gain the goodwill of. 2 reconcile. conciliation n. Conciliator n. Conciliatory adj. [latin: related to *council]

    Concise adj. Brief but comprehensive in expression. concisely adv. Conciseness n. Concision n. [latin caedo cut]

    Conclave n. 1 private meeting. 2 rc ch. A assembly of cardinals for the election

    Conclave n. 1 private meeting. 2 rc ch. A assembly of cardinals for the election of a pope. B meeting-place for this. [latin clavis key]

    Conclude v. (-ding) 1 bring or come to an end. 2 (often foll. By from or that) infer. 3 settle (a treaty etc.). [latin concludo: related to *close1]

    Conclusion n. 1 ending, end. 2 judgement reached by reasoning. 3 summing-up. 4 settling (of peace etc.). 5 logic proposition reached from given premisses. in conclusion lastly, to conclude. [latin: related to *conclude]

    Conclusive adj. Decisive, convincing. conclusively adv. [latin: related to *conclude]

    Concoct v. 1 make by mixing ingredients. 2 invent (a story, lie, etc.). concoction n. [latin coquo coct-cook]

    Concomitant —adj. (often foll. By with) accompanying; occurring together. —n. Accompanying thing. concomitance n. [latin comes comit-companion]

    Concord n. Agreement, harmony. concordant adj. [latin cor cord-heart]

    Concordance n. 1 agreement. 2 alphabetical index of words used in a book or by an author. [medieval latin: related to *concord]

    Concordat n. Agreement, esp. Between the church and a state. [latin: related to *concord]

    *concord]

    Concourse n. 1 crowd, gathering. 2 large open area in a railway station etc. [latin: related to *concur]

    Concrete —adj. 1 a existing in a material form; real. B specific, definite (concrete evidence; a concrete proposal). 2 gram. (of a noun) denoting a material object as opposed to a quality, state, etc. —n. (often attrib.) Mixture of gravel, sand, cement, and water, used for building. —v. (-ting) cover with or embed in concrete. [latin cresco cret-grow]

    Concretion n. 1 hard solid mass. 2 forming of this by coalescence. [latin: related to *concrete]

    Concubine n. 1 literary or joc. Mistress. 2 (among polygamous peoples) secondary wife. concubinage n. [latin cubo lie]

    Concupiscence n. Formal lust. concupiscent adj. [latin cupio desire]

    Concur v. (-rr-) 1 (often foll. By with) have the same opinion. 2 coincide. [latin curro run]

    Concurrent adj. 1 (often foll. By with) existing or in operation at the same time or together. 2 (of three or more lines) meeting at or tending towards one point. 3 agreeing, harmonious. concurrence n. Concurrently adv.

    Concuss v. Subject to concussion. [latin quatio shake]

    Concussion n. 1 temporary unconsciousness or incapacity due to a blow to the head, a fall, etc. 2 violent shaking.

    Condemn v. 1 express utter disapproval of. 2 a find guilty; convict. B (usu. Foll. By to) sentence to (a punishment). 3 pronounce (a building etc.) Unfit for use. 4 (usu. Foll. By to) doom or assign (to something unpleasant). condemnation n. Condemnatory adj. [latin: related to *damn]

    Condensation n. 1 condensing or being condensed. 2 condensed liquid (esp. Water on a cold surface). 3 abridgement. [latin: related to *condense]

    Condense v. (-sing) 1 make denser or more concentrated. 2 express in fewer words. 3 reduce or be reduced from a gas or vapour to a liquid. [latin: related to *dense]

    Condensed milk n. Milk thickened by evaporation and sweetened.

    Condenser n. 1 apparatus or vessel for condensing vapour. 2 electr. = *capacitor. 3 lens or system of lenses for concentrating light.

    Condescend v. 1 be gracious enough (to do a thing) esp. While showing one’s sense of dignity or superiority (condescended to attend). 2 (foll. By to) pretend to be on equal terms with (an inferior). 3 (as condescending adj.) Patronizing. condescendingly adv. Condescension n. [latin: related to *descend]

    Condign adj. (of a punishment etc.) Severe and well-deserved. [latin dignus

    Condign adj. (of a punishment etc.) Severe and well-deserved. [latin dignus worthy]

    Condiment n. Seasoning or relish for food. [latin condio pickle]

    Condition —n. 1 stipulation; thing upon the fulfilment of which something else depends. 2 a state of being or fitness of a person or thing. B ailment, abnormality (heart condition). 3 (in pl.) Circumstances, esp. Those affecting the functioning or existence of something (good working conditions). —v. 1 a bring into a good or desired state. B make fit (esp. Dogs or horses). 2 teach or accustom. 3 a impose conditions on. B be essential to. in (or out of) condition in good (or bad) condition. On condition that with the stipulation that. [latin dico say]

    Conditional adj. 1 (often foll. By on) dependent; not absolute; containing a condition. 2 gram. (of a clause, mood, etc.) Expressing a condition. conditionally adv. [latin: related to *condition]

    Conditioned reflex n. Reflex response to a non-natural stimulus, established by training.

    Conditioner n. Agent that conditions, esp. The hair.

    Condole v. (-ling) (foll. By with) express sympathy with (a person) over a loss etc. [latin condoleo grieve with another]

    Usage condole is often confused with console1.

    Condolence n. (often in pl.) Expression of sympathy.

    Condom n. Contraceptive sheath worn by men. [origin unknown]

    Condominium n. 1 joint rule or sovereignty. 2 us building containing individually owned flats. [latin dominium lordship]

    Condone v. (-ning) forgive or overlook (an offence or wrongdoing). [latin dono give]

    Condor n. Large s. American vulture. [spanish from quechua]

    Conduce v. (-cing) (foll. By to) contribute to (a result). [latin: related to *conduct]

    Conducive adj. (often foll. By to) contributing or helping (towards something).

    Conduct —n. 1 behaviour. 2 activity or manner of directing or managing (a business, war, etc.). —v. 1 lead or guide. 2 direct or manage (a business etc.). 3 (also absol.) Be the conductor of (an orchestra etc.). 4 transmit (heat, electricity, etc.) By conduction. 5 refl. Behave. [latin duco duct-lead]

    Conductance n. Power of a specified material to conduct electricity.

    Conduction n. Transmission of heat, electricity, etc. Through a substance. [latin: related to *conduct]

    Conductive adj. Transmitting (esp. Heat, electricity, etc.). conductivity n.

    Conductor n. 1 person who directs an orchestra etc. 2 (fem. Conductress) person who collects fares in a bus etc. 3 thing that conducts heat or electricity. [latin: related to *conduct]

    Conduit n. 1 channel or pipe conveying liquids. 2 tube or trough protecting insulated electric wires. [medieval latin: related to *conduct]

    Cone n. 1 solid figure with a circular (or other curved) plane base, tapering to a point. 2 thing of similar shape. 3 dry fruit of a conifer. 4 ice-cream cornet. [latin from greek]

    Coney var. Of *cony.

    Confab colloq. —n. = confabulation (see confabulate). —v. (-bb-) = confabulate. [abbreviation]

    Confabulate v. (-ting) converse, chat. confabulation n. [latin: related to *fable]

    Confection n. Dish or delicacy made with sweet ingredients. [latin conficio prepare]

    Confectioner n. Maker or retailer of confectionery.

    Confectionery n. Confections, esp. Sweets.

    Confederacy n. (pl. -ies) league or alliance, esp. Of confederate states. [french: related to *confederate]

    Confederate —adj. Esp. Polit. Allied. —n. 1 ally, esp. (in a bad sense) accomplice. 2 (confederate) supporter of the confederate states. —v. (-ting) (often foll. By with) bring or come into alliance. [latin: related to *federal]

    Confederate states n.pl. States which seceded from the us in 1860–1.

    Confederation n. 1 union or alliance, esp. Of states. 2 confederating or being confederated.

    Confer v. (-rr-) 1 (often foll. By on, upon) grant or bestow. 2 (often foll. By with) converse, consult. conferrable adj. [latin confero collat-bring together]

    Conference n. 1 consultation. 2 meeting for discussion. [french or medieval latin: related to *confer]

    Conferment n. Conferring of a degree, honour, etc.

    Confess v. 1 a (also absol.) Acknowledge or admit (a fault, crime, etc.). B (foll. By to) admit to. 2 admit reluctantly. 3 a (also absol.) Declare (one’s sins) to a priest. B (of a priest) hear the confession of. [latin confiteor -fess-]

    Confessedly adv. By one’s own or general admission.

    Confession n. 1 a act of confessing. B thing confessed. 2 (in full confession of faith) declaration of one’s beliefs or principles.

    Confessional —n. Enclosed stall in a church in which the priest hears confessions. —adj. Of confession.

    Confessor n. Priest who hears confessions and gives spiritual counsel.

    Confetti n. Small bits of coloured paper thrown by wedding guests at the bride and groom. [italian]

    Confidant n. (fem. Confidante pronunc. Same) person trusted with knowledge of one’s private affairs. [related to *confide]

    Confide v. (-ding) 1 (foll. By in) talk confidentially to. 2 (usu. Foll. By to) tell (a secret etc.) In confidence. 3 (foll. By to) entrust (an object of care, a task, etc.) To. [latin confido trust]

    Confidence n. 1 firm trust. 2 a feeling of reliance or certainty. B sense of self-reliance; boldness. 3 something told as a secret. in confidence as a secret. In a person’s confidence trusted with a person’s secrets. Take into one’s confidence confide in. [latin: related to *confide]

    Confidence trick n. Swindle in which the victim is persuaded to trust the swindler. confidence trickster n.

    Confident adj. Feeling or showing confidence; bold. confidently adv. [italian: related to *confide]

    Confidential adj. 1 spoken or written in confidence. 2 entrusted with secrets (confidential secretary). 3 confiding. confidentiality n. Confidentially adv.

    Configuration n. 1 arrangement in a particular form. 2 form or figure resulting from this. 3 computing hardware and its arrangement of connections etc. configure v. (-ring). [latin: related to *figure]

    Confine —v. (-ning) 1 keep or restrict (within certain limits). 2 imprison. —n. (usu. In pl.) Limit, boundary. [latin finis limit]

    Confinement n. 1 confining or being confined. 2 time of childbirth.

    Confirm v. 1 provide support for the truth or correctness of. 2 (foll. By in) encourage (a person) in (an opinion etc.). 3 establish more firmly (power, possession, etc.). 4 make formally valid. 5 administer the religious rite of confirmation to. [latin: related to *firm1]

    confirmation to. [latin: related to *firm1]

    Confirmation n. 1 confirming or being confirmed. 2 rite confirming a baptized person as a member of the christian church.

    Confirmed adj. Firmly settled in some habit or condition (confirmed bachelor).

    Confiscate v. (-ting) take or seize by authority. confiscation n. [latin: related to *fiscal]

    Conflagration n. Great and destructive fire. [latin: related to *flagrant]

    Conflate v. (-ting) blend or fuse together (esp. Two variant texts into one). conflation n. [latin flo flat-blow]

    Conflict —n. 1 a state of opposition. B fight, struggle. 2 (often foll. By of) clashing of opposed interests etc. —v. Clash; be incompatible. [latin fligo flict-strike]

    Confluence n. 1 place where two rivers meet. 2 a coming together. B crowd of people. [latin fluo flow]

    Confluent —adj. Flowing together, uniting. —n. Stream joining another.

    Conform v. 1 comply with rules or general custom. 2 (foll. By to, with) comply with; be in accordance with. 3 (often foll. By to) be or make suitable. [latin: related to *form]

    related to *form]

    Conformable adj. 1 (often foll. By to) similar. 2 (often foll. By with) consistent. 3 (often foll. By to) adaptable.

    Conformation n. Way a thing is formed; shape.

    Conformist —n. Person who conforms to an established practice. —adj. Conforming, conventional. conformism n.

    Conformity n. 1 accordance with established practice. 2 agreement, suitability.

    Confound —v. 1 perplex, baffle. 2 confuse (in one’s mind). 3 archaic defeat, overthrow. —int. Expressing annoyance (confound you!). [latin confundo -fus-mix up]

    Confounded attrib. Adj. Colloq. Damned.

    Confront v. 1 a face in hostility or defiance. B face up to and deal with. 2 (of a difficulty etc.) Present itself to. 3 (foll. By with) bring (a person) face to face with (an accusation etc.). 4 meet or stand facing. confrontation n. Confrontational adj. [french from medieval latin]

    Confucian adj. Of confucius or his philosophy. confucianism n. [confucius, name of a chinese philosopher]

    Confuse v. (-sing) 1 perplex, bewilder. 2 mix up in the mind; mistake (one for another). 3 make indistinct (confuse the issue). 4 (often as confused adj.) Throw into disorder. confusedly adv. Confusing adj. [related to *confound]

    Confusion n. Confusing or being confused.

    Confute v. (-ting) prove (a person or argument) to be in error. confutation n. [latin]

    Conga —n. 1 latin-american dance, with a line of dancers one behind the other. 2 tall narrow drum beaten with the hands. —v. (congas, congaed or conga’d, congaing) perform the conga. [spanish conga (feminine), = of the congo]

    Congeal v. 1 make or become semisolid by cooling. 2 (of blood etc.) Coagulate. congelation n. [french from latin gelo freeze]

    Congenial adj. 1 (often foll. By with, to) pleasant because like-minded. 2 (often foll. By to) suited or agreeable. congeniality n. Congenially adv. [from *com-, *genial]

    Congenital adj. 1 (esp. Of disease) existing from birth. 2 as such from birth (congenital liar). congenitally adv. [latin: related to *com-]

    Conger n. (in full conger eel) large marine eel. [greek goggros]

    Congeries n. (pl. Same) disorderly collection; mass, heap. [latin congero heap together]

    Usage the form congery, formed under the misapprehension that congeries is plural only, is incorrect.

    Congest v. (esp. As congested adj.) Affect with congestion. [latin congero -gest-heap together]

    Congestion n. Abnormal accumulation or obstruction, esp. Of traffic etc. Or of blood or mucus in part of the body.

    Conglomerate —adj. Gathered into a rounded mass. —n. 1 heterogeneous mass. 2 group or corporation of merged firms. —v. (-ting) collect into a coherent mass. conglomeration n. [latin glomus -eris ball]

    Congratulate v. (-ting) (often foll. By on) 1 express pleasure at the happiness, good fortune, or excellence of (a person). 2 refl. Think oneself fortunate or clever. congratulatory adj. [latin gratus pleasing]

    Congratulation n. 1 congratulating. 2 (usu. In pl.) Expression of this.

    Congregate v. (-ting) collect or gather into a crowd. [latin grex greg-flock]

    Congregation n. 1 gathering of people, esp. For religious worship. 2 body of

    persons regularly attending a particular church etc. [latin: related to *congregate]

    Congregational adj. 1 of a congregation. 2 (congregational) of or adhering to congregationalism.

    Congregationalism n. System whereby individual churches are largely self-governing. congregationalist n.

    Congress n. 1 formal meeting of delegates for discussion. 2 (congress) national legislative body, esp. Of the us. congressional adj. [latin gradior gress-walk]

    Congressman n. (fem. Congresswoman) member of the us congress.

    Congruent adj. 1 (often foll. By with) suitable, agreeing. 2 geom. (of figures) coinciding exactly when superimposed. congruence n. Congruency n. [latin congruo agree]

    Congruous adj. Suitable, agreeing; fitting. congruity n. [latin: related to *congruent]

    Conic adj. Of a cone. [greek: related to *cone]

    Conical adj. Cone-shaped.

    Conifer n. Tree usu. Bearing cones. coniferous adj. [latin: related to *cone]

    Conjectural adj. Based on conjecture.

    Conjecture —n. 1 formation of an opinion on incomplete information; guessing. 2 guess. —v. (-ring) guess. [latin conjectura from jacio throw]

    Conjoin v. Formal join, combine.

    Conjoint adj. Formal associated, conjoined.

    Conjugal adj. Of marriage or the relationship of husband and wife. [latin conjux consort]

    Conjugate —v. (-ting) 1 gram. List the different forms of (a verb). 2 a unite. B become fused. —adj. 1 joined together, paired. 2 fused. [latin jugum yoke]

    Conjugation n. Gram. System of verbal inflection.

    Conjunct adj. Joined together; combined; associated. [latin from juntus joined]

    Conjunction n. 1 joining; connection. 2 gram. Word used to connect clauses or sentences or words in the same clause (e.g. And, but, if). 3 combination (of events or circumstances). 4 apparent proximity to each other of two bodies in the

    events or circumstances). 4 apparent proximity to each other of two bodies in the solar system.

    Conjunctiva n. (pl. -s) mucous membrane covering the front of the eye and the lining inside the eyelids.

    Conjunctive adj. 1 serving to join. 2 gram. Of the nature of a conjunction.

    Conjunctivitis n. Inflammation of the conjunctiva.

    Conjure v. (-ring) 1 perform tricks which are seemingly magical, esp. By movements of the hands. 2 summon (a spirit or demon) to appear. 3 formal appeal solemnly to. conjure up 1 produce as if by magic. 2 evoke. [latin juro swear]

    Conjuror n. (also conjurer) performer of conjuring tricks.

    Conk1 v. (usu. Foll. By out) colloq. 1 (of a machine etc.) Break down. 2 (of a person) become exhausted and give up; fall asleep; faint; die. [origin unknown]

    Conk2 slang —n. 1 nose or head. 2 punch on the nose or head. —v. Hit on the nose or head. [perhaps = *conch]

    Conker n. 1 fruit of the horse chestnut. 2 (in pl.) Children’s game played with conkers on strings. [dial. Conker snail-shell]

    Con man n. Confidence trickster.

    Conn v. (brit. Con) (-nn-) direct the steering of (a ship). [originally cond from french: related to *conduct]

    Connect v. 1 (often foll. By to, with) join (two things, or one thing with another). 2 be joined or joinable. 3 (often foll. By with) associate mentally or practically. 4 (foll. By with) (of a train etc.) Be timed to arrive with another, so passengers can transfer. 5 put into communication by telephone. 6 a (usu. In passive; foll. By with) associate with others in relationships etc. B be meaningful or relevant. 7 colloq. Hit or strike effectively. [latin necto nex-bind]

    Connecting-rod n. Rod between the piston and crankpin etc. In an internal combustion engine.

    Connection n. (also connexion) 1 connecting or being connected. 2 point at which two things are connected. 3 link, esp. By telephone. 4 connecting train etc. 5 (often in pl.) Relative or associate, esp. One with influence. 6 relation of ideas.

    Connective adj. Connecting, esp. Of body tissue connecting, separating, etc., organs etc.

    Connector n. Thing that connects.

    Conning tower n. 1 superstructure of a submarine containing the periscope. 2 armoured wheel-house of a warship. [from *con4]

    Connive v. (-ving) 1 (foll. By at) disregard or tacitly consent to (a wrongdoing). 2 (usu. Foll. By with) conspire. connivance n. [latin conniveo shut the eyes]

    Connoisseur n. (often foll. By of, in) expert judge in matters of taste. [french connaître know]

    Connote v. (-ting) 1 (of a word etc.) Imply in addition to the literal or primary meaning. 2 mean, signify. connotation n. Connotative adj. [medieval latin: related to *note]

    Connubial adj. Of marriage or the relationship of husband and wife. [latin nubo marry]

    Conquer v. 1 a overcome and control militarily. B be victorious. 2 overcome by effort. conqueror n. [latin conquiro win]

    Conquest n. 1 conquering or being conquered. 2 a conquered territory. B something won. 3 person whose affection has been won.

    Consanguineous adj. Descended from the same ancestor; akin. consanguinity n. [latin sanguis blood]

    Conscience n. Moral sense of right and wrong, esp. As affecting behaviour. in all conscience colloq. By any reasonable standard. On one’s conscience causing one feelings of guilt. Prisoner of conscience person imprisoned by the state for his or her political or religious views. [latin: related to *science]

    her political or religious views. [latin: related to *science]

    Conscience money n. Sum paid to relieve one’s conscience, esp. Regarding a payment previously evaded.

    Conscience-stricken adj. (also conscience-struck) made uneasy by a bad conscience.

    Conscientious adj. Diligent and scrupulous. conscientiously adv. Conscientiousness n. [medieval latin: related to *conscience]

    Conscientious objector n. Person who for reasons of conscience objects to military service etc.

    Conscious —adj. 1 awake and aware of one’s surroundings and identity. 2 (usu. Foll. By of or that) aware, knowing. 3 (of actions, emotions, etc.) Realized or recognized by the doer; intentional. 4 (in comb.) Aware of; concerned with (fashion-conscious). —n. (prec. By the) the conscious mind. consciously adv. Consciousness n. [latin scio know]

    Conscript —v. Summon for compulsory state (esp. Military) service. —n. Conscripted person. conscription n. [latin scribo write]

    Consecrate v. (-ting) 1 make or declare sacred; dedicate formally to religious or divine purpose. 2 (foll. By to) devote to (a purpose). consecration n. [latin: related to *sacred]

    Consecutive adj. 1 a following continuously. B in an unbroken or logical order. 2 gram. Expressing a consequence. consecutively adv. [latin sequor secut-follow]

    Consensus n. (often foll. By of; often attrib.) General agreement or opinion. [latin: related to *consent]

    Consent —v. (often foll. By to) express willingness, give permission, agree. —n. Voluntary agreement, permission. [latin sentio feel]

    Consequence n. 1 result or effect of what has gone before. 2 importance. in consequence as a result. Take the consequences accept the results of one’s choice or action. [latin: related to *consecutive]

    Consequent adj. 1 (often foll. By on, upon) following as a result or consequence. 2 logically consistent.

    Consequential adj. 1 consequent; resulting indirectly. 2 important.

    Consequently adv. & conj. As a result; therefore.

    Conservancy n. (pl. -ies) 1 body controlling a port, river, etc., or preserving the environment. 2 official environmental conservation. [latin: related to *conserve]

    Conservation n. Preservation, esp. Of the natural environment. [latin: related to

    Conservation n. Preservation, esp. Of the natural environment. [latin: related to *conserve]

    Conservationist n. Supporter of environmental conservation.

    Conservation of energy n. Principle that the total quantity of energy in any system that is not subject to external action remains constant.

    Conservative —adj. 1 a averse to rapid change. B (of views, taste, etc.) Moderate, avoiding extremes. 2 (of an estimate etc.) Purposely low. 3 (usu. Conservative) of conservatives or the conservative party. 4 tending to conserve. —n. 1 conservative person. 2 (usu. Conservative) supporter or member of the conservative party. conservatism n. [latin: related to *conserve]

    Conservative party n. Political party promoting free enterprise and private ownership.

    Conservatoire n. (usu. European) school of music or other arts. [french from italian]

    Conservatory n. (pl. -ies) 1 greenhouse for tender plants, esp. Attached to a house. 2 esp. Us = conservatoire. [latin and italian: related to conserve]

    Conserve —v. (-ving) keep from harm or damage, esp. For later use. —n. Fresh fruit jam. [latin servo keep]

    Consider v. 1 contemplate mentally, esp. In order to reach a conclusion. 2 examine the merits of. 3 look attentively at. 4 take into account; show

    examine the merits of. 3 look attentively at. 4 take into account; show consideration or regard for. 5 (foll. By that) have the opinion. 6 regard as. 7 (as considered adj.) Formed after careful thought (a considered opinion). all things considered taking everything into account. [french from latin]

    Considerable adj. 1 much; a lot of (considerable pain). 2 notable, important. considerably adv.

    Considerate adj. Thoughtful towards others; careful not to cause hurt or inconvenience. considerately adv. [latin: related to *consider]

    Consideration n. 1 careful thought. 2 thoughtfulness for others; being considerate. 3 fact or thing taken into account. 4 compensation; payment or reward. in consideration of in return for; on account of. Take into consideration make allowance for. Under consideration being considered.

    Considering —prep. & conj. In view of; taking into consideration. —adv. Colloq. Taking everything into account (not so bad, considering).

    Consign v. (often foll. By to) 1 hand over; deliver. 2 assign; commit. 3 transmit or send (goods). consignee n. Consignor n. [latin: related to *sign]

    Consignment n. 1 consigning or being consigned. 2 goods consigned.

    Consist v. 1 (foll. By of) be composed; have as ingredients. 2 (foll. By in, of) have its essential features as specified. [latin sisto stop]

    Consistency n. (pl. -ies) 1 degree of density, firmness, or viscosity, esp. Of thick liquids. 2 being consistent. [latin: related to *consist]

    Consistent adj. 1 (usu. Foll. By with) compatible or in harmony. 2 (of a person) constant to the same principles. consistently adv. [latin: related to *consist]

    Consistory n. (pl. -ies) rc ch. Council of cardinals (with or without the pope). [latin: related to *consist]

    Consolation n. 1 consoling or being consoled. 2 consoling thing or person. consolatory adj.

    Consolation prize n. Prize given to a competitor who just fails to win a main prize.

    Console1 v. (-ling) comfort, esp. In grief or disappointment. [latin: related to *solace]

    Usage console is often confused with condole, which is different in that it is always followed by with.

    Console2 n. 1 panel for switches, controls, etc. 2 cabinet for a television etc. 3 cabinet with the keyboards and stops of an organ. 4 bracket supporting a shelf etc. [french]

    Consolidate v. (-ting) 1 make or become strong or secure. 2 combine (territories, companies, debts, etc.) Into one whole. consolidation n. Consolidator n. [latin: related to *solid]

    Consommé n. Clear soup from meat stock. [french]

    Consonance n. Agreement, harmony. [latin sono *sound1]

    Consonant —n. 1 speech sound in which the breath is at least partly obstructed, and which forms a syllable by combining with a vowel. 2 letter(s) representing this. —adj. (foll. By with, to) consistent; in agreement or harmony. consonantal adj.

    Consort1 —n. Wife or husband, esp. Of royalty. —v. 1 (usu. Foll. By with, together) keep company. 2 harmonize. [latin: related to *sort]

    Consort2 n. Mus. Small group of players, singers, or instruments. [var. Of *concert]

    Consortium n. (pl. -tia or -s) association, esp. Of several business companies. [latin: related to *consort1]

    Conspicuous adj. 1 clearly visible; attracting notice. 2 noteworthy. conspicuously adv. [latin specio look]

    Conspiracy n. (pl. -ies) 1 secret plan to commit a crime; plot. 2 conspiring. [latin:

    Conspiracy n. (pl. -ies) 1 secret plan to commit a crime; plot. 2 conspiring. [latin: related to *conspire]

    Conspiracy of silence n. Agreement to say nothing.

    Conspirator n. Person who takes part in a conspiracy. conspiratorial adj.

    Conspire v. (-ring) 1 combine secretly for an unlawful or harmful act. 2 (of events) seem to be working together. [latin spiro breathe]

    Constable n. 1 (also police constable) police officer of the lowest rank. 2 governor of a royal castle. [latin comes stabuli count of the stable]

    Constabulary n. (pl. -ies) police force. [medieval latin: related to *constable]

    Constancy n. Being unchanging and dependable; faithfulness. [latin: related to *constant]

    Constant —adj. 1 continuous (constant attention). 2 occurring frequently (constant complaints). 3 unchanging, faithful, dependable. —n. 1 anything that does not vary. 2 math. & physics quantity or number that remains the same. constantly adv. [latin sto stand]

    Constellation n. 1 group of fixed stars. 2 group of associated persons etc. [latin stella star]

    Consternation n. Anxiety, dismay. [latin sterno throw down]

    Constipate v. (-ting) (esp. As constipated adj.) Affect with constipation. [latin stipo cram]

    Constipation n. Difficulty in emptying the bowels.

    Constituency n. (pl. -ies) 1 body of voters who elect a representative. 2 area so represented.

    Constituent —adj. 1 composing or helping to make a whole. 2 able to make or change a constitution (constituent assembly). 3 electing. —n. 1 member of a constituency. 2 component part. [latin: related to *constitute]

    Constitute v. (-ting) 1 be the components or essence of; compose. 2 a amount to (this constitutes a warning). B formally establish (constitutes a precedent). 3 give legal or constitutional form to. [latin constituo establish]

    Constitution n. 1 act or method of constituting; composition. 2 body of fundamental principles by which a state or other body is governed. 3 person’s inherent state of health, strength, etc. [latin: related to *constitute]

    Constitutional —adj. 1 of or in line with the constitution. 2 inherent (constitutional weakness). —n. Walk taken regularly as healthy exercise. constitutionality n. Constitutionally adv.

    Constitutive adj. 1 able to form or appoint. 2 component. 3 essential.

    Constrain v. 1 compel. 2 a confine forcibly; imprison. B restrict severely. 3 (as constrained adj.) Forced, embarrassed. [latin stringo strict-tie]

    Constraint n. 1 constraining or being constrained. 2 restriction. 3 self-control.

    Constrict v. Make narrow or tight; compress. constriction n. Constrictive adj. [latin: related to *constrain]

    Constrictor n. 1 snake that kills by compressing. 2 muscle that contracts an organ or part of the body.

    Construct —v. 1 make by fitting parts together; build, form. 2 geom. Delineate (a figure). —n. Thing constructed, esp. By the mind. constructor n. [latin struo struct-build]

    Construction n. 1 constructing or being constructed. 2 thing constructed. 3 interpretation or explanation. 4 syntactical arrangement of words. constructional adj.

    Constructive adj. 1 a tending to form a basis for ideas. B helpful, positive. 2 derived by inference. constructively adv.

    Construe v. (-strues, -strued, -struing) 1 interpret. 2 (often foll. By with) combine (words) grammatically. 3 analyse the syntax of (a sentence). 4 translate literally.

    (words) grammatically. 3 analyse the syntax of (a sentence). 4 translate literally. [latin: related to *construct]

    Consubstantial adj. Theol. Of one substance. [church latin: related to *substance]

    Consubstantiation n. Theol. Presence of christ’s body and blood together with the bread and wine in the eucharist.

    Consul n. 1 official appointed by a state to protect its citizens and interests in a foreign city. 2 hist. Either of two chief magistrates in ancient rome. consular adj. Consulship n. [latin]

    Consulate n. 1 official building of a consul. 2 position of consul.

    Consult v. 1 seek information or advice from. 2 (often foll. By with) refer to a person for advice etc. 3 take into account (feelings, interests, etc.). consultative adj. [latin consulo consult-take counsel]

    Consultancy n. (pl. -ies) practice or position of a consultant.

    Consultant n. 1 person providing professional advice etc. 2 senior medical specialist in a hospital.

    Consultation n. 1 meeting arranged to consult. 2 act or process of consulting.

    Consume v. (-ming) 1 eat or drink. 2 destroy. 3 preoccupy, possess (consumed with rage). 4 use up. consumable adj. & n. [latin consumo -sumpt-]

    Consumer n. 1 person who consumes, esp. One who uses a product. 2 purchaser of goods or services.

    Consumer durable n. Durable household product (e.g. A radio or washing-machine).

    Consumer goods n.pl. Goods for consumers, not for producing other goods.

    Consumerism n. 1 protection of consumers’ interests. 2 (often derog.) Continual increase in the consumption of goods. consumerist adj.

    Consummate —v. (-ting) 1 complete; make perfect. 2 complete (a marriage) by sexual intercourse. —adj. Complete, perfect; fully skilled. consummation n. [latin summus utmost]

    Consumption n. 1 consuming or being consumed. 2 amount consumed. 3 use by a particular group (a film unsuitable for children’s consumption). 4 archaic tuberculosis of the lungs. 5 purchase and use of goods etc. [french: related to *consume]

    Consumptive archaic —adj. Suffering or tending to suffer from consumption. — n. Consumptive person. [medieval latin: related to *consumption]

    Cont. Abbr. 1 contents. 2 continued.

    Contact —n. 1 state or condition of touching, meeting, or communicating. 2 person who is or may be communicated with for information, assistance, etc. 3 connection for the passage of an electric current. 4 person likely to carry a contagious disease through being near an infected person. —v. 1 get in touch with (a person). 2 begin correspondence or personal dealings with. [latin tango tact-touch]

    Contact lens n. Small lens placed directly on the eyeball to correct vision.

    Contact print photographic print made by placing a negative directly on to printing paper and exposing it to light.

    Contagion n. 1 a spreading of disease by bodily contact. B contagious disease. 2 moral corruption. [related to *contact]

    Contagious adj. 1 a (of a person) likely to transmit a disease by contact. B (of a disease) transmitted in this way. 2 (of emotions etc.) Likely to spread (contagious enthusiasm).

    Contain v. 1 hold or be capable of holding within itself; include, comprise. 2 (of measures) be equal to (a gallon contains eight pints). 3 prevent from moving or extending. 4 control or restrain (feelings etc.). 5 (of a number) be divisible by (a factor) without a remainder. [latin teneo hold]

    Container n. 1 box, jar, etc., for holding things. 2 large metal box for transporting goods.

    Containerize v. (also -ise) (-zing or -sing) pack in or transport by container. containerization n.

    Containment n. Action or policy of preventing the expansion of a hostile country or influence.

    Contaminate v. (-ting) 1 pollute, esp. With radioactivity. 2 infect. contaminant n. Contamination n. Contaminator n. [latin tamen-related to tango touch]

    Contemplate v. (-ting) 1 survey visually or mentally. 2 regard (an event) as possible. 3 intend (he is not contemplating retiring). 4 meditate. contemplation n. [latin]

    Contemplative —adj. Of or given to (esp. Religious) contemplation; thoughtful. —n. Person devoted to religious contemplation. [latin: related to *contemplate]

    Contemporaneous adj. (usu. Foll. By with) existing or occurring at the same time. contemporaneity n. [latin: related to *com-, tempus time]

    Contemporary —adj. 1 living or occurring at the same time. 2 of approximately the same age. 3 modern in style or design. —n. (pl. -ies) contemporary person or thing. [medieval latin: related to *contemporaneous]

    Contempt n. 1 feeling that a person or thing deserves scorn or extreme reproach. 2 condition of being held in contempt. 3 (in full contempt of court) disobedience to or disrespect for a court of law. [latin temno tempt-despise]

    Contemptible adj. Deserving contempt. contemptibly adv.

    Contemptuous adj. (often foll. By of) feeling or showing contempt. contemptuously adv.

    Contend v. 1 (usu. Foll. By with) fight, argue. 2 compete. 3 assert, maintain. contender n. [latin: related to *tend1]

    Content1 —predic. Adj. 1 satisfied; adequately happy. 2 (foll. By to + infin.) Willing. —v. Make content; satisfy. —n. Contented state; satisfaction. to one’s heart’s content as much as one wishes. [latin: related to *contain]

    Content2 n. 1 (usu. In pl.) What is contained, esp. In a vessel, book, or house. 2 amount (of a constituent) contained (high fat content). 3 substance (of a speech etc.) As distinct from form. 4 capacity or volume. [medieval latin: related to *contain]

    Contented adj. Showing or feeling content; happy, satisfied. contentedly adv. Contentedness n.

    Contention n. 1 dispute or argument; rivalry. 2 point contended for in an argument. [latin: related to *contend]

    Contentious adj. 1 quarrelsome. 2 likely to cause an argument.

    Contentment n. Satisfied state; tranquil happiness.

    Contest —n. 1 contending; strife. 2 a competition. —v. 1 dispute (a decision etc.). 2 contend or compete for; compete in (an election). [latin testis witness]

    Contestant n. Person taking part in a contest.

    Context n. 1 parts that surround a word or passage and clarify its meaning. 2 relevant circumstances. in (or out of) context with (or without) the surrounding words or circumstances. contextual adj. Contextualize v. (also -ise) (-zing or -sing). [latin: related to *text]

    Contiguous adj. (usu. Foll. By with, to) touching; in contact. contiguity n. [latin: related to *contact]

    Continent1 n. 1 any of the main continuous expanses of land (europe, asia, africa, n. And s. America, australia, antarctica). 2 (the continent) mainland of europe as distinct from the british isles. [latin: related to *contain]

    Continent2 adj. 1 able to control one’s bowels and bladder. 2 exercising self-restraint, esp. Sexually. continence n. [latin: related to *contain]

    Continental adj. 1 of or characteristic of a continent. 2 (continental) of or characteristic of mainland europe.

    Continental breakfast n. Light breakfast of coffee, rolls, etc.

    Continental quilt n. Duvet.

    Continental shelf n. Area of shallow seabed bordering a continent.

    Contingency n. (pl. -ies) 1 event that may or may not occur. 2 something dependent on another uncertain event. [latin: related to *contingent]

    Contingent —adj. 1 (usu. Foll. By on, upon) conditional, dependent (on an uncertain event or circumstance). 2 a that may or may not occur. B fortuitous. — n. 1 body (of troops, ships, etc.) Forming part of a larger group. 2 group of people sharing an interest, origin, etc. (the oxford contingent). [latin: related to *contact]

    Continual adj. Constantly or frequently recurring; always happening. continually adv. [french: related to *continue]

    Usage continual is often confused with continuous. Continual is used of something that happens very frequently (e.g. There were continual interruptions), while continuous is used of something that happens without a pause (e.g. Continuous rain all day).

    Continuance n. 1 continuing in existence or operation. 2 duration.

    Continuation n. 1 continuing or being continued. 2 part that continues something else.

    Continue v. (-ues, -ued, -uing) 1 maintain, not stop (an action etc.) (continued to read, reading). 2 (also absol.) Resume or prolong (a narrative, journey, etc.). 3 be a sequel to. 4 remain, stay (will continue as manager; weather continued fine). [latin: related to *contain]

    Continuity n. (pl. -ies) 1 state of being continuous. 2 a logical sequence. 3 detailed scenario of a film or broadcast. 4 linking of broadcast items.

    Continuo n. (pl. -s) mus. Accompaniment providing a bass line, played usu. On a keyboard instrument. [italian]

    Continuous adj. Uninterrupted, connected throughout in space or time. continuously adv. [latin: related to *contain]

    Usage see note at continual.

    Continuous assessment n. Evaluation of a pupil’s progress throughout a course of study.

    Continuum n. (pl. -nua) thing having a continuous structure. [latin: related to *continuous]

    Contort v. Twist or force out of its normal shape. contortion n. [latin torqueo tort-twist]

    Contortionist n. Entertainer who adopts contorted postures.

    Contour —n. 1 outline. 2 (in full contour line) line on a map joining points of equal altitude. —v. Mark with contour lines. [italian contornare draw in outline]

    Contra n. (pl. -s) member of a counter-revolutionary force in nicaragua. [abbreviation of spanish contrarevolucionario counter-revolutionary]

    Contra-comb. Form against, opposite. [latin]

    Contraband —n. 1 smuggled goods. 2 smuggling; illegal trade. —adj. Forbidden to be imported or exported. [spanish from italian]

    Contraception n. Prevention of pregnancy; use of contraceptives. [from contra-, conception]

    Contraceptive —adj. Preventing pregnancy. —n. Contraceptive device or drug.

    Contract —n. 1 written or spoken agreement, esp. One enforceable by law. 2 document recording this. —v. 1 make or become smaller. 2 a (usu. Foll. By with) make a contract. B (often foll. By out) arrange (work) to be done by

    with) make a contract. B (often foll. By out) arrange (work) to be done by contract. 3 become affected by (a disease). 4 enter into (marriage). 5 incur (a debt etc.). 6 draw together (the muscles, brow, etc.), or be drawn together. contract in (or out) choose to enter (or not to enter) a scheme or commitment. [latin contractus: related to *tract1]

    Contractable adj. (of a disease) that can be contracted.

    Contract bridge n. Bridge in which only tricks bid and won count towards the game.

    Contractible adj. That can be shrunk or drawn together.

    Contractile adj. Capable of or producing contraction. contractility n.

    Contraction n. 1 contracting or being contracted. 2 med. Shortening of the uterine muscles during childbirth. 3 shrinking, diminution. 4 shortened form of a word or words (e.g. He’s).

    Contractor n. Person who makes a contract, esp. To conduct building operations.

    Contractual adj. Of or in the nature of a contract. contractually adv.

    Contradict v. 1 deny (a statement). 2 deny a statement made by (a person). 3 be in opposition to or in conflict with. contradiction n. Contradictory adj. [latin dico dict-say]

    Contradistinction n. Distinction made by contrasting.

    Contraflow n. Transfer of traffic from its usual half of the road to the other half by borrowing one or more of the other half’s lanes.

    Contralto n. (pl. -s) 1 lowest female singing-voice. 2 singer with this voice. [italian: related to contra-, alto]

    Contraption n. Machine or device, esp. A strange or cumbersome one. [origin unknown]

    Contrapuntal adj. Mus. Of or in counterpoint. contrapuntally adv. [italian]

    Contrariwise adv. 1 on the other hand. 2 in the opposite way. 3 perversely.

    Contrary —adj. 1 (usu. Foll. By to) opposed in nature or tendency. 2 perverse, self-willed. 3 (of a wind) unfavourable, impeding. 4 opposite in position or direction. —n. (prec. By the) the opposite. —adv. (foll. By to) in opposition or contrast (contrary to expectations). on the contrary expressing denial of what has just been implied or stated. To the contrary to the opposite effect. contrariness n. [latin: related to *contra-]

    Contrast —n. 1 a juxtaposition or comparison showing differences. B difference so revealed. 2 (often foll. By to) thing or person having different qualities. 3 degree of difference between the tones in a television picture or photograph. —v. (often foll. By with) 1 set together so as to reveal a contrast. 2 have or show a

    (often foll. By with) 1 set together so as to reveal a contrast. 2 have or show a contrast. [italian from latin sto stand]

    Contravene v. (-ning) 1 infringe (a law etc.). 2 (of things) conflict with. contravention n. [latin venio come]

    Contretemps n. (pl. Same) 1 unfortunate occurrence. 2 unexpected mishap. [french]

    Contribute v. (-ting) (often foll. By to) 1 give (time, money, etc.) Towards a common purpose. 2 help to bring about a result etc. 3 (also absol.) Supply (an article etc.) For publication with others. contributor n. [latin: related to *tribute]

    Usage the second pronunciation, stressed on the first syllable, is considered incorrect by some people.

    Contribution n. 1 act of contributing. 2 thing contributed.

    Contributory adj. 1 that contributes. 2 using contributions.

    Contrite adj. Penitent, feeling great guilt. contritely adv. Contrition n. [latin: related to *trite]

    Contrivance n. 1 something contrived, esp. A plan or mechanical device. 2 act of contriving.

    Contrive v. (-ving) 1 devise; plan or make resourcefully or with skill. 2 (often foll. By to + infin.) Manage. [french from latin]

    Contrived adj. Artificial, forced.

    Control —n. 1 power of directing. 2 power of restraining, esp. Self-restraint. 3 means of restraint. 4 (usu. In pl.) Means of regulating. 5 (usu. In pl.) Switches and other devices by which a machine is controlled. 6 place where something is controlled or verified. 7 standard of comparison for checking the results of an experiment. —v. (-ll-) 1 have control of, regulate. 2 hold in check. 3 check, verify. in control (often foll. By of) directing an activity. Out of control no longer manageable. Under control being controlled; in order. controllable adj. [medieval latin, = keep copy of accounts: related to contra-, roll]

    Controller n. 1 person or thing that controls. 2 person in charge of expenditure.

    Control tower n. Tall building at an airport etc. From which air traffic is controlled.

    Controversial adj. Causing or subject to controversy. [latin: related to *controvert]

    Controversy n. (pl. -ies) prolonged argument or dispute. [latin: related to *controvert]

    Usage the second pronunciation, stressed on the second syllable, is considered

    Usage the second pronunciation, stressed on the second syllable, is considered incorrect by some people.

    Controvert v. Dispute, deny. [latin verto vers-turn]

    Contumacious adj. Stubbornly or wilfully disobedient. contumacy n. (pl. -ies). [latin tumeo swell]

    Contumely n. 1 insolent language or treatment. 2 disgrace. [latin: related to *contumacious]

    Contuse v. (-sing) bruise. contusion n. [latin tundo tus-thump]

    Conundrum n. 1 riddle, esp. One with a pun in its answer. 2 hard question. [origin unknown]

    Conurbation n. Extended urban area, esp. Consisting of several towns and merging suburbs. [latin urbs city]

    Convalesce v. (-cing) recover health after illness. [latin valeo be well]

    Convalescent —adj. Recovering from an illness. —n. Convalescent person. convalescence n.

    Convection n. Heat transfer by upward movement of a heated and less dense medium. [latin veho vect-carry]

    medium. [latin veho vect-carry]

    Convector n. Heating appliance that circulates warm air by convection.

    Convene v. (-ning) 1 summon or arrange (a meeting etc.). 2 assemble. [latin venio vent-come]

    Convener n. (also convenor) 1 person who convenes a meeting. 2 senior trade union official at a workplace.

    Convenience n. 1 state of being convenient; suitability. 2 useful thing. 3 advantage. 4 lavatory, esp. A public one. at one’s convenience at a time or place that suits one. [latin: related to *convene]

    Convenience food n. Food requiring little preparation.

    Convenient adj. 1 a serving one’s comfort or interests. B suitable. C free of trouble or difficulty. 2 available or occurring at a suitable time or place. 3 well situated (convenient for the shops). conveniently adv.

    Convent n. 1 religious community, esp. Of nuns, under vows. 2 premises occupied by this. [latin: related to *convene]

    Conventicle n. Esp. Hist. Secret or unlawful religious meeting, esp. Of dissenters. [latin: related to *convene]

    Convention n. 1 a general agreement on social behaviour etc. By implicit majority consent. B a custom or customary practice. 2 conference of people with a common interest. 3 a formal agreement, esp. Between states. [latin: related to *convene]

    Conventional adj. 1 depending on or according with convention. 2 (of a person) bound by social conventions. 3 usual; of agreed significance. 4 not spontaneous or sincere or original. 5 (of weapons etc.) Non-nuclear. conventionalism n. Conventionality n. (pl. -ies). Conventionally adv.

    Converge v. (-ging) 1 come together or towards the same point. 2 (foll. By on, upon) approach from different directions. convergence n. Convergent adj. [latin vergo incline]

    Conversant adj. (foll. By with) well acquainted with. [french: related to *converse1]

    Conversation n. 1 informal spoken communication. 2 instance of this. [latin: related to *converse1]

    Conversational adj. 1 of or in conversation. 2 colloquial. conversationally adv.

    Conversationalist n. Person good at or fond of conversation.

    Converse1 v. (-sing) (often foll. By with) talk. [latin: related to *convert]

    Converse2 —adj. Opposite, contrary, reversed. —n. Something, esp. A statement or proposition, that is opposite or reversed. conversely adv. [latin: related to *convert]

    Conversion n. 1 converting or being converted. 2 converted building or part of this. [latin: related to *convert]

    Convert —v. 1 (usu. Foll. By into) change in form or function. 2 cause (a person) to change belief etc. 3 change (moneys etc.) Into others of a different kind. 4 make structural alterations in (a building) for a new purpose. 5 (also absol.) Rugby score extra points from (a try) by a successful kick at the goal. — n. (often foll. By to) person converted to a different belief etc. [latin verto vers-turn]

    Convertible —adj. Able to be converted. —n. Car with a folding or detachable roof. convertibility n. [latin: related to *convert]

    Convex adj. Curved like the exterior of a circle or sphere. convexity n. [latin]

    Convey v. 1 transport or carry (goods, passengers, etc.). 2 communicate (an idea, meaning, etc.). 3 transfer the title to (a property). 4 transmit (sound etc.). conveyable adj. [latin via way]

    Conveyance n. 1 conveying or being conveyed. 2 means of transport; vehicle. 3 law a transfer of property. B document effecting this. conveyancer n. (in sense 3). Conveyancing n. (in sense 3).

    Conveyor n. (also conveyer) person or thing that conveys.

    Conveyor belt n. Endless moving belt for conveying articles, esp. In a factory.

    Convict —v. 1 (often foll. By of) prove to be guilty (of a crime etc.). 2 declare guilty by a legal process. —n. Chiefly hist. Person serving a prison sentence. [latin vinco vict-conquer]

    Conviction n. 1 convicting or being convicted. 2 a being convinced. B firm belief. [latin: related to *convict]

    Convince v. (-cing) firmly persuade. convincible adj. Convincing adj. Convincingly adv. [latin: related to *convict]

    Convivial adj. Fond of good company; sociable and lively. conviviality n. [latin vivo live]

    Convocation n. 1 convoking or being convoked. 2 large formal gathering. [latin: related to *convoke]

    Convoke v. (-king) formal call together; summon to assemble. [latin voco call]

    Convoluted adj. 1 coiled, twisted. 2 complex. [latin volvo volut-roll]

    Convolution n. 1 coiling. 2 coil or twist. 3 complexity. 4 sinuous fold in the surface of the brain.

    Convolvulus n. (pl. -luses) twining plant, esp. Bindweed. [latin]

    Convoy —n. Group of ships, vehicles, etc., travelling together or under escort. —v. Escort, esp. With armed force. in convoy as a group. [french: related to *convey]

    Convulse v. (-sing) 1 (usu. In passive) affect with convulsions. 2 cause to laugh uncontrollably. convulsive adj. Convulsively adv. [latin vello vuls-pull]

    Convulsion n. 1 (usu. In pl.) Violent irregular motion of the limbs or body caused by involuntary contraction of muscles. 2 violent disturbance. 3 (in pl.) Uncontrollable laughter.

    Cony n. (also coney) rabbit fur. [latin cuniculus]

    Coo —n. Soft murmuring sound as of a dove. —v. (coos, cooed) 1 emit a coo. 2 talk or say in a soft or amorous voice. —int. Slang expressing surprise or disbelief. [imitative]

    Cooee n. & int. Colloq. Call used to attract attention. [imitative]

    Cook —v. 1 prepare (food) by heating it. 2 (of food) undergo cooking. 3 colloq. Falsify (accounts etc.). 4 (as be cooking) colloq. Be happening or about to

    Falsify (accounts etc.). 4 (as be cooking) colloq. Be happening or about to happen. —n. Person who cooks, esp. Professionally or in a specified way (a good cook). cook up colloq. Concoct (a story, excuse, etc.). [latin coquus]

    Cookbook n. Us cookery book.

    Cook-chill attrib. Adj. (of food, meals, etc.) Sold in pre-cooked and refrigerated form.

    Cooker n. 1 appliance or vessel for cooking food. 2 fruit (esp. An apple) suitable for cooking.

    Cookery n. Art or practice of cooking.

    Cookery book n. Book containing recipes.

    Cookie n. Us 1 sweet biscuit. 2 colloq. Person (a tough cookie). [dutch koekje]

    Cool —adj. 1 of or at a fairly low temperature, fairly cold. 2 suggesting or achieving coolness. 3 calm, unexcited. 4 lacking enthusiasm. 5 unfriendly (a cool reception). 6 calmly audacious. 7 (prec. By a) colloq. At least (cost a cool thousand). 8 slang esp. Us marvellous. —n. 1 coolness. 2 cool air or place. 3 slang calmness, composure. —v. (often foll. By down, off) make or become cool. cool it slang relax, calm down. coolly adv. Coolness n. [old english]

    Coolant n. Cooling agent, esp. Fluid.

    Coolant n. Cooling agent, esp. Fluid.

    Cool-bag n. (also cool-box) insulated container for keeping food cool.

    Cooler n. 1 vessel in which a thing is cooled. 2 us refrigerator. 3 slang prison cell.

    Coolie n. Unskilled native labourer in eastern countries. [perhaps from kuli, tribe in india]

    Cooling-off period n. Interval to allow for a change of mind.

    Cooling tower n. Tall structure for cooling hot water before reuse, esp. In industry.

    Coomb n. (also combe) 1 valley on the side of a hill. 2 short valley running up from the coast. [old english]

    Coon n. 1 us racoon. 2 slang offens. Black. [abbreviation]

    Coop —n. Cage for keeping poultry. —v. (often foll. By up, in) confine (a person). [latin cupa cask]

    Co-op n. Colloq. Cooperative society or shop. [abbreviation]

    Cooper n. Maker or repairer of casks, barrels, etc. [low german or dutch: related to *coop]

    Cooperate v. (also cooperate) (-ting) 1 (often foll. By with) work or act together. 2 be helpful and do as one is asked. cooperation n. [related to *co-]

    Cooperative (also cooperative) —adj. 1 willing to cooperate. 2 of or characterized by cooperation. 3 (of a business) owned and run jointly by its members, with profits shared. —n. Cooperative farm, society, or business.

    Co-opt v. Appoint to membership of a body by invitation of the existing members. cooption n. Cooptive adj. [latin coopto from opto choose]

    Coordinate (also coordinate) —v. (-ting) 1 cause (parts, movements, etc.) To function together efficiently. 2 work or act together effectively. —adj. Equal in rank or importance. —n. 1 math. Each of a system of values used to fix the position of a point, line, or plane. 2 (in pl.) Matching items of clothing. coordination n. Coordinator n. [latin ordino: related to *order]

    Coot n. 1 black aquatic bird with a white horny plate on its forehead. 2 colloq. Stupid person. [probably low german]

    Cop slang —n. 1 police officer. 2 capture or arrest (it’s a fair cop). —v. (-pp-) 1 catch or arrest (an offender). 2 receive, suffer. 3 take, seize. cop it get into trouble; be punished. Cop out 1 withdraw; give up. 2 go back on a promise. Not much cop of little value or use. [french caper seize]

    Copal n. Resin of a tropical tree, used for varnish. [spanish from aztec]

    Copartner n. Partner or associate. copartnership n.

    Cope1 v. (-ping) (often foll. By with) deal effectively or contend; manage. [french: related to *coup]

    Cope2 —n. Priest’s long cloaklike vestment. —v. (-ping) cover with a cope or coping. [latin cappa *cap]

    Copeck n. (also kopek, kopeck) russian coin worth one-hundredth of a rouble. [russian kopeika]

    Copernican system n. Theory that the planets (including the earth) move round the sun. [copernicus, name of an astronomer]

    Copier n. Machine that copies (esp. Documents).

    Copilot n. Second pilot in an aircraft.

    Coping n. Top (usu. Sloping) course of masonry in a wall. [from *cope2]

    Coping saw n. D-shaped saw for cutting curves in wood. [from *cope1]

    Coping-stone n. Stone used in coping.

    Copious adj. 1 abundant. 2 producing much. copiously adv. [latin copia plenty]

    Cop-out n. Cowardly evasion.

    Copper1 —n. 1 malleable red-brown metallic element. 2 bronze coin. 3 large metal vessel for boiling esp. Laundry. —adj. Made of or coloured like copper. —v. Cover with copper. [latin cuprum]

    Copper2 n. Slang police officer. [from *cop]

    Copper beech n. Variety of beech with copper-coloured leaves.

    Copper-bottomed adj. 1 having a bottom sheathed with copper. 2 genuine or reliable.

    Copperhead n. Venomous n. American or australian snake.

    Copperplate n. 1 a polished copper plate for engraving or etching. B print made from this. 2 ornate style of handwriting.

    Coppice n. Area of undergrowth and small trees. [medieval latin: related to *coup]

    Copra n. Dried coconut-kernels. [portuguese from malayalam]

    Copse n. = *coppice. [shortened form]

    Copt n. 1 native egyptian in the hellenistic and roman periods. 2 native christian of the independent egyptian church. [french from arabic]

    Coptic —n. Language of the copts. —adj. Of the copts.

    Copula n. (pl. -s) connecting word, esp. Part of the verb be connecting subject and predicate. [latin]

    Copulate v. (-ting) (often foll. By with) (esp. Of animals) have sexual intercourse. copulation n.

    Copy —n. (pl. -ies) 1 thing made to imitate another. 2 single specimen of a publication or issue. 3 material to be printed, esp. Regarded as good etc. Reading matter (the crisis will make exciting copy). —v. (-ies, -ied) 1 make a copy of. 2 imitate, do the same as. [latin copia transcript]

    Copybook n. 1 book containing models of handwriting for learners to imitate. 2 (attrib.) A tritely conventional. B exemplary.

    Copycat n. Colloq. Person who copies another, esp. Slavishly.

    Copyist n. Person who makes (esp. Written) copies.

    Copyright —n. Exclusive legal right to print, publish, perform, film, or record material. —adj. Protected by copyright. —v. Secure copyright for (material).

    Copy-typist n. Typist who types from documents rather than dictation.

    Copywriter n. Person who writes or prepares advertising copy for publication.

    Coq au vin n. Casserole of chicken pieces in wine. [french]

    Coquette n. Woman who flirts. coquetry n. (pl. -ies). Coquettish adj. [french diminutive: related to *cock1]

    Cor int. Slang expressing surprise etc. [corruption of god]

    Cor-see *com-.

    Coracle n. Small boat of wickerwork covered with watertight material. [welsh]

    Coral —n. Hard red, pink, or white calcareous substance secreted by marine polyps for support and habitation. —adj. 1 red or pink, like coral. 2 made of coral. [greek korallion]

    Coral island n. (also coral reef) island (or reef) formed by the growth of coral.

    Coralline —n. Seaweed with a hard jointed stem. —adj. Of or like coral. [french and italian: related to *coral]

    Cor anglais n. (pl. Cors anglais) alto woodwind instrument of the oboe family. [french]

    Corbel n. Projection of stone, timber, etc., jutting out from a wall to support a weight. corbelled adj. [latin corvus crow]

    Cord —n. 1 a flexible material like thick string, made from twisted strands. B piece of this. 2 similar structure in the body. 3 a ribbed fabric, esp. Corduroy. B (in pl.) Corduroy trousers. 4 electric flex. —v. 1 fasten or bind with cord. 2 (as corded adj.) (of cloth) ribbed. [greek khorde string]

    Cordial —adj. 1 heartfelt. 2 friendly. —n. Fruit-flavoured drink. cordiality n. Cordially adv. [latin cor cord-heart]

    Cordite n. Smokeless explosive. [from *cord, because of its appearance]

    Cordless adj. (of a hand-held electrical device) usable without a power cable because working from an internal source of energy or battery.

    Cordon —n. 1 line or circle of police, soldiers, guards, etc., esp. Preventing access. 2 ornamental cord or braid. 3 fruit-tree trained to grow as a single stem. —v. (often foll. By off) enclose or separate with a cordon of police etc. [italian and french: related to *cord]

    Cordon bleu cookery —adj. Of the highest class. —n. Cook of this class. [french]

    Cordon sanitaire n. 1 guarded line between infected and uninfected districts. 2 measure designed to prevent the spread of undesirable influences.

    Corduroy n. 1 thick cotton fabric with velvety ribs. 2 (in pl.) Corduroy trousers. [cord = ribbed fabric]

    Core —n. 1 horny central part of certain fruits, containing the seeds. 2 central or most important part of anything (also attrib.: core curriculum). 3 inner central region of the earth. 4 part of a nuclear reactor containing fissile material. 5 hist. Structural unit in a computer, storing one bit of data (see *bit4). 6 inner strand of an electric cable. 7 piece of soft iron forming the centre of an electromagnet or induction coil. —v. (-ring) remove the core from. corer n. [origin unknown]

    Co-respondent n. Person cited in a divorce case as having committed adultery with the respondent.

    Corgi n. (pl. -s) dog of a short-legged breed with a foxlike head. [welsh]

    Coriander n. 1 aromatic plant. 2 its seeds used for flavouring. [greek koriannon]

    Corinthian adj. 1 of ancient corinth in southern greece. 2 archit. Of the order characterized by ornate decoration and acanthus leaves. [latin from greek]

    Cork —n. 1 buoyant light-brown bark of a s. European oak. 2 bottle-stopper of cork etc. 3 float of cork. 4 (attrib.) Made of cork. —v. (often foll. By up) 1 stop or confine. 2 restrain (feelings etc.). [spanish alcorque]

    Corkage n. Charge made by a restaurant etc. For serving a customer’s own wine etc.

    Corked adj. 1 stopped with a cork. 2 (of wine) spoilt by a decayed cork.

    Corker n. Slang excellent person or thing.

    Corkscrew —n. 1 spiral device for extracting corks from bottles. 2 (often attrib.) Thing with a spiral shape. —v. Move spirally; twist.

    Corm n. Underground swollen stem base of some plants. [greek kormos lopped tree-trunk]

    Cormorant n. Diving sea bird with black plumage. [latin corvus marinus sea-raven]

    Corn1 n. 1 a cereal before or after harvesting, esp. The chief crop of a region. B grain or seed of a cereal plant. 2 colloq. Something corny or trite. [old english]

    Corn2 n. Small tender area of horny skin, esp. On the toe. [latin cornu horn]

    Corn-cob n. Cylindrical centre of a maize ear on which the grains grow.

    Corncrake n. Rail inhabiting grassland and nesting on the ground.

    Corn dolly n. Figure of plaited straw.

    Cornea n. Transparent circular part of the front of the eyeball. corneal adj. [medieval latin: related to *corn2]

    Corned adj. (esp. Of beef) preserved in salt or brine. [from *corn1]

    Cornelian n. (also carnelian) dull red variety of chalcedony. [french]

    Corner —n. 1 place where converging sides or edges meet. 2 projecting angle, esp. Where two streets meet. 3 internal space or recess formed by the meeting of two sides, esp. Of a room. 4 difficult position, esp. One with no escape. 5

    two sides, esp. Of a room. 4 difficult position, esp. One with no escape. 5 secluded place. 6 region or quarter, esp. A remote one. 7 action or result of buying or controlling the whole stock of a commodity. 8 boxing & wrestling corner of the ring where a contestant rests between rounds. 9 football & hockey free kick or hit from the corner of a pitch. —v. 1 force into a difficult or inescapable position. 2 establish a corner in (a commodity). 3 (esp. Of or in a vehicle) go round a corner. [latin: related to *corn2]

    Cornerstone n. 1 a stone in the projecting angle of a wall. B foundation-stone. 2 indispensable part or basis.

    Cornet n. 1 brass instrument resembling a trumpet but shorter and wider. 2 conical wafer for holding ice-cream. cornetist n. (also cornettist). [latin cornu: related to *corn2]

    Cornflake n. 1 (in pl.) Breakfast cereal of toasted maize flakes. 2 flake of this cereal.

    Cornflour n. Fine-ground flour, esp. Of maize or rice.

    Cornflower n. Plant with deep-blue flowers originally growing among corn.

    Cornice n. Ornamental moulding, esp. Round a room just below the ceiling or as the topmost part of an entablature. [french from italian]

    Cornish —adj. Of cornwall. —n. Celtic language of cornwall.

    Cornish pasty n. Pastry envelope containing meat and vegetables.

    Corn on the cob n. Maize cooked and eaten from the corn-cob.

    Cornucopia n. 1 horn overflowing with flowers, fruit, and corn, as a symbol of plenty. 2 abundant supply. [latin: related to corn2, copious]

    Corny adj. (-ier, -iest) colloq. 1 banal. 2 feebly humorous. 3 sentimental. cornily adv. Corniness n. [from *corn1]

    Corolla n. Whorl of petals forming the inner envelope of a flower. [latin diminutive of *corona]

    Corollary n. (pl. -ies) 1 proposition that follows from one already proved. 2 (often foll. By of) natural consequence. [latin, = gratuity: related to *corolla]

    Corona n. (pl. -nae) 1 a halo round the sun or moon. B gaseous envelope of the sun, seen as an area of light around the moon during a total solar eclipse. 2 anat. Crownlike structure. 3 crownlike outgrowth from the inner side of a corolla. 4 glow around an electric conductor. coronal adj. [latin, = crown]

    Coronary —adj. Anat. Resembling or encircling like a crown. —n. (pl. -ies) = *coronary thrombosis. [latin: related to *corona]

    Coronary artery n. Artery supplying blood to the heart.

    Coronary thrombosis n. Blockage caused by a blood clot in a coronary artery.

    Coronation n. Ceremony of crowning a sovereign or consort. [medieval latin: related to *corona]

    Coroner n. Official holding inquests on deaths thought to be violent or accidental. [anglo-french: related to *crown]

    Coronet n. 1 small crown. 2 circlet of precious materials, esp. As a headdress. [french diminutive: related to *crown]

    Corpora pl. Of *corpus.

    Corporal1 n. Non-commissioned army or air-force officer ranking next below sergeant. [french from italian]

    Corporal2 adj. Of the human body. corporality n. [latin corpus body]

    Corporal punishment n. Physical punishment.

    Corporate adj. 1 forming a corporation. 2 of, belonging to, or united in a group. [latin: related to *corporal2]

    Corporation n. 1 group of people authorized to act as an individual, esp. In business. 2 municipal authorities of a borough, town, or city. 3 joc. Large stomach.

    Corporative adj. 1 of a corporation. 2 governed by or organized in corporations.

    Corporeal adj. Bodily, physical, material. corporeality n. Corporeally adv. [latin: related to *corporal2]

    Corps n. (pl. Corps) 1 a body of troops with special duties (intelligence corps). B main subdivision of an army in the field. 2 body of people engaged in a special activity (diplomatic corps). [french: related to *corpse]

    Corps de ballet n. Group of ensemble dancers in a ballet. [french]

    Corpse n. Dead body. [latin: related to *corpus]

    Corpulent adj. Physically bulky, fat. corpulence n. [latin: related to *corpus]

    Corpus n. (pl. -pora) body or collection of writings, texts, etc. [latin, = body]

    Corpuscle n. Minute body or cell in an organism, esp. (in pl.) The red or white cells in the blood of vertebrates. corpuscular adj. [latin diminutive of *corpus]

    Corral —n. 1 us pen for cattle, horses, etc. 2 enclosure for capturing wild animals. —v. (-ll-) put or keep in a corral. [spanish and portuguese: related to *kraal]

    Correct —adj. 1 true, accurate. 2 proper, in accordance with taste or a standard. —v. 1 set right; amend. 2 mark errors in. 3 substitute a right thing for (a wrong one). 4 a admonish (a person). B punish (a person or fault). 5 counteract (a harmful quality). 6 adjust (an instrument etc.). correctly adv. Correctness n. Corrector n. [latin rego rect-guide]

    Correction n. 1 correcting or being corrected. 2 thing substituted for what is wrong. 3 archaic punishment. correctional adj. [latin: related to *correct]

    Correctitude n. Consciously correct behaviour. [from *correct, *rectitude]

    Corrective —adj. Serving to correct or counteract something harmful. —n. Corrective measure or thing. [latin: related to *correct]

    Correlate —v. (-ting) (usu. Foll. By with, to) have or bring into a mutual relation or dependence. —n. Each of two related or complementary things. correlation n. [medieval latin correlatio]

    Correlative —adj. 1 (often foll. By with, to) having a mutual relation. 2 (of words) corresponding to each other and used together (as neither and nor). —n. Correlative word or thing.

    Correspond v. 1 a (usu. Foll. By to) be similar or equivalent. B (usu. Foll. By

    Correspond v. 1 a (usu. Foll. By to) be similar or equivalent. B (usu. Foll. By with, to) be in agreement, not contradict. 2 (usu. Foll. By with) exchange letters. correspondingly adv. [french from medieval latin]

    Correspondence n. 1 agreement or similarity. 2 a exchange of letters. B letters.

    Correspondence course n. Course of study conducted by post.

    Correspondent n. 1 person who writes letters. 2 person employed to write or report for a newspaper or for broadcasting etc.

    Corridor n. 1 passage giving access into rooms. 2 passage in a train giving access into compartments. 3 strip of territory of one state passing through that of another. 4 route which an aircraft must follow, esp. Over a foreign country. [french from italian]

    Corridors of power n.pl. Places where covert influence is said to be exerted in government.

    Corrigendum n. (pl. -da) error to be corrected. [latin corrigo: related to *correct]

    Corrigible adj. 1 able to be corrected. 2 submissive. corrigibly adv. [medieval latin: related to *corrigendum]

    Corroborate v. (-ting) confirm or give support to (a statement or belief etc.). corroboration n. Corroborative adj. Corroborator n. [latin robur strength]

    Corrode v. (-ding) 1 a wear away, esp. By chemical action. B decay. 2 destroy gradually. [latin rodo ros-gnaw]

    Corrosion n. 1 corroding or being corroded. 2 corroded area. corrosive adj. & n.

    Corrugate v. (-ting) (esp. As corrugated adj.) Form into alternate ridges and grooves, esp. To strengthen (corrugated iron). corrugation n. [latin ruga wrinkle]

    Corrupt —adj. 1 dishonest, esp. Using bribery. 2 immoral; wicked. 3 (of a text etc.) Made unreliable by errors or alterations. —v. Make or become corrupt. corruptible adj. Corruptibility n. Corruption n. Corruptive adj. Corruptly adv. Corruptness n. [latin rumpo rupt-break]

    Corsage n. Small bouquet worn by women. [french: related to *corpse]

    Corsair n. 1 pirate ship. 2 pirate. [french: related to *course]

    Corselette n. Combined corset and bra. [french corslet armour covering trunk]

    Corset n. Closely-fitting undergarment worn to shape the body or to support it after injury. corsetry n. [french diminutive: related to *corpse]

    Cortège n. Procession, esp. For a funeral. [french]

    Cortex n. (pl. -tices) outer part of an organ, esp. Of the brain or kidneys. cortical adj. [latin, = bark]

    Cortisone n. Hormone used esp. In treating inflammation and allergy. [abbreviation of chemical name]

    Corundum n. Extremely hard crystallized alumina, used esp. As an abrasive. [tamil from sanskrit]

    Coruscate v. (-ting) sparkle. coruscation n. [latin]

    Corvette n. 1 small naval escort-vessel. 2 hist. Warship with one tier of guns. [french from dutch]

    Corymb n. Flat-topped cluster of flowers with the outer flower-stalks proportionally longer. [latin from greek]

    Cos1 n. Lettuce with crisp narrow leaves. [kos, greek island]

    Cos2 abbr. Cosine.

    Cos3 conj. Colloq. Because. [abbreviation]

    Cosec abbr. Cosecant.

    Cosecant n. Math. Ratio of the hypotenuse (in a right-angled triangle) to the side opposite an acute angle.

    Cosh1 colloq. —n. Heavy blunt weapon. —v. Hit with a cosh. [origin unknown]

    Cosh2 abbr. Hyperbolic cosine.

    Co-signatory n. (pl. -ies) person or state signing a treaty etc. Jointly with others.

    Cosine n. Ratio of the side adjacent to an acute angle (in a right-angled triangle) to the hypotenuse.

    Cosmetic —adj. 1 beautifying, enhancing. 2 superficially improving or beneficial. 3 (of surgery or a prosthesis) imitating, restoring, or enhancing normal appearance. —n. Cosmetic preparation, esp. For the face. cosmetically adv. [greek, = ornament]

    Cosmic adj. 1 of the cosmos or its scale; universal (of cosmic significance). 2 of or for space travel.

    Cosmic rays n.pl. High-energy radiations from space etc.

    Cosmogony n. (pl. -ies) 1 origin of the universe. 2 theory about this. [greek -gonia -begetting]

    Cosmology n. Science or theory of the universe. cosmological adj. Cosmologist n. [from *cosmos, *-logy]

    Cosmonaut n. Soviet astronaut. [from *cosmos, greek nautes sailor]

    Cosmopolitan —adj. 1 of, from, or knowing many parts of the world. 2 free from national limitations or prejudices. —n. Cosmopolitan person. cosmopolitanism n. [greek polites citizen]

    Cosmos n. The universe as a well-ordered whole. [greek]

    Cossack n. Member of a people of southern russia. [turki quzzaq]

    Cosset v. (-t-) pamper. [dialect cosset = pet lamb, probably from old english, = cottager]

    Cost —v. (past and past part. Cost) 1 be obtainable for (a sum of money); have as a price. 2 involve as a loss or sacrifice (it cost him his life). 3 (past and past part. Costed) fix or estimate the cost of. —n. 1 what a thing costs; price. 2 loss or sacrifice. 3 (in pl.) Legal expenses. at all costs (or at any cost) whatever the cost or risk may be. [latin consto stand at a price]

    Costal adj. Of the ribs. [latin costa rib]

    Costal adj. Of the ribs. [latin costa rib]

    Cost-effective adj. Effective in relation to its cost.

    Costermonger n. Person who sells produce from a barrow. [costard large apple: related to *costal]

    Costing n. Estimation of cost(s).

    Costive adj. Constipated. [latin: related to *constipate]

    Costly adj. (-ier, -iest) costing much; expensive. costliness n.

    Cost of living n. Level of prices esp. Of basic necessities.

    Cost price n. Price paid for a thing by one who later sells it.

    Costume —n. 1 style of dress, esp. Of a particular place or time. 2 set of clothes. 3 clothing for a particular activity (swimming-costume). 4 actor’s clothes for a part. —v. (-ming) provide with a costume. [latin: related to *custom]

    Costume jewellery n. Artificial jewellery.

    Costumier n. Person who makes or deals in costumes. [french: related to *costume]

    Cosy (us cozy) —adj. (-ier, -iest) comfortable and warm; snug. —n. (pl. -ies) cover to keep a teapot etc. Hot. cosily adv. Cosiness n. [origin unknown]

    Cot1 n. 1 small bed with high sides for a baby. 2 small light bed. [hindi]

    Cot2 n. 1 small shelter; cote. 2 poet. Cottage. [old english]

    Cot3 abbr. Cotangent.

    Cotangent n. Ratio of the side adjacent to an acute angle (in a right-angled triangle) to the opposite side.

    Cot-death n. Unexplained death of a sleeping baby.

    Cote n. Shelter for animals or birds. [old english]

    Coterie n. Exclusive group of people sharing interests. [french]

    Cotoneaster n. Shrub bearing usu. Bright red berries. [latin cotoneum *quince]

    Cotoneaster n. Shrub bearing usu. Bright red berries. [latin cotoneum *quince]

    Cottage n. Small simple house, esp. In the country. [anglo-french: related to *cot2]

    Cottage cheese n. Soft white lumpy cheese made from skimmed milk curds.

    Cottage industry n. Business activity carried on at home.

    Cottage pie n. Dish of minced meat topped with mashed potato.

    Cottager n. Person who lives in a cottage.

    Cotter n. 1 bolt or wedge for securing parts of machinery etc. 2 (in full cotter pin) split pin that can be opened after passing through a hole. [origin unknown]

    Cotton n. 1 soft white fibrous substance covering the seeds of certain plants. 2 such a plant. 3 thread or cloth from this. cotton on (often foll. By to) colloq. Begin to understand. [french from arabic]

    Cotton wool n. Fluffy wadding of a kind orig. Made from raw cotton.

    Cotyledon n. Embryonic leaf in seed-bearing plants. [greek kotule cup]

    Couch1 —n. 1 upholstered piece of furniture for several people; sofa. 2 long

    Couch1 —n. 1 upholstered piece of furniture for several people; sofa. 2 long padded seat with a headrest at one end. —v. 1 (foll. By in) express in (certain terms). 2 archaic (of an animal) lie, esp. In its lair. [latin colloco lay in place]

    Couch2 n. (in full couch grass) a grass with long creeping roots. [var. Of *quitch]

    Couchette n. 1 railway carriage with seats convertible into sleeping-berths. 2 berth in this. [french, = little bed]

    Couch potato n. Us slang person who likes lazing at home.

    Cougar n. Us puma. [french from guarani]

    Cough —v. 1 expel air etc. From the lungs with a sudden sharp sound. 2 (of an engine etc.) Make a similar sound. 3 slang confess. —n. 1 act of coughing. 2 condition of respiratory organs causing coughing. cough up 1 eject with coughs. 2 slang bring out or give (money or information) reluctantly. [imitative, related to dutch kuchen]

    Cough mixture n. Liquid medicine to relieve a cough.

    Could past of *can1. —v. Colloq. Feel inclined to (i could murder him).

    Couldn’t contr. Could not.

    Coulomb n. Si unit of electric charge. [coulomb, name of a physicist]

    Coulter n. (us colter) vertical blade in front of a ploughshare. [latin culter knife]

    Council n. 1 a advisory, deliberative, or administrative body. B meeting of such a body. 2 a local administrative body of a parish, district, town, etc. B (attrib.) Provided by a local council (council flat). [latin concilium]

    Councillor n. Member of a (esp. Local) council.

    Council tax n. Proposed new local tax based on the value of a property and the number of people living in it, to replace the community charge.

    Counsel —n. 1 advice, esp. Formally given. 2 consultation for advice. 3 (pl. Same) legal adviser, esp. A barrister; body of these. —v. (-ll-; us -l-) 1 advise (a person). 2 give esp. Professional advice to (a person) on personal problems. 3 recommend (a course of action). keep one’s own counsel not confide in others. Take counsel (usu. Foll. By with) consult. counselling n. [latin consilium]

    Counsellor n. (us counselor) 1 adviser. 2 person giving professional guidance on personal problems. 3 us barrister.

    Counsel of perfection n. Ideal but impracticable advice.

    Counselor n. (brit. Counsellor) 1 adviser. 2 person giving professional guidance on personal problems. 3 us barrister.

    Count1 —v. 1 determine the total number of, esp. By assigning successive numbers. 2 repeat numbers in ascending order. 3 (often foll. By in) include or be included in one’s reckoning or plan. 4 consider or regard to be (lucky etc.). 5 (often foll. By for) have value; matter (my opinion counts for little). —n. 1 a counting or being counted. B total of reckoning. 2 law each charge in an indictment. count against be reckoned to the disadvantage of. Count one’s blessings be grateful for what one has. Count on (or upon) rely on; expect. Count out 1 count while taking from a stock. 2 complete a count of ten seconds over (a fallen boxer etc.). 3 colloq. Exclude, disregard. 4 polit. Procure the adjournment of (the house of commons) when fewer than 40 members are present. Count up find the sum of. Keep count take note of how many there have been etc. Lose count forget the number etc. Counted. Out for the count 1 defeated. 2 unconscious; asleep. [latin: related to *compute]

    Count2 n. Foreign noble corresponding to an earl. [latin comes companion]

    Countable adj. 1 that can be counted. 2 gram. (of a noun) that can form a plural or be used with the indefinite article.

    Countdown n. 1 act of counting backwards to zero, esp. At the launching of a rocket etc. 2 period immediately before an event.

    Countenance —n. 1 the face or facial expression. 2 composure. 3 moral support. —v. (-cing) support, approve. [french: related to *contain]

    Composure. 3 moral support. —v. (-cing) support, approve. [french: related to *contain]

    Counter1 n. 1 long flat-topped fitment in a shop etc., across which business is conducted. 2 a small disc for playing or scoring in board-games etc. B token representing a coin. 3 apparatus for counting. under the counter surreptitiously, esp. Illegally. [related to *count1]

    Counter2 —v. 1 a oppose, contradict. B meet by countermove. 2 boxing give a return blow while parrying. —adv. In the opposite direction or manner. —adj. Opposite. —n. Parry; countermove. [related to *counter-]

    Counter-comb. Form denoting: 1 retaliation, opposition, or rivalry (counter-threat). 2 opposite direction (counter-clockwise). 3 correspondence (counterpart; countersign). [latin contra against]

    Counteract v. Hinder or neutralize by contrary action. counteraction n. Counteractive adj.

    Counter-attack —n. Attack in reply to a preceding attack. —v. Attack in reply.

    Counterbalance —n. Weight or influence balancing another. —v. (-cing) act as a counterbalance to.

    Counter-clockwise adv. & adj. Us = *anticlockwise.

    Counter-espionage n. Action taken against enemy spying.

    Counterfeit —adj. Made in imitation; not genuine; forged. —n. A forgery or imitation. —v. Imitate fraudulently; forge. [french]

    Counterfoil n. Part of a cheque, receipt, etc., retained by the payer as a record. [from *foil2]

    Counter-intelligence n. = *counter-espionage.

    Countermand —v. 1 revoke (a command). 2 recall by a contrary order. —n. Order revoking a previous one. [latin: related to *mandate]

    Countermeasure n. Action taken to counteract a danger, threat, etc.

    Countermove n. Move or action in opposition to another.

    Counterpane n. Bedspread. [medieval latin culcita puncta quilted mattress]

    Counterpart n. 1 person or thing like another or forming the complement or equivalent to another. 2 duplicate.

    Counterpoint n. 1 a art or practice of combining melodies according to fixed rules. B melody combined with another. 2 contrasting argument, plot, literary theme, etc. [medieval latin contrapunctum marked opposite]

    Counterpoise —n. 1 counterbalance. 2 state of equilibrium. —v. (-sing) counterbalance. [latin pensum weight]

    Counter-productive adj. Having the opposite of the desired effect.

    Counter-revolution n. Revolution opposing a former one or reversing its results.

    Countersign —v. Add a signature to (a document already signed by another). — n. 1 password spoken to a person on guard. 2 mark used for identification etc. [italian: related to *sign]

    Countersink v. (past and past part. -sunk) 1 shape (the rim of a hole) so that a screw or bolt can be inserted flush with the surface. 2 sink (a screw etc.) In such a hole.

    Counter-tenor n. 1 male alto singing-voice. 2 singer with this voice. [italian: related to *contra-]

    Countervail v. Literary 1 counterbalance. 2 (often foll. By against) oppose, usu. Successfully. [latin valeo have worth]

    Counterweight n. Counterbalancing weight.

    Countess n. 1 wife or widow of a count or earl. 2 woman holding the rank of

    Countess n. 1 wife or widow of a count or earl. 2 woman holding the rank of count or earl. [latin comitissa: related to *count2]

    Countless adj. Too many to be counted.

    Countrified adj. Rustic in manner or appearance.

    Country n. (pl. -ies) 1 territory of a nation; state. 2 (often attrib.) Rural districts as opposed to towns or the capital. 3 land of a person’s birth or citizenship. 4 region with regard to its aspect, associations, etc. (mountainous country; hardy country). 5 national population, esp. As voters. [medieval latin contrata (terra) (land) lying opposite]

    Country-and-western n. Type of folk music originated by whites in the southern us.

    Country club n. Sporting and social club in a rural setting.

    Country dance n. Traditional dance, esp. English, usu. With couples facing each other in lines.

    Countryman n. (fem. Countrywoman) 1 person living in a rural area. 2 (also fellow-countryman) person of one’s own country.

    Country music n. = *country-and-western.

    Countryside n. Rural areas.

    Country-wide adj. & adv. Extending throughout a nation.

    County —n. (pl. -ies) 1 territorial division in some countries, forming the chief unit of local administration. 2 us political and administrative division of a state. —adj. Of or like the gentry. [latin comitatus: related to *count2]

    County council n. Elected governing body of an administrative county.

    County court n. Judicial court for civil cases.

    County town n. Administrative capital of a county.

    Coup n. (pl. -s) 1 successful stroke or move. 2 = *coup d’état. [medieval latin colpus blow]

    Coup de grâce n. Finishing stroke. [french]

    Coup d’état n. (pl. Coups d’état pronunc. Same) violent or illegal seizure of power. [french]

    Coupe n. (brit. Coupé) car with a hard roof, two doors, and usu. A sloping rear. [french couper cut]

    [french couper cut]

    Coupé n. (us coupe) car with a hard roof, two doors, and usu. A sloping rear. [french couper cut]

    Couple —n. 1 a two (a couple of girls). B about two (a couple of hours). 2 a two people who are married to, or in a sexual relationship with, each other. B pair of partners in a dance etc. —v. (-ling) 1 link together. 2 associate in thought or speech. 3 copulate. [latin *copula]

    Couplet n. Two successive lines of verse, usu. Rhyming and of the same length. [french diminutive: related to *couple]

    Coupling n. 1 link connecting railway carriages etc. 2 device for connecting parts of machinery.

    Coupon n. 1 form etc. As an application for a purchase etc. 2 entry form for a football pool or other competition. 3 discount voucher given with a purchase. [french couper cut]

    Courage n. Ability to disregard fear; bravery. courage of one’s convictions courage to act on one’s beliefs. [latin cor heart]

    Courageous adj. Brave. courageously adv.

    Courgette n. Small vegetable marrow. [french]

    Courgette n. Small vegetable marrow. [french]

    Courier n. 1 person employed to guide and assist tourists. 2 special messenger. [latin curro curs-run]

    Course —n. 1 onward movement or progression. 2 direction taken (changed course). 3 stretch of land or water for races; golf-course. 4 series of lessons etc. In a particular subject. 5 each successive part of a meal. 6 sequence of medical treatment etc. 7 line of conduct. 8 continuous horizontal layer of masonry, brick, etc. 9 channel in which water flows. —v. (-sing) 1 (esp. Of liquid) run, esp. Fast. 2 (also absol.) Use hounds to hunt (esp. Hares). in course of in the process of. In the course of during. Of course naturally; as is or was to be expected; admittedly. [latin cursus: related to *courier]

    Courser n. Poet. Swift horse.

    Court —n. 1 (in full court of law) a judicial body hearing legal cases. B = courtroom. 2 quadrangular area for games (tennis-court; squash-court). 3 a yard surrounded by houses with entry from the street. B = courtyard. 4 a the residence, retinue, and courtiers of a sovereign. B sovereign and councillors, constituting the ruling power. C assembly held by a sovereign; state reception. 5 attention paid to a person whose favour etc. Is sought (paid court to her). —v. 1 a try to win affection or favour of. B pay amorous attention to. 2 seek to win (applause, fame, etc.). 3 invite (misfortune) by one’s actions. go to court take legal action. Out of court 1 without reaching trial. 2 not worthy of consideration. [latin: related to *cohort]

    Court-card n. Playing-card that is a king, queen, or jack.

    Courteous adj. Polite, considerate. courteously adv. Courteousness n. [french:

    Courteous adj. Polite, considerate. courteously adv. Courteousness n. [french: related to *court]

    Courtesan n. Prostitute, esp. One with wealthy or upper-class clients. [italian: related to *court]

    Courtesy n. (pl. -ies) courteous behaviour or act. by courtesy of with the formal permission of. [french: related to *courteous]

    Courtesy light n. Light in a car switched on by opening a door.

    Court-house n. 1 building in which a judicial court is held. 2 us building containing the administrative offices of a county.

    Courtier n. Person who attends a sovereign’s court. [anglo-french: related to *court]

    Courtly adj. (-ier, -iest) dignified, refined. courtliness n.

    Court martial —n. (pl. Courts martial) judicial court trying members of the armed services. —v. (court-martial) (-ll-; us -l-) try by this.

    Court order n. Direction issued by a court or judge.

    Courtroom n. Room in which a court of law meets.

    Courtship n. 1 courting, wooing. 2 courting behaviour of animals, birds, etc.

    Court shoe n. Woman’s light, usu. High-heeled, shoe with a low-cut upper.

    Courtyard n. Area enclosed by walls or buildings.

    Couscous n. N. African dish of crushed wheat or coarse flour steamed over broth, often with meat or fruit added. [french from arabic]

    Cousin n. 1 (also first cousin) child of one’s uncle or aunt. 2 person of a kindred race or nation. [latin consobrinus]

    Usage there is often some confusion as to the difference between cousin, first cousin, second cousin, first cousin once removed, etc. For definitions see cousin, second cousin and remove v. 5.

    Couture n. Design and manufacture of fashionable clothes. [french]

    Couturier n. Fashion designer.

    Cove1 —n. 1 small bay or creek. 2 sheltered recess. 3 moulding, esp. At the junction of a wall and a ceiling. —v. (-ving) 1 provide (a room etc.) With a cove. 2 slope (the sides of a fireplace) inwards. [old english]

    Cove2 n. Slang fellow, chap. [cant: origin unknown]

    Coven n. Assembly of witches. [related to *convent]

    Covenant —n. 1 agreement; contract. 2 law sealed contract, esp. A deed of covenant. 3 (covenant) bibl. Agreement between god and the israelites. —v. Agree, esp. By legal covenant. [french: related to *convene]

    Coventry n. send a person to coventry refuse to associate with or speak to a person. [coventry in england]

    Cover —v. 1 (often foll. By with) protect or conceal with a cloth, lid, etc. 2 a extend over; occupy the whole surface of. B (often foll. By with) strew thickly or thoroughly. C lie over. 3 a protect; clothe. B (as covered adj.) Wearing a hat; having a roof. 4 include; comprise; deal with. 5 travel (a specified distance). 6 describe as a reporter. 7 be enough to defray (£20 should cover it). 8 a refl. Take measures to protect oneself. B (absol.; foll. By for) stand in for. 9 a aim a gun etc. At. B (of a fortress, guns, etc.) Command (territory). C protect (an exposed person etc.) By being able to return fire. 10 a esp. Cricket stand behind (another player) to stop any missed balls. B mark (an opposing player). 11 (of a stallion etc.) Copulate with. —n. 1 thing that covers, esp.: a lid. B book’s binding. C either board of this. D envelope or wrapping (under separate cover). 2 shelter. 3 a pretence; screen. B pretended identity. C mil. Supporting force protecting an advance party from attack. 4 a funds, esp. Obtainable from insurance to meet a liability or secure against loss. B insurance protection (third-party cover). 5 person acting as a substitute. 6 place-setting at table. 7 cricket = *cover-point. cover up completely cover or conceal. Take cover find shelter. [latin cooperio]

    Coverage n. 1 area or amount covered. 2 amount of publicity received by an event etc.

    Coverall n. Esp. Us 1 thing that covers entirely. 2 (usu. In pl.) Full-length protective garment.

    Cover charge n. Service charge per head in a restaurant, nightclub, etc.

    Cover girl n. Female model appearing on magazine covers etc.

    Covering letter n. (also covering note) explanatory letter sent with an enclosure.

    Coverlet n. Bedspread. [anglo-french: related to *cover, lit bed]

    Cover note n. Temporary certificate of insurance.

    Cover-point n. Cricket 1 fielding position covering point. 2 fielder at this position.

    Cover story n. News story in a magazine that is advertised etc. On the front cover.

    Covert —adj. Secret or disguised (covert glance). —n. 1 shelter, esp. A thicket hiding game. 2 feather covering the base of a bird’s flight-feather. covertly adv. [french: related to *cover]

    Cover-up n. Concealment of facts.

    Covet v. (-t-) desire greatly (esp. A thing belonging to another person). [french: related to *cupid]

    Covetous adj. (usu. Foll. By of) coveting; grasping. covetously adv.

    Covey n. (pl. -s) 1 brood of partridges. 2 small group of people. [latin cubo lie]

    Cow1 n. 1 fully grown female of any esp. Domestic bovine animal, used as a source of milk and beef. 2 female of other large animals, esp. The elephant, whale, and seal. 3 derog. Slang woman. [old english]

    Cow2 v. Intimidate or dispirit. [old norse]

    Coward n. Person who is easily frightened. [latin cauda tail]

    Cowardice n. Lack of bravery.

    Cowardly adj. 1 of or like a coward; lacking courage. 2 (of an action) done against one who cannot retaliate.

    Cowbell n. Bell worn round a cow’s neck.

    Cowboy n. 1 (fem. Cowgirl) person who tends cattle, esp. In the western us. 2 colloq. Unscrupulous or incompetent person in business.

    Cower v. Crouch or shrink back in fear or distress. [low german]

    Cowherd n. Person who tends cattle.

    Cowhide n. 1 cow’s hide. 2 leather or whip made from this.

    Cowl n. 1 monk’s cloak. 2 hood-shaped covering of a chimney or ventilating shaft. [latin cucullus]

    Cow-lick n. Projecting lock of hair.

    Cowling n. Removable cover of a vehicle or aircraft engine.

    Co-worker n. Person who works with another.

    Cow-parsley n. Hedgerow plant with lacelike umbels of flowers.

    Cow-pat n. Flat round piece of cow-dung.

    Cowpox n. Disease of cows, whose virus was formerly used in smallpox vaccination.

    Cowrie n. 1 tropical mollusc with a bright shell. 2 its shell as money in parts of africa and s. Asia. [urdu and hindi]

    Co-write v. Write with another person. co-writer n.

    Cowslip n. Primula with small yellow flowers. [obsolete slyppe dung]

    Cox —n. Coxswain, esp. Of a racing-boat. —v. Act as cox (of). [abbreviation]

    Coxcomb n. Ostentatiously conceited man. coxcombry n. (pl. -ies). [= cock’s comb]

    Coxswain —n. 1 person who steers, esp. A rowing-boat. 2 senior petty officer in a small ship. —v. Act as coxswain (of). [cock ship’s boat, *swain]

    Coy adj. 1 affectedly shy. 2 irritatingly reticent. coyly adv. Coyness n. [french: related to *quiet]

    Coyote n. (pl. Same or -s) n. American wolflike wild dog. [mexican spanish]

    Coyote n. (pl. Same or -s) n. American wolflike wild dog. [mexican spanish]

    Coypu n. (pl. -s) aquatic beaver-like rodent native to s. America. [araucan]

    Cozen v. Literary 1 cheat, defraud. 2 beguile. 3 act deceitfully. cozenage n. [cant]

    Cozy (brit. Cosy) —adj. (-ier, -iest) comfortable and warm; snug. —n. (pl. -ies) cover to keep a teapot etc. Hot. cosily adv. Cosiness n. [origin unknown]

    C.p. Abbr. Candlepower.

    Cpl. Abbr. Corporal.

    Cps abbr. (also c.p.s.) 1 computing characters per second. 2 sci. Cycles per second.

    Cpu abbr. Computing central processing unit.

    Cr symb. Chromium.

    Crab1 n. 1 a ten-footed crustacean, with the first pair of legs as pincers. B crab as food. 2 (crab) sign or constellation cancer. 3 (in full crab-louse) (often in pl.) Parasitic louse transmitted sexually to esp. Pubic hair. 4 machine for hoisting

    Parasitic louse transmitted sexually to esp. Pubic hair. 4 machine for hoisting heavy weights. catch a crab rowing jam an oar or miss the water. crablike adj. [old english]

    Crab2 n. 1 (in full crab-apple) small sour apple. 2 (in full crab tree or crab-apple tree) tree (esp. Uncultivated) bearing this. 3 sour person. [origin unknown]

    Crab3 v. (-bb-) colloq. 1 criticize; grumble. 2 spoil. [low german krabben]

    Crabbed adj. 1 = *crabby. 2 (of handwriting) ill-formed; illegible. [from *crab2]

    Crabby adj. (-ier, -iest) irritable, morose. crabbily adv. Crabbiness n.

    Crabwise adv. & attrib.adj. Sideways or backwards.

    Crack —n. 1 a sharp explosive noise. B sudden harshness or change in vocal pitch. 2 sharp blow. 3 a narrow opening; break or split. B chink. 4 colloq. Joke or malicious remark. 5 colloq. Attempt. 6 slang crystalline form of cocaine broken into small pieces. —v. 1 break without separating the parts. 2 make or cause to make a sharp explosive sound. 3 break with a sharp sound. 4 give way or cause to give way (under torture etc.). 5 (of the voice) change pitch sharply; break. 6 colloq. Find the solution to. 7 tell (a joke etc.). 8 colloq. Hit sharply. 9 (as cracked adj.) Crazy. 10 break (wheat) into coarse pieces. —attrib. Adj. Colloq. Excellent; first-rate (crack shot). crack a bottle open a bottle, esp. Of wine, and drink it. Crack down on colloq. Take severe measures against. Crack of dawn daybreak. Crack up colloq. 1 collapse under strain. 2 praise. Get cracking colloq. Begin promptly and vigorously. [old english]

    Crack-brained adj. Crazy.

    Crack-down n. Colloq. Severe measures (esp. Against law-breakers).

    Cracker n. 1 paper cylinder pulled apart, esp. At christmas, with a sharp noise and releasing a hat, joke, etc. 2 loud firework. 3 (usu. In pl.) Instrument for cracking. 4 thin dry savoury biscuit. 5 slang attractive or admirable person. 6 us biscuit.

    Crackers predic. Adj. Slang crazy.

    Cracking slang —adj. 1 excellent. 2 (attrib.) Fast and exciting. —adv. Outstandingly.

    Crackle —v. (-ling) make repeated slight cracking sound (radio crackled; fire was crackling). —n. Such a sound. crackly adj. [from *crack]

    Crackling n. Crisp skin of roast pork.

    Cracknel n. Light crisp biscuit. [dutch: related to *crack]

    Crackpot slang —n. Eccentric person. —adj. Mad, unworkable.

    Crack-up n. Colloq. Mental breakdown.

    -cracy comb. Form denoting a particular form of government etc. (bureaucracy). [latin -cratia]

    Cradle —n. 1 a baby’s bed or cot, esp. On rockers. B place in which something begins, esp. Civilization (cradle of democracy). 2 supporting framework or structure. —v. (-ling) 1 contain or shelter as in a cradle. 2 place in a cradle. [old english]

    Cradle-snatcher n. Slang admirer or lover of a much younger person.

    Cradle-song n. Lullaby.

    Craft —n. 1 special skill or technique. 2 occupation needing this. 3 (pl. Craft) a boat or vessel. B aircraft or spacecraft. 4 cunning or deceit. —v. Make in a skilful way. [old english]

    Craftsman n. (fem. Craftswoman) 1 skilled worker. 2 person who practises a craft. craftsmanship n.

    Crafty adj. (-ier, -iest) cunning, artful, wily. craftily adv. Craftiness n.

    Crag n. Steep or rugged rock. [celtic]

    Craggy adj. (-ier, -iest) (of facial features, landscape, etc.) Rugged; rough-

    Craggy adj. (-ier, -iest) (of facial features, landscape, etc.) Rugged; rough-textured. cragginess n.

    Crake n. Bird of the rail family, esp. The corncrake. [old norse, imitative of cry]

    Cram v. (-mm-) 1 a fill to bursting; stuff. B (foll. By in, into; also absol.) Force (a thing) in or into. 2 prepare intensively for an examination. 3 (often foll. By with) feed to excess. [old english]

    Crammer n. Person or institution that crams pupils for examinations.

    Cramp —n. 1 painful involuntary muscular contraction. 2 (also cramp-iron) metal bar with bent ends for holding masonry etc. Together. —v. 1 affect with cramp. 2 (often foll. By up) confine narrowly. 3 restrict. 4 fasten with a cramp. cramp a person’s style prevent a person from acting freely or naturally. [low german or dutch]

    Cramped adj. 1 (of a space) too small. 2 (of handwriting) small and with the letters close together.

    Crampon n. (us crampoon) (usu. In pl.) Spiked iron plate fixed to a boot for climbing on ice. [french: related to *cramp]

    Crampoon n. (brit. Crampon) (usu. In pl.) Spiked iron plate fixed to a boot for climbing on ice. [french: related to *cramp]

    Cranberry n. (pl. -ies) 1 shrub with small red acid berries. 2 this berry used in cookery. [german kranbeere crane-berry]

    cookery. [german kranbeere crane-berry]

    Crane —n. 1 machine with a long projecting arm for moving heavy objects. 2 tall wading bird with long legs, neck, and bill. —v. (-ning) (also absol.) Stretch out (one’s neck) in order to see something. [old english]

    Crane-fly n. Two-winged long-legged fly: also called *daddy-long-legs.

    Cranesbill n. Wild geranium.

    Cranium n. (pl. -s or -nia) 1 skull. 2 part of the skeleton enclosing the brain. cranial adj. Craniology n. [medieval latin from greek]

    Crank —n. 1 part of an axle or shaft bent at right angles for converting reciprocal into circular motion or vice versa. 2 eccentric person. —v. Cause to move by means of a crank. crank up start (a car engine) with a crank. [old english]

    Crankcase n. Case enclosing a crankshaft.

    Crankpin n. Pin by which a connecting-rod is attached to a crank.

    Crankshaft n. Shaft driven by a crank.

    Cranky adj. (-ier, -iest) 1 colloq. Eccentric. 2 working badly; shaky. 3 esp. Us crotchety. crankily adv. Crankiness n.

    Cranny n. (pl. -ies) chink, crevice. crannied adj. [french]

    Crap coarse slang —n. 1 (often as int. Or attrib.) Nonsense, rubbish. 2 faeces. — v. (-pp-) defecate. crappy adj. (-ier, -iest). [dutch]

    Crape n. Crêpe, usu. Of black silk, formerly used for mourning. [from *crêpe]

    Craps n.pl. Us (also crap game) gambling dice game. [origin uncertain]

    Crapulent adj. Suffering the effects of drunkenness. crapulence n. Crapulous adj. [latin crapula inebriation]

    Crash1 —v. 1 (cause to) make a loud smashing noise. 2 throw, drive, move, or fall with a loud smash. 3 (often foll. By into) collide or fall, or cause (a vehicle etc.) To collide or fall, violently; overturn at high speed. 4 collapse financially. 5 colloq. Gatecrash. 6 computing (of a machine or system) fail suddenly. 7 colloq. Pass (a red traffic-light etc.). 8 (often foll. By out) slang sleep, esp. On a floor etc. —n. 1 loud and sudden smashing noise. 2 violent collision or fall, esp. Of a vehicle. 3 ruin, esp. Financial. 4 computing sudden failure of a machine or system. 5 (attrib.) Done rapidly or urgently (crash course in first aid). —adv. With a crash (go crash). [imitative]

    Crash2 n. Coarse plain fabric of linen, cotton, etc. [russian]

    Crash barrier n. Barrier at the side or centre of a road etc.

    Crash-dive —v. 1 a (of a submarine or its pilot) dive hastily in an emergency. B (of an aircraft or airman) dive and crash. 2 cause to crash-dive. —n. Such a dive.

    Crash-helmet n. Helmet worn esp. By motor cyclists.

    Crashing adj. Colloq. Overwhelming (crashing bore).

    Crash-land v. Land or cause (an aircraft etc.) To land hurriedly with a crash. crash landing n.

    Crass adj. Gross; grossly stupid. crassly adv. Crassness n. [latin crassus thick]

    -crat comb. Form member or supporter of a type of government etc.

    Crate —n. 1 slatted wooden case etc. For conveying esp. Fragile goods. 2 slang old aircraft or other vehicle. —v. (-ting) pack in a crate. [perhaps from dutch]

    Crater —n. 1 mouth of a volcano. 2 bowl-shaped cavity, esp. That made by a shell or bomb. 3 hollow on the surface of a planet or moon, caused by impact. — v. Form a crater in. [greek, = mixing-bowl]

    -cratic comb. Form (also -cratical) denoting a type of government etc. (autocratic). -cratically comb. Form forming adverbs. [forming adverbs]

    Cravat n. Man’s scarf worn inside an open-necked shirt. [serbo-croatian, = croat]

    Crave v. (-ving) (often foll. By for) long or beg for. [old english]

    Craven adj. Cowardly, abject. [probably french cravanté defeated]

    Craving n. Strong desire or longing.

    Craw n. Crop of a bird or insect. stick in one’s craw be unacceptable. [low german or dutch]

    Crawfish n. (pl. Same) large marine spiny lobster. [var. Of *crayfish]

    Crawl —v. 1 move slowly, esp. On hands and knees or with the body close to the ground etc. 2 walk or move slowly. 3 colloq. Behave obsequiously. 4 (often foll. By with) be or appear to be covered or filled with crawling or moving things or people. 5 (esp. Of the skin) creep. —n. 1 crawling. 2 slow rate of movement. 3 high-speed overarm swimming stroke. [origin unknown]

    Crayfish n. (pl. Same) 1 small lobster-like freshwater crustacean. 2 crawfish. [french crevice]

    Crayon —n. Stick or pencil of coloured chalk, wax, etc. —v. Draw with crayons. [french craie chalk]

    Craze —v. (-zing) 1 (usu. As crazed adj.) Make insane (crazed with grief). 2 produce fine surface cracks on (pottery glaze etc.); develop such cracks. —n. 1 usu. Temporary enthusiasm (craze for skateboarding). 2 object of this. [perhaps from old norse]

    Crazy adj. (-ier, -iest) 1 colloq. Insane or mad; foolish. 2 (usu. Foll. By about) colloq. Extremely enthusiastic. 3 (attrib.) (of paving etc.) Made up of irregular pieces. crazily adv. Craziness n.

    Creak —n. Harsh scraping or squeaking sound. —v. 1 make a creak. 2 a move stiffly or with a creaking noise. B be poorly constructed (plot creaks). [imitative]

    Creaky adj. (-ier, -iest) 1 liable to creak. 2 a stiff or frail. B decrepit, outmoded. creakiness n.

    Cream —n. 1 fatty part of milk. 2 its yellowish-white colour. 3 creamlike cosmetic etc. 4 food or drink like or containing cream. 5 (usu. Prec. By the) best part of something. —v. 1 take cream from (milk). 2 make creamy. 3 treat (the skin etc.) With cosmetic cream. 4 form a cream or scum. —adj. Pale yellowish white. cream off take (esp. The best part) from a whole. [latin cramum and church latin chrisma oil for anointing]

    Cream cheese n. Soft rich cheese made from cream and unskimmed milk.

    Creamer n. 1 cream-substitute for adding to coffee. 2 jug for cream.

    Creamery n. (pl. -ies) 1 factory producing butter and cheese. 2 dairy.

    Cream of tartar n. Purified tartar, used in medicine, baking powder, etc.

    Cream soda n. Carbonated vanilla-flavoured soft drink.

    Cream tea n. Afternoon tea with scones, jam, and cream.

    Creamy adj. (-ier, -iest) 1 like cream. 2 rich in cream. creamily adv. Creaminess n.

    Crease —n. 1 line caused by folding or crushing. 2 cricket line marking the position of a bowler or batsman. —v. (-sing) 1 make creases in. 2 develop creases. 3 slang (often foll. By up) make or become incapable through laughter. [from *crest]

    Create v. (-ting) 1 bring into existence; cause. 2 originate (actor creates a part). 3 invest with rank (created him a lord). 4 slang make a fuss. [latin creo]

    Creation n. 1 creating or being created. 2 a (usu. The creation) god’s creating of the universe. B (usu. Creation) all created things, the universe. 3 product of the

    imagination, art, fashion, etc.

    Creative adj. 1 inventive, imaginative. 2 able to create. creatively adv. Creativeness n. Creativity n.

    Creator n. 1 person who creates. 2 (as the creator) god.

    Creature n. 1 any living being, esp. An animal. 2 person of a specified kind (poor creature). 3 subservient person. creaturely adj. [french from latin: related to *create]

    Creature comforts n.pl. Good food, warmth, etc.

    Crèche n. Day nursery. [french]

    Credence n. Belief. give credence to believe. [medieval latin: related to *credo]

    Credential n. (usu. In pl.) 1 certificates, references, etc., attesting to a person’s education, character, etc. 2 letter(s) of introduction. [medieval latin: related to *credence]

    Credibility n. 1 being credible. 2 reputation, status.

    Credibility gap n. Apparent difference between what is said and what is true.

    Credible adj. Believable or worthy of belief. [latin: related to *credo]

    Usage credible is sometimes confused with credulous.

    Credit —n. 1 source of honour, pride, etc. (is a credit to the school). 2 acknowledgement of merit. 3 good reputation. 4 belief or trust. 5 a person’s financial standing, esp. As regards money in the bank etc. B power to obtain goods etc. Before payment. 6 (usu. In pl.) Acknowledgement of a contributor’s services to a film etc. 7 grade above pass in an examination. 8 reputation for solvency and honesty in business. 9 a entry in an account of a sum paid into it. B sum entered. C side of an account recording such entries. 10 educational course counting towards a degree. —v. (-t-) 1 believe (cannot credit it). 2 (usu. Foll. By to, with) enter on the credit side of an account. credit a person with ascribe (a good quality) to a person. Do credit to (or do a person credit) enhance the reputation of. On credit with an arrangement to pay later. To one’s credit in one’s favour. [italian or latin: related to *credo]

    Creditable adj. Bringing credit or honour. creditably adv.

    Credit card n. Plastic card from a bank etc. Authorizing the purchase of goods on credit.

    Credit note n. Note with a specific monetary value given by a shop etc. For goods returned.

    Creditor n. Person to whom a debt is owing. [latin: related to *credit]

    Credit rating n. Estimate of a person’s suitability for commercial credit.

    Creditworthy adj. Considered suitable to receive commercial credit. creditworthiness n.

    Credo n. (pl. -s) creed. [latin, = i believe]

    Credulous adj. Too ready to believe; gullible. credulity n. Credulously adv. [latin: related to *credo]

    Usage credulous is sometimes confused with credible.

    Creed n. 1 set of principles or beliefs. 2 system of religious belief. 3 (often the creed) formal summary of christian doctrine. [latin: related to *credo]

    Creek n. 1 a inlet on a sea-coast. B short arm of a river. 2 esp. Us, austral., & nz tributary of a river; stream. up the creek slang 1 in difficulties. 2 crazy. [old norse and dutch]

    Creel n. Fisherman’s large wicker basket. [origin unknown]

    Creep —v. (past and past part. Crept) 1 move with the body prone and close to the ground. 2 move stealthily or timidly. 3 advance very gradually (a feeling

    crept over her). 4 colloq. Act obsequiously in the hope of advancement. 5 (of a plant) grow along the ground or up a wall etc. 6 (as creeping adj.) Developing slowly and steadily. 7 (of flesh) shiver or shudder from fear, horror, etc. —n. 1 act or spell of creeping. 2 (in pl.; prec. By the) colloq. Feeling of revulsion or fear. 3 slang unpleasant person. 4 (of metals etc.) Gradual change of shape under stress. [old english]

    Creeper n. 1 climbing or creeping plant. 2 bird that climbs, esp. The treecreeper. 3 slang soft-soled shoe.

    Creepy adj. (-ier, -iest) colloq. Feeling or causing horror or fear. creepily adv. Creepiness n.

    Creepy-crawly n. (pl. -ies) colloq. Small crawling insect etc.

    Cremate v. (-ting) burn (a corpse etc.) To ashes. cremation n. [latin cremo burn]

    Crematorium n. (pl. -ria or -s) place where corpses are cremated.

    Crème n. 1 = *cream n. 4. 2 liqueur (crème de cassis). [french, = cream]

    Crème brûlée n. Baked cream or custard pudding coated with caramel.

    Crème caramel n. Custard coated with caramel.

    Crème de cassis n. Blackcurrant liqueur.

    Crème de cassis n. Blackcurrant liqueur.

    Crème de la crème n. Best part; élite.

    Crème de menthe n. Peppermint liqueur.

    Crenelate v. (brit. Crenellate) (-ting) provide (a tower etc.) With battlements. crenellation n. [french crenel embrasure]

    Crenellate v. (us crenelate) (-ting) provide (a tower etc.) With battlements. crenellation n. [french crenel embrasure]

    Creole —n. 1 a descendant of european settlers in the w. Indies or central or s. America. B white descendant of french settlers in the southern us. C person of mixed european and black descent. 2 language formed from a european language and another (esp. African) language. —adj. 1 of creoles. 2 (usu. Creole) of creole origin etc. (creole cooking). [french from spanish]

    Creosote —n. 1 dark-brown oil distilled from coal tar, used as a wood-preservative. 2 oily fluid distilled from wood tar, used as an antiseptic. —v. (-ting) treat with creosote. [greek kreas flesh, soter preserver, because of its antiseptic properties]

    Crêpe n. 1 fine gauzy wrinkled fabric. 2 thin pancake with a savoury or sweet filling. 3 hard-wearing wrinkled sheet rubber used for the soles of shoes etc. crêpey adj. Crêpy adj. [latin: related to *crisp]

    Crêpe de chine n. Fine silk crêpe.

    Crêpe paper n. Thin crinkled paper.

    Crêpe suzette n. Small dessert pancake flamed in alcohol.

    Crept past and past part. Of *creep.

    Crepuscular adj. 1 a of twilight. B dim. 2 zool. Appearing or active in twilight. [latin crepusculum twilight]

    Cres. Abbr. Crescent.

    Cresc. Abbr. (also cres.) Mus. = *crescendo.

    Crescendo —n. (pl. -s) 1 mus. Gradual increase in loudness. 2 progress towards a climax. —adv. & adj. Increasing in loudness. [italian: related to *crescent]

    Usage crescendo is sometimes wrongly used to mean the climax itself rather than progress towards it.

    Crescent —n. 1 curved sickle shape as of the waxing or waning moon. 2 thing of

    Crescent —n. 1 curved sickle shape as of the waxing or waning moon. 2 thing of this shape, esp. A street forming an arc. —adj. Crescent-shaped. [latin cresco grow]

    Cress n. Any of various plants with pungent edible leaves. [old english]

    Crest —n. 1 a comb or tuft etc. On a bird’s or animal’s head. B plume etc. On a helmet etc. 2 top of a mountain, wave, roof, etc. 3 heraldry a device above a coat of arms. B such a device on writing-paper etc. —v. 1 reach the crest of. 2 provide with a crest or serve as a crest to. 3 (of a wave) form a crest. crested adj. [latin crista]

    Crestfallen adj. Dejected, dispirited.

    Cretaceous —adj. 1 of or like chalk. 2 (cretaceous) geol. Of the last period of the mesozoic era, with deposits of chalk. —n. (cretaceous) geol. This era or system. [latin creta chalk]

    Cretin n. 1 deformed and mentally retarded person, esp. As the result of thyroid deficiency. 2 colloq. Stupid person. cretinism n. Cretinous adj. [french crétin: related to *christian]

    Cretonne n. (often attrib.) Heavy cotton upholstery fabric, usu. With a floral pattern. [creton in normandy]

    Crevasse n. Deep open crack, esp. In a glacier. [latin crepo crack]

    Crevice n. Narrow opening or fissure, esp. In rock etc. [french: related to *crevasse]

    Crew1 —n. (often treated as pl.) 1 a people manning a ship, aircraft, train, etc. B these as distinct from the captain or officers. C people working together; team. 2 colloq. Gang. —v. 1 supply or act as a crew or crew member for. 2 act as a crew. [latin cresco increase]

    Crew2 past of *crow2.

    Crew cut n. Close-cropped hairstyle.

    Crewel n. Thin worsted yarn for tapestry and embroidery. [origin unknown]

    Crewel-work n. Design in crewel.

    Crew neck n. Round close-fitting neckline.

    Crib —n. 1 a baby’s small bed or cot. B model of the nativity with a manger. 2 rack for animal fodder. 3 colloq. A translation of a text used by students. B plagiarized work etc. 4 colloq. A cribbage. B set of cards given to the dealer at cribbage. —v. (-bb-) (also absol.) 1 colloq. Copy unfairly. 2 confine in a small space. 3 colloq. Pilfer. [old english]

    Cribbage n. Card-game for up to four players. [origin unknown]

    Crick —n. Sudden painful stiffness, esp. In the neck. —v. Cause this in. [origin unknown]

    Cricket1 n. Team game played on a grass pitch, with bowling at a wicket defended by a batting player of the other team. not cricket colloq. Unfair behaviour. cricketer n. [origin uncertain]

    Cricket2 n. Grasshopper-like chirping insect. [french, imitative]

    Cri de cœur n. (pl. Cris de cœur pronunc. Same) passionate appeal, protest, etc. [french, = cry from the heart]

    Cried past and past part. Of *cry.

    Crier n. (also cryer) 1 person who cries. 2 official making public announcements in a lawcourt or street. [related to *cry]

    Crikey int. Slang expression of astonishment. [from *christ]

    Crime n. 1 a offence punishable by law. B illegal acts (resorted to crime). 2 evil act (crime against humanity). 3 colloq. Shameful act. [latin crimen]

    Criminal —n. Person guilty of a crime. —adj. 1 of, involving, or concerning crime. 2 guilty of crime. 3 law of or concerning criminal offences (criminal

    crime. 2 guilty of crime. 3 law of or concerning criminal offences (criminal code; criminal lawyer). 4 colloq. Scandalous, deplorable. criminality n. Criminally adv. [latin: related to *crime]

    Criminology n. The study of crime. criminologist n.

    Crimp —v. 1 press into small folds; corrugate. 2 make waves in (hair). —n. Crimped thing or form. [low german or dutch]

    Crimplene n. Propr. Synthetic crease-resistant fabric.

    Crimson —adj. Of a rich deep red. —n. This colour. [ultimately from arabic: related to *kermes]

    Cringe v. (-ging) 1 shrink in fear; cower. 2 (often foll. By to) behave obsequiously. [related to *crank]

    Crinkle —n. Wrinkle or crease. —v. (-ling) form crinkles (in). crinkly adj. [related to *cringe]

    Crinkle-cut adj. (of vegetables) with wavy edges.

    Crinoline n. 1 hist. Stiffened or hooped petticoat. 2 stiff fabric of horsehair etc. Used for linings, hats, etc. [french from latin crinis hair, linum thread]

    Cripple —n. Permanently lame person. —v. (-ling) 1 make a cripple of; lame. 2 disable, weaken, or damage seriously (crippled by strikes). [old english]

    Crisis n. (pl. Crises) 1 time of danger or great difficulty. 2 decisive moment; turning-point. [greek, = decision]

    Crisp —adj. 1 hard but brittle. 2 a (of air) bracing. B (of style or manner) lively, brisk and decisive. C (of features etc.) Neat, clear-cut. D (of paper) stiff and crackling. E (of hair) closely curling. —n. (in full potato crisp) potato sliced thinly, fried, and sold in packets. —v. Make or become crisp. crisply adv. Crispness n. [latin crispus curled]

    Crispbread n. 1 thin crisp biscuit of crushed rye etc. 2 these collectively (packet of crispbread).

    Crispy adj. (-ier, -iest) crisp. crispiness n.

    Criss-cross —n. Pattern of crossing lines. —adj. Crossing; in cross lines. —adv. Crosswise; at cross purposes. —v. 1 a intersect repeatedly. B move crosswise. 2 mark or make with a criss-cross pattern. [christ’s cross]

    Criterion n. (pl. -ria) principle or standard of judgement. [greek, = means of judging]

    Usage the plural form of criterion, criteria, is often used incorrectly as the singular. In the singular criterion should always be used.

    singular. In the singular criterion should always be used.

    Critic n. 1 person who criticizes. 2 person who reviews literary, artistic, etc. Works. [latin criticus from greek krites judge]

    Critical adj. 1 a fault-finding, censorious. B expressing or involving criticism. 2 skilful at or engaged in criticism. 3 providing textual criticism (critical edition of milton). 4 a of or at a crisis; dangerous, risky (in a critical condition). B decisive, crucial (at the critical moment). 5 a math. & physics marking a transition from one state etc. To another (critical angle). B (of a nuclear reactor) maintaining a self-sustaining chain reaction. critically adv. Criticalness n.

    Critical path n. Sequence of stages determining the minimum time needed for an operation.

    Criticism n. 1 a fault-finding; censure. B critical remark etc. 2 a work of a critic. B analytical article, essay, etc.

    Criticize v. (also -ise) (-zing or -sing) (also absol.) 1 find fault with; censure. 2 discuss critically.

    Critique n. Critical analysis. [french: related to *critic]

    Croak —n. Deep hoarse sound, esp. Of a frog. —v. 1 utter or speak with a croak. 2 slang die. [imitative]

    Croaky adj. (-ier, -iest) croaking; hoarse. croakily adv. Croakiness n.

    Croat (also croatian) —n. 1 a native of croatia in se europe. B person of croatian descent. 2 slavonic dialect of the croats. —adj. Of the croats or their dialect. [serbo-croatian hrvat]

    Crochet —n. Needlework in which yarn is hooked to make a lacy patterned fabric. —v. (crocheted; crocheting) (also absol.) Make using crochet. [french: related to *crotchet]

    Crock1 n. Colloq. Old or worn-out person or vehicle. [originally scots]

    Crock2 n. 1 earthenware pot or jar. 2 broken piece of this. [old english]

    Crockery n. Earthenware or china dishes, plates, etc. [related to *crock2]

    Crocodile n. 1 a large tropical amphibious reptile with thick scaly skin, a long tail, and long jaws. B (often attrib.) Its skin. 2 colloq. Line of schoolchildren etc. Walking in pairs. [greek krokodilos]

    Crocodile tears n.pl. Insincere grief.

    Crocus n. (pl. -cuses) small plant with white, yellow, or purple flowers, growing from a corm. [latin from greek]

    Croesus n. Person of great wealth. [name of a king of ancient lydia]

    Croesus n. Person of great wealth. [name of a king of ancient lydia]

    Croft —n. 1 enclosed piece of (usu. Arable) land. 2 small rented farm in scotland or n. England. —v. Farm a croft; live as a crofter. [old english]

    Crofter n. Person who farms a croft.

    Crohn’s disease n. Chronic inflammatory disease of the alimentary tract. [e. Crohn, name of a us pathologist]

    Croissant n. Crescent-shaped breakfast roll. [french: related to *crescent]

    Cromlech n. 1 dolmen. 2 prehistoric stone circle. [welsh]

    Crone n. Withered old woman. [dutch croonje carcass]

    Crony n. (pl. -ies) friend, companion. [greek khronios long-lasting]

    Crook —n. 1 hooked staff of a shepherd or bishop. 2 a bend, curve, or hook. B hooked or curved thing. 3 colloq. Rogue; swindler; criminal. —v. Bend, curve. [old norse]

    Crooked adj. (-er, -est) 1 not straight or level; bent. 2 colloq. Not straightforward; dishonest, criminal. crookedly adv. Crookedness n.

    straightforward; dishonest, criminal. crookedly adv. Crookedness n.

    Croon —v. Sing, hum, or say in a low sentimental voice. —n. Such singing etc. crooner n. [low german or dutch]

    Crop —n. 1 a produce of cultivated plants, esp. Cereals. B season’s yield. 2 group, yield, etc., of one time or place (a new crop of students). 3 handle of a whip. 4 a very short haircut. B cropping of hair. 5 pouch in a bird’s gullet where food is prepared for digestion. —v. (-pp-) 1 a cut off. B bite off. 2 cut (hair etc.) Short. 3 (foll. By with) sow or plant (land) with a crop. 4 (of land) bear a crop. crop up occur unexpectedly. [old english]

    Crop circle n. Circle of crops that has been inexplicably flattened.

    Crop-eared adj. With the ears (esp. Of animals) or hair cut short.

    Cropper n. Crop-producing plant of a specified quality. come a cropper slang fall heavily; fail badly.

    Croquet —n. 1 lawn game in which wooden balls are driven through hoops with mallets. 2 act of croqueting a ball. —v. (croqueted; croqueting) drive away (an opponent’s ball) by placing and then striking one’s own against it. [perhaps a dial. Form of french crochet hook]

    Croquette n. Ball of breaded and fried mashed potato etc. [french croquer crunch]

    Crosier n. (also crozier) bishop’s ceremonial hooked staff. [french croisier cross-

    Crosier n. (also crozier) bishop’s ceremonial hooked staff. [french croisier cross-bearer and crossier crook-bearer]

    Cross —n. 1 upright post with a transverse bar, as used in antiquity for crucifixion. 2 a (the cross) cross on which christ was crucified. B representation of this as an emblem of christianity. C = *sign of the cross. 3 staff surmounted by a cross, carried in a religious procession. 4 thing or mark like a cross, esp. Two short intersecting lines (+ or x). 5 cross-shaped military etc. Decoration. 6 a hybrid. B crossing of breeds etc. 7 (foll. By between) mixture of two things. 8 crosswise movement, pass in football, etc. 9 trial or affliction. —v. 1 (often foll. By over) go across. 2 intersect; (cause to) be across (roads cross; cross one’s legs). 3 a draw line(s) across. B mark (a cheque) with two parallel lines to indicate that it cannot be cashed. 4 (foll. By off, out, through) cancel etc. By drawing lines across. 5 (often refl.) Make the sign of the cross on or over. 6 a pass in opposite or different directions. B (of letters etc.) Be sent at the same time. C (of telephone lines) be connected to an unwanted conversation. 7 a cause to interbreed. B cross-fertilize (plants). 8 oppose or thwart (crossed in love). — adj. 1 (often foll. By with) peevish, angry. 2 (usu. Attrib.) Transverse; reaching from side to side. 3 (usu. Attrib.) Intersecting. 4 (usu. Attrib.) Contrary, opposed, reciprocal. at cross purposes misunderstanding; conflicting. Cross one’s fingers (or keep one’s fingers crossed) 1 put one finger across another to ward off bad luck. 2 trust in good luck. Cross one’s heart make a solemn pledge, esp. By crossing one’s front. Cross one’s mind occur to one, esp. Transiently. Cross swords (often foll. By with) argue or dispute. Cross wires (or get one’s wires crossed) 1 become wrongly connected by telephone. 2 have a misunderstanding. On the cross diagonally. crossly adv. Crossness n. [latin crux]

    Crossbar n. Horizontal bar, esp. That on a man’s bicycle.

    Cross-bench n. Seat in the house of lords for non-party members. cross-bencher n.

    Crossbill n. Finch with a bill with crossed mandibles for opening pine cones.

    Crossbones see *skull and crossbones.

    Crossbow n. Bow fixed on a wooden stock, with a groove for an arrow.

    Crossbreed —n. 1 hybrid breed of animals or plants. 2 individual hybrid. —v. Produce by crossing.

    Cross-check —v. Check by alternative method(s). —n. Such a check.

    Cross-country —adj. & adv. 1 across open country. 2 not keeping to main roads. —n. (pl. -ies) cross-country race.

    Cross-cut —adj. Cut across the main grain. —n. Diagonal cut, path, etc.

    Cross-cut saw n. Saw for cross-cutting.

    Cross-dressing n. Practice of dressing in the clothes of the opposite sex. cross-dress v.

    Crosse n. Lacrosse stick. [french]

    Cross-examine v. Question (esp. An opposing witness in a lawcourt). cross-

    Cross-examine v. Question (esp. An opposing witness in a lawcourt). cross-examination n.

    Cross-eyed adj. Having one or both eyes turned inwards.

    Cross-fertilize v. (also -ise) 1 fertilize (an animal or plant) from one of a different species. 2 interchange ideas etc. cross-fertilization n.

    Crossfire n. 1 firing in two crossing directions simultaneously. 2 a attack or criticism from all sides. B combative exchange of views etc.

    Cross-grain n. Grain in timber, running across the regular grain.

    Cross-grained adj. 1 having a cross-grain. 2 perverse, intractable.

    Cross-hatch v. Shade with crossing parallel lines.

    Crossing n. 1 place where things (esp. Roads) cross. 2 place for crossing a street etc. 3 journey across water.

    Cross-legged adj. (sitting) with legs folded one across the other.

    Crossover —n. 1 point or place of crossing. 2 process of crossing over, esp. From one style or genre to another. —attrib. Adj. That crosses over, esp. From one style or genre to another.

    Crosspatch n. Colloq. Bad-tempered person.

    Crosspiece n. Transverse beam etc.

    Crossply adj. (of a tyre) having fabric layers with crosswise cords.

    Cross-question v. = *cross-examine.

    Cross-refer v. (-rr-) refer from one part of a book etc. To another.

    Cross-reference —n. Reference from one part of a book etc. To another. —v. Provide with cross-references.

    Crossroad n. (usu. In pl.) Intersection of two or more roads. at the crossroads at the critical point.

    Cross-section n. 1 a a cutting across a solid. B plane surface so produced. C drawing etc. Of this. 2 representative sample. cross-sectional adj.

    Cross-stitch n. Cross-shaped stitch.

    Crosstalk n. 1 unwanted signals between communication channels. 2 witty

    Crosstalk n. 1 unwanted signals between communication channels. 2 witty repartee.

    Crossways adv. = *crosswise.

    Crosswind n. Wind blowing across one’s path etc.

    Crosswise adj. & adv. 1 in the form of a cross; intersecting. 2 diagonal or diagonally.

    Crossword n. (also crossword puzzle) printed grid of squares and blanks for vertical and horizontal words to be filled in from clues.

    Crotch n. Fork, esp. Between legs (of a person, trousers, etc.). [related to *crook]

    Crotchet n. Mus. Note equal to a quarter of a semibreve and usu. One beat. [french diminutive of croc: related to *crook]

    Crotchety adj. Peevish, irritable.

    Crouch —v. Lower the body with limbs close to the chest; be in this position. — n. Crouching; crouching position. [old norse: related to *crook]

    Croup1 n. Childhood inflammation of the larynx etc., with a hard cough. [imitative]

    [imitative]

    Croup2 n. Rump, esp. Of a horse. [french: related to *crop]

    Croupier n. Person running a gaming-table, raking in and paying out money etc. [french: related to *croup2]

    Croûton n. Small cube of fried or toasted bread served with soup etc. [french: related to *crust]

    Crow1 n. 1 large black bird with a powerful black beak. 2 similar bird, e.g. The raven, rook, and jackdaw. as the crow flies in a straight line. [old english]

    Crow2 —v. 1 (past crowed or crew) (of a cock) utter a loud cry. 2 (of a baby) utter happy cries. 3 (usu. Foll. By over) gloat; show glee. —n. Cry of a cock or baby. [old english]

    Crowbar n. Iron bar with a flattened end, used as a lever.

    Crowd —n. 1 large gathering of people. 2 spectators; audience. 3 colloq. Particular set of people. 4 (prec. By the) majority. —v. 1 a (cause to) come together in a crowd. B force one’s way (crowded into the cinema). 2 a (foll. By into) force or compress into a confined space. B (often foll. By with; usu. In passive) fill or make full of. 3 colloq. Come aggressively close to. crowd out exclude by crowding. crowdedness n. [old english]

    Crown —n. 1 monarch’s jewelled headdress. 2 (the crown) a monarch as head of state. B power or authority of the monarchy. 3 a wreath for the head as an emblem of victory. B award or distinction, esp. In sport. 4 crown-shaped ornament etc. 5 top part of the head, a hat, etc. 6 a highest or central part (crown of the road). B thing that completes or forms a summit. 7 a part of a tooth visible outside the gum. B artificial replacement for this. 8 former british coin worth five shillings. —v. 1 put a crown on (a person or head). 2 invest with a royal crown or authority. 3 be a crown to; rest on top of. 4 a (often as crowning adj.) (cause to) be the reward, summit, or finishing touch to (crowning glory). B bring to a happy outcome. 5 fit a crown to (a tooth). 6 slang hit on the head. 7 promote (a piece in draughts) to king. [latin corona]

    Crown colony n. British colony controlled by the crown.

    Crown court n. Court of criminal jurisdiction in england and wales.

    Crown derby n. Porcelain made at derby and often marked with a crown.

    Crown glass n. Glass without lead or iron used formerly in windows, now as optical glass of low refractive index.

    Crown jewels n.pl. Sovereign’s state regalia etc.

    Crown prince n. Male heir to a throne.

    Crown princess n. 1 wife of a crown prince. 2 female heir to a throne.

    Crown wheel n. Wheel with teeth at right angles to its plane.

    Crown wheel n. Wheel with teeth at right angles to its plane.

    Crow’s-foot n. Wrinkle near the eye.

    Crow’s-nest n. Shelter at a sailing-ship’s masthead for a lookout man.

    Crozier var. Of *crosier.

    Crt abbr. Cathode-ray tube.

    Cru n. 1 french vineyard or wine region. 2 grade of wine. [french crû grown]

    Cruces pl. Of *crux.

    Crucial adj. 1 decisive, critical. 2 very important. crucially adv. [latin crux crucis cross]

    Usage the use of crucial in sense 2 should be restricted to informal contexts.

    Crucible n. 1 melting-pot for metals etc. 2 severe test. [medieval latin: related to *crucial]

    Cruciferous adj. Having flowers with four petals arranged in a cross. [latin: related to *crucial]

    Crucifix n. Model of a cross with the figure of christ on it. [latin cruci fixus fixed to a cross]

    Crucifixion n. 1 crucifying or being crucified. 2 (crucifixion) crucifixion of christ. [church latin: related to *crucifix]

    Cruciform adj. Cross-shaped. [latin crux crucis cross]

    Crucify v. (-ies, -ied) 1 put to death by fastening to a cross. 2 persecute, torment. 3 slang defeat thoroughly; humiliate. [french: related to *crucifix]

    Crud n. Slang 1 deposit of grease etc. 2 unpleasant person. cruddy adj. (-ier, -iest). [var. Of *curd]

    Crude —adj. 1 a in the natural state; not refined. B unpolished; lacking finish. 2 a rude, blunt. B offensive, indecent. 3 inexact. —n. Natural mineral oil. crudely adv. Crudeness n. Crudity n. [latin crudus raw]

    Crudités n.pl. Hors d’œuvre of mixed raw vegetables. [french]

    Cruel adj. (crueller, cruellest or crueler, cruelest) 1 causing pain or suffering, esp. Deliberately. 2 harsh, severe (a cruel blow). cruelly adv. Cruelness n. Cruelty n. (pl. -ies). [latin: related to *crude]

    Cruelty n. (pl. -ies). [latin: related to *crude]

    Cruet n. 1 set of small salt, pepper, etc. Containers for use at table. 2 such a container. [anglo-french diminutive: related to *crock2]

    Cruise —v. (-sing) 1 a travel by sea for pleasure, calling at ports. B sail about. 2 travel at a relaxed or economical speed. 3 achieve an objective, esp. Win a race etc. With ease. 4 slang search for a sexual (esp. Homosexual) partner in bars, streets, etc. —n. Cruising voyage. [dutch: related to *cross]

    Cruise missile n. One able to fly low and guide itself.

    Cruiser n. 1 high-speed warship. 2 = *cabin cruiser.

    Cruiserweight n. = *light heavyweight.

    Crumb —n. 1 a small fragment, esp. Of bread. B small particle (crumb of comfort). 2 bread without crusts. 3 slang objectionable person. —v. Cover with or break into breadcrumbs. [old english]

    Crumble —v. (-ling) 1 break or fall into small fragments. 2 (of power etc.) Gradually disintegrate. —n. Dish of stewed fruit with a crumbly topping.

    Crumbly adj. (-ier, -iest) consisting of, or apt to fall into, crumbs or fragments. crumbliness n.

    Crumbs int. Slang expressing dismay or surprise. [euphemism for *christ]

    Crumby adj. (-ier, -iest) 1 like or covered in crumbs. 2 = *crummy.

    Crumhorn var. Of *krummhorn.

    Crummy adj. (-ier, -iest) slang dirty, squalid; inferior, worthless. crumminess n. [var. Of *crumby]

    Crumpet n. 1 soft flat yeasty cake toasted and buttered. 2 joc. Or offens. Sexually attractive woman or women. [origin uncertain]

    Crumple —v. (-ling) (often foll. By up) 1 crush or become crushed into creases or wrinkles. 2 collapse, give way. —n. Crease or wrinkle. [obsolete crump curl up]

    Crunch —v. 1 a crush noisily with the teeth. B grind under foot, wheels, etc. 2 (often foll. By up, through) make a crunching sound. —n. 1 crunching; crunching sound. 2 colloq. Decisive event or moment. [imitative]

    Crunchy adj. (-ier, -iest) hard and crisp. crunchiness n.

    Crupper n. 1 strap looped under a horse’s tail to hold the harness back. 2 hindquarters of a horse. [french: related to *croup2]

    Crusade —n. 1 hist. Any of several medieval military expeditions made by europeans to recover the holy land from the muslims. 2 vigorous campaign for a cause. —v. (-ding) engage in a crusade. crusader n. [french: related to *cross]

    Cruse n. Archaic earthenware pot. [old english]

    Crush —v. 1 compress with force or violence, so as to break, bruise, etc. 2 reduce to powder by pressure. 3 crease or crumple. 4 defeat or subdue completely. —n. 1 act of crushing. 2 crowded mass of people. 3 drink from the juice of crushed fruit. 4 (usu. Foll. By on) colloq. Infatuation. [french]

    Crust —n. 1 a hard outer part of bread. B hard dry scrap of bread. C slang livelihood. 2 pastry covering of a pie. 3 hard casing over a soft thing. 4 outer portion of the earth. 5 deposit, esp. From wine on a bottle. —v. Cover or become covered with or form into a crust. [latin crusta rind, shell]

    Crustacean —n. Esp. Aquatic arthropod with a hard shell, e.g. The crab, lobster, and shrimp. —adj. Of crustaceans.

    Crusty adj. (-ier, -iest) 1 having a crisp crust. 2 irritable, curt. crustily adv. Crustiness n.

    Crutch n. 1 usu. T-shaped support for a lame person fitting under the armpit. 2 support, prop. 3 crotch. [old english]

    Crux n. (pl. Cruxes or cruces) decisive point at issue. [latin, = cross]

    Crux n. (pl. Cruxes or cruces) decisive point at issue. [latin, = cross]

    Cruzado n. (pl. -s) chief monetary unit of brazil. [portuguese]

    Cruzeiro n. (pl. -s) one-thousandth of a cruzado. [portuguese]

    Cry —v. (cries, cried) 1 (often foll. By out) make a loud or shrill sound, esp. To express pain, grief, etc., or to appeal for help. 2 shed tears; weep. 3 (often foll. By out) say or exclaim loudly or excitedly. 4 (foll. By for) appeal, demand, or show a need for. 5 (of an animal, esp. A bird) make a loud call. —n. (pl. Cries) 1 loud shout or scream of grief, pain, etc. 2 spell of weeping. 3 loud excited utterance. 4 urgent appeal. 5 a public demand or opinion. B rallying call. 6 call of an animal. cry down disparage. Cry off withdraw from an undertaking. Cry out for need as an obvious requirement or solution. Cry wolf see *wolf. [latin quirito]

    Cry-baby n. Person who weeps frequently.

    Cryer var. Of *crier.

    Crying attrib. Adj. (of injustice etc.) Flagrant, demanding redress.

    Cryogenics n. Branch of physics dealing with very low temperatures. cryogenic adj. [greek kruos frost, -genes born]

    Crypt n. Vault, esp. Beneath a church, used usu. As a burial-place. [latin crypta

    Crypt n. Vault, esp. Beneath a church, used usu. As a burial-place. [latin crypta from greek kruptos hidden]

    Cryptic adj. Obscure in meaning; secret, mysterious. cryptically adv.

    Cryptogam n. Plant with no true flowers or seeds, e.g. Ferns, mosses, and fungi. cryptogamous adj. [as *crypt, greek gamos marriage]

    Cryptogram n. Text written in cipher. [related to *crypt]

    Cryptography n. Art of writing or solving ciphers. cryptographer n. Cryptographic adj.

    Crystal —n. 1 a transparent colourless mineral, esp. Rock crystal. B piece of this. 2 a highly transparent glass; flint glass. B articles of this. 3 crystalline piece of semiconductor. 4 aggregation of molecules with a definite internal structure and the external form of a solid enclosed by symmetrically arranged plane faces. —adj. (usu. Attrib.) Made of, like, or clear as crystal. [greek krustallos]

    Crystal ball n. Glass globe used in crystal-gazing.

    Crystal-gazing n. Supposed foretelling of the future by gazing into a crystal ball.

    Crystalline adj. 1 of, like, or clear as crystal. 2 having the structure and form of a crystal. crystallinity n.

    Crystallize v. (also -ise) (-zing or -sing) 1 form into crystals. 2 (often foll. By out) (of ideas or plans) make or become definite. 3 make or become coated or impregnated with sugar (crystallized fruit). crystallization n.

    Crystallography n. Science of crystal formation and structure. crystallographer n.

    Crystalloid n. Substance that in solution is able to pass through a semipermeable membrane.

    Cs symb. Caesium.

    C/s abbr. Cycles per second.

    Cse abbr. Hist. Certificate of secondary education.

    Usage the cse examination was replaced in 1988 by gcse.

    Cs gas n. Tear-gas used to control riots etc. [corson and stoughton, names of chemists]

    Ctc abbr. City technology college.

    Cu symb. Copper. [latin cuprum]

    Cu. Abbr. Cubic.

    Cub —n. 1 young of a fox, bear, lion, etc. 2 (cub) (in full cub scout) junior scout. 3 colloq. Young newspaper reporter. —v. (-bb-) (also absol.) Give birth to (cubs). [origin unknown]

    Cubby-hole n. 1 very small room. 2 snug space. [low german]

    Cube —n. 1 solid contained by six equal squares. 2 cube-shaped block. 3 product of a number multiplied by its square. —v. (-bing) 1 find the cube of (a number). 2 cut (food etc.) Into small cubes. [latin from greek]

    Cube root n. Number which produces a given number when cubed.

    Cubic adj. 1 cube-shaped. 2 of three dimensions. 3 involving the cube (and no higher power) of a number (cubic equation).

    Cubical adj. Cube-shaped.

    Cubicle n. 1 small screened space. 2 small separate sleeping-compartment. [latin cubo lie]

    Cubic metre etc. N. Volume of a cube whose edge is one metre etc.

    Cubism n. Style in art, esp. Painting, in which objects are represented geometrically. cubist n. & adj.

    Cubit n. Ancient measure of length, approximating to the length of a forearm. [latin cubitum elbow]

    Cuboid —adj. Cube-shaped; like a cube. —n. Geom. Rectangular parallelepiped.

    Cuckold —n. Husband of an adulteress. —v. Make a cuckold of. cuckoldry n. [french]

    Cuckoo —n. Bird having a characteristic cry, and laying its eggs in the nests of small birds. —predic. Adj. Slang crazy. [french, imitative]

    Cuckoo clock n. Clock with the figure of a cuckoo emerging to make a call on the hour.

    Cuckoo-pint n. Wild arum.

    Cuckoo-spit n. Froth exuded by insect larvae on leaves, stems, etc.

    Cucumber n. 1 long green fleshy fruit, used in salads. 2 climbing plant yielding this. [french from latin]

    Cud n. Half-digested food returned to the mouth of ruminants for further chewing. [old english]

    Cuddle —v. (-ling) 1 hug, fondle. 2 nestle together, lie close and snug. —n. Prolonged and fond hug. cuddlesome adj. [origin uncertain]

    Cuddly adj. (-ier, -iest) 1 (of a person, toy, etc.) Soft and yielding. 2 given to cuddling.

    Cudgel —n. Short thick stick used as a weapon. —v. (-ll-; us -l-) beat with a cudgel. [old english]

    Cue1 —n. 1 a last words of an actor’s speech as a signal to another to enter or speak. B similar signal to a musician etc. 2 a stimulus to perception etc. B signal for action. C hint on appropriate behaviour. 3 cueing audio equipment (see sense 2 of v.). —v. (cues, cued, cueing or cuing) 1 give a cue to. 2 put (audio equipment) in readiness to play a particular section. cue in 1 insert a cue for. 2 give information to. On cue at the correct moment. [origin unknown]

    Cue2 billiards etc. —n. Long rod for striking a ball. —v. (cues, cued, cueing or cuing) strike (a ball) with or use a cue. [var. Of *queue]

    Cue-ball n. Ball to be struck with a cue.

    Cuff1 n. 1 end part of a sleeve. 2 us trouser turn-up. 3 (in pl.) Colloq. Handcuffs. off the cuff colloq. Without preparation, extempore. [origin unknown]

    Cuff2 —v. Strike with an open hand. —n. Such a blow. [perhaps imitative]

    Cuff-link n. Two joined studs etc. For fastening a cuff.

    Cufic var. Of *kufic.

    Cuirass n. Armour breastplate and back-plate fastened together. [latin corium leather]

    Cuisine n. Style or method of cooking. [french]

    Cul-de-sac n. (pl. Culs-de-sac pronunc. Same, or cul-de-sacs) 1 road etc. With a dead end. 2 futile course. [french, = sack-bottom]

    -cule suffix forming (orig. Diminutive) nouns (molecule). [latin -culus]

    Culinary adj. Of or for cooking. [latin culina kitchen]

    Cull —v. 1 select or gather (knowledge culled from books). 2 gather (flowers etc.). 3 a select (animals), esp. For killing. B reduce the population of (an animal) by selective slaughter. —n. 1 culling or being culled. 2 animal(s) culled. [french: related to *collect1]

    Culminate v. (-ting) (usu. Foll. By in) reach its highest or final point (culminate in war). culmination n. [latin culmen top]

    Culottes n.pl. Women’s trousers cut like a skirt. [french, = knee-breeches]

    Culpable adj. Deserving blame. culpability n. [latin culpo blame]

    Culprit n. Guilty person. [perhaps from anglo-french culpable: see *culpable]

    Cult n. 1 religious system, sect, etc., esp. Ritualistic. 2 a devotion to a person or thing (cult of aestheticism). B fashion. C (attrib.) Fashionable (cult film). [latin: related to *cultivate]

    Cultivar n. Plant variety produced by cultivation. [from *cultivate, *variety]

    Cultivate v. (-ting) 1 prepare and use (soil etc.) For crops or gardening. 2 a raise (crops). B culture (bacteria etc.). 3 a (often as cultivated adj.) Improve (the mind, manners, etc.). B nurture (a person, friendship, etc.). cultivable adj. Cultivation n. [latin colo cult-till, worship]

    Cultivator n. 1 mechanical implement for breaking up the ground etc. 2 person or thing that cultivates.

    Cultural adj. Of or relating to intellectual or artistic matters, or to a specific

    Cultural adj. Of or relating to intellectual or artistic matters, or to a specific culture. culturally adv.

    Culture —n. 1 a intellectual and artistic achievement or expression (city lacking in culture). B refined appreciation of the arts etc. (person of culture). 2 customs, achievements, etc. Of a particular civilization or group (chinese culture). 3 improvement by mental or physical training. 4 cultivation of plants; rearing of bees etc. 5 quantity of micro-organisms and nutrient material supporting their growth. —v. (-ring) maintain (bacteria etc.) In suitable growth conditions. [latin: related to *cultivate]

    Cultured adj. Having refined taste etc.

    Cultured pearl n. Pearl formed by an oyster after the insertion of a foreign body into its shell.

    Culture shock n. Disorientation felt by a person subjected to an unfamiliar way of life.

    Culture vulture n. Colloq. Person eager for cultural pursuits.

    Culvert n. Underground channel carrying water under a road etc. [origin unknown]

    Cum prep. (usu. In comb.) With, combined with, also used as (bedroom-cum-study). [latin]

    Cumbersome adj. (also cumbrous) inconveniently bulky etc.; unwieldy. [cumber

    Cumbersome adj. (also cumbrous) inconveniently bulky etc.; unwieldy. [cumber hinder]

    Cumin n. (also cummin) 1 plant with aromatic seeds. 2 these as flavouring. [greek kuminon]

    Cummerbund n. Waist sash. [hindustani and persian]

    Cumquat var. Of *kumquat.

    Cumulative adj. 1 increasing or increased progressively in amount, force, etc. (cumulative evidence). 2 formed by successive additions (learning is a cumulative process). cumulatively adv.

    Cumulus n. (pl. -li) cloud formation of rounded masses heaped up on a flat base. [latin, = heap]

    Cuneiform —adj. 1 wedge-shaped. 2 of or using wedge-shaped writing. —n. Cuneiform writing. [latin cuneus wedge]

    Cunnilingus n. Oral stimulation of the female genitals. [latin cunnus vulva, lingo lick]

    Cunning —adj. (-er, -est) 1 deceitful, clever, or crafty. 2 ingenious (cunning device). 3 us attractive, quaint. —n. 1 craftiness; deception. 2 skill, ingenuity. cunningly adv. [old norse: related to *can1]

    cunningly adv. [old norse: related to *can1]

    Cunt n. Coarse slang 1 female genitals. 2 offens. Unpleasant person. [origin uncertain]

    Cup —n. 1 small bowl-shaped container for drinking from. 2 a its contents. B = *cupful. 3 cup-shaped thing. 4 flavoured wine, cider, etc., usu. Chilled. 5 cup-shaped trophy as a prize. 6 one’s fate or fortune (a bitter cup). —v. (-pp-) 1 form (esp. The hands) into the shape of a cup. 2 take or hold as in a cup. one’s cup of tea colloq. What interests or suits one. [medieval latin cuppa]

    Cupboard n. Recess or piece of furniture with a door and (usu.) Shelves.

    Cupboard love n. False affection for gain.

    Cup final n. Final match in a (esp. Football) competition.

    Cupful n. (pl. -s) 1 amount held by a cup, esp. Us a half-pint or 8-ounce measure. 2 full cup.

    Usage a cupful is a measure, and so three cupfuls is a quantity regarded in terms of a cup; three cups full denotes the actual cups as in brought us three cups full of water.

    Cupid n. 1 roman god of love, represented as a naked winged boy archer. 2 (also cupid) representation of cupid. [latin cupio desire]

    cupid) representation of cupid. [latin cupio desire]

    Cupidity n. Greed; avarice. [latin: related to *cupid]

    Cupid’s bow n. Upper lip etc. Shaped like an archery bow.

    Cupola n. 1 dome forming or adorning a roof. 2 revolving dome protecting mounted guns. 3 furnace for melting metals. cupolaed adj. [italian from latin cupa cask]

    Cuppa n. Colloq. 1 cup of. 2 cup of tea. [corruption]

    Cupreous adj. Of or like copper. [latin: related to *copper1]

    Cupric adj. Of copper.

    Cupro-nickel n. Alloy of copper and nickel.

    Cup-tie n. Match in a competition for a cup.

    Cur n. 1 mangy ill-tempered dog. 2 contemptible person. [perhaps from old norse kurr grumbling]

    Curable adj. Able to be cured. curability n.

    Curaçao n. (pl. -s) orange-flavoured liqueur. [curaçao, caribbean island]

    Curacy n. (pl. -ies) curate’s office or tenure of it.

    Curare n. Extract of various plants, used by american indians to poison arrows. [carib]

    Curate n. Assistant to a parish priest. [medieval latin curatus: related to *cure]

    Curate’s egg n. Thing that is good in parts.

    Curative —adj. Tending or able to cure. —n. Curative agent. [medieval latin: related to *curate]

    Curator n. Keeper or custodian of a museum etc. curatorship n. [anglo-latin: related to *cure]

    Curb —n. 1 check, restraint. 2 strap etc. Passing under a horse’s lower jaw, used as a check. 3 enclosing border, e.g. The frame round a well or a fender round a hearth. 4 = kerb. —v. 1 restrain. 2 put a curb on (a horse). [french: related to curve]

    Curd n. (often in pl.) Coagulated acidic milk product made into cheese or eaten as food. [origin unknown]

    Curd cheese n. Soft smooth cheese made from skimmed milk curds.

    Curdle v. (-ling) form into curds; congeal. make one’s blood curdle horrify one. [from *curd]

    Cure —v. (-ring) 1 (often foll. By of) restore to health; relieve (cured of pleurisy). 2 eliminate (disease, evil, etc.). 3 preserve (meat, fruit, etc.) By salting, drying, etc. 4 vulcanize (rubber); harden (plastic etc.). —n. 1 restoration to health. 2 thing effecting a cure. 3 course of treatment. 4 curacy. [latin cura care]

    Curé n. Parish priest in france etc. [french]

    Cure-all n. Panacea.

    Curette —n. Surgeon’s small scraping-instrument. —v. (-tting) clean or scrape with this. curettage n. [french: related to *cure]

    Curfew n. 1 signal or time after which people must remain indoors. 2 hist. Signal for extinction of fires at a fixed hour. [french: related to cover, latin focus]

    Curia n. (also curia) papal court; government departments of the vatican. [latin]

    Curie n. Unit of radioactivity. [p. Curie, name of a scientist]

    Curie n. Unit of radioactivity. [p. Curie, name of a scientist]

    Curio n. (pl. -s) rare or unusual object. [abbreviation of *curiosity]

    Curiosity n. (pl. -ies) 1 eager desire to know; inquisitiveness. 2 strange, rare, etc. Object. [latin: related to *curious]

    Curious adj. 1 eager to learn; inquisitive. 2 strange, surprising, odd. curiously adv. [latin: related to *cure]

    Curium n. Artificial radioactive metallic element. [m. And p. Curie, name of scientists]

    Curl —v. 1 (often foll. By up) bend or coil into a spiral. 2 move in a spiral form. 3 a (of the upper lip) be raised contemptuously. B cause (the lip) to do this. 4 play curling. —n. 1 lock of curled hair. 2 anything spiral or curved inwards. 3 a curling movement. B being curled. curl one’s lip express scorn. Curl up 1 lie or sit with the knees drawn up. 2 colloq. Writhe in embarrassment etc. [dutch]

    Curler n. Pin or roller etc. For curling the hair.

    Curlew n. Wading bird, usu. With a long slender bill. [french]

    Curlicue n. Decorative curl or twist. [from *curly, cue2 or q1]

    Curling n. Game resembling bowls, played on ice with round flat stones.

    Curly adj. (-ier, -iest) 1 having or arranged in curls. 2 moving in curves. curliness n.

    Curly kale n. = *kale.

    Curmudgeon n. Bad-tempered person. curmudgeonly adj. [origin unknown]

    Currant n. 1 small seedless dried grape. 2 a any of various shrubs producing red, white, or black berries. B such a berry. [anglo-french from corinth in greece]

    Currency n. (pl. -ies) 1 a money in use in a country. B other commodity used as money. 2 being current; prevalence (e.g. Of words or ideas).

    Current —adj. 1 belonging to the present; happening now (current events). 2 (of money, opinion, rumour, etc.) In general circulation or use. —n. 1 body of moving water, air, etc., esp. Passing through still water etc. 2 a ordered movement of electrically charged particles. B quantity representing the intensity of this. 3 (usu. Foll. By of) general tendency or course (of events, opinions, etc.). currentness n. [latin curro curs-run]

    Current account n. Instantly accessible bank account.

    Currently adv. At the present time; now.

    Curriculum n. (pl. -la) subjects included in a course of study. [latin, = course]

    Curriculum vitae n. Brief account of one’s education, career, etc.

    Curry1 —n. (pl. -ies) meat, vegetables, etc., cooked in a spicy sauce, usu. Served with rice. —v. (-ies, -ied) prepare or flavour with a curry sauce. [tamil]

    Curry2 v. (-ies, -ied) 1 groom (a horse) with a curry-comb. 2 treat (tanned leather) to improve it. curry favour ingratiate oneself. [germanic: related to *ready]

    Curry-comb n. Metal serrated device for grooming horses.

    Curry-powder n. Mixture of turmeric, cumin, etc. For making curry.

    Curse —n. 1 solemn invocation of divine wrath on a person or thing. 2 supposed resulting evil. 3 violent or profane exclamation or oath. 4 thing causing evil or harm. 5 (prec. By the) colloq.

    Cursed attrib. Adj. Damned.

    Cursive —adj. (of writing) with joined characters. —n. Cursive writing. [medieval latin, = running: related to *current]

    Cursor n. 1 math. Etc. Transparent slide with a hairline, forming part of a slide-rule. 2 computing indicator on a vdu screen identifying esp. The position that the program will operate on with the next keystroke. [latin, = runner: related to *cursive]

    Cursory adj. Hasty, hurried. cursorily adv. Cursoriness n. [latin: related to *cursor]

    Curt adj. Noticeably or rudely brief. curtly adv. Curtness n. [latin curtus short]

    Curtail v. Cut short; reduce. curtailment n. [corruption of obsolete adj. Curtal: related to *curt]

    Curtain —n. 1 piece of cloth etc. Hung as a screen, esp. At a window. 2 a rise or fall of a stage curtain between acts or scenes. B = *curtain-call. 3 partition or cover. 4 (in pl.) Slang the end. —v. 1 provide or cover with curtain(s). 2 (foll. By off) shut off with curtain(s). [latin cortina]

    Curtain-call n. Audience’s applause summoning actors to take a bow.

    Curtain-raiser n. 1 short play before the main performance. 2 preliminary event.

    Curtilage n. Esp. Law area attached to a house and forming one enclosure with it. [french: related to *court]

    Curtsy (also curtsey) —n. (pl. -ies or -eys) bending of the knees and lowering of the body made by a girl or woman in acknowledgement of applause or as a respectful greeting etc. —v. (-ies, -ied or -eys, -eyed) make a curtsy. [var. Of *courtesy]

    Curvaceous adj. Colloq. (esp. Of a woman) having a shapely figure.

    Curvature n. 1 curving. 2 curved form. 3 deviation of a curve or curved surface from a plane. [french from latin: related to *curve]

    Curve —n. 1 line or surface of which no part is straight or flat. 2 curved form or thing. 3 curved line on a graph. —v. (-ving) bend or shape to form a curve. curved adj. [latin curvus curved]

    Curvet —n. Horse’s frisky leap. —v. (-tt-or -t-) perform a curvet. [italian diminutive: related to *curve]

    Curvilinear adj. Contained by or consisting of curved lines. curvilinearly adv. [from *curve after rectilinear]

    Curvy adj. (-ier, -iest) 1 having many curves. 2 (of a woman’s figure) shapely. curviness n.

    Cushion —n. 1 bag stuffed with soft material, for sitting or leaning on etc. 2 protection against shock; measure to soften a blow. 3 padded rim of a billiard-

    table etc. 4 air supporting a hovercraft etc. —v. 1 provide or protect with cushion(s). 2 mitigate the adverse effects of. [latin culcita mattress]

    Cushy adj. (-ier, -iest) colloq. (of a job etc.) Easy and pleasant. [hindi khush pleasant]

    Cusp n. Point at which two curves meet, e.g. The horn of a crescent moon etc. [latin cuspis -id-point, apex]

    Cuss colloq. —n. 1 curse. 2 usu. Derog. Person; creature. —v. Curse. [var. Of *curse]

    Cussed adj. Colloq. Stubborn. cussedness n.

    Custard n. Pudding or sweet sauce of eggs or flavoured cornflour and milk. [obsolete crustade: related to *crust]

    Custodian n. Guardian or keeper. custodianship n.

    Custody n. 1 guardianship; protective care. 2 imprisonment. take into custody arrest. custodial adj. [latin custos -od-guard]

    Custom n. 1 a usual behaviour. B particular established way of behaving. 2 law established usage having the force of law. 3 regular business dealings or customers. 4 (in pl.; also treated as sing.) A duty on imports and exports. B

    official department administering this. C area at a port, frontier, etc., dealing with customs etc. [latin consuetudo]

    Customary adj. In accordance with custom, usual. customarily adv. Customariness n. [medieval latin: related to *custom]

    Custom-built adj. (also custom-made) made to order.

    Customer n. 1 person who buys goods or services from a shop or business. 2 colloq. Person of a specified kind (awkward customer). [anglo-french: related to *custom]

    Custom-house n. Customs office at a port or frontier etc.

    Customize v. (also -ise) (-zing or -sing) make or modify to order; personalize.

    Cut —v. (-tt-; past and past part. Cut) 1 (also absol.) Penetrate or wound with a sharp-edged instrument. 2 (often foll. By into) divide or be divided with a knife etc. 3 trim or detach by cutting. 4 (foll. By loose, open, etc.) Loosen etc. By cutting. 5 (esp. As cutting adj.) Wound (cutting remark). 6 (often foll. By down) reduce (wages, time, etc.) Or cease (services etc.). 7 a make (a coat, gem, key, record, etc.) By cutting. B make (a path, tunnel, etc.) By removing material. 8 perform, make (cut a caper; cut a sorry figure). 9 (also absol.) Cross, intersect. 10 (foll. By across, through, etc.) Traverse, esp. As a shorter way (cut across the grass). 11 a deliberately ignore (a person one knows). B renounce (a connection). 12 esp. Us deliberately miss (a class etc.). 13 cards a divide (a pack) into two parts. B do this to select a dealer etc. 14 a edit (film or tape). B (often in imper.) Stop filming or recording. C (foll. By to) go quickly to (another shot). 15 switch off (an engine etc.). 16 chop (a ball). —n. 1 cutting. 2 division or wound made by cutting. 3 stroke with a knife, sword, whip, etc. 4 a reduction (in wages

    etc.). B cessation (of power supply etc.). 5 removal of lines etc. From a play, film, etc. 6 wounding remark or act. 7 style of hair, garment, etc. Achieved by cutting. 8 particular piece of butchered meat. 9 colloq. Commission; share of profits. 10 stroke made by cutting. 11 deliberate ignoring of a person. 12 = *woodcut. a cut above colloq. Noticeably superior to. Be cut out (foll. By for, or to + infin.) Be suited. Cut across 1 transcend (normal limitations etc.). 2 see sense 10 of v. Cut and run slang run away. Cut back 1 reduce (expenditure etc.). 2 prune (a tree etc.). Cut both ways 1 serve both sides of an argument etc. 2 (of an action) have both good and bad effects. Cut a corner go across it. Cut corners do perfunctorily or incompletely, esp. To save time. Cut a dash make a brilliant show. Cut a person dead deliberately ignore (a person one knows). Cut down 1 a bring or throw down by cutting. B kill by sword or disease. 2 see sense 6 of v. 3 reduce the length of (cut down trousers to make shorts). 4 (often foll. By on) reduce consumption (cut down on beer). Cut a person down to size colloq. Deflate a person’s pretensions. Cut in 1 interrupt. 2 pull in too closely in front of another vehicle. Cut it fine allow very little margin of time etc. Cut it out (usu. In imper.) Slang stop doing that. Cut one’s losses abandon an unprofitable scheme. Cut no ice slang have no influence. Cut off 1 remove by cutting. 2 a (often in passive) bring to an abrupt end or (esp. Early) death. B intercept, interrupt. C disconnect (a person on the telephone). 3 a prevent from travelling. B (as cut off adj.) Isolated or remote. 4 disinherit. Cut out 1 remove from inside by cutting. 2 make by cutting from a larger whole. 3 omit. 4 colloq. Stop doing or using (something) (cut out chocolate). 5 (cause to) cease functioning (engine cut out). 6 outdo or supplant (a rival). Cut short interrupt; terminate. Cut one’s teeth on acquire experience from.

    Cut and dried adj. 1 completely decided; inflexible. 2 (of opinions etc.) Ready-made, lacking freshness.

    Cut and thrust n. Lively argument etc.

    Cutaneous adj. Of the skin. [latin: related to *cuticle]

    Cutaway attrib. Adj. (of a diagram etc.) With parts of the exterior left out to reveal the interior.

    reveal the interior.

    Cut-back n. Cutting back, esp. A reduction in expenditure.

    Cute adj. Colloq. 1 esp. Us attractive, quaint. 2 clever, ingenious. cutely adv. Cuteness n. [shortening of *acute]

    Cut glass n. (often hyphenated when attrib.) Glass with patterns cut on it.

    Cuticle n. Dead skin at the base of a fingernail or toenail. [latin diminutive of cutis skin]

    Cutis n. True skin, beneath the epidermis. [latin]

    Cutlass n. Hist. Short sword with a slightly curved blade. [latin cultellus: related to *cutler]

    Cutler n. Person who makes or deals in knives etc. [latin cultellus diminutive: related to *coulter]

    Cutlery n. Knives, forks, and spoons for use at table. [anglo-french: related to *cutler]

    Cutlet n. 1 neck-chop of mutton or lamb. 2 small piece of veal etc. For frying. 3 flat cake of minced meat or nuts and breadcrumbs etc. [french diminutive from latin costa rib]

    Cut-off n. 1 (often attrib.) Point at which something is cut off. 2 device for stopping a flow.

    Cut-out n. 1 figure cut out of paper etc. 2 device for automatic disconnection, the release of exhaust gases, etc.

    Cut-price adj. (also cut-rate) at a reduced price.

    Cutter n. 1 a person or thing that cuts. B (in pl.) Cutting tool. 2 a small fast sailing-ship. B small boat carried by a large ship.

    Cutthroat —n. 1 murderer. 2 (in full cutthroat razor) razor with a long unguarded blade set in a handle. —adj. 1 (of competition) ruthless and intense. 2 (of a card-game) three-handed.

    Cutting —n. 1 piece cut from a newspaper etc. 2 piece cut from a plant for propagation. 3 excavated channel in a hillside etc. For a railway or road. —adj. See *cut v. 5. cuttingly adv.

    Cuttlefish n. (pl. Same or -es) mollusc with ten arms and ejecting a black fluid when threatened. [old english]

    Cutwater n. 1 forward edge of a ship’s prow. 2 wedge-shaped projection from a pier or bridge.

    Cuvée n. Blend or batch of wine. [french, = vatful]

    C.v. Abbr. (also cv) curriculum vitae.

    Cwm n. (in wales) = *coomb. [welsh]

    Cwt abbr. Hundredweight.

    -cy suffix denoting state, condition, or status (idiocy; captaincy). [latin -cia, greek -kia]

    Cyanic acid n. Unstable colourless pungent acid gas. [greek kuanos a blue mineral]

    Cyanide n. Highly poisonous substance used in the extraction of gold and silver.

    Cyanogen n. Highly poisonous gas used in fertilizers.

    Cyanosis n. Bluish skin due to oxygen-deficient blood.

    Cybernetics n.pl. (usu. Treated as sing.) Science of communications and control systems in machines and living things. cybernetic adj. [greek kubernetes steersman]

    Cyberpunk n. Science fiction writing combining high-tech plots with unconventional or nihilistic social values. [from cybernetics, punk]

    Cycad n. Palmlike plant often growing to a great height. [greek koix egyptian palm]

    Cyclamate n. Former artificial sweetener. [chemical name]

    Cyclamen n. 1 plant with pink, red, or white flowers with backward-turned petals. 2 cyclamen red or pink. [latin from greek]

    Cycle —n. 1 a recurrent round or period (of events, phenomena, etc.). B time needed for this. 2 a physics etc. Recurrent series of operations or states. B electr. = *hertz. 3 series of related songs, poems, etc. 4 bicycle, tricycle, etc. —v. (-ling) 1 ride a bicycle etc. 2 move in cycles. [greek kuklos circle]

    Cycle-track n. (also cycle-way) path or road for bicycles.

    Cyclic adj. (also cyclical) 1 a recurring in cycles. B belonging to a chronological cycle. 2 with constituent atoms forming a ring. cyclically adv.

    Cyclist n. Rider of a bicycle.

    Cyclo-comb. Form circle, cycle, or cyclic.

    Cyclist n. Rider of a bicycle.

    Cyclo-comb. Form circle, cycle, or cyclic.

    Cyclone n. 1 winds rotating inwards to an area of low barometric pressure; depression. 2 violent hurricane of limited diameter. cyclonic adj. [greek kukloma wheel]

    Cyclotron n. Apparatus for the acceleration of charged atomic and subatomic particles revolving in a magnetic field.

    Cygnet n. Young swan. [latin cygnus swan from greek]

    Cylinder n. 1 uniform solid or hollow body with straight sides and a circular section. 2 thing of this shape, e.g. A container for liquefied gas, a piston-chamber in an engine. cylindrical adj. [latin cylindrus from greek]

    Cymbal n. Concave disc, struck usu. With another to make a ringing sound. cymbalist n. [latin from greek]

    Cyme n. Flower cluster with a single terminal flower that develops first. cymose adj. [greek kuma wave]

    Cymric adj. Welsh. [welsh cymru wales]

    Cynic n. 1 person with a pessimistic view of human nature. 2 (cynic) one of a school of ancient greek philosophers showing contempt for ease and pleasure. cynical adj. Cynically adv. Cynicism n. [greek kuon dog]

    Cynosure n. Centre of attraction or admiration. [greek, = dog’s tail (name for ursa minor)]

    Cypher var. Of *cipher.

    Cypress n. Conifer with hard wood and dark foliage. [greek kuparissos]

    Cypriot (also cypriote) —n. Native or national of cyprus. —adj. Of cyprus. [cyprus in e. Mediterranean]

    Cyrillic —adj. Of the alphabet used by the slavonic peoples of the orthodox church, now used esp. For russian and bulgarian. —n. This alphabet. [st cyril, d. 869]

    Cyst n. Sac formed in the body, containing liquid matter. [greek kustis bladder]

    Cystic adj. 1 of the bladder. 2 like a cyst.

    Cystic fibrosis n. Hereditary disease usu. With respiratory infections.

    Cystitis n. Inflammation of the bladder usu. Causing frequent painful urination.

    -cyte comb. Form mature cell (leucocyte). [greek kutos vessel]

    Cytology n. The study of cells. cytological adj. Cytologist n. [greek kutos vessel]

    Cytoplasm n. Protoplasmic content of a cell apart from its nucleus. cytoplasmic adj.

    Czar var. Of *tsar

    Czech —n. 1 native or national of czechoslovakia. 2 one of the two official languages of czechoslovakia. —adj. Of czechoslovakia, its people, or language. [bohemian cech]

    Czechoslovak (also czechoslovakian) —n. Native or national of czechoslovakia. —adj. Of czechoslovakia. [from *czech, *slovak]

    D

    D1 n. (also d) (pl. Ds or d’s) 1 fourth letter of the alphabet. 2 mus. Second note of the diatonic scale of c major. 3 (as a roman numeral) 500. 4 = *dee. 5 fourth highest class or category (of academic marks etc.).

    D2 symb. Deuterium.

    D. Abbr. 1 died. 2 departs. 3 daughter. 4 hist. (pre-decimal) penny. [sense 4 from latin *denarius]

    ‘D v. Colloq. (usu. After pronouns) had, would (i’d; he’d). [abbreviation]

    Dab1 —v. (-bb-) 1 (often foll. By at) repeatedly press briefly and lightly with a cloth etc. (dabbed at her eyes). 2 press (a cloth etc.) Thus. 3 (foll. By on) apply by dabbing. 4 (often foll. By at) aim a feeble blow; strike lightly. —n. 1 dabbing. 2 small amount thus applied (dab of paint). 3 light blow. 4 (in pl.) Slang fingerprints. [imitative]

    Dab2 n. (pl. Same) a kind of marine flat-fish. [origin unknown]

    Dabble v. (-ling) 1 (usu. Foll. By in, at) engage (in an activity etc.) Superficially. 2 move the feet, hands, etc. In esp. Shallow liquid. 3 wet partly; stain, splash. dabbler n. [from *dab1]

    Dabchick n. = *little grebe. [old english]

    Dab hand n. (usu. Foll. By at) colloq. Expert. [dab adept, origin unknown]

    Da capo adv. Mus. Repeat from the beginning. [italian]

    Dace n. (pl. Same) small freshwater fish related to the carp. [french dars: related to *dart]

    Dacha n. Russian country cottage. [russian]

    Dachshund n. Dog of a short-legged long-bodied breed. [german, = badger-dog]

    Dactyl n. Metrical foot consisting of one long syllable followed by two short syllables (&dactyl.). dactylic adj. [greek, = finger]

    Dad n. Colloq. Father. [imitative of a child’s da da]

    Dada n. Early 20th-c. Artistic and literary movement repudiating conventions. dadaism n. Dadaist n. & adj. Dadaistic adj. [french dada hobby-horse]

    Daddy n. (pl. -ies) colloq. Father. [from *dad]

    Daddy-long-legs n. (pl. Same) crane-fly.

    Daddy-long-legs n. (pl. Same) crane-fly.

    Dado n. (pl. -s) 1 lower, differently decorated, part of an interior wall. 2 plinth of a column. 3 cube of a pedestal between the base and the cornice. [italian: related to *die2]

    Daemon var. Of *demon 4.

    Daff n. Colloq. = *daffodil. [abbreviation]

    Daffodil n. Spring bulb with a yellow trumpet-shaped flower. [related to *asphodel]

    Daft adj. Colloq. Silly, foolish, crazy. [old english, = meek]

    Dagger n. 1 short pointed knife used as a weapon. 2 printing = *obelus. at daggers drawn in bitter enmity. Look daggers at glare angrily at. [origin uncertain]

    Dago n. (pl. -s) slang offens. Foreigner, esp. A spaniard, portuguese, or italian. [spanish diego = james]

    Daguerreotype n. Early photograph using a silvered plate and mercury vapour. [daguerre, name of its inventor]

    Dahlia n. Large-flowered showy garden plant. [dahl, name of a botanist]

    Dáil n. (in full dáil éireann) lower house of parliament in the republic of ireland. [irish, = assembly (of ireland)]

    Daily —adj. Done, produced, or occurring every day or every weekday. —adv. 1 every day. 2 constantly. —n. (pl. -ies) colloq. 1 daily newspaper. 2 cleaning woman.

    Daily bread n. Necessary food; livelihood.

    Dainty —adj. (-ier, -iest) 1 delicately pretty. 2 delicate or small. 3 (of food) choice. 4 fastidious; discriminating. —n. (pl. -ies) choice delicacy. daintily adv. Daintiness n. [latin dignitas *dignity]

    Daiquiri n. (pl. -s) cocktail of rum, lime juice, etc. [daiquiri in cuba]

    Dairy n. (pl. -ies) 1 place for processing, distributing, or selling milk and its products. 2 (attrib.) Of, containing, or used for, dairy products (and sometimes eggs) (dairy cow). [old english]

    Dairying n. Dairy farming and distribution.

    Dairymaid n. Woman employed in a dairy.

    Dairymaid n. Woman employed in a dairy.

    Dairyman n. Dealer in dairy products.

    Dais n. Low platform, usu. At the upper end of a hall. [latin *discus disc, (later) table]

    Daisy n. (pl. -ies) 1 small wild plant with white-petalled flowers. 2 plant with similar flowers. [old english, = day’s eye]

    Daisy wheel n. Spoked disc bearing printing characters, used in word processors and typewriters.

    Dal var. Of *dhal.

    Dalai lama n. Spiritual head of tibetan buddhism. [mongolian dalai ocean]

    Dale n. Valley. [old english]

    Dally v. (-ies, -ied) 1 delay; waste time. 2 (often foll. By with) flirt, trifle. dalliance n. [french]

    Dalmatian n. Large white spotted short-haired dog. [dalmatia in croatia]

    Dal segno adv. Mus. Repeat from the point marked by a sign. [italian, = from the sign]

    Dam1 —n. 1 barrier across river etc., forming a reservoir or preventing flooding. 2 barrier made by beaver. —v. (-mm-) 1 provide or confine with a dam. 2 (often foll. By up) block up; obstruct. [low german or dutch]

    Dam2 n. Mother, esp. Of a four-footed animal. [var. Of *dame]

    Damage —n. 1 harm or injury. 2 (in pl.) Law financial compensation for loss or injury. 3 (prec. By the) slang cost. —v. (-ging) inflict damage on. [latin damnum]

    Damascene —v. (-ning) decorate (metal) by etching or inlaying esp. With gold or silver. —n. Design or article produced in this way. —adj. Of this process. [damascus in syria]

    Damask —n. Reversible figured woven fabric, esp. White table linen. —adj. 1 made of damask. 2 velvety pink. —v. Weave with figured designs. [as *damascene]

    Damask rose n. Old sweet-scented rose used to make attar.

    Dame n. 1 (dame) a title given to a woman holding any of several orders of chivalry. B woman holding this title. 2 comic middle-aged female pantomime character, usu. Played by a man. 3 us slang woman. [latin domina lady]

    Dame-school n. Hist. Primary school kept by an elderly woman.

    Dammit int. Colloq. Damn it.

    Damn —v. 1 (often absol. Or as int. Of anger or annoyance, = may god damn) curse (a person or thing). 2 doom to hell; cause the damnation of. 3 condemn, censure (review damning the book). 4 a (often as damning adj.) (of circumstance, evidence, etc.) Show or prove to be guilty. B be the ruin of. —n. 1 uttered curse. 2 slang negligible amount. —adj. & adv. Colloq. = *damned. damn all slang nothing at all. Damn well colloq. (for emphasis) simply (damn well do as i say). Damn with faint praise commend feebly, and so imply disapproval. I’m (or i’ll be) damned if colloq. I certainly do not, will not, etc. Not give a damn see *give. Well i’m (or i’ll be) damned colloq. Exclamation of surprise etc. [latin damnum loss]

    Damnable adj. Hateful, annoying. damnably adv.

    Damnation —n. Eternal punishment in hell. —int. Expressing anger.

    Damned colloq. —attrib. Adj. Damnable. —adv. Extremely (damned hot). damned well = damn well. Do one’s damnedest do one’s utmost.

    Damp —adj. Slightly wet. —n. Slight diffused or condensed moisture, esp. When unwelcome. —v. 1 make damp; moisten. 2 (often foll. By down) a temper; mute (damps my enthusiasm). B make (a fire) burn less strongly by reducing the flow of air to it. 3 reduce or stop the vibration of (esp. Strings of a musical instrument). damply adv. Dampness n. [low german]

    musical instrument). damply adv. Dampness n. [low german]

    Damp course n. (also damp-proof course) layer of waterproof material in a wall near the ground, to prevent rising damp.

    Dampen v. 1 make or become damp. 2 (often foll. By down) = *damp v. 2a.

    Damper n. 1 discouraging person or thing. 2 device that reduces shock or noise. 3 metal plate in a flue to control the draught. 4 mus. Pad silencing a piano string. put a damper on take the vigour or enjoyment out of.

    Damp squib n. Unsuccessful attempt to impress etc.

    Damsel n. Archaic or literary young unmarried woman. [french diminutive: related to *dame]

    Damselfly n. Insect like a dragonfly but with wings folded when resting.

    Damson n. 1 (in full damson plum) small dark-purple plum. 2 dark-purple colour. [latin: related to *damascene]

    Dan n. 1 grade of proficiency in judo. 2 holder of such a grade. [japanese]

    Dance —v. (-cing) 1 move rhythmically, usu. To music. 2 skip or jump about. 3 perform (a specified dance, role, etc.). 4 bob up and down. 5 dandle (a child). —

    perform (a specified dance, role, etc.). 4 bob up and down. 5 dandle (a child). — n. 1 a dancing as an art form. B style or form of this. 2 social gathering for dancing. 3 single round or turn of a dance. 4 music for dancing to. 5 lively motion. dance attendance on serve obsequiously. Lead a person a dance (or merry dance) cause a person much trouble. danceable adj. Dancer n. [french]

    Dancehall n. Public hall for dancing.

    D. And c. N. Dilatation (of the cervix) and curettage (of the uterus).

    Dandelion n. Wild plant with jagged leaves, a yellow flower, and a fluffy seed-head. [french dent-de-lion, = lion’s tooth]

    Dander n. Colloq. Temper, indignation. get one’s dander up become angry. [origin uncertain]

    Dandify v. (-ies, -ied) make a dandy.

    Dandle v. (-ling) bounce (a child) on one’s knees etc. [origin unknown]

    Dandruff n. 1 flakes of dead skin in the hair. 2 this as a condition. [origin uncertain]

    Dandy —n. (pl. -ies) 1 man greatly devoted to style and fashion. 2 colloq. Excellent thing. —adj. (-ier, -iest) esp. Us colloq. Splendid. [perhaps from the name andrew]

    name andrew]

    Dandy-brush n. Brush for grooming a horse.

    Dane n. 1 native or national of denmark. 2 hist. Viking invader of england in the 9th–11th c. [old norse]

    Danger list n. List of those dangerously ill.

    Danger money n. Extra payment for dangerous work.

    Dangerous adj. Involving or causing danger. dangerously adv.

    Dangle v. (-ling) 1 be loosely suspended and able to sway. 2 hold or carry thus. 3 hold out (hope, temptation, etc.) Enticingly. [imitative]

    Danish —adj. Of denmark or the danes. —n. 1 danish language. 2 (prec. By the; treated as pl.) The danish people. [latin: related to *dane]

    Danish blue n. White blue-veined cheese.

    Danish pastry n. Yeast cake topped with icing, fruit, nuts, etc.

    Dank adj. Disagreeably damp and cold. dankly adv. Dankness n. [probably scandinavian]

    scandinavian]

    Daphne n. Any of various flowering shrubs. [greek]

    Dapper adj. 1 neat and precise, esp. In dress. 2 sprightly. [low german or dutch dapper strong]

    Dapple —v. (-ling) mark or become marked with spots of colour or shade. —n. Dappled effect. [origin unknown]

    Dapple-grey adj. (of an animal’s coat) grey or white with darker spots.

    Dapple grey n. Dapple-grey horse.

    Darby and joan n. Devoted old married couple. [names of a couple in an 18th-c. Poem]

    Darby and joan club n. Club for pensioners.

    Dare —v. (-ring; 3rd sing. Present usu. Dare before an expressed or implied infinitive without to) 1 (foll. By infin. With or without to) have the courage or impudence (to) (dare he do it?; if they dare to come; how dare you?). 2 (usu. Foll. By to + infin.) Defy or challenge (i dare you to own up). —n. 1 act of daring. 2 challenge, esp. To prove courage. i dare say 1 (often foll. By that) it is probable. 2 probably; i grant that much. [old english]

    Daredevil —n. Recklessly daring person. —adj. Recklessly daring. daredevilry n.

    Daring —n. Adventurous courage. —adj. Adventurous, bold; prepared to take risks. daringly adv.

    Dariole n. Dish cooked and served in a small mould. [french]

    Dark —adj. 1 with little or no light. 2 of deep or sombre colour. 3 (of a person) with dark colouring. 4 gloomy, dismal. 5 evil, sinister. 6 sullen, angry. 7 secret, mysterious. 8 ignorant, unenlightened. —n. 1 absence of light. 2 lack of knowledge. 3 dark area or colour, esp. In painting. after dark after nightfall. The dark ages (or age) 1 period of european history from the 5th–10th c. 2 period of supposed unenlightenment. In the dark 1 lacking information. 2 with no light. darkish adj. Darkly adv. Darkness n. [old english]

    Darken v. Make or become dark or darker. never darken a person’s door keep away permanently. darkener n.

    Dark glasses n.pl. Spectacles with dark-tinted lenses.

    Dark horse n. Little-known person who is unexpectedly successful.

    Darkie var. Of *darky.

    Darkroom n. Darkened room for photographic work.

    Darky n. (also darkie) (pl. -ies) slang offens. Black person.

    Darling —n. 1 beloved, lovable, or endearing person or thing. 2 favourite. —adj. 1 beloved, lovable. 2 colloq. Charming or pretty. [old english: related to *dear]

    Darn1 —v. Mend (cloth etc.) By filling a hole with stitching. —n. Darned area. [origin uncertain]

    Darn2 v., int., adj., & adv. Colloq. = *damn (in imprecatory senses). [corruption]

    Darned adj. & adv. Colloq. = *damned.

    Darnel n. Grass growing in cereal crops. [origin unknown]

    Darner n. Needle for darning.

    Darning n. 1 act of darning. 2 things to be darned.

    Dart —n. 1 small pointed missile. 2 (in pl.; usu. Treated as sing.) Indoor game of

    throwing darts at a dartboard to score points. 3 sudden rapid movement. 4 dartlike structure, e.g. An insect’s sting. 5 tapering tuck in a garment. —v. (often foll. By out, in, past, etc.) Move, send, or go suddenly or rapidly. [french from germanic]

    Dartboard n. Circular target in darts.

    Darwinian —adj. Of darwin’s theory of evolution. —n. Adherent of this. darwinism n. Darwinist n. [darwin, name of a naturalist]

    Dash —v. 1 rush. 2 strike or fling forcefully, esp. So as to shatter (dashed it to the ground). 3 frustrate, dispirit (dashed their hopes). 4 colloq. (esp. Dash it or dash it all) = *damn v. 1. —n. 1 rush or onset; sudden advance. 2 horizontal stroke (–) in writing or printing to mark a pause etc. 3 impetuous vigour; capacity for or appearance of this. 4 us sprinting-race. 5 longer signal of two in morse code (cf. dot n. 2). 6 slight admixture, esp. Of a liquid. 7 = dashboard. dash off write or draw hurriedly. [imitative]

    Dashboard n. Instrument panel of a vehicle or aircraft.

    Dashing adj. 1 spirited, lively. 2 showy. dashingly adv. Dashingness n.

    Dastardly adj. Cowardly, despicable. dastardliness n. [origin uncertain]

    Dat abbr. Digital audio tape.

    Data n.pl. (also treated as sing., although the singular form is strictly datum) 1

    known facts used for inference or in reckoning. 2 quantities or characters operated on by a computer etc. [latin data from do give]

    Usage (1) in scientific, philosophical, and general use, this word is usually considered to denote a number of items and is thus treated as plural with datum as the singular. (2) in computing and allied subjects (and sometimes in general use), it is treated as a mass (or collective) noun and used with words like this, that, and much, with singular verbs, e.g. Useful data has been collected. Some people consider use (2) to be incorrect but it is more common than use (1). However, data is not a singular countable noun and cannot be preceded by a, every, each, either, or neither, or be given a plural form datas.

    Data bank n. Store or source of data.

    Database n. Structured set of data held in a computer.

    Datable adj. (often foll. By to) capable of being dated.

    Data capture n. Entering of data into a computer.

    Data processing n. Series of operations on data, esp. By a computer. data processor n.

    Date1 —n. 1 day of the month, esp. As a number. 2 particular, esp. Historical, day or year. 3 day, month, and year of writing etc., at the head of a document etc. 4 period to which a work of art etc. Belongs. 5 time when an event takes

    place. 6 colloq. A appointment, esp. Social with a person of the opposite sex. B us person to be met at this. —v. (-ting) 1 mark with a date. 2 a assign a date to (an object, event, etc.). B (foll. By to) assign to a particular time, period, etc. 3 (often foll. By from, back to, etc.) Have its origins at a particular time. 4 appear or expose as old-fashioned (design that does not date; that hat dates you). 5 us colloq. A make a date with. B go out together as sexual partners. out of date (attrib. Out-of-date) old-fashioned, obsolete. To date until now. Up to date (attrib. Up-to-date) modern; fashionable; current. [french: related to *data]

    Date2 n. 1 dark oval single-stoned fruit. 2 (in full date-palm) tree bearing it. [greek: related to *dactyl, from the shape of the leaf]

    Date-line n. 1 north–south line partly along the meridian 180° from greenwich, to the east of which the date is a day earlier than to the west. 2 date and place of writing at the head of a newspaper article etc.

    Date-stamp —n. Adjustable rubber stamp etc. Used to record a date. —v. Mark with a date-stamp.

    Dative gram. —n. Case expressing the indirect object or recipient. —adj. Of or in this case. [latin: related to *data]

    Datum see *data.

    Daub —v. 1 spread (paint etc.) Crudely or roughly. 2 coat or smear (a surface) with paint etc. 3 paint crudely or unskilfully. —n. 1 paint etc. Daubed on a surface. 2 plaster, clay, etc., esp. Coating laths or wattles to form a wall. 3 crude painting. [latin: related to de-, alb]

    Daughter n. 1 girl or woman in relation to her parent(s). 2 female descendant. 3 (foll. By of) female member of a family etc. 4 (foll. By of) female descendant or inheritor of a quality etc. daughterly adj. [old english]

    Daughter-in-law n. (pl. Daughters-in-law) son’s wife.

    Daunt v. Discourage, intimidate. daunting adj. [latin domito from domo tame]

    Dauntless adj. Intrepid, persevering.

    Dauphin n. Hist. Eldest son of the king of france. [french from latin delphinus *dolphin, as a family name]

    Davenport n. 1 small writing-desk with a sloping top. 2 us large sofa. [name of the maker]

    Davit n. Small crane on board ship, esp. For moving or holding a lifeboat. [french diminutive of david]

    Davy n. (pl. -ies) (in full davy lamp) miner’s safety lamp. [name of its inventor]

    Davy jones n. Slang (in full davy jones’s locker) bottom of the sea, esp. As the sailors’ graveyard. [origin unknown]

    Daw n. = *jackdaw. [old english]

    Dawdle v. (-ling) 1 walk slowly and idly. 2 waste time; procrastinate. [origin unknown]

    Dawn —n. 1 daybreak. 2 beginning or birth of something. —v. 1 (of a day) begin; grow light. 2 (often foll. By on, upon) begin to become obvious (to). [old english]

    Dawn chorus n. Birdsong at daybreak.

    Day n. 1 time between sunrise and sunset. 2 a 24 hours as a unit of time. B corresponding period on other planets (martian day). 3 daylight (clear as day). 4 time during which work is normally done (eight-hour day). 5 a (also pl.) Historical period (in those days). B (prec. By the) present time (issues of the day). 6 prime of a person’s life (have had my day; in my day). 7 a future time (will do it one day). 8 date of a specific festival or event etc. (graduation day; christmas day). 9 battle or contest (win the day). all in a day’s work part of the normal routine. At the end of the day when all is said and done. Call it a day end a period of activity. Day after day without respite. Day and night all the time. Day by day gradually. Day in, day out routinely, constantly. Not one’s day day when things go badly (for a person). One of these days soon. One of those days day when things go badly. That will be the day colloq. That will never happen. [old english]

    Day-bed n. Bed for daytime rest.

    Day-boy n. (also day-girl) non-boarding pupil, esp. At a boarding school.

    Daybreak n. First light in the morning.

    Day care n. Care of young children, the elderly, the handicapped, etc. During the working day.

    Day centre n. Place for care of the elderly or handicapped during the day.

    Day-dream —n. Pleasant fantasy or reverie. —v. Indulge in this. day-dreamer n.

    Daylight n. 1 light of day. 2 dawn. 3 visible gap, e.g. Between boats in a race. 4 (usu. In pl.) Slang life or consciousness (scared the daylights out of me; beat the living daylights out of them).

    Daylight robbery n. Colloq. Blatantly excessive charge.

    Daylight saving n. Longer summer evening daylight, achieved by putting clocks forward.

    Day nursery n. Nursery for children of working parents.

    Day off n. Day’s holiday.

    Day of reckoning n. Time when something must be atoned for or avenged.

    Day release n. Part-time education for employees.

    Day return n. Reduced fare or ticket for a return journey in one day.

    Day-room n. Room, esp. In an institution, used during the day.

    Day-school n. School for pupils living at home.

    Daytime n. Part of the day when there is natural light.

    Day-to-day adj. Mundane, routine.

    Day-trip n. Trip completed in one day. day-tripper n.

    Daze —v. (-zing) stupefy, bewilder. —n. State of bewilderment. [old norse]

    Dazzle —v. (-ling) 1 blind or confuse temporarily with a sudden bright light. 2 impress or overpower with knowledge, ability, etc. —n. Bright confusing light. dazzling adj. Dazzlingly adv. [from *daze]

    Db abbr. Decibel(s).

    Dbs abbr. 1 direct-broadcast satellite. 2 direct broadcasting by satellite.

    Dc abbr. 1 (also dc) direct current. 2 district of columbia. 3 da capo.

    Dd abbr. Doctor of divinity.

    D-day n. 1 day (6 june 1944) on which allied forces invaded n. France. 2 important or decisive day. [d for day]

    Ddt abbr. Colourless chlorinated hydrocarbon used as insecticide. [from the chemical name]

    De-prefix 1 forming verbs and their derivatives: a down, away (descend; deduct). B completely (denude). 2 added to verbs and their derivatives to form verbs and nouns implying removal or reversal (de-ice; decentralization). [latin]

    Deacon n. (fem. (in senses 2 and 3) deaconess) 1 (in episcopal churches) minister below bishop and priest. 2 (in nonconformist churches) lay officer. 3 (in the early church) minister of charity. [greek diakonos servant]

    Deactivate v. (-ting) make inactive or less reactive.

    Dead —adj. 1 no longer alive. 2 colloq. Extremely tired or unwell. 3 numb (fingers are dead). 4 (foll. By to) insensitive to. 5 no longer effective or in use;

    (fingers are dead). 4 (foll. By to) insensitive to. 5 no longer effective or in use; extinct. 6 (of a match, coal, etc.) Extinguished. 7 inanimate. 8 a lacking force or vigour. B (of sound) not resonant. 9 quiet; lacking activity (dead season). 10 (of a microphone, telephone, etc.) Not transmitting sounds. 11 (of a ball in a game) out of play. 12 abrupt, complete (come to a dead stop; a dead calm; dead certainty). —adv. 1 absolutely, completely (dead on target; dead tired). 2 colloq. Very, extremely (dead easy). —n. Time of silence or inactivity (dead of night). as dead as the (or a) dodo entirely obsolete. Dead to the world colloq. Fast asleep; unconscious. [old english]

    Dead beat adj. Colloq. Exhausted.

    Dead-beat n. Colloq. Derelict, tramp.

    Dead duck n. Slang unsuccessful or useless person or thing.

    Deaden v. 1 deprive of or lose vitality, force, brightness, sound, feeling, etc. 2 (foll. By to) make insensitive.

    Dead end n. 1 closed end of road, passage, etc. 2 (often, with hyphen, attrib.) Hopeless situation, job, etc.

    Deadhead —n. 1 faded flower-head. 2 non-paying passenger or spectator. 3 useless person. —v. Remove deadheads from (a plant).

    Dead heat n. 1 race in which competitors tie. 2 result of such a race.

    Dead language n. Language no longer spoken, e.g. Latin.

    Dead letter n. Law or practice no longer observed or recognized.

    Deadline n. Time-limit.

    Deadlock —n. 1 state of unresolved conflict. 2 lock requiring a key to open or close it. —v. Bring or come to a standstill.

    Dead loss n. Colloq. Useless person or thing.

    Deadly —adj. (-ier, -iest) 1 causing or able to cause fatal injury or serious damage. 2 intense, extreme (deadly dullness). 3 (of aim etc.) True; effective. 4 deathlike (deadly pale). 5 colloq. Dreary, dull. —adv. 1 like death; as if dead (deadly faint). 2 extremely (deadly serious).

    Deadly nightshade n. Poisonous plant with purple-black berries.

    Dead man’s handle n. (also dead man’s pedal) device on an electric train disconnecting the power supply if released.

    Dead march n. Funeral march.

    Dead on adj. Exactly right.

    Deadpan adj. & adv. Lacking expression or emotion.

    Dead reckoning n. Calculation of a ship’s position from the log, compass, etc., when visibility is bad.

    Dead set n. Determined attack. be dead set against strongly oppose. Be dead set on be determined to do or get.

    Dead shot n. Person who shoots extremely accurately.

    Dead weight n. (also dead-weight) 1 a inert mass. B heavy burden. 2 debt not covered by assets. 3 total weight carried on a ship.

    Dead wood n. Colloq. Useless person(s) or thing(s).

    Deaf-and-dumb alphabet n. (also deaf-and-dumb language) = *sign language.

    Usage sign language is the preferred term in official use.

    Deafen v. (often as deafening adj.) Overpower with noise or make deaf by noise, esp. Temporarily. deafeningly adv.

    Deaf mute n. Deaf and dumb person.

    Deal1 —v. (past and past part. Dealt) 1 (foll. By with) a take measures to resolve, placate, etc. B do business with; associate with. C discuss or treat (a subject). 2 (often foll. By by, with) behave in specified way (dealt honourably by them). 3 (foll. By in) sell (deals in insurance). 4 (often foll. By out, round) distribute to several people etc. 5 (also absol.) Distribute (cards) to players. 6 administer (was dealt a blow). 7 assign, esp. Providentially (were dealt much happiness). —n. 1 (usu. A good or great deal) colloq. A large amount (good deal of trouble). B considerably (great deal better). 2 colloq. Business arrangement; transaction. 3 specified treatment (a rough deal). 4 a dealing of cards. B player’s turn to do this. [old english]

    Deal2 n. 1 fir or pine timber, esp. As boards of a standard size. 2 board of this. [low german]

    Dealer n. 1 trader in (esp. Retail) goods (car-dealer; dealer in tobacco). 2 player dealing at cards. 3 jobber on the stock exchange.

    Usage in sense 3, this name has been merged with broker since oct. 1986 (see broker 2, jobber 2).

    Dealings n.pl. Contacts, conduct, or transactions.

    Dealt past and past part. Of *deal1.

    Dean1 n. 1 a head of the chapter of a cathedral or collegiate church. B (usu. Rural dean) clergyman supervising parochial clergy. 2 a college or university official with disciplinary and advisory functions. B head of a university faculty or department or of a medical school. [latin decanus]

    Dean2 var. Of *dene.

    Deanery n. (pl. -ies) 1 dean’s house or position. 2 parishes presided over by a rural dean.

    Dear —adj. 1 a beloved or much esteemed. B as a merely polite or ironic form (my dear man). 2 as a formula of address, esp. Beginning a letter (dear sir). 3 (often foll. By to) precious; cherished. 4 (usu. In superl.) Earnest (my dearest wish). 5 a expensive. B having high prices. —n. (esp. As a form of address) dear person. —adv. At great cost (will pay dear). —int. Expressing surprise, dismay, pity, etc. (dear me!; oh dear!). for dear life desperately. dearly adv. [old english]

    Dearie n. My dear. dearie me! Int. Expressing surprise, dismay, etc.

    Dearth n. Scarcity, lack.

    Death n. 1 irreversible ending of life; dying or being killed. 2 instance of this. 3 destruction; ending (death of our hopes). 4 being dead (eyes closed in death). 5 (usu. Death) personification of death, esp. As a skeleton. 6 lack of spiritual life. at death’s door close to death. Be the death of 1 cause the death of. 2 be annoying or harmful to. Catch one’s death colloq. Catch a serious chill etc. Do to

    death 1 kill. 2 overdo. Fate worse than death colloq. Very unpleasant experience. Put to death kill or cause to be killed. To death to the utmost, extremely (bored to death). deathlike adj. [old english]

    Deathbed n. Bed where a person dies.

    Deathblow n. 1 blow etc. Causing death. 2 event etc. That destroys or ends something.

    Death certificate n. Official statement of a person’s death.

    Death duty n. Hist. Property tax levied after death.

    Usage this term was replaced in 1975 by capital transfer tax and in 1986 by inheritance tax.

    Deathly —adj. (-ier, -iest) suggestive of death (deathly silence). —adv. In a deathly way (deathly pale).

    Death-mask n. Cast taken of a dead person’s face.

    Death penalty n. Punishment by death.

    Death rate n. Number of deaths per thousand of population per year.

    Death rate n. Number of deaths per thousand of population per year.

    Death-rattle n. Gurgling in the throat sometimes heard at death.

    Death row n. Us part of a prison for those sentenced to death.

    Death squad n. Armed paramilitary group.

    Death-trap n. Colloq. Dangerous building, vehicle, etc.

    Death-warrant n. 1 order of execution. 2 anything that causes the end of an established practice etc.

    Death-watch n. (in full death-watch beetle) small beetle which makes a ticking sound, said to portend death.

    Death-wish n. Psychol. Alleged usu. Unconscious desire for death.

    Deb n. Colloq. Débutante. [abbreviation]

    Debacle n. (brit. Débâcle) 1 a utter defeat or failure. B sudden collapse. 2 confused rush or rout. [french]

    Débâcle n. (us debacle) 1 a utter defeat or failure. B sudden collapse. 2 confused rush or rout. [french]

    rush or rout. [french]

    Debag v. (-gg-) slang remove the trousers of (a person), esp. As a joke.

    Debar v. (-rr-) (foll. By from) exclude; prohibit (debarred from the club). debarment n. [french: related to *bar1]

    Debark v. Land from a ship. debarkation n. [french débarquer]

    Debase v. (-sing) 1 lower in quality, value, or character. 2 depreciate (a coin) by alloying etc. debasement n. [from de-, abase]

    Debatable adj. Questionable; disputable. [related to *debate]

    Debate —v. (-ting) 1 (also absol.) Discuss or dispute, esp. Formally. 2 consider aspects of (a question); ponder. —n. 1 formal discussion on a particular matter. 2 discussion (open to debate). [french: related to *battle]

    Debauch —v. 1 (as debauched adj.) Dissolute. 2 corrupt, deprave. 3 debase (taste or judgement). —n. Bout of sensual indulgence. [french]

    Debauchee n. Debauched person.

    Debauchery n. Excessive sensual indulgence.

    Debauchery n. Excessive sensual indulgence.

    Debenture n. Acknowledgement of indebtedness, esp. A company bond providing for payment of interest at fixed intervals. [latin debentur are owed]

    Debilitate v. (-ting) enfeeble, enervate. debilitation n. [latin debilis weak]

    Debility n. Feebleness, esp. Of health.

    Debit —n. 1 entry in an account recording a sum owed. 2 sum recorded. 3 total of such sums. 4 debit side of an account. —v. (-t-) 1 (foll. By against, to) enter on the debit side of an account (debit £50 to my account). 2 (foll. By with) charge (a person) with a debt (debited me with £500). [latin debitum *debt]

    Debonair adj. 1 cheerful, self-assured. 2 pleasant-mannered. [french]

    Debouch v. 1 (of troops or a stream) come out into open ground. 2 (often foll. By into) (of a river, road, etc.) Merge into a larger body or area. debouchment n. [french bouche mouth]

    Debrief v. Colloq. Question (a diplomat, pilot, etc.) About a completed mission or undertaking. debriefing n.

    Debris n. 1 scattered fragments, esp. Of wreckage. 2 accumulation of loose rock etc. [french briser break]

    Debt n. 1 money etc. Owed (debt of gratitude). 2 state of owing (in debt; get into debt). in a person’s debt under obligation to a person. [latin debeo debit-owe]

    Debt of honour n. Debt not legally recoverable, esp. A sum lost in gambling.

    Debtor n. Person owing money etc.

    Debug v. (-gg-) colloq. 1 remove concealed microphones from (a room etc.). 2 remove defects from (a computer program etc.). 3 = *delouse.

    Debunk v. Colloq. Expose (a person, claim, etc.) As spurious or false. debunker n.

    Debut n. (brit. Début) first public appearance (as a performer etc.). [french]

    Début n. (us debut) first public appearance (as a performer etc.). [french]

    Debutante n. (brit. Débutante) (usu. Wealthy) young woman making her social début.

    Débutante n. (us debutante) (usu. Wealthy) young woman making her social début.

    Dec. Abbr. December.

    Deca-comb. Form ten. [greek deka ten]

    Decade n. 1 period of ten years. 2 series or group of ten. [greek: related to *deca-]

    Usage the second pronunciation given, with the stress on the second syllable, is considered incorrect by some people, even though it is much used in broadcasting.

    Decadence n. 1 moral or cultural decline. 2 immoral behaviour. decadent adj. & n. Decadently adv. [latin: related to *decay]

    Decaffeinated adj. With caffeine removed or reduced.

    Decagon n. Plane figure with ten sides and angles. decagonal adj. [greek: related to *deca-, -gonos -angled]

    Decahedron n. Solid figure with ten faces. decahedral adj. [after *polyhedron]

    Decaliter n. (brit. -litre) metric unit of capacity, equal to 10 litres.

    Decalitre n. (us -liter) metric unit of capacity, equal to 10 litres.

    Decalitre n. (us -liter) metric unit of capacity, equal to 10 litres.

    Decalogue n. Ten commandments. [greek: related to *deca-, logos word, reason]

    Decameter n. (brit. -metre) metric unit of length, equal to 10 metres.

    Decametre n. (us -meter) metric unit of length, equal to 10 metres.

    Decamp v. 1 depart suddenly; abscond. 2 break up or leave camp. decampment n. [french: related to *camp1]

    Decanal adj. 1 of a dean. 2 of the south side of a choir (where the dean sits). [latin: related to *dean1]

    Decant v. 1 gradually pour off (esp. Wine), esp. Leaving the sediment behind. 2 transfer as if by pouring. [greek kanthos lip of jug]

    Decanter n. Stoppered glass container for decanted wine or spirit.

    Decapitate v. (-ting) behead. decapitation n. [latin: related to *capital]

    Decapod n. 1 crustacean with ten limbs for walking, e.g. The shrimp. 2 ten-tentacled mollusc, e.g. The squid. [greek: related to *deca-, pous pod-foot]

    Decarbonize v. (also -ise) (-zing or -sing) remove the carbon etc. From (an internal-combustion engine etc.). decarbonization n.

    Decathlon n. Athletic contest of ten events for all competitors. decathlete n. [from *deca-, greek athlon contest]

    Decay —v. 1 (cause to) rot or decompose. 2 decline or cause to decline in quality, power, etc. 3 (usu. Foll. By to) (of a substance) undergo change by radioactivity. —n. 1 rotten state; wasting away. 2 decline in health, quality, etc. 3 radioactive change. [latin cado fall]

    Decease formal esp. Law —n. Death. —v. (-sing) die. [latin cedo go]

    Deceased formal —adj. Dead. —n. (usu. Prec. By the) person who has died, esp. Recently.

    Deceit n. 1 deception, esp. By concealing the truth. 2 dishonest trick. [latin capio take]

    Deceitful adj. Using deceit. deceitfully adv. Deceitfulness n.

    Deceive v. (-ving) 1 make (a person) believe what is false; purposely mislead. 2 be unfaithful to, esp. Sexually. 3 use deceit. deceive oneself persist in a mistaken belief. deceiver n.

    Decelerate v. (-ting) (cause to) reduce speed. deceleration n. [from de-, accelerate]

    December n. Twelfth month of the year. [latin decem ten, originally 10th month of roman year]

    Decency n. (pl. -ies) 1 correct, honourable, or modest behaviour. 2 (in pl.) Proprieties; manners. [latin: related to *decent]

    Decennial adj. Lasting, recurring every, ten years. [latin decem ten, annus year]

    Decent adj. 1 a conforming with standards of decency. B avoiding obscenity. 2 respectable. 3 acceptable, good enough. 4 kind, obliging. decently adv. [latin decet is fitting]

    Decentralize v. (also -ise) (-zing or -sing) 1 transfer (power etc.) From central to local authority. 2 reorganize to give greater local autonomy. decentralization n.

    Deception n. 1 deceiving or being deceived. 2 thing that deceives. [latin: related to *deceive]

    Deceptive adj. Likely to deceive; misleading. deceptively adv. Deceptiveness n.

    Deci-comb. Form one-tenth. [latin decimus tenth]

    Deci-comb. Form one-tenth. [latin decimus tenth]

    Decibel n. Unit used in the comparison of sound levels or power levels of electrical signals.

    Decide v. (-ding) 1 (usu. Foll. By to, that, or on, about) resolve after consideration (decided to stay; decided quickly; weather decided me; decided on a blue hat). 2 resolve or settle (an issue etc.). 3 (usu. Foll. By between, for, against, in favour of, or that) give a judgement. decidable adj. [latin caedo cut]

    Decided adj. 1 (usu. Attrib.) Definite, unquestionable (decided tilt). 2 positive, wilful, resolute.

    Decidedly adv. Undoubtedly, undeniably.

    Decider n. 1 game, race, etc., as a tie-break. 2 person or thing that decides.

    Deciduous adj. 1 (of a tree) shedding leaves annually. 2 (of leaves, horns, teeth, etc.) Shed periodically. [latin cado fall]

    Decigram n. (also decigramme) metric unit of mass, equal to 0.1 gram.

    Deciliter n. (brit. -litre) metric unit of capacity, equal to 0.1 litre.

    Decilitre n. (us -liter) metric unit of capacity, equal to 0.1 litre.

    Decimal —adj. 1 (of a system of numbers, weights, measures, etc.) Based on the number ten. 2 of tenths or ten; reckoning or proceeding by tens. —n. Decimal fraction. [latin decem ten]

    Decimal fraction n. Fraction expressed in tenths, hundredths, etc., esp. By units to the right of the decimal point (e.g. 0.61).

    Decimalize v. (also -ise) (-zing or -sing) 1 express as a decimal. 2 convert to a decimal system (esp. Of coinage). decimalization n.

    Decimal point n. Dot placed before the fraction in a decimal fraction.

    Decimate v. (-ting) 1 destroy a large proportion of. 2 orig. Rom. Hist. Kill or remove one in every ten of. decimation n.

    Usage sense 1 is now the usual sense, but it is considered inappropriate by some people. This word should not be used to mean ‘defeat utterly’.

    Decimeter n. (brit. -metre) metric unit of length, equal to 0.1 metre.

    Decimetre n. (us -meter) metric unit of length, equal to 0.1 metre.

    Decipher v. 1 convert (coded information) into intelligible language. 2 determine the meaning of (unclear handwriting etc.). decipherable adj.

    the meaning of (unclear handwriting etc.). decipherable adj.

    Decision n. 1 act or process of deciding. 2 resolution made after consideration (made my decision). 3 (often foll. By of) a settlement of a question. B formal judgement. 4 resoluteness. [latin: related to *decide]

    Decisive adj. 1 conclusive, settling an issue. 2 quick to decide. decisively adv. Decisiveness n. [medieval latin: related to *decide]

    Deck —n. 1 a platform in a ship serving as a floor. B the accommodation on a particular deck of a ship. 2 floor or compartment of a bus etc. 3 section for playing discs or tapes etc. In a sound system. 4 esp. Us pack of cards. 5 slang ground. —v. 1 (often foll. By out) decorate. 2 provide with or cover as a deck. below deck(s) in or into the space below the main deck. [dutch, = cover]

    Deck-chair n. Folding garden chair of wood and canvas.

    -decker comb. Form having a specified number of decks or layers (double-decker).

    Deck-hand n. Cleaner on a ship’s deck.

    Declaim v. 1 speak or say as if addressing an audience. 2 (foll. By against) protest forcefully. declamation n. Declamatory adj. [latin: related to *claim]

    Declaration n. 1 declaring. 2 formal, emphatic, or deliberate statement. [latin:

    Declaration n. 1 declaring. 2 formal, emphatic, or deliberate statement. [latin: related to *declare]

    Declare v. (-ring) 1 announce openly or formally (declare war). 2 pronounce (declared it invalid). 3 (usu. Foll. By that) assert emphatically. 4 acknowledge possession of (dutiable goods, income, etc.). 5 (as declared adj.) Admitting to be such (declared atheist). 6 (also absol.) Cricket close (an innings) voluntarily before the team is out. 7 (also absol.) Cards name (the trump suit). declare oneself reveal one’s intentions or identity. declarative adj. Declaratory adj. Declarer n. [latin clarus clear]

    Declassify v. (-ies, -ied) declare (information etc.) To be no longer secret. declassification n.

    Declension n. 1 gram. A variation of the form of a noun, pronoun, or adjective to show its grammatical case etc. B class of nouns with the same inflexions. 2 deterioration, declining. [latin: related to *decline]

    Declination n. 1 downward bend or turn. 2 angular distance of a star etc. North or south of the celestial equator. 3 deviation of a compass needle from true north. declinational adj. [latin: related to *decline]

    Decline —v. (-ning) 1 deteriorate; lose strength or vigour; decrease. 2 (also absol.) Politely refuse (an invitation, challenge, etc.). 3 slope or bend downwards, droop. 4 gram. State the forms of (a noun, pronoun, or adjective). —n. 1 gradual loss of vigour or excellence. 2 deterioration. [latin clino bend]

    Declining years n.pl. Old age.

    Declivity n. (pl. -ies) downward slope. [latin clivus slope]

    Declivity n. (pl. -ies) downward slope. [latin clivus slope]

    Declutch v. Disengage the clutch of a motor vehicle.

    Decoction n. 1 boiling down to extract an essence. 2 the resulting liquid. [latin coquo boil]

    Decode v. (-ding) decipher. decoder n.

    Decoke colloq. —v. (-king) decarbonize. —n. Process of this.

    Décolletage n. Low neckline of a woman’s dress etc. [french collet collar]

    Décolleté adj. (also décolletée) (of a dress, woman, etc.) Having or wearing a low neckline.

    Decompose v. (-sing) 1 rot. 2 separate (a substance, light, etc.) Into its elements. decomposition n.

    Decompress v. Subject to decompression.

    Decompression n. 1 release from compression. 2 gradual reduction of high pressure on a deep-sea diver etc.

    Decompression chamber n. Enclosed space for decompression.

    Decompression sickness n. Condition caused by the sudden lowering of air pressure.

    Decongestant n. Medicine etc. That relieves nasal congestion.

    Decontaminate v. (-ting) remove contamination from. decontamination n.

    Décor n. Furnishing and decoration of a room, stage set, etc. [french: related to *decorate]

    Decorate v. (-ting) 1 beautify, adorn. 2 paint, wallpaper, etc. (a room or building). 3 give a medal or award to. [latin decus -oris beauty]

    Decorated style n. Archit. Highly ornamented late english gothic style (14th c.).

    Decoration n. 1 decorating. 2 thing that decorates. 3 medal etc. Worn as an honour. 4 (in pl.) Flags, tinsel, etc., put up on a festive occasion.

    Decorative adj. Pleasing in appearance. decoratively adv.

    Decorator n. Person who decorates for a living.

    Decorous adj. Having or showing decorum. decorously adv. Decorousness n. [latin decorus seemly]

    Decorum n. Polite dignified behaviour. [as *decorous]

    Decoy —n. Person or thing used as a lure; bait, enticement. —v. Lure, esp. Using a decoy. [dutch]

    Decrease —v. (-sing) make or become smaller or fewer. —n. 1 decreasing. 2 amount of this. decreasingly adv. [latin: related to *de-, cresco grow]

    Decree —n. 1 official legal order. 2 legal judgement or decision, esp. In divorce cases. —v. (-ees, -eed, -eeing) ordain by decree. [latin decretum from cerno sift]

    Decree absolute n. Final order for completion of a divorce.

    Decree nisi n. Provisional order for divorce, made absolute after a fixed period. [latin nisi unless]

    Decrepit adj. 1 weakened by age or infirmity. 2 dilapidated. decrepitude n. [latin crepo creak]

    Decrescendo adv., adj., & n. (pl. -s) = diminuendo. [italian: related to decrease]

    Decretal n. Papal decree. [latin: related to *decree]

    Decriminalize v. (also -ise) (-zing or -sing) cease to treat as criminal. decriminalization n.

    Decry v. (-ies, -ied) disparage, belittle.

    Dedicate v. (-ting) (often foll. By to) 1 devote (esp. Oneself) to a special task or purpose. 2 address (a book etc.) To a friend, patron, etc. 3 devote (a building etc.) To a deity, saint, etc. 4 (as dedicated adj.) A (of a person) single-mindedly loyal to an aim, vocation, etc. B (of equipment, esp.

    Dedication n. 1 dedicating or being dedicated. 2 words with which a book etc. Is dedicated. [latin: related to *dedicate]

    Deduce v. (-cing) (often foll. By from) infer logically. deducible adj. [latin duco duct-lead]

    Deduct v. (often foll. By from) subtract, take away, or withhold (an amount, portion, etc.). [related to *deduce]

    Deductible adj. That may be deducted, esp. From tax or taxable income.

    Deduction n. 1 a deducting. B amount deducted. 2 a inferring of particular

    Deduction n. 1 a deducting. B amount deducted. 2 a inferring of particular instances from a general law or principle. B conclusion deduced. [latin: related to *deduce]

    Deductive adj. Of or reasoning by deduction. deductively adv. [medieval latin: related to *deduce]

    Dee n. 1 letter d. 2 thing shaped like this. [name of the letter d]

    Deed n. 1 thing done intentionally or consciously. 2 brave, skilful, or conspicuous act. 3 action (kind in word and deed). 4 legal document used esp. For transferring ownership of property. [old english: related to *do1]

    Deed-box n. Strong box for deeds etc.

    Deed of covenant n. Agreement to pay a regular sum, esp. To charity.

    Deed poll n. Deed made by one party only, esp. To change one’s name.

    Deem v. Formal consider, judge (deem it my duty). [old english]

    Deemster n. Judge in the isle of man. [from *deem]

    Deep —adj. 1 extending far down or in (deep water; deep wound; deep shelf). 2

    Deep —adj. 1 extending far down or in (deep water; deep wound; deep shelf). 2 (predic.) A to or at a specified depth (water 6 feet deep). B in a specified number of ranks (soldiers drawn up six deep). 3 situated or coming from far down, back, or in (deep in his pockets; deep sigh). 4 low-pitched, full-toned (deep voice). 5 intense, extreme (deep sleep; deep colour; deep interest). 6 (predic.) Fully absorbed or overwhelmed (deep in a book; deep in debt). 7 profound; difficult to understand (too deep for me). —n. 1 (prec. By the) poet. Sea, esp. When deep. 2 abyss, pit, cavity. 3 (prec. By the) cricket position of a fielder distant from the batsman. 4 deep state (deep of the night). —adv. Deeply; far down or in (dig deep). go off the deep end colloq. Give way to anger or emotion. In deep water in trouble or difficulty. deeply adv. [old english]

    Deep breathing n. Breathing with long breaths, esp. As exercise.

    Deepen v. Make or become deep or deeper.

    Deep-freeze —n. Cabinet for freezing and keeping food for long periods. —v. Freeze or store in a deep-freeze.

    Deep-fry v. Immerse in boiling fat to cook.

    Deep-laid adj. (of a scheme) secret and elaborate.

    Deep-rooted adj. (also deep-seated) firmly established, profound.

    Deer n. (pl. Same) four-hoofed grazing animal, the male of which usu. Has antlers. [old english]

    Deerskin n. (often attrib.) Leather from a deer’s skin.

    Deerstalker n. Soft cloth peaked cap with ear-flaps.

    De-escalate v. Make or become less intense. de-escalation n.

    Def adj. Slang excellent. [perhaps from *definite or *definitive]

    Deface v. (-cing) disfigure. defacement n. [french: related to *face]

    De facto —adv. In fact (whether by right or not). —adj. Existing or so in fact (a de facto ruler). [latin]

    Defalcate v. (-ting) formal misappropriate, esp. Money. defalcator n. [latin defalcare lop, from falx sickle]

    Defalcation n. Formal 1 a misappropriation of money. B amount misappropriated. 2 shortcoming.

    Defame v. (-ming) libel; slander; speak ill of. defamation n. Defamatory adj. [latin fama report]

    Default —n. 1 failure to appear, pay, or act as one should. 2 preselected option adopted by a computer program when no alternative is specified. —v. Fail to

    adopted by a computer program when no alternative is specified. —v. Fail to fulfil (esp. A legal) obligation. by default because of lack of an alternative or opposition. In default of because of the absence of. defaulter n. [french: related to *fail]

    Defeat —v. 1 overcome in battle, a contest, etc. 2 frustrate, baffle. 3 reject (a motion etc.) By voting. —n. Defeating or being defeated. [latin: related to dis-, fact]

    Defeatism n. Excessive readiness to accept defeat. defeatist n. & adj.

    Defecate v. (-ting) evacuate the bowels. defecation n. [latin faex faecis dregs]

    Defect —n. Fault, imperfection, shortcoming. —v. Leave one’s country or cause for another. defection n. Defector n. [latin deficio -fect-fail]

    Defective adj. Having defect(s); imperfect. defectiveness n. [latin: related to *defect]

    Defence n. (us defense) 1 defending, protection. 2 means of this. 3 (in pl.) Fortifications. 4 justification, vindication. 5 defendant’s case or counsel in a lawsuit. 6 defending play or players. defenceless adj. Defencelessly adv. Defencelessness n. [related to *defend]

    Defence mechanism n. 1 body’s resistance to disease. 2 usu. Unconscious mental process to avoid anxiety.

    Defend v. (also absol.) 1 (often foll. By against, from) resist an attack made on; protect. 2 uphold by argument. 3 conduct a defence in a lawsuit. 4 compete to retain (a title etc.) In a contest. defender n. [latin defendo -fens-]

    Defendant n. Person etc. Sued or accused in a lawcourt. [french: related to *defend]

    Defense n. (brit. Defence) 1 defending, protection. 2 means of this. 3 (in pl.) Fortifications. 4 justification, vindication. 5 defendant’s case or counsel in a lawsuit. 6 defending play or players. defenceless adj. Defencelessly adv. Defencelessness n. [related to *defend]

    Defensible adj. 1 justifiable; supportable by argument. 2 able to be defended militarily. defensibility n. Defensibly adv. [latin: related to *defend]

    Defensive adj. 1 done or intended for defence. 2 overreacting to criticism. on the defensive 1 expecting criticism. 2 mil ready to defend. defensively adv. Defensiveness n. [medieval latin: related to *defend]

    Defer1 v. (-rr-) postpone. deferment n. Deferral n. [originally the same as *differ]

    Defer2 v. (-rr-) (foll. By to) yield or make concessions to. [latin defero carry away]

    Deference n. 1 courteous regard, respect. 2 compliance with another’s wishes. in

    Deference n. 1 courteous regard, respect. 2 compliance with another’s wishes. in deference to out of respect for.

    Deferential adj. Respectful. deferentially adv.

    Deferred payment n. Payment by instalments.

    Defiance n. Open disobedience; bold resistance. [french: related to *defy]

    Defiant adj. Showing defiance; disobedient. defiantly adv.

    Deficiency n. (pl. -ies) 1 being deficient. 2 (usu. Foll. By of) lack or shortage. 3 thing lacking. 4 deficit, esp. Financial.

    Deficiency disease n. Disease caused by the lack of an essential element of diet.

    Deficient adj. (often foll. By in) incomplete or insufficient in quantity, quality, etc. [latin: related to *defect]

    Deficit n. 1 amount by which a thing (esp. Money) is too small. 2 excess of liabilities over assets. [french from latin: related to *defect]

    Defile1 v. (-ling) 1 make dirty; pollute. 2 desecrate, profane. defilement n. [earlier defoul, from french defouler trample down]

    [earlier defoul, from french defouler trample down]

    Defile2 —n. Narrow gorge or pass. —v. (-ling) march in file. [french: related to *file1]

    Define v. (-ning) 1 give the meaning of (a word etc.). 2 describe or explain the scope of (define one’s position). 3 outline clearly (well-defined image). 4 mark out the boundary of. definable adj. [latin finis end]

    Definite adj. 1 certain, sure. 2 clearly defined; not vague; precise. definitely adv. [latin: related to *define]

    Definition n. 1 a defining. B statement of the meaning of a word etc. 2 distinctness in outline, esp. Of a photographic image. [latin: related to *define]

    Definitive adj. 1 (of an answer, verdict, etc.) Decisive, unconditional, final. 2 (of a book etc.) Most authoritative.

    Usage in sense 1, this word is often confused with definite, which does not imply authority and conclusiveness. A definite no is a firm refusal, while a definitive no is an authoritative judgement or decision that something is not the case.

    Deflate v. (-ting) 1 empty (a tyre, balloon, etc.) Of air, gas, etc.; be so emptied. 2 (cause to) lose confidence or conceit. 3 a subject (a currency or economy) to deflation. B pursue this as a policy. [from de-, inflate]

    Deflation n. 1 deflating or being deflated. 2 reduction of money in circulation, intended to combat inflation. deflationary adj.

    intended to combat inflation. deflationary adj.

    Deflect v. 1 bend or turn aside from a course or purpose. 2 (often foll. By from) (cause to) deviate. deflection n. (also deflexion). Deflector n. [latin flecto bend]

    Deflower v. Literary 1 deprive of virginity. 2 ravage, spoil. [latin: related to *flower]

    Defoliate v. (-ting) destroy the leaves of (trees or plants). defoliant n. Defoliation n. [latin: related to *foil2]

    Deforest v. Clear of forests or trees. deforestation n.

    Deform v. Make ugly or misshapen, disfigure. deformation n. [latin: related to *form]

    Deformed adj. (of a person or limb) misshapen.

    Deformity n. (pl. -ies) 1 being deformed. 2 malformation, esp. Of a body or limb.

    Defraud v. (often foll. By of) cheat by fraud. [latin: related to *fraud]

    Defray v. Provide money for (a cost or expense). defrayal n. Defrayment n. [medieval latin fredum fine]

    [medieval latin fredum fine]

    Defrock v. Deprive (esp. A priest) of office. [french: related to de-, frock]

    Defrost v. 1 remove frost or ice from (a refrigerator, windscreen, etc.). 2 unfreeze (frozen food). 3 become unfrozen.

    Deft adj. Neat; dexterous; adroit. deftly adv. Deftness n. [var. Of *daft = ‘meek’]

    Defunct adj. 1 no longer existing or used. 2 dead or extinct. defunctness n. [latin fungor perform]

    Defuse v. (-sing) 1 remove the fuse from (a bomb etc.). 2 reduce tension etc. In (a crisis, difficulty, etc.).

    Defy v. (-ies, -ied) 1 resist openly; refuse to obey. 2 (of a thing) present insuperable obstacles to (defies solution). 3 (foll. By to + infin.) Challenge (a person) to do or prove something. [latin fides faith]

    Degenerate —adj. 1 having lost its usual or good qualities; immoral, degraded. 2 biol. Having changed to a lower type. —n. Degenerate person or animal. —v. (-ting) become degenerate. degeneracy n. [latin genus race]

    Degeneration n. 1 becoming degenerate. 2 med. Morbid deterioration of body tissue etc. [latin: related to *degenerate]

    Degrade v. (-ding) 1 humiliate, dishonour. 2 reduce to a lower rank. 3 chem. Reduce to a simpler molecular structure. degradation n. Degrading adj. [latin: related to *grade]

    Degree n. 1 stage in a scale, series, or process. 2 stage in intensity or amount (in some degree). 3 unit of measurement of an angle or arc. 4 unit in a scale of temperature, hardness, etc. 5 extent of burns. 6 academic rank conferred by a polytechnic, university, etc. 7 grade of crime (first-degree murder). 8 step in direct genealogical descent. 9 social rank. by degrees gradually. [latin gradus step]

    Degrees of comparison see *comparison 4.

    Dehisce v. (-cing) (esp. Of a pod, cut, etc.) Gape or burst open. dehiscence n. Dehiscent adj. [latin hio gape]

    Dehumanize v. (also -ise) (-zing or -sing) 1 take human qualities away from. 2 make impersonal. dehumanization n.

    Dehydrate v. (-ting) 1 remove water from (esp. Foods). 2 make or become dry, esp. Too dry. dehydration n. [greek hudor water]

    De-ice v. 1 remove ice from. 2 prevent the formation of ice on. de-icer n.

    Deify v. (-ies, -ied) make a god or idol of. deification n. [latin deus god]

    Deign v. (foll. By to + infin.) Think fit, condescend. [latin dignus worthy]

    Deinstitutionalize v. (also -ise) (-zing or -sing) (usu. As deinstitutionalized adj.) Remove from an institution or help recover from the effects of institutional life. deinstitutionalization n.

    Deism n. Reasoned belief in the existence of a god. deist n. Deistic adj. [latin deus god]

    Deity n. (pl. -ies) 1 god or goddess. 2 divine status or nature. 3 (the deity) god. [french from church latin]

    Déjà vu n. 1 feeling of having already experienced the present situation. 2 something tediously familiar. [french, = already seen]

    Deject v. (usu. As dejected adj.) Make sad; depress. dejectedly adv. Dejection n. [latin jacio throw]

    De jure —adj. Rightful. —adv. Rightfully; by right. [latin]

    Dekko n. (pl. -s) slang look, glance. [hindi]

    Delay —v. 1 postpone; defer. 2 make or be late; loiter. —n. 1 delaying or being delayed. 2 time lost by this. 3 hindrance. [french]

    Delayed-action attrib. Adj. (esp. Of a bomb, camera, etc.) Operating after a set interval.

    Delectable adj. Esp. Literary delightful, delicious. delectably adv. [latin: related to *delight]

    Delectation n. Literary pleasure, enjoyment.

    Delegate —n. 1 elected representative sent to a conference. 2 member of a committee or delegation. —v. (-ting) 1 (often foll. By to) a commit (power etc.) To an agent or deputy. B entrust (a task) to another. 2 send or authorize (a person) as a representative. [latin: related to *legate]

    Delegation n. 1 group representing others. 2 delegating or being delegated.

    Delete v. (-ting) remove (a letter, word, etc.), esp. By striking out. deletion n. [latin deleo]

    Deleterious adj. Harmful. [latin from greek]

    Delft n. (also delftware) glazed, usu. Blue and white, earthenware. [delft in holland]

    Deli n. (pl. -s) colloq. Delicatessen shop. [abbreviation]

    Deli n. (pl. -s) colloq. Delicatessen shop. [abbreviation]

    Deliberate —adj. 1 a intentional. B considered; careful. 2 (of movement, thought, etc.) Unhurried; cautious. —v. (-ting) 1 think carefully; consider. 2 discuss (jury deliberated). deliberately adv. [latin libra balance]

    Deliberation n. 1 careful consideration; discussion. 2 careful slowness.

    Deliberative adj. (esp. Of an assembly etc.) Of or for deliberation or debate.

    Delicacy n. (pl. -ies) 1 being delicate (in all senses). 2 a choice food. [from *delicate]

    Delicate adj. 1 a fine in texture, quality, etc.; slender, slight. B (of a colour, flavour, etc.) Subtle, hard to discern. 2 susceptible; weak, tender. 3 a requiring tact; tricky (delicate situation). B (of an instrument) highly sensitive. 4 deft (delicate touch). 5 modest. 6 (esp. Of actions) considerate. delicately adv. [latin]

    Delicatessen n. 1 shop selling esp. Exotic cooked meats, cheeses, etc. 2 (often attrib.) Such foods. [french: related to *delicate]

    Delicious adj. Highly enjoyable, esp. To taste or smell. deliciously adv. [latin deliciae delights]

    Delight —v. 1 (often as delighted adj.) Please greatly (her singing delighted us; delighted to help). 2 (foll. By in) take great pleasure in (delights in surprising

    delighted to help). 2 (foll. By in) take great pleasure in (delights in surprising everyone). —n. 1 great pleasure. 2 thing that delights. delighted adj. Delightful adj. Delightfully adv. [latin delecto]

    Delimit v. (-t-) fix the limits or boundary of. delimitation n. [latin: related to *limit]

    Delineate v. (-ting) portray by drawing etc. Or in words. delineation n. [latin: related to *line1]

    Delinquent —n. Offender (juvenile delinquent). —adj. 1 guilty of a minor crime or misdeed. 2 failing in one’s duty. delinquency n. [latin delinquo offend]

    Deliquesce v. (-cing) 1 become liquid, melt. 2 dissolve in water absorbed from the air. deliquescence n. Deliquescent adj. [latin: related to *liquid]

    Delirious adj. 1 affected with delirium. 2 wildly excited, ecstatic. deliriously adv.

    Delirium n. 1 disorder involving incoherent speech, hallucinations, etc., caused by intoxication, fever, etc. 2 great excitement, ecstasy. [latin lira ridge between furrows]

    Delirium tremens n. Psychosis of chronic alcoholism involving tremors and hallucinations.

    Deliver v. 1 a distribute (letters, goods, etc.) To their destination(s). B (often foll. By to) hand over. 2 (often foll. By from) save, rescue, or set free. 3 a give birth to (delivered a girl). B assist at the birth of or in giving birth (delivered six

    to (delivered a girl). B assist at the birth of or in giving birth (delivered six babies). 4 utter (an opinion, speech, etc.). 5 (often foll. By up, over) abandon; resign (delivered his soul up). 6 launch or aim (a blow etc.). be delivered of give birth to. Deliver the goods colloq. Carry out an undertaking. [latin liber free]

    Deliverance n. Rescuing or being rescued.

    Delivery n. (pl. -ies) 1 delivering or being delivered. 2 regular distribution of letters etc. (two deliveries a day). 3 thing delivered. 4 childbirth. 5 deliverance. 6 style of throwing a ball, delivering a speech, etc. [anglo-french: related to *deliver]

    Dell n. Small usu. Wooded valley. [old english]

    Delouse v. (-sing) rid of lice.

    Delphic adj. (also delphian) 1 obscure, ambiguous, or enigmatic. 2 of the ancient greek oracle at delphi.

    Delphinium n. (pl. -s) garden plant with tall spikes of usu. Blue flowers. [greek: related to *dolphin]

    Delta n. 1 triangular area of earth, alluvium etc. At the mouth of a river, formed by its diverging outlets. 2 a fourth letter of the greek alphabet (d, d). B fourth-class mark for work etc. [greek]

    Delta wing n. Triangular swept-back wing of an aircraft.

    Delude v. (-ding) deceive, mislead. [latin ludo mock]

    Deluge —n. 1 great flood. 2 (the deluge) biblical flood (gen. 6-8). 3 overwhelming rush. 4 heavy fall of rain. —v. (-ging) flood or inundate (deluged with complaints). [latin diluvium]

    Delusion n. 1 false belief, hope, etc. 2 hallucination. delusive adj. Delusory adj. [related to *delude]

    De luxe adj. Luxurious; superior; sumptuous. [french, = of luxury]

    Delve v. (-ving) 1 (often foll. By in, into) search or research energetically or deeply (delved into his pocket, his family history). 2 poet. Dig. [old english]

    Demagnetize v. (also -ise) (-zing or -sing) remove the magnetic properties of. demagnetization n.

    Demagog n. (brit. -gogue) political agitator appealing to mob instincts. demagogic adj. Demagogy n. [greek, = leader of the people]

    Demagogue n. (us -gog) political agitator appealing to mob instincts. demagogic adj. Demagogy n. [greek, = leader of the people]

    Demand —n. 1 insistent and peremptory request. 2 desire for a commodity (no demand for fur coats). 3 urgent claim (makes demands on her). —v. 1 (often foll. By of, from, or to + infin., or that + clause) ask for insistently (demanded to know). 2 require (task demanding skill). 3 insist on being told (demanded her age). 4 (as demanding adj.) Requiring skill, effort, attention, etc. (demanding job; demanding child). in demand sought after. On demand as soon as requested (payable on demand). [french from latin: related to *mandate]

    Demand feeding n. Feeding a baby when it cries.

    Demarcation n. 1 marking of a boundary or limits. 2 trade-union practice of restricting a specific job to one union. demarcate v. (-ting). [spanish marcar *mark1]

    Dematerialize v. (also -ise) (-zing or -sing) make or become non-material; vanish. dematerialization n.

    Demean v. (usu. Refl.) Lower the dignity of (would not demean myself). [from *mean2]

    Demeanor n. (brit. Demeanour) outward behaviour or bearing. [latin minor threaten]

    Demeanour n. (us demeanor) outward behaviour or bearing. [latin minor threaten]

    Demented adj. Mad. dementedly adv. [latin mens mind]

    Demented adj. Mad. dementedly adv. [latin mens mind]

    Dementia n. Chronic insanity. [latin: related to *demented]

    Dementia praecox n. Formal schizophrenia.

    Demerara n. Light-brown cane sugar. [demerara in guyana]

    Demerger n. Dissolution of a commercial merger. demerge v. (-ging).

    Demerit n. Fault; blemish.

    Demesne n. 1 a territory; domain. B land attached to a mansion etc. C landed property. 2 (usu. Foll. By of) region or sphere. 3 law hist. Possession (of real property) as one’s own. [latin dominicus from dominus lord]

    Demi-prefix half; partly. [latin dimidius half]

    Demigod n. 1 a partly divine being. B child of a god or goddess and a mortal. 2 colloq. Godlike person.

    Demijohn n. Large bottle usu. In a wicker cover. [french]

    Demilitarize v. (also -ise) (-zing or -sing) remove an army etc. From (a frontier, zone, etc.). demilitarization n.

    Demi-monde n. 1 class of women considered to be of doubtful morality. 2 any semi-respectable group. [french, = half-world]

    Demise —n. 1 death; termination. 2 law transfer of an estate, title, etc. By demising. —v. (-sing) law transfer (an estate, title, etc.) By will, lease, or death. [anglo-french: related to *dismiss]

    Demisemiquaver n. Mus. Note equal to half a semiquaver.

    Demist v. Clear mist from (a windscreen etc.). demister n.

    Demo n. (pl. -s) colloq. = *demonstration 2, 3. [abbreviation]

    Demob colloq. —v. (-bb-) demobilize. —n. Demobilization. [abbreviation]

    Demobilize v. (also -ise) (-zing or -sing) disband (troops, ships, etc.). demobilization n.

    Democracy n. (pl. -ies) 1 a government by the whole population, usu. Through elected representatives. B state so governed. 2 classless and tolerant society. [greek demokratia rule of the people]

    Democrat n. 1 advocate of democracy. 2 (democrat) (in the us) member of the democratic party.

    Democratic adj. 1 of, like, practising, or being a democracy. 2 favouring social equality. democratically adv.

    Democratic party n. More liberal of the two main us political parties.

    Democratize v. (also -ise) (-zing or -sing) make democratic. democratization n.

    Demodulate v. (-ting) extract (a modulating signal) from its carrier. demodulation n.

    Demography n. The study of the statistics of births, deaths, disease, etc. demographic adj. Demographically adv. [greek demos the people, *-graphy]

    Demolish v. 1 a pull down (a building). B destroy. 2 overthrow (an institution). 3 refute (an argument, theory, etc.). 4 joc. Eat up voraciously. demolition n. [latin moles mass]

    Demon n. 1 a evil spirit or devil. B personification of evil passion. 2 (often attrib.) Forceful or skilful performer (demon player). 3 cruel person. 4 (also daemon) supernatural being in ancient greece. demonic adj. [greek daimon deity]

    Demonetize v. (also -ise) (-zing or -sing) withdraw (a coin etc.) From use. demonetization n. [french: related to de-, money]

    Demoniac —adj. 1 fiercely energetic or frenzied. 2 supposedly possessed by an evil spirit. 3 of or like demons. —n. Demoniac person. demoniacal adj. Demoniacally adv. [church latin: related to *demon]

    Demonism n. Belief in demons.

    Demonolatry n. Worship of demons. [from *demon, greek latreuo worship]

    Demonology n. The study of demons etc.

    Demonstrable adj. Able to be shown or proved. demonstrably adv.

    Demonstrate v. (-ting) 1 show (feelings etc.). 2 describe and explain by experiment, practical use, etc. 3 logically prove or be proof of the truth or existence of. 4 take part in a public demonstration. 5 act as a demonstrator. [latin monstro show]

    Demonstration n. 1 (foll. By of) show of feeling etc. 2 (esp. Political) public meeting, march, etc. 3 the exhibiting etc. Of specimens or experiments in esp. Scientific teaching. 4 proof by logic, argument, etc. 5 mil. Display of military force.

    Demonstrative adj. 1 showing feelings readily; affectionate. 2 (usu. Foll. By of) logically conclusive; giving proof (demonstrative of their skill). 3 gram. (of an adjective or pronoun) indicating the person or thing referred to (e.g. This, that,

    adjective or pronoun) indicating the person or thing referred to (e.g. This, that, those). demonstratively adv. Demonstrativeness n.

    Demonstrator n. 1 person who demonstrates politically. 2 person who demonstrates machines etc. To prospective customers. 3 person who teaches by esp. Scientific demonstration.

    Demoralize v. (also -ise) (-zing or -sing) destroy the morale of; dishearten. demoralization n. [french]

    Demote v. (-ting) reduce to a lower rank or class. demotion n. [from de-, promote]

    Demotic —n. 1 colloquial form of a language. 2 simplified form of ancient egyptian writing (cf. *hieratic). —adj. 1 (esp. Of language) colloquial or vulgar. 2 of ancient egyptian or modern greek demotic. [greek demos the people]

    Demotivate v. (-ting) (also absol.) Cause to lose motivation or incentive. demotivation n.

    Demur —v. (-rr-) 1 (often foll. By to, at) raise objections. 2 law put in a demurrer. —n. (usu. In neg.) Objection; objecting (agreed without demur). [latin moror delay]

    Demure adj. (demurer, demurest) 1 quiet, reserved; modest. 2 coy. demurely adv. Demureness n. [french: related to *demur]

    Demurrer n. Law objection raised or exception taken.

    Demystify v. (-ies, -ied) remove the mystery from; clarify. demystification n.

    Den n. 1 wild animal’s lair. 2 place of crime or vice (opium den). 3 small private room. [old english]

    Denarius n. (pl. Denarii) ancient roman silver coin. [latin deni by tens]

    Denary adj. Of ten; decimal.

    Denationalize v. (also -ise) (-zing or -sing) transfer (an industry etc.) From public to private ownership. denationalization n.

    Denature v. (-ring) 1 change the properties of (a protein etc.) By heat, acidity, etc. 2 make (alcohol) undrinkable. [french]

    Dendrochronology n. 1 dating of trees by their annual growth rings. 2 the study of these. [greek dendron tree]

    Dendrology n. The study of trees. dendrological adj. Dendrologist n. [greek dendron tree]

    Dene n. (also dean) narrow wooded valley. [old english]

    Dengue n. Infectious tropical viral fever. [w. Indian spanish from swahili]

    Deniable adj. That may be denied.

    Denial n. 1 denying the truth or existence of a thing. 2 refusal of a request or wish. 3 disavowal of a leader etc.

    Denier n. Unit of weight measuring the fineness of silk, nylon, etc. [originally the name of a small coin, from latin *denarius]

    Denigrate v. (-ting) blacken the reputation of. denigration n. Denigrator n. Denigratory adj. [latin niger black]

    Denim n. 1 (often attrib.) Hard-wearing usu. Blue cotton twill used for jeans, overalls, etc. 2 (in pl.) Colloq. Jeans etc. Made of this. [french de of, nîmes in france]

    Denizen n. 1 (usu. Foll. By of) inhabitant or occupant. 2 foreigner having certain rights in an adopted country. 3 naturalized foreign word, animal, or plant. [latin de intus from within]

    Denominate v. (-ting) give a name to, call, describe as. [latin: related to

    Denominate v. (-ting) give a name to, call, describe as. [latin: related to *nominate]

    Denomination n. 1 church or religious sect. 2 class of measurement or money. 3 name, esp. A characteristic or class name. denominational adj. [latin: related to *denominate]

    Denominator n. Number below the line in a vulgar fraction; divisor. [latin nomen name]

    Denote v. (-ting) 1 (often foll. By that) be a sign of; indicate; mean. 2 stand as a name for; signify. denotation n. [latin: related to *note]

    Denouement n. (also dénouement) 1 final unravelling of a plot or complicated situation. 2 final scene in a play, novel, etc. [french, from latin nodus knot]

    Denounce v. (-cing) 1 accuse publicly; condemn. 2 inform against. 3 announce withdrawal from (an armistice, treaty, etc.). denouncement n. [latin nuntius messenger]

    De novo adv. Starting again; anew. [latin]

    Dense adj. 1 closely compacted; crowded together; thick. 2 colloq. Stupid. densely adv. Denseness n. [latin densus]

    Density n. (pl. -ies) 1 denseness of thing(s) or a substance. 2 physics degree of consistency measured by the quantity of mass per unit volume. 3 opacity of a photographic image.

    photographic image.

    Dent —n. 1 slight hollow as made by a blow or pressure. 2 noticeable adverse effect (dent in our funds). —v. 1 mark with a dent. 2 adversely affect. [from *indent]

    Dental adj. 1 of the teeth or dentistry. 2 (of a consonant) produced with the tongue-tip against the upper front teeth (as th) or the ridge of the teeth (as n, s, t). [latin dens dent-tooth]

    Dental floss n. Thread used to clean between the teeth.

    Dental surgeon n. Dentist.

    Dentate adj. Bot. & zool. Toothed; with toothlike notches.

    Dentifrice n. Toothpaste or tooth powder. [latin: related to *dental, frico rub]

    Dentin n. (brit. Dentine) hard dense tissue forming the bulk of a tooth.

    Dentine n. (us dentin) hard dense tissue forming the bulk of a tooth.

    Dentist n. Person qualified to treat, extract, etc., teeth. dentistry n.

    Dentition n. 1 type, number, and arrangement of teeth in a species etc. 2 teething.

    Denture n. Removable artificial tooth or teeth.

    Denuclearize v. (also -ise) (-zing or -sing) remove nuclear weapons from (a country etc.). denuclearization n.

    Denude v. (-ding) 1 make naked or bare. 2 (foll. By of) strip of (covering, property, etc.). denudation n. [latin nudus naked]

    Denunciation n. Denouncing; public condemnation. [latin: related to *denounce]

    Deny v. (-ies, -ied) 1 declare untrue or non-existent. 2 repudiate or disclaim. 3 (often foll. By to) withhold (a thing) from (denied him the satisfaction; denied it to me). deny oneself be abstinent. [latin: related to *negate]

    Deodar n. Himalayan cedar. [sanskrit, = divine tree]

    Deodorant n. (often attrib.) Substance applied to the body or sprayed into the air to conceal smells. [related to *odour]

    Deodorize v. (also -ise) (-zing or -sing) remove or destroy the smell of. deodorization n.

    deodorization n.

    Deoxyribonucleic acid see *dna. [from de-, oxygen, *ribonucleic acid]

    Dep. Abbr. 1 departs. 2 deputy.

    Depart v. 1 a (often foll. By from) go away; leave. B (usu. Foll. By for) start; set out. 2 (usu. Foll. By from) deviate (departs from good taste). 3 esp. Formal or literary leave by death; die (departed this life). [latin dispertio divide]

    Departed —adj. Bygone. —n. (prec. By the) euphem. Dead person or people.

    Department n. 1 separate part of a complex whole, esp.: a a branch of administration (housing department). B a division of a school, college, etc., by subject (physics department). C a section of a large store (hardware department). 2 colloq. Area of special expertise. 3 administrative district, esp. In france. [french: related to *depart]

    Departmental adj. Of a department. departmentally adv.

    Department store n. Large shop with many departments.

    Departure n. 1 departing. 2 (often foll. By from) deviation (from the truth, a standard, etc.). 3 (often attrib.) Departing of a train, aircraft, etc. (departure lounge). 4 new course of action or thought (driving is rather a departure for him).

    Depend v. 1 (often foll. By on, upon) be controlled or determined by (it depends on luck). 2 (foll. By on, upon) a need (depends on his car). B rely on (i’m depending on good weather). [latin pendeo hang]

    Dependable adj. Reliable. dependability n. Dependableness n. Dependably adv.

    Dependant n. (us dependent) person supported, esp. Financially, by another. [french: related to *depend]

    Dependence n. 1 depending or being dependent, esp. Financially. 2 reliance; trust.

    Dependency n. (pl. -ies) country or province controlled by another.

    Dependent —adj. 1 (usu. Foll. By on, upon) depending, conditional. 2 unable to do without (esp. A drug). 3 maintained at another’s cost. 4 (of a clause etc.) Subordinate to a sentence or word. —n. Us var. Of *dependant.

    Depict v. 1 represent in drawing or painting etc. 2 portray in words; describe. depicter n. (also -tor). Depiction n. [latin: related to *picture]

    Depilate v. (-ting) remove hair from. depilation n. [latin pilus hair]

    Depilatory —adj. Removing unwanted hair. —n. (pl. -ies) depilatory substance.

    Deplete v. (-ting) (esp. In passive) reduce in numbers, force, or quantity; exhaust. depletion n. [latin pleo fill]

    Deplorable adj. Exceedingly bad. deplorably adv.

    Deplore v. (-ring) 1 regret deeply. 2 find exceedingly bad. [latin ploro wail]

    Deploy v. 1 spread out (troops) into a line ready for action. 2 use (arguments, forces, etc.) Effectively. deployment n. [latin plico fold]

    Depoliticize v. (also -ise) (-zing or -sing) make non-political. depoliticization n.

    Deponent —adj. (of esp. A latin or greek verb) passive in form but active in meaning. —n. 1 deponent verb. 2 person making deposition under oath. [latin depono put down, lay aside]

    Depopulate v. (-ting) reduce the population of. depopulation n.

    Deport v. 1 remove forcibly or exile to another country; banish. 2 refl. Behave (in a specified manner) (deported himself well). deportation n. (in sense 1). [latin porto carry]

    Deportee n. Deported person.

    Deportment n. Bearing, demeanour. [french: related to *deport]

    Depose v. (-sing) 1 remove from office, esp. Dethrone. 2 law (usu. Foll. By to, or that + clause) testify, esp. On oath. [french from latin: related to *deposit]

    Deposit —n. 1 a money in a bank account. B anything stored for safe keeping. 2 a payment made as a pledge for a contract or as an initial part payment for a thing bought. B returnable sum paid on the hire of an item. 3 a natural layer of sand, rock, coal, etc. B layer of accumulated matter on a surface. —v. (-t-) 1 a put or lay down (deposited the book on the shelf). B (of water etc.) Leave (matter etc.) Lying. 2 a store or entrust for keeping. B pay (a sum of money) into a bank account. 3 pay (a sum) as part of a larger sum or as a pledge for a contract. [latin pono posit-put]

    Deposit account n. Bank account that pays interest but is not usu. Immediately accessible.

    Depositary n. (pl. -ies) person to whom a thing is entrusted. [latin: related to *deposit]

    Deposition n. 1 deposing, esp. Dethronement. 2 sworn evidence; giving of this. 3 (the deposition) taking down of christ from the cross. 4 depositing or being deposited. [latin: related to *deposit]

    Depositor n. Person who deposits money, property, etc.

    Depository n. (pl. -ies) 1 a storehouse. B store (of wisdom, knowledge, etc.). 2 = depositary. [latin: related to deposit]

    Depot n. 1 a storehouse, esp. For military supplies. B headquarters of a regiment. 2 a place where vehicles, e.g. Buses, are kept. B us railway or bus station. [french: related to *deposit]

    Deprave v. (-ving) corrupt, esp. Morally. [latin pravus crooked]

    Depravity n. (pl. -ies) moral corruption; wickedness.

    Deprecate v. (-ting) express disapproval of; deplore. deprecation n. Deprecatory adj. [latin: related to *pray]

    Usage deprecate is often confused with depreciate.

    Depreciate v. (-ting) 1 diminish in value. 2 belittle. depreciatory adj. [latin: related to *price]

    Usage depreciate is often confused with deprecate.

    Depreciation n. 1 a decline in value, esp. Due to wear and tear. B allowance made for this. 2 belittlement.

    Depredation n. (usu. In pl.) Despoiling, ravaging. [latin: related to *prey]

    Depress v. 1 make dispirited or sad. 2 push down; lower. 3 reduce the activity of (esp. Trade). 4 (as depressed adj.) A miserable. B suffering from depression. depressing adj. Depressingly adv. [latin: related to *press1]

    Depressant —adj. Reducing activity, esp. Of a body function. —n. Depressant substance.

    Depressed area n. Area of economic depression.

    Depression n. 1 extreme melancholy, often with a reduction in vitality and physical symptoms. 2 econ. Long period of slump. 3 lowering of atmospheric pressure; winds etc. Caused by this. 4 hollow on a surface. 5 pressing down.

    Depressive —adj. 1 tending to depress (depressive drug, influence). 2 of or tending towards depression (depressive illness; depressive father). —n. Person suffering from depression.

    Deprivation n. Depriving or being deprived (suffered many deprivations).

    Deprive v. (-ving) 1 (usu. Foll. By of) prevent from having or enjoying. 2 (as deprived adj.) Lacking what is needed for well-being; underprivileged. deprival n. [latin: related to *privation]

    Dept. Abbr. Department.

    Dept. Abbr. Department.

    Depth n. 1 a deepness. B measurement from the top down, from the surface inwards, or from front to back. 2 difficulty; abstruseness. 3 a wisdom. B intensity of emotion etc. 4 intensity of colour, darkness, etc. 5 (usu. In pl.) A deep water or place; abyss. B low, depressed state. C lowest, central, or inmost part (depths of the country; depth of winter). in depth thoroughly. Out of one’s depth 1 in water over one’s head. 2 engaged in a task etc. Too difficult for one. [related to *deep]

    Depth-charge n. Bomb exploding under water.

    Deputation n. Delegation. [latin: related to *depute]

    Depute v. (-ting) (often foll. By to) 1 delegate (a task, authority, etc.). 2 authorize as representative. [latin puto think]

    Deputize v. (also -ise) (-zing or -sing) (usu. Foll. By for) act as deputy.

    Deputy n. (pl. -ies) 1 person appointed to act for another (also attrib.: deputy manager). 2 parliamentary representative in some countries. [var. Of *depute]

    Derail v. (usu. In passive) cause (a train etc.) To leave the rails. derailment n. [french: related to *rail1]

    Derange v. (-ging) 1 make insane. 2 disorder, disturb. derangement n. [french:

    Derange v. (-ging) 1 make insane. 2 disorder, disturb. derangement n. [french: related to *rank1]

    Derby n. (pl. -ies) 1 a annual flat horse-race at epsom. B similar race elsewhere. 2 important sporting contest. 3 (derby) us bowler hat. [earl of derby]

    Derecognize v. (also -ise) (-zing or -sing) cease to recognize the status of (esp. A trade union). derecognition n.

    Deregulate v. (-ting) remove regulations from. deregulation n.

    Derelict —adj. 1 (esp. Of a property) dilapidated. 2 abandoned, ownerless. —n. 1 vagrant. 2 abandoned property. [latin: related to *relinquish]

    Dereliction n. 1 (usu. Foll. By of) neglect; failure to carry out obligations. 2 abandoning or being abandoned.

    Derestrict v. Remove restrictions (esp. Speed limits) from. derestriction n.

    Deride v. (-ding) mock. derision n. [latin rideo laugh]

    De rigueur predic. Adj. Required by fashion or etiquette (drugs were de rigueur). [french]

    Derisive adj. = derisory. derisively adv. [from deride]

    Derisory adj. 1 scoffing, ironical (derisory cheers). 2 ridiculously small (derisory offer).

    Derivation n. 1 deriving or being derived. 2 a formation of a word from another or from a root. B tracing of the origin of a word. C statement of this.

    Derivative —adj. Derived; not original (his music is derivative). —n. 1 derived word or thing. 2 math. Quantity measuring the rate of change of another.

    Derive v. (-ving) 1 (usu. Foll. By from) get or trace from a source (derived satisfaction from work). 2 (foll. By from) arise from, originate in (happiness derives from many things). 3 (usu. Foll. By from) show or state the origin or formation of (a word etc.). [latin rivus stream]

    Dermatitis n. Inflammation of the skin. [greek derma skin, *-itis]

    Dermatology n. The study of skin diseases. dermatological adj. Dermatologist n. [from *dermatitis, *-logy]

    Dermis n. 1 (in general use) the skin. 2 layer of living tissue below the epidermis. [from *epidermis]

    Derogate v. (-ting) (foll. By from) formal detract from (merit, right, etc.). derogation n. [latin rogo ask]

    Derogatory adj. Disparaging; insulting (derogatory remark). derogatorily adv.

    Derrick n. 1 crane for heavy weights, with a movable pivoted arm. 2 framework over an oil well etc., holding the drilling machinery. [derrick, name of a hangman]

    Derring-do n. Literary joc. Heroic courage or actions. [daring to do]

    Derris n. 1 tropical climbing plant. 2 insecticide made from its root. [latin from greek]

    Derv n. Diesel oil for road vehicles. [diesel-engined road-vehicle]

    Dervish n. Member of a muslim fraternity vowed to poverty and austerity. [turkish from persian, = poor]

    Des abbr. Department of education and science.

    Desalinate v. (-ting) remove the salt from (esp. Sea water). desalination n. [from *saline]

    Descale v. (-ling) remove scale from.

    Descant —n. 1 harmonizing treble melody above the basic melody, esp. Of a hymn tune. 2 poet. Melody; song. —v. (foll. By on, upon) talk prosily, esp. In praise of. [latin cantus song: related to *chant]

    Descend v. 1 go or come down. 2 sink, fall. 3 slope downwards. 4 (usu. Foll. By on) make a sudden attack or visit. 5 (of property etc.) Be passed on by inheritance. 6 a sink in rank, quality, etc. B (foll. By to) stoop to (an unworthy act). be descended from have as an ancestor. descendent adj. [latin scando climb]

    Descendant n. Person or thing descended from another. [french: related to *descend]

    Descent n. 1 act or way of descending. 2 downward slope. 3 lineage, family origin. 4 decline; fall. 5 sudden attack.

    Describe v. (-bing) 1 a state the characteristics, appearance, etc. Of. B (foll. By as) assert to be; call (described him as a liar). 2 a draw (esp. A geometrical figure). B move in (a specified way, esp. A curve) (described a parabola through the air). [latin scribo write]

    Description n. 1 a describing or being described. B representation, esp. In words. 2 sort, kind (no food of any description). [latin: related to *describe]

    Descriptive adj. Describing, esp. Vividly. [latin: related to *describe]

    Descry v. (-ies, -ied) literary catch sight of; discern. [french: related to *cry]

    Descry v. (-ies, -ied) literary catch sight of; discern. [french: related to *cry]

    Desecrate v. (-ting) violate (a sacred place etc.) With violence, profanity, etc. desecration n. Desecrator n. [from de-, consecrate]

    Desegregate v. (-ting) abolish racial segregation in. desegregation n.

    Deselect v. Reject (a selected candidate, esp. A sitting mp) in favour of another. deselection n.

    Desensitize v. (also -ise) (-zing or -sing) reduce or destroy the sensitivity of. desensitization n.

    Desert1 v. 1 leave without intending to return. 2 (esp. As deserted adj.) Forsake, abandon. 3 run away (esp. From military service). deserter n. (in sense 3). Desertion n. [latin desero -sert-leave]

    Desert2 —n. Dry barren, esp. Sandy, tract. —adj. Uninhabited, desolate, barren. [latin desertus: related to *desert1]

    Desert2 —n. Dry barren, esp. Sandy, tract. —adj. Uninhabited, desolate, barren. [latin desertus: related to *desert1]

    Desert3 n. 1 (in pl.) Deserved reward or punishment (got his deserts). 2 being worthy of reward or punishment. [french: related to *deserve]

    Desert boot n. Suede etc. Ankle-high boot.

    Desertification n. Making or becoming a desert.

    Desert island n. (usu. Tropical) uninhabited island.

    Deserve v. (-ving) (often foll. By to + infin.) Be worthy of (a reward, punishment, etc.) (deserves a prize). deservedly adv. [latin servio serve]

    Deserving adj. (often foll. By of) worthy (esp. Of help, praise, etc.).

    Déshabillé n. (also déshabille, dishabille) state of partial undress. [french, = undressed]

    Desiccate v. (-ting) remove moisture from (esp. Food) (desiccated coconut). desiccation n. [latin siccus dry]

    Desideratum n. (pl. -ta) something lacking but desirable. [latin: related to *desire]

    Design —n. 1 a preliminary plan or sketch for making something. B art of producing these. 2 lines or shapes forming a pattern or decoration. 3 plan, purpose, or intention. 4 a arrangement or layout of a product. B established version of a product. —v. 1 produce a design for (a building, machine, etc.). 2 intend or plan (designed for beginners). 3 be a designer. by design on purpose.

    Have designs on plan to appropriate, seduce, etc. [latin signum mark]

    Designate —v. (-ting) 1 (often foll. By as) appoint to an office or function. 2 specify (designated times). 3 (often foll. By as) describe as; style. 4 serve as the name or symbol of. —adj. (after the noun) appointed to office but not yet installed. [latin: related to *design]

    Designation n. 1 name, description, or title. 2 designating.

    Designedly adv. On purpose.

    Designer n. 1 person who designs e.g. Clothing, machines, theatre sets; draughtsman. 2 (attrib.) Bearing the label of a famous designer; prestigious.

    Designer drug n. Synthetic analogue of an illegal drug.

    Designing adj. Crafty, scheming.

    Desirable adj. 1 worth having or doing. 2 sexually attractive. desirability n. Desirableness n. Desirably adv.

    Desire —n. 1 a unsatisfied longing or wish. B expression of this; request. 2 sexual appetite. 3 something desired (achieved his heart’s desire). —v. (-ring) 1 (often foll. By to + infin., or that + clause) long for; wish. 2 request (desires a rest). [latin desidero long for]

    Desirous predic. Adj. 1 (usu. Foll. By of) desiring, wanting (desirous of stardom). 2 wanting; hoping (desirous to do the right thing).

    Desist v. (often foll. By from) abstain; cease. [latin desisto]

    Desk n. 1 piece of furniture with a surface for writing on, and often drawers. 2 counter in a hotel, bank, etc. 3 specialized section of a newspaper office (sports desk). 4 unit of two orchestral players sharing a stand. [latin: related to *discus]

    Desktop n. 1 working surface of a desk. 2 (attrib.) (esp. Of a microcomputer) for use on an ordinary desk.

    Desktop publishing n. Printing with a desktop computer and high-quality printer.

    Desolate —adj. 1 left alone; solitary. 2 uninhabited, ruined, dreary (desolate moor). 3 forlorn; wretched. —v. (-ting) 1 depopulate, devastate; lay waste. 2 (esp. As desolated adj.) Make wretched. desolately adv. Desolateness n. [latin solus alone]

    Desolation n. 1 desolating or being desolated. 2 loneliness, grief, etc., esp. Caused by desertion. 3 neglected, ruined, or empty state.

    Despair —n. 1 complete loss or absence of hope. 2 cause of this. —v. (often foll. By of) lose or be without hope (despaired of ever winning). [latin spero hope]

    Despatch var. Of *dispatch.

    Desperado n. (pl. -es or us -s) desperate or reckless criminal etc. [as *desperate]

    Desperate adj. 1 reckless from despair; violent and lawless. 2 a extremely dangerous, serious, or bad (desperate situation). B staking all on a small chance (desperate remedy). 3 (usu. Foll. By for) needing or desiring very much (desperate for recognition). desperately adv. Desperateness n. Desperation n. [latin: related to *despair]

    Despicable adj. Vile; contemptible, esp. Morally. despicably adv. [latin specio spect-look at]

    Despise v. (-sing) regard as inferior, worthless, or contemptible. [latin: related to *despicable]

    Despite prep. In spite of. [latin: related to *despicable]

    Despoil v. Literary (often foll. By of) plunder; rob; deprive. despoliation n. [latin: related to *spoil]

    Despondent adj. In low spirits, dejected. despondence n. Despondency n. Despondently adv. [latin: related to *sponsor]

    Despot n. 1 absolute ruler. 2 tyrant. despotic adj. Despotically adv. [greek despotes master]

    despotes master]

    Despotism n. 1 rule by a despot; tyranny. 2 country ruled by a despot.

    Des res n. Slang desirable residence. [abbreviation]

    Dessert n. 1 sweet course of a meal. 2 fruit, nuts, etc., served at the end of a meal. [french: related to dis-, serve]

    Dessertspoon n. 1 medium-sized spoon for dessert. 2 amount held by this. dessertspoonful n. (pl. -s).

    Destabilize v. (also -ise) (-zing or -sing) 1 make unstable. 2 subvert (esp. A foreign government). destabilization n.

    Destination n. Place a person or thing is bound for. [latin: related to *destine]

    Destine v. (-ning) (often foll. By to, for, or to + infin.) Appoint; preordain; intend (destined him for the navy). be destined to be fated or preordained to. [french from latin]

    Destiny n. (pl. -ies) 1 a fate. B this regarded as a power. 2 particular person’s fate etc. [french from latin]

    Destitute adj. 1 without food, shelter, etc. 2 (usu. Foll. By of) lacking (destitute of friends). destitution n. [latin]

    Destroy v. 1 pull or break down; demolish. 2 kill (esp. An animal). 3 make useless; spoil. 4 ruin, esp. Financially. 5 defeat. [latin struo struct-build]

    Destroyer n. 1 person or thing that destroys. 2 fast armed warship escorting other ships.

    Destruct us esp. Astronaut. —v. Destroy (one’s own rocket etc.) Or be destroyed deliberately, esp. For safety. —n. Destructing.

    Destructible adj. Able to be destroyed. [latin: related to *destroy]

    Destruction n. 1 destroying or being destroyed. 2 cause of this. [latin: related to *destroy]

    Destructive adj. 1 (often foll. By to, of) destroying or tending to destroy. 2 negatively critical. destructively adv. Destructiveness n.

    Desuetude n. Formal state of disuse (fell into desuetude). [latin suesco be accustomed]

    Desultory adj. 1 constantly turning from one subject to another. 2 disconnected; unmethodical. desultorily adv. [latin desultorius superficial]

    Detach v. 1 (often foll. By from) unfasten or disengage and remove. 2 send (troops etc.) On a separate mission. 3 (as detached adj.) A impartial; unemotional. B (esp. Of a house) standing separate. detachable adj. [french: related to *attach]

    Detachment n. 1 a aloofness; indifference. B impartiality. 2 detaching or being detached. 3 troops etc. Detached for a specific purpose. [french: related to *detach]

    Detail —n. 1 small particular; item. 2 a these collectively (eye for detail). B treatment of them (detail was unconvincing). 3 a minor decoration on a building etc. B small part of a picture etc. Shown alone. 4 small military detachment. —v. 1 give particulars of. 2 relate circumstantially. 3 assign for special duty. 4 (as detailed adj.) A (of a picture, story, etc.) Containing many details. B itemized (detailed list). in detail item by item, minutely. [french: related to *tail2]

    Detain v. 1 keep waiting; delay. 2 keep in custody, lock up. detainment n. [latin teneo hold]

    Detainee n. Person kept in custody, esp. For political reasons.

    Detect v. 1 discover or perceive (detected a note of sarcasm). 2 (often foll. By in) discover (a criminal); solve (a crime). detectable adj. Detector n. [latin tego tect-cover]

    Detection n. 1 detecting or being detected. 2 work of a detective.

    Detective n. Person, esp. A police officer, investigating crimes.

    Détente n. Easing of strained, esp. International, relations. [french, = relaxation]

    Detention n. 1 detaining or being detained. 2 being kept late in school as a punishment. [latin: related to *detain]

    Detention centre n. Short-term prison for young offenders.

    Deter v. (-rr-) (often foll. By from) discourage or prevent, esp. Through fear. determent n. [latin terreo frighten]

    Detergent —n. Synthetic cleansing agent used with water. —adj. Cleansing. [latin tergeo wipe]

    Deteriorate v. (-ting) become worse. deterioration n. [latin deterior worse]

    Determinant —adj. Determining. —n. 1 determining factor etc. 2 quantity obtained by the addition of products of the elements of a square matrix according to a given rule. [latin: related to *determine]

    Determinate adj. Limited, of definite scope or nature.

    Determination n. 1 firmness of purpose; resoluteness. 2 process of deciding or

    Determination n. 1 firmness of purpose; resoluteness. 2 process of deciding or determining.

    Determine v. (-ning) 1 find out or establish precisely. 2 decide or settle; resolve. 3 be the decisive factor in regard to (demand determines supply). be determined be resolved. [latin terminus boundary]

    Determined adj. Showing determination; resolute, unflinching. determinedly adv.

    Determinism n. Doctrine that human actions, events, etc. Are determined by causes external to the will. determinist n. & adj. Deterministic adj. Deterministically adv.

    Deterrent —adj. Deterring. —n. Deterrent thing or factor (esp. Nuclear weapons). deterrence n.

    Detest v. Hate violently, loathe. detestation n. [latin detestor from testis witness]

    Detestable adj. Intensely disliked; hateful.

    Dethrone v. (-ning) remove from a throne, depose. dethronement n.

    Detonate v. (-ting) set off (an explosive charge); be set off. detonation n. [latin tono thunder]

    Detonator n. Device for detonating explosives.

    Detour n. Divergence from a usual route; roundabout course. [french: related to *turn]

    Detoxify v. (-ies, -ied) remove poison or harmful substances from. detoxification n. [latin toxicum poison]

    Detract v. (foll. By from) take away (a part); diminish; make seem less valuable or important. [latin traho tract-draw]

    Detractor n. Person who criticizes unfairly. detraction n.

    Detriment n. 1 harm, damage. 2 cause of this. detrimental adj. [latin: related to *trite]

    Detritus n. Gravel, sand, etc. Produced by erosion; debris. [latin: related to *detriment]

    De trop predic. Adj. Not wanted, in the way. [french, = excessive]

    Deuce1 n. 1 two on dice or playing-cards. 2 tennis score of 40 all. [latin duo duos two]

    Deuce2 n. The devil, esp. As an exclamation of surprise or annoyance (who the deuce are you?). [low german duus two (being the worst throw at dice)]

    Deus ex machina n. Unlikely agent resolving a seemingly hopeless situation, esp. In a play or novel. [latin, = god from the machinery, i.e. In a theatre]

    Deuterium n. Stable isotope of hydrogen with a mass about double that of the usual isotope. [greek deuteros second]

    Deutschmark n. (also deutsche mark) chief monetary unit of germany. [german: related to *mark2]

    Devalue v. (-ues, -ued, -uing) 1 reduce the value of. 2 reduce the value of (a currency) in relation to others or to gold. devaluation n.

    Devastate v. (-ting) 1 lay waste; cause great destruction to. 2 (often in passive) overwhelm with shock or grief. devastation n. [latin vasto lay waste]

    Devastating adj. Crushingly effective; overwhelming. devastatingly adv.

    Develop v. (-p-) 1 a make or become bigger, fuller, more elaborate, etc. B bring or come to an active, visible, or mature state. 2 begin to exhibit or suffer from (developed a rattle). 3 a build on (land). B convert (land) to new use. 4 treat (photographic film etc.) To make the image visible. developer n. [french]

    Developing country n. Poor or primitive country.

    Developing country n. Poor or primitive country.

    Development n. 1 developing or being developed. 2 a stage of growth or advancement. B thing that has developed; new event or circumstance etc. (latest developments). 3 full-grown state. 4 developed land; group of buildings. developmental adj.

    Development area n. Area where new industries are encouraged by the state.

    Deviant —adj. Deviating from what is normal, esp. Sexually. —n. Deviant person or thing. deviance n. Deviancy n.

    Deviate v. (-ting) (often foll. By from) turn aside or diverge (from a course of action, rule, etc.). deviation n. [latin via way]

    Device n. 1 thing made or adapted for a special purpose. 2 plan, scheme, or trick. 3 design, esp. Heraldic. leave a person to his or her own devices leave a person to do as he or she wishes. [french: related to *devise]

    Devil —n. 1 (usu. The devil) (in christian and jewish belief) supreme spirit of evil; satan. 2 a evil spirit; demon. B personified evil. 3 a wicked person. B mischievously clever person. 4 colloq. Person of a specified kind (lucky devil). 5 fighting spirit, mischievousness (devil is in him tonight). 6 colloq. Awkward thing. 7 (the devil or the devil) colloq. Used as an exclamation of surprise or annoyance (who the devil are you?). 8 literary hack. 9 junior legal counsel. —v. (-ll-; us -l-) 1 cook (food) with hot seasoning. 2 act as devil for an author or barrister. 3 us harass, worry. between the devil and the deep blue sea in a dilemma. A devil of colloq. Considerable, difficult, or remarkable. Devil’s own colloq. Very difficult or unusual (the devil’s own job). The devil to pay trouble

    colloq. Very difficult or unusual (the devil’s own job). The devil to pay trouble to be expected. Speak (or talk) of the devil said when person appears just after being mentioned. [greek diabolos accuser, slanderer]

    Devilish —adj. 1 of or like a devil; wicked. 2 mischievous. —adv. Colloq. Very. devilishly adv.

    Devil-may-care adj. Cheerful and reckless.

    Devilment n. Mischief, wild spirits.

    Devilry n. (pl. -ies) 1 wickedness; reckless mischief. 2 black magic.

    Devil’s advocate n. Person who argues against a proposition to test it.

    Devils-on-horseback n.pl. Savoury of prunes or plums wrapped in bacon.

    Devious adj. 1 not straightforward, underhand. 2 winding, circuitous. deviously adv. Deviousness n. [latin via way]

    Devise v. (-sing) 1 carefully plan or invent. 2 law leave (real estate) by will. [latin: related to *divide]

    Devoid predic. Adj. (foll. By of) lacking or free from. [french: related to *void]

    Devolution n. Delegation of power, esp. To local or regional administration. devolutionist n. & adj. [latin: related to *devolve]

    Devolve v. (-ving) 1 (foll. By on, upon, etc.) Pass (work or duties) or be passed to (a deputy etc.). 2 (foll. By on, to, upon) (of property etc.) Descend to. devolvement n. [latin volvo volut-roll]

    Devonian —adj. Of the fourth period of the palaeozoic era. —n. This period. [devon in england]

    Devote v. (-ting) (often refl.; foll. By to) apply or give over to (a particular activity etc.). [latin voveo vot-vow]

    Devoted adj. Loving; loyal. devotedly adv.

    Devotee n. 1 (usu. Foll. By of) zealous enthusiast or supporter. 2 pious person.

    Devotion n. 1 (usu. Foll. By to) great love or loyalty. 2 a religious worship. B (in pl.) Prayers. devotional adj. [latin: related to *devote]

    Devour v. 1 eat voraciously. 2 (of fire etc.) Engulf, destroy. 3 take in eagerly (devoured the play). 4 preoccupy (devoured by fear). [latin voro swallow]

    Devout adj. Earnestly religious or sincere. devoutly adv. Devoutness n. [latin: related to *devote]

    Dew n. 1 condensed water vapour forming on cool surfaces at night. 2 similar glistening moisture. dewy adj. (-ier, -iest). [old english]

    Dewberry n. (pl. -ies) bluish fruit like the blackberry.

    Dew-claw n. Rudimentary inner toe on some dogs.

    Dewdrop n. Drop of dew.

    Dewey system n. Decimal system of library classification. [dewey, name of a librarian]

    Dewlap n. Loose fold of skin hanging from the throat of cattle, dogs, etc. [from *dew, *lap1]

    Dew point n. Temperature at which dew forms.

    Dexter adj. Esp. Heraldry on or of the right-hand side (observer’s left) of a shield etc. [latin, = on the right]

    Dexterity n. 1 skill in using one’s hands. 2 mental adroitness. [latin: related to *dexter]

    Dexterous adj. (also dextrous) having or showing dexterity. dexterously adv. Dexterousness n.

    Dextrin n. Soluble gummy substance used as a thickening agent, adhesive, etc. [latin dextra on or to the right]

    Dextrose n. Form of glucose. [latin dextra on or to the right]

    Dfc abbr. Distinguished flying cross.

    Dfm abbr. Distinguished flying medal.

    Dhal n. (also dal) 1 a kind of split pulse common in india. 2 dish made with this. [hindi]

    Dharma n. Ind. 1 social custom; correct behaviour. 2 the buddhist truth. 3 the hindu moral law. [sanskrit, = decree, custom]

    Dhoti n. (pl. -s) loincloth worn by male hindus. [hindi]

    Di-1 comb. Form two-, double. [greek dis twice]

    Di-2 prefix = *dis-.

    Di-3 prefix form of *dia-before a vowel.

    Dia. Abbr. Diameter.

    Dia-prefix (also di-before a vowel) 1 through (diaphanous). 2 apart (diacritical). 3 across (diameter). [greek dia through]

    Diabetes n. Disease in which sugar and starch are not properly absorbed by the body. [latin from greek]

    Diabetic —adj. 1 of or having diabetes. 2 for diabetics. —n. Person suffering from diabetes.

    Diabolical adj. (also diabolic) 1 of the devil. 2 devilish; inhumanly cruel or wicked. 3 extremely bad, clever, or annoying. diabolically adv. [latin: related to *devil]

    Diabolism n. 1 worship of the devil. 2 sorcery. [greek: related to *devil]

    Diachronic adj. Of a thing’s historical development. diachronically adv. [greek khronos time]

    Diaconal adj. Of a deacon. [church latin: related to *deacon]

    Diaconate n. 1 position of deacon. 2 body of deacons.

    Diacritic n. Sign (e.g. An accent or cedilla) indicating different sounds or values of a letter. [greek: related to *critic]

    Diacritical —adj. Distinguishing, distinctive. —n. (in full diacritical mark or sign) = *diacritic.

    Diadem n. 1 crown or headband as a sign of sovereignty. 2 sovereignty. 3 crowning distinction. [greek deo bind]

    Diaeresis n. (pl. Diaereses) (us dieresis) mark (as in naïve) over a vowel to indicate that it is sounded separately. [greek, = separation]

    Diagnose v. (-sing) make a diagnosis of (a disease, fault, etc.).

    Diagnosis n. (pl. Diagnoses) 1 a identification of a disease from its symptoms. B formal statement of this. 2 identification of the cause of a mechanical fault etc. [greek gignosko recognize]

    Diagnostic —adj. Of or assisting diagnosis. —n. Symptom. diagnostically adv. Diagnostician n. [greek: related to *diagnosis]

    Diagnostics n. 1 (treated as pl.) Computing programs etc. Used to identify faults in hardware or software. 2 (treated as sing.) Science of diagnosing disease.

    Diagonal —adj. 1 crossing a straight-sided figure from corner to corner. 2 slanting, oblique. —n. Straight line joining two opposite corners. diagonally adv. [greek gonia angle]

    Diagram n. Outline drawing, plan, or graphic representation of a machine, structure, process, etc. diagrammatic adj. Diagrammatically adv. [greek: related to *-gram]

    Dial —n. 1 plate with a scale for measuring weight, volume, etc., indicated by a pointer. 2 movable numbered disc on a telephone for making connection. 3 face of a clock or watch, marking the hours etc. 4 a plate or disc etc. On a radio or television for selecting a wavelength or channel. B similar device on other equipment. —v. (-ll-; us -l-) 1 (also absol.) Select (a telephone number) with a dial. 2 measure, indicate, or regulate with a dial. [medieval latin diale from dies day]

    Dialect n. 1 regional form of speech. 2 variety of language with non-standard vocabulary, pronunciation, or grammar. dialectal adj. [greek lego speak]

    Dialectic n. 1 art of investigating the truth by discussion and logical argument. 2 process whereby contradictions merge to form a higher truth. 3 any situation or discussion involving the juxtaposition or conflict of opposites. [greek: related to *dialect]

    Dialectical adj. Of dialectic. dialectically adv.

    Dialectical materialism n. Marxist theory that political and historical events are due to the conflict of social forces arising from economic conditions.

    Dialectics n. (treated as sing. Or pl.) = *dialectic n. 1.

    Dialling tone n. Sound indicating that a telephone caller may dial.

    Dialog n. (brit. Dialogue) 1 a conversation. B this in written form. 2 discussion between people with different opinions. [greek lego speak]

    Dialogue n. (us dialog) 1 a conversation. B this in written form. 2 discussion between people with different opinions. [greek lego speak]

    Dialysis n. (pl. Dialyses) 1 separation of particles in a liquid by differences in their ability to pass through a membrane into another liquid. 2 purification of the blood by this technique. [greek luo set free]

    Diamanté adj. Decorated with synthetic diamonds or another sparkling substance. [french diamant diamond]

    Diameter n. 1 straight line passing through the centre of a circle or sphere to its edges; length of this. 2 transverse measurement; width, thickness. 3 unit of linear magnifying power. [greek: related to *-meter]

    Diametrical adj. (also diametric) 1 of or along a diameter. 2 (of opposites etc.) Absolute. diametrically adv. [greek: related to *diameter]

    Diamond n. 1 very hard transparent precious stone of pure crystallized carbon. 2 rhombus. 3 a playing-card of the suit denoted by a red rhombus. B (in pl.) This suit. [greek: related to *adamant]

    Diamond wedding n. 60th (or 75th) wedding anniversary.

    Dianthus n. Flowering plant of the genus including the carnation. [greek, = flower of zeus]

    Diapason n. 1 compass of a voice or musical instrument. 2 fixed standard of musical pitch. 3 either of two main organ-stops. [greek, = through all (notes)]

    Diaper n. Us baby’s nappy. [greek aspros white]

    Diaphanous adj. (of fabric etc.) Light, delicate, and almost transparent. [greek phaino show]

    Diaphragm n. 1 muscular partition between the thorax and abdomen in mammals. 2 = *dutch cap. 3 a photog. Plate or disc pierced with a circular hole to cut off marginal beams of light. B vibrating disc in a microphone, telephone, loudspeaker, etc. 4 device for varying the lens aperture in a camera etc. 5 thin sheet as a partition etc. [greek phragma fence]

    Diapositive n. Positive photographic slide or transparency.

    Diarist n. Person who keeps a diary.

    Diarrhea n. (esp. Brit. Diarrhoea) condition of excessively frequent and loose bowel movements. [greek rheo flow]

    Diarrhoea n. (esp. Us diarrhea) condition of excessively frequent and loose bowel movements. [greek rheo flow]

    Diary n. (pl. -ies) 1 daily record of events or thoughts. 2 book for this or for noting future engagements. [latin dies day]

    Diaspora n. 1 the dispersion of the jews after their exile in 538 bc. 2 the dispersed jews. [greek]

    Diastase n. Enzyme converting starch to sugar. [greek diastasis separation]

    Diatom n. One-cell alga found as plankton and forming fossil deposits. [greek, = cut in half]

    Diatomic adj. Consisting of two atoms.

    Diatonic adj. Mus. (of a scale, interval, etc.) Involving only notes belonging to the prevailing key. [greek: related to *tonic]

    Diatribe n. Forceful verbal attack or criticism; invective. [greek tribo rub]

    Diazepam n. A tranquillizing drug. [benzodiazepine + am]

    Dibble —n. (also dibber) hand tool for making holes for planting. —v. (-ling) sow, plant, or prepare (soil) with a dibble. [origin uncertain]

    Dice —n.pl. 1 a small cubes with faces bearing 1–6 spots, used in games or gambling. B (treated as sing.) One of these cubes (see die2). 2 game played with dice. —v. (-cing) 1 take great risks, gamble (dicing with death). 2 cut into small cubes. [pl. Of die2]

    Usage see note at *die2.

    Dicey adj. (dicier, diciest) slang risky, unreliable.

    Dichotomy n. (pl. -ies) division into two, esp. A sharply defined one. [greek dikho-apart: related to *tome]

    Usage the use of dichotomy to mean dilemma or ambivalence is considered incorrect in standard english.

    Dichromatic adj. 1 two-coloured. 2 having vision sensitive to only two of the three primary colours.

    three primary colours.

    Dick1 n. 1 colloq. (in certain set phrases) person (clever dick). 2 coarse slang penis. [dick, pet form of richard]

    Dick2 n. Slang detective. [perhaps an abbreviation]

    Dickens n. (usu. Prec. By how, what, why, etc., the) colloq. (esp. In exclamations) deuce; the devil (what the dickens is it). [probably the name dickens]

    Dickensian adj. 1 of the 19th-c. Novelist dickens or his work. 2 resembling situations in dickens’s work, esp. Poverty.

    Dickhead n. Coarse slang idiot. [from *dick1]

    Dicky —n. (pl. -ies) colloq. False shirt-front. —adj. (-ier, -iest) slang unsound; unhealthy. [dicky, pet form of richard]

    Dicky-bird n. 1 child’s word for a little bird. 2 word (didn’t say a dicky-bird).

    Dicky bow n. Colloq. Bow-tie.

    Dicotyledon n. Flowering plant having two cotyledons. dicotyledonous adj.

    Dicotyledon n. Flowering plant having two cotyledons. dicotyledonous adj.

    Dicta pl. Of *dictum.

    Dictaphone n. Propr. Machine for recording and playing back dictated words. [from dictate, phone]

    Dictate —v. (-ting) 1 say or read aloud (material to be written down or recorded). 2 state or order authoritatively or peremptorily. —n. (usu. In pl.) Authoritative instruction or requirement (dictates of conscience, fashion). dictation n. [latin dicto from dico say]

    Dictator n. 1 usu. Unelected omnipotent ruler. 2 omnipotent person in any sphere. 3 domineering person. dictatorship n. [latin: related to *dictate]

    Dictatorial adj. 1 of or like a dictator. 2 overbearing. dictatorially adv. [latin: related to *dictator]

    Diction n. Manner of enunciation in speaking or singing. [latin dictio from dico dict-say]

    Dictionary n. (pl. -ies) 1 book listing (usu. Alphabetically) and explaining the words of a language or giving corresponding words in another language. 2 reference book explaining the terms of a particular subject. [medieval latin: related to *diction]

    Dictum n. (pl. Dicta or -s) 1 formal expression of opinion. 2 a saying. [latin,

    Dictum n. (pl. Dicta or -s) 1 formal expression of opinion. 2 a saying. [latin, neuter past part. Of dico say]

    Did past of *do1.

    Didactic adj. 1 meant to instruct. 2 (of a person) tediously pedantic. didactically adv. Didacticism n. [greek didasko teach]

    Diddle v. (-ling) colloq. Swindle. [probably from diddler, name of a character in a 19th-c. Play]

    Diddums int. Often iron. Expressing commiseration. [= did ‘em, i.e. Did they (tease you etc.)?]

    Diddums int. Often iron. Expressing commiseration. [= did ‘em, i.e. Did they (tease you etc.)?]

    Didgeridoo n. Long tubular australian aboriginal musical instrument. [imitative]

    Didn’t contr. Did not.

    Die1 v. (dies, died, dying) 1 cease to live; expire, lose vital force. 2 a come to an end, fade away (his interest died). B cease to function. C (of a flame) go out. 3 (foll. By on) die or cease to function while in the presence or charge of (a person). 4 (usu. Foll. By of, from, with) be exhausted or tormented (nearly died of boredom). be dying (foll. By for, or to + infin.) Wish for longingly or intently (was dying for a drink). Die away fade to the point of extinction. Die back (of a plant) decay from the tip towards the root. Die down become fainter or weaker.

    plant) decay from the tip towards the root. Die down become fainter or weaker. Die hard die reluctantly (old habits die hard). Die off die one after another. Die out become extinct, cease to exist. [old norse]

    Die2 n. 1 = *dice 1b. 2 (pl. Dies) a engraved device for stamping coins, medals, etc. B device for stamping, cutting, or moulding material. the die is cast an irrevocable step has been taken. [latin datum from do give]

    Usage dice, rather than die, is now the standard singular as well as plural form in the games sense (one dice, two dice).

    Die-casting n. Process or product of casting from metal moulds.

    Die-hard n. Conservative or stubborn person.

    Dielectric —adj. Not conducting electricity. —n. Dielectric substance.

    Dieresis n. (pl. Diereses) (brit. Diaeresis) mark (as in naïve) over a vowel to indicate that it is sounded separately. [greek, = separation]

    Diesel n. 1 (in full diesel engine) internal-combustion engine in which heat produced by the compression of air in the cylinder ignites the fuel. 2 vehicle driven by a diesel engine. 3 fuel for a diesel engine. [diesel, name of an engineer]

    Diesel-electric adj. (of a locomotive etc.) Driven by an electric current from a

    Diesel-electric adj. (of a locomotive etc.) Driven by an electric current from a diesel-engined generator.

    Diesel oil n. Heavy petroleum fraction used in diesel engines.

    Die-sinker n. Engraver of dies.

    Die-stamping n. Embossing paper etc. With die.

    Diet1 —n. 1 range of foods habitually eaten by a person or animal. 2 limited range of food to which a person is restricted. 3 thing regularly offered (diet of half-truths). —v. (-t-) restrict oneself to a special diet, esp. To slim. dietary adj. Dieter n. [greek diaita way of life]

    Diet2 n. 1 legislative assembly in certain countries. 2 hist. Congress. [latin dieta]

    Dietetic adj. Of diet and nutrition. [greek: related to *diet1]

    Dietetics n.pl. (usu. Treated as sing.) The study of diet and nutrition.

    Dietitian n. (also dietician) expert in dietetics.

    Dif-prefix = *dis-.

    Differ v. 1 (often foll. By from) be unlike or distinguishable. 2 (often foll. By with) disagree. [latin differo, dilat-bring apart]

    Difference n. 1 being different or unlike. 2 degree of this. 3 way in which things differ. 4 a quantity by which amounts differ. B remainder left after subtraction. 5 disagreement, dispute. make a (or all the, no, etc.) Difference have a significant (or a very significant, or no etc.) Effect. With a difference having a new or unusual feature.

    Different adj. 1 (often foll. By from or to) unlike, of another nature. 2 distinct, separate. 3 unusual. differently adv.

    Usage in sense 1, different from is more widely acceptable than different to, which is common in less formal use.

    Differential —adj. 1 of, exhibiting, or depending on a difference. 2 math. Relating to infinitesimal differences. 3 constituting or relating to a specific difference. —n. 1 difference between things of the same kind. 2 difference in wages between industries or categories of employees in the same industry. 3 difference between rates of interest etc.

    Differential calculus n. Method of calculating rates of change, maximum or minimum values, etc.

    Differential gear n. Gear enabling a vehicle’s rear wheels to revolve at different speeds on corners.

    Differentiate v. (-ting) 1 constitute a difference between or in. 2 recognize as different; distinguish. 3 become different during development. 4 math. Calculate the derivative of. differentiation n.

    Difficult adj. 1 a needing much effort or skill. B troublesome, perplexing. 2 (of a person) demanding. 3 problematic.

    Difficulty n. (pl. -ies) 1 being difficult. 2 a difficult thing; problem, hindrance. B (often in pl.) Distress, esp. Financial (in difficulties). [latin difficultas: related to *faculty]

    Diffident adj. Shy, lacking self-confidence; excessively reticent. diffidence n. Diffidently adv. [latin diffido distrust]

    Diffract v. Break up (a beam of light) into a series of dark and light bands or coloured spectra, or (a beam of radiation or particles) into a series of high and low intensities. diffraction n. Diffractive adj. [latin diffringo: related to *fraction]

    Diffuse —adj. 1 spread out, not concentrated. 2 not concise, wordy. —v. (-sing) 1 disperse or spread widely. 2 intermingle by diffusion. diffusible adj. Diffusive adj. [latin: related to *found3]

    Diffusion n. 1 diffusing or being diffused. 2 interpenetration of substances by natural movement of their particles. [latin: related to *diffuse]

    Dig —v. (-gg-; past and past part. Dug) 1 (also absol.) Break up and remove or turn over (ground etc.). 2 (foll. By up) break up the soil of (fallow land). 3 make

    turn over (ground etc.). 2 (foll. By up) break up the soil of (fallow land). 3 make (a hole, tunnel, etc.) By digging. 4 (often foll. By up, out) a obtain by digging. B (foll. By up, out) find or discover. C (foll. By into) search for information in (a book etc.). 5 (also absol.) Excavate (an archaeological site). 6 slang like; understand. 7 (foll. By in, into) thrust (a sharp object); prod or nudge. 8 (foll. By into, through, under) make one’s way by digging. —n. 1 piece of digging. 2 thrust or poke. 3 colloq. Pointed remark. 4 archaeological excavation. 5 (in pl.) Colloq. Lodgings. dig one’s heels in be obstinate. Dig in colloq. Begin eating. Dig oneself in 1 prepare a defensive trench or pit. 2 establish one’s position. [old english]

    Digest —v. 1 assimilate (food) in the stomach and bowels. 2 understand and assimilate mentally. 3 summarize. —n. 1 periodical synopsis of current literature or news. 2 methodical summary, esp. Of laws. digestible adj. [latin digero -gest-]

    Digestion n. 1 process of digesting. 2 capacity to digest food.

    Digestive —adj. Of or aiding digestion. —n. 1 substance aiding digestion. 2 (in full digestive biscuit) wholemeal biscuit.

    Digger n. 1 person or machine that digs, esp. A mechanical excavator. 2 colloq. Australian or new zealander.

    Digit n. 1 any numeral from 0 to 9. 2 finger or toe. [latin, = finger, toe]

    Digital adj. 1 of digits. 2 (of a clock, watch, etc.) Giving a reading by displayed digits. 3 (of a computer) operating on data represented by a series of digits. 4 (of a recording) with sound-information represented by digits for more reliable transmission. digitally adv. [latin: related to *digit]

    Digital audio tape n. Magnetic tape on which sound is recorded digitally.

    Digitalis n. Drug prepared from foxgloves, used to stimulate the heart. [related to *digit, from the form of the flowers]

    Digitize v. (also -ise) (-zing or -sing) convert (data etc.) Into digital form, esp. For a computer. digitization n.

    Dignified adj. Having or showing dignity.

    Dignify v. (-ies, -ied) 1 confer dignity on; ennoble. 2 give a fine name to. [latin dignus worthy]

    Dignitary n. (pl. -ies) person of high rank or office. [from *dignity]

    Dignity n. (pl. -ies) 1 composed and serious manner. 2 worthiness, nobleness (dignity of work). 3 high rank or position. beneath one’s dignity not worthy enough for one. Stand on one’s dignity insist on being treated with respect. [latin dignus worthy]

    Digraph n. Two letters representing one sound, e.g. Ph, ey as in phone, key. [from di-1, -graph]

    Usage digraph is sometimes confused with ligature, which means two or more letters joined together.

    Digress v. Depart from the main subject in speech or writing. digression n. [latin digredior -gress-]

    Digs see *dig n. 5.

    Dike1 var. Of *dyke1.

    Dike2 var. Of *dyke2.

    Diktat n. Categorical statement or decree. [german, = *dictate]

    Dilapidated adj. In disrepair or ruin. dilapidation n. [latin: related to *di-2, lapis stone]

    Dilatation n. 1 dilating of the cervix, e.g. For surgical curettage. 2 dilation. [from *dilate]

    Dilate v. (-ting) 1 make or become wider or larger. 2 speak or write at length. dilation n. [latin latus wide]

    Dilatory adj. Given to or causing delay. [latin dilatorius: related to *differ]

    Dildo n. (pl. -s) artificial erect penis for sexual stimulation. [origin unknown]

    Dilemma n. 1 situation in which a difficult choice has to be made. 2 difficult situation, predicament. [greek lemma premiss]

    Usage the use of dilemma in sense 2 is considered incorrect by some people.

    Dilettante n. (pl. Dilettanti or -s) dabbler in a subject. dilettantism n. [italian dilettare *delight]

    Diligent adj. 1 hard-working. 2 showing care and effort. diligence n. Diligently adv. [french from latin diligo love]

    Dill n. Herb with aromatic leaves and seeds. [old english]

    Dilly-dally v. (-ies, -ied) colloq. 1 dawdle. 2 vacillate. [reduplication of *dally]

    Dilute —v. (-ting) 1 reduce the strength of (a fluid) by adding water etc. 2 weaken or reduce in effect. —adj. Diluted. dilution n. [latin diluo -lut-wash away]

    Diluvial adj. Of a flood, esp. Of the flood in genesis. [latin: related to *deluge]

    Dim —adj. (dimmer, dimmest) 1 a faintly luminous or visible; not bright. B

    Dim —adj. (dimmer, dimmest) 1 a faintly luminous or visible; not bright. B indistinct. 2 not clearly perceived or remembered. 3 colloq. Stupid. 4 (of the eyes) not seeing clearly. —v. (-mm-) make or become dim. take a dim view of colloq. Disapprove of. dimly adv. Dimness n. [old english]

    Dime n. Us tencent coin. [latin decima tenth (part)]

    Dimension —n. 1 measurable extent, as length, breadth, depth, etc. 2 (in pl.) Size (of huge dimensions). 3 aspect, facet (gained a new dimension). —v. (usu. As dimensioned adj.) Mark dimensions on (a diagram etc.). dimensional adj. [latin metior mens-measure]

    Diminish v. 1 make or become smaller or less. 2 (often as diminished adj.) Lessen the reputation of (a person); humiliate. law of diminishing returns fact that expenditure etc. Beyond a certain point ceases to produce a proportionate yield. [latin: related to *minute1]

    Diminuendo mus. —n. (pl -s) gradual decrease in loudness. —adv. & adj. Decreasing in loudness. [italian: related to *diminish]

    Diminution n. 1 diminishing or being diminished. 2 decrease. [latin: related to *diminish]

    Diminutive —adj. 1 tiny. 2 (of a word or suffix) implying smallness or affection. —n. Diminutive word or suffix.

    Dimmer n. 1 (in full dimmer switch) device for varying the brightness of an electric light. 2 us a (in pl.) Small parking lights on a vehicle. B headlight on low

    electric light. 2 us a (in pl.) Small parking lights on a vehicle. B headlight on low beam.

    Dimple —n. Small hollow, esp. In the cheek or chin. —v. (-ling) form dimples (in). dimply adj. [probably old english]

    Dim-wit n. Colloq. Stupid person. dim-witted adj.

    Din n. Any of a series of german technical standards designating electrical connections, film speeds, and paper sizes. [german, from deutsche industrie-norm]

    Din —n. Prolonged loud confused noise. —v. (-nn-) (foll. By into) force (information) into a person by constant repetition; make a din. [old english]

    Dinar n. Chief monetary unit of yugoslavia and several countries of the middle east and n. Africa. [arabic and persian from latin *denarius]

    Dine v. (-ning) 1 a eat dinner. B (foll. By on, upon) eat for dinner. 2 (esp. In phr. Wine and dine) entertain with food. dine out dine away from home. [french diner as *dis-, latin jejunus fasting]

    Diner n. 1 person who dines. 2 dining-car. 3 us small restaurant. 4 small dining-room.

    Dinette n. Small room or alcove for eating meals.

    Ding —v. Make a ringing sound. —n. Ringing sound. [imitative]

    Dingbat n. Slang us & austral. Stupid or eccentric person. [perhaps from ding to beat + *bat1]

    Ding-dong n. 1 sound of two chimes, esp. As a doorbell. 2 colloq. Heated argument or fight. [imitative]

    Dinghy n. (pl. -ies) 1 small boat carried by a ship. 2 small pleasure-boat. 3 small inflatable rubber boat. [hindi]

    Dingle n. Deep wooded valley or dell. [origin unknown]

    Dingo n. (pl. -es) wild australian dog. [aboriginal]

    Dingy adj. (-ier, -iest) dirty-looking, drab. dingily adv. Dinginess n. [origin uncertain]

    Dining-car n. Restaurant on a train.

    Dining-room n. Room in which meals are eaten.

    Dinkum adj. Austral. & nz colloq. Genuine, honest, true. dinkum oil the honest truth. Fair dinkum 1 fair play. 2 genuine(ly), honest(ly), true, truly. [origin unknown]

    Dinky adj. (-ier, -iest) colloq. Neat and attractive; small, dainty. [scots dink]

    Dinner n. 1 main meal of the day, either at midday or in the evening. 2 (in full dinner-party) formal evening meal, esp. With guests. [french: related to *dine]

    Dinner-dance n. Formal dinner followed by dancing.

    Dinner-jacket n. Man’s short usu. Black formal jacket for evening wear.

    Dinner lady n. Woman who supervises school dinners.

    Dinner service n. Set of matching crockery for dinner.

    Dinosaur n. 1 extinct, often enormous, reptile of the mesozoic era. 2 unwieldy or unchanging system or organization. [greek deinos terrible, *saurian]

    Dint —n. Dent. —v. Mark with dints. by dint of by force or means of. [old english and old norse]

    Diocese n. District under the pastoral care of a bishop. diocesan adj. [greek

    Diocese n. District under the pastoral care of a bishop. diocesan adj. [greek dioikesis administration]

    Diode n. 1 semiconductor allowing the flow of current in one direction only and having two terminals. 2 thermionic valve having two electrodes. [from di-1, electrode]

    Dionysian adj. Wildly sensual; unrestrained. [greek dionusos god of wine]

    Diopter n. (brit. Dioptre) unit of refractive power of a lens. [greek: related to *dia-, opsis sight]

    Dioptre n. (us diopter) unit of refractive power of a lens. [greek: related to *dia-, opsis sight]

    Diorama n. 1 scenic painting lit to simulate sunrise etc. 2 small scene with three-dimensional figures, viewed through a window etc. 3 small-scale model or film-set. [from *dia-, greek horao see]

    Dioxide n. Oxide containing two atoms of oxygen in the molecule.

    Dip —v. (-pp-) 1 put or lower briefly into liquid etc.; immerse. 2 a go below a surface or level. B (of income, activity, etc.) Decline slightly, esp. Briefly. 3 slope or extend downwards (road dips). 4 go under water and emerge quickly. 5 (foll. By into) look cursorily into (a book, subject, etc.). 6 a (foll. By into) put a hand, ladle, etc., into (a container) to take something out. B use part of (one’s resources) (dipped into our savings). 7 lower or be lowered, esp. In salute. 8 lower the beam of (headlights) to reduce dazzle. 9 colour (a fabric) by

    lower the beam of (headlights) to reduce dazzle. 9 colour (a fabric) by immersing it in dye. 10 wash (sheep) in disinfectant. —n. 1 dipping or being dipped. 2 liquid for dipping.

    Dip. Ed. Abbr. Diploma in education.

    Diphtheria n. Acute infectious bacterial disease with inflammation of a mucous membrane esp. Of the throat. [greek diphthera skin, hide]

    Usage the second pronunciation is considered incorrect by some people.

    Diphthong n. Two written or spoken vowels pronounced in one syllable (as in coin, loud, toy). [greek phthoggos voice]

    Diplodocus n. (pl. -cuses) giant plant-eating dinosaur with a long neck and tail. [greek diplous double, dokos wooden beam]

    Diploma n. 1 certificate of qualification awarded by a college etc. 2 document conferring an honour or privilege. [greek, = folded paper, from diplous double]

    Diplomacy n. 1 a management of international relations. B skill in this. 2 tact. [french: related to *diplomatic]

    Diplomat n. 1 member of a diplomatic service. 2 tactful person.

    Diplomatic adj. 1 of or involved in diplomacy. 2 tactful. diplomatically adv.

    Diplomatic adj. 1 of or involved in diplomacy. 2 tactful. diplomatically adv. [french: related to *diploma]

    Diplomatic bag n. Container for dispatching official mail etc. To or from an embassy, usu. Exempt from customs inspection.

    Diplomatic immunity n. Exemption of diplomatic staff abroad from arrest, taxation, etc.

    Diplomatic service n. Branch of the civil service concerned with the representation of a country abroad.

    Diplomatist n. Diplomat.

    Dipole n. 1 two equal and oppositely charged or magnetized poles separated by a distance. 2 molecule in which a concentration of positive charges is separated from a concentration of negative charges. 3 aerial consisting of a horizontal metal rod with a connecting wire at its core.

    Dipper n. 1 diving bird, esp. The water ouzel. 2 ladle.

    Dippy adj. (-ier, -iest) slang crazy, silly. [origin uncertain]

    Dipso n. (pl. -s) colloq. Alcoholic. [abbreviation]

    Dipsomania n. Alcoholism. dipsomaniac n. [greek dipsa thirst]

    Dipstick n. Rod for measuring the depth of esp. Oil in a vehicle’s engine.

    Dip-switch n. Switch for dipping a vehicle’s headlights.

    Dipterous adj. (of an insect) having two wings. [greek pteron wing]

    Diptych n. Painting, esp. An altarpiece, on two hinged panels closing like a book. [greek, = pair of writing-tablets, from ptukhe fold]

    Dire adj. 1 a calamitous, dreadful. B ominous. C (predic) colloq. Very bad. 2 urgent (in dire need). [latin]

    Direct —adj. 1 extending or moving in a straight line or by the shortest route; not crooked or circuitous. 2 straightforward; frank. 3 with nothing or no-one in between; personal (direct line). 4 (of descent) lineal, not collateral. 5 complete, greatest possible (the direct opposite). —adv. 1 in a direct way or manner (dealt with them direct). 2 by the direct route (sent direct to london). —v. 1 control; govern or guide (duty directs me). 2 (foll. By to + infin., or that + clause) order (a person) to. 3 (foll. By to) a address (a letter etc.). B tell or show (a person) the way to (a place). 4 (foll. By at, to, towards) point, aim, or turn (a blow, attention, or remark). 5 (also absol.) Supervise the performing, staging, etc., of (a film, play, etc.). directness n. [latin dirigo from rego rect-guide]

    Direct current n. Electric current flowing in one direction only.

    Direct debit n. Regular debiting of a bank account at the request of the payee.

    Direct debit n. Regular debiting of a bank account at the request of the payee.

    Direct-grant school n. School funded by the government and not a local authority.

    Direction n. 1 directing; supervision. 2 (usu. In pl.) Order or instruction. 3 line along which, or point to or from which, a person or thing moves or looks. 4 tendency or scope of a theme, subject, etc.

    Directional adj. 1 of or indicating direction. 2 sending or receiving radio or sound waves in one particular direction.

    Directive —n. Order from an authority. —adj. Serving to direct.

    Directly —adv. 1 a at once; without delay, immediately (directly after lunch). B presently, shortly. 2 exactly (directly opposite). 3 in a direct manner. —conj. Colloq. As soon as (will tell you directly they come).

    Direct object n. Primary object of the action of a transitive verb.

    Director n. 1 person who directs or controls, esp. A member of the board of a company. 2 person who directs a film, play, etc. directorial adj. Directorship n.

    Directorate n. 1 board of directors. 2 office of director.

    Director-general n. Chief executive of a large organization.

    Directory n. (pl. -ies) book with a list of telephone subscribers, inhabitants of a district, or members of a profession etc. [latin: related to *direct]

    Directory enquiries n.pl. Telephone service providing a subscriber’s number on request.

    Directress n. Woman director.

    Direct speech n. Words actually spoken, not reported.

    Direct tax n. Tax that one pays directly to the government, esp. On income.

    Dirge n. 1 lament for the dead. 2 any dreary piece of music. [latin imperative dirige = direct, used in the office for the dead]

    Dirham n. Principal monetary unit of morocco and the united arab emirates. [arabic]

    Dirigible —adj. Capable of being guided. —n. Dirigible balloon or airship. [related to *direct]

    Dirk n. Short dagger. [origin unknown]

    Dirndl n. 1 dress with a close-fitting bodice and full skirt. 2 full skirt of this kind. [german]

    Dirt n. 1 unclean matter that soils. 2 a earth, soil. B earth, cinders, etc., used to make the surface for a road etc. (usu. Attrib.: dirt track). 3 foul or malicious words or talk. 4 excrement. treat like dirt treat with contempt. [old norse drit excrement]

    Dirt cheap adj. & adv. Colloq. Extremely cheap.

    Dirty —adj. (-ier, -iest) 1 soiled, unclean. 2 causing dirtiness (dirty job). 3 sordid, lewd, obscene. 4 unpleasant, dishonourable, unfair (dirty trick). 5 (of weather) rough, squally. 6 (of colour) muddied, dingy. —adv. Slang 1 very (a dirty great diamond). 2 in a dirty manner (talk dirty; act dirty) (esp. In senses 3 and 4 of adj.). —v. (-ies, -ied) make or become dirty. do the dirty on colloq. Play a mean trick on. dirtily adv. Dirtiness n.

    Dirty look n. Colloq. Look of disapproval or disgust.

    Dirty old man n. Colloq. Lecherous man.

    Dirty weekend n. Colloq. Weekend spent with a lover.

    Dirty word n. 1 offensive or indecent word. 2 word for something disapproved of (profit is a dirty word).

    Dirty work n. Dishonourable or illegal activity; unpleasant task.

    Dis-prefix forming nouns, adjectives, and verbs implying: 1 negation or direct opposite (dishonest; discourteous). 2 reversal (disengage; disorientate). 3 removal of a thing or quality (dismember; disable). 4 separation (distinguish). 5 completeness or intensification (disgruntled). 6 expulsion from (disbar). [french des-or latin dis-]

    Disability n. (pl. -ies) 1 permanent physical or mental incapacity. 2 lack of some capacity etc., preventing action.

    Disable v. (-ling) 1 deprive of an ability or function. 2 (often as disabled adj.) Physically incapacitate. disablement n.

    Disabuse v. (-sing) (usu. Foll. By of) free from a mistaken idea; disillusion.

    Disadvantage —n. 1 unfavourable circumstance or condition. 2 damage; loss. — v. (-ging) cause disadvantage to. at a disadvantage in an unfavourable position or aspect. disadvantageous adj.

    Disadvantaged adj. Lacking normal opportunities through poverty, disability, etc.

    Disaffected adj. Discontented (esp. Politically); no longer loyal. disaffection n.

    Disagree v. (-ees, -eed, -eeing) (often foll. By with) 1 hold a different opinion. 2 (of factors) not correspond. 3 upset (onions disagree with me). disagreement n.

    Disagreeable adj. 1 unpleasant. 2 bad-tempered. disagreeably adv.

    Disallow v. Refuse to allow or accept; prohibit.

    Disappear v. 1 cease to be visible. 2 cease to exist or be in circulation or use. 3 (of a person) go missing. disappearance n.

    Disappoint v. 1 fail to fulfil the desire or expectation of. 2 frustrate (a hope etc.). disappointed adj. Disappointing adj.

    Disappointment n. 1 person or thing that disappoints. 2 being disappointed.

    Disapprobation n. Formal disapproval.

    Disapprove v. (-ving) (usu. Foll. By of) have or express an unfavourable opinion. disapproval n.

    Disarm v. 1 take weapons etc. Away from. 2 reduce or give up one’s own

    weapons. 3 defuse (a bomb etc.). 4 make less angry, hostile, etc; charm, win over. disarming adj. (esp. In sense 4). Disarmingly adv.

    Disarmament n. Reduction by a state of its armaments.

    Disarrange v. (-ging) bring into disorder. disarrangement n.

    Disarray —n. Disorder. —v. Throw into disorder.

    Disassociate v. (-ting) = *dissociate. disassociation n.

    Disaster n. 1 great or sudden misfortune; catastrophe. 2 colloq. Complete failure. disastrous adj. Disastrously adv. [latin astrum star]

    Disavow v. Disclaim knowledge of or responsibility for. disavowal n.

    Disband v. Break up; disperse. disbandment n.

    Disbar v. (-rr-) deprive (a barrister) of the right to practise. disbarment n.

    Disbelieve v. (-ving) be unable or unwilling to believe; be sceptical. disbelief n. Disbelievingly adv.

    Disburse v. (-sing) pay out (money). disbursal n. Disbursement n. [french: related to dis-, bourse]

    Disc n. (also disk esp. Us and in sense 4a) 1 a flat thin circular object. B round flat or apparently flat surface or mark. 2 layer of cartilage between vertebrae. 3 gramophone record. 4 a (usu. Disk; in full magnetic disk) flat circular computer storage device. B (in full optical disc) disc for data recorded and read by laser. [latin *discus]

    Discard v. 1 reject as unwanted. 2 remove or put aside. [from dis-, card1]

    Disc brake n. Brake employing the friction of pads against a disc.

    Discern v. 1 perceive clearly with the mind or senses. 2 make out with effort. discernible adj. [latin cerno cret-separate]

    Discerning adj. Having good judgement. discerningly adv. Discernment n.

    Discharge —v. (-ging) 1 release (a prisoner); allow (a patient, jury) to leave. 2 dismiss from office or employment. 3 fire (a gun etc.). 4 throw; eject. 5 emit, pour out (pus etc.). 6 (foll. By into) (of a river etc.) Flow into (esp. The sea). 7 a carry out (a duty or obligation). B relieve oneself of (a debt etc.). C relieve (a bankrupt) of residual liability. 8 law cancel (an order of court). 9 release an electrical charge from. 10 a relieve (a ship etc.) Of cargo. B unload (cargo). —n. 1 discharging or being discharged. 2 certificate of release, dismissal, etc. 3 matter discharged; pus etc. 4 release of an electric charge, esp. With a spark.

    Disciple n. Follower of a leader, teacher, etc., esp. Of christ. [latin disco learn]

    Disciplinarian n. Enforcer of or believer in firm discipline.

    Disciplinary adj. Of or enforcing discipline.

    Discipline —n. 1 a control or order exercised over people or animals, e.g. Over members of an organization. B system of rules for this. 2 training or way of life aimed at self-control and conformity. 3 branch of learning. 4 punishment. —v. (-ning) 1 punish. 2 control by training in obedience. [latin disciplina from disco learn]

    Disc jockey n. Presenter of recorded pop music.

    Disclaim v. 1 deny or disown. 2 renounce legal claim to.

    Disclaimer n. Renunciation; statement disclaiming something.

    Disclose v. (-sing) make known; expose. disclosure n.

    Disco colloq. —n. (pl. -s) = *discothèque. —v. (-es, -ed) dance to disco music. [abbreviation]

    Discolor v. (brit. Discolour) cause to change from its normal colour; stain;

    Discolor v. (brit. Discolour) cause to change from its normal colour; stain; tarnish. discoloration n.

    Discolour v. (us discolor) cause to change from its normal colour; stain; tarnish. discoloration n.

    Discomfit v. (-t-) disconcert, baffle, frustrate. discomfiture n. [french: related to dis-, confection]

    Usage discomfit is sometimes confused with discomfort.

    Discomfort —n. 1 lack of comfort; slight pain or unease. 2 cause of this. —v. Make uncomfortable.

    Usage as a verb, discomfort is sometimes confused with discomfit.

    Discompose v. (-sing) disturb the composure of. discomposure n.

    Disco music n. Popular dance music with a heavy bass rhythm.

    Disconcert v. Disturb the composure of; fluster.

    Disconnect v. 1 break the connection of. 2 put out of action by disconnecting the parts. disconnection n.

    parts. disconnection n.

    Disconnected adj. Incoherent and illogical.

    Disconsolate adj. Forlorn, unhappy, disappointed. disconsolately adv. [latin: related to dis-, solace]

    Discontent —n. Lack of contentment; dissatisfaction, grievance. —v. (esp. As discontented adj.) Make dissatisfied. discontentment n.

    Discontinue v. (-ues, -ued, -uing) 1 come or bring to an end (a discontinued line). 2 give up, cease from (doing something). discontinuance n.

    Discontinuous adj. Lacking continuity; intermittent. discontinuity n.

    Discord n. 1 disagreement; strife. 2 harsh noise; clashing sounds. 3 lack of harmony in a chord. [latin: related to *dis-, cor cord-heart]

    Discordant adj. 1 disagreeing. 2 not in harmony; dissonant. discordance n. Discordantly adv.

    Discothèque n. 1 nightclub etc. For dancing to pop records. 2 professional lighting and sound equipment used for this. 3 party with such equipment. [french, = record-library]

    Discount —n. Amount deducted from a full or normal price, esp. For prompt or advance payment. —v. 1 disregard as unreliable or unimportant. 2 deduct an amount from (a price etc.). 3 give or get the present worth of (an investment certificate which has yet to mature). at a discount below the usual price or true value.

    Discountenance v. (-cing) 1 disconcert. 2 refuse to approve of.

    Discourage v. (-ging) 1 deprive of courage or confidence. 2 dissuade, deter. 3 show disapproval of. discouragement n.

    Discourse —n. 1 conversation. 2 lengthy treatment of a subject. 3 lecture, speech. —v. (-sing) 1 converse. 2 speak or write at length on a subject. [latin curro curs-run]

    Discourteous adj. Lacking courtesy. discourteously adv. Discourtesy n. (pl. -ies).

    Discover v. 1 a find out or become aware of, by intention or chance. B be first to find or find out (who discovered america?). 2 find and promote as a new performer. discoverer n. [latin discooperio: related to dis-, cover]

    Discovery n. (pl. -ies) 1 discovering or being discovered. 2 person or thing discovered.

    Discredit —n. 1 harm to reputation. 2 person or thing causing this. 3 lack of credibility. —v. (-t-) 1 harm the good reputation of. 2 cause to be disbelieved. 3 refuse to believe.

    refuse to believe.

    Discreditable adj. Bringing discredit; shameful. discreditably adv.

    Discreet adj. (-er, -est) 1 a circumspect. B tactful; judicious, prudent. 2 unobtrusive. discreetly adv. Discreetness n. [latin: related to *discern]

    Discrepancy n. (pl. -ies) difference; inconsistency. discrepant adj. [latin discrepo be discordant]

    Discrete adj. Individually distinct; separate, discontinuous. discreteness n. [latin: related to *discern]

    Discretion n. 1 being discreet. 2 prudence; good judgement. 3 freedom or authority to act according to one’s judgement. use one’s discretion act according to one’s own judgement. discretionary adj. [latin: related to *discern]

    Discriminate v. (-ting) 1 (often foll. By between) make or see a distinction. 2 (usu. Foll. By against or in favour of) treat unfavourably or favourably, esp. On the basis of race, gender, etc. discriminatory adj. [latin discrimino: related to *discern]

    Discriminating adj. Showing good judgement or taste.

    Discrimination n. 1 unfavourable treatment based on racial, sexual, etc. Prejudice. 2 good taste or judgement.

    Discursive adj. Tending to digress, rambling. [latin curro curs-run]

    Discus n. (pl. -cuses) heavy thick-centred disc thrown in athletic events. [latin from greek]

    Discuss v. 1 talk about (discussed their holidays). 2 talk or write about (a subject) in detail. discussion n. [latin discutio -cuss-disperse]

    Disdain —n. Scorn, contempt. —v. 1 regard with disdain. 2 refrain or refuse out of disdain. disdainful adj. Disdainfully adv. [latin: related to de-, deign]

    Disease n. 1 unhealthy condition of the body or mind, plants, society, etc. 2 particular kind of disease. diseased adj. [french: related to dis-, ease]

    Disembark v. Put or go ashore; get off an aircraft, bus, etc. disembarkation n.

    Disembarrass v. 1 (usu. Foll. By of) relieve (of a load etc.). 2 free from embarrassment. disembarrassment n.

    Disembodied adj. 1 (of the soul etc.) Freed from the body or concrete form. 2 lacking a body. disembodiment n.

    Disembowel v. (-ll-; us -l-) remove the bowels or entrails of. disembowelment n.

    Disenchant v. Disillusion. disenchantment n.

    Disencumber v. Free from encumbrance.

    Disenfranchise v. (also disfranchise) (-sing) 1 deprive of the right to vote or to be represented. 2 deprive of rights as a citizen or of a franchise held. disenfranchisement n.

    Disengage —v. (-ging) 1 detach, loosen, release. 2 remove (troops) from battle etc. 3 become detached. 4 (as disengaged adj.) A at leisure. B uncommitted. disengagement n.

    Disentangle v. (-ling) free or become free of tangles or complications. disentanglement n.

    Disestablish v. 1 deprive (a church) of state support. 2 terminate the establishment of. disestablishment n.

    Disfavor (brit. Disfavour) —n. 1 disapproval or dislike. 2 being disliked. —v. Regard or treat with disfavour.

    Disfavour (us disfavor) —n. 1 disapproval or dislike. 2 being disliked. —v. Regard or treat with disfavour.

    Disfigure v. (-ring) spoil the appearance of. disfigurement n.

    Disfranchise var. Of *disenfranchise.

    Disgorge v. (-ging) 1 eject from the throat. 2 pour forth. disgorgement n.

    Disgrace —n. 1 shame; ignominy. 2 shameful or very bad person or thing (bus service is a disgrace). —v. (-cing) 1 bring shame or discredit on. 2 dismiss from a position of honour or favour. in disgrace out of favour. [latin: related to dis-, grace]

    Disgraceful adj. Shameful; causing disgrace. disgracefully adv.

    Disgruntled adj. Discontented; sulky. disgruntlement n. [from dis-, grunt]

    Disguise —v. (-sing) 1 conceal the identity of; make unrecognizable. 2 conceal (disguised my anger). —n. 1 a costume, make-up, etc., used to disguise. B action, manner, etc., used to deceive. 2 disguised state. 3 practice of disguising. [french: related to *dis-]

    Disgust —n. Strong aversion; repugnance. —v. Cause disgust in. disgusting adj. Disgustingly adv. [french or italian: related to dis-, gusto]

    Dish —n. 1 a shallow flat-bottomed container for food. B its contents. C particular kind of food or food prepared to a particular recipe (meat dish). 2 (in pl.) Crockery, pans, etc. After a meal (wash the dishes). 3 a dish-shaped object or cavity. B = *satellite dish. 4 colloq. Sexually attractive person. —v. 1 colloq. Outmanoeuvre, frustrate. 2 make dish-shaped. dish out colloq. Distribute. Dish

    up 1 put (food) in dishes for serving. 2 colloq. Present as a fact or argument. [old english from latin *discus]

    Dishabille var. Of *déshabillé.

    Disharmony n. Lack of harmony; discord. disharmonious adj.

    Dishcloth n. Cloth for washing dishes.

    Dishearten v. Cause to lose courage, hope, or confidence. disheartenment n.

    Disheveled adj. (brit. Dishevelled) untidy; ruffled. dishevelment n. [from *dis-, chevel ‘hair’, from latin capillus]

    Dishevelled adj. (us disheveled) untidy; ruffled. dishevelment n. [from *dis-, chevel ‘hair’, from latin capillus]

    Dishonest adj. Fraudulent or insincere. dishonestly adv. Dishonesty n.

    Dishonor (brit. Dishonour) —n. 1 loss of honour or respect; disgrace. 2 thing causing this. —v. 1 disgrace (dishonoured his name). 2 refuse to accept or pay (a cheque etc.).

    Dishonorable adj. (brit. Dishonourable) 1 causing disgrace; ignominious. 2

    Dishonorable adj. (brit. Dishonourable) 1 causing disgrace; ignominious. 2 unprincipled. dishonourably adv.

    Dishonour (us dishonor) —n. 1 loss of honour or respect; disgrace. 2 thing causing this. —v. 1 disgrace (dishonoured his name). 2 refuse to accept or pay (a cheque etc.).

    Dishonourable adj. (us dishonorable) 1 causing disgrace; ignominious. 2 unprincipled. dishonourably adv.

    Dishwasher n. Machine or person that washes dishes.

    Dishy adj. (-ier, -iest) colloq. Sexually attractive.

    Disillusion —v. Free from an illusion or mistaken belief. —n. Disillusioned state. disillusionment n.

    Disincentive n. Thing discouraging action, effort, etc.

    Disincline v. (-ning) make unwilling or reluctant. disinclination n.

    Disinfect v. Cleanse of infection, esp. With disinfectant. disinfection n.

    Disinfectant —n. Substance that destroys germs etc. —adj. Disinfecting.

    Disinformation n. False information, propaganda.

    Disingenuous adj. Insincere, not candid. disingenuously adv.

    Disinherit v. (-t-) reject as one’s heir; deprive of the right of inheritance. disinheritance n.

    Disintegrate v. (-ting) 1 separate into component parts or fragments, break up. 2 colloq. Break down, esp. Mentally. 3 (of an atomic nucleus) emit particles or divide into smaller nuclei. disintegration n.

    Disinter v. (-rr-) dig up (esp. A corpse). disinterment n.

    Disinterested adj. 1 impartial. 2 uninterested. disinterest n. Disinterestedly adv.

    Usage use of disinterested in sense 2 is common in informal use, but is widely regarded as incorrect. The use of the noun disinterest to mean ‘lack of interest’ is also objected to but it is rarely used in any other sense and the alternative uninterest is rare.

    Disinvest v. Reduce or dispose of one’s investment. disinvestment n.

    Disjoint v. 1 take apart at the joints. 2 (as disjointed adj.) Incoherent; disconnected. 3 disturb the working of; disrupt.

    Disjunction n. Separation.

    Disjunctive adj. 1 involving separation. 2 (of a conjunction) expressing an alternative, e.g. Or in is it wet or dry?

    Disk var. Of *disc (esp. Us & computing).

    Disk drive n. Computing mechanism for rotating a disk and reading or writing data from or to it.

    Diskette n. Computing = *floppy n.

    Dislike —v. (-king) have an aversion to; not like. —n. 1 feeling of repugnance or not liking. 2 object of this.

    Dislocate v. (-ting) 1 disturb the normal connection of (esp. A joint in the body). 2 disrupt. dislocation n.

    Dislodge v. (-ging) disturb or move. dislodgement n.

    Disloyal adj. Not loyal; unfaithful. disloyally adv. Disloyalty n.

    Dismal adj. 1 gloomy; miserable. 2 dreary; sombre. 3 colloq. Feeble, inept (dismal attempt). dismally adv. [medieval latin dies mali unlucky days]

    Dismantle v. (-ling) 1 take to pieces; pull down. 2 deprive of defences or equipment.

    Dismay —n. Intense disappointment or despair. —v. Fill with dismay. [french from germanic: related to dis-, may]

    Dismember v. 1 remove the limbs from. 2 partition or divide up. dismemberment n.

    Dismiss v. 1 send away, esp. From one’s presence; disperse. 2 terminate the employment of, esp. Dishonourably; sack. 3 put from one’s mind or emotions. 4 consider not worth talking or thinking about; treat summarily. 5 law refuse further hearing to (a case). 6 cricket put (a batsman or side) out (usu. For a stated score). dismissal n. [latin mitto miss-send]

    Dismissive adj. Dismissing rudely or casually; disdainful. dismissively adv. Dismissiveness n.

    Dismount v. 1 a alight from a horse, bicycle, etc. B unseat. 2 remove (a thing) from its mounting.

    Disobedient adj. Disobeying; rebellious. disobedience n. Disobediently adv.

    Disobey v. Refuse or fail to obey.

    Disoblige v. (-ging) refuse to help or cooperate with (a person).

    Disorder n. 1 lack of order; confusion. 2 public disturbance; riot. 3 ailment or disease. disordered adj.

    Disorderly adj. 1 untidy; confused. 2 riotous, unruly. disorderliness n.

    Disorganize v. (also -ise) (-zing or -sing) 1 throw into confusion or disorder. 2 (as disorganized adj.) Badly organized; untidy. disorganization n.

    Disorient v. = *disorientate.

    Disorientate v. (also disorient) (-ting) confuse (a person), esp. As to his or her bearings. disorientation n.

    Disown v. Deny or give up any connection with; repudiate.

    Disparage v. (-ging) 1 criticize; belittle. 2 bring discredit on. disparagement n. [french: related to *dis-, parage rank]

    Disparate adj. Essentially different; not comparable. disparateness n. [latin disparo separate]

    Disparity n. (pl. -ies) inequality; difference; incongruity.

    Dispassionate adj. Free from emotion; impartial. dispassionately adv.

    Dispatch (also despatch) —v. 1 send off to a destination or for a purpose. 2 perform (a task etc.) Promptly; finish off. 3 kill, execute. 4 colloq. Eat quickly. —n. 1 dispatching or being dispatched. 2 a official written message, esp. Military. B news report to a newspaper etc. 3 promptness, efficiency. [italian dispacciare or spanish despachar]

    Dispatch-box n. Case for esp. Parliamentary documents.

    Dispatch-rider n. Messenger on a motor cycle.

    Dispel v. (-ll-) drive away; scatter (fears etc.). [latin pello drive]

    Dispensable adj. That can be dispensed with.

    Dispensary n. (pl. -ies) place where medicines are dispensed.

    Dispensation n. 1 dispensing or distributing. 2 exemption from penalty, rule, etc. 3 ordering or management of the world by providence.

    Dispense v. (-sing) 1 distribute; deal out. 2 administer. 3 make up and give out (medicine etc.). 4 (foll. By with) do without; make unnecessary. [french from latin pendo pens-weigh]

    Dispenser n. 1 person or thing that dispenses e.g. Medicine, good advice. 2 automatic machine dispensing a specific amount.

    Disperse v. (-sing) 1 go, send, drive, or scatter widely or in different directions. 2 send to or station at different points. 3 disseminate. 4 chem. Distribute (small particles) in a medium. 5 divide (white light) into its coloured constituents. dispersal n. Dispersive adj. [latin: related to dis-, sparse]

    Dispersion n. 1 dispersing or being dispersed. 2 (the dispersion) = *diaspora.

    Dispirit v. (esp. As dispiriting, dispirited adjs.) Make despondent, deject.

    Displace v. (-cing) 1 move from its place. 2 remove from office. 3 take the place of; oust.

    Displaced person n. Refugee in war etc., or from persecution.

    Displacement n. 1 displacing or being displaced. 2 amount of fluid displaced by an object floating or immersed in it.

    Display —v. 1 exhibit; show. 2 reveal; betray. —n. 1 displaying. 2 a exhibition or show. B thing(s) displayed. 3 ostentation. 4 mating rituals of some birds etc. 5 what is shown on a visual display unit etc. [latin plico fold]

    Displease v. (-sing) make upset or angry; annoy. displeasure n.

    Disport v. (often refl.) Play, frolic, enjoy oneself. [anglo-french porter carry, from latin]

    Disposable —adj. 1 intended to be used once and discarded. 2 able to be disposed of. —n. Disposable article.

    Disposable income n. Income after tax and other fixed payments.

    Disposal n. Disposing of, e.g. Waste. at one’s disposal available.

    Usage disposal is the noun corresponding to the verb dispose of (get rid of, deal with, etc.). Disposition is the noun from dispose (arrange, incline).

    Dispose v. (-sing) 1 (usu. Foll. By to, or to + infin.) A make willing; incline (was disposed to agree). B tend (wheel was disposed to buckle). 2 arrange suitably. 3 (as disposed adj.) Have a specified inclination (ill-disposed; well-disposed). 4 determine events (man proposes, god disposes). dispose of 1 a deal with. B get rid of. C finish. D kill. 2 sell. 3 prove (an argument etc.) Incorrect. [french: related to *pose]

    Disposition n. 1 natural tendency; temperament. 2 a ordering; arrangement (of parts etc.). B arrangement. 3 (usu. In pl.) Preparations; plans.

    Usage see note at disposal.

    Dispossess v. 1 (usu. Foll. By of) (esp. As dispossessed adj.) Deprive (a person) of. 2 dislodge; oust. dispossession n.

    Disproof n. Refutation.

    Disproportion n. Lack of proportion; being out of proportion. disproportional adj. Disproportionally adv.

    Disproportionate adj. 1 out of proportion. 2 relatively too large or small etc. disproportionately adv.

    Disprove v. (-ving) prove false.

    Disputable adj. Open to question; uncertain. disputably adv.

    Disputant n. Person in a dispute.

    Disputation n. 1 debate, esp. Formal. 2 argument; controversy.

    Disputatious adj. Argumentative.

    Dispute —v. (-ting) 1 debate, argue. 2 discuss, esp. Heatedly; quarrel. 3 question the truth or validity of (a statement etc.). 4 contend for (disputed territory). 5 resist, oppose. —n. 1 controversy; debate. 2 quarrel. 3 disagreement leading to industrial action. in dispute 1 being argued about. 2 (of a workforce) involved in industrial action. [latin puto reckon]

    Disqualify v. (-ies, -ied) 1 debar from a competition or pronounce ineligible as a winner. 2 make or pronounce ineligible, unsuitable, or unqualified (disqualified from driving). disqualification n.

    Disquiet —v. Make anxious. —n. Anxiety; uneasiness.

    Disquietude n. Disquiet.

    Disquisition n. Discursive treatise or discourse. [latin quaero quaesit-seek]

    Disregard —v. 1 ignore. 2 treat as unimportant. —n. Indifference; neglect.

    Disrepair n. Poor condition due to lack of repairs.

    Disreputable adj. 1 of bad reputation. 2 not respectable in character or appearance. disreputably adv.

    Disrepute n. Lack of good reputation; discredit.

    Disrespect n. Lack of respect; discourtesy. disrespectful adj. Disrespectfully adv.

    Disrobe v. (-bing) literary undress.

    Disrupt v. 1 interrupt the continuity of; bring disorder to. 2 break apart. disruption n. Disruptive adj. Disruptively adv. [latin: related to *rupture]

    Dissatisfy v. (-ies, -ied) make discontented; fail to satisfy. dissatisfaction n.

    Dissect v. 1 cut into pieces, esp. For examination or post mortem. 2 analyse or criticize in detail. dissection n. [latin: related to *section]

    Dissemble v. (-ling) 1 be hypocritical or insincere. 2 disguise or conceal (a feeling, intention, etc.). [latin simulo *simulate]

    Disseminate v. (-ting) scatter about, spread (esp. Ideas) widely. dissemination n. [latin: related to dis-, semen]

    Dissension n. Angry disagreement. [latin: related to *dissent]

    Dissent —v. (often foll. By from) 1 disagree, esp. Openly. 2 differ, esp. From the established or official opinion. —n. 1 such difference. 2 expression of this. [latin: related to *dis-, sentio feel]

    Dissenter n. 1 person who dissents. 2 (dissenter) protestant dissenting from the church of england.

    Dissentient —adj. Disagreeing with the established or official view. —n. Person who dissents.

    Dissertation n. Detailed discourse, esp. One submitted towards an academic degree. [latin disserto discuss]

    Disservice n. Harmful action, harm.

    Dissident —adj. Disagreeing, esp. With the established government, system, etc. —n. Dissident person. dissidence n. [latin: related to *dis-, sedeo sit]

    Dissimilar adj. Unlike, not similar. dissimilarity n. (pl. -ies).

    Dissimulate v. (-ting) dissemble. dissimulation n. [latin: related to *dissemble]

    Dissipate v. (-ting) 1 disperse, disappear, dispel. 2 squander. 3 (as dissipated adj.) Dissolute. [latin dissipare -pat-]

    adj.) Dissolute. [latin dissipare -pat-]

    Dissipation n. 1 dissolute way of life. 2 dissipating or being dissipated.

    Dissociate v. (-ting) 1 disconnect or separate. 2 become disconnected. dissociate oneself from declare oneself unconnected with. dissociation n. Dissociative adj. [latin: related to dis-, associate]

    Dissoluble adj. That can be disintegrated, loosened, or disconnected.

    Dissolute adj. Lax in morals; licentious. [latin: related to *dissolve]

    Dissolution n. 1 dissolving or being dissolved, esp. Of a partnership or of parliament for a new election. 2 breaking up, abolition (of an institution). 3 death.

    Dissolve v. (-ving) 1 make or become liquid, esp. By immersion or dispersion in a liquid. 2 (cause to) disappear gradually. 3 dismiss (an assembly, esp. Parliament). 4 annul or put an end to (a partnership, marriage, etc.). 5 (often foll. By into) be overcome (by tears, laughter, etc.). [latin: related to *dis-, solvo solut-loosen]

    Dissonant adj. 1 harsh-toned; unharmonious. 2 incongruous. dissonance n. [latin: related to *dis-, sono *sound1]

    Dissuade v. (-ding) (often foll. By from) discourage (a person); persuade against.

    Dissuade v. (-ding) (often foll. By from) discourage (a person); persuade against. dissuasion n. Dissuasive adj. [latin: related to *dis-, suadeo advise]

    Dissyllable var. Of *disyllable.

    Distaff n. Cleft stick holding wool or flax for spinning by hand. [old english]

    Distaff side n. Female branch of a family.

    Distance —n. 1 being far off; remoteness. 2 space between two points. 3 distant point or place. 4 aloofness; reserve. 5 remoter field of vision (in the distance). 6 interval of time. —v. (-cing) (often refl.) 1 place or cause to seem far off; be aloof. 2 leave far behind in a race etc. at a distance far off. Keep one’s distance remain aloof. [latin: related to *dis-, sto stand]

    Distant adj. 1 far away; at a specified distance (three miles distant). 2 remote in time, relationship, etc. (distant prospect; distant relation). 3 aloof. 4 abstracted (distant stare). 5 faint (distant memory). distantly adv.

    Distaste n. (usu. Foll. By for) dislike; aversion. distasteful adj. Distastefully adv. Distastefulness n.

    Distemper1 hist —n. Paint using glue or size as a base, for use on walls. —v. Paint with this. [latin, = soak: see *distemper2]

    Distemper2 n. Disease of esp. Dogs, with coughing and weakness. [latin: related to *dis-, tempero mingle]

    Distend v. Swell out by pressure from within (distended stomach). distensible adj. Distension n. [latin: related to *tend1]

    Distich n. Verse couplet. [greek stikhos line]

    Distil v. (us distill) (-ll-) 1 purify or extract the essence from (a substance) by vaporizing and condensing it and collecting the resulting liquid. 2 extract the essential meaning of (an idea etc.). 3 make (whisky, essence, etc.) By distilling raw materials. 4 fall or cause to fall in drops. distillation n. [latin: related to *de-, stillo drip]

    Distill v. (brit. Distil) (-ll-) 1 purify or extract the essence from (a substance) by vaporizing and condensing it and collecting the resulting liquid. 2 extract the essential meaning of (an idea etc.). 3 make (whisky, essence, etc.) By distilling raw materials. 4 fall or cause to fall in drops. distillation n. [latin: related to *de-, stillo drip]

    Distiller n. Person who distils, esp. Alcoholic liquor.

    Distillery n. (pl. -ies) place where alcoholic liquor is distilled.

    Distinct adj. 1 (often foll. By from) not identical; separate; different. 2 clearly perceptible. 3 unmistakable, decided (distinct advantage). distinctly adv. [latin: related to *distinguish]

    Distinction n. 1 discriminating or distinguishing. 2 difference between two

    Distinction n. 1 discriminating or distinguishing. 2 difference between two things. 3 thing that differentiates or distinguishes. 4 special consideration or honour (treat with distinction). 5 excellence (person of distinction). 6 title or mark of honour. [latin: related to *distinguish]

    Distinctive adj. Distinguishing, characteristic. distinctively adv. Distinctiveness n.

    Distingué adj. Distinguished in appearance, manner, etc. [french]

    Distinguish v. 1 (often foll. By from, between) differentiate; see or draw distinctions. 2 be a mark or property of; characterize. 3 discover by listening, looking, etc. 4 (usu. Refl.; often foll. By by) make prominent (distinguished himself by winning). distinguishable adj. [latin: related to *dis-, stinguo stinct-extinguish]

    Distinguished adj. 1 eminent; famous. 2 dignified.

    Distort v. 1 pull or twist out of shape. 2 misrepresent (facts etc.). 3 transmit (sound etc.) Inaccurately. distortion n. [latin torqueo tort-twist]

    Distract v. 1 (often foll. By from) draw away the attention of. 2 bewilder, perplex. 3 (as distracted adj.) Confused, mad, or angry. 4 amuse, esp. To divert from pain etc. [latin: related to *dis-, traho tract-draw]

    Distraction n. 1 a distracting or being distracted. B thing that distracts. 2 relaxation; amusement. 3 confusion; frenzy, madness.

    Distrain v. (usu. Foll. By upon) impose distraint (on a person, goods, etc.). [latin:

    related to *dis-, stringo strict-draw tight]

    Distraint n. Seizure of goods to enforce payment.

    Distrait adj. (fem. Distraite) inattentive; distraught. [french: related to *distract]

    Distraught adj. Distracted with worry, fear, etc.; extremely agitated. [related to *distrait]

    Distress —n. 1 anguish or suffering caused by pain, sorrow, worry, etc. 2 poverty. 3 law = distraint. —v. Cause distress to, make unhappy. in distress suffering or in danger. distressful adj. [romanic: related to distrain]

    Distressed adj. 1 suffering from distress. 2 impoverished. 3 (of furniture, clothing, etc.) Aged, torn, etc. Artificially.

    Distressed area n. Region of high unemployment and poverty.

    Distribute v. (-ting) 1 give shares of; deal out. 2 scatter; put at different points. 3 arrange; classify. [latin tribuo -but-assign]

    Usage the second pronunciation given, with the stress on the first syllable, is considered incorrect by some people.

    considered incorrect by some people.

    Usage the second pronunciation given, with the stress on the first syllable, is considered incorrect by some people.

    Distribution n. 1 distributing or being distributed. 2 a commercial dispersal of goods etc. B extent to which different classes etc. Share in a nation’s total wealth etc.

    Distributive —adj. 1 of or produced by distribution. 2 logic & gram. Referring to each individual of a class, not to the class collectively (e.g. Each, either). —n. Gram. Distributive word.

    Distributor n. 1 person or thing that distributes, esp. Goods. 2 device in an internal-combustion engine for passing current to each spark-plug in turn.

    District n. 1 (often attrib.) Area regarded as a geographical or administrative unit (the peak district; postal district; wine-growing district). 2 administrative division of a county etc. [latin: related to *distrain]

    District attorney n. (in the us) prosecuting officer of a district.

    District nurse n. Nurse who makes home visits in an area.

    Distrust —n. Lack of trust; suspicion. —v. Have no trust in. distrustful adj.

    Distrustfully adv.

    Disturb v. 1 break the rest, calm, or quiet of. 2 agitate; worry. 3 move from a settled position (disturbed my papers). 4 (as disturbed adj.) Emotionally or mentally unstable. [latin: related to *dis-, turba tumult]

    Disturbance n. 1 disturbing or being disturbed. 2 tumult; uproar; agitation.

    Disunion n. Lack of union; separation; dissension.

    Disunite v. (-ting) 1 remove the unity from. 2 separate. disunity n.

    Disuse —n. Disused state. —v. (-sing) cease to use.

    Disyllable n. (also dissyllable) prosody word or metrical foot of two syllables.

    disyllabic adj.

    Ditch —n. Long narrow excavation esp. For drainage or as a boundary. —v. 1 make or repair ditches (hedging and ditching). 2 slang abandon; discard. dull as ditch-water extremely dull. [old english]

    Dither —v. 1 hesitate; be indecisive. 2 tremble; quiver. —n. Colloq. State of agitation or hesitation. ditherer n. Dithery adj. [var. Of didder *dodder1]

    Dithyramb n. 1 wild choral hymn in ancient greece. 2 passionate or inflated

    poem etc. dithyrambic adj. [latin from greek]

    Ditto n. (pl. -s) 1 (in accounts, inventories, etc.) The aforesaid, the same. 2 colloq. (used to avoid repetition) the same (came late today and ditto yesterday). [latin *dictum]

    Usage in sense 1, the word ditto is often replaced by ” under the word or sum to be repeated.

    Ditto marks n.pl. Inverted commas etc. Representing ‘ditto’.

    Ditty n. (pl. -ies) short simple song. [latin: related to *dictate]

    Diuretic —adj. Causing increased output of urine. —n. Diuretic drug. [greek:

    related to *dia-, oureo urinate]

    Diurnal adj. 1 of the day or daytime. 2 daily. 3 occupying one day. diurnally adv. [latin diurnalis from dies day]

    Diva n. (pl. -s) great woman opera singer; prima donna. [italian from latin, = goddess]

    Divalent adj. Chem. Having a valency of two.

    Divan n. Low couch or bed without a back or ends. [ultimately from persian divan bench]

    Dive —v. (-ving) 1 plunge head first into water. 2 a (of an aircraft, person, etc.) Plunge steeply downwards. B (of a submarine) submerge; go deeper. 3 (foll. By into) colloq. A put one’s hand into (a pocket, handbag, etc.). B become enthusiastic about (a subject, meal, etc.). 4 move suddenly (dived into a shop). —n. 1 act of diving; plunge. 2 steep descent or fall. 3 colloq. Disreputable nightclub, bar, etc. [old english]

    Dive-bomb v. Bomb (a target) from a diving aircraft. dive-bomber n.

    Diver n. 1 person who dives, esp. Working under water. 2 diving bird.

    Diverge v. (-ging) 1 a spread out from a central point, become dispersed. B take different courses (their interests diverged). 2 a (often foll. By from) depart from a set course.

    Divers adj. Archaic various; several. [latin: related to *diverse]

    Diverse adj. Varied. [latin: related to *di-2, verto vers-turn]

    Diversify v. (-ies, -ied) 1 make diverse; vary. 2 spread (investment) over several enterprises. 3 (often foll. By into) expand one’s range of products. diversification n.

    Diversion n. 1 diverting or being diverted. 2 a diverting of attention. B stratagem

    for this. 3 recreation, pastime. 4 alternative route when a road is temporarily closed. diversionary adj.

    Diversity n. Variety.

    Divert v. 1 a turn aside; deflect. B distract (attention). 2 (often as diverting adj.) Entertain; amuse. [latin: related to *diverse]

    Divest v. (usu. Foll. By of) 1 unclothe; strip. 2 deprive, rid. [latin: related to *vest]

    Divide —v. (-ding) 1 (often foll. By in, into) separate into parts; break up; split. 2 (often foll. By out) distribute; deal; share. 3 a separate (one thing) from another. B classify into parts or groups. 4 cause to disagree. 5 a find how many times (a number) contains or is contained in another (divide 20 by 4; divide 4 into 20). B (of a number) be contained in (a number) without remainder (4 divides into 20). 6 parl. Vote (by members entering either of two lobbies) (the house divided). —n. 1 dividing line. 2 watershed. [latin divido -vis-]

    Dividend n. 1 share of profits paid to shareholders or to winners in a football pool etc. 2 number to be divided. 3 benefit from an action. [anglo-french: related to *divide]

    Divider n. 1 screen etc. Dividing a room. 2 (in pl.) Measuring-compasses.

    Divination n. Supposed supernatural insight into the future etc. [latin: related to *divine]

    Divine —adj. (diviner, divinest) 1 a of, from, or like god or a god. B sacred. 2 colloq. Excellent; delightful. —v. (-ning) 1 discover by intuition or guessing. 2 foresee. 3 practise divination. —n. Theologian or clergyman. divinely adv. [latin divinus]

    Diviner n. Person who practises divination.

    Diving-bell n. Open-bottomed enclosure, supplied with air, for descent into deep water.

    Diving-board n. Elevated board for diving from.

    Diving-suit n. Watertight suit, usu. With helmet and air-supply, for work under water.

    Divining-rod n. = *dowsing-rod.

    Divinity n. (pl. -ies) 1 being divine. 2 god; godhead. 3 theology.

    Divisible adj. Capable of being divided. divisibility n.

    Division n. 1 dividing or being divided. 2 dividing one number by another. 3 disagreement (division of opinion). 4 parl. Separation of members for counting votes. 5 one of two or more parts into which a thing is divided. 6 unit of

    votes. 5 one of two or more parts into which a thing is divided. 6 unit of administration, esp. A group of army brigades, regiments, or teams in a sporting league. divisional adj.

    Division sign n. Sign (÷) indicating that one quantity is to be divided by another.

    Divisive adj. Causing disagreement. divisively adv. Divisiveness n. [latin:

    related to *divide]

    Divisor n. Number by which another is divided.

    Divorce —n. 1 legal dissolution of a marriage. 2 separation (divorce between thought and feeling). —v. (-cing) 1 a (usu. As divorced adj.) (often foll. By from) legally dissolve the marriage of. B separate by divorce. C end one’s marriage with. 2 separate (divorced from reality). [latin: related to *diverse]

    Divorcee n. Divorced person.

    Divot n. Piece of turf cut out by a blow, esp. By the head of a golf club. [origin unknown]

    Divulge v. (-ging) disclose, reveal (a secret etc.). divulgence n. [latin divulgo publish]

    Divvy colloq. —n. (pl. -ies) dividend. —v. (-ies, -ied) (often foll. By up) share out. [abbreviation]

    out. [abbreviation]

    Divvy colloq. —n. (pl. -ies) dividend. —v. (-ies, -ied) (often foll. By up) share out. [abbreviation]

    Diwali n. Hindu and jainist festival with illuminations, held between september and november. [sanskrit dipa lamp]

    Dixie n. Southern states of the us. [origin uncertain]

    Dixie n. Large iron cooking-pot used by campers etc. [hindustani from persian]

    Dixieland n. 1 = *dixie. 2 traditional kind of jazz.

    Diy abbr. Do-it-yourself.

    Dizzy —adj. (-ier, -iest) 1 a giddy. B feeling confused. 2 causing giddiness. —v. (-ies, -ied) 1 make dizzy. 2 bewilder. dizzily adv. Dizziness n. [old english]

    Dj abbr. 1 dinner-jacket. 2 disc jockey.

    Djellaba n. (also jellaba) loose hooded cloak (as) worn by arab men. [arabic]

    Dl abbr. Decilitre(s).

    D-layer n. Lowest layer of the ionosphere. [d arbitrary]

    D.litt. Abbr. Doctor of letters. [latin doctor litterarum]

    Dm abbr. Deutschmark.

    Dm abbr. Decimetre(s).

    D.mus. Abbr. Doctor of music.

    Dna abbr. Deoxyribonucleic acid, esp. Carrying genetic information in chromosomes.

    D-notice n. Government notice to news editors not to publish certain items for security reasons. [defence, *notice]

    Do1 —v. (3 sing. Pres. Does; past did; past part. Done; pres. Part. Doing) 1 perform, carry out, achieve, complete (work etc.) (did his homework; a lot to do). 2 produce, make, provide (doing a painting; we do lunches). 3 grant; impart (does you good; do me a favour). 4 act, behave, proceed (do as i do; would do well to wait). 5 work at (do carpentry; do chemistry). 6 be suitable or acceptable; satisfy (will never do; will do me nicely). 7 deal with; attend to (do one’s hair). 8 fare; get on (did badly in the test). 9 solve; work out (did the sum). 10 a traverse (a certain distance) (did 50 miles today). B travel at a specified speed (was doing eighty). 11 colloq. Act or behave like; play the part of. 12 produce (a play, opera,

    etc.) (will do shakespeare). 13 a colloq. Finish (i’ve done in the garden). B (as done adj.) Be finished (day is done). 14 cook, esp. Completely (do it in the oven; potatoes aren’t done). 15 be in progress (what’s doing?). 16 colloq. Visit (did the museums). 17 colloq. A (often as done adj.) Exhaust; tire out. B defeat, kill, ruin. 18 (foll. By into) translate or transform. 19 colloq. Cater for (they do one very well here). 20 slang a rob (did a big bank). B swindle. 21 slang prosecute, convict (done for shoplifting). 22 slang undergo (a term of imprisonment). 23 slang take (an illegal drug). —v.aux. 1 in questions and negative statements or commands (do you understand?; i don’t smoke; don’t be silly). 2 ellipt. Or in place of a verb (you know her better than i do; i wanted to go and i did; tell me, do!). 3 for emphasis (i do want to; do tell me; they did go). 4 in inversion (rarely does it happen). —n. (pl. Dos or do’s) colloq. Elaborate party, operation, etc. be done with see *done. Be nothing to do with 1 be no business of. 2 be unconnected with. Be to do with be concerned or connected with. Do away with colloq. 1 get rid of; abolish. 2 kill. Do down colloq. 1 cheat, swindle. 2 overcome. Do for 1 be satisfactory or sufficient for. 2 colloq. (esp. As done for adj.) Destroy, ruin, kill. 3 colloq. Act as cleaner etc. For. Do in 1 slang a kill. B ruin. 2 colloq. Exhaust, tire out. Do justice to see justice. Do nothing for (or to) colloq. Not flatter or enhance. Do or die persist recklessly. Do out colloq. Clean or redecorate (a room). Do a person out of colloq. Cheat of. Do over 1 slang attack; beat up. 2 colloq. Redecorate, refurbish. Do proud see proud. Dos anddon’ts rules of behaviour. Do something for (or to) colloq. Enhance the appearance or quality of. Do up 1 fasten. 2 colloq. A refurbish, renovate. B adorn, dress up. Do with (prec. By could) would be glad of; would profit by (could do with a rest). Do without manage without; forgo.

    Doe abbr. Department of the environment.

    Doe n. (pl. Same or -s) female fallow deer, reindeer, hare, or rabbit. [old english]

    Doer n. 1 person who does something. 2 person who acts rather than theorizing.

    Does see *do1.

    Doesn’t contr. Does not.

    Doff v. Remove (a hat or clothes). [from do off]

    Dog —n. 1 four-legged flesh-eating animal akin to the fox and wolf, and of many breeds. 2 male of this, or of the fox or wolf. 3 colloq. A despicable person. B person of a specified kind (lucky dog). 4 mechanical device for gripping. 5 (in pl.; prec. By the) colloq. Greyhound-racing. —v. (-gg-) follow closely; pursue, track. go to the dogs slang deteriorate, be ruined. Like a dog’s dinner colloq. Smartly or flashily (dressed etc.). Not a dog’s chance no chance at all. [old english]

    Dogcart n. Two-wheeled driving-cart with cross seats back to back.

    Dog-collar n. 1 collar for a dog. 2 colloq. Clerical collar.

    Dog days n.pl. Hottest period of the year.

    Doge n. Hist. Chief magistrate of venice or genoa. [italian from latin dux leader]

    Dog-eared adj. (of a book etc.) With bent or worn corners.

    Dog-eat-dog adj. Colloq. Ruthlessly competitive.

    Dog-end n. Slang cigarette-end.

    Dogfight n. 1 close combat between fighter aircraft. 2 rough fight.

    Dogfish n. (pl. Same or -es) a kind of small shark.

    Dogged adj. Tenacious; grimly persistent. doggedly adv. Doggedness n.

    Doggerel n. Poor or trivial verse. [apparently from *dog]

    Doggo adv. lie doggo slang lie motionless or hidden.

    Doggy —adj. 1 of or like a dog. 2 devoted to dogs. —n. (also doggie) (pl. -ies) pet name for a dog.

    Doggy bag n. Bag for leftovers given to a customer in a restaurant etc.

    Doggy-paddle n. (also dog-paddle) elementary swimming stroke like that of a dog.

    Doghouse n. Us & austral. Dog’s kennel. in the doghouse slang in disgrace.

    Dog in the manger n. Person who stops others using a thing for which he or she has no use.

    Dogma n. 1 principle, tenet, or system of these, esp. Of a church or political party. 2 arrogant declaration of opinion. [greek, = opinion]

    Dogmatic adj. Asserting or imposing personal opinions; intolerantly authoritative; arrogant. dogmatically adv.

    Dogmatism n. Tendency to be dogmatic. dogmatist n.

    Dogmatize v. (also -ise) (-zing or -sing) 1 speak dogmatically. 2 express (a principle etc.) As dogma.

    Do-gooder n. Well-meaning but unrealistic or patronizing philanthropist or reformer.

    Dog-paddle var. Of *doggy-paddle.

    Dog-rose n. Wild hedge-rose.

    Dogsbody n. (pl. -ies) colloq. Drudge.

    Dog’s breakfast n. (also dog’s dinner) colloq. Mess.

    Dog’s life n. Life of misery etc.

    Dog-star n. Chief star of the constellation canis major or minor, esp. Sirius.

    Dog-tired adj. Tired out.

    Dog-tooth n. V-shaped pattern or moulding; chevron.

    Dogtrot n. Gentle easy trot.

    Dogwatch n. Either of two short watches on a ship (4–6 or 6–8 p.m.).

    Dogwood n. Shrub with dark-red branches, greenish-white flowers, and purple berries.

    Doh abbr. Department of health.

    Doh n. (also do) mus. First note of a major scale. [italian do]

    Doily n. (also doyley) (pl. -ies or -eys) small lacey usu. Paper mat used on a plate for cakes etc. [doiley, name of a draper]

    Doing pres. Part. Of *do1. —n. 1 a action (famous for his doings). B effort (takes a lot of doing). 2 (in pl.) Slang unspecified things (have we got all the doings?).

    Doing-over n. Slang attack, beating-up.

    Do-it-yourself —adj. (of work) done or to be done by a householder etc. —n.

    Such work.

    Dolby n. Propr. Electronic noise-reduction system used esp. In tape-recording to reduce hiss. [name of its inventor]

    Doldrums n.pl. (usu. Prec. By the) 1 low spirits. 2 period of inactivity. 3 equatorial ocean region with little or no wind. [perhaps after dull, tantrum]

    Dole —n. 1 (usu. Prec. By the) colloq. Unemployment benefit. 2 a charitable distribution. B thing given sparingly or reluctantly. —v. (-ling) (usu. Foll. By out) distribute sparingly. on the dole colloq. Receiving unemployment benefit. [old english]

    Doleful adj. 1 mournful, sad. 2 dreary, dismal. dolefully adv. Dolefulness n. [latin doleo grieve]

    Doll —n. 1 small model of esp. A baby or child as a child’s toy. 2 colloq. A pretty but silly young woman. B attractive woman. 3 ventriloquist’s dummy. — v. (foll. By up) colloq. Dress smartly. [pet form of dorothy]

    Dollar n. Chief monetary unit in the us, australia, etc. [low german daler from german taler]

    Dollop —n. Shapeless lump of food etc. —v. (-p-) (usu. Foll. By out) serve in dollops. [perhaps from scandinavian]

    Dolly n. (pl. -ies) 1 child’s name for a doll. 2 movable platform for a cine-camera etc. 3 easy catch in cricket.

    Dolly-bird n. Colloq. Attractive and stylish young woman.

    Dolma n. (pl. -s or dolmades) e. European delicacy of spiced rice or meat etc. Wrapped in vine or cabbage leaves. [modern greek]

    Dolman sleeve n. Loose sleeve cut in one piece with a bodice. [turkish]

    Dolmen n. Megalithic tomb with a large flat stone laid on upright ones. [french]

    Dolomite n. Mineral or rock of calcium magnesium carbonate. [de dolomieu, name of a french geologist]

    Dolor n. (brit. Dolour) literary sorrow, distress. dolorous adj. [latin dolor pain]

    Dolour n. (us dolor) literary sorrow, distress. dolorous adj. [latin dolor pain]

    Dolphin n. Large porpoise-like sea mammal with a slender pointed snout. [greek delphis -in-]

    Dolphinarium n. (pl. -s) public aquarium for dolphins.

    Dolt n. Stupid person. doltish adj. [apparently related to obsolete dol = *dull]

    Dom n. Title of some roman catholic dignitaries, and benedictine and carthusian monks. [latin dominus master]

    -dom suffix forming nouns denoting: 1 condition (freedom). 2 rank, domain (earldom; kingdom). 3 class of people (or associated attitudes etc.) Regarded collectively (officialdom). [old english]

    Domain n. 1 area under one rule; realm. 2 estate etc. Under one control. 3 sphere of control or influence. [french: related to *demesne]

    Dome —n. 1 rounded (usu. Hemispherical) vault forming a roof. 2 dome-shaped thing. —v. (-ming) (usu. As domed adj.) Cover with or shape as a dome. [latin domus house]

    domus house]

    Domestic —adj. 1 of the home, household, or family affairs. 2 of one’s own country. 3 (of an animal) tamed, not wild. 4 fond of home life. —n. Household servant. domestically adv. [latin domus home]

    Domesticate v. (-ting) 1 tame (an animal) to live with humans. 2 accustom to housework etc. domestication n. [medieval latin: related to *domestic]

    Domesticity n. 1 being domestic. 2 domestic or home life.

    Domestic science n. = *home economics.

    Domicile —n. 1 dwelling-place. 2 law a place of permanent residence. B residing. —v. (-ling) (usu. As domiciled adj.) (usu. Foll. By at, in) settle in a place. [latin domus home]

    Domiciliary adj. Formal (esp. Of a doctor’s etc. Visit) to, at, or of a person’s home. [medieval latin: related to *domicile]

    Dominant —adj. 1 dominating, prevailing. 2 (of an inherited characteristic) appearing in offspring even when the opposite characteristic is also inherited. — n. Mus. Fifth note of the diatonic scale of any key. dominance n. Dominantly adv.

    Dominate v. (-ting) 1 command, control. 2 be the most influential or obvious. 3

    Dominate v. (-ting) 1 command, control. 2 be the most influential or obvious. 3 (of a high place) overlook. domination n. [latin dominor from dominus lord]

    Domineer v. (often as domineering adj.) Behave arrogantly or tyrannically. [french: related to *dominate]

    Dominican —adj. Of st dominic or his order. —n. Dominican friar or nun. [latin dominicus dominic]

    Dominion n. 1 sovereignty, control. 2 realm; domain. 3 hist. Self-governing territory of the british commonwealth. [latin dominus lord]

    Domino n. (pl. -es) 1 any of 28 small oblong pieces marked with 0–6 pips in each half. 2 (in pl.) Game played with these. 3 loose cloak with a mask. [french, probably as *dominion]

    Domino effect n. (also domino theory) effect whereby (or theory that) one event precipitates others in causal sequence.

    Don1 n. 1 university teacher, esp. A senior member of a college at oxford or cambridge. 2 (don) spanish title prefixed to a forename. [spanish from latin dominus lord]

    Don2 v. (-nn-) put on (clothing). [= do on]

    Donate v. (-ting) give (money etc.), esp. To charity. [from *donation]

    Donation n. 1 donating or being donated. 2 thing, esp. Money, donated. [latin donum gift]

    Done adj. 1 completed. 2 cooked. 3 colloq. Socially acceptable (the done thing). 4 (often with in) colloq. Tired out. 5 (esp. As int. In reply to an offer etc.) Accepted. be done with have or be finished with. Done for colloq. In serious trouble. Have done with be rid of; finish dealing with. [past part. Of *do1]

    Doner kebab n. Spiced lamb cooked on a spit and served in slices, often with pitta bread. [turkish: related to *kebab]

    Donjon n. Great tower or innermost keep of a castle. [archaic spelling of *dungeon]

    Don juan n. Seducer of women.

    Donkey n. (pl. -s) 1 domestic ass. 2 colloq. Stupid person. [perhaps from duncan:

    cf. *neddy]

    Donkey jacket n. Thick weatherproof workman’s jacket or fashion garment.

    Donkey’s years n.pl. Colloq. Very long time.

    Donkey-work n. Laborious part of a job.

    Donkey-work n. Laborious part of a job.

    Donna n. Title of an italian, spanish, or portuguese lady. [latin domina mistress]

    Donnish adj. Like a college don; pedantic.

    Donor n. 1 person who donates (e.g. To charity). 2 person who provides blood, semen, or an organ or tissue for medical use.

    Donor card n. Official card authorizing the use of organs, carried by a donor.

    Don’t —contr. Do not. —n. Prohibition (dos and don’ts).

    Donut n. (brit. Doughnut) small fried cake of sweetened dough.

    Doodle —v. (-ling) scribble or draw, esp. Absent-mindedly. —n. Such a scribble or drawing. [originally = foolish person]

    Doom —n. 1 a grim fate or destiny. B death or ruin. 2 condemnation. —v. 1 (usu. Foll. By to) condemn or destine. 2 (esp. As doomed adj.) Consign to misfortune or destruction. [old english, = *statute]

    Doomsday n. Day of the last judgement. till doomsday for ever.

    Door n. 1 a esp. Hinged barrier for closing and opening the entrance to a building, room, cupboard, etc. B this as representing a house etc. (lives two doors away). 2 a entrance or exit; doorway. B means of access. close (or open) the door to exclude (or create) an opportunity for. [old english]

    Doorbell n. Bell on a door rung by visitors to signal arrival.

    Doorkeeper n. = *doorman.

    Doorknob n. Knob turned to open a door.

    Doorman n. Person on duty at the door to a large building.

    Doormat n. 1 mat at an entrance, for wiping shoes. 2 colloq. Submissive person.

    Doorpost n. Upright of a door-frame, on which the door is hung.

    Doorstep —n. 1 step or area in front of the outer door of a house etc. 2 slang thick slice of bread. —v. Colloq. 1 go from door to door canvassing, selling, etc. 2 call upon or wait on the doorstep for (a person) in order to interview etc. on one’s doorstep very near.

    Doorstop n. Device for keeping a door open or to prevent it from striking the wall.

    wall.

    Door-to-door adj. (of selling etc.) Done at each house in turn.

    Doorway n. Opening filled by a door.

    Dope —n. 1 a slang narcotic. B drug etc. Given to a horse, athlete, etc., to improve performance. 2 thick liquid used as a lubricant etc. 3 varnish. 4 slang stupid person. 5 slang information. —v.

    Dopey adj. (also dopy) (dopier, dopiest) colloq. 1 half asleep or stupefied as if by a drug. 2 stupid. dopily adv. Dopiness n.

    Doppelgänger n. Apparition of a living person. [german, = double-goer]

    Doppler effect n. Increase (or decrease) in the frequency of sound, light, etc. Waves caused by moving nearer to (or further from) the source. [doppler, name of a physicist]

    Dorado n. (pl. Same or -s) sea-fish showing brilliant colours when dying out of water. [spanish, = gilded]

    Doric —adj. 1 archit. Of the oldest and simplest of the greek orders. 2 (of a dialect) broad, rustic. —n. Rustic english or esp. Scots. [from doris in greece]

    Dormant adj. 1 lying inactive; sleeping. 2 temporarily inactive. 3 (of plants)

    alive but not growing. dormancy n. [latin dormio sleep]

    Dormer n. (in full dormer window) projecting upright window in a sloping roof. [french: related to *dormant]

    Dormitory n. (pl. -ies) 1 sleeping-room with several beds, esp. In a school or institution. 2 (in full dormitory town etc.) Small commuter town or suburb. [latin: related to *dormer]

    Dormobile n. Propr. Motor caravan. [from dormitory, automobile]

    Dormouse n. (pl. -mice) small mouselike hibernating rodent. [origin unknown]

    Dorsal adj. Of or on the back (dorsal fin). [latin dorsum back]

    Dory n. (pl. Same or -ies) any of various edible marine fish, esp. The john dory. [french dorée = gilded]

    Dosage n. 1 size of a dose. 2 giving of a dose.

    Dose —n. 1 single portion of medicine. 2 experience of something (dose of flu, laughter). 3 amount of radiation received. 4 slang venereal infection. —v. (-sing) treat with or give doses of medicine to. [greek dosis gift]

    Do-se-do n. (also do-si-do) (pl. -s) figure in which two dancers pass round each other back to back. [french dos-à-dos, = back to back]

    Dosh n. Slang money. [origin unknown]

    Doss v. 1 (often foll. By down) slang sleep roughly or in a doss-house. 2 (often foll. By about, around) spend time idly. [probably originally = ‘seat-back cover’: from latin dorsum back]

    Dosser n. Slang 1 person who dosses. 2 = *doss-house.

    Doss-house n. Cheap lodging-house for vagrants.

    Dossier n. File containing information about a person, event, etc. [french]

    Dot abbr. Department of transport.

    Dot —n. 1 a small spot or mark. B this as part of i or j, or as a decimal point etc. 2 shorter signal of the two in morse code. —v. (-tt-) 1 a mark with dot(s). B place a dot over (a letter). 2 (often foll. By about) scatter like dots. 3 partly cover as with dots (sea dotted with ships). 4 slang hit. dot the i’s and cross the t’s colloq. 1 be minutely accurate. 2 add the final touches to a task etc. On the dot exactly on time. The year dot colloq. Far in the past. [old english]

    Dotage n. Feeble-minded senility (in his dotage).

    Dotard n. Senile person.

    Dote v. (-ting) (foll. By on) be excessively fond of. dotingly adv. [origin uncertain]

    Dotted line n. Line of dots on a document etc., esp. For writing a signature on.

    Dotterel n. Small migrant plover. [from *dote]

    Dottle n. Remnant of unburnt tobacco in a pipe. [from *dot]

    Dotty adj. (-ier, -iest) colloq. 1 crazy; eccentric. 2 (foll. By about) infatuated with. dottiness n.

    Double —adj. 1 consisting of two parts or things; twofold. 2 twice as much or many (double thickness). 3 having twice the usual size, quantity, strength, etc. (double bed). 4 a being double in part. B (of a flower) with two or more circles of petals. 5 ambiguous, deceitful (double meaning; a double life). —adv. 1 at or to twice the amount etc. (counts double). 2 two together (sleep double). —n.

    Double act n. Comedy act by a duo.

    Double agent n. Spy working for rival countries.

    Double-barrelled adj. 1 (of a gun) having two barrels. 2 (of a surname) hyphenated.

    Double-bass n. Largest instrument of the violin family.

    Double bluff n. Genuine action or statement disguised as a bluff.

    Double-book v. Reserve (the same seat, room, etc.) For two people at once.

    Double-breasted adj. (of a coat etc.) Overlapping across the body.

    Double-check v. Verify twice.

    Double chin n. Chin with a fold of loose flesh below it.

    Double cream n. Thick cream with a high fat-content.

    Double-cross —v. Deceive or betray (a supposed ally). —n. Act of doing this.

    double-crosser n.

    Double-dealing —n. Deceit, esp. In business. —adj. Practising deceit.

    Double-decker n. 1 bus having an upper and lower deck. 2 colloq. Sandwich with two layers of filling.

    Double dutch n. Colloq. Gibberish.

    Double eagle n. Figure of a two-headed eagle.

    Double-edged adj. 1 presenting both a danger and an advantage. 2 (of a knife etc.) Having two cutting-edges.

    Double entendre n. Ambiguous phrase open to usu. Indecent interpretation. [obsolete french]

    Double entry n. System of bookkeeping with entries debited in one account and credited in another.

    Double feature n. Cinema programme with two full-length films.

    Double figures n.pl. Numbers from 10 to 99.

    Double glazing n. Two layers of glass in a window. Double helix n. Pair of parallel helices with a common axis, esp. In the structure of a dna molecule.

    of a dna molecule.

    Double-jointed adj. Having joints that allow unusual bending.

    Double negative n. Gram. Negative statement containing two negative elements (e.g. He didn’t say nothing).

    Usage the double negative is considered incorrect in standard english.

    Double-park v. (also absol.) Park (a vehicle) alongside one already parked at the roadside.

    Double pneumonia n. Pneumonia affecting both lungs.

    Double-quick adj. & adv. Colloq. Very quick or quickly.

    Double standard n. Rule or principle not impartially applied.

    Doublet n. 1 hist. Man’s short close-fitting jacket. 2 one of a pair of similar things. [french: related to *double]

    Double take n. Delayed reaction to a situation etc.

    Double-talk n. (usu. Deliberately) ambiguous or misleading speech.

    Double-think n. Capacity to accept contrary opinions at the same time.

    Double time n. Wages paid at twice the normal rate.

    Doubloon n. Hist. Spanish gold coin. [french or spanish: related to *double]

    Doubt —n. 1 uncertainty; undecided state of mind. 2 cynicism. 3 uncertain state. 4 lack of full proof or clear indication. —v. 1 feel uncertain or undecided about. 2 hesitate to believe. 3 call in question. in doubt open to question. No doubt certainly; probably; admittedly. Without doubt (or a doubt) certainly. [latin dubito hesitate]

    Doubtful adj. 1 feeling doubt. 2 causing doubt. 3 unreliable. doubtfully adv.

    Doubtfulness n.

    Doubtless adv. Certainly; probably.

    Douche —n. 1 jet of liquid applied to part of the body for cleansing or medicinal purposes. 2 device for producing such a jet. —v. (-ching) 1 treat with a douche.

    2 use a douche. [latin: related to *duct]

    Dough n. 1 thick mixture of flour etc. And liquid for baking. 2 slang money. doughy adj. (-ier, -iest). [old english]

    Doughnut n. (us donut) small fried cake of sweetened dough.

    Doughnutting n. The clustering of politicians round a speaker during a televised debate to make him or her appear well supported.

    Doughty adj. (-ier, -iest) archaic valiant. doughtily adv. Doughtiness n. [old english]

    Dour adj. Severe, stern, obstinate. [probably gaelic dúr dull, obstinate]

    Douse v. (also dowse) (-sing) 1 a throw water over. B plunge into water. 2 extinguish (a light). [origin uncertain]

    Dove n. 1 bird with short legs, a small head, and a large breast. 2 gentle or innocent person. 3 advocate of peace or peaceful policies. [old norse]

    Dovecote n. (also dovecot) shelter with nesting-holes for domesticated pigeons.

    Dovetail —n. Mortise and tenon joint shaped like a dove’s spread tail. —v. 1 join with dovetails. 2 fit together; combine neatly.

    Dowager n. 1 widow with a title or property from her late husband (dowager duchess). 2 colloq. Dignified elderly woman. [french: related to *dower]

    Dowdy adj. (-ier, -iest) 1 (of clothes) unattractively dull. 2 dressed dowdily. dowdily adv. Dowdiness n. [origin unknown]

    Dowel —n. Cylindrical peg for holding structural components together. —v. (-ll-; us -l-) fasten with a dowel. [low german]

    Dowelling n. Rods for cutting into dowels.

    Dower n. 1 widow’s share for life of a husband’s estate. 2 archaic dowry. [latin dos dowry]

    Dower house n. Smaller house near a big one, as part of a widow’s dower.

    Dow-jones index n. (also dow-jones average) a figure indicating the relative price of shares on the new york stock exchange. [dow and jones, names of american economists]

    Down1 —adv. 1 into or towards a lower place, esp. To the ground (fall down). 2 in a lower place or position (blinds were down). 3 to or in a place regarded as lower, esp.: a southwards. B away from a major city or a university. 4 a in or into a low or weaker position or condition (hit a man when he’s down; down with a cold). B losing by (three goals down; £5 down). C (of a computer system) out of action. 5 from an earlier to a later time (down to 1600). 6 to a finer or thinner consistency or smaller amount or size (grind down; water down; boil down). 7 cheaper (bread is down; shares are down). 8 into a more settled state (calm down). 9 in writing or recorded form (copy it down; down on tape; down to speak next). 10 paid or dealt with as a deposit or part (£5 down, £20 to pay; three down, six to go). 11 with the current or wind. 12 (of a crossword clue or answer) read vertically (five down). —prep. 1 downwards along, through, or

    into. 2 from the top to the bottom of. 3 along (walk down the road). 4 at or in a lower part of (lives down the road). —attrib. Adj. 1 directed downwards (a down draught). 2 from a capital or centre (down train; down platform). —v. Colloq. 1 knock or bring down. 2 swallow. —n. 1 act of putting down. 2 reverse of fortune (ups and downs). 3 colloq.

    Down3 n. 1 open rolling land. 2 (in pl.) Chalk uplands, esp. In s. England. [old english]

    Down-and-out n. Destitute person. down and out predic. Adj.

    Downbeat —n. Mus. Accented beat, usu. The first of the bar. —adj. 1 pessimistic, gloomy. 2 relaxed.

    Downcast adj. 1 dejected. 2 (of eyes) looking downwards.

    Downer n. Slang 1 depressant or tranquillizing drug. 2 depressing person or experience; failure. 3 = *downturn.

    Downfall n. 1 fall from prosperity or power. 2 cause of this.

    Downgrade v. (-ding) reduce in rank or status.

    Downhearted adj. Dejected. downheartedly adv. Downheartedness n.

    Downhill —adv. In a descending direction. —adj. Sloping down, declining. —n.

    1 downhill race in skiing. 2 downward slope. go downhill colloq. Deteriorate.

    Down in the mouth adj. Looking unhappy.

    Downland n. = *down3.

    Down-market adj. & adv. Colloq. Of or to the cheaper sector of the market.

    Down payment n. Partial initial payment.

    Downpipe n. Pipe to carry rainwater from a roof.

    Downpour n. Heavy fall of rain.

    Downright —adj. 1 plain, straightforward. 2 utter (downright nonsense). —adv.

    Thoroughly (downright rude).

    Down’s syndrome n. Congenital disorder with mental retardation and physical abnormalities. [down, name of a physician]

    Downstage adj. & adv. Nearer the front of a theatre stage.

    Downstairs —adv. 1 down the stairs. 2 to or on a lower floor. —attrib. Adj.

    Situated downstairs. —n. Lower floor.

    Downstream adv. & adj. In the direction in which a stream etc. Flows.

    Down-to-earth adj. Practical, realistic.

    Downtown esp. Us —attrib. Adj. Of the lower or more central part of a town or city. —n. Downtown area. —adv. In or into the downtown area.

    Downtrodden adj. Oppressed; badly treated.

    Downturn n. Decline, esp. In economic activity.

    Down under adv. Colloq. In the antipodes, esp. Australia.

    Downward —adv. (also downwards) towards what is lower, inferior, less important, or later. —adj. Moving or extending downwards.

    Downwind adj. & adv. In the direction in which the wind is blowing.

    Downy adj. (-ier, -iest) 1 of, like, or covered with down. 2 soft and fluffy.

    Dowry n. (pl. -ies) property or money brought by a bride to her husband. [anglo-french, = french douaire *dower]

    Dowse1 v. (-sing) search for underground water or minerals by holding a stick or rod which dips abruptly when over the right spot. dowser n. [origin unknown]

    Dowse2 var. Of *douse.

    Dowsing-rod n. Rod for dowsing.

    Doxology n. (pl. -ies) liturgical hymn etc. Of praise to god. doxological adj. [greek doxa glory]

    Doyen n. (fem. Doyenne) senior member of a group. [french: related to *dean1]

    Doyley var. Of *doily.

    Doz. Abbr. Dozen.

    Doze —v. (-zing) sleep lightly; be half asleep. —n. Short light sleep. doze off fall lightly asleep. [origin unknown]

    Dozen n. 1 (prec. By a or a number) (pl. Dozen) twelve (a dozen eggs; two dozen eggs). 2 set of twelve (sold in dozens). 3 (in pl.; usu. Foll. By of) colloq. Very many (dozens of errors). talk nineteen to the dozen talk incessantly. [latin duodecim twelve]

    Dozy adj. (-ier, -iest) 1 drowsy. 2 colloq. Stupid or lazy.

    D.phil. Abbr. Doctor of philosophy.

    Dpp abbr. Director of public prosecutions.

    Dr abbr. Doctor.

    Drab adj. (drabber, drabbest) 1 dull, uninteresting. 2 of a dull brownish colour. drably adv. Drabness n. [obsolete drap cloth]

    Drachm n. Weight formerly used by apothecaries, = 1/8 ounce. [latin from greek]

    Drachma n. (pl. -s) 1 chief monetary unit of greece. 2 silver coin of ancient greece. [greek drakhme]

    Draconian adj. (of laws) very harsh, cruel. [drakon, name of an athenian lawgiver]

    Draft —n. 1 preliminary written version of a speech, document, etc., or outline of a scheme. 2 a written order for payment of money by a bank. B drawing of money by this. 3 a detachment from a larger group. B selection of this. 4 us conscription. 5 us = *draught. —v. 1 prepare a draft of (a document, scheme, etc.). 2 select for a special duty or purpose. 3 us conscript. [phonetic spelling of *draught]

    Draftsman n. 1 person who drafts documents. 2 = *draughtsman 1. [phonetic spelling of *draughtsman]

    Drafty adj. (brit. Draughty) (-ier, -iest) (of a room etc.) Letting in sharp currents of air. draughtiness n.

    Drag —v. (-gg-) 1 pull along with effort. 2 a trail or allow to trail along the ground. B (often foll. By on) (of time, a meeting, etc.) Go or pass slowly or tediously. 3 a use a grapnel. B search the bottom of (a river etc.) With grapnels, nets, etc. 4 (often foll. By to) colloq. Take (an esp. Unwilling person) with one. 5 (foll. By on, at) draw on (a cigarette etc.). —n. 1 a obstruction to progress. B retarding force or motion. 2 colloq. Boring or tiresome person, duty, etc. 3 a lure before hounds as a substitute for a fox. B hunt using this. 4 apparatus for dredging. 5 = *drag-net. 6 slang inhalation. 7 slang women’s clothes worn by men. drag one’s feet be deliberately slow or reluctant to act. Drag in introduce (an irrelevant subject). Drag out protract. Drag up colloq. Introduce or revive (an unwelcome subject). [old english or old norse]

    Draggle v. (-ling) 1 make dirty, wet, or limp by trailing. 2 hang trailing. [from *drag]

    Drag-net n. 1 net drawn through a river or across the ground to trap fish or game.

    2 systematic hunt for criminals etc.

    Dragon n. 1 mythical usu. Winged monster like a reptile, able to breathe fire. 2 fierce woman. [greek, = serpent]

    Dragonfly n. Large insect with a long body and two pairs of transparent wings.

    Dragoon —n. 1 cavalryman. 2 fierce fellow. —v. (foll. By into) coerce or bully into. [french dragon: related to *dragon]

    Drag queen n. Slang derog. Male homosexual transvestite.

    Drain —v. 1 draw off liquid from. 2 draw off (liquid). 3 flow or trickle away. 4 dry or become dry as liquid flows away. 5 exhaust of strength or resources. 6 a drink to the dregs. B empty (a glass etc.) By drinking the contents. —n. 1 a channel, conduit, or pipe carrying off liquid, sewage, etc. B tube for drawing off discharge etc. 2 constant outflow or expenditure. down the drain colloq. Lost, wasted. [old english: related to *dry]

    Drainage n. 1 draining. 2 system of drains. 3 what is drained off.

    Draining-board n. Sloping grooved surface beside a sink for draining washed dishes.

    Drainpipe n. 1 pipe for carrying off water etc. 2 (attrib.) (of trousers) very narrow. 3 (in pl.) Very narrow trousers.

    Drake n. Male duck. [origin uncertain]

    Dralon n. Propr. 1 synthetic acrylic fibre. 2 fabric made from this. [invented word, after *nylon]

    Dram n. 1 small drink of spirits, esp. Whisky. 2 = drachm. [latin drama: related to drachm]

    Drama n. 1 play for stage or broadcasting. 2 art of writing, acting, or presenting plays. 3 dramatic event or quality (the drama of the situation). [latin from greek drao do]

    Dramatic adj. 1 of drama. 2 sudden and exciting or unexpected. 3 vividly striking. 4 (of a gesture etc.) Theatrical. dramatically adv. [greek: related to *drama]

    Dramatics n.pl. (often treated as sing.) 1 performance of plays. 2 exaggerated behaviour.

    Dramatis personae n.pl. 1 characters in a play. 2 list of these. [latin, = persons of the drama]

    Dramatist n. Writer of dramas.

    Dramatize v. (also -ise) (-zing or -sing) 1 turn (a novel etc.) Into a play. 2 make a dramatic scene of. 3 behave dramatically. dramatization n.

    Drank past of *drink.

    Drape —v. (-ping) 1 hang or cover loosely, adorn with cloth etc. 2 arrange (hangings etc.) Esp. In folds. —n. (in pl.) Us curtains. [latin drappus cloth]

    Draper n. Dealer in textile fabrics.

    Drapery n. (pl. -ies) 1 clothing or hangings arranged in folds. 2 draper’s trade or fabrics.

    Drastic adj. Far-reaching in effect; severe. drastically adv. [greek drastikos:

    related to *drama]

    Drat colloq. —v. (-tt-) (usu. As int.) Curse (drat the thing!). —int. Expressing anger or annoyance. dratted adj. [(go)d rot]

    Draught n. (us draft) 1 current of air in a room or chimney etc. 2 pulling, traction. 3 depth of water needed to float a ship. 4 drawing of liquor from a cask etc. 5 a single act of drinking or inhaling. B amount drunk thus. 6 (in pl.) Gamefor two with 12 pieces each on a draughtboard. 7 a drawing in of a fishing-net. B fish so caught. feel the draught colloq. Suffer from esp. Financial hardship. [related to *draw]

    Draught beer n. Beer from the cask, not bottled or canned.

    Draughtboard n. = *chessboard.

    Draught-horse n. Horse for heavy work.

    Draughtsman n. 1 person who makes drawings, plans, or sketches. 2 piece in draughts. draughtsmanship n.

    Draughty adj. (us drafty) (-ier, -iest) (of a room etc.) Letting in sharp currents of air. draughtiness n.

    Draw —v. (past drew; past part. Drawn) 1 pull or cause to move towards or after one. 2 pull (a thing) up, over, or across. 3 pull (curtains etc.) Open or shut. 4 take (a person) aside. 5 attract; bring; take in (drew a deep breath; felt drawn to her; drew my attention; drew a crowd). 6 (foll. By at, on) inhale from (a cigarette, pipe, etc.). 7 (also absol.) Take out; remove (a tooth, gun, cork, card, etc.). 8 obtain or take from a source (draw a salary; draw inspiration; drew £100 out). 9 a (also absol.) Make (a line or mark). B produce (a picture) thus. C represent (something) thus. 10 (also absol.) Finish (a contest or game) with equal scores. 11 proceed (drew near the bridge; draw to a close; drew level). 12 infer (a conclusion).

    Drawback n. Disadvantage.

    Drawbridge n. Hinged retractable bridge, esp. Over a moat.

    Drawer n. 1 person or thing that draws, esp. A cheque etc. 2 also lidless boxlike storage compartment, sliding in and out of a table etc. (chest of drawers). 3 (in pl.) Knickers, underpants.

    Drawing n. 1 art of representing by line with a pencil etc. 2 picture etc. Made thus.

    Drawing-board n. Board on which paper is fixed for drawing on.

    Drawing-pin n. Flat-headed pin for fastening paper etc. To a surface.

    Drawing-room n. 1 room in a private house for sitting or entertaining in. 2 (attrib.) Restrained, polite (drawing-room manners). [earlier withdrawing-room]

    Drawl —v. Speak with drawn-out vowel sounds. —n. Drawling utterance or way of speaking. [low german or dutch]

    Drawn adj. Looking strained and tense.

    Drawstring n. String or cord threaded through a waistband, bag opening, etc.

    Dray n. Low cart without sides for heavy loads, esp. Beer-barrels. [related to *draw]

    Dread —v. Fear greatly, esp. In advance. —n. Great fear or apprehension. —adj. 1 dreaded. 2 archaic awe-inspiring, dreadful. [old english]

    Dreadful adj. 1 terrible. 2 colloq. Very annoying, very bad. dreadfully adv.

    Dreadlocks n.pl. Rastafarian hairstyle with hair hanging in tight braids on all sides.

    Dream —n. 1 series of scenes or feelings in the mind of a sleeping person. 2 day-dream or fantasy. 3 ideal, aspiration. 4 beautiful or ideal person or thing. — v. (past and past part. Dreamt or dreamed) 1 experience a dream. 2 imagine as in a dream. 3 (with neg.) Consider possible (never dreamt that he would come; would not dream of it). 4 (foll. By away) waste (time). 5 be inactive or unpractical. dream up imagine, invent. Like a dream colloq. Easily, effortlessly. dreamer n. [old english]

    Dreamboat n. Colloq. Sexually attractive or ideal person.

    Dreamland n. Ideal or imaginary land.

    Dreamy adj. (-ier, -iest) 1 given to day-dreaming or fantasy. 2 dreamlike; vague.

    3 colloq. Delightful. dreamily adv. Dreaminess n.

    Dreary adj. (-ier, -iest) dismal, dull, gloomy. drearily adv. Dreariness n. [old english]

    Dredge1 —n. Apparatus used to scoop up oysters etc., or to clear mud etc., from a river or sea bed. —v. (-ging) 1 (often foll. By up) a bring up or clear (mud etc.) With a dredge. B bring up (something forgotten) (dredged it all up). 2 clean with or use a dredge. [origin uncertain]

    Dredge2 v. (-ging) sprinkle with flour, sugar, etc. [earlier = sweetmeat, from french]

    Dredger1 n. 1 boat with a dredge. 2 dredge.

    Dredger2 n. Container with a perforated lid, for sprinkling flour, sugar, etc.

    Dregs n.pl. 1 sediment; grounds, lees. 2 = *scum n. 2 (dregs of humanity). [old norse]

    Drench —v. 1 wet thoroughly. 2 force (an animal) to take medicine. —n. Dose of medicine for an animal. [old english]

    Dress —v. 1 a (also absol.) Put clothes on. B have and wear clothes (dresses well). 2 put on evening dress. 3 arrange or adorn (hair, a shop window, etc.). 4 treat (a wound) esp. With a dressing. 5 a prepare (poultry, crab, etc.) For cooking or eating. B add dressing to (a salad etc.). 6 apply manure to. 7 finish the surface of (fabric, leather, stone, etc.). 8 correct the alignment of (troops). 9 make (an artificial fly) for fishing. —n. 1 woman’s garment of a bodice and skirt. 2 clothing, esp. A whole outfit. 3 formal or ceremonial costume. 4 external covering; outward form. dress down colloq. 1 reprimand or scold. 2 dress informally. Dress up 1 put on special clothes. 2 make (a thing) more attractive or interesting. [french dresser, ultimately related to *direct]

    Dressage n. Training of a horse in obedience and deportment; display of this. [french]

    Dress circle n. First gallery in a theatre.

    Dress coat n. Man’s swallow-tailed evening coat.

    Dresser1 n. Kitchen sideboard with shelves for plates etc. [french dresser prepare]

    Dresser2 n. 1 person who helps to dress actors or actresses. 2 surgeon’s assistant in operations. 3 person who dresses in a specified way (snappy dresser).

    Dressing n. 1 putting one’s clothes on. 2 a sauce, esp. Of oil and vinegar etc., for salads (french dressing). B sauce or stuffing etc. For food. 3 bandage, ointment, etc., for a wound. 4 size or stiffening used to coat fabrics. 5 compost etc. Spread over land.

    Dressing-down n. Colloq. Scolding.

    Dressing-gown n. Loose robe worn when one is not fully dressed.

    Dressing-room n. Room for changing one’s clothes, esp. In a theatre, or attached to a bedroom.

    Dressing-table n. Table with a flat top, mirror, and drawers, used while applying make-up etc.

    Dressmaker n. Person who makes women’s clothes, esp. For a living.

    dressmaking n.

    Dress rehearsal n. Final rehearsal in full costume.

    Dress-shield n. Waterproof material in the armpit of a dress to protect it from sweat.

    Dress-shirt n. Man’s shirt worn with evening dress, usu. White with concealed buttons or studs.

    Dressy adj. (-ier, -iest) colloq. (of clothes or a person) smart, elaborate, elegant.

    dressiness n.

    Drew past of *draw.

    Drey n. Squirrel’s nest. [origin unknown]

    Dribble —v. (-ling) 1 allow saliva to flow from the mouth. 2 flow or allow to flow in drops. 3 (also absol.) Esp. Football & hockey move (the ball) forward with slight touches of the feet or stick. —n. 1 act of dribbling. 2 dribbling flow.

    with slight touches of the feet or stick. —n. 1 act of dribbling. 2 dribbling flow. [obsolete drib = *drip]

    Driblet n. Small quantity.

    Dribs and drabs n.pl. Colloq. Small scattered amounts.

    Dried past and past part. Of *dry.

    Drier1 compar. Of *dry.

    Drier2 n. (also dryer) device for drying hair, laundry, etc.

    Driest superl. Of *dry.

    Drift —n. 1 a slow movement or variation. B this caused by a current. 2 intention, meaning, etc. Of what is said etc. 3 mass of snow etc. Heaped up by the wind. 4 esp. Derog. State of inaction. 5 slow deviation of a ship, aircraft, etc., from its course. 6 fragments of rock heaped up (glacial drift). 7 s.afr. Ford. —v.

    1 be carried by or as if by a current of air or water. 2 progress casually or aimlessly (drifted into teaching). 3 pile or be piled into drifts. 4 (of a current) carry, cause to drift. [old norse and germanic trift movement of cattle]
    Drifter n. 1 aimless person. 2 boat used for drift-net fishing.

    Drift-net n. Net for sea fishing, allowed to drift.

    Driftwood n. Wood floating on moving water or washed ashore.

    Drill1 —n. 1 tool or machine for boring holes, sinking wells, etc. 2 instruction in military exercises. 3 routine procedure in an emergency (fire-drill). 4 thorough training, esp. By repetition. 5 colloq. Recognized procedure (what’s the drill?). —v. 1 a make a hole in or through with a drill. B make (a hole) with a drill. 2 train or be trained by drill. [dutch]

    Drill2 —n. 1 machine for making furrows, sowing, and covering seed. 2 small furrow. 3 row of seeds sown by a drill. —v. Plant in drills. [origin unknown]

    Drill3 n. Coarse twilled cotton or linen fabric. [latin trilix having three threads]

    Drill4 n. W. African baboon related to the mandrill. [probably native]

    Drily adv. (also dryly) in a dry manner.

    Drink —v. (past drank; past part. Drunk) 1 a (also absol.) Swallow (liquid). B swallow the contents of (a vessel). 2 take alcohol, esp. To excess. 3 (of a plant, sponge, etc.) Absorb (moisture). 4 bring (oneself etc.) To a specified condition by drinking. 5 wish (a person good health etc.) By drinking (drank his health).

    —n. 1 a liquid for drinking. B draught or specified amount of this. 2 a alcoholic liquor. B portion, glass, etc. Of this. C excessive use of alcohol (took to drink). 3

    (the drink) colloq. The sea. drink in listen eagerly to. Drink to toast; wish success to. Drink up (also absol.) Drink all or the remainder of. drinkable adj. Drinker n.

    Drink-driver n. Person who drives with excess alcohol in the blood. drink-driving n.

    Drip —v. (-pp-) 1 fall or let fall in drops. 2 (often foll. By with) be so wet as to shed drops. —n. 1 a liquid falling in drops (steady drip of rain). B drop of liquid. C sound of dripping. 2 colloq. Dull or ineffectual person. 3 = *drip-feed. be dripping with be full of or covered with. [danish: cf. *drop]

    Drip-dry —v. Dry or leave to dry crease-free when hung up. —adj. Able to be drip-dried.

    Drip-feed —v. Feed intravenously in drops. —n. 1 feeding thus. 2 apparatus for doing this.

    Dripping n. Fat melted from roasted meat.

    Drippy adj. (-ier, -iest) slang ineffectual; sloppily sentimental.

    Drive —v. (-ving; past drove; past part. Driven) 1 urge forward, esp. Forcibly. 2 a compel (was driven to complain). B force into a specified state (drove him mad). C (often refl.) Urge to overwork. 3 a operate and direct (a vehicle, locomotive, etc.). B convey or be conveyed in a vehicle. C be competent to drive (a vehicle) (does he drive?). D travel in a private vehicle. 4 (of wind etc.) Carry along, propel, esp. Rapidly (driven snow; driving rain). 5 a (often foll. By into)

    force (a stake, nail, etc.) Into place by blows. B bore (a tunnel etc.). 6 effect or conclude forcibly (drove a hard bargain; drove his point home). 7 (of power) operate (machinery). 8 (usu. Foll. By at) work hard; dash, rush. 9 hit (a ball) forcibly. —n. 1 journey or excursion in a vehicle. 2 a (esp. Scenic) street or road. B private road through a garden to a house. 3 a motivation and energy. B inner urge (sex-drive). 4 forcible stroke of a bat etc. 5 organized effort (membership drive). 6 a transmission of power to machinery, wheels, etc. B position of the steering-wheel in a vehicle (left-hand drive). C computing = *disk drive. 7 organized whist, bingo, etc. Competition. drive at seek, intend, or mean (what is he driving at?). [old english]

    Drive-in —attrib. Adj. (of a bank, cinema, etc.) Used while sitting in one’s car.

    —n. Such a bank, cinema, etc.

    Drivel —n. Silly talk; nonsense. —v. (-ll-; us -l-, -ling) 1 talk drivel. 2 run at the mouth or nose. [old english]

    Driven past part. Of *drive.

    Drive-on adj. (of a ship) on to which vehicles may be driven.

    Driver n. 1 person who drives a vehicle. 2 golf-club for driving from a tee.

    Driveway n. = *drive n. 2b.

    Driving-licence n. Licence permitting one to drive a vehicle.

    Driving test n. Official test of competence to drive.

    Driving-wheel n. Wheel communicating motive power in machinery.

    Drizzle —n. Very fine rain. —v. (-ling) (of rain) fall in very fine drops. drizzly adj. [old english]

    Droll adj. Quaintly amusing; strange, odd. drollery n. (pl. -ies). Drolly adv. [french]

    Dromedary n. (pl. -ies) one-humped (esp. Arabian) camel bred for riding. [greek dromas -ados runner]

    Drone —n. 1 non-working male of the honey-bee. 2 idler. 3 deep humming sound. 4 monotonous speaking tone. 5 bass-pipe of bagpipes or its continuous note. —v. (-ning) 1 make a deep humming sound. 2 speak or utter monotonously. [old english]

    Drool v. 1 slobber, dribble. 2 (often foll. By over) admire extravagantly. [from *drivel]

    Droop —v. 1 bend or hang down, esp. From weariness; flag. 2 (of the eyes) look downwards. —n. 1 drooping attitude. 2 loss of spirit. droopy adj. [old norse: related to *drop]

    Drop —n. 1 a globule of liquid that hangs, falls, or adheres to a surface. B very small amount of liquid (just a drop left). C glass etc. Of alcohol. 2 a abrupt fall or slope. B amount of this (drop of fifteen feet). C act of dropping. D fall in prices, temperature, etc. E deterioration (drop in status). 3 drop-shaped thing, esp. A pendant or sweet. 4 curtain or scenery let down on to a stage. 5 (in pl.) Liquid medicine used in drops (eye drops). 6 minute quantity. 7 slang hiding-place for stolen goods etc. 8 slang bribe. —v. (-pp-) 1 fall or let fall in drops, shed (tears, blood). 2 fall or allow to fall; let go. 3 a sink down from exhaustion or injury. B die. C fall naturally (drop asleep; drop into the habit). 4 a (cause to) cease or lapse; abandon. B colloq. Cease to associate with or discuss. 5 set down (a passenger etc.) (drop me here). 6 utter or be uttered casually (dropped a hint). 7 send casually (drop a line). 8 a fall or allow to fall in direction, amount, condition, degree, pitch, etc. (voice dropped; wind dropped; we dropped the price). B (of a person) jump down lightly; let oneself fall. C allow (trousers etc.) To fall to the ground. 9 omit (a letter) in speech (drop one’s h’s). 10 (as dropped adj.) In a lower position than usual (dropped handlebars; dropped waist). 11 give birth to (esp. A lamb). 12 lose (a game, point, etc.). 13 deliver by parachute etc. 14 football send (a ball), or score (a goal), by a drop-kick. 15 colloq. Dismiss or omit (dropped from the team). at the drop of a hat promptly, instantly. Drop back (or behind) fall back; get left behind. Drop a brick colloq. Make an indiscreet or embarrassing remark. Drop a curtsy curtsy. Drop in (or by) colloq. Visit casually. Drop off 1 fall asleep. 2 drop (a passenger). Drop out colloq. Cease to participate. droplet n. [old english]

    Drop-curtain n. Painted curtain lowered on to a stage.

    Drop-kick n. Football kick as the ball touches the ground having been dropped.

    Drop-out n. Colloq. Person who has dropped out of conventional society, a course of study, etc.

    Dropper n. Device for releasing liquid in drops.

    Droppings n.pl. 1 dung of animals or birds. 2 thing that falls or has fallen in drops.

    Drop scone n. Scone made by dropping a spoonful of mixture into the pan etc.

    Drop-shot n. (in tennis) shot dropping abruptly over the net.

    Dropsy n. = oedema. dropsical adj. [earlier hydropsy from greek hudrops:

    related to hydro-]

    Drosophila n. Fruit fly used in genetic research. [greek, = dew-loving]

    Dross n. 1 rubbish. 2 a scum from melted metals. B impurities. [old english]

    Drought n. Prolonged absence of rain. [old english]

    Drove1 past of *drive.

    Drove2 n. 1 a moving crowd. B (in pl.) Colloq. Great number (people arrived in droves). 2 herd or flock driven or moving together. [old english: related to *drive]

    Drover n. Herder of cattle.

    Drown v. 1 kill or die by submersion in liquid. 2 submerge; flood; drench. 3 deaden (grief etc.) By drinking. 4 (often foll. By out) overpower (sound) with louder sound. [probably old english]

    Drowse v. (-sing) be lightly asleep. [from *drowsy]

    Drowsy adj. (-ier, -iest) very sleepy, almost asleep. drowsily adv. Drowsiness n. [probably old english]

    Drub v. (-bb-) 1 beat, thrash. 2 defeat thoroughly. drubbing n. [arabic daraba beat]

    Drudge —n. Person who does dull, laborious, or menial work. —v. (-ging) work laboriously, toil. drudgery n. [origin uncertain]

    Drug —n. 1 medicinal substance. 2 (esp. Addictive) narcotic, hallucinogen, or stimulant. —v. (-gg-) 1 add a drug to (food or drink). 2 a give a drug to. B stupefy. [french]

    Drugget n. Coarse woven fabric used for floor coverings etc. [french]

    Druggist n. Pharmacist. [related to *drug]

    Drugstore n. Us combined chemist’s shop and café.

    Drugstore n. Us combined chemist’s shop and café.

    Druid n. 1 priest of an ancient celtic religion. 2 member of a modern druidic order, esp. The gorsedd. druidic adj. Druidism n. [latin from celtic]

    Drum —n. 1 hollow esp. Cylindrical percussion instrument covered at the end(s) with plastic etc. 2 (often in pl.) Percussion section of an orchestra etc. 3 sound made by a drum. 4 thing resembling a drum, esp. A container, etc. 5 segment of a pillar. 6 eardrum. —v. (-mm-) 1 play a drum. 2 beat or tap continuously with the fingers etc. 3 (of a bird or insect) make a loud noise with the wings. drum into drive (a lesson or facts) into (a person) by persistence. Drum out dismiss with ignominy. Drum up summon or get by vigorous effort (drum up support). [low german]

    Drumbeat n. Stroke or sound of a stroke on a drum.

    Drum brake n. Brake in which brake shoes on a vehicle press against the brake drum on a wheel.

    Drumhead n. Part of a drum that is hit.

    Drum kit n. Set of drums in a band etc.

    Drum machine n. Electronic device that simulates percussion.

    Drum major n. Leader of a marching band.

    Drum major n. Leader of a marching band.

    Drum majorette n. Female baton-twirling member of a parading group.

    Drummer n. Player of drums.

    Drumstick n. 1 stick for beating drums. 2 lower leg of a dressed fowl.

    Drunk —adj. 1 lacking control from drinking alcohol. 2 (often foll. By with) overcome with joy, success, power, etc. —n. Person who is drunk, esp. Habitually. [past part. Of *drink]

    Drunkard n. Person who is habitually drunk.

    Drunken adj. (usu. Attrib.) 1 = *drunk 1. 2 caused by or involving drunkenness (drunken brawl). 3 often drunk. drunkenly adv. Drunkenness n.

    Drupe n. Fleshy stone-fruit, e.g. The olive and plum. [latin from greek]

    Dry —adj. (drier; driest) 1 free from moisture, esp.: a with moisture having evaporated, drained away, etc. (clothes are not dry yet). B (of eyes) free from tears. C (of a climate etc.) With insufficient rain; not rainy (dry spell). D (of a river, well, etc.) Dried up. E using or producing no moisture (dry shampoo; dry cough). F (of a shave) with an electric razor. 2 (of wine) not sweet (dry sherry). 3 a plain, unelaborated (dry facts). B uninteresting (dry book). 4 (of a sense of

    humour) subtle, ironic, understated. 5 prohibiting the sale of alcohol (a dry state). 6 (of bread) without butter etc. 7 (of provisions etc.) Solid, not liquid. 8 impassive. 9 (of a cow) not yielding milk. 10 colloq. Thirsty (feel dry). —v. (dries, dried) 1 make or become dry. 2 (usu. As dried adj.) Preserve (food etc.) By removing moisture. 3 (often foll. By up) colloq. Forget one’s lines. —n. (pl. Dries) 1 act of drying. 2 dry ginger ale. 3 dry place (come into the dry). dry out 1 make or become fully dry. 2 treat or be treated for alcoholism. Dry up 1 make or become utterly dry. 2 dry dishes. 3 colloq. (esp. In imper.) Cease talking. 4 become unproductive. 5 (of supplies) run out. dryness n. [old english]

    Dryad n. Wood nymph. [greek drus tree]

    Dry battery n. (also dry cell) electric battery or cell in which electrolyte is absorbed in a solid.

    Dry-clean v. Clean (clothes etc.) With solvents without water. dry-cleaner n.

    Dry dock n. Dock that can be pumped dry for building or repairing ships.

    Dryer var. Of *drier2.

    Dry-fly attrib. Adj. (of fishing) with a floating artificial fly.

    Dry ice n. Solid carbon dioxide used as a refrigerant.

    Dry land n. Land as distinct from sea etc.

    Dryly var. Of *drily.

    Dry measure n. Measure for dry goods.

    Dry rot n. Decayed state of unventilated wood; fungi causing this.

    Dry run n. Colloq. Rehearsal.

    Dry-shod adj. & adv. Without wetting one’s shoes.

    Drystone attrib. Adj. (of a wall etc.) Built without mortar.

    Dsc abbr. Distinguished service cross.

    D.sc. Abbr. Doctor of science.

    Dsm abbr. Distinguished service medal.

    Dso abbr. Distinguished service order.

    Dss abbr. Department of social security (formerly dhss).

    Dt abbr. (also dt’s) delirium tremens.

    Dti abbr. Department of trade and industry.

    Dual —adj. 1 in two parts; twofold. 2 double (dual ownership). —n. Gram. Dual number or form. duality n. [latin duo two]

    Dual carriageway n. Road with a dividing strip between traffic flowing in opposite directions.

    Dual control n. Two linked sets of controls, enabling operation by either of two persons.

    Dub1 v. (-bb-) 1 make (a person) a knight by touching his shoulders with a sword. 2 give (a person) a name, nickname, etc. 3 smear (leather) with grease. [french]

    Dub2 v. (-bb-) 1 provide (a film etc.) With an, esp. Translated, alternative soundtrack. 2 add (sound effects or music) to a film or broadcast. 3 transfer or make a copy of (recorded sound or images). [abbreviation of *double]

    Dubbin n. (also dubbing) thick grease for softening and waterproofing leather. [see *dub1 3]

    Dubiety n. Literary doubt. [latin: related to *dubious]

    Dubious adj. 1 hesitating, doubtful. 2 questionable; suspicious. 3 unreliable. dubiously adv. Dubiousness n. [latin dubium doubt]

    Ducal adj. Of or like a duke. [french: related to *duke]

    Ducat n. Gold coin, formerly current in most of europe. [medieval latin ducatus *duchy]

    Duchess n. 1 duke’s wife or widow. 2 woman holding the rank of duke. [medieval latin ducissa: related to *duke]

    Duchesse potatoes n.pl. Mashed potatoes mixed with egg, baked or fried, and served as small cakes or used as piping. [french]

    Duchy n. (pl. -ies) territory of a duke or duchess; royal dukedom of cornwall or lancaster. [medieval latin ducatus: related to *duke]

    Duck1 —n. (pl. Same or -s) 1 a swimming-bird, esp. The domesticated form of the mallard or wild duck. B female of this. C its flesh as food. 2 score of 0 in cricket. 3 (also ducks) colloq. (esp. As a form of address) dear. —v. 1 bob down, esp. To avoid being seen or hit. 2 a dip one’s head briefly under water. B plunge (a person) briefly in water. 3 colloq. Dodge (a task etc.). like water off a duck’s back colloq. Producing no effect. [old english]

    Duck2 n. 1 strong linen or cotton fabric. 2 (in pl.) Trousers made of this. [dutch]

    Duckbill n. (also duck-billed platypus) = *platypus.

    Duckboard n. (usu. In pl.) Path of wooden slats over muddy ground, in a trench, etc.

    Duckling n. Young duck.

    Ducks and drakes n.pl. (usu. Treated as sing.) Game of making a flat stone skim the surface of water. play ducks and drakes with colloq. Squander.

    Duckweed n. Any of various plants growing on the surface of still water.

    Ducky n. (pl. -ies) colloq. (esp. As a form of address) dear.

    Duct —n. Channel or tube for conveying a fluid, cable, bodily secretions, etc. (tear ducts). —v. Convey through a duct. [latin ductus from duco duct-lead]

    Ductile adj. 1 (of metal) capable of being drawn into wire; pliable. 2 easily moulded. 3 docile. ductility n. [latin: related to *duct]

    Ductless gland n. Gland secreting directly into the bloodstream.

    Dud slang —n. 1 useless or broken thing. 2 counterfeit article. 3 (in pl.) Clothes, rags. —adj. Useless, defective. [origin unknown]

    Dude n. Slang 1 fellow. 2 us dandy. 3 us city-dweller staying on a ranch. [german dial. Dude fool]

    Dudgeon n. Resentment, indignation. in high dudgeon very angry. [origin unknown]

    Due —adj. 1 owing or payable. 2 (often foll. By to) merited; appropriate. 3 (foll. By to) that ought to be given or ascribed to (a person, cause, etc.) (first place is due to milton; difficulty due to ignorance). 4 (often foll.

    Usage the use of due to to mean ‘because of’ as in the example given is regarded as unacceptable by some people and could be avoided by substituting his lateness was due to an accident. Alternatively, owing to could be used.

    Duel —n. 1 armed contest between two people, usu. To the death. 2 two-sided contest. —v. (-ll-; us -l-) fight a duel. duellist n. [latin duellum war]

    Duenna n. Older woman acting as a chaperon to girls, esp. In spain. [spanish from latin domina *don1]

    Duet n. Musical composition for two performers. duettist n. [latin duo two]

    Duff1 —n. Boiled pudding. —adj. Slang worthless, counterfeit, useless. [var. Of *dough]

    Duff2 v. duff up slang beat; thrash. [perhaps from *duffer]

    Duffer n. Colloq. Inefficient or stupid person; dunce. [origin uncertain]

    Duffle n. (also duffel) heavy woollen cloth. [duffel in belgium]

    Duffle bag n. Cylindrical canvas bag closed by a drawstring.

    Duffle-coat n. Hooded overcoat of duffle, fastened with toggles.

    Dug1 past and past part. Of *dig.

    Dug2 n. Udder, teat. [origin unknown]

    Dugong n. (pl. Same or -s) asian sea-mammal. [malay]

    Dugout n. 1 a roofed shelter, esp. For troops in trenches. B underground shelter.

    2 canoe made from a tree-trunk.

    Duke n. 1 person holding the highest hereditary title of the nobility. 2 sovereign prince ruling a duchy or small state. dukedom n. [latin dux leader]

    Dulcet adj. Sweet-sounding. [latin dulcis sweet]

    Dulcimer n. Metal stringed instrument struck with two hand-held hammers. [latin: related to *dulcet, melos song]

    Dull —adj. 1 tedious; not interesting. 2 (of the weather) overcast. 3 (of colour, light, sound, etc.) Not bright, vivid, or clear. 4 (of a pain) indistinct; not acute (a dull ache). 5 slow-witted; stupid. 6 (of a knife-edge etc.) Blunt. 7 a (of trade etc.) Sluggish, slow. B listless; depressed. 8 (of the ears, eyes, etc.) Lacking keenness. —v. Make or become dull. dullness n. Dully adv. [low german or dutch]

    Dullard n. Stupid person.

    Duly adv. 1 in due time or manner. 2 rightly, properly.

    Dumb adj. 1 a unable to speak. B (of an animal) naturally dumb. 2 silenced by surprise, shyness, etc. 3 taciturn, reticent (dumb insolence). 4 suffered or done in silence (dumb agony). 5 colloq. Stupid; ignorant. 6 disenfranchised; inarticulate (dumb masses). 7 (of a computer terminal etc.) Able to transmit or receive but unable to process data. 8 giving no sound. [old english]

    Dumb-bell n. 1 short bar with a weight at each end, for muscle-building etc. 2

    slang stupid person, esp. A woman.

    Dumbfound v. Nonplus, make speechless with surprise. [from dumb, confound]

    Dumbo n. (pl. -s) slang stupid person. [from dumb, -o]

    Dumb show n. Gestures; mime.

    Dumbstruck adj. Speechless with surprise.

    Dumb waiter n. Small hand-operated lift for conveying food from kitchen to dining-room.

    Dumdum n. (in full dumdum bullet) soft-nosed bullet that expands on impact. [dum-dum in india]

    Dummy —n. (pl. -ies) 1 model of a human figure, esp. As used to display clothes or by a ventriloquist or as a target. 2 (often attrib.) Imitation object used to replace a real or normal one. 3 baby’s rubber or plastic teat. 4 colloq. Stupid person. 5 figurehead. 6 imaginary player in bridge etc., whose cards are exposed and played by a partner. —attrib. Adj.

    Dummy run n. Trial attempt; rehearsal.

    Dump —n. 1 place or heap for depositing rubbish. 2 colloq. Unpleasant or

    dreary place. 3 temporary store of ammunition etc. —v. 1 put down firmly or clumsily. 2 deposit as rubbish. 3 colloq. Abandon or get rid of. 4 sell (excess goods) to a foreign market at a low price. 5 copy (the contents of a computer memory etc.) As a diagnostic aid or for security. dump on esp. Us criticize or abuse; get the better of. [origin uncertain]

    Dumpling n. 1 ball of dough boiled in stew or containing apple etc. 2 small fat person. [dump small round object]

    Dumps n.pl. (usu. In down in the dumps) colloq. Low spirits. [low german or dutch: related to *damp]

    Dump truck n. Truck that tilts or opens at the back for unloading.

    Dumpy adj. (-ier, -iest) short and stout. dumpily adv. Dumpiness n. [related to *dumpling]

    Dun —adj. Greyish-brown. —n. 1 dun colour. 2 dun horse. [old english]

    Dunce n. Person slow at learning; dullard. [duns scotus, name of a philosopher]

    Dunce’s cap n. Paper cone worn by a dunce.

    Dunderhead n. Stupid person. [origin unknown]

    Dune n. Drift of sand etc. Formed by the wind. [dutch: related to *down3]

    Dung —n. Excrement of animals; manure. —v. Apply dung to (land). [old english]

    Dungaree n. 1 coarse cotton cloth. 2 (in pl.) Overalls or trousers of this. [hindi]

    Dung-beetle n. Beetle whose larvae develop in dung.

    Dungeon n. Underground prison cell. [earlier donjon keep of a castle; ultimately from latin dominus lord]

    Dunghill n. Heap of dung or refuse.

    Dunk v. 1 dip (food) into liquid before eating. 2 immerse. [german tunken dip]

    Dunlin n. Red-backed sandpiper. [probably from *dun]

    Dunnock n. Hedge sparrow. [apparently from *dun]

    Duo n. (pl. -s) 1 pair of performers. 2 duet. [italian from latin, = two]

    Duodecimal adj. 1 of twelfths or twelve. 2 in or by twelves. [latin duodecim twelve]

    Duodenum n. (pl. -s) first part of the small intestine immediately below the stomach. duodenal adj. [medieval latin: related to *duodecimal]

    Duologue n. Dialogue between two people. [from duo, monologue]

    Dupe —n. Victim of deception. —v. (-ping) deceive, trick. [french]

    Duple adj. Of two parts. [latin duplus]

    Duple time n. Mus. Rhythm with two beats to the bar.

    Duplex —n. (often attrib.) Esp. Us 1 flat on two floors. 2 house subdivided for two families; semi-detached house. —adj. 1 of two parts. 2 computing (of a circuit) allowing simultaneous two-way transmission of signals. [latin, = double]

    Duplicate —adj. 1 identical. 2 a having two identical parts. B doubled. 3 (of card-games) with the same hands played by different players. —n. 1 identical thing, esp. A copy. 2 copy of a letter etc. —v. (-ting) 1 multiply by two; double. 2 make or be an exact copy of. 3 repeat (an action etc.), esp. Unnecessarily. in duplicate in two exact copies. duplication n. [latin: related to *duplex]

    Duplicator n. Machine for making multiple copies of a text etc.

    Duplicity n. Double-dealing; deceitfulness. duplicitous adj. [latin: related to *duplex]

    Durable —adj. 1 lasting; hard-wearing. 2 (of goods) with a relatively long useful life. —n. (in pl.) Durable goods. durability n. [latin durus hard]

    Dura mater n. Tough outermost membrane enveloping the brain and spinal cord. [medieval latin = hard mother, translation of arabic]

    Duration n. 1 time taken by an event. 2 specified length of time (duration of a minute). for the duration 1 until the end of an event. 2 for a very long time. [medieval latin: related to *durable]

    Duress n. 1 compulsion, esp. Illegal use of threats or violence (under duress). 2 imprisonment. [latin durus hard]

    Durex n. Propr. Condom. [origin uncertain]

    During prep. Throughout or at some point in. [latin: related to *durable]

    Dusk n. Darker stage of twilight. [old english]

    Dusky adj. (-ier, -iest) 1 shadowy; dim. 2 dark-coloured; dark-skinned. duskily adv. Duskiness n.

    adv. Duskiness n.

    Dust —n. 1 finely powdered earth or other material etc. (pollen dust). 2 dead person’s remains. 3 confusion, turmoil. —v. 1 wipe the dust from (furniture etc.). 2 a sprinkle with powder, sugar, etc. B sprinkle (sugar, powder, etc.). dust down 1 dust the clothes of. 2 colloq. Reprimand. 3 = dust off. Dust off 1 remove the dust from. 2 use again after a long period. When the dust settles when things quieten down. [old english]

    Dustbin n. Container for household refuse.

    Dust bowl n. Desert made by drought or erosion.

    Dustcart n. Vehicle collecting household refuse.

    Dust cover n. 1 = dust-sheet. 2 = dust-jacket.

    Duster n. Cloth for dusting furniture etc.

    Dust-jacket n. Paper cover on a hardback book.

    Dustman n. Person employed to collect household refuse.

    Dustpan n. Pan into which dust is brushed from the floor.

    Dust-sheet n. Protective cloth over furniture.

    Dust-up n. Colloq. Fight, disturbance.

    Dusty adj. (-ier, -iest) 1 full of or covered with dust. 2 (of a colour) dull or muted. not so dusty slang fairly good. dustily adv. Dustiness n.

    Dusty answer n. Colloq. Curt refusal.

    Dutch —adj. Of the netherlands or its people or language. —n. 1 the dutch language. 2 (prec. By the; treated as pl.) The people of the netherlands. go dutch share expenses on an outing etc. [dutch]

    Dutch n. Slang wife. [abbreviation of *duchess]

    Dutch auction n. One in which the price is progressively reduced.

    Dutch barn n. Roof for hay etc., set on poles.

    Dutch cap n. Dome-shaped contraceptive device fitting over the cervix.

    Dutch courage n. Courage induced by alcohol.

    Dutch elm disease n. Fungus disease of elms.

    Dutchman n. (fem. Dutchwoman) person of dutch birth or nationality.

    Dutch oven n. 1 metal box with the open side facing a fire. 2 covered cooking-pot for braising etc.

    Dutch treat n. Party, outing, etc., at which people pay for themselves.

    Dutch uncle n. Kind but firm adviser.

    Duteous adj. Literary dutiful. duteously adv.

    Dutiable adj. Requiring the payment of duty.

    Dutiful adj. Doing one’s duty; obedient. dutifully adv.

    Duty n. (pl. -ies) 1 a moral or legal obligation; responsibility. B binding force of what is right. 2 tax on certain goods, imports, etc. 3 job or function arising from a business or office (playground duty). 4 deference; respect due to a superior. do duty for serve as or pass for (something else). On (or off) duty working (or not

    working). [anglo-french: related to *due]

    Duty-bound adj. Obliged by duty.

    Duty-free adj. (of goods) on which duty is not payable.

    Duty-free shop n. Shop at an airport etc. Selling duty-free goods.

    Duvet n. Thick soft quilt used instead of sheets and blankets. [french]

    Dwarf —n. (pl. -s or dwarves) 1 person, animal, or plant much below normal size. 2 small mythological being with magical powers. 3 small usu. Dense star. —v. 1 stunt in growth. 2 make seem small. dwarfish adj. [old english]

    Usage in sense 1, with regard to people, the term person of restricted growth is now often preferred.

    Dwell v. (past and past part. Dwelt or dwelled) live, reside. dwell on (or upon) think, write, or speak at length on. dweller n. [old english, = lead astray]

    Dwelling n. House, residence.

    Dwindle v. (-ling) 1 become gradually less or smaller. 2 lose importance. [old english]

    Dy symb. Dysprosium.

    Dye —n. 1 substance used to change the colour of hair, fabric, etc. 2 colour so produced. —v. (dyeing, dyed) 1 colour with dye. 2 dye a specified colour (dyed it yellow). dyer n. [old english]

    Dyed-in-the-wool adj. (usu. Attrib.) Out and out; unchangeable.

    Dying attrib. Adj. Of, or at the time of, death (dying words).

    Dyke1 (also dike) —n. 1 embankment built to prevent flooding. 2 low wall of turf or stone. —v. (-king) provide or protect with dyke(s). [related to *ditch]

    Dyke2 n. (also dike) slang lesbian. [origin unknown]

    Dynamic adj. 1 energetic; active. 2 physics a of motive force. B of force in actual operation. 3 of dynamics. dynamically adv. [greek dunamis power]

    Dynamics n.pl. 1 (usu. Treated as sing.) A mathematical study of motion and the forces causing it. B branch of any science concerned with forces or changes. 2 motive forces in any sphere. 3 mus. Variation in loudness.

    Dynamism n. Energy; dynamic power.

    Dynamite —n. 1 high explosive mixture containing nitroglycerine. 2 potentially dangerous person etc. —v. (-ting) charge or blow up with dynamite.

    Dynamo n. (pl. -s) 1 machine converting mechanical into electrical energy, esp. By rotating coils of copper wire in a magnetic field. 2 colloq. Energetic person. [abbreviation of dynamo-electric machine]

    Dynamometer n. Instrument measuring energy expended. [greek: related to *dynamic]

    Dynast n. 1 ruler. 2 member of a dynasty. [latin from greek]

    Dynasty n. (pl. -ies) 1 line of hereditary rulers. 2 succession of leaders in any field. dynastic adj. [latin from greek]

    Dyne n. Physics force required to give a mass of one gram an acceleration of one centimetre per second per second. [greek dunamis force]

    Dys-prefix bad, difficult. [greek]

    Dysentery n. Inflammation of the intestines, causing severe diarrhoea. [greek entera bowels]

    Dysfunction n. Abnormality or impairment of functioning.

    Dysfunction n. Abnormality or impairment of functioning.

    Dyslexia n. Abnormal difficulty in reading and spelling. dyslectic adj. & n. Dyslexic adj. & n. [greek lexis speech]

    Dysmenorrhoea n. Painful or difficult menstruation.

    Dyspepsia n. Indigestion. dyspeptic adj. & n. [greek peptos digested]

    Dysphasia n. Lack of coordination in speech, owing to brain damage. [greek dusphatos hard to utter]

    Dysprosium n. Metallic element of the lanthanide series. [greek dusprositos hard to get at]

    Dystrophy n. Defective nutrition. [greek -trophe nourishment]

    E

    E1 n. (also e) (pl. Es or e’s) 1 fifth letter of the alphabet. 2 mus. Third note of the diatonic scale of c major.

    E2 abbr. (also e.) 1 east, eastern. 2 see *enumber.

    E-prefix see *ex-1 before some consonants.

    Each —adj. Every one of two or more persons or things, regarded separately (five in each class). —pron. Each person or thing (each of us). [old english]

    Each other pron. One another.

    Each way adj. (of a bet) backing a horse etc. To win or to come second or third.

    Eager adj. Keen, enthusiastic (eager to learn; eager for news). eagerly adv. Eagerness n. [latin acer keen]

    Eager beaver n. Colloq. Very diligent person.

    Eagle n. 1 a large bird of prey with keen vision and powerful flight. B this as a symbol, esp. Of the us. 2 score of two strokes under par at any hole in golf. [latin

    symbol, esp. Of the us. 2 score of two strokes under par at any hole in golf. [latin aquila]

    Eagle eye n. Keen sight, watchfulness. eagle-eyed adj.

    Eaglet n. Young eagle.

    E. & o. E. Abbr. Errors and omissions excepted.

    Ear1 n. 1 organ of hearing, esp. Its external part. 2 faculty for discriminating sounds (an ear for music). 3 attention, esp. Sympathetic (give ear to; have a person’s ear). all ears listening attentively. Have (or keep) an ear to the ground be alert to rumours or trends. Up to one’s ears (often foll. By in) colloq. Deeply involved or occupied. [old english]

    Ear2 n. Seed-bearing head of a cereal plant. [old english]

    Earache n. Pain in the inner ear.

    Eardrum n. Membrane of the middle ear.

    Earful n. (pl. -s) colloq. 1 prolonged amount of talking. 2 strong reprimand.

    Earl n. British nobleman ranking between marquis and viscount. earldom n. [old english]

    Earl marshal n. President of the college of heralds, with ceremonial duties.

    Early —adj. & adv. (-ier, -iest) 1 before the due, usual, or expected time. 2 a not far on in the day or night, or in time (early evening; at the earliest opportunity). B prompt (early payment appreciated). 3 not far on in a period, development, or process of evolution; being the first stage (early english architecture; early spring). 4 forward in flowering, ripening, etc. (early peaches). —n. (pl. -ies) (usu. In pl.) Early fruit or vegetable. earliness n. [old english: related to *ere]

    Early bird n. Colloq. Person who arrives, gets up, etc. Early.

    Early days n.pl. Too soon to expect results etc.

    Early on adv. At an early stage.

    Earmark —v. Set aside for a special purpose. —n. Identifying mark.

    Earn v. 1 bring in as income or interest. 2 be entitled to or obtain as the reward for work or merit. earner n. [old english]

    Earnest adj. Intensely serious. in earnest serious, seriously, with determination. earnestly adv. Earnestness n. [old english]

    Earnings n.pl. Money earned.

    Earnings n.pl. Money earned.

    Earphone n. Device applied to the ear to receive a radio etc. Communication.

    Earpiece n. Part of a telephone etc. Applied to the ear.

    Ear-piercing —adj. Shrill. —n. Piercing of the ears for wearing earrings.

    Earplug n. Piece of wax etc. Placed in the ear to protect against water, noise, etc.

    Earring n. Jewellery worn on the ear.

    Earshot n. Hearing-range (within earshot).

    Ear-splitting adj. Excessively loud.

    Earth —n. 1 a (also earth) the planet on which we live. B land and sea, as distinct from sky. 2 a the ground (fell to earth). B soil, mould. 3 relig. This world, as distinct from heaven or hell. 4 connection to the earth as the completion of an electrical circuit. 5 hole of a fox etc. 6 (prec. By the) colloq. Huge sum; everything (cost the earth; want the earth). —v. 1 cover (plant-roots) with earth. 2 connect (an electrical circuit) to the earth. come back (or down) to earth return to realities. Gone to earth in hiding. On earth colloq. Existing anywhere; emphatically (the happiest man on earth; looked like nothing on earth; what on earth have you done?). Run to earth find after a long search.

    earthward adj. & adv. Earthwards adv. [old english]

    Earthbound adj. 1 attached to the earth or earthly things. 2 moving towards the earth.

    Earthen adj. Made of earth or baked clay.

    Earthenware n. Pottery made of fired clay.

    Earthling n. Inhabitant of the earth, esp. In science fiction.

    Earthly adj. 1 of the earth or human life on it; terrestrial. 2 (usu. With neg.) Colloq. Remotely possible (is no earthly use; there wasn’t an earthly reason). not an earthly colloq. No chance or idea whatever.

    Earth mother n. Sensual and maternal woman.

    Earthquake n. Convulsion of the earth’s surface as a result of faults in strata or volcanic action.

    Earth sciences n.pl. Those concerned with the earth or part of it.

    Earth-shattering adj. Colloq. Traumatic, devastating. earth-shatteringly adv.

    Earthwork n. Artificial bank of earth in fortification or road-building etc.

    Earthworm n. Common worm living in the ground.

    Earthy adj. (-ier, -iest) 1 of or like earth or soil. 2 coarse, crude (earthy humour).

    earthiness n.

    Ear-trumpet n. Trumpet-shaped device formerly used as a hearing-aid.

    Earwig n. Small insect with pincers at its rear end. [from *ear1, because they were once thought to enter the head through the ear]

    Ease —n. 1 facility, effortlessness. 2 a freedom from pain or trouble. B freedom from constraint. —v. (-sing) 1 relieve from pain or anxiety. 2 (often foll. By off, up) a become less burdensome or severe. B begin to take it easy. C slow down; moderate one’s behaviour etc. 3 a relax; slacken; make a less tight fit. B move or be moved carefully into place (eased it into position). at ease 1 free from anxiety or constraint. 2 mil. In a relaxed attitude, with the feet apart. [latin: related to *adjacent]

    Easel n. Stand for an artist’s work, a blackboard, etc. [dutch ezel ass]

    Easement n. Legal right of way or similar right over another’s land. [french:

    related to *ease]

    Easily adv. 1 without difficulty. 2 by far (easily the best). 3 very probably (it could easily snow).

    East —n. 1 a point of the horizon where the sun rises at the equinoxes. B compass point corresponding to this. C direction in which this lies. 2 (usu. The east) a countries to the east of europe. B states of eastern europe. 3 eastern part of a country, town, etc. —adj. 1 towards, at, near, or facing the east. 2 from the east (east wind). —adv. 1 towards, at, or near the east. 2 (foll. By of) further east than. to the east (often foll. By of) in an easterly direction. [old english]

    Eastbound adj. Travelling or leading eastwards.

    East end n. Part of london east of the city. east ender n.

    Easter n. Festival (held on a variable sunday in march or april) commemorating christ’s resurrection. [old english]

    Easter egg n. Artificial usu. Chocolate egg given at easter.

    Easterly —adj. & adv. 1 in an eastern position or direction. 2 (of a wind) from the east. —n. (pl. -ies) such a wind.

    Eastern adj. Of or in the east. easternmost adj.

    Eastern church n. Orthodox church.

    Easterner n. Native or inhabitant of the east.

    East-north-east n. Point or direction midway between east and north-east.

    East-south-east n. Point or direction midway between east and south-east.

    Eastward —adj. & adv. (also eastwards) towards the east. —n. Eastward direction or region.

    Easy —adj. (-ier, -iest) 1 not difficult; not requiring great effort. 2 free from pain, trouble, or anxiety. 3 free from constraint; relaxed and pleasant. 4 compliant. —adv. With ease; in an effortless or relaxed manner. —int. Go or move carefully. easy on the eye (or ear etc.) Colloq. Pleasant to look at (or listen to etc.). Go easy (foll. By with, on) be sparing or cautious. I’m easy colloq. I have no preference. Take it easy 1 proceed gently. 2 relax; work less. easiness n. [french: related to *ease]

    Easy chair n. Large comfortable armchair.

    Easygoing adj. Placid and tolerant.

    Easy street n. Colloq. Affluence.

    Eat —v. (past ate; past part. Eaten) 1 a take into the mouth, chew, and swallow (food). B consume food; take a meal. C devour (eaten by a lion). 2 (foll. By away, at, into) a destroy gradually, esp. By corrosion, disease, etc. B begin to consume or diminish (resources etc.). 3 colloq. Trouble, vex (what’s eating you?). —n. (in pl.) Colloq. Food. eat one’s heart out suffer from excessive longing or envy. Eat out have a meal away from home, esp. In a restaurant. Eat up 1 eat completely.

    Eatable —adj. Fit to be eaten. —n. (usu. In pl.) Food.

    Eater n. 1 person who eats (a big eater). 2 eating apple etc.

    Eating apple etc. N. Apple etc. Suitable for eating raw.

    Eau-de-cologne n. Toilet water orig. From cologne. [french, = water of cologne]

    Eaves n.pl. Underside of a projecting roof. [old english]

    Eavesdrop v. (-pp-) listen to a private conversation. eavesdropper n.

    Ebb —n. Movement of the tide out to sea. —v. (often foll. By away) 1 flow out to sea; recede. 2 decline (life was ebbing away). [old english]

    Ebonite n. Vulcanite. [from *ebony]

    Ebony —n. Heavy hard dark wood of a tropical tree. —adj. 1 made of ebony. 2

    Ebony —n. Heavy hard dark wood of a tropical tree. —adj. 1 made of ebony. 2 black like ebony. [greek ebenos ebony tree]

    Ebullient adj. Exuberant. ebullience n. Ebulliency n. Ebulliently adv. [latin:

    related to *boil1]

    Ec abbr. 1 east central. 2 european community.

    Eccentric —adj. 1 odd or capricious in behaviour or appearance. 2 (also excentric) a not placed, not having its axis placed, centrally. B (often foll. By to) (of a circle) not concentric (to another). C (of an orbit) not circular. —n. 1 eccentric person. 2 disc at the end of a shaft for changing rotatory into backward-and-forward motion. eccentrically adv. Eccentricity n. [greek: related to *centre]

    Eccles cake n. Round cake of pastry filled with currants etc. [eccles in n. England]

    Ecclesiastic —n. Clergyman. —adj. = *ecclesiastical. [greek ekklesia church]

    Ecclesiastical adj. Of the church or clergy.

    Ecg abbr. Electrocardiogram.

    Echelon n. 1 level in an organization, in society, etc.; those occupying it (often in

    pl.: upper echelons). 2 wedge-shaped formation of troops, aircraft, etc. [french, = ladder, from latin scala]

    Echidna n. Australian egg-laying spiny mammal. [greek, = viper]

    Echinoderm n. (usu. Spiny) sea animal of the group including the starfish and sea urchin. [greek ekhinos sea-urchin, derma skin]

    Echo —n. (pl. -es) 1 a repetition of a sound by the reflection of sound waves. B sound so produced. 2 reflected radio or radar beam. 3 close imitation or imitator. 4 circumstance or event reminiscent of an earlier one. —v. (-es, -ed) 1 a (of a place) resound with an echo. B (of a sound) be repeated; resound. 2 repeat (a sound) thus. 3 a repeat (another’s words). B imitate the opinions etc. Of. [latin from greek]

    Echo chamber n. Enclosure with sound-reflecting walls.

    Echoic adj. (of a word) onomatopoeic.

    Echolocation n. Location of objects by reflected sound.

    Echo-sounder n. Depth-sounding device using timed echoes.
    Echt adj. Genuine. [german]

    Éclair n. Small elongated iced cake of choux pastry filled with cream. [french, = lightning]

    Eclampsia n. Convulsive condition occurring esp. In pregnant women. [ultimately from greek]

    Éclat n. 1 brilliant display. 2 social distinction; conspicuous success. [french]

    Eclectic —adj. Selecting ideas, style, etc., from various sources. —n. Eclectic person or philosopher. eclectically adv. Eclecticism n. [greek eklego pick out]

    Eclipse —n. 1 obscuring of light from one heavenly body by another. 2 loss of light, importance, or prominence. —v. (-sing) 1 (of a heavenly body) cause the eclipse of (another). 2 intercept (light). 3 outshine, surpass. [greek ekleipsis]

    Ecliptic n. Sun’s apparent path among the stars during the year.

    Eclogue n. Short pastoral poem. [greek: related to *eclectic]

    Eco-comb. Form ecology, ecological (ecoclimate).

    Ecology n. 1 the study of the relations of organisms to one another and to their surroundings. 2 the study of the interaction of people with their environment. ecological adj. Ecologically adv. Ecologist n. [greek oikos house]

    Economic adj. 1 of economics. 2 profitable (not economic to run buses on a sunday). 3 connected with trade and industry (economic geography). economically adv. [greek: related to *economy]

    Economical adj. Sparing; avoiding waste. economically adv.

    Economics n.pl. (as sing.) 1 science of the production and distribution of wealth.

    2 application of this to a particular subject (the economics of publishing).

    Economist n. Expert on or student of economics.

    Economize v. (also -ise) (-zing or -sing) 1 be economical; make economies; reduce expenditure. 2 (foll. By on) use sparingly.

    Economy n. (pl. -ies) 1 a community’s system of wealth creation. B particular kind of this (a capitalist economy). C administration or condition of this. 2 a careful management of (esp. Financial) resources; frugality. B instance of this (made many economies). 3 sparing or careful use (economy of language). [greek oikonomia household management]

    Economy class n. Cheapest class of air travel.

    Economy-size adj. (of goods) consisting of a larger quantity for a proportionally lower cost.

    Ecosystem n. Biological community of interacting organisms and their physical environment.

    Ecstasy n. (pl. -ies) 1 overwhelming joy or rapture. 2 slang type of hallucinogenic drug. ecstatic adj. Ecstatically adv. [greek ekstasis standing outside oneself]

    Ect abbr. Electroconvulsive therapy.

    Ecto-comb. Form outside. [greek ektos]

    Ectomorph n. Person with a lean body. [greek morphe form]

    -ectomy comb. Form denoting the surgical removal of part of the body (appendectomy). [greek ektome excision]

    Ectoplasm n. Supposed viscous substance exuding from the body of a spiritualistic medium during a trance. [from *ecto-, *plasma]

    Ecu n. (also ecu) (pl. -s) european currency unit. [abbreviation]

    Ecumenical adj. 1 of or representing the whole christian world. 2 seeking worldwide christian unity. ecumenically adv. Ecumenism n. [greek oikoumenikos of the inhabited earth]

    oikoumenikos of the inhabited earth]

    Eczema n. Inflammation of the skin, with itching and discharge. [latin from greek]

    Ed. Abbr. 1 edited by. 2 edition. 3 editor. 4 educated.

    -ed1 suffix forming adjectives: 1 from nouns, meaning ‘having, wearing, etc.’ (talented; trousered). 2 from phrases of adjective and noun (good-humoured). [old english]

    -ed2 suffix forming: 1 past tense and past participle of weak verbs (needed). 2 participial adjectives (escaped prisoner). [old english]

    Edam n. Round dutch cheese with a red rind. [edam in holland]

    Eddy —n. (pl. -ies) 1 circular movement of water causing a small whirlpool. 2 movement of wind, smoke, etc. Resembling this. —v. (-ies, -ied) whirl round in eddies. [old english ed-again, back]

    Edelweiss n. Alpine plant with white flowers. [german, = noble-white]

    Edema n. (brit. Oedema) accumulation of excess fluid in body tissues, causing swelling. [greek oideo swell]

    Eden n. Place or state of great happiness, with reference to the abode of adam and eve at the creation. [hebrew, originally = delight]

    Edentate —adj. Having no or few teeth. —n. Such a mammal. [latin dens dent-tooth]

    Edge —n. 1 boundary-line or margin of an area or surface. 2 narrow surface of a thin object. 3 meeting-line of surfaces. 4 a sharpened side of a blade. B sharpness. 5 brink of a precipice. 6 edge-like thing, esp. The crest of a ridge. 7 effectiveness, incisiveness; excitement. —v. (-ging) 1 advance, esp. Gradually or furtively. 2 a provide with an edge or border. B form a border to. 3 sharpen (a tool etc.). have the edge on (or over) have a slight advantage over. On edge tense and irritable. Set a person’s teeth on edge (of taste or sound) cause an unpleasant nervous sensation. Take the edge off make less intense. [old english]

    Edgeways adv. (also edgewise) with edge uppermost or foremost. get a word in edgeways contribute to a conversation when the dominant speaker pauses.

    Edging n. Thing forming an edge or border.

    Edgy adj. (-ier, -iest) irritable; anxious. edgily adv. Edginess n.

    Edible adj. Fit to be eaten. edibility n. [latin edo eat]

    Edict n. Order proclaimed by authority. [latin edico proclaim]

    Edifice n. Building, esp. An imposing one. [latin aedis dwelling]

    Edify v. (-ies, -ied) improve morally or intellectually. edification n. [latin aedifico build]

    Edit v. (-t-) 1 assemble, prepare, or modify (written material for publication). 2 be editor of (a newspaper etc.). 3 take extracts from and collate (a film etc.) To form a unified sequence. 4 a prepare (data) for processing by a computer. B alter (a text entered in a word processor etc.). 5 a reword in order to correct, or to alter the emphasis. B (foll. By out) remove (a part) from a text etc. [latin edo edit-give out]

    Edition n. 1 edited or published form of a book etc. 2 copies of a book, newspaper, etc. Issued at one time. 3 instance of a regular broadcast. 4 person or thing similar to another (a miniature edition of her mother).

    Editor n. 1 person who edits. 2 person who directs the preparation of a newspaper or broadcast news programme or a particular section of one (sports editor). 3 person who selects or commissions material for publication. 4 computer program for entering and modifying textual data. editorship n.

    Editorial —adj. 1 of editing or editors. 2 written or approved by an editor. —n.

    Article giving a newspaper’s views on a current topic. editorially adv.

    Edp abbr. Electronic data processing.

    Educate v. (-ting) 1 give intellectual, moral, and social instruction to. 2 provide

    education for. educable adj. Educability n. Educative adj. Educator n. [latin educo -are rear]

    Educated adj. 1 having had an (esp. Good) education. 2 resulting from this (educated accent). 3 based on experience or study (educated guess).

    Education n. 1 systematic instruction. 2 particular kind of or stage in education (a classical education; further education). 3 development of character or mental powers. educational adj. Educationally adv.

    Educationist n. (also educationalist) expert in educational methods.

    Educe v. (-cing) literary bring out or develop from latency. eduction n. [latin educo -ere draw out]

    Edwardian —adj. Of or characteristic of the reign of edward vii (1901–10). —n.

    Person of this period.

    -ee suffix forming nouns denoting: 1 person affected by the verbal action (employee; payee). 2 person concerned with or described as (absentee; refugee). 3 object of smaller size (bootee). [french -é in past part.]

    Eec abbr. European economic community.

    Usage ec is the more correct term.

    Eeg abbr. Electroencephalogram.

    Eel n. Snakelike fish. [old english]

    -eer suffix forming: 1 nouns meaning ‘person concerned with’ (auctioneer). 2 verbs meaning ‘be concerned with’ (electioneer). [french -ier from latin -arius]

    Eerie adj. (eerier, eeriest) gloomy and strange; weird (eerie silence). eerily adv. Eeriness n. [old english]

    Ef-see *ex-1.

    Efface v. (-cing) 1 rub or wipe out (a mark, recollection, etc.). 2 surpass, eclipse. 3 refl. (usu. As self-effacing adj.) Treat oneself as unimportant. effacement n. [french: related to *face]

    Effect —n. 1 result or consequence of an action etc. 2 efficacy (had little effect). 3 impression produced on a spectator, hearer, etc. (lights gave a pretty effect; said it just for effect). 4 (in pl.) Property. 5 (in pl.) Lighting, sound, etc., giving realism to a play, film, etc. 6 physical phenomenon (doppler effect; greenhouse effect). —v. Bring about (a change, cure, etc.). bring (or carry) into effect accomplish. Give effect to make operative. In effect for practical purposes. Take effect become operative. To the effect that the gist being that. To that effect having that result or implication. With effect from coming into operation at (a stated time). [latin: related to *fact]

    Usage effect should not be confused with affect which, as a verb, has more

    meanings and is more common, but which does not exist as a noun.

    Effective adj. 1 producing the intended result. 2 impressive, striking. 3 actual, existing. 4 operative. effectively adv. Effectiveness n.

    Effectual adj. 1 producing the required effect. 2 valid. effectually adv.

    Effeminate adj. (of a man) womanish in appearance or manner. effeminacy n. Effeminately adv. [latin femina woman]

    Effervesce v. (-cing) 1 give off bubbles of gas. 2 be lively. effervescence n. Effervescent adj. [latin: related to *fervent]

    Effete adj. Feeble, lanquid; effeminate. effeteness n. [latin]

    Efficacious adj. Producing the desired effect. efficacy n. [latin efficax: related to *efficient]

    Efficient adj. 1 productive with minimum waste or effort. 2 (of a person) capable; acting effectively. efficiency n. Efficiently adv. [latin facio make]

    Effigy n. (pl. -ies) sculpture or model of a person. burn in effigy burn a model of a person. [latin effigies from fingo fashion]

    Effloresce v. (-cing) 1 burst into flower. 2 a (of a substance) turn to a fine powder on exposure to air. B (of salts) come to the surface and crystallize. C (of a surface) become covered with salt particles. efflorescence n. Efflorescent adj. [latin flos flor- *flower]

    Effluence n. 1 flowing out of light, electricity, etc. 2 that which flows out. [latin fluo flux-flow]

    Effluent —adj. Flowing out. —n. 1 sewage or industrial waste discharged into a river etc. 2 stream or lake flowing from a larger body of water.

    Effluvium n. (pl. -via) unpleasant or noxious outflow. [latin: related to *effluence]

    Effort n. 1 use of physical or mental energy. 2 determined attempt. 3 force exerted. 4 colloq. Something accomplished. [latin fortis strong]

    Effortless adj. Easily done, requiring no effort. effortlessly adv. Effortlessness n.

    Effrontery n. (pl. -ies) impudent audacity. [latin frons front-forehead]

    Effulgent adj. Literary radiant. effulgence n. [latin fulgeo shine]

    Effuse v. (-sing) 1 pour forth (liquid, light, etc.). 2 give out (ideas etc.). [latin fundo fus-pour]

    Effusion n. 1 outpouring. 2 derog. Unrestrained flow of words. [latin: related to *effuse]

    Effusive adj. Gushing, demonstrative. effusively adv. Effusiveness n.

    Efl abbr. English as a foreign language.

    Eft n. Newt. [old english]

    Efta n. (also efta) european free trade association. [abbreviation]

    E.g. Abbr. For example. [latin exempli gratia]

    Egalitarian —adj. Of or advocating equal rights for all. —n. Egalitarian person. egalitarianism n. [french égal *equal]

    Egg1 n. 1 a body produced by females of birds, insects, etc. And capable of developing into a new individual. B egg of the domestic hen, used for food. 2 biol. Ovum. 3 colloq. Person or thing of a specified kind (good egg). with egg on one’s face colloq.

    Egg2 v. (foll. By on) urge. [old norse: related to *edge]

    Eggcup n. Cup for holding a boiled egg.

    Eggcup n. Cup for holding a boiled egg.

    Egg-flip n. (also egg-nog) drink of alcoholic spirit with beaten egg, milk, etc.

    Egghead n. Colloq. Intellectual; expert.

    Eggplant n. = *aubergine.

    Eggshell —n. Shell of an egg. —adj. 1 (of china) thin and fragile. 2 (of paint) with a slight gloss.

    Egg-white n. White part round the yolk of an egg.

    Eglantine n. Sweetbrier. [latin acus needle]

    Ego n. (pl. -s) 1 the self; the part of the mind that reacts to reality and has a sense of individuality. 2 self-esteem; self-conceit. [latin, = i]

    Egocentric adj. Self-centred.

    Egoism n. 1 self-interest as the moral basis of behaviour. 2 systematic selfishness. 3 = *egotism. egoist n. Egoistic adj. Egoistical adj. Egoistically adv.

    Usage the senses of egoism and egotism overlap, but egoism alone is used as a term in philosophy and psychology to mean self-interest (often contrasted with altruism).

    Egotism n. 1 self-conceit. 2 selfishness. egotist n. Egotistic adj. Egotistical adj.

    Egotistically adv.

    Usage see note at egoism.

    Ego-trip n. Colloq. Activity to boost one’s own self-esteem or self-conceit.

    Egregious adj. 1 extremely bad. 2 archaic remarkable. [latin grex greg-flock]

    Egress n. Formal 1 exit. 2 right of going out. [latin egredior -gress-walk out]

    Egret n. A kind of heron with long white feathers. [french aigrette]

    Egyptian —adj. Of egypt. —n. 1 native of egypt. 2 language of the ancient egyptians.

    Egyptology n. The study of the language, history, and culture of ancient egypt.

    egyptologist n.

    Eh int. Colloq. 1 expressing enquiry or surprise. 2 inviting assent. 3 asking for

    Eh int. Colloq. 1 expressing enquiry or surprise. 2 inviting assent. 3 asking for repetition or explanation. [instinctive exclamation]

    Eider n. Any of various large northern ducks. [icelandic]

    Eiderdown n. Quilt stuffed with soft material, esp. Down.

    Eight adj. & n. 1 one more than seven. 2 symbol for this (8, viii, viii). 3 size etc. Denoted by eight. 4 eight-oared rowing-boat or its crew. 5 eight o’clock. [old english]

    Eighteen adj. & n. 1 one more than seventeen. 2 symbol for this (18, xviii, xviii). 3 size etc. Denoted by eighteen. 4 (18) (of films) suitable only for persons of 18 years and over. eighteenth adj. & n. [old english]

    Eightfold adj. & adv. 1 eight times as much or as many. 2 consisting of eight parts.

    Eighth adj. & n. 1 next after seventh. 2 one of eight equal parts of a thing.

    eighthly adv.

    Eightsome n. (in full eightsome reel) lively scottish dance for eight people.

    Eighty adj. & n. (pl. -ies) 1 eight times ten. 2 symbol for this (80, lxxx, lxxx). 3 (in pl.) Numbers from 80 to 89, esp. The years of a century or of a person’s life. eightieth adj. & n. [old english]

    Einsteinium n. Artificial radioactive metallic element. [einstein, name of a physicist]

    Eisteddfod n. Congress of welsh poets and musicians; festival for musical competitions etc. [welsh]

    Either —adj. & pron. 1 one or the other of two (either of you can go; you may have either book). 2 each of two (houses on either side of the road). —adv. & conj. 1 as one possibility (is either right or wrong). 2 as one choice or alternative; which way you will (either come in or go out). 3 (with neg.) A any more than the other (if you do not go, i shall not either). B moreover (there is no time to lose, either). [old english]

    Ejaculate v. (-ting) (also absol.) 1 exclaim. 2 emit (semen) in orgasm. ejaculation n. Ejaculatory adj. [latin ejaculor dart out]

    Eject v. 1 expel, compel to leave. 2 (of a pilot etc.) Cause oneself to be propelled from an aircraft as an emergency measure. 3 cause to be removed, drop out, or pop up automatically from a gun, cassette-player, etc. 4 dispossess (a tenant). 5 emit, send out. ejection n. [latin ejicio eject-throw out]

    Ejector n. Device for ejecting.

    Ejector seat n. Device in an aircraft for the emergency ejection of a pilot etc.

    Eke v. (eking) eke out 1 supplement (income etc.). 2 make (a living) or support

    (an existence) with difficulty. [old english]

    Elaborate —adj. 1 minutely worked out. 2 complicated. —v. (-ting) work out or explain in detail. elaborately adv. Elaborateness n. Elaboration n. [latin: related to *labour]

    Élan n. Vivacity, dash. [french]

    Eland n. (pl. Same or -s) large african antelope. [dutch]

    Elapse v. (-sing) (of time) pass by. [latin elabor elaps-slip away]

    Elastic —adj. 1 able to resume its normal bulk or shape after contraction, dilation, or distortion. 2 springy. 3 flexible, adaptable. —n. Elastic cord or fabric, usu. Woven with strips of rubber. elastically adv. Elasticity n. [greek elastikos propulsive]

    Elasticated adj. (of fabric) made elastic by weaving with rubber thread.

    Elastic band n. = *rubber band.

    Elastomer n. Natural or synthetic rubber or rubber-like plastic. [from *elastic, after isomer]

    Elate v. (-ting) (esp. As elated adj.) Make delighted or proud. elatedly adv. Elation n. [latin effero elat-raise]

    Elbow —n. 1 a joint between the forearm and the upper arm. B part of a sleeve covering the elbow. 2 elbow-shaped bend etc. —v. (foll. By in, out, aside, etc.) 1 jostle or thrust (a person or oneself). 2 make (one’s way) thus. give a person the elbow colloq. Dismiss or reject a person. [old english: related to ell, bow1]

    Elbow-grease n. Colloq. Vigorous polishing; hard work.

    Elbow-room n. Sufficient room to move or work in.

    Elder1 —attrib. Adj. (of persons, esp. When related) senior; of greater age. —n. 1 older of two persons (is my elder by ten years). 2 (in pl.) Persons of greater age or venerable because of age. 3 official in the early christian church and some modern churches. [old english: related to *old]

    Elder2 n. Tree with white flowers and dark berries. [old english]

    Elderberry n. (pl. -ies) berry of the elder tree.

    Elderly adj. Rather old; past middle age.

    Elder statesman n. Influential experienced older person, esp. A politician.

    Eldest adj. First-born; oldest surviving.

    Eldorado n. (pl. -s) 1 imaginary land of great wealth. 2 place of abundance or opportunity. [spanish el dorado the gilded]

    Elecampane n. Plant with bitter aromatic leaves and roots. [latin enula this plant, campana of the fields]

    Elect —v. (usu. Foll. By to + infin.) 1 choose. 2 choose by voting. —adj. 1 chosen. 2 select, choice. 3 (after the noun) chosen but not yet in office (president elect). [latin eligo elect-pick out]

    Election n. 1 electing or being elected. 2 occasion of this.

    Electioneer v. Take part in an election campaign.

    Elective adj. 1 chosen by or derived from election. 2 (of a body) having the power to elect. 3 optional, not urgently necessary.

    Elector n. 1 person who has the right to vote in an election. 2 (elector) hist. (in the holy roman empire) any of the german princes entitled to elect the emperor. electoral adj.

    Electorate n. 1 body of all electors. 2 hist. Office or territories of a german

    Electorate n. 1 body of all electors. 2 hist. Office or territories of a german elector.

    Electric —adj. 1 of, worked by, or charged with electricity; producing or capable of generating electricity. 2 causing or charged with excitement. —n. (in pl.) Colloq. Electrical equipment. [greek elektron amber]

    Electrical adj. Of electricity. electrically adv.

    Electric blanket n. Blanket heated by an internal electric element.

    Electric chair n. Electrified chair used for capital punishment.

    Electric eel n. Eel-like fish able to give an electric shock.

    Electric eye n. Colloq. Photoelectric cell operating a relay when a beam of light is broken.

    Electric fire n. Electrically operated portable domestic heater.

    Electric guitar n. Guitar with a solid body and built-in pick-up rather than a soundbox.

    Electrician n. Person who installs or maintains electrical equipment for a living.

    Electricity n. 1 form of energy occurring in elementary particles (electrons, protons, etc.) And hence in larger bodies containing them. 2 science of electricity. 3 supply of electricity. 4 excitement.

    Electric shock n. Effect of a sudden discharge of electricity through the body of a person etc.

    Electrify v. (-ies, -ied) 1 charge with electricity. 2 convert to the use of electric power. 3 cause sudden excitement (news was electrifying). electrification n.

    Electro-comb. Form of, by, or caused by electricity.

    Electrocardiogram n. Record traced by an electrocardiograph. [german: related to *electro-]

    Electrocardiograph n. Instrument recording the electric currents generated by a heartbeat.

    Electroconvulsive adj. (of therapy) using convulsive response to electric shocks.

    Electrocute v. (-ting) kill by electric shock. electrocution n. [from *electro-, after execute]

    Electrode n. Conductor through which electricity enters or leaves an electrolyte, gas, vacuum, etc. [from *electric, greek hodos way]

    Electrodynamics n.pl. (usu. Treated as sing.) The study of electricity in motion.

    electrodynamic adj.

    Electroencephalogram n. Record traced by an electroencephalograph. [german:

    related to *electro-]

    Electroencephalograph n. Instrument that records the electrical activity of the brain.

    Electrolyse v. (us -yze) (-sing, us -zing) subject to or treat by electrolysis.

    Electrolysis n. 1 chemical decomposition by electric action. 2 destruction of tumours, hair-roots, etc., by this process. electrolytic adj.

    Electrolyte n. 1 solution able to conduct electricity, esp. In an electric cell or battery. 2 substance that can dissolve to produce this.

    Electrolyze v. (brit. -yse) (-zing, brit. -sing) subject to or treat by electrolysis.

    Electromagnet n. Soft metal core made into a magnet by passing an electric current through a coil surrounding it.

    Electromagnetic adj. Having both electrical and magnetic properties.

    electromagnetically adv.

    Electromagnetism n. 1 magnetic forces produced by electricity. 2 the study of these.

    Electromotive adj. Producing or tending to produce an electric current.

    Electromotive force n. Force set up in an electric circuit by a difference in potential.

    Electron n. Stable elementary particle with a charge of negative electricity, found in all atoms and acting as the primary carrier of electricity in solids.

    Electronic adj. 1 a produced by or involving the flow of electrons. B of electrons or electronics. 2 (of music) produced by electronic means and usu. Recorded on tape. electronically adv.

    Electronic mail n. The sending of messages by a computer system; such messages.

    Electronics n.pl. (treated as sing.) Science of the movement of electrons in a vacuum, gas, semiconductor, etc., esp. In devices in which the flow is controlled and utilized.

    Electronic tagging n. The attaching of electronic markers to people or goods, enabling them to be tracked down.

    Electron lens n. Device for focusing a stream of electrons by means of electric or magnetic fields.

    Electron microscope n. Microscope with high magnification and resolution, using electron beams instead of light.

    Electronvolt n. A unit of energy, the amount gained by an electron when accelerated through a potential difference of one volt.

    Electroplate —v. (-ting) coat with a thin layer of chromium, silver, etc., by electrolysis. —n. Electroplated articles.

    Electroscope n. Instrument for detecting and measuring electricity, esp. As an indication of the ionization of air by radioactivity. electroscopic adj.

    Electro-shock attrib. Adj. (of therapy) by means of electric shocks.

    Electrostatics n.pl. (treated as sing.) The study of electricity at rest.

    Electrotechnology n. Science of the application of electricity in technology.

    Electrotherapy n. Treatment of diseases by use of electricity.

    Elegant adj. 1 tasteful, refined, graceful. 2 ingeniously simple. elegance n. Elegantly adv. [latin: related to *elect]

    Elegiac —adj. 1 used for elegies. 2 mournful. —n. (in pl.) Elegiac verses.

    elegiacally adv.

    Elegy n. (pl. -ies) 1 sorrowful poem or song, esp. For the dead. 2 poem in elegiac metre. [latin from greek]

    Element n. 1 component part; contributing factor. 2 any of the substances that cannot be resolved by chemical means into simpler substances. 3 a any of the four substances (earth, water, air, and fire) in ancient and medieval philosophy. B a being’s natural abode or environment. 4 electr. Wire that heats up in an electric heater, kettle, etc. 5 (in pl.) Atmospheric agencies, esp. Wind and storm. 6 (in pl.) Rudiments of learning or of an art etc. 7 (in pl.) Bread and wine of the eucharist. in one’s element in one’s preferred situation, doing what one does well and enjoys. [french from latin]

    Elemental adj. 1 of or like the elements or the forces of nature; powerful. 2 essential, basic.

    Elementary adj. 1 dealing with the simplest facts of a subject. 2 unanalysable.

    Elementary particle n. Physics subatomic particle, esp. One not known to consist of simpler ones.

    Elephant n. (pl. Same or -s) largest living land animal, with a trunk and ivory tusks. [greek elephas]

    Elephantiasis n. Skin disease causing gross enlargement of limbs etc.

    Elephantine adj. 1 of elephants. 2 a huge. B clumsy.

    Elevate v. (-ting) 1 raise, lift up. 2 exalt in rank etc. 3 (usu. As elevated adj.) Raise morally or intellectually. [latin levo lift]

    Elevation n. 1 a elevating or being elevated. B angle with the horizontal. C height above sea level etc. D high position. 2 drawing or diagram showing one side of a building.

    Elevator n. 1 us lift. 2 movable part of a tailplane for changing an aircraft’s altitude. 3 hoisting machine.

    Eleven adj. & n. 1 one more than ten. 2 symbol for this (11, xi, xi). 3 size etc. Denoted by eleven. 4 team of eleven players at cricket, football, etc. 5 eleven o’clock. [old english]

    Elevenfold adj. & adv. 1 eleven times as much or as many. 2 consisting of eleven parts.

    Eleven-plus n. Esp. Hist. Examination taken at age 11–12 to determine the type of secondary school a child would enter.

    Elevenses n. Colloq. Light refreshment taken at about 11 a.m.

    Eleventh adj. & n. 1 next after tenth. 2 each of eleven equal parts of a thing.

    eleventh hour last possible moment.

    Elf n. (pl. Elves) mythological being, esp. One that is small and mischievous. elfish adj. Elvish adj. [old english]

    Elfin adj. Of elves; elflike.

    Elicit v. (-t-) draw out (facts, a response, etc.), esp. With difficulty. [latin elicio]

    Elide v. (-ding) omit (a vowel or syllable) in pronunciation. [latin elido elis-crush out]

    Eligible adj. 1 (often foll. By for) fit or entitled to be chosen (eligible for a rebate). 2 desirable or suitable, esp. For marriage. eligibility n. [latin: related to *elect]

    Electroplate —v. (-ting) coat with a thin layer of chromium, silver, etc., by electrolysis. —n. Electroplated articles.

    electrolysis. —n. Electroplated articles.

    Electroscope n. Instrument for detecting and measuring electricity, esp. As an indication of the ionization of air by radioactivity. electroscopic adj.

    Electro-shock attrib. Adj. (of therapy) by means of electric shocks.

    Electrostatics n.pl. (treated as sing.) The study of electricity at rest.

    Electrotechnology n. Science of the application of electricity in technology.

    Electrotherapy n. Treatment of diseases by use of electricity.

    Elegant adj. 1 tasteful, refined, graceful. 2 ingeniously simple. elegance n. Elegantly adv. [latin: related to *elect]

    Elegiac —adj. 1 used for elegies. 2 mournful. —n. (in pl.) Elegiac verses.

    elegiacally adv.

    Elegy n. (pl. -ies) 1 sorrowful poem or song, esp. For the dead. 2 poem in elegiac metre. [latin from greek]

    Element n. 1 component part; contributing factor. 2 any of the substances that

    cannot be resolved by chemical means into simpler substances. 3 a any of the four substances (earth, water, air, and fire) in ancient and medieval philosophy. B a being’s natural abode or environment. 4 electr. Wire that heats up in an electric heater, kettle, etc. 5 (in pl.) Atmospheric agencies, esp. Wind and storm. 6 (in pl.) Rudiments of learning or of an art etc. 7 (in pl.) Bread and wine of the eucharist. in one’s element in one’s preferred situation, doing what one does well and enjoys. [french from latin]

    Elemental adj. 1 of or like the elements or the forces of nature; powerful. 2 essential, basic.

    Elementary adj. 1 dealing with the simplest facts of a subject. 2 unanalysable.

    Elementary particle n. Physics subatomic particle, esp. One not known to consist of simpler ones.

    Elephant n. (pl. Same or -s) largest living land animal, with a trunk and ivory tusks. [greek elephas]

    Elephantiasis n. Skin disease causing gross enlargement of limbs etc.

    Elephantine adj. 1 of elephants. 2 a huge. B clumsy.

    Elevate v. (-ting) 1 raise, lift up. 2 exalt in rank etc. 3 (usu. As elevated adj.) Raise morally or intellectually. [latin levo lift]

    Elevation n. 1 a elevating or being elevated. B angle with the horizontal. C height above sea level etc. D high position. 2 drawing or diagram showing one side of a building.

    Elevator n. 1 us lift. 2 movable part of a tailplane for changing an aircraft’s altitude. 3 hoisting machine.

    Eleven adj. & n. 1 one more than ten. 2 symbol for this (11, xi, xi). 3 size etc. Denoted by eleven. 4 team of eleven players at cricket, football, etc. 5 eleven o’clock. [old english]

    Elevenfold adj. & adv. 1 eleven times as much or as many. 2 consisting of eleven parts.

    Eleven-plus n. Esp. Hist. Examination taken at age 11–12 to determine the type of secondary school a child would enter.

    Elevenses n. Colloq. Light refreshment taken at about 11 a.m.

    Eleventh adj. & n. 1 next after tenth. 2 each of eleven equal parts of a thing.

    eleventh hour last possible moment.

    Elf n. (pl. Elves) mythological being, esp. One that is small and mischievous. elfish adj. Elvish adj. [old english]

    Elfin adj. Of elves; elflike.

    Elicit v. (-t-) draw out (facts, a response, etc.), esp. With difficulty. [latin elicio]

    Elide v. (-ding) omit (a vowel or syllable) in pronunciation. [latin elido elis-crush out]

    Eligible adj. 1 (often foll. By for) fit or entitled to be chosen (eligible for a rebate). 2 desirable or suitable, esp. For marriage. eligibility n. [latin: related to *elect]

    Eliminate v. (-ting) 1 remove, get rid of. 2 exclude from consideration. 3 exclude from a further stage of a competition through defeat etc. elimination n. Eliminator n. [latin limen limin-threshold] (-ting) 1 remove, get rid of. 2 exclude from consideration. 3 exclude from a further stage of a competition through defeat etc. elimination n. Eliminator n. [latin limen limin-threshold]

    Elision n. Omission of a vowel or syllable in pronunciation (e.g. In we’ll). [latin:

    related to *elide]

    Élite n. 1 (prec. By the) the best (of a group). 2 select group or class. 3 a size of letters in typewriting (12 per inch). [french: related to *elect]

    Élitism n. Recourse to or advocacy of leadership or dominance by a select group.

    élitist n. & adj.

    Elixir n. 1 a alchemist’s preparation supposedly able to change metals into gold

    or (in full elixir of life) to prolong life indefinitely. B remedy for all ills. 2

    or (in full elixir of life) to prolong life indefinitely. B remedy for all ills. 2 aromatic medicinal drug. [latin from arabic]

    Elizabethan —adj. Of the time of queen elizabeth i or ii. —n. Person of this time.

    Elk n. (pl. Same or -s) large deer of northern parts of europe, n. America, and asia. [old english]

    Ell n. Hist. Measure = 45 in. [old english, = forearm]

    Ellipse n. Regular oval, resulting when a cone is cut obliquely by a plane. [greek elleipsis deficit]

    Ellipsis n. (pl. Ellipses) 1 omission of words needed to complete a construction or sense. 2 set of three dots etc. Indicating omission.

    Ellipsoid n. Solid of which all the plane sections through one axis are circles and all the other plane sections are ellipses.

    Elliptic adj. (also elliptical) of or in the form of an ellipse. elliptically adv.

    Elm n. 1 tree with rough serrated leaves. 2 its wood. [old english]

    Elocution n. Art of clear and expressive speech. [latin loquor speak]

    Elongate v. (-ting) lengthen, extend. elongation n. [latin longus long]

    Elope v. (-ping) run away to marry secretly. elopement n. [anglo-french]

    Eloquence n. Fluent and effective use of language. [latin loquor speak]

    Eloquent adj. 1 having eloquence. 2 (often foll. By of) expressive. eloquently adv.

    Else adv. 1 (prec. By indefinite or interrog. Pron.) Besides (someone else; nowhere else; who else?). 2 instead (what else could i say?). 3 otherwise; if not (run, (or) else you will be late). or else see *or1. [old english]

    Elsewhere adv. In or to some other place.

    Elucidate v. (-ting) throw light on; explain. elucidation n. Elucidatory adj. [latin:

    related to *lucid]

    Elude v. (-ding) 1 escape adroitly from (danger, pursuit, etc.). 2 avoid compliance with (a law etc.) Or fulfilment of (an obligation). 3 baffle (a person or memory etc.). elusion n. [latin ludo play]

    Elusive adj. 1 difficult to find or catch. 2 difficult to remember. 3 avoiding the point raised. elusiveness n.

    Elver n. Young eel. [from *eel, *fare]

    Elves pl. Of *elf.

    Elvish see *elf.

    Elysium n. 1 (also elysian fields) (in greek mythology) abode of the blessed after death. 2 place of ideal happiness. elysian adj. [latin from greek]

    Em n. Printing unit of measurement equal to the width of an m. [name of the letter m]

    Em-1 ,2 see *en-1,2.

    ‘Em pron. Colloq. Them.

    Emaciate v. (-ting) (esp. As emaciated adj.) Make abnormally thin or feeble. emaciation n. [latin macies leanness]

    Email n. (also e-mail) = *electronic mail.

    Emanate v. (-ting) (usu. Foll. By from) issue or originate (from a source). emanation n. [latin mano flow]

    Emancipate v. (-ting) 1 free from social or political restraint. 2 (usu. As emancipated adj.) Free from the inhibitions of moral or social conventions. 3 free from slavery. emancipation n. Emancipatory adj. [latin, = free from possession, from manus hand, capio take]

    Emasculate —v. (-ting) 1 deprive of force or vigour. 2 castrate. —adj. 1 deprived of force. 2 castrated. 3 effeminate. emasculation n. [latin: related to *male]

    Embalm v. 1 preserve (a corpse) from decay. 2 preserve from oblivion. 3 make fragrant. embalmment n. [french: related to *balm]

    Embankment n. Bank constructed to keep back water or carry a road, railway, etc.

    Embargo —n. (pl. -es) 1 order forbidding foreign ships to enter, or any ships to leave, a country’s ports. 2 official suspension of an activity. —v. (-es, -ed) place under embargo. [spanish: related to *bar1]

    Embark v. 1 (often foll. By for) put or go on board a ship or aircraft (to a destination). 2 (foll. By on, in) begin an enterprise. embarkation n. (in sense 1). [french: related to *barque]

    Embarrass v. 1 make (a person) feel awkward or ashamed. 2 (as embarrassed

    adj.) Encumbered with debts. 3 encumber. embarrassment n. [italian imbarrare bar in]

    Embassy n. (pl. -ies) 1 a residence or offices of an ambassador. B ambassador and staff. 2 deputation to a foreign government. [french: related to *ambassador]

    Embattled adj. 1 prepared or arrayed for battle. 2 fortified with battlements. 3 under heavy attack or in trying circumstances.

    Embed v. (also imbed) (-dd-) (esp. As embedded adj.) Fix firmly in a surrounding mass.

    Embellish v. 1 beautify, adorn. 2 enhance with fictitious additions. embellishment n. [french bel, *beau]

    Ember n. (usu. In pl.) Small piece of glowing coal etc. In a dying fire. [old english]

    Ember days n.pl. Days of fasting and prayer in the christian church, associated with ordinations. [old english]

    Embezzle v. (-ling) divert (money etc.) Fraudulently to one’s own use. embezzlement n. Embezzler n. [anglo-french]

    Embitter v. Arouse bitter feelings in. embitterment n.

    Emblazon v. 1 portray or adorn conspicuously. 2 adorn (a heraldic shield).

    emblazonment n.

    Emblem n. 1 symbol. 2 (foll. By of) type, embodiment (the very emblem of courage). 3 heraldic or representative device. emblematic adj. [greek, = insertion]

    Embody v. (-ies, -ied) 1 make (an idea etc.) Actual or discernible. 2 (of a thing) be a tangible expression of. 3 include, comprise. embodiment n.

    Embolden v. Make bold; encourage.

    Embolism n. Obstruction of an artery by a clot, air-bubble, etc. [latin from greek]

    Embolus n. (pl. -li) object causing an embolism.

    Emboss v. Carve or decorate with a design in relief. embossment n. [related to *boss2]

    Embouchure n. Way of applying the mouth to the mouthpiece of a musical instrument. [french: related to *en-1, bouche mouth]

    Embrace —v. (-cing) 1 a hold closely in the arms. B (absol., of two people)

    Embrace —v. (-cing) 1 a hold closely in the arms. B (absol., of two people) embrace each other. 2 clasp, enclose. 3 accept eagerly (an offer etc.). 4 adopt (a cause, idea, etc.). 5 include, comprise. 6 take in with the eye or mind. —n. Act of embracing, clasp. embraceable adj. [latin: related to *brace]

    Embrasure n. 1 bevelling of a wall at the sides of a window etc. 2 opening in a parapet for a gun etc. embrasured adj. [french embraser splay]

    Embrocation n. Liquid for rubbing on the body to relieve muscular pain. [greek embrokhe lotion]

    Embroider v. 1 decorate (cloth etc.) With needlework. 2 embellish (a narrative). embroiderer n. [anglo-french from germanic]

    Embroidery n. (pl. -ies) 1 art of embroidering. 2 embroidered work. 3 inessential ornament. 4 fictitious additions (to a story etc.).

    Embroil v. (often foll. By with) involve (a person etc.) In a conflict or difficulties. embroilment n. [french brouiller mix]

    Embryo n. (pl. -s) 1 a unborn or unhatched offspring. B human offspring in the first eight weeks from conception. 2 rudimentary plant in a seed. 3 thing in a rudimentary stage. 4 (attrib.) Undeveloped, immature. in embryo undeveloped. embryonic adj. [greek bruo grow]

    Embryology n. The study of embryos.

    Emend v. Edit (a text etc.) To make corrections. emendation n. [latin menda fault]

    Usage see note at amend.

    Emerald —n. 1 bright-green gem. 2 colour of this. —adj. Bright green. [greek smaragdos]

    Emerald green adj. & n. (as adj. Often hyphenated) bright green.

    Emerald isle n. Ireland.

    Emerge v. (-ging) 1 come up or out into view. 2 (of facts etc.) Become known, be revealed. 3 become recognized or prominent. 4 (of a question, difficulty, etc.) Become apparent. emergence n. Emergent adj. [latin: related to *merge]

    Emergency n. (pl. -ies) 1 sudden state of danger etc., requiring immediate action. 2 a condition requiring immediate treatment. B patient with this. 3 (attrib.) For use in an emergency. [medieval latin: related to *emerge]

    Emeritus adj. Retired but retaining one’s title as an honour (emeritus professor). [latin mereor earn]

    Emery n. Coarse corundum for polishing metal etc. [greek smeris polishing powder]

    Emery-board n. Emery-coated nail-file.

    Emetic —adj. That causes vomiting. —n. Emetic medicine. [greek emeo vomit]

    Emf abbr. (also e.m.f.) Electromotive force.

    Emigrant —n. Person who emigrates. —adj. Emigrating.

    Emigrate v. (-ting) leave one’s own country to settle in another. emigration n. [latin: related to *migrate]

    Émigré n. Emigrant, esp. A political exile. [french]

    Eminence n. 1 distinction; recognized superiority. 2 piece of rising ground. 3 title used in addressing or referring to a cardinal (your eminence; his eminence). [latin: related to *eminent]

    Éminence grise n. (pl. Éminences grises pronunc. Same) person who exercises power or influence without holding office. [french, = grey cardinal (orig. Of richelieu’s secretary)]

    Eminent adj. Distinguished, notable, outstanding. [latin emineo jut out]

    Emir n. (also amir) title of various muslim rulers. [french from arabic ‘amir]

    Emirate n. Rank, domain, or reign of an emir.

    Emissary n. (pl. -ies) person sent on a diplomatic mission. [latin: related to *emit]

    Emit v. (-tt-) give or send out (heat, light, a smell, sound, etc.); discharge. emission n. [latin emitto emiss-]

    Emollient —adj. That softens or soothes the skin, feelings, etc. —n. Emollient substance. [latin mollis soft]

    Emolument n. Fee from employment, salary. [latin]

    Emote v. (-ting) show excessive emotion.

    Emotion n. 1 strong instinctive feeling such as love or fear. 2 emotional intensity or sensibility (spoke with emotion). [french: related to *motion]

    Emotional adj. 1 of or expressing emotions. 2 especially liable to emotion. 3 arousing emotion. emotionalism n. Emotionally adv.

    Usage see note at emotive.

    Emotive adj. 1 arousing emotion. 2 of emotion. [latin: related to *motion]

    Usage although the senses of emotive and emotional overlap, emotive is more common in the sense ‘arousing emotion’, as in an emotive issue, and is not used at all in sense 2 of emotional.

    Empanel v. (also impanel) (-ll-; us -l-) enter (a jury) on a panel.

    Empathize v. (also -ise) (-zing or -sing) (usu. Foll. By with) exercise empathy.

    Empathy n. Ability to identify with a person or object. empathetic adj. [as *pathos]

    Emperor n. Sovereign of an empire. [latin impero command]

    Emperor penguin n. Largest known penguin.

    Emphasis n. (pl. Emphases) 1 importance or prominence attached to a thing (emphasis on economy). 2 stress laid on a word or syllable to make the meaning clear or show importance. 3 vigour or intensity of expression, feeling, etc. [latin from greek]

    Emphasize v. (also -ise) (-zing or -sing) put emphasis on, stress.

    Emphatic adj. 1 forcibly expressive. 2 of words: a bearing the stress. B used to give emphasis. emphatically adv.

    Emphysema n. Disease of the lungs causing breathlessness. [greek emphusao puff up]

    Empire n. 1 large group of states or countries under a single authority. 2 supreme dominion. 3 large commercial organization etc. Owned or directed by one person. 4 (the empire) hist. The british empire. [latin imperium dominion]

    Empire-building n. Purposeful accumulation of territory, authority, etc.

    Empirical adj. (also empiric) based on observation, experience, or experiment, not on theory. empirically adv. Empiricism n. Empiricist n. [greek empeiria experience]

    Emplacement n. 1 putting in position. 2 platform for guns. [french: related to *place]

    Employ —v. 1 use the services of (a person) in return for payment. 2 use (a thing, time, energy, etc.) To good effect. 3 keep (a person) occupied. —n. (in phr. In the employ of) employed by. employable adj. Employer n. [latin implicor be involved]

    Employee n. Person employed for wages.

    Employment n. 1 employing or being employed. 2 person’s trade or profession.

    Employment office n. (formerly employment exchange) state-run employment agency.

    Emporium n. (pl. -s or -ria) 1 large shop or store. 2 centre of commerce, market. [greek emporos merchant]

    Empower v. Give authority to.

    Empress n. 1 wife or widow of an emperor. 2 woman emperor. [french: related to *emperor]

    Empty —adj. (-ier, -iest) 1 containing nothing. 2 (of a house etc.) Unoccupied or unfurnished. 3 (of a vehicle etc.) Without passengers etc. 4 a hollow, insincere (empty threats). B without purpose (an empty existence). C vacuous (an empty head). 5 colloq. Hungry. —v. (-ies, -ied) 1 remove the contents of. 2 (often foll. By into) transfer (contents). 3 become empty. 4 (of a river) discharge itself. —n. (pl. -ies) colloq. Empty bottle etc. emptiness n. [old english]

    Empty-handed adj. (usu. Predic.) 1 bringing or taking nothing. 2 having achieved nothing.

    Empty-headed adj. Foolish; lacking sense.

    Empyrean —n. The highest heaven, as the sphere of fire or abode of god. —adj. Of the empyrean. empyreal adj. [greek pur fire]

    Ems abbr. European monetary system.

    Emu abbr. Economic and monetary union; european monetary union.

    Emu n. (pl. -s) large flightless australian bird. [portuguese]

    Emulate v. (-ting) 1 try to equal or excel. 2 imitate. emulation n. Emulative adj. Emulator n. [latin aemulus rival]

    Emulsify v. (-ies, -ied) convert into an emulsion. emulsification n. Emulsifier n.

    Emulsion n. 1 fine dispersion of one liquid in another, esp. As paint, medicine, etc. 2 mixture of a silver compound in gelatin etc. For coating photographic plateor film. 3 emulsion paint. [latin mulgeo milk]

    Emulsion paint n. Water-thinned paint.

    En n. Printing unit of measurement equal to half an em. [name of the letter n]

    En-1 prefix (also em-before b, p) forming verbs, = *in-2: 1 from nouns, meaning ‘put into or on’ (engulf; entrust; embed). 2 from nouns or adjectives, meaning ‘bring into the condition of’ (enslave); often with the suffix -en (enlighten). 3 from verbs: a in the sense ‘in, into, on’ (enfold). B as an intensifier (entangle). [french en-, latin in-]

    En-2 prefix (also em-before b, p) in, inside (energy; enthusiasm). [greek]

    -en suffix forming verbs: 1 from adjectives, usu. Meaning ‘make or become so or more so’ (deepen; moisten). 2 from nouns (happen; strengthen). [old english]

    Enable v. (-ling) 1 (foll. By to + infin.) Give (a person etc.) The means or authority. 2 make possible. 3 esp. Computing make (a device) operational; switch on.

    Enact v. 1 a ordain, decree. B make (a bill etc.) Law. 2 play (a part on stage or in life). enactive adj.

    Enactment n. 1 law enacted. 2 process of enacting.

    Enamel —n. 1 glasslike opaque ornamental or preservative coating on metal etc. 2 a smooth hard coating. B a kind of hard gloss paint. C cosmetic simulating this, esp. Nail varnish. 3 hard coating of a tooth. 4 painting done in enamel. —v. (-ll-; us -l-) inlay, coat, or portray with enamel.

    Enamor v. (brit. Enamour) (usu. In passive; foll. By of) inspire with love or delight. [french amour love]

    Enamour v. (us enamor) (usu. In passive; foll. By of) inspire with love or delight. [french amour love]

    En bloc adv. In a block; all at the same time. [french]

    Encamp v. Settle in a (esp. Military) camp. encampment n.

    Encapsulate v. (-ting) 1 enclose in or as in a capsule. 2 express briefly, summarize. encapsulation n. [related to *capsule]

    Encase v. (-sing) enclose in or as in a case. encasement n.

    Encaustic —adj. (of painting etc.) Using pigments mixed with hot wax, which are burned in as an inlay. —n. 1 art of encaustic painting. 2 product of this. [greek: related to *caustic]

    -ence suffix forming nouns expressing: 1 a quality or state or an instance of this (patience; an impertinence). 2 an action (reference). [french -ence, latin -erie]

    Encephalitis n. Inflammation of the brain. [greek egkephalos brain]

    Encephalogram n. = *electroencephalogram.

    Encephalograph n. = *electroencephalograph.

    Enchant v. 1 charm, delight. 2 bewitch. enchantedly adv. Enchanting adj.

    Enchantingly adv. Enchantment n.

    Enchanter n. (fem. Enchantress) person who enchants, esp. By using magic.

    Encircle v. (-ling) 1 surround. 2 form a circle round. encirclement n.

    Enclave n. Territory of one state surrounded by that of another. [latin clavis key]

    Enclose v. (-sing) 1 a surround with a wall, fence, etc. B shut in. 2 put in a receptacle (esp. In an envelope with a letter). 3 (usu. As enclosed adj.) Seclude (a religious community) from the outside world. [latin: related to *include]

    Enclosure n. 1 act of enclosing. 2 enclosed space or area, esp. At a sporting event. 3 thing enclosed with a letter. [french: related to *enclose]

    Encode v. (-ding) put into code.

    Encomium n. (pl. -s) formal or high-flown praise. [greek komos revelry]

    Encompass v. 1 contain; include. 2 surround.

    Encore —n. 1 audience’s demand for the repetition of an item, or for a further item. 2 such an item. —v. (-ring) 1 call for the repetition of (an item). 2 call back (a performer) for this. —int. Again, once more. [french, = once again]

    Encounter —v. 1 meet unexpectedly. 2 meet as an adversary. —n. Meeting by chance or in conflict. [latin contra against]

    Encourage v. (-ging) 1 give courage or confidence to. 2 urge. 3 promote. encouragement n. [french: related to *en-1]

    Encroach v. 1 (foll. By on, upon) intrude on another’s territory etc. 2 advance gradually beyond due limits. encroachment n. [french croc *crook]

    Encrust v. 1 cover with or form a crust. 2 coat with a hard casing or deposit, sometimes for decoration. [french: related to *en-1]

    Encumber v. 1 be a burden to. 2 hamper. [french from romanic]

    Encumbrance n. 1 burden. 2 impediment.

    -ency suffix forming nouns denoting quality or state (efficiency; fluency; presidency). [latin -entia]

    Encyclical —adj. For wide circulation. —n. Papal encyclical letter. [greek:

    related to *cycle]

    Encyclopedia n. (also -paedia) book, often in a number of volumes, giving information on many subjects, or on many aspects of one subject. [greek egkuklios all-round, paideia education]

    Encyclopedic adj. (also -paedic) (of knowledge or information) comprehensive.

    End —n. 1 a extreme limit. B extremity (to the ends of the earth). 2 extreme part or surface of a thing (strip of wood with a nail in one end). 3 a finish (no end to his misery). B latter part. C death, destruction (met an untimely end). D result. 4 goal (will do anything to achieve his ends). 5 remnant (cigarette-end). 6 (prec.

    Endanger v. Place in danger.

    Endangered species n. Species in danger of extinction.

    Endear v. (usu. Foll. By to) make dear. endearing adj.

    Endearment n. 1 an expression of affection. 2 liking, affection.

    Endeavor (brit. Endeavour) —v. (foll. By to + infin.) Try earnestly. —n. Earnest attempt. [from *en-1, french devoir owe]

    Endeavour (us endeavor) —v. (foll. By to + infin.) Try earnestly. —n. Earnest attempt. [from *en-1, french devoir owe]

    Endemic adj. (often foll. By to) regularly or only found among a particular people or in a particular region. endemically adv. [greek en-in, demos the people]

    Ending n. 1 end or final part, esp. Of a story. 2 inflected final part of a word.

    Endive n. Curly-leaved plant used in salads. [greek entubon]

    Endless adj. 1 infinite; without end. 2 continual (endless complaints). 3 colloq. Innumerable. 4 (of a belt, chain, etc.) Having the ends joined for continuous action over wheels etc. endlessly adv. [old english: related to *end]

    Endmost adj. Nearest the end.

    Endo-comb. Form internal. [greek endon within]

    Endocrine adj. (of a gland) secreting directly into the blood. [greek krino sift]

    Endogenous adj. Growing or originating from within.

    Endometrium n. Membrane lining the womb. [greek metra womb]

    Endomorph n. Person with a soft round body. [greek morphe form]

    Endorse v. (also indorse) (-sing) 1 approve. 2 sign or write on (a document), esp. Sign the back of (a cheque). 3 enter details of a conviction for an offence on (a driving-licence). endorsement n. [latin dorsum back]

    Endoscope n. Instrument for viewing internal parts of the body.

    Endow v. 1 bequeath or give a permanent income to (a person, institution, etc.). 2 (esp. As endowed adj.) Provide with talent, ability, etc. [anglo-french: related to *dower]

    Endowment n. 1 endowing. 2 endowed income. 3 (attrib.) Denoting forms of life insurance with payment of a fixed sum on a specified date, or on the death of the insured person if earlier.

    Endowment mortgage n. Mortgage linked to endowment insurance.

    Endpaper n. Either of the blank leaves of paper at the beginning and end of a book.

    End-product n. Final product of manufacture etc.

    Endue v. (also indue) (-dues, -dued, -duing) (foll. By with) provide (a person) with (qualities etc.). [latin induo put on clothes]

    Endurance n. 1 power of enduring. 2 ability to withstand prolonged strain. [french: related to *endure]

    Endure v. (-ring) 1 undergo (a difficulty etc.). 2 tolerate. 3 last. endurable adj. [latin durus hard]

    Endways adv. (also endwise) 1 with end uppermost or foremost. 2 end to end.

    Enema n. 1 introduction of fluid etc. Into the rectum, esp. To flush out its contents. 2 fluid etc. Used for this. [greek hiemi send]

    Enemy n. (pl. -ies) 1 person actively hostile to another. 2 a (often attrib.) Hostile nation or army. B member of this. 3 adversary or opponent (enemy of progress). [latin: related to *in-2, amicus friend]

    Energetic adj. Full of energy, vigorous. energetically adv. [greek: related to *energy]

    Energize v. (also -ise) (-zing or -sing) 1 give energy to. 2 provide (a device) with energy for operation.

    Energy n. (pl. -ies) 1 capacity for activity, force, vigour. 2 capacity of matter or radiation to do work. [greek ergon work]

    Enervate v. (-ting) deprive of vigour or vitality. enervation n. [latin: related to *nerve]

    En famille adv. In or with one’s family. [french, = in family]

    Enfant terrible n. (pl. Enfants terribles pronunc. Same) indiscreet or unruly person. [french, = terrible child]

    Enfeeble v. (-ling) make feeble. enfeeblement n.

    Enfilade —n. Gunfire directed along a line from end to end. —v. (-ding) direct an enfilade at. [french: related to *file1]

    Enfold v. 1 (usu. Foll. By in, with) wrap; envelop. 2 clasp, embrace.

    Enforce v. (-cing) 1 compel observance of (a law etc.). 2 (foll. By on) impose (an action or one’s will, etc.) On. enforceable adj. Enforcement n. Enforcer n. [latin: related to *force1]

    Enfranchise v. (-sing) 1 give (a person) the right to vote. 2 give (a town) municipal rights, esp. Representation in parliament. 3 hist. Free (a slave etc.). enfranchisement n. [french: related to *frank]

    Engage v. (-ging) 1 employ or hire (a person). 2 a (usu. In passive) occupy (are you engaged tomorrow?). B hold fast (a person’s attention). 3 (usu. In passive) bind by a promise, esp. Of marriage. 4 arrange beforehand to occupy (a room, seat, etc.). 5 a interlock (parts of a gear etc.). B (of a gear etc.) Become interlocked. 6 a come into battle with. B bring (troops) into battle with. C come into battle with (an enemy etc.). 7 take part (engage in politics). 8 (foll. By that + clause or to + infin.) Undertake. [french: related to *gage1]

    Engaged adj. 1 pledged to marry. 2 (of a person) occupied, busy. 3 (of a telephone line, toilet, etc.) In use.

    Engagement n. 1 engaging or being engaged. 2 appointment with another person.

    3 betrothal. 4 battle.

    Engaging adj. Attractive, charming. engagingly adv.

    Engender v. Give rise to; produce (a feeling etc.). [related to *genus]

    Engine n. 1 mechanical contrivance of parts working together, esp. As a source of power (steam engine). 2 a railway locomotive. B = *fire-engine. [latin ingenium device]

    Engineer —n. 1 person skilled in a branch of engineering. 2 person who makes or is in charge of engines etc. (ship’s engineer). 3 person who designs and constructs military works; soldier so trained. 4 contriver. —v. 1 contrive, bring about. 2 act as an engineer. 3 construct or manage as an engineer. [medieval

    latin: related to *engine]

    Engineering n. Application of science to the design, building, and use of machines etc. (civil engineering).

    English —adj. Of england or its people or language. —n. 1 language of england, now used in the uk, us, and most commonwealth countries. 2 (prec. By the; treated as pl.) The people of england. [old english]

    Englishman n. (fem. Englishwoman) person who is english by birth or descent.

    Engorged adj. 1 crammed full. 2 congested with fluid, esp. Blood. [french:

    related to en-1, gorge]

    Engraft v. (also ingraft) 1 bot. (usu. Foll. By into, on) graft. 2 implant. 3 (usu.

    Foll. By into) incorporate.

    Engrave v. (-ving) 1 (often foll. By on) carve (a text or design) on a hard surface. 2 inscribe (a surface) thus. 3 (often foll. By on) impress deeply (on a person’s memory). engraver n. [from *grave3]

    Engraving n. Print made from an engraved plate.

    Engross v. 1 absorb the attention of; occupy fully. 2 write out in larger letters or in legal form. engrossment n. [anglo-french: related to *en-1]

    Engulf v. Flow over and swamp; overwhelm. engulfment n.

    Enhance v. (-cing) intensify (qualities, powers, etc.); improve (something already good). enhancement n. [anglo-french from latin altus high]

    Enigma n. 1 puzzling thing or person. 2 riddle or paradox. enigmatic adj. Enigmatically adv. [latin from greek]

    Enjoin v. 1 command or order. 2 (often foll. By on) impose (an action). 3 (usu. Foll. By from) law prohibit by injunction (from doing a thing). [latin injungo attach]

    Enjoy v. 1 take pleasure in. 2 have the use or benefit of. 3 experience (enjoy good health). enjoy oneself experience pleasure. enjoyment n. [french]

    Enjoyable adj. Pleasant. enjoyably adv.

    Enkephalin n. Either of two morphine-like peptides in the brain thought to control levels of pain. [greek egkephalos brain]

    Enkindle v. (-ling) cause to flare up, arouse.

    Enlarge v. (-ging) 1 make or become larger or wider. 2 (often foll. By on, upon) describe in greater detail. 3 reproduce a photograph on a larger scale. enlargement n. [french: related to *large]

    Enlarger n. Apparatus for enlarging photographs.

    Enlighten v. 1 (often foll. By on) inform (about a subject). 2 (as enlightened adj.) Progressive.

    Enlightenment n. 1 enlightening or being enlightened. 2 (the enlightenment) 18th-c. Philosophy of reason and individualism.

    Enlist v. 1 enrol in the armed services. 2 secure as a means of help or support.

    enlistment n.

    Enliven v. Make lively or cheerful; brighten (a picture etc.); inspirit. enlivenment n.

    En masse adv. All together. [french]

    Enmesh v. Entangle in or as in a net.

    Enmity n. (pl. -ies) 1 state of being an enemy. 2 hostility. [romanic: related to *enemy]

    Ennoble v. (-ling) 1 make noble. 2 make (a person) a noble. ennoblement n. [french: related to *en-1]

    Ennui n. Mental weariness from idleness or lack of interest; boredom. [french:

    related to *annoy]

    Enormity n. (pl. -ies) 1 monstrous wickedness; monstrous crime. 2 serious error. 3 great size. [latin enormitas]

    Usage sense 3 is commonly found, but is regarded as incorrect by some people.

    Enormous adj. Extremely large. enormously adv. [latin enormis: related to *norm]

    Enough —adj. As much or as many as required (enough apples). —n. Sufficient amount or quantity (we have enough). —adv. 1 adequately (warm enough). 2 fairly (sings well enough). 3 quite (you know well enough what i mean). have had enough of want no more of; be satiated with or tired of. Sure enough as expected. [old english]

    En passant adv. In passing; casually (mentioned it en passant). [french, = in passing]

    Enprint n. Standard-sized photograph. [enlarged print]

    Enquire v. (-ring) 1 seek information; ask; ask a question. 2 = *inquire. 3 (foll. By after, for) ask about (a person, a person’s health, etc.). enquirer n. [latin quaero quaesit-seek]

    Enquiry n. (pl. -ies) 1 act of asking or seeking information. 2 = *inquiry.

    Enrage v. (-ging) make furious. [french: related to *en-1]

    Enrapture v. (-ring) delight intensely.

    Enrich v. 1 make rich or richer. 2 make more nutritive. 3 increase the strength, wealth, value, or contents of. enrichment n. [french: related to *en-1]

    Enrol v. (us enroll) (-ll-) 1 enlist. 2 a write the name of (a person) on a list. B incorporate as a member. C enrol oneself, esp. For a course of study. enrolment n. [french: related to *en-1]

    Enroll v. (brit. Enrol) (-ll-) 1 enlist. 2 a write the name of (a person) on a list. B incorporate as a member. C enrol oneself, esp. For a course of study. enrolment n. [french: related to *en-1]

    En route adv. On the way. [french]

    Ensconce v. (-cing) (usu. Refl. Or in passive) establish or settle comfortably. [from sconce small fortification]

    Ensemble n. 1 a thing viewed as the sum of its parts. B general effect of this. 2 set of clothes worn together. 3 group of performers working together. 4 mus. Concerted passage for an ensemble. [latin simul at the same time]

    Enshrine v. (-ning) 1 enclose in a shrine. 2 protect, make inviolable.

    enshrinement n.

    Enshroud v. Literary 1 cover with or as with a shroud. 2 obscure.

    Ensign n. 1 banner or flag, esp. The military or naval flag of a nation. 2 standard-bearer. 3 a hist. Lowest commissioned infantry officer. B us lowest commissioned naval officer. [french: related to *insignia]

    Ensilage —n. = silage. —v. (-ging) preserve (fodder) by ensilage. [french:

    related to silo]

    Enslave v. (-ving) make (a person) a slave. enslavement n.

    Ensnare v. (-ring) catch in or as in a snare. ensnarement n.

    Ensue v. (-sues, -sued, -suing) happen later or as a result. [latin sequor follow]

    En suite —adv. Forming a single unit (bedroom with bathroom en suite). —adj. 1 forming a single unit (en suite bathroom). 2 with a bathroom attached (seven en suite bedrooms). [french, = in sequence]

    Ensure v. (-ring) 1 make certain. 2 (usu. Foll. By against) make safe (ensure against risks). ensurer n. [anglo-french: related to *assure]

    against risks). ensurer n. [anglo-french: related to *assure]

    Ent abbr. Ear, nose, and throat.

    -ent suffix 1 forming adjectives denoting attribution of an action (consequent) or state (existent). 2 forming agent nouns (president). [latin -ent-present participial stem of verbs]

    Entablature n. Upper part of a classical building supported by columns including an architrave, frieze, and cornice. [italian: related to *table]

    Entail —v. 1 necessitate or involve unavoidably (entails much effort). 2 law bequeath (an estate) to a specified line of beneficiaries so that it cannot be sold or given away. —n. Law 1 entailed estate. 2 succession to such an estate. [related to *tail2]

    Entangle v. (-ling) 1 catch or hold fast in a snare, tangle, etc. 2 involve in difficulties. 3 complicate. entanglement n.

    Entente n. Friendly understanding between states. [french]

    Entente cordiale n. Entente, esp. Between britain and france from 1904.

    Enter v. 1 go or come in or into. 2 come on stage (also as a direction: enter macbeth). 3 penetrate (bullet entered his arm). 4 write (name, details, etc.) In a

    list, book, etc. 5 register, record the name of as a competitor (entered for the long jump). 6 a become a member of (a society or profession). B enrol in a school etc. 7 make known; present for consideration (enter a protest). 8 record formally (before a court of law etc.). 9 (foll. By into) a engage in (conversation etc.). B subscribe to; bind oneself by (an agreement, contract, etc.). C form part of (a calculation, plan, etc.). D sympathize with (feelings). 10 (foll. By on, upon) a begin; begin to deal with. B assume the functions of (an office) or possession of (property). [latin intra within]

    Enteric adj. Of the intestines. enteritis n. [greek enteron intestine]

    Entry n. (pl. -ies) 1 a going or coming in. B liberty to do this. 2 place of entrance; door, gate, etc. 3 passage between buildings. 4 a item entered in a diary, list, etc. B recording of this. 5 a person or thing competing in a race etc. B list of competitors. [romanic: related to *enter]

    Entryphone n. Propr. Intercom at the entrance of a building or flat for callers to identify themselves.

    Entwine v. (-ning) twine round, interweave.

    Enumber n. E plus a number, the ec designation for food additives.

    Enumerate v. (-ting) 1 specify (items). 2 count. enumeration n. Enumerative adj. [latin: related to *number]

    Enumerator n. Person employed in census-taking.

    Enunciate v. (-ting) 1 pronounce (words) clearly. 2 express in definite terms. enunciation n. [latin nuntio announce]

    Enuresis n. Involuntary urination. [greek enoureo urinate in]

    Envelop v. (-p-) 1 wrap up or cover completely. 2 completely surround. envelopment n. [french]

    Envelope n. 1 folded paper container for a letter etc. 2 wrapper, covering. 3 gas container of a balloon or airship.

    Enviable adj. Likely to excite envy, desirable. enviably adv.

    Envious adj. Feeling or showing envy. enviously adv. [anglo-french: related to *envy]

    Environment n. 1 surroundings, esp. As affecting lives. 2 circumstances of living. 3 computing overall structure within which a user, computer, or program operates. environmental adj. Environmentally adv. [french environ surroundings]

    Environmentalist n. Person concerned with the protection of the natural environment. environmentalism n.

    Environs n.pl. District round a town etc.

    Envisage v. (-ging) 1 have a mental picture of (a thing not yet existing). 2 imagine as possible or desirable. [french: related to *visage]

    Envoy n. 1 messenger or representative. 2 (in full envoy extraordinary) diplomatic agent ranking below ambassador. [french envoyer send, from latin via way]

    Envy —n. (pl. -ies) 1 discontent aroused by another’s better fortune etc. 2 object of this feeling. —v. (-ies, -ied) feel envy of (a person etc.). [latin invidia, from video see]

    Enwrap v. (-pp-) (often foll. By in) literary wrap, enfold.

    Enzyme n. Protein catalyst of a specific biochemical reaction. [greek enzumos leavened]

    Eocene geol. —adj. Of the second epoch of the tertiary period. —n. This epoch. [greek eos dawn, kainos new]

    Eolian harp n. (brit. Aeolian) stringed instrument or toy sounding when the wind passes through it. [latin aeolus wind-god, from greek]

    Eolithic adj. Of the period preceding the palaeolithic age. [greek eos dawn, lithos

    stone]

    Eon var. Of *aeon.

    Ep abbr. Extended-play (gramophone record).

    Epaulet n. (brit. Epaulette) ornamental shoulder-piece on a coat etc., esp. On a uniform. [french épaule shoulder]

    Epaulette n. (us epaulet) ornamental shoulder-piece on a coat etc., esp. On a uniform. [french épaule shoulder]

    Épée n. Sharp-pointed sword, used (with the end blunted) in fencing. [french:

    related to *spathe]

    Ephedrine n. Alkaloid drug used to relieve asthma, etc. [ephedra, genus of plants yielding it]

    Ephemera n.pl. Things of only short-lived relevance. [latin: related to *ephemeral]

    Ephemeral adj. Lasting or of use for only a short time; transitory. [greek: related to *epi-, hemera day]

    Epi-prefix 1 upon. 2 above. 3 in addition. [greek]

    Epic —n. 1 long poem narrating the adventures or deeds of one or more heroic or legendary figures. 2 book or film based on an epic narrative. —adj. 1 of or like an epic. 2 grand, heroic. [greek epos song]

    Epicene —adj. 1 of, for, denoting, or used by both sexes. 2 having characteristics of both sexes or of neither sex. —n. Epicene person. [greek koinos common]

    Epicenter n. (brit. Epicentre) 1 point at which an earthquake reaches the earth’s surface. 2 central point of a difficulty. [greek: related to *centre]

    Epicentre n. (us epicenter) 1 point at which an earthquake reaches the earth’s surface. 2 central point of a difficulty. [greek: related to *centre]

    Epicure n. Person with refined tastes, esp. In food and drink. epicurism n. [medieval latin: related to *epicurean]

    Epicurean —n. 1 disciple or student of the greek philosopher epicurus. 2 (epicurean) devotee of (esp. Sensual) enjoyment. —adj. 1 of epicurus or his ideas. 2 (epicurean) characteristic of an epicurean. epicureanism n. [latin from greek]

    Epidemic —n. Widespread occurrence of a disease in a community at a particular time. —adj. In the nature of an epidemic. [greek epi against, demos the people]

    Epidemiology n. The study of epidemic diseases and their control.

    epidemiologist n.

    Epidermis n. Outer layer of the skin. epidermal adj. [greek derma skin]

    Epidiascope n. Optical projector capable of giving images of both opaque and transparent objects. [from epi-, dia-, *-scope]

    Epidural —adj. (of an anaesthetic) introduced into the space around the dura mater of the spinal cord. —n. Epidural anaesthetic. [from epi-, dura mater]

    Epiglottis n. Flap of cartilage at the root of the tongue, depressed during swallowing to cover the windpipe. epiglottal adj. [greek glotta tongue]

    Epigram n. 1 short poem with a witty ending. 2 pointed saying. epigrammatic adj. [greek: related to *-gram]

    Epigraph n. Inscription. [greek: related to *-graph]

    Epilepsy n. Nervous disorder with convulsions and often loss of consciousness. [greek lambano take]

    Epileptic —adj. Of epilepsy. —n. Person with epilepsy. [french: related to *epilepsy]

    Epilogue n. 1 short piece ending a literary work. 2 speech addressed to the audience by an actor at the end of a play. [greek logos speech]

    Epiphany n. (pl. -ies) 1 (epiphany) a manifestation of christ to the magi. B festival of this on 6 january. 2 manifestation of a god or demigod. [greek phaino show]

    Episcopacy n. (pl. -ies) 1 government by bishops. 2 (prec. By the) the bishops.

    Episcopal adj. 1 of a bishop or bishops. 2 (of a church) governed by bishops. episcopally adv. [church latin: related to *bishop]

    Episcopalian —adj. 1 of episcopacy. 2 of an episcopal church or (episcopalian) the episcopal church. —n. 1 adherent of episcopacy. 2 (episcopalian) member of the episcopal church. episcopalianism n.

    Episcopate n. 1 the office or tenure of a bishop. 2 (prec. By the) the bishops collectively. [church latin: related to *bishop]

    Episiotomy n. (pl. -ies) surgical cut made at the vaginal opening during childbirth, to aid delivery. [greek epision pubic region]

    Episode n. 1 event or group of events as part of a sequence. 2 each of the parts of a serial story or broadcast. 3 incident or set of incidents in a narrative. [greek eisodos entry]

    Episodic adj. 1 consisting of separate episodes. 2 irregular, sporadic. episodically adv.

    Epistemology n. Philosophy of knowledge. epistemological adj. [greek episteme knowledge]

    Epistle n. 1 joc. Letter. 2 (epistle) any of the apostles’ letters in the new testament. 3 poem etc. In the form of a letter. [greek epistole from stello send]

    Epistolary adj. Of or in the form of a letter or letters. [latin: related to *epistle]

    Epitaph n. Words written in memory of a dead person, esp. As a tomb inscription. [greek taphos tomb]

    Epithelium n. (pl. -s or -lia) tissue forming the outer layer of the body and lining many hollow structures. epithelial adj. [greek thele teat]

    Epithet n. 1 adjective etc. Expressing a quality or attribute. 2 this as a term of abuse. [greek tithemi place]

    Epitome n. 1 person or thing embodying a quality etc. 2 thing representing another in miniature. [greek temno cut]

    Epitomize v. (also -ise) (-zing or -sing) make or be a perfect example of (a quality etc.).

    Epns abbr. Electroplated nickel silver.

    Epoch n. 1 period of history etc. Marked by notable events. 2 beginning of an era. 3 geol. Division of a period, corresponding to a set of strata. epochal adj. [greek, = pause]

    Epoch-making adj. Remarkable; very important.

    Eponym n. 1 word, place-name, etc., derived from a person’s name. 2 person whose name is used in this way. eponymous adj. [greek onoma name]

    Epos abbr. Electronic point-of-sale (equipment recording stock, sales, etc. In shops).

    Epoxy adj. Relating to or derived from a compound with one oxygen atom and two carbon atoms bonded in a triangle. [from epi-, oxygen]

    Epoxy resin n. Synthetic thermosetting resin.

    Epsilon n. Fifth letter of the greek alphabet (e, e). [greek]

    Epsom salts n. Magnesium sulphate used as a purgative etc. [epsom in s. England]

    Equable adj. 1 not varying. 2 moderate (equable climate). 3 (of a person) not easily disturbed. equably adv. [related to *equal]

    Equal —adj. 1 (often foll. By to, with) the same in quantity, quality, size, degree, level, etc. 2 evenly balanced (an equal contest). 3 having the same rights or status (human beings are essentially equal). 4 uniform in application or effect. — n. Person or thing equal to another, esp. In rank or quality. —v. (-ll-; us -l-) 1 be equal to. 2 achieve something that is equal to. be equal to have the ability or resources for. [latin aequalis]

    Equality n. Being equal. [latin: related to *equal]

    Equalize v. (also -ise) (-zing or -sing) 1 make or become equal. 2 reach one’s opponent’s score. equalization n.

    Equalizer n. (also -iser) equalizing score or goal etc.

    Equally adv. 1 in an equal manner (treated them equally). 2 to an equal degree (equally important).

    Usage in sense 2, construction with as (e.g. Equally as important) is often found, but is considered incorrect by some people.

    Equal opportunity n. (often in pl.) Opportunity to compete on equal terms, regardless of sex, race, etc.

    Equanimity n. Composure, evenness of temper, esp. In adversity. [latin aequus even, animus mind]

    Equate v. (-ting) 1 (usu. Foll. By to, with) regard as equal or equivalent. 2 (foll. By with) be equal or equivalent to. equatable adj. [latin aequo aequat-: related to *equal]

    Equation n. 1 equating or making equal; being equal. 2 statement that two mathematical expressions are equal (indicated by the sign =). 3 formula indicating a chemical reaction by means of symbols.

    Equator n. 1 imaginary line round the earth or other body, equidistant from the poles. 2 = celestial equator. [medieval latin: related to equate]

    Equatorial adj. Of or near the equator.

    Equerry n. (pl. -ies) officer attending the british royal family. [french esquierie stable]

    Equestrian —adj. 1 of horse-riding. 2 on horseback. —n. Rider or performer on horseback. equestrianism n. [latin equestris from equus horse] Equi-comb. Form equal. [latin: related to *equal]

    Equiangular adj. Having equal angles.

    Equidistant adj. At equal distances.

    Equilateral adj. Having all its sides equal in length.

    Equilibrium n. (pl. -ria or -s) 1 state of physical balance. 2 state of composure. [latin libra balance]

    Equine adj. Of or like a horse. [latin equus horse]

    Equinoctial —adj. Happening at or near the time of an equinox. —n. (in full equinoctial line) = *celestial equator. [latin: related to *equinox]

    Equinox n. Time or date (twice each year) at which the sun crosses the celestial equator, when day and night are of equal length. [latin nox noctis night]

    Enterprise n. 1 undertaking, esp. A challenging one. 2 readiness to engage in such undertakings. 3 business firm or venture. [latin prehendo grasp]

    Enterprising adj. Showing enterprise; resourceful, energetic. enterprisingly adv.

    Entertain v. 1 occupy agreeably. 2 a receive as a guest. B receive guests. 3 cherish, consider (an idea etc.). [latin teneo hold]

    Entertainer n. Person who entertains, esp. Professionally.

    Entertainer n. Person who entertains, esp. Professionally.

    Entertaining adj. Amusing, diverting. entertainingly adv.

    Entertainment n. 1 entertaining or being entertained. 2 thing that entertains; performance.

    Enthral v. (us enthrall) (-ll-) captivate, please greatly. enthralment n. [from en-1, thrall]

    Enthrall v. (brit. Enthral) (-ll-) captivate, please greatly. enthralment n. [from en-1, thrall]

    Enthrone v. (-ning) place on a throne, esp. Ceremonially. enthronement n.

    Enthuse v. (-sing) colloq. Be or make enthusiastic.

    Enthusiasm n. 1 (often foll. By for, about) strong interest or admiration, great eagerness. 2 object of enthusiasm. [greek entheos inspired by a god]

    Enthusiast n. Person full of enthusiasm. [church latin: related to *enthusiasm]

    Enthusiastic adj. Having enthusiasm. enthusiastically adv.

    Entice v. (-cing) attract by the offer of pleasure or reward. enticement n. Enticing adj. Enticingly adv. [french enticier probably from romanic]

    Entire adj. 1 whole, complete. 2 unbroken. 3 unqualified, absolute. 4 in one piece; continuous. [latin: related to *integer]

    Entirely adv. 1 wholly. 2 solely.

    Entirety n. (pl. -ies) 1 completeness. 2 (usu. Foll. By of) sum total. in its entirety in its complete form.

    Entitle v. (-ling) 1 (usu. Foll. By to) give (a person) a just claim or right. 2 give a title to. entitlement n. [latin: related to *title]

    Entity n. (pl. -ies) 1 thing with distinct existence. 2 thing’s existence in itself. [latin ens ent-being]

    Entomb v. 1 place in a tomb. 2 serve as a tomb for. entombment n. [french:

    related to *tomb]

    Entomology n. The study of insects. entomological adj. Entomologist n. [greek entomon insect]

    Entourage n. People attending an important person. [french]

    Entourage n. People attending an important person. [french]

    Entr’acte n. 1 interval between acts of a play. 2 music or dance performed during this. [french]

    Entrails n.pl. 1 bowels, intestines. 2 innermost parts of a thing. [latin inter among]

    Entrance1 n. 1 place for entering. 2 going or coming in. 3 right of admission. 4 coming of an actor on stage. 5 (in full entrance fee) admission fee. [french: related to *enter]

    Entrance2 v. (-cing) 1 enchant, delight. 2 put into a trance. entrancement n.

    Entrancing adj. Entrancingly adv.

    Entrant n. Person who enters (an examination, profession, etc.). [french: related to *enter]

    Entrap v. (-pp-) 1 catch in or as in a trap. 2 beguile. entrapment n. [related to *en-1]

    Entreat v. Ask earnestly, beg. [related to *en-1]

    Entreaty n. (pl. -ies) earnest request.

    Entrecôte n. Boned steak off the sirloin. [french, = between-rib]

    Entrée n. 1 dish served between the fish and meat courses. 2 us main dish. 3 right of admission. [french]

    Entrench v. 1 a establish firmly (in a position, office, etc.). B (as entrenched adj.) (of an attitude etc.) Not easily modified. 2 surround with a trench as a fortification. entrenchment n.

    Entrepôt n. Warehouse for goods in transit. [french]

    Entrepreneur n. 1 person who undertakes a commercial venture. 2 contractor acting as an intermediary. entrepreneurial adj. Entrepreneurialism n. (also entrepreneurism). [french: related to *enterprise]

    Entropy n. 1 physics measure of the disorganization or degradation of the universe, resulting in a decrease in available energy. 2 physics measure of the unavailability of a system’s thermal energy for conversion into mechanical work. [greek: related to *en-2, trope transformation]

    Entrust v. (also intrust) 1 (foll. By to) give (a person or thing) into the care of a person. 2 (foll. By with) assign responsibility for (a person or thing) to (a person) (entrusted him with my camera).

    Equip v. (-pp-) supply with what is needed. [old norse skipa to man a ship]

    Equipage n. 1 archaic a requisites. B outfit. 2 hist. Carriage and horses with attendants. [french: related to *equip]

    Equipment n. 1 necessary articles, clothing, etc. 2 equipping or being equipped. [french: related to *equip]

    Equipoise n. 1 equilibrium. 2 counterbalancing thing.

    Equitable adj. 1 fair, just. 2 law valid in equity as distinct from law. equitably adv. [french: related to *equity]

    Equitation n. Horsemanship; horse-riding. [latin equito ride a horse]

    Equity n. (pl. -ies) 1 fairness. 2 principles of justice used to correct or supplement the law. 3 a value of the shares issued by a company. B (in pl.) Stocks and shares not bearing fixed interest. [latin aequitas: related to *equal]

    Equivalent —adj. 1 (often foll. By to) equal in value, amount, importance, etc. 2 corresponding. 3 having the same meaning or result. —n. Equivalent thing, amount, etc. equivalence n. [latin: related to *value]

    Equivocal adj. 1 of double or doubtful meaning. 2 of uncertain nature. 3 (of a person etc.) Questionable. equivocally adv. [latin voco call]

    Equivocate v. (-ting) use ambiguity to conceal the truth. equivocation n.

    Equivocator n. [latin: related to *equivocal]

    Er abbr. Queen elizabeth. [latin elizabetha regina]

    Er symb. Erbium.

    Er int. Expressing hesitation. [imitative]

    -er1 suffix forming nouns from nouns, adjectives, and verbs, denoting: 1 person, animal, or thing that does (cobbler; poker). 2 person or thing that is (foreigner; four-wheeler). 3 person concerned with (hatter; geographer). 4 person from (villager; sixth-former). [old english]

    -er2 suffix forming the comparative of adjectives (wider) and adverbs (faster). [old english]

    -er3 suffix used in a slang distortion of the word (rugger). [probably an extension of *-er1]

    Era n. 1 system of chronology reckoning from a noteworthy event (christian era). 2 large period, esp. Regarded historically. 3 date at which an era begins. 4 major division of geological time. [latin, = number (pl. Of aes money)]

    Eradicate v. (-ting) root out; destroy completely. eradicable adj. Eradication n. Eradicator n. [latin radix -icis root]

    Erase v. (-sing) 1 rub out; obliterate. 2 remove all traces of. 3 remove recorded material from (magnetic tape or disk). [latin rado ras-scrape]

    Eraser n. Thing that erases, esp. A piece of rubber etc. For removing pencil etc.

    Marks.

    Erasure n. 1 erasing. 2 erased word etc.

    Erbium n. Metallic element of the lanthanide series. [ytterby in sweden]

    Ere prep. & conj. Poet. Or archaic before (of time) (ere noon; ere they come). [old english]

    Erect —adj. 1 upright, vertical. 2 (of the penis etc.) Enlarged and rigid, esp. In sexual excitement. 3 (of hair) bristling. —v. 1 set up; build. 2 establish. erection n. Erectly adv. Erectness n. [latin erigere erect-set up]

    Erectile adj. That can become erect (esp. Of body tissue in sexual excitement). [french: related to *erect]

    Erg n. Unit of work or energy. [greek ergon work]

    Ergo adv. Therefore. [latin]

    Ergonomics n. The study of the relationship between people and their working environment. ergonomic adj. [greek ergon work]

    Ergot n. Disease of rye etc. Caused by a fungus. [french]

    Erin n. Poet. Ireland. [irish]

    Erm abbr. Exchange rate mechanism.

    Ermine n. (pl. Same or -s) 1 stoat, esp. When white in winter. 2 its white fur, used to trim robes etc. [french]

    Ernie n. Device for drawing prizewinning numbers of premium bonds. [electronic random number indicator equipment]

    Erode v. (-ding) wear away, destroy gradually. erosion n. Erosive adj. [latin rodo ros-gnaw]

    Erogenous adj. (of a part of the body) particularly sensitive to sexual stimulation. [greek (as *erotic), *-genous]

    Erotic adj. Of or causing sexual love, esp. Tending to arouse sexual desire or excitement. erotically adv. [greek eros sexual love]

    Erotica n.pl. Erotic literature or art.

    Eroticism n. 1 erotic character. 2 use of or response to erotic images or stimulation.

    Err v. 1 be mistaken or incorrect. 2 do wrong; sin. [latin erro stray]

    Errand n. 1 short journey, esp. On another’s behalf, to take a message, collect goods, etc. 2 object of such a journey. [old english]

    Errand of mercy n. Journey to relieve suffering etc.

    Errant adj. 1 erring. 2 literary or archaic travelling in search of adventure (knight errant). errantry n. (in sense 2). [from *err: sense 2 ultimately from latin iter journey]

    Erratic adj. 1 inconsistent in conduct, opinions, etc. 2 uncertain in movement. erratically adv. [latin: related to *err]

    Erratum n. (pl. Errata) error in printing or writing. [latin: related to *err] Erroneous adj. Incorrect. erroneously adv. [latin: related to *err]

    Error n. 1 mistake. 2 condition of being morally wrong (led into error). 3 degree of inaccuracy in a calculation etc. (2% error). [latin: related to *err]

    Ersatz adj. & n. Substitute, imitation. [german]

    Erse —adj. Irish or highland gaelic. —n. The gaelic language. [early scots form of *irish]

    Erstwhile —adj. Former, previous. —adv. Archaic formerly. [related to *ere]

    Eructation n. Formal belching. [latin ructo belch]

    Erudite adj. Learned. erudition n. [latin eruditus instructed: related to *rude]

    Erupt v. 1 break out suddenly or dramatically. 2 (of a volcano) eject lava etc. 3 (of a rash etc.) Appear on the skin. eruption n. Eruptive adj. [latin erumpo erupt-break out]

    -ery suffix (also -ry) forming nouns denoting: 1 class or kind (greenery; machinery; citizenry). 2 employment; state or condition (dentistry; slavery). 3 place of work or cultivation or breeding (brewery; rookery). 4 behaviour (mimicry). 5 often derog. All that has to do with (popery). [french -erie]

    Erysipelas n. Disease causing fever and a deep red inflammation of the skin. [latin from greek]

    Erythrocyte n. Red blood cell. [greek eruthros red, *-cyte]

    Es symb. Einsteinium.

    Escalate v. (-ting) 1 increase or develop (usu. Rapidly) by stages. 2 make or become more intense. escalation n. [from *escalator]

    Escalator n. Moving staircase consisting of a circulating belt forming steps. [latin scala ladder]

    Escalope n. Thin slice of boneless meat, esp. Veal. [french, originally = shell]

    Escapade n. Piece of reckless behaviour. [french from provençal or spanish:

    related to *escape]

    Escape —v. (-ping) 1 (often foll. By from) get free of restriction or control. 2 (of gas etc.) Leak. 3 succeed in avoiding punishment etc. 4 get free of (a person, grasp, etc.). 5 avoid (a commitment, danger, etc.). 6 elude the notice or memory of (nothing escapes you; name escaped me). 7 (of words etc.) Issue unawares from (a person etc.). —n. 1 act or instance of escaping. 2 means of escaping (often attrib.: escape hatch). 3 leakage of gas etc. 4 temporary relief from unpleasant reality. [latin cappa cloak]

    Escape clause n. Law clause specifying conditions under which a contracting party is free from an obligation.

    Escapee n. Person who has escaped.

    Escapement n. Part of a clock etc. That connects and regulates the motive power. [french: related to *escape]

    Escape velocity n. Minimum velocity needed to escape from the gravitational field of a body.

    Escapism n. Pursuit of distraction and relief from reality. escapist n. & adj.

    Escapology n. Techniques of escaping from confinement, esp. As entertainment.

    escapologist n.

    Escarpment n. Long steep slope at the edge of a plateau etc. [french from italian:

    related to *scarp]

    Eschatology n. Theology of death and final destiny. eschatological adj. [greek eskhatos last]

    Escheat hist. —n. 1 reversion of property to the state etc. In the absence of legal heirs. 2 property so affected. —v. 1 hand over (property) as an escheat. 2 confiscate. 3 revert by escheat. [latin cado fall]

    Eschew v. Formal avoid; abstain from. eschewal n. [germanic: related to *shy1]

    Escort —n. 1 one or more persons, vehicles, etc., accompanying a person, vehicle, etc., for protection or as a mark of status. 2 person accompanying a person of the opposite sex socially. —v. Act as an escort to. [french from italian]

    Escritoire n. Writing-desk with drawers etc. [french from latin scriptorium writing-room]

    Escudo n. (pl. -s) chief monetary unit of portugal. [spanish and portuguese from latin scutum shield]

    Escutcheon n. Shield or emblem bearing a coat of arms. [latin scutum shield]

    Eskimo —n. (pl. Same or -s) 1 member of a people inhabiting n. Canada, alaska, greenland, and e. Siberia. 2 language of this people. —adj. Of eskimos or their language. [algonquian]

    Usage the eskimos of n. America prefer the name inuit.

    Esn abbr. Educationally subnormal.

    Esophagus n. (brit. Oesophagus) (pl. -gi or -guses) passage from the mouth to the stomach; gullet. [greek]

    Esoteric adj. Intelligible only to those with special knowledge. esoterically adv.

    Esoteric adj. Intelligible only to those with special knowledge. esoterically adv. [greek eso within]

    Esp abbr. Extrasensory perception.

    Espadrille n. Light canvas shoe with a plaited fibre sole. [provençal: related to *esparto]

    Espalier n. 1 lattice-work along which the branches of a tree or shrub are trained. 2 tree or shrub so trained. [french from italian]

    Esparto n. (pl. -s) (in full esparto grass) coarse grass of spain and n. Africa, used to make good-quality paper etc. [greek sparton rope]

    Especial adj. Notable. [latin: related to *special]

    Especially adv. 1 in particular. 2 much more than in other cases. 3 particularly.

    Esperanto n. An artificial language designed for universal use. [latin spero hope]

    Espionage n. Spying or use of spies. [french: related to *spy]

    Esplanade n. 1 long open level area for walking on, esp. Beside the sea. 2 level space separating a fortress from a town. [latin planus level]

    Espousal n. 1 (foll. By of) espousing of (a cause etc.). 2 archaic marriage, betrothal.

    Espouse v. (-sing) 1 adopt or support (a cause, doctrine, etc.). 2 archaic a (usu. Of a man) marry. B (usu. Foll. By to) give (a woman) in marriage. [latin spondeo betroth]

    Ex-servicewoman n. Woman formerly a member of the armed forces.

    Extant adj. Still existing. [latin ex(s)to exist]

    Extemporaneous adj. Spoken or done without preparation. extemporaneously adv. [from *extempore]

    Extemporary adj. = *extemporaneous. extemporarily adv.

    Extempore adj. & adv. Without preparation. [latin]

    Extemporize v. (also -ise) (-zing or -sing) improvise. extemporization n.

    Extend v. 1 lengthen or make larger in space or time. 2 stretch or lay out at full length. 3 (foll. By to, over) reach or be or make continuous over a specified area. 4 (foll. By to) have a specified scope (permit does not extend to camping). 5 offer or accord (an invitation, hospitality, kindness, etc.). 6 (usu. Refl. Or in

    passive) tax the powers of (an athlete, horse, etc.). extendible adj. (also extensible). [latin extendo -tens-: related to *tend1]

    Extended family n. Family including relatives living near.

    Extended-play adj. (of a gramophone record) playing for somewhat longer than most singles.

    Extension n. 1 extending or being extended. 2 part enlarging or added on to a main building etc. 3 additional part. 4 a subsidiary telephone on the same line as the main one. B its number. 5 additional period of time. 6 extramural instruction by a university or college.

    Extensive adj. 1 covering a large area. 2 far-reaching. extensively adv. Extensiveness n. [latin: related to *extend]

    Extent n. 1 space over which a thing extends. 2 range, scope, degree. [anglo-french: related to *extend]

    Extenuate v. (often as extenuating adj.) Make (guilt or an offence) seem less serious by reference to another factor. extenuation n. [latin tenuis thin]

    Exterior —adj. 1 of or on the outer side. 2 coming from outside. —n. 1 outward aspect or surface of a building etc. 2 outward demeanour. 3 outdoor scene in filming. [latin]

    Exterminate v. (-ting) destroy utterly (esp. A living thing). extermination n. Exterminator n. [latin: related to *terminal]

    External —adj. 1 a of or on the outside or visible part. B coming from the outside or an outside source. 2 relating to a country’s foreign affairs. 3 outside the conscious subject (the external world). 4 (of medicine etc.) For use on the outside of the body. 5 for students taking the examinations of a university without attending it. —n. (in pl.) 1 outward features or aspect. 2 external circumstances. 3 inessentials. externality n. Externally adv. [latin externus outer]

    Externalize v. (also -ise) (-zing or -sing) give or attribute external existence to.

    externalization n.

    Extinct adj. 1 that has died out. 2 a no longer burning. B (of a volcano) that no longer erupts. 3 obsolete. [latin ex(s)tinguo -stinct-quench]

    Extinction n. 1 making or becoming extinct. 2 extinguishing or being extinguished. 3 total destruction or annihilation.

    Extinguish v. 1 cause (a flame, light, etc.) To die out. 2 destroy. 3 terminate. 4 wipe out (a debt). extinguishable adj.

    Extinguisher n. = *fire extinguisher.

    Extirpate v. (-ting) root out; destroy completely. extirpation n. [latin ex(s)tirpo from stirps stem of tree]

    Extol v. (-ll-) praise enthusiastically. [latin tollo raise]

    Extort v. Obtain by coercion. [latin torqueo tort-twist]

    Extortion n. 1 act of extorting, esp. Money. 2 illegal exaction. extortioner n.

    Extortionist n.

    Extortionate adj. (of a price etc.) Exorbitant. extortionately adv.

    Extra —adj. Additional; more than usual or necessary or expected. —adv. 1 more than usually. 2 additionally (was charged extra). —n. 1 extra thing. 2 thing for which an extra charge is made. 3 person engaged temporarily for a minor part in a film. 4 special issue of a newspaper etc. 5 cricket run scored other than from a hit with the bat. [probably from *extraordinary]

    Extra-comb. Form 1 outside, beyond. 2 beyond the scope of. [latin extra outside]

    Extra-comb. Form 1 outside, beyond. 2 beyond the scope of. [latin extra outside]

    Extra cover n. Cricket 1 fielding position on a line between cover-point and mid-off, but beyond these. 2 fielder at this position.

    Extract —v. 1 remove or take out, esp. By effort or force. 2 obtain (money, an admission, etc.) Against a person’s will. 3 obtain (a natural resource) from the earth. 4 select or reproduce for quotation or performance. 5 obtain (juice etc.) By

    pressure, distillation, etc. 6 derive (pleasure etc.). 7 find (the root of a number). —n. 1 short passage from a book etc. 2 preparation containing a concentrated constituent of a substance (malt extract). [latin traho tract-draw]

    Extraction n. 1 extracting or being extracted. 2 removal of a tooth. 3 lineage, descent (of indian extraction). [latin: related to *extract]

    Extractive adj. Of or involving extraction.

    Extractor n. 1 person or machine that extracts. 2 (attrib.) (of a device) that extracts bad air etc.

    Extracurricular adj. Not part of the normal curriculum.

    Extraditable adj. 1 liable to extradition. 2 (of a crime) warranting extradition.

    Extradite v. (-ting) hand over (a person accused or convicted of a crime) to the foreign state etc. In which the crime was committed. extradition n. [french: related to *tradition]

    Extramarital adj. (esp. Of sexual relations) occurring outside marriage. Extramural adj. Additional to normal teaching or studies, esp. For non-resident students.

    Extraneous adj. 1 of external origin. 2 (often foll. By to) a separate from the object to which it is attached etc. B irrelevant, unrelated. [latin extraneus]

    Extraordinary adj. 1 unusual or remarkable. 2 unusually great. 3 (of a meeting, official, etc.) Additional; specially employed. extraordinarily adv. [latin]

    Extrapolate v. (-ting) (also absol.) Calculate approximately from known data etc. (others which lie outside the range of those known). extrapolation n. [from extra-

    interpolate]

    Extrasensory adj. Derived by means other than the known senses, e.g. By telepathy.

    Extraterrestrial —adj. Outside the earth or its atmosphere. —n. (in science fiction) being from outer space.

    Extravagant adj. 1 spending money excessively. 2 excessive; absurd. 3 costing much. extravagance n. Extravagantly adv. [latin vagor wander]

    Extravaganza n. 1 spectacular theatrical or television production. 2 fanciful literary, musical, or dramatic composition. [italian]

    Extreme —adj. 1 of a high, or the highest, degree (extreme danger). 2 severe (extreme measures). 3 outermost. 4 on the far left or right of a political party. 5 utmost; last. —n. 1 (often in pl.) Either of two things as remote or as different as

    possible. 2 thing at either end. 3 highest degree. 4 math. First or last term of a ratio or series. go to extremes take an extreme course of action. In the extreme to an extreme degree. extremely adv. [french from latin]

    Extreme unction n. Last rites in the roman catholic and orthodox churches.

    Extremist n. (also attrib.) Person with extreme views. extremism n.

    Extremity n. (pl. -ies) 1 extreme point; very end. 2 (in pl.) The hands and feet. 3 condition of extreme adversity. [latin: related to *extreme]

    Extricate v. (-ting) (often foll. By from) free or disentangle from a difficulty etc. extricable adj. Extrication n. [latin tricae perplexities]

    Extrinsic adj. 1 not inherent or intrinsic. 2 (often foll. By to) extraneous; not belonging. extrinsically adv. [latin extrinsecus outwardly]

    Extrovert —n. 1 outgoing person. 2 person mainly concerned with external things. —adj. Typical of or with the nature of an extrovert. extroversion n. Extroverted adj. [latin verto turn]

    Extrude v. (-ding) 1 (foll. By from) thrust or force out. 2 shape metal, plastics, etc. By forcing them through a die. extrusion n. Extrusive adj. [latin extrudo -trus-thrust out]

    Exuberant adj. 1 lively, high-spirited. 2 (of a plant etc.) Prolific. 3 (of feelings etc.) Abounding. exuberance n. Exuberantly adv. [latin uber fertile]

    Exude v. (-ding) 1 ooze out. 2 emit (a smell). 3 display (an emotion etc.) Freely. exudation n. [latin sudo sweat]

    Exult v. Be joyful. exultation n. Exultant adj. Exultantly adv. [latin ex(s)ulto from salio salt-leap]

    -ey var. Of *-y2.

    Eye —n. 1 organ of sight. 2 eye characterized by the colour of the iris (has blue eyes). 3 region round the eye (eyes swollen from weeping). 4 (in sing. Or pl.) Sight. 5 particular visual ability (a straight eye). 6 thing like an eye, esp.: a a spot on a peacock’s tail. B a leaf bud of a potato. 7 calm region at the centre of a hurricane etc. 8 hole of a needle. —v. (eyes, eyed, eyeing or eying) (often foll. By up) watch or observe closely, esp. Admiringly or with suspicion. all eyes watching intently. An eye for an eye retaliation in kind. Have an eye for be discerning about. Have one’s eye on wish or plan to procure. Have eyes for be interested in; wish to acquire. Keep an eye on 1 watch. 2 look after. Keep an eye open (or out) (often foll. By for) watch carefully. Keep one’s eyes open (or peeled or skinned) watch out; be on the alert. Make eyes (or sheep’s eyes) (foll. By at) look amorously or flirtatiously at. One in the eye (foll. By for) disappointment or setback. See eye to eye (often foll. By with) agree. Set eyes on see. Up to the (or one’s) eyes in deeply engaged or involved in. With one’s eyes shut (or closed) with little effort. With an eye to with a view to. [old english]

    Eyeball —n. Ball of the eye within the lids and socket. —v. Us slang look or stare (at).

    Eyeball to eyeball adv. Colloq. Confronting closely.

    Eyeball to eyeball adv. Colloq. Confronting closely.

    Eyebath n. Small vessel for applying lotion etc. To the eye.

    Eyebright n. Plant used as a remedy for weak eyes.

    Eyebrow n. Line of hair on the ridge above the eye-socket. raise one’s eyebrows show surprise, disbelief, or disapproval.

    Eye-catching adj. Colloq. Striking.

    Eyeful n. (pl. -s) colloq. 1 (esp. In phr. Get an eyeful (of)) good look; as much as the eye can take in. 2 visually striking person or thing. 3 thing thrown or blown into the eye.

    Eyeglass n. Lens to assist defective sight.

    Eyehole n. Hole to look through.

    Eyelash n. Each of the hairs growing on the edges of the eyelids.

    Eyelet n. 1 small hole for string or rope etc. To pass through. 2 metal ring strengthening this. [french oillet from latin oculus]

    Eyelid n. Either of the folds of skin closing to cover the eye.

    Eye-liner n. Cosmetic applied as a line round the eye.

    Eye-opener n. Colloq. Enlightening experience; unexpected revelation.

    Eyepiece n. Lens or lenses to which the eye is applied at the end of an optical instrument.

    Eye-shade n. Device to protect the eyes, esp. From strong light.

    Eye-shadow n. Coloured cosmetic applied to the eyelids.

    Eyesight n. Faculty or power of seeing.

    Eyesore n. Ugly thing.

    Eye strain n. Fatigue of the eye muscles.

    Eye-tooth n. Canine tooth in the upper jaw just under the eye.

    Eyewash n. 1 lotion for the eyes. 2 slang nonsense; insincere talk.

    Eyewitness n. Person who saw a thing happen and can tell of it.

    Eyrie n. 1 nest of a bird of prey, esp. An eagle, built high up. 2 house etc. Perched high up. [french aire lair, from latin agrum piece of ground]

    Espresso n. (also expresso) (pl. -s) strong black coffee made under steam pressure. [italian, = pressed out]

    Esprit n. Sprightliness, wit. esprit de corps devotion to and pride in one’s group. [french: related to *spirit]

    Espy v. (-ies, -ied) catch sight of. [french: related to *spy]

    Esq. Abbr. Esquire.

    -esque suffix forming adjectives meaning ‘in the style of’ or ‘resembling’ (kafkaesque). [french from latin -iscus]

    Esquire n. 1 (usu. As abbr. Esq.) Title added to a man’s surname when no other title is used, esp. As a form of address for letters. 2 archaic = *squire. [french from latin scutum shield]

    -ess suffix forming nouns denoting females (actress; lioness). [greek -issa]

    Essay —n. 1 short piece of writing on a given subject. 2 (often foll. By at, in) formal attempt. —v. Attempt. essayist n. [latin exigo weigh: cf. *assay]

    Essence n. 1 fundamental nature; inherent characteristics. 2 a extract got by distillation etc. B perfume. of the essence indispensable. In essence fundamentally. [latin esse be]

    Essential —adj. 1 necessary; indispensable. 2 of or constituting the essence of a person or thing. —n. (esp. In pl.) Basic or indispensable element or thing. essentially adv. [latin: related to *essence]

    Essential oil n. Volatile oil derived from a plant etc. With its characteristic odour.

    -est suffix forming the superlative of adjectives (widest; nicest; happiest) and adverbs (soonest). [old english]

    Establish v. 1 set up (a business, system, etc.) On a permanent basis. 2 (foll. By in) settle (a person or oneself) in some capacity. 3 (esp. As established adj.) A achieve permanent acceptance for (a custom, belief, etc.). B place (a fact etc.) Beyond dispute. [latin stabilio make firm]

    Established church n. The church recognized by the state.

    Establishment n. 1 establishing or being established. 2 a business organization or public institution. B place of business. C residence. 3 a staff of an organization. B household. 4 organized body permanently maintained. 5 church system organized by law. 6 (the establishment) social group with authority or influence and resisting change.

    Estate n. 1 property consisting of much land and usu. A large house. 2 modern residential or industrial area with an integrated design or purpose. 3 person’s assets and liabilities, esp. At death. 4 property where rubber, tea, grapes, etc., are cultivated. 5 order or class forming (or regarded as) part of the body politic. 6 archaic or literary state or position in life (the estate of holy matrimony). the three estates lords spiritual (the heads of the church), lords temporal (the peerage), and the commons. [french estat, from latin sto stat-stand]

    Estate agent n. Person whose business is the sale or lease of buildings and land on behalf of others.

    Estate car n. Car with a continuous area for rear passengers and luggage.

    Estate duty n. Hist. Death duty.

    Usage estate duty was replaced in 1975 by capital transfer tax and in 1986 by inheritance tax.

    Esteem —v. 1 (usu. In passive) have a high regard for. 2 formal consider (esteemed it an honour). —n. High regard; favour. [latin: related to *estimate]

    Ester n. Chem. A compound produced by replacing the hydrogen of an acid by an organic radical. [german]

    Estimable adj. Worthy of esteem; admirable. [latin: related to *esteem]

    Estimate —n. 1 approximate judgement, esp. Of cost, value, size, etc. 2 statement of approximate charge for work to be undertaken. —v. (-ting) (also absol.) 1 form an estimate or opinion of. 2 (foll. By that) make a rough calculation. 3 (often foll. By at) form an estimate; adjudge. estimator n. [latin aestimo fix the price of]

    Estimation n. 1 estimating. 2 judgement of worth. [latin: related to *estimate]

    Estonian —n. 1 a native or national of estonia in eastern europe. B person of estonian descent. 2 language of estonia. —adj. Of estonia, its people, or language.

    Estrange v. (-ging) 1 (usu. In passive; often foll. By from) alienate; make hostile or indifferent. 2 (as estranged adj.) (of a husband or wife) no longer living with his or her spouse. estrangement n. [latin: related to *strange]

    Estrogen n. (brit. Oestrogen) 1 sex hormone developing and maintaining female characteristics of the body. 2 this produced artificially for use in medicine. [greek oistros frenzy, *-gen]

    Estrus n. (also estrum, brit. Oestrus) recurring period of sexual receptivity in many female mammals oestrous adj. [greek oistros frenzy]

    Estuary n. (pl. -ies) wide tidal river mouth. [latin aestus tide]

    Eta abbr. Estimated time of arrival.

    Eta n. Seventh letter of the greek alphabet (h, h). [greek]

    Et al. Abbr. And others. [latin et alii]

    Etc. Abbr. = *et cetera.

    Et cetera (also etcetera) —adv. 1 and the rest. 2 and so on. —n. (in pl.) The usual extras. [latin]

    Etch v. 1 a reproduce (a picture etc.) By engraving it on a metal plate with acid (esp. To print copies). B engrave (a plate) in this way. 2 practise this craft. 3 (foll. By on, upon) impress deeply (esp. On the mind). etcher n. [dutch etsen]

    Etching n. 1 print made from an etched plate. 2 art of producing these plates.

    Eternal adj. 1 existing always; without an end or (usu.) Beginning. 2 unchanging. 3 colloq. Constant; too frequent (eternal nagging). eternally adv. [latin aeternus]

    Eternal triangle n. Two people of one sex and one person of the other involved in a complex emotional relationship.

    Eternity n. (pl. -ies) 1 infinite (esp. Future) time. 2 endless life after death. 3 being eternal. 4 colloq. (often prec. By an) a very long time. [latin: related to *eternal]

    Eternity ring n. Finger-ring esp. Set with gems all round.

    -eth var. Of *-th.

    Ethanal n. = *acetaldehyde.

    Ethane n. Gaseous hydrocarbon of the alkane series. [from *ether]

    Ether n. 1 chem. Colourless volatile organic liquid used as an anaesthetic or solvent. 2 clear sky; upper regions of the air. 3 hist. A medium formerly assumed to permeate all space. B medium through which electromagnetic waves were formerly thought to be transmitted. [greek aitho burn]

    Ethereal adj. 1 light, airy. 2 highly delicate, esp. In appearance. 3 heavenly. ethereally adv. [greek: related to *ether]

    Ethic —n. Set of moral principles (the quaker ethic). —adj. = ethical. [greek:

    related to ethos]

    Ethical adj. 1 relating to morals, esp. As concerning human conduct. 2 morally correct. 3 (of a drug etc.) Not advertised to the general public, and usu. Available only on prescription. ethically adv.

    Ethics n.pl. (also treated as sing.) 1 moral philosophy. 2 a moral principles. B set

    Ethics n.pl. (also treated as sing.) 1 moral philosophy. 2 a moral principles. B set of these.

    Ethiopian —n. 1 native or national of ethiopia in ne africa. 2 person of ethiopian descent. —adj. Of ethiopia.

    Ethnic adj. 1 a (of a social group) having a common national or cultural tradition. B (of music, clothing, etc.) Inspired by or resembling those of an exotic people. 2 denoting origin by birth or descent rather than nationality (ethnic turks). ethnically adv. [greek ethnos nation]

    Ethnology n. The comparative study of peoples. ethnological adj. Ethnologist n.

    Ethos n. Characteristic spirit or attitudes of a community etc. [greek ethos character]

    Ethyl n. (attrib.) A radical derived from ethane, present in alcohol and ether. [german: related to *ether]

    Ethylene n. A hydrocarbon of the alkene series.

    Etiolate v. (-ting) 1 make (a plant) pale by excluding light. 2 give a sickly colour to (a person). etiolation n. [latin stipula straw]

    Etiology n. (brit. Aetiology) study of causation or of the causes of disease. aetiological adj. [greek aitia cause]

    aetiological adj. [greek aitia cause]

    Etiquette n. Conventional rules of social behaviour or professional conduct. [french: related to *ticket]

    Etruscan —adj. Of ancient etruria in italy. —n. 1 native of etruria. 2 language of etruria. [latin etruscus]

    Et seq. Abbr. (also et seqq.) And the following (pages etc.). [latin et sequentia]

    -ette suffix forming nouns meaning: 1 small (kitchenette). 2 imitation or substitute (flannelette). 3 female (usherette). [french]

    Étude n. = *study n. 6. [french, = study]

    Etymology n. (pl. -ies) 1 a derivation and development of a word in form and meaning. B account of these. 2 the study of word origins. etymological adj. Etymologist n. [greek etumos true]

    Eu symb. Europium.

    Eu-comb. Form well, easily. [greek]

    Eucalyptus n. (pl. -tuses or -ti) (also eucalypt pl. -s) 1 tall evergreen australasian tree. 2 its oil, used as an antiseptic etc. [from *eu-, greek kaluptos covered]

    Eucharist n. 1 christian sacrament in which consecrated bread and wine are consumed. 2 consecrated elements, esp. The bread. eucharistic adj. [greek, = thanksgiving]

    Eugenics n.pl. (also treated as sing.) Improvement of the qualities of a race by control of inherited characteristics. eugenic adj. Eugenically adv. [from *eu-, greek gen-produce]

    Eukaryote n. Organism consisting of a cell or cells in which the genetic material is contained within a distinct nucleus. eukaryotic adj. [from *eu-, karyo-from greek karuon kernel, -ote as in *zygote]

    Eulogize v. (also -ise) (-zing or -sing) praise in speech or writing. eulogistic adj.

    Eulogy n. (pl. -ies) 1 speech or writing in praise of a person. 2 expression of praise. [latin from greek]

    Eunuch n. Castrated man, esp. One formerly employed at an oriental harem or court. [greek, = bedchamber attendant]

    Euphemism n. 1 mild or vague expression substituted for a harsher or more direct one (e.g. Pass over for die). 2 use of such expressions. euphemistic adj. Euphemistically adv. [greek pheme speaking]

    Euphonium n. Brass instrument of the tuba family. [related to *euphony]

    Euphony n. (pl. -ies) 1 pleasantness of sound, esp. Of a word or phrase. 2 pleasant sound. euphonious adj. [greek phone sound]

    Euphoria n. Intense feeling of well-being and excitement. euphoric adj. [greek phero bear]

    Eurasian —adj. 1 of mixed european and asian parentage. 2 of europe and asia.

    —n. Eurasian person.

    Eureka int. I have found it! (announcing a discovery etc.). [greek heureka]

    Euro-comb. Form europe, european. [abbreviation]

    Eurodollar n. Dollar held in a bank outside the us.

    European —adj. 1 of or in europe. 2 originating in, native to, or characteristic of europe. —n. 1 a native or inhabitant of europe. B person descended from natives of europe. 2 person favouring european integration. [greek europe europe]

    Europium n. Metallic element of the lanthanide series. [from the name europe]

    Eustachian tube n. Tube from the pharynx to the cavity of the middle ear. [eustachio, name of an anatomist]

    Euthanasia n. Bringing about of a gentle death in the case of incurable and painful disease. [greek thanatos death]

    Ev abbr. Electronvolt.

    Evacuate v. (-ting) 1 a remove (people) from a place of danger. B empty (a place) in this way. 2 make empty. 3 (of troops) withdraw from (a place). 4 empty (the bowels etc.). evacuation n. [latin vacuus empty]

    Evacuee n. Person evacuated.

    Evade v. (-ding) 1 a escape from, avoid, esp. By guile or trickery. B avoid doing (one’s duty etc.). C avoid answering (a question). 2 avoid paying (tax). [latin evado escape]

    Evaluate v. (-ting) 1 assess, appraise. 2 find or state the number or amount of. evaluation n. [french: related to *value]

    Evanesce v. (-cing) literary fade from sight. [latin vanus empty]

    Evanescent adj. Quickly fading. evanescence n.

    Evangelical —adj. 1 of or according to the teaching of the gospel. 2 of the protestant school maintaining the doctrine of salvation by faith. —n. Member of

    protestant school maintaining the doctrine of salvation by faith. —n. Member of this. evangelicalism n. Evangelically adv. [greek: related to *eu-, *angel]

    Evangelism n. Preaching or spreading of the gospel.

    Evangelist n. 1 writer of one of the four gospels. 2 preacher of the gospel.

    evangelistic adj.

    Evangelize v. (also -ise) (-zing or -sing) 1 (also absol.) Preach the gospel to. 2 convert to christianity. evangelization n.

    Evaporate v. (-ting) 1 turn from solid or liquid into vapour. 2 (cause to) lose moisture as vapour. 3 (cause to) disappear. evaporable adj. Evaporation n. [latin: related to *vapour]

    Evaporated milk n. Unsweetened milk concentrated by evaporation.

    Evasion n. 1 evading. 2 evasive answer. [latin: related to *evade]

    Evasive adj. 1 seeking to evade. 2 not direct in one’s answers etc. evasively adv.

    Evasiveness n.

    Eve n. 1 evening or day before a festival etc. (christmas eve; eve of the funeral). 2 time just before an event (eve of the election). 3 archaic evening. [= *even2]

    Even1 —adj. (evener, evenest) 1 level; smooth. 2 a uniform in quality; constant. B equal in amount or value etc. C equally balanced. 3 (of a person’s temper etc.) Equable, calm. 4 a (of a number) divisible by two without a remainder. B bearing such a number (no parking on even dates). C not involving fractions; exact (in even dozens). —adv. 1 inviting comparison of the assertion, negation, etc., with an implied one that is less strong or remarkable (never even opened [let alone read] the letter; ran even faster [not just as fast as before]). 2 introducing an extreme case (even you must realize it). —v. (often foll. By up) make or become even. even now 1 now as well as before. 2 at this very moment. Even so nevertheless. Even though despite the fact that. Get (or be) even with have one’s revenge on. evenly adv. Evenness n. [old english]

    Even2 n. Poet. Evening. [old english]

    Even chance n. Equal chance of success or failure.

    Even-handed adj. Impartial.

    Evening n. End part of the day, esp. From about 6 p.m. To bedtime. [old english:

    related to *even2]

    Evening dress n. Formal dress for evening wear.

    Evening primrose n. Plant with pale-yellow flowers that open in the evening.

    Evening star n. Planet, esp. Venus, conspicuous in the west after sunset.

    Even money n. Betting odds offering the gambler the chance of winning the amount staked.

    Evens n.pl. = *even money.

    Evensong n. Service of evening prayer in the church of england. [from *even2]

    Event n. 1 thing that happens. 2 fact of a thing’s occurring. 3 item in a (esp. Sports) programme. at all events (or in any event) whatever happens. In the event as it turns (or turned) out. In the event of if (a specified thing) happens. In the event that if it happens that. [latin venio vent-come]

    Usage the phrase in the event that is considered awkward by some people. It can usually be avoided by rephrasing, e.g. In the event that it rains can be replaced by in the event of rain.

    Eventful adj. Marked by noteworthy events. eventfully adv.

    Eventide n. Archaic or poet. = *evening. [related to *even2]

    Eventing n. Participation in equestrian competitions, esp. Dressage and showjumping. [see *event 3]

    Eventual adj. Occurring in due course, ultimate. eventually adv. [from *event]

    Eventual adj. Occurring in due course, ultimate. eventually adv. [from *event]

    Eventuality n. (pl. -ies) possible event or outcome.

    Eventuate v. (-ting) (often foll. By in) result.

    Ever adv. 1 at all times; always (ever hopeful; ever after). 2 at any time (have you ever smoked?; nothing ever happens). 3 (used for emphasis) in any way; at all (how ever did you do it?). 4 (in comb.) Constantly (ever-present). 5 (foll. By so, such) colloq. Very; very much (ever so easy; thanks ever so). did you ever? Colloq. Did you ever hear or see the like? Ever since throughout the period since. [old english]

    Usage when ever is used with a question word for emphasis it is written separately (see sense 2). When used with a relative pronoun or adverb to give it indefinite or general force, ever is written as one word with the relative pronoun or adverb, e.g. However it’s done, it’s difficult.

    Evergreen —adj. Retaining green leaves all year round. —n. Evergreen plant.

    Everlasting —adj. 1 lasting for ever or for a long time. 2 (of flowers) keeping their shape and colour when dried. —n. 1 eternity. 2 everlasting flower.

    Evermore adv. For ever; always.

    Every adj. 1 each single (heard every word). 2 each at a specified interval in a series (comes every four days). 3 all possible (every prospect of success). every bit as colloq. (in comparisons) quite as. Every now and again (or then) from time

    bit as colloq. (in comparisons) quite as. Every now and again (or then) from time to time. Every other each second in a series (every other day). Every so often occasionally. [old english: related to *ever, *each]

    Everybody pron. Every person.

    Everyday attrib. Adj. 1 occurring every day. 2 used on ordinary days. 3 commonplace.

    Everyman n. Ordinary or typical human being. [name of a character in a 15th-c. Morality play]

    Everyone pron. Everybody.

    Every one n. Each one.

    Everything pron. 1 all things. 2 most important thing (speed is everything).

    Everywhere adv. 1 in every place. 2 colloq. In many places.

    Evict v. Expel (a tenant etc.) By legal process. eviction n. [latin evinco evict-conquer]

    Evidence —n. 1 (often foll. By for, of) available facts, circumstances, etc. Indicating whether or not a thing is true or valid. 2 law a information tending to prove a fact or proposition. B statements or proofs admissible as testimony in a lawcourt. —v. (-cing) be evidence of. in evidence conspicuous. Queen’s (or king’s or state’s) evidence law evidence for the prosecution given by a participant in the crime at issue. [latin video see]

    Evident adj. Plain or obvious; manifest. [latin: related to *evidence]

    Evidential adj. Of or providing evidence.

    Evidently adv. 1 seemingly; as it appears. 2 as shown by evidence.

    Evil —adj. 1 morally bad; wicked. 2 harmful. 3 disagreeable (evil temper). —n. 1 evil thing. 2 wickedness. evilly adv. [old english]

    Evildoer n. Sinner. evildoing n.

    Evil eye n. Gaze that is superstitiously believed to cause harm.

    Evince v. (-cing) indicate, display (a quality, feeling, etc.). [latin: related to *evict]

    Eviscerate v. (-ting) disembowel. evisceration n. [latin: related to *viscera]

    Evocative adj. Evoking (esp. Feelings or memories). evocatively adv.

    Evocativeness n.

    Evoke v. (-king) inspire or draw forth (memories, a response, etc.). evocation n. [latin voco call]

    Evolution n. 1 gradual development. 2 development of species from earlier forms, as an explanation of their origins. 3 unfolding of events etc. (evolution of the plot). 4 change in the disposition of troops or ships. evolutionary adj. [latin: related to *evolve]

    Evolutionist n. Person who regards evolution as explaining the origin of species.

    Evolve v. (-ving) 1 develop gradually and naturally. 2 devise (a theory, plan, etc.). 3 unfold. 4 give off (gas, heat, etc.). [latin volvo volut-roll]

    Ewe n. Female sheep. [old english]

    Ewer n. Water-jug with a wide mouth. [latin aqua water]

    Ex1 prep. (of goods) sold from (ex-works). [latin, = out of]

    Ex2 n. Colloq. Former husband or wife. [see *ex-1 2]

    Ex-1 prefix (also before some consonants e-, ef-before f) 1 forming verbs meaning: a out, forth (exclude; exit). B upward (extol). C thoroughly (excruciate). D bring into a state (exasperate). E remove or free from (expatriate; exonerate). 2 forming nouns from titles of office, status, etc., meaning ‘formerly’ (ex-president; ex-wife). [latin from ex out of]

    Ex-2 prefix out (exodus). [greek]

    Exacerbate v. (-ting) 1 make (pain etc.) Worse. 2 irritate (a person). exacerbation n. [latin acerbus bitter]

    Exact —adj. 1 accurate; correct in all details (exact description). 2 precise. —v. 1 demand and enforce payment of (money etc.). 2 demand; insist on; require. exactness n. [latin exigo exact-require]

    Exacting adj. 1 making great demands. 2 requiring much effort.

    Exaction n. 1 exacting or being exacted. 2 a illegal or exorbitant demand; extortion. B sum or thing exacted.

    Exactitude n. Exactness, precision.

    Exactly adv. 1 precisely. 2 (said in reply) i quite agree.

    Exact science n. A science in which absolute precision is possible.

    Exaggerate v. (-ting) 1 (also absol.) Make (a thing) seem larger or greater etc. Than it really is. 2 increase beyond normal or due proportions (exaggerated politeness). exaggeration n. [latin agger heap]

    Exalt v. 1 raise in rank or power etc. 2 praise highly. 3 (usu. As exalted adj.) Make lofty or noble (exalted aims; exalted style). exaltation n. [latin altus high]

    Exam n. = *examination 3.

    Examination n. 1 examining or being examined. 2 detailed inspection. 3 test of proficiency or knowledge by questions. 4 formal questioning of a witness etc. In court.

    Examine v. (-ning) 1 inquire into the nature or condition etc. Of. 2 look closely at. 3 test the proficiency of. 4 check the health of (a patient). 5 formally question in court. examinee n. Examiner n. [latin examen tongue of a balance]

    Example n. 1 thing characteristic of its kind or illustrating a general rule. 2 person, thing, or piece of conduct, in terms of its fitness to be imitated. 3 circumstance or treatment seen as a warning to others. 4 problem or exercise designed to illustrate a rule. for example by way of illustration. [latin exemplum: related to *exempt]

    Exasperate v. (-ting) irritate intensely. exasperation n. [latin asper rough]

    Ex cathedra adj. & adv. With full authority (esp. Of a papal pronouncement). [latin, = from the chair]

    Excavate v. (-ting) 1 a make (a hole or channel) by digging. B dig out material from (the ground). 2 reveal or extract by digging. 3 (also absol.) Archaeol. Dig systematically to explore (a site). excavation n. Excavator n. [latin excavo: related to *cave]

    Exceed v. 1 (often foll. By by an amount) be more or greater than. 2 go beyond or do more than is warranted by (a set limit, esp. Of one’s authority, instructions, or rights). 3 surpass. [latin excedo -cess-go beyond]

    Exceedingly adv. Extremely.

    Excel v. (-ll-) 1 surpass. 2 be pre-eminent. [latin excello be eminent]

    Excellence n. Outstanding merit or quality. [latin: related to *excel]

    Excellency n. (pl. -ies) (usu. Prec. By your, his, her, their) title used in addressing or referring to certain high officials.

    Excellent adj. Extremely good.

    Excentric var. Of *eccentric (in technical senses).

    Except —v. Exclude from a general statement, condition, etc. —prep. (often foll. By for) not including; other than (all failed except him; is all right except that it is too long). —conj. Archaic unless (except he be born again). [latin excipio – cept-take out]

    Excepting prep. = *except prep.

    Usage excepting should be used only after not and always; otherwise, except should be used.

    Exception n. 1 excepting or being excepted. 2 thing that has been or will be excepted. 3 instance that does not follow a rule. take exception (often foll. By to) object. With the exception of except.

    Exceptionable adj. Open to objection.

    Usage exceptionable is sometimes confused with exceptional.

    Exceptional adj. 1 forming an exception; unusual. 2 outstanding. exceptionally adv.

    Usage see note at exceptionable.

    Excerpt —n. Short extract from a book, film, etc. —v. (also absol.) Take excerpts from. excerption n. [latin carpo pluck]

    Excess —n. 1 exceeding. 2 amount by which one thing exceeds another. 3 a overstepping of accepted limits of moderation, esp. In eating or drinking. B (in pl.) Immoderate behaviour. 4 part of an insurance claim to be paid by the insured. —attrib. Adj. Usu. 1 that exceeds a limited or prescribed amount. 2 required as extra payment (excess postage). in (or to) excess exceeding the proper amount or degree.

    Excess baggage n. (also excess luggage) baggage exceeding a weight allowance and liable to an extra charge.

    Excessive adj. Too much or too great. excessively adv.

    Exchange —n. 1 giving of one thing and receiving of another in its place. 2 giving of money for its equivalent in the money of the same or another country. 3 centre where telephone connections are made. 4 place where merchants, bankers, etc. Transact business. 5 a office where information is given or a service provided. B employment office. 6 system of settling debts without the use of money, by bills of exchange. 7 short conversation. —v. (-ging) 1 (often foll. By for) give or receive (one thing) in place of another. 2 give and receive as equivalents. 3 (often foll. By with) make an exchange. in exchange (often foll. By for) as a thing exchanged (for). exchangeable adj. [french: related to *change]

    Exchange rate n. Value of one currency in terms of another.

    Exchequer n. 1 former government department in charge of national revenue. 2 royal or national treasury. 3 money of a private individual or group. [medieval latin scaccarium chessboard]

    latin scaccarium chessboard]

    Usage with reference to sense 1, the functions of this department in the uk now belong to the treasury, although the name formally survives, esp. In the title chancellor of the exchequer.

    Excise1 —n. 1 tax on goods produced or sold within the country of origin. 2 tax on certain licences. —v. (-sing) 1 charge excise on. 2 force (a person) to pay excise. [dutch excijs from romanic: related to latin *census tax]

    Excise2 v. (-sing) 1 remove (a passage from a book etc.). 2 cut out (an organ etc.) By surgery. excision n. [latin excido cut out]

    Excitable adj. Easily excited. excitability n. Excitably adv.

    Excite v. (-ting) 1 a rouse the emotions of (a person). B arouse (feelings etc.). C arouse sexually. 2 provoke (an action etc.). 3 stimulate (an organism, tissue, etc.) To activity. [latin cieo stir up]

    Excitement n. 1 excited state of mind. 2 exciting thing.

    Exciting adj. Arousing great interest or enthusiasm. excitingly adv.

    Exclaim v. 1 cry out suddenly. 2 (foll. By that) utter by exclaiming. [latin:

    related to *claim]

    Exclamation n. 1 exclaiming. 2 word(s) exclaimed. [latin: related to *exclaim]

    Exclamation mark n. Punctuation mark (!) Indicating exclamation.

    Exclamatory adj. Of or serving as an exclamation.

    Exclude v. (-ding) 1 keep out (a person or thing) from a place, group, privilege, etc. 2 remove from consideration (no theory can be excluded). 3 makeimpossible, preclude (excluded all doubt). exclusion n. [latin excludo -clus-shut out]

    Exclusive —adj. 1 excluding other things. 2 (predic.; foll. By of) not including; except for. 3 tending to exclude others, esp. Socially. 4 high-class. 5 not obtainable elsewhere or not published elsewhere. —n. Article etc. Published by only one newspaper etc. exclusively adv. Exclusiveness n. Exclusivity n. [medieval latin: related to *exclude]

    Excommunicate —v. (-ting) officially exclude (a person) from membership and esp. Sacraments of the church. —adj. Excommunicated. —n. Excommunicated person. excommunication n. [latin: related to *common]

    Excoriate v. (-ting) 1 a remove skin from (a person etc.) By abrasion. B strip off (skin). 2 censure severely. excoriation n. [latin corium hide]

    Excrement n. Faeces. excremental adj. [latin: related to *excrete]

    Excrescence n. 1 abnormal or morbid outgrowth on the body or a plant. 2 ugly addition. excrescent adj. [latin cresco grow]

    Excreta n.pl. Faeces and urine. [latin: related to *excrete]

    Excrete v. (-ting) (of an animal or plant) expel (waste matter). excretion n. Excretory adj. [latin cerno cret-sift]

    Excruciating adj. Causing acute mental or physical pain. excruciatingly adv. [latin crucio torment]

    Exculpate v. (-ting) formal (often foll. By from) free from blame; clear of a charge. exculpation n. Exculpatory adj. [latin culpa blame]

    Excursion n. Journey (usu. A day-trip) to a place and back, made for pleasure. [latin excurro run out]

    Excursive adj. Literary digressive.

    Excuse —v. (-sing) 1 try to lessen the blame attaching to (a person, act, or fault). 2 (of a fact) serve as a reason to judge (a person or act) less severely. 3 (often foll. By from) release (a person) from a duty etc. 4 forgive (a fault or offence). 5 (foll. By for) forgive (a person) for (a fault). 6 refl. Leave with apologies. —n. 1 reason put forward to mitigate or justify an offence. 2 apology (made my excuses). be excused be allowed to leave the room etc. Or be absent. Excuse me polite preface to an interruption etc., or to disagreeing. excusable adj. [latin

    causa accusation]

    Ex-directory adj. Not listed in a telephone directory, at one’s own request.

    Execrable adj. Abominable. [latin: related to *execrate]

    Execrate v. (-ting) 1 express or feel abhorrence for. 2 (also absol.) Curse (a person or thing). execration n. [latin exsecror curse: related to *sacred]

    Execute v. (-ting) 1 carry out, perform (a plan, duty etc.). 2 carry out a design for (a product of art or skill). 3 carry out a death sentence on. 4 make (a legal instrument) valid by signing, sealing, etc. [latin sequor follow]

    Execution n. 1 carrying out; performance. 2 technique or style of performance in the arts, esp. Music. 3 carrying out of a death sentence. [latin: related to *execute]

    Executioner n. Official who carries out a death sentence.

    Executive —n. 1 person or body with managerial or administrative responsibility. 2 branch of a government etc. Concerned with executing laws, agreements, etc. —adj. Concerned with executing laws, agreements, etc., or with other administration or management. [medieval latin: related to *execute]

    Executor n. (fem. Executrix) person appointed by a testator to administer his or

    her will. executorial adj.

    Exegesis n. (pl. Exegeses) critical explanation of a text, esp. Of scripture. exegetic adj. [greek hegeomai lead]

    Exemplar n. 1 model. 2 typical or parallel instance. [latin: related to *example]

    Exemplary adj. 1 fit to be imitated; outstandingly good. 2 serving as a warning. 3 illustrative. [latin: related to *example]

    Exemplify v. (-ies, -ied) 1 illustrate by example. 2 be an example of.

    exemplification n.

    Exempt —adj. (often foll. By from) free from an obligation or liability etc. Imposed on others. —v. (foll. By from) make exempt. exemption n. [latin eximo -empt-take out]

    Exercise —n. 1 activity requiring physical effort, done to sustain or improve health. 2 mental or spiritual activity, esp. As practice to develop a faculty. 3 task devised as exercise. 4 a use or application of a mental faculty, right, etc. B practice of an ability, quality, etc. 5 (often in pl.) Military drill or manoeuvres. —v. (-sing) 1 use or apply (a faculty, right, etc.). 2 perform (a function). 3 a take (esp. Physical) exercise. B provide (an animal) with exercise. 4 a tax the powers of. B perplex, worry. [latin exerceo keep busy]

    Exert v. 1 bring to bear, use (a quality, force, influence, etc.). 2 refl. (often foll. By for, or to + infin.) Use one’s efforts or endeavours; strive. exertion n. [latin

    exsero exsert-put forth]

    Exert v. 1 bring to bear, use (a quality, force, influence, etc.). 2 refl. (often foll. By for, or to + infin.) Use one’s efforts or endeavours; strive. exertion n. [latin exsero exsert-put forth]

    Exeunt v. (as a stage direction) (actors) leave the stage. [latin: related to *exit]

    Exfoliate v. (-ting) 1 come off in scales or layers. 2 throw off layers of bark. exfoliation n. [latin folium leaf]

    Ex gratia —adv. As a favour; not from (esp. Legal) obligation. —attrib. Adj. Granted on this basis. [latin, = from favour]

    Exhale v. (-ling) 1 breathe out. 2 give off or be given off in vapour. exhalation n. [french from latin halo breathe]

    Exhaust —v. 1 consume or use up the whole of. 2 (often as exhausted adj. Or exhausting adj.) Tire out. 3 study or expound (a subject) completely. 4 (often foll. By of) empty (a vessel etc.) Of its contents. —n. 1 waste gases etc. Expelled from an engine after combustion. 2 (also exhaust-pipe) pipe or system by which these are expelled. 3 process of expulsion of these gases. exhaustible adj. [latin haurio haust-drain]

    Exhaustion n. 1 exhausting or being exhausted. 2 total loss of strength.

    Exhaustive adj. Thorough, comprehensive. exhaustively adv. Exhaustiveness n.

    Exhibit —v. (-t-) 1 show or reveal, esp. Publicly. 2 display (a quality etc.). —n. Item displayed, esp. In an exhibition or as evidence in a lawcourt. exhibitor n. [latin exhibeo -hibit-]

    Exhibition n. 1 display (esp. Public) of works of art etc. 2 exhibiting or being exhibited. 3 scholarship, esp. From the funds of a school, college, etc.

    Exhibitioner n. Student who has been awarded an exhibition.

    Exhibitionism n. 1 tendency towards attention-seeking behaviour. 2 psychol.

    Compulsion to display one’s genitals in public. exhibitionist n.

    Exhilarate v. (often as exhilarating adj. Or exhilarated adj.) Enliven, gladden; raise the spirits of. exhilaration n. [latin hilaris cheerful]

    Exhort v. (often foll. By to + infin.) Urge strongly or earnestly. exhortation n. Exhortative adj. Exhortatory adj. [latin exhortor encourage]

    Exhume v. (-ming) dig up (esp. A buried corpse). exhumation n. [latin humus ground]

    Exigency n. (pl. -ies) (also exigence) 1 urgent need or demand. 2 emergency. exigent adj. [latin exigo *exact]

    Exiguous adj. Scanty, small. exiguity n. [latin]

    Exile —n. 1 expulsion from one’s native land or (internal exile) native town etc. 2 long absence abroad. 3 exiled person. —v. (-ling) send into exile. [french from latin]

    Exist v. 1 have a place in objective reality. 2 (of circumstances etc.) Occur; be found. 3 live with no pleasure. 4 continue in being. 5 live. [latin existo]

    Existence n. 1 fact or manner of being or existing. 2 continuance in life or being.

    3 all that exists. existent adj.

    Existential adj. 1 of or relating to existence. 2 philos. Concerned with existence, esp. With human existence as viewed by existentialism. existentially adv.

    Existentialism n. Philosophical theory emphasizing the existence of the individual as a free and self-determining agent. existentialist n. & adj.

    Exit —n. 1 passage or door by which to leave a room etc. 2 act or right of going out. 3 place where vehicles can leave a motorway etc. 4 actor’s departure from the stage. —v. (-t-) 1 go out of a room etc. 2 leave the stage (also as a direction: exit macbeth). [latin exeo exit-go out]

    Exit poll n. Poll of people leaving a polling-station, asking how they voted.

    Exo-comb. Form external. [greek exo outside]

    Exocrine adj. (of a gland) secreting through a duct. [greek krino sift]

    Exodus n. 1 mass departure. 2 (exodus) biblical departure of the israelites from egypt. [greek hodos way]

    Ex officio adv. & attrib. Adj. By virtue of one’s office. [latin]

    Exonerate v. (-ting) (often foll. By from) free or declare free from blame etc. exoneration n. [latin onus oner-burden]

    Exorbitant adj. (of a price, demand, etc.) Grossly excessive. [latin: related to *orbit]

    Exorcize v. (also -ise) (-zing or -sing) 1 expel (a supposed evil spirit) by prayers etc. 2 (often foll. By of) free (a person or place) in this way. exorcism n. Exorcistn. [greek horkos oath]

    Exordium n. (pl. -s or -dia) introductory part, esp. Of a discourse or treatise. [latin exordior begin]

    Exotic —adj. 1 introduced from a foreign country; not native. 2 strange or unusual. —n. Exotic person or thing. exotically adv. [greek exo outside]

    Exotica n.pl. Strange or rare objects.

    Exotica n.pl. Strange or rare objects.

    Expand v. 1 increase in size or importance. 2 (often foll. By on) give a fuller account. 3 become more genial. 4 set or write out in full. 5 spread out flat. expandable adj. [latin pando pans-spread]

    Expanse n. Wide continuous area of land, space, etc.

    Expansible adj. That can be expanded.

    Expansion n. 1 expanding or being expanded. 2 enlargement of the scale or scope of a business.

    Expansionism n. Advocacy of expansion, esp. Of a state’s territory. expansionist n. & adj.

    Expansive adj. 1 able or tending to expand. 2 extensive. 3 (of a person etc.) Effusive, open. expansively adv. Expansiveness n.

    Expat n. & adj. Colloq. Expatriate. [abbreviation]

    Expatiate v. (-ting) (usu. Foll. By on, upon) speak or write at length. expatiation n. Expatiatory adj. [latin spatium *space]

    Expatriate —adj. 1 living abroad. 2 exiled. —n. Expatriate person. —v. (-ting) 1 expel (a person) from his or her native country. 2 refl. Renounce one’s citizenship. expatriation n. [latin patria native land]

    Expect v. 1 a regard as likely. B look for as appropriate or one’s due (i expect cooperation). 2 colloq. Think, suppose. be expecting colloq. Be pregnant (with). [latin specto look]

    Expectancy n. (pl. -ies) 1 state of expectation. 2 prospect. 3 (foll. By of) prospective chance.

    Expectant adj. 1 hopeful, expecting. 2 having an expectation. 3 pregnant.

    expectantly adv.

    Expectation n. 1 expecting or anticipation. 2 thing expected. 3 (foll. By of) probability of an event. 4 (in pl.) One’s prospects of inheritance.

    Expectorant —adj. Causing expectoration. —n. Expectorant medicine.

    Expectorate v. (-ting) (also absol.) Cough or spit out (phlegm etc.). expectoration n. [latin pectus pector-breast]

    Expedient —adj. Advantageous; advisable on practical rather than moral grounds. —n. Means of attaining an end; resource. expedience n. Expediency n. [related to *expedite]

    Expedite v. (-ting) 1 assist the progress of. 2 accomplish (business) quickly. [latin expedio from pes ped-foot]

    Expedition n. 1 journey or voyage for a particular purpose, esp. Exploration. 2 people etc. Undertaking this. 3 speed. [latin: related to *expedite]

    Expeditionary adj. Of or used in an expedition.

    Expeditious adj. Acting or done with speed and efficiency.

    Expel v. (-ll-) (often foll. By from) 1 deprive (a person) of membership etc. Of a school, society, etc. 2 force out, eject. 3 order or force to leave a building etc. [latin pello puls-drive]

    Expend v. Spend or use up (money, time, etc.). [latin pendo pens-weigh]

    Expendable adj. That may be sacrificed or dispensed with; not worth preserving or saving.

    Expenditure n. 1 spending or using up. 2 thing (esp. Money) expended.

    Expense n. 1 cost incurred; payment of money. 2 (usu. In pl.) A costs incurred in doing a job etc. B amount paid to reimburse this. 3 thing on which money is spent. at the expense of so as to cause loss or harm to; costing. [latin expensa: related to *expend]

    Expense account n. List of an employee’s expenses payable by the employer.

    Expensive adj. Costing or charging much. expensively adv. Expensiveness n.

    Experience —n. 1 observation of or practical acquaintance with facts or events. 2 knowledge or skill resulting from this. 3 event or activity participated in or observed (a rare experience). —v. (-cing) 1 have experience of; undergo. 2 feel. [latin experior -pert-try]

    Experienced adj. 1 having had much experience. 2 skilled from experience (experienced driver).

    Experiential adj. Involving or based on experience. experientially adv.

    Experiment —n. Procedure adopted in the hope of success, or for testing a hypothesis etc., or to demonstrate a known fact. —v. (often foll. By on, with) make an experiment. experimentation n. Experimenter n. [latin: related to *experience]

    Experimental adj. 1 based on or making use of experiment. 2 used in experiments. experimentalism n. Experimentally adv.

    Expert —adj. 1 (often foll. By at, in) having special knowledge of or skill in a subject. 2 (attrib.) Involving or resulting from this (expert advice). —n. (often foll. By at, in) person with special knowledge or skill. expertly adv. [latin: related to *experience]

    Expertise n. Expert skill, knowledge, or judgement. [french]

    Expiate v. (-ting) pay the penalty for or make amends for (wrongdoing). expiable adj. Expiation n. Expiatory adj. [latin expio: related to *pious]

    Expire v. (-ring) 1 (of a period of time, validity, etc.) Come to an end. 2 cease to be valid. 3 die. 4 (also absol.) Breathe out (air etc.). expiration n. Expiratory adj. (in sense 4). [latin spirare breathe]

    Expiry n. End of validity or duration.

    Explain v. 1 a make clear or intelligible (also absol.: let me explain). B make known in detail. 2 (foll. By that) say by way of explanation. 3 account for (one’s conduct etc.). explain away minimize the significance of by explanation. Explain oneself 1 make one’s meaning clear. 2 give an account of one’s motives or conduct. [latin explano from planus flat]

    Explanation n. 1 explaining. 2 statement or circumstance that explains something.

    Explanatory adj. Serving or designed to explain.

    Expletive n. Swear-word or exclamation. [latin expleo fill out]

    Explicable adj. That can be explained.

    Explicate v. (-ting) 1 develop the meaning of (an idea etc.). 2 explain (esp. A literary text). explication n. [latin explico -plicat-unfold]

    Explicit adj. 1 expressly stated, not merely implied; stated in detail. 2 definite. 3 outspoken. explicitly adv. Explicitness n. [latin: related to *explicate]

    Explode v. (-ding) 1 a expand suddenly with a loud noise owing to a release of internal energy. B cause (a bomb etc.) To explode. 2 give vent suddenly to emotion, esp. Anger. 3 (of a population etc.) Increase suddenly or rapidly. 4 show (a theory etc.) To be false or baseless. 5 (as exploded adj.) (of a drawing etc.) Showing the components of a mechanism somewhat separated but in the normal relative positions. [latin explodo -plos-hiss off the stage]

    Exploit —n. Daring feat. —v. 1 make use of (a resource etc.). 2 usu. Derog. Utilize or take advantage of (esp. A person) for one’s own ends. exploitation n. Exploitative adj. Exploiter n. [latin: related to *explicate]

    Explore v. (-ring) 1 travel through (a country etc.) To learn about it. 2 inquire into. 3 surgery examine (a part of the body) in detail. exploration n. Exploratory adj. Explorer n. [latin exploro search out]

    Explosion n. 1 exploding. 2 loud noise caused by this. 3 sudden outbreak of feeling. 4 rapid or sudden increase. [latin: related to *explode]

    Explosive —adj. 1 able, tending, likely to explode. 2 likely to cause a violent

    outburst etc.; dangerously tense. —n. Explosive substance. explosiveness n.

    Expo n. (also expo) (pl. -s) large international exhibition. [abbreviation of *exposition 4]

    Exponent n. 1 person who promotes an idea etc. 2 practitioner of an activity, profession, etc. 3 person who explains or interprets something. 4 type or representative. 5 raised symbol beside a numeral indicating how many of the number are to be multiplied together (e.g. 23 = 2 x 2 x 2). [latin expono *expound]

    Exponential adj. 1 of or indicated by a mathematical exponent. 2 (of an increase etc.) More and more rapid.

    Export —v. Sell or send (goods or services) to another country. —n. 1 exporting. 2 a exported article or service. B (in pl.) Amount exported. exportation n. Exporter n. [latin porto carry]

    Expose v. (-sing) (esp. As exposed adj.) 1 leave uncovered or unprotected, esp. From the weather. 2 (foll. By to) a put at risk of. B subject to (an influence etc.). 3 photog. Subject (a film) to light, esp. By operation of a camera. 4 reveal the identity or fact of. 5 exhibit, display. expose oneself display one’s body, esp. One’s genitals, indecently in public. [latin pono put]

    Exposé n. 1 orderly statement of facts. 2 revelation of something discreditable. [french]

    Exposition n. 1 explanatory account. 2 explanation or commentary. 3 mus. Part of a movement in which the principal themes are presented. 4 large public

    exhibition. [latin: related to *expound]

    Ex post facto adj. & adv. With retrospective action or force. [latin, = in the light of subsequent events]

    Expostulate v. (-ting) (often foll. By with a person) make a protest; remonstrate. expostulation n. Expostulatory adj. [latin: related to *postulate]

    Exposure n. (foll. By to) 1 exposing or being exposed. 2 physical condition resulting from being exposed to the elements. 3 photog. A exposing a film etc. To the light. B duration of this. C section of film etc. Affected by it.

    Expound v. 1 set out in detail. 2 explain or interpret. [latin pono posit-place]

    Express —v. 1 represent or make known in words or by gestures, conduct, etc. 2 refl. Communicate what one thinks, feels, or means. 3 esp. Math. Represent by symbols. 4 squeeze out (liquid or air). 5 send by express service. —adj. 1 operating at high speed. 2 also definitely stated. 3 delivered by a specially fast service. —adv. 1 at high speed. 2 by express messenger or train. —n. 1 express train etc. 2 us service for the rapid transport of parcels etc. expressible adj. Expressly adv. (in sense 2 of adj.). [latin exprimo -press-squeeze out]

    Expression n. 1 expressing or being expressed. 2 word or phrase expressed. 3 person’s facial appearance, indicating feeling. 4 conveying of feeling in music, speaking, dance, etc. 5 depiction of feeling etc. In art. 6 math. Collection of symbols expressing a quantity. expressionless adj. [french: related to *express]

    Expressionism n. Style of painting, music, drama, etc., seeking to express emotion rather than the external world. expressionist n. & adj.

    Expressive adj. 1 full of expression (expressive look). 2 (foll. By of) serving to express. expressively adv. Expressiveness n.

    Expresso var. Of *espresso.

    Expressway n. Us motorway.

    Expropriate v. (-ting) 1 take away (property) from its owner. 2 (foll. By from) dispossess. expropriation n. Expropriator n. [latin proprium property]

    Expulsion n. Expelling or being expelled. expulsive adj. [latin: related to *expel]

    Expunge v. (-ging) erase, remove (objectionable matter) from a book etc. [latin expungo prick out (for deletion)]

    Expurgate v. (-ting) 1 remove objectionable matter from (a book etc.). 2 remove (such matter). expurgation n. Expurgator n. [latin: related to *purge]

    Exquisite adj. 1 extremely beautiful or delicate. 2 keenly felt (exquisite pleasure). 3 highly sensitive (exquisite taste). exquisitely adv. [latin exquiro – quisit-seek out]

    Ex-serviceman n. Man formerly a member of the armed forces.

    F

    F1 n. (also f) (pl. Fs or f’s) 1 sixth letter of the alphabet. 2 mus. Fourth note of the diatonic scale of c major.

    F2 abbr. (also f.) 1 fahrenheit. 2 farad(s). 3 fine (pencil-lead).

    F3 symb. Fluorine.

    F abbr. (also f.) 1 female. 2 feminine. 3 following page etc. 4 mus. Forte. 5 folio.

    6 focal length.

    Fa abbr. Football association.

    Fa var. Of *fah.

    Fab adj. Colloq. Fabulous, marvellous. [abbreviation]

    Fable n. 1 a fictional, esp. Supernatural, story. B moral tale, esp. With animals as characters. 2 legendary tales collectively (in fable). 3 a lie. B thing only supposed to exist. [latin fabula discourse]

    Fabled adj. Celebrated; legendary.

    Fabled adj. Celebrated; legendary.

    Fabric n. 1 woven material; cloth. 2 walls, floor, and roof of a building. 3 essential structure. [latin faber metalworker]

    Fabricate v. (-ting) 1 construct, esp. From components. 2 invent (a story etc.). 3 forge (a document). fabrication n. Fabricator n. [latin: related to *fabric]

    Fabulous adj. 1 incredible. 2 colloq. Marvellous. 3 legendary. fabulously adv. [latin: related to *fable]

    Façade n. 1 face or front of a building. 2 outward appearance, esp. A deceptive one. [french: related to *face]

    Face —n. 1 front of the head from forehead to chin. 2 facial expression. 3 coolness, effrontery. 4 surface, esp.: a the side of a mountain etc. (north face). B

    *coalface. C geom. Each surface of a solid. D the façade of a building. E the dial of a clock etc. 5 functional side of a tool etc. 6 = *typeface. 7 aspect (unacceptable face of capitalism). —v. (-cing) 1 look or be positioned towards or in a certain direction. 2 be opposite. 3 meet resolutely. 4 confront (faces us with a problem). 5 a coat the surface of (a thing). B put a facing on (a garment). face the music colloq. Take unpleasant consequences without flinching. Face up to accept bravely. Have the face be shameless enough. In face (or the face) of despite. Lose face be humiliated. On the face of it apparently. Put a bold (or brave) face on it accept difficulty etc. Cheerfully. Save face avoid humiliation. Set one’s face against oppose stubbornly. To a person’s face openly in a person’s presence. [latin facies]

    Face-cloth n. Cloth for washing one’s face.

    Face-flannel n. = *face-cloth.

    Faceless adj. 1 without identity; characterless. 2 purposely not identifiable.

    Face-lift n. 1 (also face-lifting) cosmetic surgery to remove wrinkles etc. 2 improvement to appearance, efficiency, etc.

    Face-pack n. Skin preparation for the face.

    Facer n. Colloq. Sudden difficulty.

    Facet n. 1 aspect. 2 side of a cut gem etc. [french: related to *fact]

    Facetious adj. Intending or intended to be amusing, esp. Inappropriately. facetiously adv. [latin facetia jest]

    Face to face adv. & adj. (also face-to-face when attrib.) (often foll. By with) facing; confronting each other.

    Face value n. 1 nominal value of money. 2 superficial appearance or implication.

    Facia var. Of *fascia.

    Facia var. Of *fascia.

    Facial —adj. Of or for the face. —n. Beauty treatment for the face. facially adv.

    Facile adj. Usu. Derog. 1 easily achieved but of little value. 2 glib, fluent. [latin facio do]

    Facilitate v. (-ting) ease (a process etc.). facilitation n. [italian: related to *facile]

    Facility n. (pl. -ies) 1 ease; absence of difficulty. 2 fluency, dexterity. 3 (esp. In pl.) Opportunity or equipment for doing something. [latin: related to *facile]

    Facing n. 1 layer of material covering part of a garment etc. For contrast or strength. 2 outer covering on a wall etc.

    Facsimile n. Exact copy, esp. Of writing, printing, a picture, etc. [latin, = make like]

    Fact n. 1 thing that is known to exist or to be true. 2 (usu. In pl.) Item of verified information. 3 truth, reality. 4 thing assumed as the basis for argument. before (or after) the fact before (or after) the committing of a crime. In (or in point of) fact 1 in reality. 2 in short. [latin factum from facio do]

    Faction n. Small organized dissentient group within a larger one, esp. In politics. factional adj. [latin: related to *fact]

    -faction comb. Form forming nouns of action from verbs in -fy (satisfaction). [latin -factio]

    Factious adj. Of, characterized by, or inclined to faction. [latin: related to *faction]

    Factitious adj. 1 specially contrived. 2 artificial. [latin: related to *fact]

    Fact of life n. Something that must be accepted.

    Factor n. 1 circumstance etc. Contributing to a result. 2 whole number etc. That when multiplied with another produces a given number. 3 a business agent. B scot. Land-agent, steward. C agent, deputy. [latin: related to *fact]

    Factorial —n. Product of a number and all the whole numbers below it. —adj.

    Of a factor or factorial.

    Factorize v. (also -ise) (-zing or -sing) resolve into factors. factorization n.

    Factory n. (pl. -ies) building(s) in which goods are manufactured. [ultimately from latin factorium]

    Factory farm n. Farm using intensive or industrial methods of livestock rearing.

    factory farming n.

    Factotum n. (pl. -s) employee who does all kinds of work. [medieval latin:

    related to fact, total]

    Facts and figures n.pl. Precise details.

    Factsheet n. Information leaflet, esp. Accompanying a television programme.

    Facts of life n.pl. (prec. By the) information about sexual functions and practices.

    Factual adj. Based on or concerned with fact. factually adv.

    Faculty n. (pl. -ies) 1 aptitude for a particular activity. 2 inherent mental or physical power. 3 a group of related university departments. B us teaching staff of a university or college. 4 authorization, esp. By a church authority. [latin: related to *facile]

    Fad n. 1 craze. 2 peculiar notion. faddish adj. [probably from fiddle-faddle]

    Faddy adj. (-ier, -iest) having petty likes and dislikes. faddiness n.

    Fade —v. (-ding) 1 lose or cause to lose colour, light, or sound; slowly diminish. 2 lose freshness or strength. 3 (foll. By in, out) cinematog. Etc. Cause (a picture

    or sound) to appear or disappear, increase or decrease, gradually. —n. Action of fading. fade away 1 colloq. Languish, grow thin. 2 die away; disappear. [french fade dull]

    Faeces n.pl. (us feces) waste matter discharged from the bowels. faecal adj. [latin]

    Faff v. Colloq. (often foll. By about, around) fuss, dither. [imitative]

    Fag1 —n. 1 colloq. Tedious task. 2 slang cigarette. 3 (at public schools) junior boy who runs errands for a senior. —v. (-gg-) 1 (often foll. By out) colloq. Exhaust. 2 (at public schools) act as a fag. [origin unknown]

    Fag2 n. Us slang offens. Male homosexual. [abbreviation of *faggot]

    Fag-end n. Slang cigarette-end.

    Faggot n. (us fagot) 1 ball of seasoned chopped liver etc., baked or fried. 2 bundle of sticks etc. 3 slang offens. A unpleasant woman. B us male homosexual. [french from italian]

    Fagot n. (brit. Faggot) 1 ball of seasoned chopped liver etc., baked or fried. 2 bundle of sticks etc. 3 slang offens. A unpleasant woman. B us male homosexual. [french from italian]

    Fah n. (also fa) mus. Fourth note of a major scale. [latin famuli: see *gamut]

    Fahrenheit adj. Of a scale of temperature on which water freezes at 32° and boils at 212°. [fahrenheit, name of a physicist]

    Faience n. Decorated and glazed earthenware and porcelain. [french from faenza in italy]

    Fail —v. 1 not succeed (failed to qualify). 2 be or judge to be unsuccessful in (an examination etc.). 3 be unable; neglect (failed to appear). 4 disappoint. 5 be absent or insufficient.

    Failed adj. Unsuccessful (failed actor).

    Failing —n. Fault, weakness. —prep. In default of.

    Fail-safe adj. Reverting to a safe condition when faulty etc.

    Failure n. 1 lack of success; failing. 2 unsuccessful person or thing. 3 non-performance. 4 breaking down or ceasing to function (heart failure). 5 running short of supply etc. [anglo-french: related to *fail]

    Fain archaic —predic. Adj. (foll. By to + infin.) Willing or obliged to. —adv. Gladly (esp. Would fain). [old english]

    Faint —adj. 1 indistinct, pale, dim. 2 weak or giddy. 3 slight. 4 feeble; timid. 5

    Faint —adj. 1 indistinct, pale, dim. 2 weak or giddy. 3 slight. 4 feeble; timid. 5 (also feint) (of paper) with inconspicuous ruled lines. —v. 1 lose consciousness.

    2 become faint. —n. Act or state of fainting. faintly adv. Faintness n. [french:

    related to *feign]

    Faint-hearted adj. Cowardly, timid.

    Fair1 —adj. 1 just, equitable; in accordance with the rules. 2 blond; light or pale. 3 a moderate in quality or amount. B satisfactory. 4 (of weather) fine; (of the wind) favourable. 5 clean, clear (fair copy). 6 archaic beautiful. —adv. 1 in a just manner. 2 exactly, completely. in a fair way to likely to. fairness n. [old english]

    Fair2 n. 1 stalls, amusements, etc., for public entertainment. 2 periodic market, often with entertainments. 3 exhibition, esp. Commercial. [latin feriae holiday]

    Fair and square adv. Exactly; straightforwardly.

    Fair dinkum see *dinkum.

    Fair dos n.pl. (esp. As int.) Colloq. Fair shares; fair treatment.

    Fair game n. Legitimate target or object.

    Fairground n. Outdoor area where a fair is held.

    Fairing n. Streamlining structure added to a ship, aircraft, vehicle, etc.

    Fair isle n. (also attrib.) Multicoloured knitwear design characteristic of fair isle. [fair isle in the shetlands]

    Fairly adv. 1 in a fair manner. 2 moderately (fairly good). 3 quite, rather (fairly narrow).

    Fair play n. Just treatment or behaviour.

    Fair sex n. (prec. By the) women.

    Fairway n. 1 navigable channel. 2 part of a golf-course between a tee and its green, kept free of rough grass.

    Fair-weather friend n. Unreliable friend or ally.

    Fairy n. (pl. -ies) 1 (often attrib.) Small winged legendary being. 2 slang offens. Male homosexual. [french: related to fay, -ery]

    Fairy cake n. Small iced sponge cake.

    Fairy godmother n. Benefactress.

    Fairyland n. 1 home of fairies. 2 enchanted region.

    Fairy lights n.pl. Small decorative coloured lights.

    Fairy ring n. Ring of darker grass caused by fungi.

    Fairy story n. (also fairy tale) 1 tale about fairies. 2 incredible story; lie.

    Fait accompli n. Thing that has been done and is not capable of alteration. [french]

    Faith n. 1 complete trust or confidence. 2 firm, esp. Religious, belief. 3 religion or creed (christian faith). 4 loyalty, trustworthiness. [latin fides]

    Faithful adj. 1 showing faith. 2 (often foll. By to) loyal, trustworthy. 3 accurate (faithful account). 4 (the faithful) the believers in a religion. faithfulness n.

    Faithfully adv. In a faithful manner. yours faithfully formula for ending a formal letter when it begins ‘dear sir’ or ‘dear madam’.

    Faithless adj. 1 false, unreliable, disloyal. 2 without religious faith.

    Fake —n. False or counterfeit thing or person. —adj. Counterfeit; not genuine. —v. (-king) 1 make a fake or imitation of (faked my signature). 2 feign (a feeling, illness, etc.). [german fegen sweep]

    Fakir n. Muslim or (rarely) hindu religious beggar or ascetic. [arabic, = poor man]

    Falcon n. Small hawk sometimes trained to hunt. [latin falco]

    Falconry n. Breeding and training of hawks.

    Fall —v. (past fell; past part. Fallen) 1 go or come down freely; descend. 2 (often foll. By over) come suddenly to the ground from loss of balance etc. 3 a hang or slope down. B (foll. By into) (of a river etc.) Discharge into. 4 a sink lower; decline, esp. In power, status, etc. B subside. 5 occur (falls on a monday). 6 (of the face) show dismay or disappointment. 7 yield to temptation. 8 take or have a particular direction or place (his eye fell on me; accent falls on the first syllable). 9 a find a place; be naturally divisible. B (foll. By under, within) be classed among. 10 come by chance or duty (it fell to me to answer). 11 a pass into a specified condition (fell ill). B become (fall asleep). 12 be defeated or captured. 13 die. 14 (foll. By on, upon) a attack. B meet with. C embrace or embark on avidly. 15 (foll. By to + verbal noun) begin (fell to wondering). —n.

    1 act of falling. 2 that which falls or has fallen, e.g. Snow. 3 recorded amount of rainfall etc. 4 overthrow (fall of rome). 5 a succumbing to temptation. B (the fall) adam’s sin and its results. 6 (also fall) us autumn. 7 (esp. In pl.) Waterfall etc. 8 wrestling-bout; throw in wrestling. fall about colloq. Be helpless withlaughter. Fall away 1 (of a surface) incline abruptly. 2 become few or thin; gradually vanish. 3 desert. Fall back retreat. Fall back on have recourse to in difficulty. Fall behind 1 be outstripped; lag. 2 be in arrears. Fall down (often foll. By on) colloq. Fail. Fall for colloq. Be captivated or deceived by. Fall foul of come into conflict with. Fall in 1 take one’s place in military formation. 2 collapse inwards. Fall in with 1 meet by chance. 2 agree with. 3 coincide with.

    Fall off 1 become detached. 2 decrease, deteriorate. Fall out 1 quarrel. 2 (of the hair, teeth, etc.) Become detached. 3 mil. Come out of formation. 4 result; occur. Fall over backwards see *backwards. Fall over oneself colloq. 1 be eager. 2 stumble through haste, confusion, etc. Fall short be deficient. Fall short of fail to reach or obtain. Fall through fail; miscarry. Fall to begin, e.g. Eating or working. [old english]

    Fallacy n. (pl. -ies) 1 mistaken belief. 2 faulty reasoning; misleading argument. fallacious adj. [latin fallo deceive]

    Fall guy n. Slang easy victim; scapegoat.

    Fallible adj. Capable of making mistakes. fallibility n. Fallibly adv. [medieval latin: related to *fallacy]

    Falling star n. Meteor.

    Fallopian tube n. Either of two tubes along which ova travel from the ovaries to the womb. [fallopius, name of an anatomist]

    Fallout n. Radioactive nuclear debris.

    Fallow —adj. 1 (of land) ploughed but left unsown. 2 uncultivated. —n. Fallow land. [old english]

    Fallow deer n. Small deer with a white-spotted reddish-brown summer coat. [old english fallow pale brownish or reddish yellow]

    False adj. 1 wrong, incorrect. 2 spurious, artificial. 3 improperly so called (false acacia). 4 deceptive. 5 (foll. By to) deceitful, treacherous, or unfaithful. falsely adv. Falseness n. [latin falsus: related to *fail]

    False alarm n. Alarm given needlessly.

    Falsehood n. 1 untrue thing. 2 a act of lying. B lie.

    False pretences n.pl. Misrepresentations made with intent to deceive (esp. Under false pretences).

    Falsetto n. Male singing voice above the normal range. [italian diminutive:

    related to *false]

    Falsies n.pl. Colloq. Pads worn to make the breasts seem larger.

    Falsify v. (-ies, -ied) 1 fraudulently alter. 2 misrepresent. falsification n. [french or medieval latin: related to *false]

    Falsity n. Being false.

    Falter v. 1 stumble; go unsteadily. 2 lose courage. 3 speak hesitatingly. [origin uncertain]

    Fame n. 1 renown; being famous. 2 archaic reputation. [latin fama]

    Famed adj. (foll. By for) famous; much spoken of.

    Familial adj. Of a family or its members.

    Familiar —adj. 1 a (often foll. By to) well known. B often met (with). 2 (foll. By with) knowing a thing well. 3 (often foll. By with) well acquainted (with a person). 4 informal, esp. Presumptuously so. —n. 1 close friend. 2 (in full familiar spirit) supposed attendant of a witch etc. familiarity n. Familiarly adv. [latin: related to *family]

    Familiarize v. (also -ise) (-zing or -sing) (usu. Foll. By with) make (a person or oneself) conversant or well acquainted. familiarization n.

    Family n. (pl. -ies) 1 set of relations, esp. Parents and children. 2 a members of a household. B person’s children. 3 all the descendants of a common ancestor. 4 group of similar objects, people, etc. 5 group of related genera of animals or plants. in the family way colloq. Pregnant. [latin familia]

    Family allowance n. Former name for *child benefit.

    Family credit n. (also family income supplement) regular state payment to a low-income family.

    Family man n. Man who has a wife and children, esp. One fond of family life.

    Family name n. Surname.

    Family planning n. Birth control.

    Family tree n. Genealogical chart.

    Famine n. Extreme scarcity, esp. Of food. [latin fames hunger]

    Famish v. (usu. In passive) make or become extremely hungry. be famished (or famishing) colloq. Be very hungry. [romanic: related to *famine]

    Famous adj. 1 (often foll. By for) celebrated; well-known. 2 colloq. Excellent. famously adv. [latin: related to *fame]

    Fan1 —n. 1 apparatus, usu. With rotating blades, for ventilation etc. 2 folding semicircular device waved to cool oneself. 3 thing spread out like a fan (fan tracery). —v. (-nn-) 1 blow air on, with or as with a fan. 2 (of a breeze) blow gently on. 3 (usu. Foll. By out) spread out like a fan. [latin vannus winnowing-basket]

    Fan2 n. Devotee of a particular activity, performer, etc. (film fan). [abbreviation

    of *fanatic]

    Fanatic —n. Person obsessively devoted to a belief, activity, etc. —adj. Excessively enthusiastic. fanatical adj. Fanatically adv. Fanaticism n. [latin fanum temple]

    Fan belt n. Belt driving a fan to cool the radiator in a vehicle.

    Fancier n. Connoisseur (dog-fancier).

    Fanciful adj. 1 imaginary. 2 indulging in fancies. fancifully adv.

    Fan club n. Club of devotees.

    Fancy —n. (pl. -ies) 1 inclination. 2 whim. 3 supposition. 4 a faculty of imagination. B mental image. —adj. (-ier, -iest) 1 ornamental. 2 extravagant. — v. (-ies, -ied) 1 (foll. By that) be inclined to suppose. 2 colloq. Feel a desire for (fancy a drink?). 3 colloq. Find sexually attractive. 4 colloq. Value (oneself, one’s ability, etc.) Unduly highly. 5 (in imper.) Exclamation of surprise. 6 imagine. take a fancy to become (esp. Inexplicably) fond of. Take a person’s fancy suddenly attract or please. fanciable adj. (in sense 3 of v.). Fancily adv. Fanciness n. [contraction of *fantasy]

    Fancy dress n. Costume for masquerading at a party.

    Fancy-free adj. Without (esp. Emotional) commitments.

    Fancy man n. Slang derog. 1 woman’s lover. 2 pimp.

    Fancy woman n. Slang derog. Mistress.

    Fandango n. (pl. -es or -s) 1 lively spanish dance for two. 2 music for this. [spanish]

    Fanfare n. Short showy or ceremonious sounding of trumpets etc. [french]

    Fang n. 1 canine tooth, esp. Of a dog or wolf. 2 tooth of a venomous snake. 3 root of a tooth or its prong. [old english]

    Fan-jet n. = *turbofan.

    Fanlight n. Small, orig. Semicircular, window over a door or another window.

    Fan mail n. Letters from fans.

    Fanny n. (pl. -ies) 1 coarse slang the female genitals. 2 us slang the buttocks. [origin unknown]

    Fantail n. Pigeon with a broad tail.

    Fantasia n. Free or improvisatory musical or other composition, or one based on familiar tunes. [italian: related to *fantasy]

    Fantasize v. (also -ise) (-zing or -sing) 1 day-dream. 2 imagine; create a fantasy about.

    Fantastic adj. 1 colloq. Excellent, extraordinary. 2 extravagantly fanciful. 3 grotesque, quaint. fantastically adv. [greek: related to *fantasy]

    Fantasy n. (pl. -ies) 1 imagination, esp. When unrelated to reality (lives in the realm of fantasy). 2 mental image, day-dream. 3 fantastic invention or composition. [greek phantasia appearance]

    Far (further, furthest or farther, farthest) —adv. 1 at, to, or by a great distance (far away; far off; far out). 2 a long way (off) in space or time (are you travelling far?). 3 to a great extent or degree; by much (far better; far too early). —adj. 1 remote; distant (far country). 2 more distant (far end of the hall). 3 extreme (far left). as far as 1 right up to (a place). 2 to the extent that. By far by a great amount. A far cry a long way. Far from very different from being; almost the opposite of (far from being fat). Go far 1 achieve much. 2 contribute greatly. Go too far overstep the limit (of propriety etc.). So far 1 to such an extent; to this point. 2 until now. So (or in so) far as (or that) to the extent that. So far so good satisfactory up to now. [old english]

    Farad n. Si unit of capacitance. [faraday, name of a physicist]

    Far and away adv. By a very large amount.

    Far and wide adv. Over a large area.

    Far-away adj. 1 remote. 2 (of a look or voice) dreamy, distant.

    Farce n. 1 a low comedy with a ludicrously improbable plot. B this branch of drama. 2 absurdly futile proceedings; pretence. farcical adj. [latin farcio to stuff, used metaphorically of interludes etc.]

    Fare —n. 1 a price of a journey on public transport. B fare-paying passenger. 2 range of food. —v. (-ring) progress; get on (how did you fare?). [old english]

    Far east n. (prec. By the) china, japan, and other countries of e. Asia.

    Fare-stage n. 1 section of bus etc. Route for which a fixed fare is charged. 2 stop marking this.

    Farewell —int. Goodbye. —n. Leave-taking.

    Far-fetched adj. Unconvincing, incredible.

    Far-flung adj. 1 widely scattered. 2 remote.

    Far gone adj. Colloq. Very ill, drunk, etc.

    Farina n. 1 flour or meal of cereal, nuts, or starchy roots. 2 starch. farinaceous adj. [latin]

    Farm —n. 1 land and its buildings under one management for growing crops, rearing animals, etc. 2 such land etc. For a specified purpose (trout-farm). 3 = *farmhouse. —v. 1 a use (land) for growing crops, rearing animals, etc. B be a farmer; work on a farm. 2 breed (fish etc.) Commercially. 3 (often foll. By out) delegate or subcontract (work) to others. farming n. [french ferme from latin firma fixed payment]

    Farmer n. Owner or manager of a farm.

    Farm-hand n. Worker on a farm.

    Farmhouse n. House attached to a farm.

    Farmstead n. Farm and its buildings.

    Farmyard n. Yard attached to a farmhouse.

    Far-off adj. Remote.

    Far-out adj. 1 distant. 2 slang avant-garde, unconventional. 3 slang excellent.

    Farrago n. (pl. -s or us -es) medley, hotchpotch. [latin, = mixed fodder, from far corn]

    Far-reaching adj. Widely influential or applicable.

    Farrier n. Smith who shoes horses. [latin ferrum iron, horseshoe]

    Farrow —n. 1 litter of pigs. 2 birth of a litter. —v. (also absol.) (of a sow) produce (pigs). [old english]

    Far-seeing adj. Showing foresight; wise.

    Farsi n. Modern persian language. [persian]

    Far-sighted adj. 1 having foresight, prudent. 2 esp. Us = *long-sighted.

    Fart coarse slang —v. 1 emit wind from the anus. 2 (foll. By about, around) behave foolishly. —n. 1 an emission of wind from the anus. 2 unpleasant or foolish person. [old english]

    Farther var. Of *further (esp. Of physical distance).

    Farthest var. Of *furthest (esp. Of physical distance).

    Farthing n. Hist. Coin and monetary unit worth a quarter of an old penny. [old english: related to *fourth]

    Usage the farthing was withdrawn from circulation in 1961.

    Farthingale n. Hist. Hooped petticoat. [spanish verdugo rod]

    Fasces n.pl. 1 rom. Hist. Bundle of rods with a projecting axe-blade, as a magistrate’s symbol of power. 2 emblems of authority. [latin, pl. Of fascis bundle]

    Fascia n. (also facia) (pl. -s) 1 a instrument panel of a vehicle. B similar panel etc. For operating machinery. 2 strip with a name etc. Over a shop-front. 3 a longflat surface in classical architecture. B flat surface, usu. Of wood, covering the ends of rafters. 4 stripe or band. [latin, = band, door-frame]

    Fascicle n. Section of a book that is published in instalments. [latin diminutive:

    related to *fasces]

    Fascinate v. (-ting) 1 capture the interest of; attract. 2 paralyse (a victim) with fear. fascination n. [latin fascinum spell]

    Fascism n. 1 extreme totalitarian rightwing nationalist movement in italy (1922– 43). 2 (also fascism) any similar movement. fascist n. & adj. (also fascist). Fascistic adj. (also fascistic). [italian fascio bundle, organized group]

    Fashion —n. 1 current popular custom or style, esp. In dress. 2 manner of doing something. —v. (often foll. By into) make or form. after (or in) a fashion to some extent, barely acceptably. In (or out of) fashion fashionable (or not fashionable). [latin factio: related to *fact]

    Fashionable adj. 1 following or suited to current fashion. 2 of or favoured by high society. fashionableness n. Fashionably adv.

    Fast1 —adj. 1 rapid, quick-moving. 2 capable of or intended for high speed (fast car; fast road). 3 (of a clock etc.) Ahead of the correct time. 4 (of a pitch etc.) Causing the ball to bounce quickly. 5 firm; firmly fixed or attached (fast knot; fast friendship). 6 (of a colour) not fading. 7 pleasure seeking, dissolute. 8 (of photographic film etc.) Needing only short exposure. —adv. 1 quickly; in quick succession. 2 firmly, tightly (stand fast). 3 soundly, completely (fast asleep). pull a fast one colloq. Perpetrate deceit. [old english]

    Fast2 —v. Abstain from food, or certain food, for a time. —n. Act or period of fasting. [old english]

    Fastback n. 1 car with a sloping rear. 2 such a rear.

    Fast breeder n. (also fast breeder reactor) reactor using fast neutrons.

    Fasten v. 1 make or become fixed or secure. 2 (foll. By in, up) lock securely; shut in. 3 (foll. By on, upon) direct (a look, thoughts, etc.) Towards. 4 (foll. By on, upon) a take hold of. B single out. 5 (foll. By off) fix with a knot or stitches. fastener n. [old english: related to *fast1]

    Fastening n. Device that fastens something; fastener.

    Fast food n. Restaurant food that is quickly produced and served.

    Fastidious adj. 1 excessively discriminatory; fussy. 2 easily disgusted; squeamish. fastidiously adv. Fastidiousness n. [latin fastidium loathing]

    Fastness n. Stronghold. [old english]

    Fast neutron n. Neutron with high kinetic energy.

    Fast worker n. Colloq. Person who rapidly makes esp. Sexual advances.

    Fat —n. 1 natural oily or greasy substance found esp. In animal bodies. 2 part of meat etc. Containing this. —adj. (fatter, fattest) 1 corpulent; plump. 2 containing much fat. 3 fertile. 4 a thick (fat book). B substantial (fat cheque). 5 colloq. Iron. Very little; not much (a fat chance; a fat lot). —v. (-tt-) make or become fat. the fat is in the fire trouble is imminent. Kill the fatted calf celebrate, esp. At a prodigal’s return (luke 15). Live off (or on) the fat of the land live luxuriously. fatless adj. Fatness n. Fattish adj. [old english]

    Fatal adj. 1 causing or ending in death (fatal accident). 2 (often foll. By to) ruinous (fatal mistake). 3 fateful. fatally adv. [latin: related to *fate]

    Fatalism n. 1 belief in predetermination. 2 submissive acceptance. fatalist n.

    Fatalistic adj. Fatalistically adv.

    Fatality n. (pl. -ies) 1 death by accident or in war etc. 2 fatal influence. 3 predestined liability to disaster.

    Fate —n. 1 supposed power predetermining events. 2 a the future so determined. B individual’s destiny or fortune. 3 death, destruction. —v. (-ting) 1 (usu. In passive) preordain (fated to win). 2 (as fated adj.) Doomed. fate worse than death see *death. [italian and latin fatum]

    Fateful adj. 1 important, decisive. 2 controlled by fate. fatefully adv.

    Fat-head n. Colloq. Stupid person.

    Fat-headed adj. Stupid.

    Father —n. 1 male parent. 2 (usu. In pl.) Forefather. 3 originator, early leader. 4 (fathers or fathers of the church) early christian theologians. 5 (also father) (often as a title or form of address) priest. 6 (the father) (in christian belief) first person of the trinity. 7 (father) venerable person, esp. As a title in personifications (father time). 8 (usu. In pl.) Elders (city fathers). —v. 1 beget. 2 originate (a scheme etc.). fatherhood n. Fatherless adj. [old english]

    Father-figure n. Older man respected and trusted like a father.

    Father-in-law n. (pl. Fathers-in-law) father of one’s husband or wife.

    Fatherland n. One’s native country.

    Fatherly adj. Like or of a father.

    Father’s day n. Day on which cards and presents are given to fathers.

    Fathom —n. (pl. Often fathom when prec. By a number) measure of six feet, esp. In depth soundings. —v. 1 comprehend. 2 measure the depth of (water). fathomable adj. [old english]

    Fathomless adj. Too deep to fathom.

    Fatigue —n. 1 extreme tiredness. 2 weakness in metals etc. Caused by repeated stress. 3 a non-military army duty. B (in pl.) Clothing worn for this. —v. (-gues, -gued, -guing) cause fatigue in. [latin fatigo exhaust]

    Fatstock n. Livestock fattened for slaughter.

    Fatten v. Make or become fat.

    Fatty adj. (-ier, -iest) like or containing fat.

    Fatty acid n. Organic compound consisting of a hydrocarbon chain and a terminal carboxyl group.

    Fatuous adj. Vacantly silly; purposeless, idiotic. fatuity n. (pl. -ies). Fatuously adv. Fatuousness n. [latin fatuus]

    Fatwa n. Legal decision or ruling by an islamic religious leader. [arabic]

    Faucet n. Esp. Us tap. [french fausset vent-peg]

    Fault —n. 1 defect or imperfection of character, structure, appearance, etc. 2 responsibility for wrongdoing, error, etc. (your own fault). 3 break in an electric circuit. 4 transgression, offence. 5 a tennis etc. Incorrect service. B (in showjumping) penalty for error. 6 break in rock strata. —v. 1 find fault with; blame. 2 geol. A break the continuity of (strata). B show a fault. at fault guilty; to blame. Find fault (often foll. By with) criticize; complain. To a fault excessively (generous to a fault). [latin fallo deceive]

    Fault-finder n. Complaining person.

    Fault-finding n. Continual criticism.

    Faultless adj. Perfect. faultlessly adv.

    Faulty adj. (-ier, -iest) having faults; imperfect. faultily adv. Faultiness n.

    Faun n. Latin rural deity with goat’s horns, legs, and tail. [latin faunus]

    Fauna n. (pl. -s or -nae) animal life of a region or period. [latin fauna, name of a rural goddess]

    Faux pas n. (pl. Same) tactless mistake; blunder. [french, = false step]

    Favor (brit. Favour) —n. 1 kind act (did it as a favour). 2 approval, goodwill; friendly regard (gained their favour). 3 partiality. 4 badge, ribbon, etc., as an emblem of support. —v. 1 regard or treat with favour or partiality. 2 support, promote, prefer. 3 be to the advantage of; facilitate. 4 tend to confirm (an idea etc.). 5 (foll. By with) oblige. 6 (as favoured adj.) Having special advantages.

    Favorable adj. (brit. Favourable) 1 well-disposed; propitious; approving. 2 promising, auspicious. 3 helpful, suitable. favourably adv.

    Favorite (brit. Favourite) —adj. Preferred to all others (favourite book). —n. 1 favourite person or thing. 2 sport competitor thought most likely to win. [italian: related to *favour]

    Favoritism n. (brit. Favouritism) unfair favouring of one person etc. At the

    expense of another.

    Favour (us favor) —n. 1 kind act (did it as a favour). 2 approval, goodwill; friendly regard (gained their favour). 3 partiality. 4 badge, ribbon, etc., as an emblem of support. —v. 1 regard or treat with favour or partiality. 2 support, promote, prefer. 3 be to the advantage of; facilitate. 4 tend to confirm (an idea etc.). 5 (foll. By with) oblige. 6 (as favoured adj.) Having special advantages. in favour 1 approved of. 2 (foll. By of) a in support of. B to the advantage of. Out of favour disapproved of. [latin faveo be kind to]

    Favourable adj. (us favorable) 1 well-disposed; propitious; approving. 2 promising, auspicious. 3 helpful, suitable. favourably adv.

    Favourite (us favorite) —adj. Preferred to all others (favourite book). —n. 1 favourite person or thing. 2 sport competitor thought most likely to win. [italian: related to *favour]

    Favouritism n. (us favoritism) unfair favouring of one person etc. At the expense of another.

    Fawn1 —n. 1 deer in its first year. 2 light yellowish brown. —adj. Fawn-coloured. —v. (also absol.) Give birth to (a fawn). [latin: related to *foetus]

    Fawn2 v. 1 (often foll. By on, upon) behave servilely, cringe. 2 (of esp. A dog) show extreme affection. [old english]

    Fax —n. 1 transmission of an exact copy of a document etc. Electronically. 2 copy produced by this. —v. Transmit in this way. [abbreviation of *facsimile]

    Fay n. Literary fairy. [latin fata pl., = goddesses of destiny]

    Faze v. (-zing) (often as fazed adj.) Colloq. Disconcert, disorientate. [origin unknown]

    Fba abbr. Fellow of the british academy.

    Fbi abbr. Federal bureau of investigation.

    Fc abbr. Football club.

    Fco abbr. Foreign and commonwealth office.

    Fe abbr. Further education.

    Fe symb. Iron. [latin ferrum]

    Fealty n. (pl. -ies) 1 hist. Fidelity to a feudal lord. 2 allegiance. [latin: related to *fidelity]

    Fear —n. 1 a panic or distress caused by a sense of impending danger, pain, etc. B cause of this. C state of alarm (in fear). 2 (often foll. By of) dread, awe (towards) (fear of heights). 3 danger (little fear of failure). —v. 1 feel fear about or towards. 2 (foll. By for) feel anxiety about (feared for my life). 3 (often foll. By that) foresee or expect with unease, fear, or regret (fear the worst; i fear that you are wrong). 4 (foll. By verbal noun) shrink from (feared meeting his ex-wife). 5 revere (esp. God). for fear of (or that) to avoid the risk of (or that). No fear colloq. Certainly not! [old english]

    Fearful adj. 1 (usu. Foll. By of or that) afraid. 2 terrible, awful. 3 colloq.

    Extreme, esp. Unpleasant (fearful row). fearfully adv. Fearfulness n.

    Fearless adj. (often foll. By of) not afraid, brave. fearlessly adv. Fearlessness n.

    Fearsome adj. Frightening. fearsomely adv.

    Feasible adj. Practicable, possible. feasibility n. Feasibly adv. [latin facio do]

    Usage feasible should not be used to mean ‘possible’ or ‘probable’ in the sense ‘likely’. ‘possible’ or ‘probable’ should be used instead.

    Feast —n. 1 large or sumptuous meal. 2 sensual or mental pleasure. 3 religious festival. 4 annual village festival. —v. 1 (often foll. By on) partake of a feast; eat and drink sumptuously. 2 regale. feast one’s eyes on look with pleasure at. [latin festus joy]

    Feat n. Remarkable act or achievement. [latin: related to *fact]

    Feather —n. 1 one of the structures forming a bird’s plumage, with a horny stem and fine strands. 2 (collect.) A plumage. B game-birds. —v. 1 cover or line with feathers. 2 turn (an oar) edgeways through the air. feather in one’s cap a personal achievement. Feather one’s nest enrich oneself. In fine (or high) feather colloq. In good spirits. feathery adj. [old english]

    Feather bed n. Bed with a feather-stuffed mattress.

    Feather-bed v. (-dd-) cushion, esp. Financially.

    Feather-brain n. (also feather-head) silly or absent-minded person. feather-brained adj. (also feather-headed).

    Feathering n. 1 bird’s plumage. 2 feathers of an arrow. 3 feather-like structure or marking.

    Featherweight n. 1 a weight in certain sports between bantamweight and lightweight, in amateur boxing 54–7kg. B sportsman of this weight. 2 very light person or thing. 3 (usu. Attrib.) Unimportant thing.

    Feature —n. 1 distinctive or characteristic part of a thing. 2 (usu. In pl.) Part of the face. 3 (esp. Specialized) article in a newspaper etc. 4 (in full feature film) main film in a cinema programme. —v. (-ring) 1 make a special display of; emphasize. 2 have as or be a central participant or topic in a film, broadcast, etc. featureless adj. [latin factura formation: related to *fact]

    Feb. Abbr. February.

    Febrifuge n. Medicine or treatment for fever. [latin febris fever]

    Febrile adj. Of fever; feverish. [latin febris fever]

    February n. (pl. -ies) second month of the year. [latin februa purification feast]

    Fecal us var. Of faecal (*feces).

    Feces n.pl. (brit. Faeces) waste matter discharged from the bowels. faecal adj. [latin]

    Feckless adj. 1 feeble, ineffective. 2 unthinking, irresponsible. [scots feck from effeck var. Of *effect]

    Fecund adj. 1 prolific, fertile. 2 fertilizing. fecundity n. [latin]

    Fecundate v. (-ting) 1 make fruitful. 2 fertilize. fecundation n.

    Fed past and past part. Of *feed. fed up (often foll. By with) discontented or bored.

    bored.

    Federal adj. 1 of a system of government in which self-governing states unite for certain functions etc. 2 of such a federation (federal laws). 3 of or favouring centralized government. 4 (federal) us of the northern states in the civil war. 5 comprising an association of largely independent units. federalism n. Federalist n. Federalize v. (also -ise) (-zing or -sing). Federalization n. Federally adv. [latin foedus covenant]

    Federal reserve n. (in the us) reserve cash available to banks.

    Federate —v. (-ting) unite on a federal basis. —adj. Federally organized.

    federative adj.

    Federation n. 1 federal group. 2 act of federating. [latin: related to *federal]

    Fee n. 1 payment made for professional advice or services etc. 2 a charge for a privilege, examination, admission to a society, etc. (enrolment fee). B money paid for the transfer to another employer of a footballer etc. 3 (in pl.) Regular payments (esp. To a school). 4 law inherited estate, unlimited (fee simple) or limited (fee tail) as to category of heir. [medieval latin feudum]

    Feeble adj. (feebler, feeblest) 1 weak, infirm. 2 lacking strength, energy, or effectiveness. feebly adv. [latin flebilis lamentable]

    Feeble-minded adj. Mentally deficient.

    Feeble-minded adj. Mentally deficient.

    Feed —v. (past and past part. Fed) 1 a supply with food. B put food into the mouth of. 2 give as food, esp. To animals. 3 (usu. Foll. By on) (esp. Of animals, or colloq. Of people) eat. 4 (often foll. By on) nourish or be nourished by; benefit from. 5 a keep (a fire, machine, etc.) Supplied with fuel etc. B (foll. By into) supply (material) to a machine etc. C (often foll. By into) (of a river etc.) Flow into a lake etc. D keep (a meter) supplied with coins to ensure continuity. 6 slang supply (an actor etc.) With cues. 7 sport send passes to (a player). 8 gratify (vanity etc.). 9 provide (advice, information, etc.) To. —n. 1 food, esp. For animals or infants. 2 feeding; giving of food. 3 colloq. Meal. 4 a raw material for a machine etc. B provision of or device for this. feed back produce feedback. Feed up fatten. [old english]

    Feedback n. 1 public response to an event, experiment, etc. 2 electronics a return of a fraction of an output signal to the input. B signal so returned.

    Feeder n. 1 person or thing that feeds, esp. In specified manner. 2 baby’s feeding-bottle. 3 bib. 4 tributary stream. 5 branch road, railway line, etc. Linking with a main system. 6 main carrying electricity to a distribution point. 7 feeding apparatus in a machine.

    Feel —v. (past and past part. Felt) 1 a examine or search by touch. B (absol.) Have the sensation of touch (unable to feel). 2 perceive or ascertain by touch (feel the warmth). 3 experience, exhibit, or be affected by (an emotion, conviction, etc.) (felt strongly about it; felt the rebuke). 4 (foll. By that) have an impression (i feel that i am right). 5 consider, think (i feel it useful). 6 seem (air feels chilly). 7 be consciously; consider oneself (i feel happy). 8 (foll. By for, with) have sympathy or pity. 9 (often foll. By up) slang fondle sexually. —n. 1 feeling; testing by touch. 2 sensation characterizing a material, situation, etc. 3

    sense of touch. feel like have a wish or inclination for. Feel up to be ready to face or deal with. Feel one’s way proceed cautiously. Get the feel of become accustomed to using. [old english]

    Feeler n. 1 organ in certain animals for touching or searching for food. 2 tentative proposal (put out feelers).

    Feeling —n. 1 a capacity to feel; sense of touch (lost all feeling). B physical sensation. 2 a (often foll. By of) emotional reaction (feeling of despair). B (in pl.) Emotional susceptibilities (hurt my feelings). 3 particular sensitivity (feeling for literature). 4 a opinion or notion (had a feeling she would). B general sentiment. 5 sympathy or compassion. 6 emotional sensibility or intensity (played with feeling). —adj. Sensitive, sympathetic; heartfelt. feelingly adv.

    Feet pl. Of *foot.

    Feign v. Simulate; pretend (feign madness). [latin fingo fict-mould, contrive]

    Feint —n. 1 sham attack or diversionary blow. 2 pretence. —v. Make a feint. — adj. = faint adj. 5. [french: related to feign]

    Feldspar n. (also felspar) common aluminium silicate of potassium, sodium, or calcium. feldspathic adj. [german feld field, spat(h) *spar3]

    Felicitate v. (-ting) formal congratulate. felicitation n. (usu. In pl.). [latin felix happy]

    Felicitous adj. Formal apt; pleasantly ingenious; well-chosen.

    Felicity n. (pl. -ies) formal 1 intense happiness. 2 a capacity for apt expression. B well-chosen phrase. [latin felix happy]

    Feline —adj. 1 of the cat family. 2 catlike. —n. Animal of the cat family. felinity n. [latin feles cat]

    Fell1 past of *fall v.

    Fell2 v. 1 cut down (esp. A tree). 2 strike or knock down. 3 stitch down (the edge of a seam). [old english]

    Fell3 n. N.engl. 1 hill. 2 stretch of hills or moorland. [old norse]

    Fell4 adj. Poet. Or rhet. Ruthless, destructive. at (or in) one fell swoop in a single (orig. Deadly) action. [french: related to *felon]

    Fell5 n. Animal’s hide or skin with its hair. [old english]

    Fellatio n. Oral stimulation of the penis. [latin fello suck]

    Feller n. = *fellow 1.

    Felloe n. (also felly) (pl. -s or -ies) outer circle (or a section of it) of a wheel. [old english]

    Fellow n. 1 colloq. Man or boy (poor fellow!). 2 (usu. In pl.) Person in a group etc.; comrade (separated from their fellows). 3 counterpart; one of a pair. 4 equal; peer. 5 a incorporated senior member of a college. B elected graduate paid to do research. 6 member of a learned society. 7 (attrib.) Of the same group etc. (fellow-countryman). [old english from old norse]

    Fellow-feeling n. Sympathy.

    Fellowship n. 1 friendly association with others, companionship. 2 body of associates. 3 status or income of a fellow of a college or society.

    Fellow-traveller n. 1 person who travels with another. 2 sympathizer with the communist party.

    Felly var. Of *felloe.

    Felon n. Person who has committed a felony. [medieval latin fello]

    Felony n. (pl. -ies) serious, usu. Violent, crime. felonious adj.

    Felspar var. Of *feldspar.

    Felspar var. Of *feldspar.

    Felt1 —n. Cloth of matted and pressed fibres of wool etc. —v. 1 make into felt; mat. 2 cover with felt. 3 become matted. [old english]

    Felt2 past and past part. Of *feel.

    Felt-tipped pen n. (also felt-tip pen) pen with a fibre point.

    Felucca n. Small mediterranean coasting vessel with oars and/or sails. [arabic fulk]

    Female —adj. 1 of the sex that can give birth or produce eggs. 2 (of plants) fruit-bearing. 3 of women or female animals or plants. 4 (of a screw, socket, etc.) Hollow to receive an inserted part. —n. Female person, animal, or plant. [latin diminutive of femina woman, assimilated to male]

    Feminine —adj. 1 of women. 2 having womanly qualities. 3 of or denoting the female gender. —n. Feminine gender or word. femininity n. [latin: related to *female]

    Feminism n. Advocacy of women’s rights and sexual equality. feminist n. & adj.

    Femme fatale n. (pl. Femmes fatales pronunc. Same) dangerously seductive woman. [french]

    Femur n. (pl. -s or femora) thigh-bone. femoral adj. [latin]

    Fen n. 1 low marshy land. 2 (the fens) lowlying areas in cambridgeshire etc. [old english]

    Fence —n. 1 barrier, railing, etc., enclosing a field, garden, etc. 2 large upright jump for horses. 3 slang receiver of stolen goods. 4 guard or guide in machinery. —v. (-cing) 1 surround with or as with a fence. 2 (foll. By in, off, up) enclose, separate, or seal, with or as with a fence. 3 practise fencing with a sword. 4 be evasive. 5 slang deal in (stolen goods). fencer n. [from *defence]

    Fencing n. 1 set of, or material for, fences. 2 sword-fighting, esp. As a sport.

    Fend v. 1 (foll. By for) look after (esp. Oneself). 2 (usu. Foll. By off) ward off. [from *defend]

    Fender n. 1 low frame bordering a fireplace. 2 naut. Padding protecting a ship against impact. 3 us vehicle’s bumper.

    Fennel n. Yellow-flowered fragrant herb used for flavouring. [latin fenum hay]

    Fenugreek n. Leguminous plant with aromatic seeds used for flavouring. [latin, = greek hay]

    Feral adj. 1 wild; uncultivated. 2 (of an animal) escaped and living wild. 3 brutal. [latin ferus wild]

    Ferial adj. Eccl. (of a day) not a festival or fast. [latin feria *fair2]

    Ferment —n. 1 excitement, unrest. 2 a fermentation. B fermenting-agent. —v. 1 undergo or subject to fermentation. 2 excite; stir up. [latin fermentum: related to *fervent]

    Fermentation n. 1 breakdown of a substance by yeasts and bacteria etc., esp. Of sugar in making alcohol. 2 agitation, excitement. fermentative adj. [latin: related to *ferment]

    Fermium n. Transuranic artificial radioactive metallic element. [fermi, name of a physicist]

    Fern n. (pl. Same or -s) flowerless plant usu. Having feathery fronds. ferny adj. [old english]

    Ferocious adj. Fierce, savage. ferociously adv. Ferocity n. [latin ferox]

    -ferous comb. Form (usu. -iferous) forming adjectives with the sense ‘bearing’, ‘having’ (odoriferous). [latin fero bear]

    Ferrel var. Of *ferrule.

    Ferret —n. Small polecat used in catching rabbits, rats, etc. —v. 1 hunt with ferrets. 2 (often foll. By out, about, etc.) Rummage; search out (secrets, criminals, etc.). [latin fur thief]

    Ferric adj. 1 of iron. 2 containing iron in a trivalent form. [latin ferrum iron]

    Ferris wheel n. Tall revolving vertical wheel with passenger cars in fairgrounds etc. [ferris, name of its inventor]

    Ferro-comb. Form 1 iron. 2 (of alloys) containing iron. [related to *ferric]

    Ferroconcrete —n. Reinforced concrete. —adj. Made of this.

    Ferrous adj. 1 containing iron. 2 containing iron in a divalent form.

    Ferrule n. (also ferrel) 1 ring or cap on the lower end of a stick, umbrella, etc. 2 band strengthening or forming a joint. [latin viriae bracelet]

    Ferry —n. (pl. -ies) 1 boat or aircraft etc. For esp. Regular transport, esp. Across water. 2 place or service of ferrying. —v. (-ies, -ied) 1 convey or go in a ferry. 2 (of a boat etc.) Cross water regularly. 3 transport, esp. Regularly, from place to place. ferryman n. [old norse]

    Fertile adj. 1 a (of soil) abundantly productive. B fruitful. 2 a (of a seed, egg, etc.) Capable of growth. B (of animals and plants) able to reproduce. 3 (of the

    mind) inventive. 4 (of nuclear material) able to become fissile by the capture of neutrons. fertility n. [french from latin]

    Fertilize v. (also -ise) (-zing or -sing) 1 make (soil etc.) Fertile. 2 cause (an egg, female animal, etc.) To develop by mating etc. fertilization n.

    Fertilizer n. (also -iser) substance added to soil to make it more fertile.

    Fervent adj. Ardent, intense (fervent admirer). fervency n. Fervently adv. [latin ferveo boil]

    Fervid adj. Ardent, intense. fervidly adv. [latin: related to *fervent]

    Fervor n. (brit. Fervour) passion, zeal. [latin: related to *fervent]

    Fervour n. (us fervor) passion, zeal. [latin: related to *fervent]

    Fescue n. A pasture and fodder grass. [latin festuca stalk, straw]

    Festal adj. 1 joyous, merry. 2 of a feast or festival. festally adv. [latin: related to *feast]

    Fester v. 1 make or become septic. 2 cause continuing anger or bitterness. 3 rot, stagnate. [latin *fistula]

    Festival n. 1 day or period of celebration. 2 series of cultural events in a town etc. (bath festival). [french: related to *festive]

    Festive adj. 1 of or characteristic of a festival. 2 joyous. festively adv. Festiveness n. [latin: related to *feast]

    Festivity n. (pl. -ies) 1 gaiety, rejoicing. 2 (in pl.) Celebration; party.

    Festoon —n. Curved hanging chain of flowers, leaves, ribbons, etc. —v. (often foll. By with) adorn with or form into festoons; decorate elaborately. [italian: related to *festive]

    Festschrift n. (also festschrift) (pl. -en or -s) collection of writings published in honour of a scholar. [german, = festival-writing]

    Feta n. Soft white esp. Ewe’s-milk cheese made esp. In greece. [greek pheta]

    Fetal us var. Of foetal (*fetus).

    Fetch —v. 1 go for and bring back (fetch a doctor). 2 be sold for (a price) (fetched £10). 3 cause (blood, tears, etc.) To flow. 4 draw (breath), heave (a sigh). 5 colloq. Give (a blow etc.) (fetched him a slap). —n.

    Fetching adj. Attractive. fetchingly adv.

    Fête —n. 1 outdoor fund-raising event with stalls and amusements etc. 2 festival. 3 saint’s day. —v. (-ting) honour or entertain lavishly. [french: related to *feast]

    Fetid adj. (also foetid) stinking. [latin feteo stink]

    Fetish n. 1 psychol. Abnormal object of sexual desire. 2 a object worshipped by primitive peoples. B obsessional cause (makes a fetish of punctuality). fetishism n. Fetishist n. Fetishistic adj. [portuguese feitiço charm]

    Fetlock n. Back of a horse’s leg above the hoof with a tuft of hair. [ultimately related to *foot]

    Fetter —n. 1 shackle for the ankles. 2 (in pl.) Captivity. 3 restraint. —v. 1 put into fetters. 2 restrict. [old english]

    Fettle n. Condition or trim (in fine fettle). [old english]

    Fetus n. (brit. Foetus) (pl. -tuses) unborn mammalian offspring, esp. A human embryo of eight weeks or more. foetal adj. [latin fetus offspring]

    Feu scot. —n. 1 perpetual lease at a fixed rent. 2 land so held. —v. (feus, feued, feuing) grant (land) on feu. [french: related to *fee]

    Feud1 —n. Prolonged hostility, esp. Between families, tribes, etc. —v. Conduct a feud. [germanic: related to *foe]

    Feud2 n. = fief. [medieval latin feudum fee]

    Feudal adj. 1 of, like, or according to the feudal system. 2 reactionary (feudal attitude). feudalism n. Feudalistic adj.

    Feudal system n. Medieval system of land tenure with allegiance and service due to the landowner.

    Fever —n. 1 a abnormally high temperature, often with delirium etc. B disease characterized by this (scarlet fever). 2 nervous excitement; agitation. —v. (esp. As fevered adj.) Affect with fever or excitement. [latin febris]

    Feverfew n. Aromatic bushy plant, used formerly to reduce fever, now to cure migraine. [latin febrifuga: related to *fever, fugo drive away]

    Feverish adj. 1 having symptoms of fever. 2 excited, restless. feverishly adv.

    Feverishness n.

    Fever pitch n. State of extreme excitement.

    Few —adj. Not many (few doctors smoke). —n. (as pl.) 1 (prec. By a) some but not many (a few of his friends were there). 2 not many (few are chosen). 3 (prec.

    By the) a the minority. B the elect. a good few colloq. Fairly large number. No fewer than as many as (a specified number). Not a few a considerable number. [old english]

    Few and far between predic. Adj. Scarce.

    Fey adj. 1 a strange, other-worldly; whimsical. B clairvoyant. 2 scot. Fated to die soon. [old english, = doomed to die]

    Fez n. (pl. Fezzes) man’s flat-topped conical red cap worn by some muslims. [turkish]

    Ff abbr. Mus. Fortissimo.

    Ff. Abbr. Following pages etc.

    Fiancé n. (fem. Fiancée pronunc. Same) person one is engaged to. [french]

    Fiasco n. (pl. -s) ludicrous or humiliating failure or breakdown. [italian, = bottle]

    Fiat n. 1 authorization. 2 decree. [latin, = let it be done]

    Fib —n. Trivial lie. —v. (-bb-) tell a fib. fibber n. [perhaps from fible-fable, a reduplication of *fable]

    Fiber n. (brit. Fibre) 1 thread or filament forming tissue or textile. 2 piece of threadlike glass. 3 substance formed of fibres, or able to be spun, woven, etc. 4 structure; character (moral fibre). 5 roughage. [french from latin fibra]

    Fiberboard n. (brit. Fibreboard) board of compressed wood or other plant fibres.

    Fiberglass n. (brit. Fibreglass) 1 fabric made from woven glass fibres. 2 plastic reinforced by glass fibres.

    Fibre n. (us fiber) 1 thread or filament forming tissue or textile. 2 piece of threadlike glass. 3 substance formed of fibres, or able to be spun, woven, etc. 4 structure; character (moral fibre). 5 roughage. [french from latin fibra]

    Fibreboard n. (us fiberboard) board of compressed wood or other plant fibres.

    Fibreglass n. (us fiberglass) 1 fabric made from woven glass fibres. 2 plastic reinforced by glass fibres.

    Fibre optics n.pl. Optics using thin glass fibres, usu. For the transmission of modulated light to carry signals.

    Fibril n. Small fibre. [diminutive of *fibre]

    Fibroid —adj. Of, like, or containing fibrous tissue or fibres. —n. Benign fibrous tumour growing in the womb.

    Fibrosis n. Thickening and scarring of connective tissue. [from *fibre, *-osis]

    Fibrositis n. Rheumatic inflammation of fibrous tissue. [from *fibre, *-itis]

    Fibrous adj. Of or like fibres.

    Fibula n. (pl. Fibulae or -s) small outer bone between the knee and the ankle. fibular adj. [latin, = brooch]

    -fic suffix (usu. As -ific) forming adjectives meaning ‘producing’, ‘making’ (prolific; pacific). [latin facio make]

    -fication suffix (usu. As -ification) forming nouns of action from verbs in -fy (purification; simplification).

    Fiche n. (pl. Same or -s) microfiche. [abbreviation]

    Fickle adj. Inconstant, changeable, disloyal. fickleness n. Fickly adv. [old english]

    Fiction n. 1 non-factual literature, esp. Novels. 2 invented idea, thing, etc. 3

    generally accepted falsehood (polite fiction). fictional adj. Fictionalize v. (also – ise) (-zing or -sing). [latin: related to *feign]

    Fictitious adj. Imaginary, unreal; not genuine.

    Fiddle —n. 1 colloq. Or derog. Stringed instrument played with a bow, esp. A violin. 2 colloq. Cheat or fraud. 3 fiddly task. —v. (-ling) 1 a (often foll. By with, at) play restlessly. B (often foll. By about) move aimlessly; waste time. C (usu. Foll. By with) adjust, tinker; tamper. 2 slang a cheat, swindle. B falsify. C get by cheating. 3 play (a tune) on the fiddle. as fit as a fiddle in very good health. Play second (or first) fiddle take a subordinate (or leading) role. [old english]

    Fiddle-faddle —n. Trivial matters. —v. (-ling) fuss, trifle. —int. Nonsense! [reduplication of *fiddle]

    Fiddler n. 1 fiddle-player. 2 slang swindler, cheat. 3 small n. American crab.

    Fiddlesticks int. Nonsense.

    Fiddling adj. 1 petty, trivial. 2 colloq. = *fiddly.

    Fiddly adj. (-ier, -iest) colloq. Awkward or tiresome to do or use.

    Fidelity n. 1 faithfulness, loyalty. 2 strict accuracy. 3 precision in sound

    reproduction (high fidelity). [latin fides faith]

    Fidget —v. (-t-) 1 move or act restlessly or nervously. 2 be or make uneasy. —n. 1 person who fidgets. 2 (usu. In pl.) Restless movements or mood. fidgety adj. [obsolete or dial. Fidge twitch]

    Fiduciary —adj. 1 a of a trust, trustee, or trusteeship. B held or given in trust. 2 (of paper currency) dependent on public confidence or securities. —n. (pl. -ies) trustee. [latin fiducia trust]

    Fie int. Archaic expressing disgust, shame, etc. [french from latin]

    Fief n. 1 land held under the feudal system or in fee. 2 person’s sphere of operation. [french: related to *fee]

    Field —n. 1 area of esp. Cultivated enclosed land. 2 area rich in some natural product (gas field). 3 land for a game etc. (football field). 4 participants in a contest, race, or sport, or all except those specified. 5 cricket a the side fielding. B fielder. 6 expanse of ice, snow, sea, sky, etc. 7 a battlefield. B (attrib.) (of artillery etc.) Light and mobile. 8 area of activity or study (in his own field). 9 physics a region in which a force is effective (gravitational field). B force exerted in this. 10 range of perception (field of view). 11 (attrib.) A (of an animal or plant) wild (field mouse).

    Field-day n. 1 exciting or successful time. 2 military exercise or review.

    Fielder n. = *fieldsman.

    Field events n.pl. Athletic events other than races.

    Fieldfare n. Thrush with grey plumage.

    Field-glasses n.pl. Outdoor binoculars.

    Field marshal n. Army officer of the highest rank.

    Field mouse n. Small long-tailed rodent.

    Field officer n. Army officer of field rank.

    Field of honour n. Battlefield.

    Field rank n. Army rank above captain and below general.

    Fieldsman n. Cricket, baseball, etc. Member (other than the bowler or pitcher) of the fielding side.

    Field sports n.pl. Outdoor sports, esp. Hunting, shooting, and fishing.

    Field telegraph n. Movable military telegraph.

    Fieldwork n. 1 practical surveying, science, sociology, etc. Conducted in the natural environment. 2 temporary fortification. fieldworker n.

    Fiend n. 1 evil spirit, demon. 2 a wicked or cruel person. B mischievous or annoying person. 3 slang devotee (fitness fiend). 4 difficult or unpleasant thing. fiendish adj. Fiendishly adv. [old english]

    Fierce adj. (fiercer, fiercest) 1 violently aggressive or frightening. 2 eager, intense. 3 unpleasantly strong or intense (fierce heat). fiercely adv. Fierceness n. [latin ferus savage]

    Fiery adj. (-ier, -iest) 1 consisting of or flaming with fire. 2 bright red. 3 hot; burning. 4 a flashing, ardent (fiery eyes). B pugnacious; spirited (fiery temper). fierily adv. Fieriness n.

    Fiesta n. Holiday, festivity, or religious festival. [spanish]

    Fifa abbr. International football federation. [french fédération internationale de football association]

    Fife n. Small shrill flute used in military music. fifer n. [german pfeife *pipe or french fifre]

    Fifteen adj. & n. 1 one more than fourteen. 2 symbol for this (15, xv, xv). 3 size etc. Denoted by fifteen. 4 team of fifteen players, esp. In rugby. 5 (15) (of a film)for persons of 15 and over. fifteenth adj. & n. [old english: related to *five, *-teen]

    Fifth adj. & n. 1 next after fourth. 2 any of five equal parts of a thing. 3 mus. Interval or chord spanning five consecutive notes in a diatonic scale (e.g. C to g). fifthly adv. [old english: related to *five]

    Fifth column n. Traitorous group within a country at war etc. fifth-columnist n.

    Fifty adj. & n. (pl. -ies) 1 five times ten. 2 symbol for this (50, l, l). 3 (in pl.) Numbers from 50 to 59, esp. The years of a century or of a person’s life. fiftieth adj. & n. [old english]

    Fifty-fifty —adj. Equal. —adv. Equally, half and half.

    Fig1 n. 1 soft pulpy fruit with many seeds. 2 (in full fig-tree) tree bearing figs. not care (or give) a fig not care at all. [latin ficus]

    Fig2 n. 1 dress or equipment (in full fig). 2 condition or form (in good fig). [obsolete feague: related to *fake]

    Fig. Abbr. Figure.

    Fig2 n. 1 dress or equipment (in full fig). 2 condition or form (in good fig). [obsolete feague: related to *fake]

    Fig. Abbr. Figure.

    Fight —v. (past and past part. Fought) 1 (often foll. By against, with) contend or contend with in war, battle, single combat, etc. 2 engage in (a battle, duel, etc.).

    3 contend (an election); maintain (a lawsuit, cause, etc.) Against an opponent. 4 strive to achieve something or to overcome (disease, fire, etc.). 5 make (one’s way) by fighting. —n. 1 a combat. B boxing-match. C battle. 2 conflict, struggle, or effort. 3 power or inclination to fight (no fight left). fight back 1 counter-attack. 2 suppress (tears etc.). Fight for 1 fight on behalf of. 2 fight to secure. Fight a losing battle struggle without hope of success. Fight off repel with effort. Fight out (usu. Fight it out) settle by fighting. Fight shy of avoid. Put up a fight offer resistance. [old english]

    Fighter n. 1 person or animal that fights. 2 fast military aircraft designed for attacking other aircraft.

    Fighting chance n. Slight chance of success if an effort is made.

    Fighting fit n. Fit and ready; at the peak of fitness.

    Fig-leaf n. 1 leaf of a fig-tree. 2 concealing device, esp. For the genitals (gen.

    3:7).

    Figment n. Invented or imaginary thing. [latin: related to *feign]

    Figuration n. 1 a act or mode of formation; form. B shape or outline. 2 ornamentation. [latin: related to *figure]

    Figurative adj. 1 metaphorical, not literal. 2 characterized by figures of speech. 3 of pictorial or sculptural representation. figuratively adv. [latin: related to *figure]

    Figure —n. 1 external form or bodily shape. 2 a silhouette, human form (figure on the lawn). B person of a specified kind or appearance (public figure; cut a poor figure). 3 a human form in drawing, sculpture, etc. B image or likeness. 4 two-or three-dimensional space enclosed by lines or surface(s), e.g. A triangle or sphere. 5 a numerical symbol or number, esp. 0–9. B amount; estimated value (cannot put a figure on it). C (in pl.) Arithmetical calculations. 6 diagram or illustration. 7 decorative pattern. 8 movement or sequence in a set dance etc. 9 mus. Succession of notes from which longer passages are developed. 10 (in full figure of speech) metaphor, hyperbole, etc. —v. (-ring) 1 appear or be mentioned, esp. Prominently. 2 represent pictorially. 3 imagine; picture mentally. 4 embellish with a pattern etc. (figured satin). 5 calculate; do arithmetic. 6 symbolize. 7 esp. Us a understand, consider. B colloq. Make sense; be likely (that figures). figure on us count on, expect. Figure out work out by arithmetic or logic. [latin figura: related to *feign]

    Figured bass n. Mus. = *continuo.

    Figurehead n. 1 nominal leader. 2 wooden bust or figure at a ship’s prow.

    Figure-skating n. Skating in prescribed patterns. figure-skater n.

    Figurine n. Statuette. [italian: related to *figure]

    Filament n. 1 threadlike body or fibre. 2 conducting wire or thread in an electric bulb etc. filamentous adj. [latin filum thread]

    Filbert n. 1 the cultivated hazel with edible nuts. 2 this nut. [anglo-french, because ripe about st philibert’s day]

    Filch v. Pilfer, steal. [origin unknown]

    File1 —n. 1 folder, box, etc., for holding loose papers. 2 papers kept in this. 3 computing collection of (usu. Related) data stored under one name. 4 line of people or things one behind another. —v. (-ling) 1 place (papers) in a file or among (esp. Public) records. 2 submit (a petition for divorce, a patent application, etc.). 3 (of a reporter) send (copy) to a newspaper. 4 walk in a line. [latin filum thread]

    File2 —n. Tool with a roughened surface for smoothing or shaping wood, fingernails, etc. —v. (-ling) smooth or shape with a file. [old english]

    Filial adj. Of or due from a son or daughter. filially adv. [latin filius, -a son, daughter]

    Filibuster —n. 1 obstruction of progress in a legislative assembly, esp. By prolonged speaking. 2 esp. Us person who engages in this. —v. Act as a filibuster (against). filibusterer n. [dutch: related to *freebooter]

    Filigree n. 1 fine ornamental work in gold etc. Wire. 2 similar delicate work. filigreed adj. [latin filum thread, granum seed]

    Filing n. (usu. In pl.) Particle rubbed off by a file.

    Filing cabinet n. Cabinet with drawers for storing files.

    Filipino —n. (pl. -s) native or national of the philippines. —adj. Of the philippines or filipinos. [spanish, = philippine]

    Fill —v. 1 (often foll. By with) make or become full. 2 occupy completely; spread over or through. 3 block up (a cavity in a tooth); drill and put a filling into (a decayed tooth). 4 appoint a person to hold or (of a person) hold (a post). 5 hold (an office). 6 carry out or supply (an order, commission, etc.). 7 occupy (vacant time). 8 (of a sail) be distended by wind. 9 (usu. As filling adj.) (esp. Of food) satisfy, satiate. —n. 1 as much as one wants or can bear (eat your fill). 2 enough to fill something. fill the bill be suitable or adequate. Fill in 1 complete (a form, document, etc.). 2 a complete (a drawing etc.) Within an outline. B fill (an outline) in this way. 3 fill (a hole etc.) Completely. 4 (often foll. By for) act as a substitute. 5 occupy oneself during (spare time). 6 colloq. Inform (a person) more fully. 7 slang thrash, beat. Fill out 1 enlarge to the required size. 2 become enlarged or plump. 3 us fill in (a document etc.). Fill up 1 make or become completely full. 2 fill in (a document etc.). 3 fill the petrol tank of (a car etc.). [old english]

    Filler n. 1 material used to fill a cavity or increase bulk. 2 small item filling space in a newspaper etc.

    Fillet —n. 1 a boneless piece of meat or fish. B (in full fillet steak) undercut of a sirloin. 2 ribbon etc. Binding the hair. 3 thin narrow strip or ridge. 4 narrow flat band between mouldings. —v. (-t-) 1 remove bones from (fish or meat) or divide into fillets. 2 bind or provide with fillet(s). [latin filum thread]

    Filling n. Material that fills a tooth, sandwich, pie, etc.

    Filling-station n. Garage selling petrol etc.

    Fillip —n. 1 stimulus, incentive. 2 flick with a finger or thumb. —v. (-p-) 1 stimulate. 2 flick. [imitative]

    Filly n. (pl. -ies) 1 young female horse. 2 colloq. Girl or young woman. [old norse]

    Film —n. 1 thin coating or covering layer. 2 strip or sheet of plastic etc. Coated with light-sensitive emulsion for exposure in a camera. 3 a story, episode, etc., on film, with the illusion of movement. B (in pl.) The cinema industry. 4 slight veil or haze etc. 5 dimness or morbid growth affecting the eyes. —v. 1 make a photographic film of (a scene, story, etc.). 2 cover or become covered with or as with a film. [old english]

    Film-goer n. Person who frequents the cinema.

    Filmsetting n. Typesetting by projecting characters on to photographic film.

    film-set v. Filmsetter n.

    Film star n. Celebrated film actor or actress.

    Film-strip n. Series of transparencies in a strip for projection.

    Filmy adj. (-ier, -iest) 1 thin and translucent. 2 covered with or as with a film.

    Filofax n. Propr. A type of loose-leaf personal organizer. [from *file1, *fact]

    Filo pastry n. (also phyllo pastry) leaved pastry like strudel pastry. [greek phullon leaf]

    Filter —n. 1 porous device for removing impurities etc. From a liquid or gas passed through it. 2 = *filter tip. 3 screen or attachment for absorbing or modifying light, x-rays, etc. 4 device for suppressing unwanted electrical or sound waves. 5 arrangement for filtering traffic. —v. 1 (cause to) pass through a filter. 2 (foll. By through, into, etc.) Make way gradually. 3 (foll. By out) (cause to) leak. 4 allow (traffic) or (of traffic) be allowed to pass to the left or right at a junction. [germanic: related to *felt1]

    Filter-paper n. Porous paper for filtering.

    Filter tip n. 1 filter on a cigarette removing some impurities. 2 cigarette with this.

    filter-tipped adj.

    Filth n. 1 repugnant or extreme dirt. 2 obscenity. [old english: related to *foul]

    Filthy —adj. (-ier, -iest) 1 extremely or disgustingly dirty. 2 obscene. 3 colloq. (of weather) very unpleasant. —adv. 1 filthily (filthy dirty). 2 colloq. Extremely (filthy rich). filthily adv. Filthiness n.

    Filthy lucre n. 1 dishonourable gain. 2 joc. Money.

    Filtrate —v. (-ting) filter. —n. Filtered liquid. filtration n. [related to *filter]

    Fin n. 1 (usu. Thin) flat external organ of esp. Fish, for propelling, steering, etc. (dorsal fin). 2 similar stabilizing projection on an aircraft, car, etc. 3 underwater swimmer’s flipper. finned adj. [old english]

    Finagle v. (-ling) colloq. Act or obtain dishonestly. finagler n. [dial. Fainaigue cheat]

    Final —adj. 1 situated at the end, coming last. 2 conclusive, decisive. —n. 1 last or deciding heat or game in sports etc. (cup final). 2 last daily edition of a newspaper. 3 (usu. In pl.) Examinations at the end of a degree course. finally adv. [latin finis end]

    Final cause n. Philos. Ultimate purpose.

    Final clause n. Gram. Clause expressing purpose.

    Finale n. Last movement or section of a piece of music or drama etc. [italian:

    related to *final]

    Finalist n. Competitor in the final of a competition etc.

    Finality n. (pl. -ies) 1 fact of being final. 2 final act etc. [latin: related to *final]

    Finalize v. (also -ise) (-zing or -sing) put into final form; complete. finalization n.

    Final solution n. Nazi policy (1941–5) of exterminating european jews.

    Finance —n. 1 management of (esp. Public) money. 2 monetary support for an enterprise. 3 (in pl.) Money resources of a state, company, or person. —v. (-cing) provide capital for. [french: related to *fine2]

    Finance company n. (also finance house) company providing money, esp. For hire-purchase transactions.

    Financial adj. Of finance. financially adv.

    Financial year n. Year as reckoned for taxing or accounting, esp. From 6 april.

    Financier n. Capitalist; entrepreneur. [french: related to *finance]

    Financier n. Capitalist; entrepreneur. [french: related to *finance]

    Finch n. Small seed-eating bird, esp. A crossbill, canary, or chaffinch. [old english]

    Find —v. (past and past part. Found) 1 a discover or get by chance or effort (found a key). B become aware of. 2 a obtain, succeed in obtaining; receive (idea found acceptance). B summon up (found courage). 3 seek out and provide or supply (will find you a book; finds his own meals). 4 discover by study etc. (find the answer). 5 a perceive or experience (find no sense in it). B (often in passive) discover to be present (not found in shakespeare). C discover from experience (finds england too cold). 6 law (of a jury, judge, etc.) Decide and declare (found him guilty). 7 reach by a natural process (water finds its own level). —n. 1 discovery of treasure etc. 2 valued thing or person newly discovered. all found (of wages) with board and lodging provided free. Find fault see *fault. Find favour prove acceptable. Find one’s feet 1 become able to walk. 2 develop independence. Find oneself 1 discover that one is (found herself agreeing).

    Finder n. 1 person who finds. 2 small telescope attached to a large one to locate an object. 3 viewfinder.

    Finding n. (often in pl.) Conclusion reached by an inquiry etc.

    Fine1 —adj. 1 a of high quality; excellent (fine painting). B good, satisfactory (that will be fine). 2 a pure, refined. B (of gold or silver) containing a specified proportion of pure metal. 3 imposing, dignified (fine buildings). 4 in good health (i’m fine). 5 (of weather etc.) Bright and clear. 6 a thin; sharp. B in small particles. C worked in slender thread. 7 euphemistic; flattering (fine words). 8 ornate, showy. 9 fastidious, affectedly refined. —adv. 1 finely. 2 colloq. Very well (suits me fine). —v. (-ning) 1 (often foll. By away, down, off) make or become finer, thinner, more tapering, or less coarse. 2 (often foll. By down) make or become clear (esp. Of beer etc.). not to put too fine a point on it to speak bluntly. finely adv. Fineness n. [french fin from latin finio *finish]

    Fine2 —n. Money to be paid as a penalty. —v. (-ning) punish by a fine (fined him £5). in fine in short. [french fin settlement of a dispute, from latin finis end]

    Fine arts n.pl. Poetry, music, and the visual arts, esp. Painting, sculpture, and architecture.

    Finery n. Showy dress or decoration. [from *fine1]

    Fines herbes n.pl. Mixed herbs used in cooking. [french, = fine herbs]

    Fine-spun adj. 1 delicate. 2 (of theory etc.) Too subtle, unpractical.

    Finesse —n. 1 refinement. 2 subtle manipulation. 3 artfulness; tact. 4 cards attempt to win a trick with a card that is not the highest held. —v. (-ssing) 1 use or achieve by finesse. 2 cards a make a finesse. B play (a card) as a finesse. [french: related to *fine1]

    Fine-tooth comb n. Comb with close-set teeth. go over with a fine-tooth comb check or search thoroughly.

    Fine-tune v. Make small adjustments to (a mechanism etc.).

    Finger —n. 1 any of the terminal projections of the hand (usu. Excluding the thumb). 2 part of a glove etc. For a finger. 3 finger-like object or structure (fish finger). 4 colloq. Small measure of liquor. —v. Touch, feel, or turn about with the fingers. get (or pull) one’s finger out slang start to act. Lay a finger on touch, however slightly. Put one’s finger on locate or identify exactly. fingerless adj. [old english]

    Finger-board n. Part of the neck of a stringed instrument on which the fingers press to vary the pitch.

    Finger-bowl n. (also finger-glass) small bowl for rinsing the fingers during a meal.

    Finger-dry v. Dry and style (the hair) by running one’s fingers through it.

    Fingering n. 1 technique etc. Of using the fingers, esp. In playing music. 2 indication of this in a musical score.

    Finger-mark n. Mark left by a finger.

    Fingernail n. Nail of each finger.

    Finger-plate n. Plate fixed to a door to prevent finger-marks.

    Fingerprint —n. Impression of a fingertip on a surface, used in detecting crime.

    —v. Record the fingerprints of.

    Finger-stall n. Protective cover for an injured finger.

    Fingertip n. Tip of a finger. have at one’s fingertips be thoroughly familiar with (a subject etc.).

    Finial n. Ornamental top or end of a roof, gable, etc. [anglo-french: related to *fine1]

    Finicky adj. (also finical, finicking) 1 over-particular, fastidious. 2 detailed; fiddly. finickiness n. [perhaps from *fine1]

    Finis n. End, esp. Of a book. [latin]

    Finish —v. 1 a (often foll. By off) bring or come to an end or the end of; complete; cease. B (usu. Foll. By off) colloq. Kill; vanquish. C (often foll. By off, up) consume or complete consuming (food or drink). 2 treat the surface of (cloth, woodwork, etc.). —n. 1 a end, last stage, completion. B point at which a race etc. Ends. 2 method, material, etc. Used for surface treatment of wood, cloth, etc. (mahogany finish). finish up (often foll. By in, by) end (finished up by crying). Finish with have no more to do with, complete using etc. [latin finis end]

    Finishing-school n. Private college preparing girls for fashionable society.

    Finishing touch n. (also finishing touches) final enhancing details.

    Finite adj. 1 limited; not infinite. 2 (of a part of a verb) having a specific number and person. [latin: related to *finish]

    Finn n. Native or national of finland; person of finnish descent. [old english]

    Finnan n. (in full finnan haddock) smoke-cured haddock. [findhorn, findon, in scotland]

    Finnic adj. Of the group of peoples or languages related to the finns or finnish.

    Finnish —adj. Of the finns or their language. —n. Language of the finns.

    Fino n. (pl. -s) light-coloured dry sherry. [spanish, = fine]

    Fiord n. (also fjord) long narrow sea inlet, as in norway. [norwegian]

    Fipple n. Plug at the mouth-end of a wind instrument. [origin unknown]

    Fipple flute n. Flute played by blowing endwise, e.g. A recorder.

    Fir n. 1 (in full fir-tree) evergreen coniferous tree with needles growing singly on the stems. 2 its wood. firry adj. [old norse]

    the stems. 2 its wood. firry adj. [old norse]

    Fir-cone n. Fruit of the fir.

    Fire —n. 1 a combustion of substances with oxygen, giving out light and heat. B flame or incandescence. 2 destructive burning (forest fire). 3 a burning fuel in a grate, furnace, etc. B = electric fire. C = gas fire. 4 firing of guns. 5 a fervour, spirit, vivacity. B poetic inspiration. 6 burning heat, fever. —v. (-ring) 1 (often foll. By at, into, on) a shoot (a gun, missile, etc.). B shoot a gun or missile etc. 2 produce (a broadside, salute, etc.) By shooting guns etc. 3 (of a gun etc.) Be discharged. 4 explode or kindle (an explosive). 5 deliver or utter rapidly (fired insults at us). 6 slang dismiss (an employee). 7 set fire to intentionally. 8 catch fire. 9 (of esp. An internal-combustion engine) undergo ignition. 10 supply (a furnace, engine, etc.) With fuel. 11 stimulate; enthuse. 12 bake, dry, or cure (pottery, bricks, tea, tobacco, etc.). 13 become or cause to become heated, excited, red, or glowing. catch fire begin to burn. Fire away colloq. Begin; go ahead. On fire 1 burning. 2 excited. Set fire to (or set on fire) ignite, kindle. Set the world (or thames) on fire do something remarkable or sensational. Under fire 1 being shot at. 2 being rigorously criticized or questioned. [old english]

    Fire-alarm n. Device warning of fire.

    Fire and brimstone n. Supposed torments of hell.

    Firearm n. (usu. In pl.) Gun, pistol, or rifle.

    Fire-ball n. 1 large meteor. 2 ball of flame or lightning. 3 energetic person.

    Fire-bomb n. Incendiary bomb.

    Firebox n. Place where fuel is burned in a steam engine or boiler.

    Firebrand n. 1 piece of burning wood. 2 person causing trouble or unrest.

    Fire-break n. Obstacle to the spread of fire in a forest etc., esp. An open space.

    Fire-brick n. Fireproof brick in a grate.

    Fire brigade n. Body of professional firefighters.

    Fireclay n. Clay used to make fire-bricks.

    Firecracker n. Us explosive firework.

    Firedamp n. Miners’ name for methane, which is explosive when mixed with air.

    Firedog n. Andiron.

    Fire door n. Fire-resistant door preventing the spread of fire.

    Fire-drill n. Rehearsal of the procedures to be used in case of fire.

    Fire-eater n. 1 conjuror who appears to swallow fire. 2 quarrelsome person.

    Fire-engine n. Vehicle carrying hoses, firefighters, etc.

    Fire-escape n. Emergency staircase etc. For use in a fire.

    Fire extinguisher n. Apparatus discharging foam etc. To extinguish a fire.

    Firefighter n. = *fireman 1.

    Firefly n. Beetle emitting phosphorescent light, e.g. The glow-worm.

    Fire-guard n. Protective screen placed in front of a fireplace.

    Fire-irons n.pl. Tongs, poker, and shovel for a domestic fire.

    Firelight n. Light from a fire in a fireplace.

    Firelighter n. Inflammable material used to start a fire in a grate.

    Fireman n. 1 member of a fire brigade. 2 person who tends a steam engine or steamship furnace.

    Fireplace n. 1 place for a domestic fire, esp. A recess in a wall. 2 structure surrounding this.

    Fire-power n. Destructive capacity of guns etc.

    Fire-practice n. Fire-drill.

    Fireproof —adj. Able to resist fire or great heat. —v. Make fireproof.

    Fire-raiser n. Arsonist. fire-raising n.

    Fire-screen n. 1 ornamental screen for a fireplace. 2 screen against the direct heat of a fire. 3 fire-guard.

    Fire-ship n. Hist. Ship set on fire and directed against an enemy’s ships etc.

    Fireside n. 1 area round a fireplace. 2 home or home-life.

    Fire station n. Headquarters of a fire brigade.

    Fire station n. Headquarters of a fire brigade.

    Fire-storm n. High wind or storm following a fire caused by bombs.

    Fire-trap n. Building without fire-escapes etc.

    Fire-watcher n. Person keeping watch for fires, esp. Those caused by bombs.

    Fire-water n. Colloq. Strong alcoholic liquor.

    Firewood n. Wood as fuel.

    Firework n. 1 device that burns or explodes spectacularly when lit. 2 (in pl.) Outburst of passion, esp. Anger.

    Firing n. 1 discharge of guns. 2 fuel.

    Firing-line n. 1 front line in a battle. 2 centre of activity etc.

    Firing-squad n. 1 soldiers ordered to shoot a condemned person. 2 group firing the salute at a military funeral.

    Firm1 —adj. 1 a solid or compact. B fixed, stable, steady. 2 a resolute,

    Firm1 —adj. 1 a solid or compact. B fixed, stable, steady. 2 a resolute, determined. B steadfast, constant (firm belief; firm friend). 3 (of an offer etc.) Definite; not conditional. —adv. Firmly (stand firm). —v. (often foll. By up) make or become firm, secure, compact, or solid. firmly adv. Firmness n. [latin firmus]

    Firm2 n. Business concern or its partners. [latin firma: cf. *firm1]

    Firmament n. Literary the sky regarded as a vault or arch. [latin: related to *firm1]

    Firmware n. Computing permanent kind of software.

    Firry see *fir.

    First —adj. 1 earliest in time or order (took the first bus). 2 foremost in rank or importance (first lord of the treasury). 3 most willing or likely (the first to admit it). 4 basic or evident (first principles). —n. 1 (prec. By the) person or thing first mentioned or occurring. 2 first occurrence of something notable. 3 place in the first class in an examination. 4 first gear. 5 a first place in a race. B winner of this. —adv. 1 before any other person or thing (first of all; first and foremost). 2 before someone or something else (get this done first). 3 for the first time (when did you first see her?). 4 in preference; rather (will see him damned first). at first at the beginning. At first hand directly from the original source.

    First aid n. Emergency medical treatment.

    First-born —adj. Eldest. —n. Person’s eldest child.

    First class —n. 1 best group or category. 2 best accommodation in a train, ship, etc. 3 mail given priority. 4 highest division in an examination. —adj. & adv.(first-class) 1 of or by the first class. 2 excellent.

    First cousin see *cousin.

    First-day cover n. Envelope with stamps postmarked on their first day of issue.

    First-degree adj. Denoting non-serious surface burns.

    First finger n. Finger next to the thumb.

    First floor n. (us second floor) floor above the ground floor.

    First-foot scot. —n. First person to cross a threshold in the new year. —v. Be a first-foot.

    First-fruit n. (usu. In pl.) 1 first agricultural produce of a season, esp. As offered to god. 2 first results of work etc.

    Firsthand adj. & adv. From the original source; direct.

    First lady n. (in the us) wife of the president.

    First light n. Dawn.

    Firstly adv. In the first place, first (cf. *first adv.).

    First mate n. (on a merchant ship) second in command.

    First name n. Personal or christian name.

    First night n. First public performance of a play etc.

    First offender n. Criminal without previous convictions.

    First officer n. = *first mate.

    First person see *person.

    First post n. (also last post) bugle-call as a signal to retire for the night.

    First-rate adj. 1 excellent. 2 colloq. Very well (feeling first-rate).

    First thing adv. Colloq. Before anything else; very early.

    Firth n. (also frith) 1 narrow inlet of sea. 2 estuary. [old norse: related to *fiord]

    Fiscal —adj. Of public revenue. —n. 1 legal official in some countries. 2 scot. = *procurator fiscal. [latin fiscus treasury]

    Fiscal year n. = *financial year.

    Fish1 —n. (pl. Same or -es) 1 vertebrate cold-blooded animal with gills and fins living wholly in water. 2 any of various non-vertebrate animals living wholly in water, e.g. The cuttlefish, shellfish, and jellyfish. 3 fish as food. 4 colloq. Person of a specified, usu. Unpleasant, kind (an odd fish). 5 (the fish or fishes) sign or constellation pisces. —v. 1 try to catch fish. 2 fish in (a certain river, pool, etc.). 3 (foll. By for) a search for. B seek indirectly (fishing for compliments). 4 (foll. By up, out, etc.) Retrieve with effort. drink like a fish drink alcohol excessively. Fish out of water person out of his or her element. Other fish to fry other matters to attend to. [old english]

    Fish2 n. Flat or curved plate of iron, wood, etc., used to strengthen a beam, joint, or mast. [french ficher fix, from latin figere *fix]

    Fish-bowl n. (usu. Round) glass bowl for pet fish.

    Fish cake n. Breaded cake of fish and mashed potato, usu. Fried.

    Fisher n. 1 animal that catches fish. 2 archaic fisherman. [old english]

    Fisherman n. Man who catches fish as a livelihood or for sport.

    Fishery n. (pl. -ies) 1 place where fish are caught or reared. 2 industry of fishing or breeding fish.

    Fish-eye lens n. Very wide-angle lens with a highly-curved front.

    Fish farm n. Place where fish are bred for food.

    Fish finger n. Small oblong piece of fish in batter or breadcrumbs.

    Fish-hook n. Barbed hook for catching fish.

    Fishing n. Catching fish.

    Fishing-line n. Thread with a baited hook etc. For catching fish.

    Fishing-rod n. Tapering usu. Jointed rod for fishing.

    Fish-kettle n. Oval pan for boiling fish.

    Fish-knife n. Knife for eating or serving fish.

    Fish-meal n. Ground dried fish as fertilizer or animal feed.

    Fishmonger n. Dealer in fish.

    Fishnet n. (often attrib.) Open-meshed fabric (fishnet stockings).

    Fish-plate n. Flat piece of iron etc. Connecting railway rails or positioning masonry.

    Fish-slice n. Flat slotted cooking utensil.

    Fishtail n. Device etc. Shaped like a fish’s tail.

    Fishwife n. 1 coarse-mannered or noisy woman. 2 woman who sells fish.

    Fishy adj. (-ier, -iest) 1 of or like fish. 2 slang dubious, suspect. fishily adv.

    Fishiness n.

    Fissile adj. 1 capable of undergoing nuclear fission. 2 tending to split. [latin:

    Fissile adj. 1 capable of undergoing nuclear fission. 2 tending to split. [latin:

    related to *fissure]

    Fission —n. 1 splitting of a heavy atomic nucleus, with a release of energy. 2 cell division as a mode of reproduction. —v. (cause to) undergo fission. fissionable adj. [latin: related to *fissure]

    Fission bomb n. Atomic bomb.

    Fissure —n. Crack or split, usu. Long and narrow. —v. (-ring) split, crack. [latin findo fiss-cleave]

    Fist n. Tightly closed hand. fistful n. (pl. -s). [old english]

    Fisticuffs n.pl. Fighting with the fists. [probably from obsolete fisty (from fist), cuff2]

    Fistula n. (pl. -s or -lae) abnormal or artificial passage between an organ and the body surface or between two organs. fistular adj. Fistulous adj. [latin, = pipe]

    Fit1 —adj. (fitter, fittest) 1 a well suited. B qualified, competent, worthy. C in suitable condition, ready. D (foll. By for) good enough (fit for a king). 2 in good health or condition. 3 proper, becoming, right (it is fit that). —v. (-tt-) 1 a (also absol.) Be of the right shape and size for (dress fits her; key doesn’t fit). B (often foll. By in, into) be correctly positioned (that bit fits here). C find room for (fit another on here). 2 make suitable or competent; adapt (fitted for battle). 3 (usu. Foll. By with) supply. 4 fix in place (fit a lock on the door). 5 = fit on. 6 befit, become (it fits the occasion). —n. Way in which a garment, component, etc., fits

    become (it fits the occasion). —n. Way in which a garment, component, etc., fits (tight fit). —adv. (foll. By to + infin.) Colloq. So that; likely (laughing fit to bust). fit the bill = fill the bill. Fit in 1 (often foll. By with) be compatible; accommodate (tried to fit in with their plans). 2 find space or time for (dentist fitted me in). Fit on try on (a garment). Fit out (or up) (often foll. By with) equip. See (or think) fit (often foll. By to + infin.) Decide or choose (a specified action). fitly adv. Fitness n. [origin unknown]

    Fit2 n. 1 sudden esp. Epileptic seizure with unconsciousness or convulsions. 2 sudden brief bout or burst (fit of giggles; fit of coughing). by (or in) fits and starts spasmodically. Have a fit colloq. Be greatly surprised or outraged. In fits laughing uncontrollably. [old english]

    Fitful adj. Spasmodic or intermittent. fitfully adv.

    Fitment n. (usu. In pl.) Fixed item of furniture.

    Fitted adj. 1 made to fit closely or exactly (fitted carpet). 2 provided with built-in fittings etc. (fitted kitchen). 3 built-in (fitted cupboards).

    Fitter n. 1 mechanic who fits together and adjusts machinery. 2 supervisor of the cutting, fitting, etc. Of garments.

    Fitting —n. 1 trying-on of a garment etc. For adjustment before completion. 2 (in pl.) Fixtures and fitments of a building. —adj. Proper, becoming, right. fittingly adv.

    Five adj. & n. 1 one more than four. 2 symbol for this (5, v, v). 3 size etc. Denoted by five. 4 set or team of five. 5 five o’clock (is it five yet?). 6 cricket hit

    scoring five runs. [old english]

    Fivefold adj. & adv. 1 five times as much or as many. 2 consisting of five parts.

    Five o’clock shadow n. Beard-growth visible in the latter part of the day.

    Fiver n. Colloq. Five-pound note.

    Fives n. Game in which a ball is hit with a gloved hand or bat against the walls of a court.

    Five-star adj. Of the highest class.

    Fivestones n. Jacks played with five pieces of metal etc. And usu. No ball.

    Fix —v. 1 make firm or stable; fasten, secure. 2 decide, settle, specify (a price, date, etc.). 3 mend, repair. 4 implant in the mind. 5 a (foll. By on, upon) direct (the eyes etc.) Steadily, set. B attract and hold (the attention, eyes, etc.). C (foll. By with) single out with one’s look etc. 6 place definitely, establish. 7 determine the exact nature, position, etc., of; refer (a thing) to a definite place or time; identify, locate. 8 a make (the eyes, features, etc.) Rigid. B (of eyes, features, etc.) Become rigid. 9 us colloq. Prepare (food or drink). 10 congeal or become congealed. 11 colloq. Punish, kill, deal with (a person). 12 colloq. A bribe or threaten into supporting. B gain a fraudulent result of (a race etc.). 13 slang inject a narcotic. 14 make (a colour, photographic image, etc.) Fast or permanent. 15 (of a plant etc.) Assimilate (nitrogen or carbon dioxide). —n. 1

    colloq. Dilemma, predicament. 2 a finding one’s position by bearings etc. B position found in this way. 3 slang dose of an addictive drug. be fixed (usu. Foll. By for) colloq. Be situated (regarding) (how is he fixed for money?). Fix on (or upon) choose, decide on. Fix up 1 arrange, organize. 2 accommodate. 3 (often foll. By with) provide (a person) (fixed me up with a job). fixable adj. [latin figo fix-]

    Fixate v. (-ting) 1 direct one’s gaze on. 2 psychol. (usu. In passive; often foll. By on, upon) cause (a person) to become abnormally attached to a person or thing. [latin: related to *fix]

    Fixation n. 1 state of being fixated. 2 obsession, monomania. 3 coagulation. 4 process of assimilating a gas to form a solid compound.

    Fixative —adj. Tending to fix or secure. —n. Fixative substance.

    Fixedly adv. Intently.

    Fixed star n. Astron. Seemingly motionless star.

    Fixer n. 1 person or thing that fixes. 2 photog. Substance for fixing a photographic image etc. 3 colloq. Person who makes esp. Illicit deals.

    Fixings n.pl. Us 1 apparatus or equipment. 2 trimmings for a dish, dress, etc.

    Fixity n. Fixed state; stability; permanence.

    Fixture n. 1 a something fixed in position. B colloq. Seemingly immovable person or thing (seems to be a fixture). 2 a sporting event, esp. A match, race, etc. B date agreed for this. 3 (in pl.) Articles attached to a house or land andregarded as legally part of it.

    Fizz —v. 1 make a hissing or spluttering sound. 2 (of a drink) effervesce. —n. 1 effervescence. 2 colloq. Effervescent drink, esp. Champagne. [imitative]

    Fizzle —v. (-ling) make a feeble hiss. —n. Such a sound. fizzle out end feebly. [imitative]

    Fizzy adj. (-ier, -iest) effervescent. fizziness n.

    Fjord var. Of *fiord.

    Fl. Abbr. 1 floruit. 2 fluid.

    Flab n. Colloq. Fat; flabbiness. [imitative, or from *flabby]

    Flabbergast v. (esp. As flabbergasted adj.) Colloq. Astonish; dumbfound. [origin uncertain]

    Flabby adj. (-ier, -iest) 1 (of flesh etc.) Limp; flaccid. 2 feeble. flabbiness n. [alteration of flappy: related to *flap]

    Flaccid adj. Limp, flabby, drooping. flaccidity n. [latin flaccus limp]

    Flag1 —n. 1 a usu. Oblong or square piece of cloth, attachable by one edge to a pole or rope as a country’s emblem or standard, a signal, etc. B small toy etc. Resembling a flag. 2 adjustable strip of metal etc. Indicating a taxi’s availability for hire. —v. (-gg-) 1 a grow tired; lag (was soon flagging). B hang down; droop. 2 mark out with or as if with a flag or flags. 3 (often foll. By that) inform or communicate by flag-signals. flag down signal to stop. [origin unknown]

    Flag2 —n. (also flagstone) 1 flat usu. Rectangular paving stone. 2 (in pl.) Pavement of these. —v. (-gg-) pave with flags. [probably scandinavian]

    Flag3 n. Plant with a bladed leaf (esp. The iris). [origin unknown]

    Flag-day n. Fund-raising day for a charity, esp. With the sale of small paper flags etc. In the street.

    Flagellant —n. Person who scourges himself, herself, or others as a religious discipline or as a sexual stimulus. —adj. Of flagellation. [latin flagellum whip]

    Flagellate v. (-ting) scourge, flog. flagellation n.

    Flagellum n. (pl. -gella) 1 long lashlike appendage on some microscopic organisms. 2 runner; creeping shoot. [latin, = whip]

    Flageolet n. Small flute blown at the end. [french from provençal]

    Flag of convenience n. Foreign flag under which a ship is registered, usu. To avoid regulations or financial charges.

    Flag-officer n. Admiral, vice admiral, or rear admiral, or the commodore of a yacht-club.

    Flag of truce n. White flag requesting a truce.

    Flagon n. 1 large bottle, usu. Holding a quart (1.13 litres), esp. Of wine, cider, etc. 2 large vessel for wine etc., usu. With a handle, spout, and lid. [latin flasco*flask]

    Flag-pole n. = *flagstaff.

    Flagrant adj. Blatant; notorious; scandalous. flagrancy n. Flagrantly adv. [latin flagro blaze]

    Flagship n. 1 ship with an admiral on board. 2 leader in a category etc.; exemplar.

    Flagstaff n. Pole on which a flag may be hoisted.

    Flagstone n. = *flag2.

    Flag-waving n. Populist agitation, chauvinism.

    Flail —n. Wooden staff with a short heavy stick swinging from it, used for threshing. —v. 1 wave or swing wildly. 2 beat with or as with a flail. [latin flagellum whip]

    Flair n. 1 natural talent in a specific area (flair for languages). 2 style, finesse. [french flairer to smell]

    Flak n. 1 anti-aircraft fire. 2 adverse criticism; abuse. [german, fliegerabwehrkanone, ‘aviator-defence-gun’]

    Flake —n. 1 small thin light piece of snow etc. 2 thin broad piece peeled or split off. 3 dogfish etc. As food. —v. (-king) (often foll. By away, off) 1 take off or come away in flakes. 2 sprinkle with or fall in flakes. flake out colloq. Fall asleep or drop from exhaustion; faint. [origin unknown]

    Flak jacket n. Protective reinforced military jacket.

    Flaky adj. (-ier, -iest) 1 of, like, or in flakes. 2 esp. Us slang crazy, eccentric.

    Flaky pastry n. Crumblier version of puff pastry.

    Flaky pastry n. Crumblier version of puff pastry.

    Flambé adj. (of food) covered with alcohol and set alight briefly (following a noun: pancakes flambé). [french: related to *flame]

    Flamboyant adj. 1 ostentatious; showy. 2 floridly decorated or coloured. flamboyance n. Flamboyantly adv. [french: related to *flambé]

    Flame —n. 1 a ignited gas. B portion of this (flame flickered; burst into flames). 2 a bright light or colouring. B brilliant orange-red colour. 3 a strong passion, esp. Love (fan the flame). B colloq. Sweetheart. —v. (-ming) 1 (often foll. By away, forth, out, up) burn; blaze. 2 (often foll. By out, up) a (of passion) break out. B (of a person) become angry. 3 shine or glow like flame. [latin flamma]

    Flamenco n. (pl. -s) 1 style of spanish gypsy guitar music with singing. 2 dance performed to this. [spanish, = flemish]

    Flame-thrower n. Weapon for throwing a spray of flame.

    Flaming adj. 1 emitting flames. 2 very hot (flaming june). 3 colloq. A passionate (flaming row). B expressing annoyance (that flaming dog). 4 bright-coloured.

    Flamingo n. (pl. -s or -es) tall long-necked wading bird with mainly pink plumage. [provençal: related to *flame]

    Flammable adj. Inflammable. flammability n. [latin: related to *flame]

    Flammable adj. Inflammable. flammability n. [latin: related to *flame]

    Usage flammable is often used because inflammable can be mistaken for a negative (the true negative being non-flammable).

    Flan n. 1 pastry case with a savoury or sweet filling. 2 sponge base with a sweet topping. [medieval latin flado -onis]

    Flange n. Projecting flat rim etc., for strengthening or attachment. [origin uncertain]

    Flank —n. 1 side of the body between ribs and hip. 2 side of a mountain, building, etc. 3 right or left side of an army etc. —v. (often in passive) be at or move along the side of (road flanked by mountains). [french from germanic]

    Flannel —n. 1 a woven woollen usu. Napless fabric. B (in pl.) Flannel garments, esp. Trousers. 2 face-cloth, esp. Towelling. 3 slang nonsense; flattery. —v. (-ll-; us -l-) 1 slang flatter. 2 wash with a flannel. [welsh gwlanen from gwlan wool]

    Flannelette n. Napped cotton fabric like flannel.

    Flap —v. (-pp-) 1 move or be moved up and down; beat. 2 colloq. Be agitated or panicky. 3 sway; flutter. 4 (usu. Foll. By away, off) strike (flies etc.) With flat object; drive. 5 colloq. (of ears) listen intently. —n. 1 piece of cloth, wood, etc. Attached by one side esp. To cover a gap, e.g. A pocket-cover, the folded part of an envelope, a table-leaf. 2 motion of a wing, arm, etc. 3 colloq. Agitation; panic (in a flap). 4 aileron. 5 light blow with something flat. flappy adj. [probably

    imitative]

    Flapdoodle n. Colloq. Nonsense. [origin unknown]

    Flapjack n. 1 sweet oatcake. 2 esp. Us pancake.

    Flapper n. 1 person apt to panic. 2 slang (in the 1920s) young unconventional woman.

    Flare —v. (-ring) 1 widen gradually (flared trousers). 2 (cause to) blaze brightly and unsteadily. 3 burst out, esp. Angrily. —n. 1 a dazzling irregular flame or light. B sudden outburst of flame. 2 flame or bright light used as a signal or to illuminate a target etc. 3 a gradual widening, esp. Of a skirt or trousers. B (in pl.) Wide-bottomed trousers. flare up burst into a sudden blaze, anger, activity, etc. [origin unknown]

    Flare-path n. Line of lights on a runway to guide aircraft.

    Flare-up n. Sudden outburst.

    Flash —v. 1 (cause to) emit a brief or sudden light; (cause to) gleam. 2 send or reflect like a sudden flame (eyes flashed fire). 3 a burst suddenly into view or perception (answer flashed upon me). B move swiftly (train flashed past). 4 a send (news etc.) By radio, telegraph, etc. B signal to (a person) with lights. 5 colloq. Show ostentatiously (flashed her ring). 6 slang indecently expose oneself. —n. 1 sudden bright light or flame, e.g. Of lightning. 2 an instant (in a flash). 3

    sudden brief feeling, display of wit, etc. (flash of hope). 4 = *newsflash. 5 photog. = *flashlight 1. 6 mil. Coloured cloth patch on a uniform. 7 bright patch of colour. —adj. Colloq. Gaudy; showy; vulgar (flash car). [imitative]

    Flashback n. Scene set in an earlier time than the main action.

    Flash bulb n. Photog. Bulb for a flashlight.

    Flash-cube n. Photog. Set of four flash bulbs in a cube, operated in turn.

    Flasher n. 1 slang man who indecently exposes himself. 2 automatic device for switching lights rapidly on and off.

    Flash-gun n. Device operating a camera flashlight.

    Flashing n. (usu. Metal) strip used to prevent water penetration at a roof joint etc. [dial.]

    Flash in the pan n. Promising start followed by failure.

    Flash-lamp n. Portable flashing electric lamp.

    Flashlight n. 1 light giving an intense flash, used for night or indoor photography. 2 us electric torch.

    photography. 2 us electric torch.

    Flashpoint n. 1 temperature at which vapour from oil etc. Will ignite in air. 2 point at which anger etc. Is expressed.

    Flashy adj. (-ier, -iest) showy; gaudy; cheaply attractive. flashily adv. Flashiness n.

    Flask n. 1 narrow-necked bulbous bottle for wine etc. Or used in chemistry. 2 = *hip-flask. 3 = vacuum flask. [latin flasca, flasco: cf. flagon]

    Flat1 —adj. (flatter, flattest) 1 a horizontally level. B even; smooth; unbroken. C level and shallow (flat cap). 2 unqualified; downright (flat refusal). 3 a dull; lifeless; monotonous (in a flat tone). B dejected. 4 (of a fizzy drink) having lost its effervescence. 5 (of an accumulator, battery, etc.) Having exhausted its charge. 6 mus. A below true or normal pitch (violins are flat). B (of a key) having a flat or flats in the signature. C (as b, e, etc. Flat) semitone lower than b, e, etc. 7 (of a tyre) punctured; deflated. —adv. 1 at full length; spread out (lay flat; flat against the wall). 2 colloq. A completely, absolutely (flat broke). B exactly (in five minutes flat). 3 mus. Below the true or normal pitch (sings flat). —n. 1 flat part or thing (flat of the hand). 2 level ground, esp. A plain or swamp. 3 mus. A note lowered a semitone below natural pitch. B sign indicating this. 4 (as the flat) flat racing or its season. 5 theatr. Flat scenery on a frame. 6 esp. Us colloq. Flat tyre. flat out 1 at top speed. 2 using all one’s strength etc. That’s flat colloq. That is definite. flatly adv. Flatness n. Flattish adj. [old norse]

    Flat2 n. Set of rooms, usu. On one floor, as a residence. flatlet n. [obsolete flet floor, dwelling, from germanic: related to *flat1]

    Flat-fish n. Sole, plaice, etc. With both eyes on one side of a flattened body.

    Flat foot n. Foot with a flattened arch.

    Flat-footed n. 1 having flat feet. 2 colloq. A uninspired. B unprepared. C resolute.

    Flat-iron n. Hist. Domestic iron heated on a fire etc.

    Flatmate n. Person sharing a flat.

    Flat race n. Horse race without jumps, over level ground. flat racing n.

    Flat rate n. Unvarying rate or charge.

    Flat spin n. 1 aeron. A nearly horizontal spin. 2 colloq. State of panic.

    Flatten v. 1 make or become flat. 2 colloq. A humiliate. B knock down.

    Flatter v. 1 compliment unduly, esp. For gain or advantage. 2 (usu. Refl.; usu. Foll. By that) congratulate or delude (oneself etc.) (he flatters himself that he can sing). 3 (of colour, style, portrait, painter etc.) Enhance the appearance of (that blouse flatters you). 4 cause to feel honoured. flatterer n. Flattering adj. Flatteringly adv. [french]

    Flattery n. Exaggerated or insincere praise.

    Flatulent adj. 1 a causing intestinal wind. B caused by or suffering from this. 2 (of speech etc.) Inflated, pretentious. flatulence n. [latin flatus blowing]

    Flatworm n. Worm with a flattened body, e.g. Flukes.

    Flaunt v. (often refl.) Display proudly; show off; parade. [origin unknown]

    Usage flaunt is often confused with flout which means ‘to disobey contemptuously’.

    Flautist n. Flute-player. [italian: related to *flute]

    Flavor (brit. Flavour) —n. 1 mingled sensation of smell and taste (cheesy flavour). 2 characteristic quality (romantic flavour). 3 (usu. Foll. By of) slight admixture (flavour of failure). —v. Give flavour to; season. flavourless adj. Flavoursome adj. [french]

    Flavoring n. (brit. Flavouring) substance used to flavour food or drink.

    Flavour (us flavor) —n. 1 mingled sensation of smell and taste (cheesy flavour). 2 characteristic quality (romantic flavour). 3 (usu. Foll. By of) slight admixture (flavour of failure). —v. Give flavour to; season. flavourless adj. Flavoursome

    (flavour of failure). —v. Give flavour to; season. flavourless adj. Flavoursome adj. [french]

    Flavouring n. (us flavoring) substance used to flavour food or drink.

    Flavour of the month n. (also flavour of the week) temporary trend or fashion.

    Flaw1 —n. 1 imperfection; blemish. 2 crack, chip, etc. 3 invalidating defect. — v. Crack; damage; spoil. flawless adj. Flawlessly adv. [old norse]

    Flaw2 n. Squall of wind. [low german or dutch]

    Flax n. 1 blue-flowered plant cultivated for its textile fibre and its seeds. 2 flax fibres. [old english]

    Flaxen adj. 1 of flax. 2 (of hair) pale yellow.

    Flax-seed n. Linseed.

    Flay v. 1 strip the skin or hide off, esp. By beating. 2 criticize severely. 3 peel off (skin, bark, peel, etc.). 4 extort money etc. From. [old english]

    Flea n. Small wingless jumping parasitic insect. a flea in one’s ear sharp reproof. [old english]

    Fleabag n. Slang shabby or unattractive person or thing.

    Flea-bite n. 1 bite of a flea. 2 trivial injury or inconvenience.

    Flea-bitten adj. 1 bitten by or infested with fleas. 2 shabby.

    Flea market n. Street market selling second-hand goods etc.

    Flea-pit n. Dingy dirty cinema etc.

    Fleck —n. 1 small patch of colour or light. 2 particle, speck. —v. Mark with flecks. [old norse, or low german or dutch]

    Flection n. (brit. Flexion) 1 bending or being bent, esp. Of a limb or joint. 2 bent part; curve. [latin flexio: related to *flex1]

    Fled past and past part. Of *flee.

    Fledge v. (-ging) 1 provide or deck (an arrow etc.) With feathers. 2 bring up (a young bird) until it can fly. 3 (as fledged adj.) A able to fly. B independent; mature. [obsolete adj. Fledge fit to fly]

    Fledgling n. (also fledgeling) 1 young bird. 2 inexperienced person.

    Flee v. (past and past part. Fled) 1 (often foll. By from, before) a run away (from); leave abruptly (fled the room). B seek safety by fleeing. 2 vanish. [old english]

    Fleece —n. 1 a woolly coat of a sheep etc. B wool sheared from a sheep at one time. 2 thing resembling a fleece, esp. Soft fabric for lining etc. —v. (-cing) 1 (often foll. By of) strip of money, valuables, etc.; swindle. 2 shear (sheep etc.). 3 cover as if with a fleece (sky fleeced with clouds). fleecy adj. (-ier, -iest). [old english]

    Fleet —n. 1 a warships under one commander-in-chief. B (prec. By the) nation’s warships etc.; navy. 2 number of vehicles in one company etc. —adj. Poet. Literary swift, nimble. [old english]

    Fleeting adj. Transitory; brief. fleetingly adv.

    Fleming n. 1 native of medieval flanders. 2 member of a flemish-speaking people of n. And w. Belgium. [old english]

    Flemish —adj. Of flanders. —n. Language of the flemings. [dutch]

    Flesh n. 1 a soft, esp. Muscular, substance between the skin and bones of an animal or a human. B plumpness; fat. 2 the body, esp. As sinful. 3 pulpy substance of a fruit etc. 4 a visible surface of the human body. B (also flesh-

    colour) yellowish pink colour. 5 animal or human life. all flesh all animate creation. Flesh out make or become substantial. In the flesh in person. One’s own flesh and blood near relatives. [old english]

    Flesh and blood —n. 1 the body or its substance. 2 humankind. 3 human nature, esp. As fallible. —adj. Real, not imaginary.

    Fleshly adj. (-lier, -liest) 1 bodily; sensual. 2 mortal. 3 worldly.

    Fleshpots n.pl. Luxurious living.

    Flesh-wound n. Superficial wound.

    Fleshy adj. (-ier, -iest) of flesh; plump, pulpy. fleshiness n.

    Fleur-de-lis n. (also fleur-de-lys) (pl. Fleurs-pronunc. Same) 1 iris flower. 2 heraldry a lily of three petals. B former royal arms of france. [french, = flower of lily]

    Flew past of *fly1.

    Flews n.pl. Hanging lips of a bloodhound etc. [origin unknown]

    Flex1 v. 1 bend (a joint, limb, etc.) Or be bent. 2 move (a muscle) or (of a

    Flex1 v. 1 bend (a joint, limb, etc.) Or be bent. 2 move (a muscle) or (of a muscle) be moved to bend a joint. [latin flecto flex-bend]

    Flex2 n. Flexible insulated electric cable. [abbreviation of *flexible]

    Flexible adj. 1 capable of bending without breaking; pliable. 2 manageable. 3 adaptable; variable (works flexible hours). flexibility n. Flexibly adv. [latin flexibilis: related to *flex1]

    Flexion n. (us flection) 1 bending or being bent, esp. Of a limb or joint. 2 bent part; curve. [latin flexio: related to *flex1]

    Flexitime n. System of flexible working hours. [from *flexible]

    Flibbertigibbet n. Gossiping, frivolous, or restless person. [imitative]

    Flick —n. 1 a light sharp blow with a whip etc. B sudden release of a bent digit, esp. To propel a small object. 2 sudden movement or jerk, esp. Of the wrist in throwing etc. 3 colloq. A cinema film. B (in pl.; prec. By the) the cinema. —v. 1 (often foll. By away, off) strike or move with a flick (flicked the ash off). 2 give a flick with (a whip etc.). flick through 1 turn over (cards, pages, etc.). 2 a turn over the pages etc. Of, by a rapid movement of the fingers. B glance through (a book etc.). [imitative]

    Flicker —v. 1 (of light or flame) shine or burn unsteadily. 2 flutter. 3 (of hope etc.) Waver. —n. 1 flickering movement or light. 2 brief spell (of hope etc.). flicker out die away. [old english]

    Flick-knife n. Knife with a blade that springs out when a button is pressed.

    Flier var. Of *flyer.

    Flight1 n. 1 a act or manner of flying. B movement or passage through the air. 2 a journey through the air or in space. B timetabled airline journey. 3 flock of birds, insects, etc. 4 (usu. Foll. By of) series, esp. Of stairs. 5 imaginative excursion or sally (flight of fancy). 6 (usu. Foll. By of) volley (flight of arrows). 7 tail of a dart. [old english: related to *fly1]

    Flight2 n. Fleeing, hasty retreat. put to flight cause to flee. Take (or take to) flight flee. [old english]

    Flight bag n. Small zipped shoulder bag for air travel.

    Flight-deck n. 1 deck of an aircraft-carrier. 2 control room of a large aircraft.

    Flightless adj. (of a bird etc.) Unable to fly.

    Flight lieutenant n. Raf officer next below squadron leader.

    Flight path n. Planned course of an aircraft etc.

    Flight-recorder n. Device in an aircraft recording technical details of a flight.

    Flight-recorder n. Device in an aircraft recording technical details of a flight.

    Flight sergeant n. Raf rank next above sergeant.

    Flighty adj. (-ier, -iest) (usu. Of a girl) frivolous, fickle, changeable. flightiness n.

    Flimsy adj. (-ier, -iest) 1 insubstantial, rickety (flimsy structure). 2 (of an excuse etc.) Unconvincing. 3 (of clothing) thin. flimsily adv. Flimsiness n. [origin uncertain]

    Flinch v. Draw back in fear etc.; wince. [french from germanic]

    Fling —v. (past and past part. Flung) 1 throw or hurl forcefully or hurriedly. 2 (foll. By on, off) put on or take off (clothes) carelessly or rapidly. 3 put or send suddenly or violently (was flung into jail). 4 rush, esp. Angrily (flung out of the room). 5 (foll. By away) discard rashly. —n. 1 act of flinging; throw. 2 bout of wild behaviour. 3 whirling scottish dance, esp. The highland fling. [old norse]

    Flint n. 1 a hard grey siliceous stone. B piece of this, esp. As a primitive tool or weapon. 2 piece of hard alloy used to give a spark. 3 anything hard and unyielding. flinty adj. (-ier, -iest). [old english]

    Flintlock n. Hist. Old type of gun fired by a spark from a flint.

    Flip1 —v. (-pp-) 1 flick or toss (a coin, pellet, etc.) So that it spins in the air. 2

    turn (a small object) over; flick. 3 slang = flip one’s lid. —n. 1 act of flipping. 2 colloq. Short trip. —adj. Colloq. Glib; flippant. flip one’s lid slang lose self-control; go mad. Flip through = flick through. [probably from *fillip]

    Flip2 n. 1 = egg-flip. 2 drink of heated beer and spirit. [perhaps from flip1]

    Flip chart n. Large pad of paper on a stand.

    Flip-flop n. (usu. Rubber) sandal with a thong between the toes. [imitative]

    Flippant adj. Frivolous; disrespectful; offhand. flippancy n. Flippantly adv. [from *flip1]

    Flipper n. 1 broad flat limb of a turtle, penguin, etc., used in swimming. 2 similar rubber foot attachment for underwater swimming. 3 slang hand.

    Flipping adj. & adv. Slang expressing annoyance, or as an intensifier.

    Flip side n. Colloq. 1 reverse side of a gramophone record. 2 reverse or less important side of something.

    Flirt —v. 1 (usu. Foll. By with) try to attract sexually but without serious intent. 2 (usu. Foll. By with) superficially engage in; trifle. —n. Person who flirts. flirtation n. Flirtatious adj. Flirtatiously adv. Flirtatiousness n. [imitative]

    Flit —v. (-tt-) 1 move lightly, softly, or rapidly. 2 make short flights. 3 colloq. Disappear secretly to escape creditors etc. —n. Act of flitting. [old norse: related to *fleet]

    Flitch n. Side of bacon. [old english]

    Flitter v. Flit about; flutter. [from *flit]

    Flitter-mouse n. = *bat2.

    Float —v. 1 a (cause to) rest or move on the surface of a liquid. B set (a stranded ship) afloat. 2 colloq. A move in a leisurely way. B (often foll. By before) hover before the eye or mind. 3 (often foll. By in) move or be suspended freely in a liquid or gas. 4 a start or launch (a company, scheme, etc.). B offer (stock, shares, etc.) On the stock market. 5 commerce cause or allow to have a fluctuating exchange rate. 6 circulate or cause (a rumour or idea) to circulate. — n. 1 thing that floats, esp.: a a raft. B a light object as an indicator of a fish biting or supporting a fishing-net. C a hollow structure enabling an aircraft to float on water. D a floating device on water, petrol, etc., controlling the level. 2 small esp. Electrically-powered vehicle or cart (milk float). 3 decorated platform or tableau on a lorry in a procession etc. 4 a supply of loose change in a shop, at a fête, etc. B petty cash. 5 theatr. (in sing. Or pl.) Footlights. 6 tool for smoothing plaster. floatable adj. [old english]

    Floatation var. Of *flotation.

    Floating adj. Not settled; variable (floating population).

    Floating dock n. Floating structure usable as a dry dock.

    Floating kidney n. Abnormally movable kidney.

    Floating rib n. Lower rib not attached to the breastbone.

    Floating voter n. Voter without fixed allegiance.

    Floaty adj. (esp. Of fabric) light and airy. [from *float]

    Flocculent adj. Like or in tufts of wool etc.; downy. flocculence n. [related to *flock2]

    Flock1 —n. 1 animals of one kind as a group or unit. 2 large crowd of people. 3 people in the care of a priest or teacher etc. —v. (usu. Foll. By to, in, out, together) congregate; mass; troop. [old english]

    Flock2 n. 1 lock or tuft of wool, cotton, etc. 2 (also in pl.; often attrib.) Wool-refuse etc. Used for quilting and stuffing. [latin floccus]

    Flock-paper n. (also flock-wallpaper) wallpaper with a raised flock pattern.

    Floe n. Sheet of floating ice. [norwegian]

    Flog v. (-gg-) 1 a beat with a whip, stick, etc. B make work through violent effort (flogged the engine). 2 (often foll. By off) slang sell. flog a dead horse waste one’s efforts. Flog to death colloq. Talk about or promote at tedious length. [origin unknown]

    Flood —n. 1 a overflowing or influx of water, esp. Over land; inundation. B the water that overflows. 2 outpouring; torrent (flood of tears). 3 inflow of the tide (also in comb.: flood-tide).

    Floodgate n. 1 gate for admitting or excluding water, esp. In a lock. 2 (usu. In pl.) Last restraint against tears, rain, anger, etc.

    Floodlight —n. Large powerful light (usu. One of several) to illuminate a building, sports ground, etc. —v. Illuminate with floodlights. floodlit adj.

    Flood-tide n. Exceptionally high tide caused esp. By the moon.

    Floor —n. 1 lower supporting surface of a room. 2 a bottom of the sea, a cave, etc. B any level area. 3 all the rooms etc. On one level of a building; storey. 4 a(in a legislative assembly) place where members sit and speak. B right to speak next in a debate (gave him the floor). 5 minimum of prices, wages, etc. 6 colloq. Ground. —v. 1 provide with a floor; pave. 2 knock or bring (a person) down. 3 colloq. Confound, baffle. 4 colloq. Overcome. 5 serve as the floor of (lino floored the hall). from the floor (of a speech etc.) Given by a member of the audience. Take the floor 1 begin to dance. 2 speak in a debate. [old english]

    Floorboard n. Long wooden board used for flooring.

    Floorcloth n. Cloth for washing the floor.

    Flooring n. Material of which a floor is made.

    Floor manager n. Stage-manager of a television production.

    Floor plan n. Diagram of the rooms etc. On one storey.

    Floor show n. Nightclub entertainment.

    Floozie n. (also floozy) (pl. -ies) colloq. Esp. Disreputable girl or woman. [origin unknown]

    Flop —v. (-pp-) 1 sway about heavily or loosely. 2 (often foll. By down, on, into) fall or sit etc. Awkwardly or suddenly. 3 slang fail; collapse (play flopped). 4 make a dull soft thud or splash. —n. 1 flopping movement or sound. 2 slang failure. —adv. With a flop. [var. Of *flap]

    Floppy —adj. (-ier, -iest) tending to flop; flaccid. —n. (pl. -ies) (in full floppy disk) computing flexible disc for the storage of data. floppiness n.

    Flora n. (pl. -s or florae) 1 plant life of a region or period. 2 list or book of these.

    [latin flora, name of the goddess of flowers]

    [latin flora, name of the goddess of flowers]

    Floral adj. Of, decorated with, or depicting flowers. florally adv. [latin]

    Florentine —adj. Of florence in italy. —n. Native or citizen of florence. [latin]

    Floret n. 1 each of the small flowers making up a composite flower-head. 2 each stem of a head of cauliflower, broccoli, etc. 3 small flower. [latin flos *flower]

    Floribunda n. Plant, esp. A rose, bearing dense clusters of flowers. [related to *floret: cf. *moribund]

    Florid adj. 1 ruddy (florid complexion). 2 elaborately ornate; showy. floridly adv. Floridness n. [latin: related to *flower]

    Florin n. Hist. 1 british two-shilling coin now worth 10 pence. 2 english or foreign gold or silver coin. [italian fiorino: related to *florist]

    Florist n. Person who deals in or grows flowers. [latin flos *flower]

    Floruit —v. Flourished; lived and worked (of a painter, writer, etc., whose exact dates are unknown). —n. Period or date of working etc. [latin, = he or she flourished]

    Floss —n. 1 rough silk of a silkworm’s cocoon. 2 silk thread used in embroidery. 3 = *dental floss. —v. (also absol.) Clean (teeth) with dental floss. flossy adj. [french floche]

    Flotation n. (also floatation) launching or financing of a commercial enterprise etc. [from *float]

    Flotilla n. 1 small fleet. 2 fleet of small ships. [spanish]

    Flotsam n. Wreckage found floating. [anglo-french: related to *float]

    Flotsam and jetsam n. 1 odds and ends. 2 vagrants.

    Flounce1 —v. (-cing) (often foll. By away, about, off, out) go or move angrily or impatiently (flounced out in a huff). —n. Flouncing movement. [origin unknown]

    Flounce2 —n. Frill on a dress, skirt, etc. —v. (-cing) trim with flounces. [alteration of frounce pleat, from french]

    Flounder1 —v. 1 struggle helplessly as if wading in mud. 2 do a task clumsily. —n. Act of floundering. [imitative]

    Flounder2 n. (pl. Same) 1 edible european flat-fish. 2 n. American flat-fish. [anglo-french, probably scandinavian]

    Flour —n. 1 meal or powder from ground wheat etc. 2 any fine powder. —v. Sprinkle with flour. floury adj. (-ier, -iest). Flouriness n. [different spelling of *flower ‘best part’]

    Flourish —v. 1 a grow vigorously; thrive. B prosper. C be in one’s prime. 2 wave, brandish. —n. 1 showy gesture. 2 ornamental curve in handwriting. 3 mus. Ornate passage or fanfare. [latin floreo from flos *flower]

    Flout —v. Disobey (the law etc.) Contemptuously; mock; insult. —n. Flouting speech or act. [dutch fluiten whistle: related to *flute]

    Usage flout is often confused with flaunt which means ‘to display proudly, show off’.

    Flow —v. 1 glide along as a stream. 2 (of liquid, blood, etc.) Gush out; be spilt. 3 (of blood, money, electric current, etc.) Circulate. 4 move smoothly or steadily. 5 (of a garment, hair, etc.) Hang gracefully. 6 (often foll. By from) be caused by. 7 (esp. Of the tide) be in flood. 8 (of wine) be plentiful. 9 (foll. By with) archaic be plentifully supplied with (flowing with milk and honey). —n. 1 a flowing movement or mass. B flowing liquid (stop the flow). C outpouring; stream (flow of complaints). 2 rise of a tide or river (ebb and flow). [old english]

    Flow chart n. (also flow diagram or flow sheet) diagram of the movement or action in a complex activity.

    Flower —n. 1 part of a plant from which the fruit or seed is developed. 2 blossom, esp. Used for decoration. 3 plant cultivated for its flowers. —v. 1 bloom or cause (a plant) to bloom; blossom. 2 reach a peak. the flower of the best of. In flower blooming. flowered adj. [latin flos flor-]

    Flower-bed n. Garden bed for flowers.

    Flower-head n. = *head n. 3 c.

    Flower people n. Hippies with flowers as symbols of peace and love.

    Flowerpot n. Pot for growing a plant in.

    Flower power n. Peace and love, esp. As a political idea.

    Flowers of sulphur n. Fine powder produced when sulphur evaporates and condenses.

    Flowery adj. 1 florally decorated. 2 (of style, speech, etc.) High-flown; ornate. 3 full of flowers. floweriness n.

    Flowing adj. 1 (of style etc.) Fluent; easy. 2 (of a line, curve, etc.) Smoothly continuous. 3 (of hair etc.) Unconfined. flowingly adv.

    Flown past part. Of *fly1.

    Flu n. Colloq. Influenza. [abbreviation]

    Fluctuate v. (-ting) vary irregularly; rise and fall. fluctuation n. [latin fluctus wave]

    Flue n. 1 smokeduct in a chimney. 2 channel for conveying heat. [origin unknown]

    Fluent adj. 1 (of speech, style, etc.) Flowing, natural. 2 verbally facile, esp. In a foreign language (fluent in german). fluency n. Fluently adv. [latin fluo flow]

    Fluff —n. 1 soft fur, feathers, or fabric particles etc. 2 slang mistake in a performance etc. —v. 1 (often foll. By up) shake into or become a soft mass. 2 colloq. Make a fluff; bungle. bit of fluff slang offens. Attractive woman. fluffy adj. (-ier, -iest). Fluffiness n. [probably dial. Alteration of flue fluff]

    Flugelhorn n. Valved brass wind instrument like a cornet. [german flügel wing, horn horn]

    Fluid —n. 1 substance, esp. A gas or liquid, whose shape is determined by its confines. 2 fluid part or secretion. —adj. 1 able to flow and alter shape freely. 2 constantly changing (situation is fluid).

    Fluid ounce n. One-twentieth, or us one-sixteenth, of a pint.

    Fluke1 —n. Lucky accident (won by a fluke). —v. (-king) achieve by a fluke. fluky adj. (-ier, -iest). [origin uncertain]

    Fluke2 n. 1 parasitic flatworm, e.g. The liver fluke. 2 flat-fish, esp. A flounder. [old english]

    Fluke3 n. 1 broad triangular plate on an anchor arm. 2 lobe of a whale’s tail. [perhaps from *fluke2]

    Flummery n. (pl. -ies) 1 flattery; nonsense. 2 sweet dish made with beaten eggs, sugar, etc. [welsh llymru]

    Flummox v. Colloq. Bewilder, disconcert. [origin unknown]

    Flung past and past part. Of *fling.

    Flunk v. Us colloq. Fail (esp. An exam). [origin unknown]

    Flunkey n. (also flunky) (pl. -eys or -ies) usu. Derog. 1 liveried footman. 2 toady; snob. 3 us cook, waiter, etc. [origin uncertain]

    Fluoresce v. (-scing) be or become fluorescent. [from *fluorescent]

    Fluorescence n. 1 light radiation from certain substances. 2 property of absorbing invisible light and emitting visible light. [from *fluorspar, after opalescence]

    Fluorescent adj. Of, having, or showing fluorescence.

    Fluorescent lamp n. (also fluorescent bulb) esp. Tubular lamp or bulb radiating largely by fluorescence.

    Fluoridate v. (-ting) add fluoride to (drinking-water etc.), esp. To prevent tooth decay. fluoridation n.

    Fluoride n. Binary compound of fluorine.

    Fluorinate v. (-ting) 1 = *fluoridate. 2 introduce fluorine into (a compound).

    fluorination n.

    Fluorine n. Poisonous pale-yellow gaseous element. [french: related to *fluorspar]

    Fluorite n. Mineral form of calcium fluoride. [italian: related to *fluorspar]

    Fluorocarbon n. Compound of a hydrocarbon with fluorine atoms.

    Fluorspar n. = *fluorite. [fluor a mineral used as flux, from latin fluo flow]

    Flurry —n. (pl. -ies) 1 gust or squall (of snow, rain, etc.). 2 sudden burst of activity, excitement, etc.; commotion. —v. (-ies, -ied) confuse; agitate. [imitative]

    Flush1 —v. 1 blush, redden, glow warmly (he flushed with embarrassment). 2 (usu. As flushed adj.) Cause to glow or blush (often foll. By with: he was flushed with pride). 3 a cleanse (a drain, lavatory, etc.) By a flow of water. B (often foll. By away, down) dispose of in this way. 4 rush out, spurt. —n. 1 blush or glow. 2 a rush of water. B cleansing of a drain, lavatory, etc. Thus. 3 rush of esp. Elation or triumph. 4 freshness; vigour. 5 a (also hot flush) sudden feeling of heat during menopause. B feverish redness or temperature etc. —adj. 1 level, in the same plane. 2 colloq. Having plenty of money. [perhaps = *flush3]

    Flush2 n. Hand of cards all of one suit, esp. In poker. [latin fluxus *flux]

    Flush3 v. 1 cause (esp. A game-bird) to fly up. 2 (of a bird) fly up and away. flush out 1 reveal. 2 drive out. [imitative]

    Fluster —v. 1 make or become nervous or confused (he flusters easily). 2 bustle. —n. Confused or agitated state. [origin unknown]

    Flute —n. 1 a high-pitched woodwind instrument held sideways. B any similar wind instrument. 2 ornamental vertical groove in a column. —v. (-ting) 1 play, or play (a tune etc.) On, the flute. 2 speak or sing etc. In a high voice. 3 make grooves in. fluting n. Fluty adj. (in sense 1a of n.). [french]

    Flutter —v. 1 flap (the wings) in flying or trying to fly. 2 fall quiveringly (fluttered to the ground). 3 wave or flap quickly. 4 move about restlessly. 5 (of a pulse etc.) Beat feebly or irregularly. —n. 1 act of fluttering. 2 tremulous

    excitement (caused a flutter). 3 slang small bet, esp. On a horse. 4 abnormally rapid heartbeat. 5 rapid variation of pitch, esp. Of recorded sound. [old english]

    Fluvial adj. Of or found in rivers. [latin fluvius river]

    Flux n. 1 process of flowing or flowing out. 2 discharge. 3 continuous change (state of flux). 4 substance mixed with a metal etc. To aid fusion. [latin fluxus from fluo flux-flow]

    Fly1 —v. (flies; past flew; past part. Flown) 1 a (of an aircraft, bird, etc.) Move through the air or space under control, esp. With wings. B travel through the air or space. 2 control the flight of or transport in (esp. An aircraft). 3 a cause to fly or remain aloft. B (of a flag, hair, etc.) Wave or flutter. 4 pass, move, or rise quickly. 5 a flee; flee from. B colloq. Depart hastily. 6 be driven, forced, or scattered (sent me flying). 7 (foll. By at, upon) a hasten or spring violently. B attack or criticize fiercely. —n. (pl. -ies) 1 (usu. In pl.) A concealing flap, esp. Over a trouser-fastening. B this fastening. 2 flap at a tent entrance. 3 (in pl.) Space above a stage where scenery and lighting are suspended. 4 act of flying. fly high be ambitious; prosper. Fly in the face of disregard or disobey. Fly a kite test opinion. Fly off the handle colloq. Lose one’s temper. [old english]

    Fly2 n. (pl. Flies) 1 insect with two usu. Transparent wings. 2 other winged insect, e.g. A firefly. 3 disease of plants or animals caused by flies. 4 (esp. Artificial) fly as bait in fishing. like flies in large numbers (usu. Of people dying etc.). No flies on (him etc.) Colloq. (he is) very astute. [old english]

    Fly3 adj. Slang knowing, clever, alert. [origin unknown]

    Fly-away adj. (of hair) fine and difficult to control.

    Fly-blown adj. Tainted, esp. By flies.

    Fly-by-night —adj. Unreliable. —n. Unreliable person.

    Flycatcher n. Bird catching insects during short flights from a chosen perch.

    Flyer n. (also flier) colloq. 1 airman or airwoman. 2 thing that flies in a specified way (poor flyer). 3 fast-moving animal or vehicle. 4 ambitious or outstanding person. 5 small handbill.

    Fly-fish v. Fish with a fly.

    Fly-half n. Rugby stand-off half.

    Flying —adj. 1 fluttering, waving, or hanging loose. 2 hasty, brief (flying visit). 3 designed for rapid movement. 4 (of an animal) leaping with winglike membranes etc. —n. Flight, esp. In an aircraft. with flying colours with distinction.

    Flying boat n. Boatlike seaplane.

    Flying buttress n. (usu. Arched) buttress running from the upper part of a wall to an outer support and transmitting the thrust of the roof or vault.

    Flying doctor n. Doctor who uses an aircraft to visit patients.

    Flying fish n. Tropical fish with winglike fins for gliding through the air.

    Flying fox n. Fruit-eating bat with a foxlike head.

    Flying officer n. Raf rank next below flight lieutenant.

    Flying picket n. Mobile industrial strike picket.

    Flying saucer n. Supposed alien spaceship.

    Flying squad n. Rapidly mobile police detachment etc.

    Flying start n. 1 start (of a race etc.) In which the starting-point is crossed at full speed. 2 vigorous start (of an enterprise etc.).

    Fly in the ointment n. Minor irritation or setback.

    Flyleaf n. Blank leaf at the beginning or end of a book.

    Fly on the wall n. Unnoticed observer.

    Flyover n. Bridge carrying one road or railway over another.

    Fly-paper n. Sticky treated paper for catching flies.

    Fly-past n. Ceremonial flight of aircraft.

    Fly-post v. Fix (posters etc.) Illegally on walls etc.

    Flysheet n. 1 canvas cover over a tent for extra protection. 2 short tract or circular.

    Fly-tip v. Illegally dump (waste). fly-tipper n.

    Fly-trap n. Plant that catches flies.

    Flyweight n. 1 weight in certain sports between light flyweight and bantamweight, in amateur boxing 48–51 kg. 2 sportsman of this weight.

    Flywheel n. Heavy wheel on a revolving shaft to regulate machinery or accumulate power.

    accumulate power.

    Fm abbr. 1 field marshal. 2 frequency modulation.

    Fm symb. Fermium.

    F-number n. Ratio of the focal length to the effective diameter of a camera lens. [from focal]

    Fo abbr. Flying officer.

    Foal —n. Young of a horse or related animal. —v. Give birth to (a foal). in (or with) foal (of a mare etc.) Pregnant. [old english]

    Foam —n. 1 mass of small bubbles formed on or in liquid by agitation, fermentation, etc. 2 froth of saliva or sweat. 3 substance resembling these, e.g. Spongy rubber or plastic. —v. Emit or run with foam; froth. foam at the mouth be very angry. foamy adj. (-ier, -iest). [old english]

    Fob1 n. 1 chain of a pocket-watch. 2 small pocket for a watch etc. 3 tab on a key-ring. [german]

    Fob2 v. (-bb-) fob off 1 (often foll. By with a thing) deceive into accepting something inferior. 2 (often foll. By on or on to a person) offload (an unwanted thing). [cf. Obsolete fop dupe]

    Focal adj. Of or at a focus. [latin: related to *focus]

    Focal distance n. (also focal length) distance between the centre of a mirror or lens and its focus.

    Focal point n. 1 = *focus n. 1. 2 centre of interest or activity.

    Fo’c’s’le var. Of *forecastle.

    Focus —n. (pl. Focuses or foci) 1 a point at which rays or waves meet after reflection or refraction. B point from which rays etc. Appear to proceed. 2 a point at which an object must be situated for a lens or mirror to give a well-defined image. B adjustment of the eye or a lens to give a clear image. C state of clear definition (out of focus). 3 = *focal point 2. —v. (-s-or -ss-) 1 bring into focus. 2 adjust the focus of (a lens or eye). 3 concentrate or be concentrated on. 4 converge or make converge to a focus. [latin, = hearth]

    Fodder n. Dried hay or straw etc. As animal food. [old english]

    Foe abbr. Friends of the earth.

    Foe n. Esp. Poet. Enemy. [old english]

    Foetid var. Of *fetid.

    Foetus n. (us fetus) (pl. -tuses) unborn mammalian offspring, esp. A human embryo of eight weeks or more. foetal adj. [latin fetus offspring]

    Fog —n. 1 thick cloud of water droplets or smoke suspended at or near the earth’s surface. 2 cloudiness on a photographic negative etc. 3 uncertain or confused position or state. —v. (-gg-) 1 cover or become covered with or as with fog. 2 perplex. [perhaps a back-formation from *foggy]

    Fog-bank n. Mass of fog at sea.

    Fog-bound adj. Unable to travel because of fog.

    Fogey var. Of *fogy.

    Foggy adj. (-ier, -iest) 1 full of fog. 2 of or like fog. 3 vague, indistinct. not have the foggiest colloq. Have no idea at all. fogginess n. [perhaps from fog long grass]

    Foghorn n. 1 horn warning ships in fog. 2 colloq. Loud penetrating voice.

    Fog-lamp n. Powerful lamp for use in fog.

    Fogy n. (also fogey) (pl. -ies or -eys) dull old-fashioned person (esp. Old fogy). [origin unknown]

    [origin unknown]

    Foible n. Minor weakness or idiosyncrasy. [french: related to *feeble]

    Foil1 v. Frustrate, baffle, defeat. [perhaps from french fouler trample]

    Foil2 n. 1 metal rolled into a very thin sheet. 2 person or thing setting off another to advantage. [latin folium leaf]

    Foil3 n. Light blunt fencing sword. [origin unknown]

    Foist v. (foll. By on) force (a thing or oneself) on to an unwilling person. [dutch vuisten take in the hand]

    Fold1 —v. 1 a bend or close (a flexible thing) over upon itself. B (foll. By back, over, down) bend part of (a thing) (fold down the flap). 2 become or be able to be folded. 3 (foll. By away, up) make compact by folding. 4 (often foll. By up) colloq. Collapse, cease to function. 5 enfold (esp. Fold in the arms or to the breast). 6 (foll. By about, round) clasp (the arms). 7 (foll. By in) mix (an ingredient with others) gently. —n. 1 folding. 2 line made by folding. 3 folded part. 4 hollow among hills. 5 curvature of geological strata.

    Fold2 —n. 1 = *sheepfold. 2 religious group or congregation. —v. Enclose (sheep) in a fold. [old english]

    -fold suffix forming adjectives and adverbs from cardinal numbers, meaning: 1 in an amount multiplied by (repaid tenfold). 2 with so many parts (threefold blessing). [originally = ‘folded in so many layers’]

    blessing). [originally = ‘folded in so many layers’]

    Folder n. Folding cover or holder for loose papers.

    Foliaceous adj. 1 of or like leaves. 2 laminated. [latin: related to *foil2]

    Foliage n. Leaves, leafage. [french feuillage from feuille leaf]

    Foliar adj. Of leaves. [as *foliate]

    Foliar feed n. Fertilizer supplied to the leaves of plants.

    Foliate —adj. 1 leaflike. 2 having leaves. —v. (-ting) split or beat into thin layers. foliation n. [latin folium leaf]

    Folio —n. (pl. -s) 1 leaf of paper etc., esp. Numbered only on the front. 2 sheet of paper folded once making two leaves of a book. 3 book of such sheets. —adj. (of a book) made of folios, of the largest size. in folio made of folios. [latin, ablative of folium leaf]

    Folk n. (pl. Same or -s) 1 (treated as pl.) People in general or of a specified class (few folk about; townsfolk). 2 (in pl.) (usu. Folks) one’s parents or relatives. 3 (treated as sing.) A people or nation. 4 (in full folk-music) (treated as sing.) Colloq. Traditional music or modern music in this style. 5 (attrib.) Of popular origin (folk art). [old english]

    Folk-dance n. Dance of popular origin.

    Folklore n. Traditional beliefs and stories of a people; the study of these.

    Folk-singer n. Singer of folk-songs.

    Folk-song n. Song of popular or traditional origin or style.

    Folksy adj. (-ier, -iest) 1 of or like folk art, culture, etc. 2 friendly, unpretentious.

    folksiness n.

    Folk-tale n. Traditional story.

    Folkweave n. Rough loosely woven fabric.

    Follicle n. Small sac or vesicle in the body, esp. One containing a hair-root. follicular adj. [latin diminutive of follis bellows]

    Follow v. 1 (often foll. By after) go or come after (a person or thing ahead). 2 go along (a road etc.). 3 come after in order or time (dessert followed; proceed as follows). 4 take as a guide or leader. 5 conform to. 6 practise (a trade or profession). 7 undertake (a course of study etc.). 8 understand (a speaker, argument, etc.). 9 take an interest in (current affairs etc.). 10 (foll. By with) provide with a sequel or successor. 11 happen after something else; ensue. 12 a

    provide with a sequel or successor. 11 happen after something else; ensue. 12 a be necessarily true as a consequence. B (foll. By from) result. follow on 1 continue. 2 (of a cricket team) have to bat twice in succession. Follow out carry out (instructions etc.). Follow suit 1 play a card of the suit led. 2 conform to another’s actions. Follow through 1 continue to a conclusion. 2 continue the movement of a stroke after hitting the ball. Follow up (foll. By with) 1 develop, supplement. 2 investigate further. [old english]

    Follower n. 1 supporter or devotee. 2 person who follows.

    Following —prep. After in time; as a sequel to. —n. Supporters or devotees. — adj. That follows or comes after. the following 1 what follows. 2 now to be given or named (answer the following).

    Follow-on n. Cricket instance of following on.

    Follow-through n. Action of following through.

    Follow-up n. Subsequent or continued action.

    Folly n. (pl. -ies) 1 foolishness. 2 foolish act, behaviour, idea, etc. 3 fanciful ornamental building created for display. [french folie from fol mad, *fool1]

    Foment v. Instigate or stir up (trouble, discontent, etc.). fomentation n. [latin foveo heat, cherish]

    Fond adj. 1 (foll. By of) liking. 2 a affectionate. B doting. 3 (of beliefs etc.) Foolishly optimistic or credulous. fondly adv. Fondness n. [obsolete fon fool, be

    Foolishly optimistic or credulous. fondly adv. Fondness n. [obsolete fon fool, be foolish]

    Fondant n. Soft sugary sweet. [french = melting: related to *fuse1]

    Fondle v. (-ling) caress. [related to *fond]

    Fondue n. Dish of melted cheese. [french, = melted: related to *fuse1]

    Font1 n. Receptacle in a church for baptismal water. [latin fons font-fountain]

    Font2 var. Of *fount2.

    Fontanel n. (brit. Fontanelle) membranous space in an infant’s skull at the angles of the parietal bones. [latin fontanella little *fountain]

    Fontanelle n. (us fontanel) membranous space in an infant’s skull at the angles of the parietal bones. [latin fontanella little *fountain]

    Food n. 1 a substance taken in to maintain life and growth. B solid food (food and drink). 2 mental stimulus (food for thought). [old english]

    Food additive n. Substance added to food to colour or flavour it etc.

    Food-chain n. Series of organisms each dependent on the next for food.

    Foodie n. Colloq. Person who makes a cult of food; gourmet.

    Food poisoning n. Illness due to bacteria etc. In food.

    Food processor n. Machine for chopping and mixing food.

    Foodstuff n. Substance used as food.

    Food value n. Nourishing power of a food.

    Fool1 —n. 1 rash, unwise, or stupid person. 2 hist. Jester; clown. 3 dupe. —v. 1 deceive. 2 (foll. By into or out of) trick; cheat. 3 joke or tease. 4 (foll. By about, around) play or trifle. act (or play) the fool behave in a silly way. Be no (or nobody’s) fool be shrewd or prudent. Make a fool of make (a person or oneself) look foolish; trick, deceive. [latin follis bellows]

    Fool2 n. Dessert of fruit purée with cream or custard. [perhaps from *fool1]

    Foolery n. Foolish behaviour.

    Foolhardy adj. (-ier, -iest) rashly or foolishly bold; reckless. foolhardily adv.

    Foolhardiness n.

    Foolish adj. Lacking good sense or judgement; unwise. foolishly adv.

    Foolishness n.

    Foolproof adj. (of a procedure, mechanism, etc.) Incapable of misuse or mistake.

    Foolscap n. Large size of paper, about 330 x 200 (or 400) mm. [from a watermark of a fool’s cap]

    Fool’s paradise n. Illusory happiness.

    Foot —n. (pl. Feet) 1 a part of the leg below the ankle. B part of a sock etc. Covering this. 2 a lowest part of a page, stairs, etc. B end of a bed where the feet rest. C part of a chair, appliance, etc. On which it rests. 3 step, pace, or tread (fleet of foot). 4 (pl. Feet or foot) linear measure of 12 inches (30.48 cm). 5 metrical unit of verse forming part of a line. 6 hist. Infantry. —v. 1 pay (a bill). 2 (usu. As foot it) go or traverse on foot. feet of clay fundamental weakness in a respected person. Have one’s (or both) feet on the ground be practical. Have one foot in the grave be near death or very old. My foot! Int. Expressing strong contradiction. On foot walking. Put one’s feet up colloq. Take a rest. Put one’s foot down colloq. 1 insist firmly. 2 accelerate a vehicle. Put one’s foot in it colloq. Make a tactless blunder. Under one’s feet in the way. Under foot on the ground. footless adj. [old english]

    Footage n. 1 a length of tv or cinema film etc. 2 length in feet.

    Foot-and-mouth disease n. Contagious viral disease of cattle etc.

    Football n. 1 large inflated ball of leather or plastic. 2 outdoor team game played with this. footballer n.

    Football pool n. (also football pools pl.) Large-scale organized gambling on the results of football matches.

    Footbrake n. Foot-operated brake on a vehicle.

    Footbridge n. Bridge for pedestrians.

    Footfall n. Sound of a footstep.

    Foot-fault n. (in tennis) placing of the foot over the baseline while serving.

    Foothill n. Any of the low hills at the base of a mountain or range.

    Foothold n. 1 secure place for a foot when climbing etc. 2 secure initial position.

    Footing n. 1 foothold; secure position (lost his footing). 2 operational basis. 3 relative position or status (on an equal footing). 4 (often in pl.) Foundations of a wall.

    Footle v. (-ling) (usu. Foll. By about) colloq. Potter or fiddle about. [origin uncertain]

    Footlights n.pl. Row of floor-level lights at the front of a stage.

    Footling adj. Colloq. Trivial, silly.

    Footloose adj. Free to act as one pleases.

    Footman n. Liveried servant.

    Footmark n. Footprint.

    Footnote n. Note printed at the foot of a page.

    Footpad n. Hist. Unmounted highwayman.

    Footpath n. Path for pedestrians; pavement.

    Footplate n. Platform for the crew in a locomotive.

    Footprint n. Impression left by a foot or shoe.

    Footrest n. Stool, rail, etc. For the feet.

    Footsie n. = *ft-se. [respelling of *ft-se]

    Footsie n. Colloq. Amorous play with the feet.

    Footsore adj. With sore feet, esp. From walking.

    Footstep n. 1 step taken in walking. 2 sound of this. follow in a person’s footsteps do as another did before.

    Footstool n. Stool for resting the feet on when sitting.

    Footway n. Path for pedestrians.

    Footwear n. Shoes, socks, etc.

    Footwork n. Use or agility of the feet in sports, dancing, etc.

    Fop n. Dandy. foppery n. Foppish adj. [perhaps from obsolete fop fool]

    For —prep. 1 in the interest or to the benefit of; intended to go to (did it all for my country; these flowers are for you). 2 in defence, support, or favour of. 3 suitable or appropriate to (a dance for beginners; not for me to say). 4 in respect of or with reference to; regarding (usual for ties to be worn; ready for bed). 5 representing or in place of (mp for lincoln; here for my uncle). 6 in exchange with, at the price of, corresponding to (swapped it for a cake; give me £5 for it; bought it for £5; word for word). 7 as a consequence of (fined for speeding; decorated for bravery; here’s £5 for your trouble). 8 a with a view to; in the hope or quest of; in order to get (go for a walk; send for a doctor; did it for the money). B on account of (could not speak for laughing). 9 to reach; towards (left for rome). 10 so as to start promptly at (meet at seven for eight). 11 through or over (a distance or period); during (walked for miles). 12 as being (for the last time; i for one refuse). 13 in spite of; notwithstanding (for all your fine words). 14 considering or making due allowance in respect of (good for a beginner). — conj. Because, since, seeing that. be for it colloq. Be about to be punished etc. For all (that) in spite of, although. For ever for all time (cf. *forever). [old english reduced form of *fore]

    For-prefix forming verbs etc. Meaning: 1 away, off (forget; forgive). 2 prohibition (forbid). 3 abstention or neglect (forgo; forsake). [old english]

    Forage —n. 1 food for horses and cattle. 2 searching for food. —v. 1 search for food; rummage. 2 collect food from. 3 get by foraging. [germanic: related to *fodder]

    Forage cap n. Infantry undress cap.

    Forasmuch as conj. Archaic because, since. [from for as much]

    Foray —n. Sudden attack; raid. —v. Make a foray. [french: related to *fodder]

    Forbade (also forbad) past of *forbid.

    Forbear1 v. (past forbore; past part. Forborne) formal abstain or desist (from) (could not forbear (from) speaking out; forbore to mention it). [old english: related to *bear1]

    Forbear2 var. Of *forebear.

    Forbearance n. Patient self-control; tolerance.

    Forbid v. (forbidding; past forbade or forbad; past part. Forbidden) 1 (foll. By to

    infin.) Order not (i forbid you to go). 2 refuse to allow (a thing, or a person to have a thing). 3 refuse a person entry to. god forbid! May it not happen! [old english: related to *bid]

    Forbidden degrees n.pl. (also prohibited degrees) family relationship too close for marriage to be permitted.

    Forbidden fruit n. Something desired esp. Because not allowed.

    Forbidding adj. Stern, threatening. forbiddingly adv.

    Forbore past of *forbear1.

    Forborne past part. Of *forbear1.

    Force1 —n. 1 power; strength, impetus; intense effort. 2 coercion, compulsion. 3 a military strength. B organized body of soldiers, police, etc. 4 a moral, intellectual, or legal power, influence, or validity. B person etc. With such power (force for good). 5 effect; precise significance. 6 a influence tending to cause a change in the motion of a body. B intensity of this. —v. (-cing) 1 compel or coerce (a person) by force. 2 make a forcible entry into; break open by force. 3 drive or propel violently or against resistance. 4 make (a way) by force. 5 (foll. By on, upon) impose or press on (a person). 6 cause, produce, or attain by effort (forced a smile; forced an entry). 7 strain or increase to the utmost. 8 artificially hasten the growth of (a plant). 9 seek quick results from; accelerate (force the pace). force a person’s hand make a person act prematurely or unwillingly. Force the issue make an immediate decision necessary. In force 1 valid (laws now in force). 2 in great strength or numbers (attacked in force). [latin fortis strong]

    Force2 n. N.engl. Waterfall. [old norse]

    Forced labour n. Compulsory labour, esp. In prison.

    Forced landing n. Emergency landing of an aircraft.

    Forced march n. Long and vigorous march, esp. By troops.

    Force-feed v. Force (esp. A prisoner) to take food.

    Forceful adj. Vigorous, powerful, impressive. forcefully adv. Forcefulness n.

    Force majeure n. 1 irresistible force. 2 unforeseeable circumstances excusing a person from the fulfilment of a contract. [french]

    Forcemeat n. Minced seasoned meat for stuffing or garnish. [related to *farce]

    Forceps n. (pl. Same) surgical pincers. [latin]

    Forcible adj. Done by or involving force; forceful. forcibly adv. [french: related to *force1]

    Ford —n. Shallow place where a river or stream may be crossed by wading, in a vehicle, etc. —v. Cross (water) at a ford. fordable adj. [old english]

    Fore —adj. Situated in front. —n. Front part; bow of a ship. —int. (in golf) warning to a person in the path of a ball. to the fore in or into a conspicuous position. [old english]

    Fore-prefix forming: 1 verbs meaning: a in front (foreshorten). B beforehand

    (forewarn). 2 nouns meaning: a situated in front of (forecourt). B front part of (forehead). C of or near the bow of a ship (forecastle). D preceding (forerunner).

    (forehead). C of or near the bow of a ship (forecastle). D preceding (forerunner).

    Fore and aft —adv. At bow and stern; all over the ship. —adj. (fore-and-aft) (of a sail or rigging) lengthwise.

    Forearm1 n. The arm from the elbow to the wrist or fingertips.

    Forearm2 v. Arm beforehand, prepare.

    Forebear n. (also forbear) (usu. In pl.) Ancestor. [from *fore, obsolete beer:

    related to *be]

    Forebode v. (-ding) 1 be an advance sign of, portend. 2 (often foll. By that) have a presentiment of (usu. Evil).

    Foreboding n. Expectation of trouble.

    Forecast —v. (past and past part. -cast or -casted) predict; estimate beforehand.

    —n. Prediction, esp. Of weather. forecaster n.

    Forecastle n. (also fo’c’s’le) forward part of a ship, formerly the living quarters.

    Foreclose v. (-sing) 1 stop (a mortgage) from being redeemable. 2 repossess the mortgaged property of (a person) when a loan is not duly repaid. 3 exclude,

    prevent. foreclosure n. [latin foris outside, *close2]

    Forecourt n. 1 part of a filling-station with petrol pumps. 2 enclosed space in front of a building.

    Forefather n. (usu. In pl.) Ancestor of a family or people.

    Forefinger n. Finger next to the thumb.

    Forefoot n. Front foot of an animal.

    Forefront n. 1 leading position. 2 foremost part.

    Forego var. Of *forgo.

    Foregoing adj. Preceding; previously mentioned.

    Foregone conclusion n. Easily predictable result.

    Foreground n. 1 part of a view or picture nearest the observer. 2 most conspicuous position. [dutch: related to fore-, ground1]

    Forehand n. 1 (in tennis etc.) Stroke played with the palm of the hand facing forward. 2 (attrib.) (also forehanded) of or made with a forehand.

    forward. 2 (attrib.) (also forehanded) of or made with a forehand.

    Forehead n. The part of the face above the eyebrows.

    Foreign adj. 1 of, from, in, or characteristic of, a country or language other than one’s own. 2 dealing with other countries (foreign service). 3 of another district, society, etc. 4 (often foll. By to) unfamiliar, alien. 5 coming from outside (foreign body). foreignness n. [latin foris outside]

    Foreign and commonwealth office n. British government department dealing with foreign affairs.

    Foreigner n. Person born in or coming from another country.

    Foreign legion n. Body of foreign volunteers in the (esp. French) army.

    Foreign minister n. (also foreign secretary) government minister in charge of foreign affairs.

    Foreign office n. Hist. Or informal = *foreign and commonwealth office.

    Foreknow v. (past -knew, past part. -known) literary know beforehand.

    foreknowledge n.

    Foreland n. Cape, promontory.

    Foreleg n. Front leg of an animal.

    Forelimb n. Front limb of an animal.

    Forelock n. Lock of hair just above the forehead. touch one’s forelock defer to a person of higher social rank.

    Foreman n. 1 worker supervising others. 2 president and spokesman of a jury.

    Foremast n. Mast nearest the bow of a ship.

    Foremost —adj. 1 most notable, best. 2 first, front. —adv. Most importantly (first and foremost). [old english]

    Forename n. First or christian name.

    Forenoon n. Morning.

    Forensic adj. 1 of or used in courts of law (forensic science; forensic medicine). 2 of or involving forensic science (sent for forensic examination). forensically adv. [latin forensis: related to *forum]

    Usage use of forensic in sense 2 is common but considered an illogical extension of sense 1 by some people.

    Foreordain v. Destine beforehand.

    Forepaw n. Front paw of an animal.

    Foreplay n. Stimulation preceding sexual intercourse.

    Forerunner n. 1 predecessor. 2 herald.

    Foresail n. Principal sail on a foremast.

    Foresee v. (past -saw; past part. -seen) see or be aware of beforehand.

    foreseeable adj.

    Foreshadow v. Be a warning or indication of (a future event).

    Foreshore n. Shore between high-and low-water marks.

    Foreshorten v. Show or portray (an object) with the apparent shortening due to visual perspective.

    visual perspective.

    Foresight n. 1 regard or provision for the future. 2 foreseeing. 3 front sight of a gun.

    Foreskin n. Fold of skin covering the end of the penis.

    Forest —n. 1 (often attrib.) Large area of trees and undergrowth. 2 trees in this. 3 large number or dense mass. —v. 1 plant with trees. 2 convert into a forest. [latin forestis: related to *foreign]

    Forestall v. 1 prevent by advance action. 2 deal with beforehand. [from fore-, stall1]

    Forester n. 1 person managing a forest or skilled in forestry. 2 dweller in a forest.

    Forestry n. Science or management of forests.

    Foretaste n. Small preliminary experience of something.

    Foretell v. (past and past part. -told) 1 predict, prophesy. 2 indicate the approach of.

    Forethought n. 1 care or provision for the future. 2 deliberate intention.

    Forever adv. Continually, persistently (is forever complaining) (cf. For ever).

    Forewarn v. Warn beforehand.

    Forewoman n. 1 female worker with supervisory responsibilities. 2 president and spokeswoman of a jury.

    Foreword n. Introductory remarks at the beginning of a book, often not by the author.

    Forfeit —n. 1 penalty. 2 thing surrendered as a penalty. —adj. Lost or surrendered as a penalty. —v. (-t-) lose the right to, surrender as a penalty. forfeiture n. [french forfaire transgress, from latin foris outside, facio do]

    Forgather v. Assemble; associate. [dutch]

    Forgave past of *forgive.

    Forge1 —v. (-ging) 1 make or write in fraudulent imitation. 2 shape (metal) by heating and hammering. —n. 1 furnace or workshop etc. For melting or refining metal. 2 blacksmith’s workshop; smithy. forger n. [latin fabrica: related to *fabric]

    Forge2 v. (-ging) move forward gradually or steadily. forge ahead 1 take the lead. 2 progress rapidly. [perhaps an alteration of *force1]

    Forgery n. (pl. -ies) 1 act of forging. 2 forged document etc.

    Forget v. (forgetting; past forgot; past part. Forgotten or us forgot) 1 (often foll. By about) lose remembrance of; not remember. 2 neglect or overlook. 3 cease to think of. forget oneself 1 act without dignity. 2 act selflessly. forgettable adj. [old english]

    Forgetful adj. 1 apt to forget, absent-minded. 2 (often foll. By of) neglectful.

    forgetfully adj. Forgetfulness n.

    Forget-me-not n. Plant with small blue flowers.

    Forgive v. (-ving; past forgave; past part. Forgiven) 1 cease to feel angry or resentful towards; pardon. 2 remit (a debt). forgivable adj. [old english]

    Forgiveness n. Forgiving or being forgiven.

    Forgiving adj. Inclined to forgive.

    Forgo v. (also forego) (-goes; past -went; past part. -gone) go without; relinquish. [old english]

    Forgot past of *forget.

    Forgotten past part. Of *forget.

    Fork —n. 1 pronged item of cutlery. 2 similar large tool used for digging, lifting, etc. 3 forked support for a bicycle wheel. 4 a divergence of a branch, road, etc. Into two parts. B place of this. C either part. —v. 1 form a fork or branch by separating into two parts. 2 take one road at a fork. 3 dig, lift, etc., with a fork. fork out slang pay, esp. Reluctantly. [latin furca pitchfork]

    Fork-lift truck n. Vehicle with a fork for lifting and carrying loads.

    Forlorn adj. 1 sad and abandoned. 2 in a pitiful state. forlornly adv. [lorn = past part. Of obsolete leese *lose]

    Forlorn hope n. Faint remaining hope or chance. [dutch verloren hoop lost troop]

    Form —n. 1 shape; arrangement of parts; visible aspect. 2 person or animal as visible or tangible. 3 mode of existence or manifestation. 4 kind or variety (a form of art). 5 printed document with blank spaces for information to be inserted. 6 class in a school. 7 customary method. 8 set order of words. 9 etiquette or specified adherence to it (good or bad form). 10 (prec. By the) correct procedure (knows the form). 11 a (of an athlete, horse, etc.) Condition of health and training. B racing history of a horse etc. 12 state or disposition (in great form). 13 any of the spellings, inflections, etc. Of a word. 14 arrangement and style in a literary or musical composition. 15 long low bench. 16 hare’s lair. —v. 1 make or be made (formed a straight line; puddles formed). 2 make up or constitute. 3 develop or establish as a concept, institution, or practice (form an idea; form a habit). 4 (foll. By into) mould or organize to become (formed ourselves into a circle). 5 (often foll. By up) (of troops etc.) Bring or move into

    formation. 6 train or instruct. off form not playing or performing well. On form playing or performing well. Out of form not fit for racing etc. [latin forma]

    Form comb. Form (usu. As -iform) forming adjectives meaning: 1 having the form of (cruciform). 2 having so many forms (multiform).

    Formal adj. 1 in accordance with rules, convention, or ceremony (formal dress; formal occasion). 2 precise or symmetrical (formal garden). 3 prim or stiff. 4 perfunctory, in form only. 5 drawn up etc. Correctly; explicit (formal agreement). 6 of or concerned with (outward) form, not content or matter. formally adv. [latin: related to *form]

    Formaldehyde n. Colourless pungent gas used as a disinfectant and preservative. [from *formic acid, *aldehyde]

    Formalin n. Solution of formaldehyde in water.

    Formalism n. Strict adherence to external form without regard to content, esp. In art. formalist n.

    Formality n. (pl. -ies) 1 a formal, esp. Meaningless, act, regulation, or custom. B thing done simply to comply with a rule. 2 rigid observance of rules or convention.

    Formalize v. (also -ise) (-zing or -sing) 1 give definite (esp. Legal) form to. 2 make formal. formalization n.

    Format —n. 1 shape and size (of a book, etc.). 2 style or manner of procedure etc. 3 computing arrangement of data etc. —v. (-tt-) 1 arrange or put into aformat. 2 computing prepare (a storage medium) to receive data. [latin formatus shaped: related to *form]

    Formation n. 1 forming. 2 thing formed. 3 particular arrangement (e.g. Of troops). 4 rocks or strata with a common characteristic. [latin: related to *form]

    Formative adj. Serving to form or fashion; of formation (formative years).

    Forme n. Printing body of type secured in a chase ready for printing. [var. Of *form]

    Former attrib. Adj. 1 of the past, earlier, previous (in former times). 2 (the former) (often absol.) The first or first-mentioned of two. [related to *foremost]

    -former comb. Form pupil in a specified form (fourth-former).

    Formerly adv. In former times.

    Formica n. Propr. Hard durable plastic laminate used for surfaces. [origin uncertain]

    Formic acid n. Colourless irritant volatile acid contained in fluid emitted by ants; methanoic acid. [latin formica ant]

    Formidable adj. 1 inspiring dread, awe, or respect. 2 hard to overcome or deal with. formidably adv. [latin formido fear]

    Usage the second pronunciation given, with the stress on the second syllable, is common but considered incorrect by some people.

    Formless adj. Without definite or regular form. formlessness n.

    Formula n. (pl. -s or (esp. In senses 1, 2) -lae) 1 chemical symbols showing the constituents of a substance. 2 mathematical rule expressed in symbols. 3 a fixed form of esp. Ceremonial or polite words. B words used to formulate a treaty etc. 4 a list of ingredients. B us infant’s food. 5 classification of a racing car, esp. By engine capacity.

    Formulary n. (pl. -ies) 1 collection of esp. Religious formulas or set forms. 2 pharm. Compendium of drug formulae. [french or medieval latin: related to *formula]

    Formulate v. (-ting) 1 express in a formula. 2 express clearly and precisely.

    formulation n.

    Fornicate v. (-ting) archaic or joc. (of people not married to each other) have sexual intercourse. fornication n. Fornicator n. [latin fornix brothel]

    Forsake v. (-king; past forsook; past part. Forsaken) literary 1 give up; renounce. 2 desert, abandon. [old english]

    Forsooth adv. Archaic or joc. Truly; no doubt. [old english: related to for, sooth]

    Forswear v. (past forswore; past part. Forsworn) 1 abjure; renounce. 2 (as forsworn adj.) Perjured. forswear oneself perjure oneself. [old english]

    Forsythia n. Shrub with bright yellow flowers in early spring. [forsyth, name of a botanist]

    Fort n. Fortified military building or position. [latin fortis strong]

    Forte1 n. Person’s strong point or speciality. [feminine of french *fort]

    Forte2 mus. —adj. Loud. —adv. Loudly. —n. Loud playing or passage. [italian:

    related to *fort]

    Forth adv. Archaic except in set phrases 1 forward; into view (bring forth; come forth). 2 onwards in time (from this time forth). 3 forwards (back and forth). 4 out from a starting-point (set forth). and so forth see *so1. [old english]

    Forthcoming adj. 1 coming or available soon. 2 produced when wanted. 3 (of a person) informative, responsive.

    Forthright adj. 1 outspoken; straightforward. 2 decisive. [old english]

    Forthwith adv. At once; without delay. [from *forth]

    Fortification n. 1 act of fortifying. 2 (usu. In pl.) Defensive works, walls, etc.

    Fortify v. (-ies, -ied) 1 provide with fortifications. 2 strengthen physically, mentally, or morally. 3 strengthen (wine) with alcohol. 4 increase the nutritive value of (food, esp. With vitamins). [latin fortis strong]

    Fortissimo mus. —adj. Very loud. —adv. Very loudly. —n. (pl. -s or -mi) very loud playing or passage. [italian, superlative of *forte2]

    Fortitude n. Courage in pain or adversity. [latin fortis strong]

    Fortnight n. Two weeks. [old english, = fourteen nights]

    Fortnightly —adj. Done, produced, or occurring once a fortnight. —adv. Every fortnight. —n. (pl. -ies) fortnightly magazine etc.

    Fortran n. (also fortran) computer language used esp. For scientific calculations. [from formula translation]

    Fortress n. Fortified building or town. [latin fortis strong]

    Fortuitous adj. Happening by esp. Lucky chance; accidental. fortuitously adv. Fortuitousness n. Fortuity n. (pl. -ies). [latin forte by chance]

    Fortunate adj. 1 lucky. 2 auspicious. fortunately adv. [latin fortunatus: related to *fortune]

    Fortune n. 1 a chance or luck in human affairs. B person’s destiny. 2 (in sing. Or pl.) Luck that befalls a person or enterprise. 3 good luck. 4 prosperity. 5 colloq. Great wealth. make a (or one’s) fortune become very rich. [latin fortuna]

    Fortune-teller n. Person who claims to foretell one’s destiny. fortune-telling n.

    Forty adj. & n. (pl. -ies) 1 four times ten. 2 symbol for this (40, xl, xl). 3 (in pl.) Numbers from 40 to 49, esp. The years of a century or of a person’s life. fortieth adj. & n. [old english: related to *four]

    Forty winks n. Colloq. Short sleep.

    Forum n. 1 place of or meeting for public discussion. 2 court or tribunal. 3 hist. Public square in an ancient roman city used for judicial and other business. [latin]

    Forward —adj. 1 onward; towards the front. 2 lying in the direction in which one is moving. 3 precocious; bold; presumptuous. 4 relating to the future (forward contract). 5 a approaching maturity or completion. B (of a plant etc.) Early. —n. Attacking player near the front in football, hockey, etc. —adv. 1 to the front; into

    prominence (come forward; move forward). 2 in advance; ahead (sent them forward). 3 onward so as to make progress (no further forward). 4 towards the future (from this time forward). 5 (also forwards) a towards the front in the direction one is facing. B in the normal direction of motion. C with continuous forward motion (rushing forward). —v. 1 a send (a letter etc.) On to a further destination. B dispatch (goods etc.). 2 help to advance; promote. [old english: related to *forth, *-ward]

    Forwent past of *forgo.

    Fosse n. Long ditch or trench, esp. In a fortification. [latin fossa]

    Fossil —n. 1 remains or impression of a (usu. Prehistoric) plant or animal hardened in rock. 2 colloq. Antiquated or unchanging person or thing. —attrib. Adj. Of or like a fossil; antiquated. fossilize v. (also -ise) (-zing or -sing). Fossilization n. [latin fodio foss-dig]

    Fossil fuel n. Natural fuel extracted from the ground.

    Foster —v. 1 a promote the growth or development of. B encourage or harbour (a feeling). 2 a bring up (another’s child). B (of a local authority etc.) Assign (a child) to be fostered. 3 (of circumstances) be favourable to. —attrib. Adj. 1 having a family connection by fostering (foster-brother; foster-parent). 2 concerned with fostering a child (foster care; foster home). [old english: related to *food]

    Fought past and past part. Of *fight.

    Foul —adj. 1 offensive; loathsome, stinking. 2 soiled, filthy. 3 colloq. Disgusting, awful. 4 a noxious (foul air). B clogged, choked. 5 obscenely abusive (foul language). 6 unfair; against the rules (by fair means or foul). 7 (of the weather) rough, stormy. 8 (of a rope etc.) Entangled. —n. 1 sport foul stroke or play. 2 collision, entanglement. —adv. Unfairly. —v. 1 make or become foul. 2 (of an animal) foul with excrement. 3 sport commit a foul against (a player). 4 (often foll. By up) a (cause to) become entangled or blocked. B bungle. 5 collide with. foully adv. Foulness n. [old english]

    Foul-mouthed adj. Using obscene or offensive language.

    Foul play n. 1 unfair play in games. 2 treacherous or violent act, esp. Murder.

    Foul-up n. Muddle, bungle.

    Found1 past and past part. Of *find.

    Found2 v. 1 establish (an institution etc.); initiate, originate. 2 be the original builder of (a town etc.). 3 lay the base of (a building). 4 (foll. By on, upon) construct or base (a story, theory, rule, etc.) On. founder n. [latin fundus bottom]

    Found3 v. 1 a melt and mould (metal). B fuse (materials for glass). 2 make by founding. founder n. [latin fundo fus-pour]

    Foundation n. 1 a solid ground or base beneath a building. B (usu. In pl.) Lowest

    part of a building, usu. Below ground level. 2 material base. 3 basis, underlying principle. 4 a establishing (esp. An endowed institution). B college, hospital, etc. So founded; its revenues. 5 (in full foundation garment) woman’s supporting undergarment, e.g. A corset. [latin: related to *found2]

    Foundation-stone n. 1 stone laid ceremonially at the founding of a building. 2 basis.

    Founder v. 1 (of a ship) fill with water and sink. 2 (of a plan etc.) Fail. 3 (of a horse or its rider) stumble, fall lame, stick in mud etc. [related to *found2]

    Founding father n. American statesman at the time of the revolution.

    Foundling n. Abandoned infant of unknown parentage. [related to *find]

    Foundry n. (pl. -ies) workshop for or business of casting metal.

    Fount1 n. Poet. Spring or fountain; source. [back-formation from *fountain]

    Fount2 n. (also font) set of printing-type of same face and size. [french: related to *found3]

    Fountain n. 1 a spouting jet or jets of water as an ornament or for drinking. B structure for this. 2 spring. 3 (often foll. By of) source. [latin fontana from fons font-spring]

    Fountain-head n. Source.

    Fountain-pen n. Pen with a reservoir or cartridge for ink.

    Four adj. & n. 1 one more than three. 2 symbol for this (4, iv, iv). 3 size etc. Denoted by four. 4 team or crew of four; four-oared rowing-boat. 5 four o’clock. on all fours on hands and knees. [old english]

    Fourfold adj. & adv. 1 four times as much or as many. 2 of four parts.

    Four-in-hand n. Four-horse carriage with one driver.

    Four-letter word n. Short obscene word.

    Four-poster n. Bed with four posts supporting a canopy.

    Foursome n. 1 group of four people. 2 golf match between two pairs.

    Four-square —adj. 1 solidly based. 2 steady, resolute. —adv. Steadily, resolutely.

    Four-stroke adj. (of an internal-combustion engine) having a cycle of four strokes of the piston with the cylinder firing once.

    Fourteen adj. & n. 1 one more than thirteen. 2 symbol for this (14, xiv, xiv). 3 size etc. Denoted by fourteen. fourteenth adj. & n. [old english: related to four, – teen]

    Fourth adj. & n. 1 next after third. 2 any of four equal parts of a thing. fourthly adv. [old english: related to *four]

    Fourth estate n. The press.

    Four-wheel drive n. Drive acting on all four wheels of a vehicle.

    Fowl —n. (pl. Same or -s) 1 chicken kept for eggs and meat. 2 poultry as food. 3 archaic (except in comb.) Bird (guineafowl; wildfowl). —v. Catch or hunt wildfowl. [old english]

    Fox —n. 1 a wild canine animal with a bushy tail and red or grey fur. B its fur. 2 cunning person. —v. 1 deceive, baffle, trick. 2 (usu. As foxed adj.) Discolour (leaves of a book etc.) With brownish marks. foxlike adj. [old english]

    Foxglove n. Tall plant with purple or white flowers like glove-fingers.

    Foxhole n. Hole in the ground used as a shelter etc. In battle.

    Foxhound n. A kind of hound bred and trained to hunt foxes.

    Foxhound n. A kind of hound bred and trained to hunt foxes.

    Fox-hunting n. Hunting foxes with hounds.

    Fox-terrier n. A kind of short-haired terrier.

    Foxtrot —n. 1 ballroom dance with slow and quick steps. 2 music for this. —v.

    (-tt-) perform this.

    Foxy adj. (-ier, -iest) 1 foxlike. 2 sly or cunning. 3 reddish-brown. foxily adv.

    Foxiness n.

    Foyer n. Entrance-hall in a hotel, theatre, etc. [french, = hearth, home, from latin *focus]

    Fpa abbr. Family planning association.

    Fr symb. Francium.

    Fr. Abbr. 1 father. 2 french.

    Fr. Abbr. Franc(s).

    Fracas n. (pl. Same) noisy disturbance or quarrel. [french from italian]

    Fraction n. 1 part of a whole number (e.g. 1/2, 0.5). 2 small part, piece, or amount. 3 portion of a mixture obtained by distillation etc. fractional adj. Fractionally adv. [latin frango fract-break]

    Fractious adj. Irritable, peevish. [from *fraction in obsolete sense ‘brawling’]

    Fracture —n. Breakage, esp. Of a bone or cartilage. —v. (-ring) cause a fracture in; suffer fracture. [latin: related to *fraction]

    Fragile adj. 1 easily broken; weak. 2 delicate; not strong. fragility n. [latin:

    related to *fracture]

    Fragment —n. 1 part broken off. 2 extant remains or unfinished portion (of a book etc.). —v. Break or separate into fragments. fragmental adj. Fragmentary adj. Fragmentation n. [latin: related to *fraction]

    Fragrance n. 1 sweetness of smell. 2 sweet scent. [latin fragro smell sweet]

    Fragrant adj. Sweet-smelling.

    Frail adj. 1 fragile, delicate. 2 morally weak. frailly adv. Frailness n. [latin:

    related to *fragile]

    related to *fragile]

    Frailty n. (pl. -ies) 1 frail quality. 2 weakness, foible.

    Frame —n. 1 case or border enclosing a picture, window, door, etc. 2 basic rigid supporting structure of a building, vehicle, etc. 3 (in pl.) Structure of spectacles holding the lenses. 4 human or animal body, esp. As large or small. 5 a established order or system (the frame of society). B construction, build, structure. 6 temporary state (esp. In frame of mind). 7 single complete image on a cinema film or transmitted in a series of lines by television. 8 a triangular structure for positioning balls in snooker etc. B round of play in snooker etc. 9 boxlike structure of glass etc. For protecting plants. 10 us slang = *frame-up. — v. (-ming) 1 a set in a frame. B serve as a frame for. 2 construct, put together, devise. 3 (foll. By to, into) adapt or fit. 4 slang concoct a false charge or evidence against; devise a plot against. 5 articulate (words). [old english, = be helpful]

    Frame of reference n. 1 set of standards or principles governing behaviour, thought, etc. 2 system of geometrical axes for defining position.

    Frame-up n. Slang conspiracy to convict an innocent person.

    Framework n. 1 essential supporting structure. 2 basic system.

    Franc n. Unit of currency of france, belgium, switzerland, etc. [french: related to *frank]

    Franchise —n. 1 right to vote in state elections. 2 full membership of a corporation or state; citizenship. 3 authorization to sell a company’s goods etc.

    In a particular area. 4 right or privilege granted to a person or corporation. —v. (-sing) grant a franchise to. [french franc *frank]

    Franciscan —adj. Of st francis or his order. —n. Franciscan friar or nun. [latin franciscus francis]

    Francium n. Radioactive metallic element. [france, the discoverer’s country]

    Franco-comb. Form french and (franco-german). [latin: related to *frank]

    Franglais n. Corrupt version of french using many english words and idioms. [french français french, anglais english]

    Frank n. Member of the germanic people that conquered gaul in the 6th c. frankish adj. [old english]

    Frank —adj. 1 candid, outspoken. 2 undisguised. 3 open. —v. Mark (a letter) to record the payment of postage. —n. Franking signature or mark. frankly adv. Frankness n. [latin francus free: related to *frank]

    Frankenstein n. (in full frankenstein’s monster) thing that becomes terrifying to its maker. [frankenstein, name of a character in and title of a novel by mary shelley]

    Frankfurter n. Seasoned smoked sausage. [german from frankfurt in germany]

    Frankincense n. Aromatic gum resin burnt as incense. [french: related to frank in obsolete sense ‘high quality’, incense1]

    Frantic adj. 1 wildly excited; frenzied. 2 hurried, anxious; desperate, violent. 3 colloq. Extreme. frantically adv. [latin: related to *frenetic]

    Frappé adj. Iced, cooled. [french]

    Fraternal adj. 1 of brothers, brotherly; comradely. 2 (of twins) developed from separate ova and not necessarily similar. fraternally adv. [latin frater brother]

    Fraternity n. (pl. -ies) 1 religious brotherhood. 2 group with common interests, or of the same professional class. 3 us male students’ society. 4 brotherliness. [latin: related to *fraternal]

    Fraternize v. (also -ise) (-zing or -sing) (often foll. By with) 1 associate; make friends. 2 enter into friendly relations with enemies etc. fraternization n. [french and latin: related to *fraternal]

    Fratricide n. 1 killing of one’s brother or sister. 2 person who does this. fratricidal adj. [latin frater brother]

    Frau n. (pl. Frauen) (often as a title) married or widowed german-speaking woman. [german]

    Fraud n. 1 criminal deception. 2 dishonest artifice or trick. 3 person or thing that is not what it claims to be. [latin fraus fraud-]

    Fraudulent adj. Of, involving, or guilty of fraud. fraudulence n. Fraudulently adv. [latin: related to *fraud]

    Fraught adj. 1 (foll. By with) filled or charged with (danger etc.). 2 colloq. Distressing; tense. [dutch vracht *freight]

    Fräulein n. (often as a title or form of address) unmarried german-speaking woman. [german]

    Fray1 v. 1 wear through or become worn; esp. (of woven material) unravel at the edge. 2 (of nerves, temper, etc.) Become strained. [latin frico rub]

    Fray2 n. 1 conflict, fight. 2 brawl. [related to *affray]

    Frazzle colloq. —n. Worn, exhausted, or shrivelled state (burnt to a frazzle). — v. (-ling) (usu. As frazzled adj.) Wear out; exhaust. [origin uncertain]

    Freak —n. 1 (often attrib.) Monstrosity; abnormal person or thing (freak storm). 2 colloq. A unconventional person. B fanatic of a specified kind (health freak). C drug addict. —v. (often foll. By out) colloq. 1 become or make very angry. 2 (cause to) undergo hallucinations etc., esp. As a result of drug abuse. 3 adopt an unconventional lifestyle. freakish adj. Freaky adj. (-ier, -iest). [probably from dial.]

    Freckle —n. Small light brown spot on the skin. —v. (-ling) (usu. As freckled adj.) Spot or be spotted with freckles. freckly adj. [old norse]

    Free —adj. (freer; freest) 1 not a slave or under another’s control; having personal rights and social and political liberty. 2 (of a state, its citizens, etc.) Autonomous; democratic. 3 a unrestricted; not confined or fixed. B not imprisoned. C released from duties etc. D independent (free agent). 4 (foll. By of, from) a exempt from (tax etc.). B not containing or subject to (free of preservatives; free from disease). 5 (foll. By to + infin.) Permitted; at liberty to. 6 costing nothing. 7 a clear of duties etc. (am free tomorrow). B not in use (bathroom is free). 8 spontaneous, unforced (free offer). 9 available to all. 10 lavish (free with their money). 11 frank, unreserved. 12 (of literary style) informal, unmetrical. 13 (of translation) not literal. 14 familiar, impudent. 15 (of stories etc.) Slightly indecent. 16 chem. Not combined (free oxygen). 17 (of power or energy) disengaged, available. —adv. 1 freely. 2 without cost or payment. —v. (frees, freed) 1 make free; liberate. 2 (foll. By of, from) relieve from. 3 disentangle, clear. for free colloq. Free of charge, gratis. Free on board (or rail) without charge for delivery to a ship or railway wagon. freely adv. [old english]

    -free comb. Form free of or from (worry-free; duty-free).

    Free and easy adj. Informal, relaxed.

    Freebie n. Colloq. Thing given free of charge.

    Freeboard n. Part of a ship’s side between the waterline and deck.

    Freebooter n. Pirate. [dutch vrijbuiter: related to free, booty]

    Free-born adj. Not born a slave.

    Free church n. Nonconformist church.

    Freedman n. Emancipated slave.

    Freedom n. 1 condition of being free or unrestricted. 2 personal or civic liberty. 3 liberty of action (freedom to leave). 4 (foll. By from) exemption from. 5 (foll. By of) a honorary membership or citizenship (freedom of the city). B unrestricted use of (a house etc.). [old english]

    Freedom fighter n. Terrorist or rebel claiming to fight for freedom.

    Free enterprise n. Freedom of private business from state control.

    Free fall n. Movement under the force of gravity only.

    Free fight n. General fight in which all present join.

    Freefone n. (also freefone, -phone) system whereby certain telephone calls, esp.

    Freefone n. (also freefone, -phone) system whereby certain telephone calls, esp.

    On business, can be made without cost to the caller.

    Free-for-all n. Free fight, unrestricted discussion, etc.

    Free-form attrib. Adj. Of irregular shape or structure.

    Freehand —adj. (of a drawing etc.) Done without special instruments. —adv. In a freehand manner.

    Free hand n. Freedom to act at one’s own discretion.

    Freehanded adj. Generous.

    Freehold —n. 1 complete ownership of property for an unlimited period. 2 such land or property. —adj. Owned thus. freeholder n.

    Free house n. Public house not controlled by a brewery.

    Free kick n. Kick granted in football as a minor penalty.

    Freelance —n. 1 (also freelancer) person, usu. Self-employed, working for several employers on particular assignments. 2 (attrib.) (freelance editor). —v. (-cing) act as a freelance. —adv. As a freelance. [free lance, a medieval mercenary]

    Freeloader n. Slang sponger. freeload v.

    Free love n. Sexual freedom.

    Freeman n. 1 person who has the freedom of a city etc. 2 person who is not a slave or serf.

    Free market n. Market governed by unrestricted competition.

    Freemason n. Member of an international fraternity for mutual help and fellowship with elaborate secret rituals. freemasonry n.

    Free port n. 1 port without customs duties. 2 port open to all traders.

    Freepost n. System of business post where postage is paid by the addressee.

    Free radical n. Chem. Atom or group of atoms with one or more unpaired electrons.

    Free-range adj. 1 (of hens etc.) Roaming freely; not kept in a battery. 2 (of eggs) produced by such hens.

    Freesia n. African bulb with fragrant flowers. [freese, name of a physician]

    Free speech n. Right of expression.

    Free spirit n. Independent or uninhibited person.

    Free-spoken adj. Forthright.

    Free-standing adj. Not supported by another structure.

    Freestyle n. 1 swimming race in which any stroke may be used. 2 wrestling allowing almost any hold.

    Freethinker n. Person who rejects dogma or authority, esp. In religious belief.

    freethinking n. & adj.

    Free trade n. Trade without import restrictions etc.

    Free vote n. Parliamentary vote not subject to party discipline.

    Freeway n. Us motorway.

    Free wheel n. Driving wheel of a bicycle, able to revolve with the pedals at rest.

    Free-wheel v. 1 ride a bicycle with the pedals at rest. 2 act without constraint.

    Free will n. 1 power of acting independently of necessity or fate. 2 ability to act without coercion (did it of my own free will).

    Free world n. Hist. Non-communist countries’ collective name for themselves.

    Freeze —v. (-zing; past froze; past part. Frozen) 1 a turn into ice or another solid by cold. B make or become rigid from the cold. 2 be or feel very cold. 3 cover or become covered with ice. 4 (foll. By to, together) adhere by frost. 5 refrigerate (food) below freezing point. 6 a make or become motionless through fear, surprise, etc. B (as frozen adj) devoid of emotion (frozen smile). 7 make (assets etc.) Unrealizable. 8 fix (prices, wages, etc.) At a certain level. 9 stop (the movement in a film). —n. 1 period or state of frost. 2 fixing or stabilization of prices, wages, etc. 3 (in full freeze-frame) still film-shot. freeze up obstruct or be obstructed by ice. [old english]

    Freeze-dry v. Preserve (food) by freezing and then drying in a vacuum.

    Freezer n. Refrigerated cabinet etc. For preserving frozen food at very low temperatures.

    Freeze-up n. Period or state of extreme cold.

    Freezing point n. Temperature at which a liquid, esp. Water, freezes.

    Freight —n. 1 transport of goods in containers or by water or air, or (us) by land. 2 goods transported; cargo, load. 3 charge for the transport of goods. —v. Transport as or load with freight. [low german or dutch vrecht]

    Freighter n. 1 ship or aircraft for carrying freight. 2 us freight-wagon.

    Freightliner n. Train carrying goods in containers.

    French —adj. 1 of france, its people, or language. 2 having french characteristics. —n. 1 the french language. 2 (the french) (pl.) The people of france. 3 colloq. Dry vermouth. frenchness n. [old english: related to *frank]

    French bean n. Kidney or haricot bean as unripe sliced pods or ripe seeds.

    French bread n. Long crisp loaf.

    French canadian n. Canadian whose principal language is french.

    French chalk n. A kind of talc used for marking cloth, as a dry lubricant, etc.

    French dressing n. Salad dressing of seasoned vinegar and oil.

    French fried potatoes n.pl. (or french fries) us potato chips.

    French horn n. Coiled brass wind instrument with a wide bell.

    Frenchify v. (-ies, -ied) (usu. As frenchified adj.) Colloq. Make french in form, manners, etc.

    French kiss n. Open-mouthed kiss.

    French leave n. Absence without permission.

    French letter n. Colloq. Condom.

    Frenchman n. Man of french birth or nationality.

    French polish n. Shellac polish for wood. french-polish v.

    French window n. Glazed door in an outside wall.

    Frenchwoman n. Woman of french birth or nationality.

    Frenetic adj. (also phrenetic) 1 frantic, frenzied. 2 fanatic. frenetically adv.

    [greek phren mind]

    Frenzy —n. (pl. -ies) wild or delirious excitement, agitation, or fury. —v. (-ies, – ied) (usu. As frenzied adj.) Drive to frenzy. frenziedly adv. [medieval latin: related to *frenetic]

    Frequency n. (pl. -ies) 1 commonness of occurrence. 2 frequent occurrence. 3 rate of recurrence (of a vibration etc.); number of repetitions in a given time, esp. Per second. [related to *frequent]

    Frequency modulation n. Electronics modulation by varying carrier-wave frequency.

    Frequent —adj. 1 occurring often or in close succession. 2 habitual, constant. — v. Attend or go to habitually. frequently adv. [latin frequens -ent-crowded]

    Frequentative gram. —adj. (of a verb etc.) Expressing frequent repetition or intensity. —n. Frequentative verb etc.

    Fresco n. (pl. -s) painting done in water-colour on a wall or ceiling before the plaster is dry. [italian, = fresh]

    Fresh —adj. 1 newly made or obtained. 2 a other, different; new (start a fresh page; fresh ideas). B additional (fresh supplies). 3 (foll. By from) lately arrived. 4 not stale, musty, or faded. 5 (of food) not preserved; newly caught, grown, etc. 6 not salty (fresh water). 7 a pure, untainted, refreshing (fresh air). B bright and

    pure in colour (fresh complexion). 8 (of wind) brisk. 9 colloq. Cheeky; amorously impudent. 10 inexperienced. —adv. Newly, recently (esp. In comb.: fresh-baked). freshly adv. Freshness n. [old english fersc and french freis]

    Freshen v. 1 make or become fresh. 2 (foll. By up) a wash, tidy oneself, etc. B revive.

    Fresher n. Colloq. First-year student at university or (us) high school.

    Freshet n. 1 rush of fresh water flowing into the sea. 2 flood of a river.

    Freshman n. = *fresher.

    Freshwater attrib. Adj. (of fish etc.) Not of the sea.

    Fret1 —v. (-tt-) 1 be worried or distressed. 2 worry, vex. 3 wear or consume by gnawing or rubbing. —n. Worry, vexation. [old english: related to for, eat]

    Fret2 —n. Ornamental pattern of straight lines joined usu. At right angles. —v. (-tt-) embellish with a fret or with carved or embossed work. [french freter]

    Fret3 n. Each of a series of bars or ridges on the finger-board of a guitar etc. To guide fingering. [origin unknown]

    Fretful adj. Anxious, irritable. fretfully adv.

    Fretsaw n. Narrow saw on a frame for cutting thin wood in patterns.

    Fretwork n. Ornamental work in wood done with a fretsaw.

    Freudian —adj. Of freud, his theories, or his method of psychoanalysis. —n.

    Follower of freud.

    Freudian slip n. Unintentional verbal error revealing subconscious feelings.

    Fri. Abbr. Friday.

    Friable adj. Easily crumbled. friability n. [latin frio crumble]

    Friar n. Member of a male non-enclosed roman catholic order, e.g. Carmelites and franciscans. [latin frater brother]

    Friar’s balsam n. Tincture of benzoin etc. Used esp. As an inhalant.

    Friary n. (pl. -ies) monastery for friars.

    Fricassee —n. Pieces of meat served in a thick sauce. —v. (fricassees, fricasseed) make a fricassee of. [french]

    fricasseed) make a fricassee of. [french]

    Fricative —adj. (of a consonant) sounded by friction of the breath in a narrow opening. —n. Such a consonant (e.g. F, th). [latin frico rub]

    Friction n. 1 rubbing of one object against another. 2 the resistance encountered in so moving. 3 clash of wills, opinions, etc. frictional adj. [latin: related to *fricative]

    Friday —n. Day of the week following thursday. —adv. Colloq. 1 on friday. 2 (fridays) on fridays; each friday. [old english]

    Fridge n. Colloq. = *refrigerator. [abbreviation]

    Fridge-freezer n. Combined refrigerator and freezer.

    Friend n. 1 person one likes and chooses to spend time with (usu. Without sexual or family bonds). 2 sympathizer, helper. 3 ally or neutral person (friend or foe?). 4 person already mentioned (our friend at the bank). 5 regular supporter of an institution. 6 (friend) quaker. [old english]

    Friendly —adj. (-ier, -iest) 1 outgoing, well-disposed, kindly. 2 a (often foll. By with) on amicable terms. B not hostile. 3 (in comb.) Not harming; helping (ozone-friendly; user-friendly). 4 = user-friendly. —n. (pl. -ies) = friendly match. —adv. In a friendly manner. friendliness n.

    Friendly match n. Match played for enjoyment rather than competition.

    Friendly society n. Insurance society insuring against illness etc.

    Friendship n. Friendly relationship or feeling.

    Frier var. Of *fryer.

    Friesian n. One of a breed of black and white dairy cattle orig. From friesland. [var. Of *frisian]

    Frieze n. 1 part of an entablature between the architrave and cornice. 2 horizontal band of sculpture filling this. 3 band of decoration, esp. At the top of a wall. [latin phrygium (opus) phrygian (work)]

    Frig v. (-gg-) coarse slang 1 = *fuck v. 2 masturbate. [perhaps imitative]

    Frigate n. 1 naval escort-vessel. 2 hist. Warship. [french from italian]

    Fright n. 1 a sudden or extreme fear. B instance of this (gave me a fright). 2 grotesque-looking person or thing. take fright become frightened. [old english]

    Frighten v. 1 fill with fright (the bang frightened me; frightened of dogs). 2 (foll.

    By away, off, out of, into) drive by fright. frightening adj. Frighteningly adv.

    By away, off, out of, into) drive by fright. frightening adj. Frighteningly adv.

    Frightful adj. 1 a dreadful, shocking. B ugly. 2 colloq. Extremely bad. 3 colloq.

    Extreme (frightful rush). frightfully adv.

    Frigid adj. 1 unfriendly, cold (frigid stare). 2 (of a woman) sexually unresponsive. 3 (esp. Of a climate or air) cold. frigidity n. [latin frigus (n.) Cold]

    Frill —n. 1 strip of gathered or pleated material as an ornamental edging. 2 (in pl.) Unnecessary embellishments. —v. Decorate with a frill. frilly adj. (-ier, – iest). [origin unknown]

    Fringe —n. 1 border of tassels or loose threads. 2 front hair hanging over the forehead. 3 outer limit of an area, population, etc. (often attrib.: fringe theatre). 4 unimportant area or part. —v. (-ging) 1 adorn with a fringe. 2 serve as a fringe to. [latin fimbria]

    Fringe benefit n. Employee’s benefit additional to salary.

    Frippery n. (pl. -ies) 1 showy finery, esp. In dress. 2 empty display in speech, literary style, etc. 3 (usu. In pl.) Knick-knacks. [french friperie]

    Frisbee n. Propr. Concave plastic disc for skimming through the air as an outdoor game. [perhaps from frisbie bakery pie-tins]

    Frisian —adj. Of friesland. —n. Native or language of friesland. [latin frisii (n.

    Pl.) From old frisian frisa]

    Frisk —v. 1 leap or skip playfully. 2 slang search (a person) for a weapon etc. By feeling. —n. 1 playful leap or skip. 2 slang frisking of a person. [french frisque lively]

    Frisky adj. (-ier, -iest) lively, playful. friskily adv. Friskiness n.

    Frisson n. Emotional thrill. [french]

    Frith var. Of *firth.

    Fritillary n. (pl. -ies) 1 plant with bell-like flowers. 2 butterfly with red-brown wings chequered with black. [latin fritillus dice-box]

    Fritter1 v. (usu. Foll. By away) waste (money, time, etc.) Triflingly. [obsolete fritter(s) fragments]

    Fritter2 n. Fruit, meat, etc. Coated in batter and fried. [french friture from latin frigo *fry1]

    Frivolous adj. 1 not serious, silly, shallow. 2 paltry, trifling. frivolity n. (pl. -ies). Frivolously adv. Frivolousness n. [latin]

    Frizz —v. Form (hair) into tight curls. —n. Frizzed hair or state. [french friser]

    Frizzle1 v. (-ling) 1 fry or cook with a sizzling noise. 2 (often foll. By up) burn or shrivel. [obsolete frizz: related to *fry1, with imitative ending]

    Frizzle2 —v. (-ling) form into tight curls. —n. Frizzled hair. [perhaps related to *frizz]

    Frizzy adj. (-ier, -iest) in tight curls.

    Fro adv. Back (now only in to and fro: see *to). [old norse: related to *from]

    Frock n. 1 woman’s or girl’s dress. 2 monk’s or priest’s gown. 3 smock. [french from germanic]

    Frock-coat n. Man’s long-skirted coat.

    Frog1 n. 1 small smooth tailless leaping amphibian. 2 (frog) slang offens. Frenchman. frog in one’s throat colloq. Hoarseness. [old english]

    Frog2 n. Horny substance in the sole of a horse’s foot. [origin uncertain: perhaps a use of *frog1]

    Frog3 n. Ornamental coat-fastening of a button and loop. [origin unknown]

    Frogman n. Person with a rubber suit, flippers, and an oxygen supply for underwater swimming.

    Frogmarch v. Hustle forward with the arms pinned behind.

    Frog-spawn n. Frog’s eggs.

    Frolic —v. (-ck-) play about cheerfully. —n. 1 cheerful play. 2 prank. 3 merry party. [dutch vrolijk (adj.) From vro glad]

    Frolicsome adj. Merry, playful.

    From prep. Expressing separation or origin, followed by: 1 person, place, time, etc., that is the starting-point (dinner is served from 8; from start to finish). 2 place, object, etc. At a specified distance etc. (10 miles from rome; far from sure). 3 a source (gravel from a pit; quotations from shaw). B giver or sender (not heard from her). 4 thing or person avoided, deprived, etc. (released him from prison; took his gun from him). 5 reason, cause, motive (died from fatigue; did it from jealousy). 6 thing distinguished or unlike (know black from white). 7 lower limit (from 10 to 20 boats). 8 state changed for another (from being poor he became rich). 9 adverb or preposition of time or place (from long ago; from abroad; from under the bed). from time to time occasionally. [old english]

    Fromage frais n. Smooth low-fat soft cheese.

    Frond n. Leaflike part of a fern or palm. [latin frons frond-leaf]

    Front —n. 1 side or part most prominent or important, or nearer the spectator or direction of motion (front of the house). 2 a line of battle. B ground towards an enemy. C scene of actual fighting. 3 a activity compared to a military front. B organized political group. 4 demeanour, bearing. 5 forward or conspicuous position. 6 a bluff. B pretext. 7 person etc. As a cover for subversive or illegal activities. 8 promenade. 9 forward edge of advancing cold or warm air. 10 auditorium of a theatre. 11 breast of a garment (spilt food down his front). — attrib. Adj. 1 of the front. 2 situated in front. —v. 1 (foll. By on, to, towards, upon) have the front facing or directed towards. 2 (foll. By for) slang act as a front or cover for. 3 provide with or have a front (fronted with stone). 4 lead (a band, organization, etc.). in front in an advanced or facing position. In front of 1 ahead of, in advance of. 2 in the presence of. [latin frons front-face]

    Frontage n. 1 front of a building. 2 land next to a street or water etc. 3 extent of a front. 4 a the way a thing faces. B outlook.

    Frontal adj. 1 of or on the front (frontal view; frontal attack). 2 of the forehead (frontal bone).

    Front bench n. Seats in parliament occupied by leading members of the government and opposition.

    Front-bencher n. Mp occupying the front bench.

    Frontier n. 1 a border between two countries. B district on each side of this. 2 limits of attainment or knowledge in a subject. 3 us borders between settled and unsettled country. frontiersman n.

    Frontispiece n. Illustration facing the title-page of a book. [latin: related to *front, specio look]

    Front line n. Foremost part of an army or group under attack.

    Front runner n. Favourite in a race etc.

    Frost —n. 1 a frozen dew or vapour. B consistent temperature below freezing point. 2 cold dispiriting atmosphere. —v. 1 (usu. Foll. By over, up) become covered with frost. 2 a cover with or as with frost. B injure (a plant etc.) With frost. 3 make (glass) non-transparent by roughening its surface. [old english: related to *freeze]

    Frostbite n. Injury to body tissues due to freezing. frostbitten adj.

    Frosting n. Icing.

    Frosty adj. (-ier, -iest) 1 cold with frost. 2 covered with or as with frost. 3 unfriendly in manner. frostily adv. Frostiness n.

    Froth —n. 1 foam. 2 idle or amusing talk etc. —v. 1 emit or gather froth. 2 cause (beer etc.) To foam. frothy adj. (-ier, -iest). [old norse]

    Frown —v. 1 wrinkle one’s brows, esp. In displeasure or concentration. 2 (foll.

    Frown —v. 1 wrinkle one’s brows, esp. In displeasure or concentration. 2 (foll. By at, on) disapprove of. —n. 1 act of frowning. 2 look of displeasure or concentration. [french]

    Frowsty adj. (-ier, -iest) fusty, stuffy. [var. Of *frowzy]

    Frowzy adj. (also frowsy) (-ier, -iest) 1 fusty. 2 slatternly, dingy. [origin unknown]

    Froze past of *freeze.

    Frozen past part. Of *freeze.

    Frs abbr. Fellow of the royal society.

    Fructify v. (-ies, -ied) 1 bear fruit. 2 make fruitful. [latin: related to *fruit]

    Fructose n. Sugar in honey, fruits, etc. [latin: related to *fruit]

    Frugal adj. 1 sparing or thrifty, esp. As regards food. 2 meagre, cheap. frugality n. Frugally adv. [latin]

    Fruit —n. 1 a seed-bearing part of a plant or tree; this as food. B these

    collectively. 2 (usu. In pl.) Vegetables, grains, etc. As food (fruits of the earth). 3 (usu. In pl.) Profits, rewards. —v. (cause to) bear fruit. [latin fructus from fruor enjoy]

    Fruit cake n. Cake containing dried fruit.

    Fruit cocktail n. Diced fruit salad.

    Fruiterer n. Dealer in fruit.

    Fruitful adj. 1 producing much fruit. 2 successful, profitable. fruitfully adv.

    Fruition n. 1 bearing of fruit. 2 realization of aims or hopes. [latin: related to *fruit]

    Fruit juice n. Juice of fruit, esp. As a drink.

    Fruitless adj. 1 not bearing fruit. 2 useless, unsuccessful. fruitlessly adv.

    Fruit machine n. Coin-operated gaming machine using symbols representing fruit.

    Fruit sugar n. Fructose.

    Fruity adj. (-ier, -iest) 1 a of fruit. B tasting or smelling like fruit. 2 (of a voice etc.) Deep and rich. 3 colloq. Slightly indecent or suggestive. fruitily adv. Fruitiness n.

    Frump n. Dowdy unattractive woman. frumpish adj. Frumpy adj. (-ier, -iest). [perhaps dial. Frumple wrinkle]

    Frustrate v. (-ting) 1 make (efforts) ineffective. 2 prevent (a person) from achieving a purpose. 3 (as frustrated adj.) A discontented because unable to achieve one’s aims. B sexually unfulfilled. frustrating adj. Frustratingly adv. Frustration n. [latin frustra in vain]

    Frustum n. (pl. -ta or -s) geom. Remaining part of a decapitated cone or pyramid. [latin, = piece cut off]

    Fry1 —v. (fries, fried) cook or be cooked in hot fat. —n. (pl. Fries) 1 offal, usu. Eaten fried (lamb’s fry). 2 fried food, esp. Meat. [latin frigo]

    Fry2 n.pl. Young or newly hatched fishes. [old norse, = seed]

    Fryer n. (also frier) 1 person who fries. 2 vessel for frying esp. Fish.

    Frying-pan n. Shallow pan used in frying. out of the frying-pan into the fire from a bad situation to a worse one.

    Fry-up n. Colloq. Fried bacon, eggs, etc.

    Ft abbr. Foot, feet.

    Ft-se abbr. Financial times stock exchange 100 share index (based on the share values of britain’s largest public companies).

    Fuchsia n. Shrub with drooping red, purple, or white flowers. [fuchs, name of a botanist]

    Fuck coarse slang —v. 1 (often absol. Or as int. Expressing annoyance) curse (a person or thing). 2 have sexual intercourse (with). 3 (foll. By about, around) mess about; fool around. 4 (as fucking adj., adv.) Expressing annoyance etc. —n. 1 a act of sexual intercourse. B partner in this. 2 slightest amount (don’t give a fuck). fuck-all nothing. Fuck off go away. Fuck up 1 bungle. 2 disturb emotionally. fucker n. (often as a term of abuse). [origin unknown]

    Usage although widely used, fuck is still considered to be the most offensive word in the english language by many people. In discussions about bad language it is frequently referred to as the ‘f’ word.

    Fuck-up n. Coarse slang bungle or muddle.

    Fuddle —v. (-ling) confuse or stupefy, esp. With alcohol. —n. 1 confusion. 2 intoxication. [origin unknown]

    Fuddy-duddy slang —adj. Old-fashioned or quaintly fussy. —n. (pl. -ies) such a person. [origin unknown]

    Fudge —n. 1 soft toffee-like sweet made of milk, sugar, butter, etc. 2 piece of dishonesty or faking. —v. (-ging) make or do clumsily or dishonestly; fake (fudge the results). [origin uncertain]

    Fuehrer var. Of *führer.

    Fuel —n. 1 material for burning or as a source of heat, power, or nuclear energy. 2 food as a source of energy. 3 thing that sustains or inflames passion etc. —v. (-ll-; us -l-) 1 supply with, take in, or get, fuel. 2 inflame (feeling etc.). [french from latin]

    Fuel cell n. Cell producing electricity direct from a chemical reaction.

    Fug n. Colloq. Close stuffy atmosphere. fuggy adj. [origin unknown]

    Fugitive —n. (often foll. By from) person who flees, e.g. From justice or an enemy. —adj. 1 fleeing. 2 transient, fleeting. [latin fugio flee]

    Fugue n. Piece of music in which a short melody or phrase is introduced by one part and taken up and developed by others. fugal adj. [latin fuga flight]

    Führer n. (also fuehrer) tyrannical leader. [german]

    -ful comb. Form forming: 1 adjectives from a nouns, meaning full of or having qualities of (beautiful; masterful). B adjectives (direful). C verbs, meaning ‘apt to’ (forgetful). 2 nouns (pl. -fuls) meaning ‘amount that fills’ (handful; spoonful).

    Fulcrum n. (pl. -s or -cra) point on which a lever is supported. [latin fulcio to prop]

    Fulfil v. (us fulfill) (-ll-) 1 carry out (a task, prophecy, promise, etc.). 2 a satisfy (conditions, a desire, prayer, etc.). B (as fulfilled adj.) Completely happy. 3 answer (a purpose). fulfil oneself realize one’s potential. fulfilment n. [old english: related to *full1, *fill]

    Fulfill v. (brit. Fulfil) (-ll-) 1 carry out (a task, prophecy, promise, etc.). 2 a satisfy (conditions, a desire, prayer, etc.). B (as fulfilled adj.) Completely happy. 3 answer (a purpose). fulfil oneself realize one’s potential. fulfilment n. [old english: related to *full1, *fill]

    Full1 —adj. 1 holding all it can (bucket is full; full of water). 2 having eaten all one can or wants. 3 abundant, copious, satisfying (a full life; full details). 4 (foll. By of) having an abundance of (full of vitality). 5 (foll. By of) engrossed in (full of himself). 6 complete, perfect (full membership; in full bloom). 7 (of tone) deep and clear. 8 plump, rounded (full figure). 9 (of clothes) ample, hanging in folds. —adv. 1 very (knows full well). 2 quite, fully (full six miles). 3 exactly (full on the nose). full up colloq. Completely full. In full 1 without abridgement. 2 to or for the full amount

    Full2 v. Clean and thicken (cloth). [from *fuller]

    Full back n. Defensive player near the goal in football, hockey, etc.

    Full-blooded adj. 1 vigorous, hearty, sensual. 2 not hybrid.

    Full-blown adj. Fully developed.

    Full board n. Provision of bed and all meals at a hotel etc.

    Full-bodied adj. Rich in quality, tone, etc.

    Fuller n. Person who fulls cloth. fuller’s earth type of clay used in fulling. [latin fullo]

    Full-frontal adj. 1 (of a nude figure) fully exposed at the front. 2 explicit, unrestrained.

    Full house n. 1 maximum attendance at a theatre etc. 2 hand in poker with three of a kind and a pair.

    Full-length adj. 1 not shortened. 2 (of a mirror, portrait, etc.) Showing the whole figure.

    Full moon n. 1 moon with its whole disc illuminated. 2 time of this.

    Fullness n. Being full. the fullness of time the appropriate or destined time.

    Full-scale adj. Not reduced in size, complete.

    Full stop n. 1 punctuation mark (.) At the end of a sentence or an abbreviation. 2 complete cessation.

    Full term n. Completion of a normal pregnancy.

    Full-time —adj. For or during the whole of the working week (full-time job). — adv. On a full-time basis (work full-time).

    Full-timer n. Person who does a full-time job.

    Fully adv. 1 completely, entirely (am fully aware). 2 at least (fully 60).

    Fully-fashioned adj. (of women’s clothing) shaped to fit closely.

    Fulmar n. Arctic sea bird related to the petrel. [old norse: related to *foul, mar gull]

    Fulminant adj. 1 fulminating. 2 (of a disease etc.) Developing suddenly. [latin:

    Fulminant adj. 1 fulminating. 2 (of a disease etc.) Developing suddenly. [latin:

    related to *fulminate]

    Fulminate v. (-ting) 1 criticize loudly and forcefully. 2 explode violently; flash. fulmination n. [latin fulmen -min-lightning]

    Fulsome adj. Excessive, cloying, insincere (fulsome praise). fulsomely adv. [from *full1]

    Usage the phrase fulsome praise is sometimes wrongly used to mean generous praise rather than excessive praise.

    Fumble —v. (-ling) 1 use the hands awkwardly, grope about. 2 handle clumsily or nervously (fumbled the ball). —n. Act of fumbling. [low german fummeln]

    Fume —n. (usu. In pl.) Exuded gas, smoke, or vapour, esp. When harmful or unpleasant. —v. (-ming) 1 emit fumes or as fumes. 2 be very angry. 3 subject (oak, film, etc.) To fumes to darken. [latin fumus smoke]

    Fumigate v. (-ting) disinfect or purify with fumes. fumigation n. Fumigator n. [latin: related to *fume]

    Fun —n. 1 lively or playful amusement. 2 source of this. 3 mockery, ridicule (figure of fun). —attrib. Adj. Colloq. Amusing, enjoyable (a fun thing to do). for fun (or for the fun of it) not for a serious purpose. In fun as a joke, not seriously. Make fun of (or poke fun at) ridicule, tease. [obsolete fun, fon: related to *fond]

    Usage the use of fun as an attributive adjective is common in informal use, but is considered incorrect by some people.

    Function —n. 1 a proper or necessary role, activity, or purpose. B official or professional duty. 2 public or social occasion. 3 math. Quantity whose value depends on the varying values of others. —v. Fulfil a function, operate. [latin fungor funct-perform]

    Functional adj. 1 of or serving a function. 2 practical rather than attractive. 3 affecting the function of a bodily organ but not its structure. functionally adv.

    Functionalism n. Belief that a thing’s function should determine its design.

    functionalist n. & adj.

    Functionary n. (pl. -ies) official performing certain duties.

    Fund —n. 1 permanently available stock (fund of knowledge). 2 sum of money, esp. Set apart for a purpose. 3 (in pl.) Money resources. —v. 1 provide with money. 2 make (a debt) permanent at fixed interest. in funds colloq. Having money to spend. [latin fundus bottom]

    Fundamental —adj. Of or being a base or foundation; essential, primary. —n. 1 (usu. In pl.) Fundamental principle. 2 mus. Fundamental note. fundamentally adv. [latin: related to *found2]

    Fundamentalism n. Strict adherence to traditional religious beliefs or doctrines.

    fundamentalist n. & adj.

    Fundamental note n. Mus. Lowest note of a chord.

    Fundamental particle n. Elementary particle.

    Fund-raiser n. Person raising money for a cause, enterprise, etc. fund-raising n.

    Funeral —n. 1 ceremonial burial or cremation of a corpse. 2 slang one’s (usu. Unpleasant) concern (that’s your funeral). —attrib. Adj. Of or used at funerals. [latin funus funer-]

    Funeral director n. Undertaker.

    Funeral parlour n. Establishment where corpses are prepared for funerals.

    Funerary adj. Of or used at funerals.

    Funereal adj. 1 of or appropriate to a funeral. 2 dismal, dark. funereally adv.

    Funfair n. Fair with amusements and sideshows.

    Fungicide n. Substance that kills fungus. fungicidal adj.

    Fungoid —adj. Fungus-like. —n. Fungoid plant.

    Fungus n. (pl. -gi or -guses) 1 mushroom, toadstool, or allied plant, including moulds, feeding on organic matter. 2 med. Spongy morbid growth. fungal adj. Fungous adj. [latin]

    Funicular —adj. (of a mountain railway) operating by cable with ascending and descending cars counterbalanced. —n. Funicular railway. [latin funiculus diminutive of funis rope]

    Funk1 slang —n. 1 fear, panic. 2 coward. —v. 1 evade through fear. 2 be afraid (of). [origin uncertain]

    Funk2 n. Slang funky music. [origin uncertain]

    Funky adj. (-ier, -iest) slang (esp. Of jazz or rock music) earthy, bluesy, with a heavy rhythm.

    Funnel —n. 1 tube widening at the top, for pouring liquid etc. Into a small opening. 2 metal chimney on a steam engine or steamship. —v. (-ll-; us -l-) guide or move through or as through a funnel. [provençal fonilh from latin (in)fundibulum]

    Funny adj. (-ier, -iest) 1 amusing, comical. 2 strange, peculiar. 3 colloq. A
    slightly unwell. B eccentric. funnily adv. Funniness n. [from *fun]

    Funny-bone n. Part of the elbow over which a very sensitive nerve passes.

    Fun run n. Colloq. Uncompetitive sponsored run for charity.

    Fur —n. 1 a short fine soft animal hair. B hide with fur on it, used esp. For clothing. 2 garment of or lined with fur. 3 (collect.) Animals with fur. 4 fur-like coating on the tongue, in a kettle, etc. —v. (-rr-) 1 (esp. As furred adj.) Line or trim with fur. 2 (often foll. By up) (of a kettle etc.) Become coated with fur. make the fur fly colloq. Cause a disturbance, stir up trouble. [french from germanic]

    Furbelow n. 1 (in pl.) Showy ornaments. 2 archaic gathered strip or border of a skirt or petticoat. [french falbala]

    Furbish v. (often foll. By up) = *refurbish. [french from germanic]

    Furcate —adj. Forked, branched. —v. (-ting) fork, divide. furcation n. [latin:

    related to *fork]

    Furious adj. 1 very angry. 2 raging, frantic. furiously adv. [latin: related to *fury]

    Furl v. 1 roll up and secure (a sail etc.). 2 become furled. [french ferler]

    Furlong n. Eighth of a mile. [old english: related to furrow, long1]

    Furlough —n. Leave of absence, esp. Military. —v. Us 1 grant furlough to. 2 spend furlough. [dutch: related to for-, leave1]

    Furnace n. 1 enclosed structure for intense heating by fire, esp. Of metals or water. 2 very hot place. [latin fornax from fornus oven]

    Furnish v. 1 provide (a house, room, etc.) With furniture. 2 (often foll. By with) supply. [french from germanic]

    Furnished adj. (of a house etc.) Let with furniture.

    Furnisher n. 1 person who sells furniture. 2 person who furnishes.

    Furnishings n.pl. Furniture and fitments in a house, room, etc.

    Furniture n. 1 movable equipment of a house, room, etc., e.g. Tables, beds. 2 naut. Ship’s equipment. 3 accessories, e.g. The handles and lock on a door. [french: related to *furnish]

    Furor n. (brit. Furore) 1 uproar; fury. 2 enthusiastic admiration. [latin: related to *fury]

    Furore n. (us furor) 1 uproar; fury. 2 enthusiastic admiration. [latin: related to *fury]

    Furrier n. Dealer in or dresser of furs. [french]

    Furrow —n. 1 narrow trench made by a plough. 2 rut, groove, wrinkle. 3 ship’s track. —v. 1 plough. 2 make furrows in. [old english]

    Furry adj. (-ier, -iest) like or covered with fur.

    Further —adv. (also farther) 1 more distant in space or time. 2 to a greater extent, more (will enquire further). 3 in addition (i may add further). —adj. (also farther) 1 more distant or advanced. 2 more, additional (further details). —v. Promote or favour (a scheme etc.). [old english: related to *forth]

    Usage the form farther is used esp. With reference to physical distance, although further is preferred by many people even in this sense.

    Furtherance n. Furthering of a scheme etc.

    Further education n. Education for those above school age.

    Furthermore adv. In addition, besides.

    Furthest (also farthest) —adj. Most distant. —adv. To or at the greatest distance.

    Usage the form farthest is used esp. With reference to physical distance, although furthest is preferred by many people even in this sense.

    Furtive adj. Sly, stealthy. furtively adv. Furtiveness n. [latin fur thief]

    Fury n. (pl. -ies) 1 a wild and passionate anger. B fit of rage. 2 violence of a storm, disease, etc. 3 (fury) (usu. In pl.) (in greek mythology) avenging goddess. 4 avenging spirit. 5 angry or malignant woman. like fury colloq. With great force or effort. [latin furia]

    Furze n. = *gorse. furzy adj. [old english]

    Fuse1 —v. (-sing) 1 melt with intense heat. 2 blend into one whole by melting. 3 provide (an electric circuit) with a fuse. 4 a (of an appliance) fail owing to the melting of a fuse. B cause to do this. —n. Device with a strip or wire of easily melted metal placed in an electric circuit so as to interrupt an excessive current by melting. [latin fundo fus-melt]

    Fuse2 (also fuze) —n. 1 device of combustible matter for igniting a bomb or explosive charge. 2 component made of this in a shell, mine, etc. —v. (-sing) fit a fuse to. [latin fusus spindle]

    Fuselage n. Body of an aeroplane. [french from fuseau spindle]

    Fusible adj. That can be melted. fusibility n. [latin: related to *fuse1]

    Fusil n. Hist. Light musket. [latin focus fire]

    Fusilier n. Member of any of several british regiments formerly armed with fusils. [french: related to *fusil]

    Fusillade n. 1 period of continuous discharge of firearms. 2 sustained outburst of criticism etc.

    Fusion n. 1 fusing or melting. 2 blending. 3 coalition. 4 = *nuclear fusion. [latin:

    related to *fuse1]

    Fuss —n. 1 excited commotion, bustle. 2 excessive concern about a trivial thing. 3 sustained protest or dispute. —v. 1 behave with nervous concern. 2 agitate, worry. make a fuss complain vigorously.

    Fusspot n. Colloq. Person given to fussing.

    Fussy adj. (-ier, -iest) 1 inclined to fuss. 2 over-elaborate. 3 fastidious. fussily adv. Fussiness n.

    Fustian —n. 1 thick usu. Dark twilled cotton cloth. 2 bombast. —adj. 1 made of fustian. 2 bombastic. 3 worthless. [french]

    Fusty adj. (-ier, -iest) 1 musty, stuffy. 2 antiquated. fustiness n. [french fust cask, from latin fustis cudgel]

    Futile adj. 1 useless, ineffectual. 2 frivolous. futility n. [latin futilis leaky, futile]

    Futon n. Japanese quilted mattress used as a bed; this sold with a low wooden frame, often convertible into a couch. [japanese]

    Future —adj. 1 about to happen, be, or become. 2 a of time to come. B gram. (of a tense) describing an event yet to happen. —n. 1 time to come. 2 future events. 3 future condition of a person, country, etc. 4 prospect of success etc. (no future in it). 5 gram. Future tense. 6 (in pl.) Stock exch. Goods etc. Sold for future delivery. in future from now onwards. [latin futurus future part. Of sum be]

    Future perfect n. Gram. Tense giving the sense ‘will have done’.

    Futurism n. 20th-century artistic movement departing from traditional forms and celebrating technology and dynamism. futurist n. & adj.

    Futuristic adj. 1 suitable for the future; ultra-modern. 2 of futurism.

    Futurity n. (pl. -ies) literary 1 future time. 2 (in sing. Or pl.) Future events.

    Futurology n. Forecasting of the future, esp. From present trends.

    Futurology n. Forecasting of the future, esp. From present trends.

    Fuze var. Of *fuse2.

    Fuzz n. 1 fluff. 2 fluffy or frizzed hair. 3 slang a (prec. By the) the police. B police officer. [probably low german or dutch]

    Fuzzy adj. (-ier, -iest) 1 like fuzz, fluffy. 2 blurred, indistinct. fuzzily adv.

    Fuzziness n.

    -fy suffix forming: 1 verbs from nouns, meaning: a make, produce (pacify). B make into (deify; petrify). 2 verbs from adjectives, meaning ‘bring or come into a state’ (frenchify; solidify). 3 verbs in a causative sense (horrify; stupefy). [french -fier from latin facio make]

    G

    G1 n. (also g) (pl. Gs or g’s) 1 seventh letter of the alphabet. 2 mus. Fifth note of the diatonic scale of c major.

    G2 abbr. (also g.) 1 gauss. 2 giga-. 3 gravitational constant.

    G7 attrib. Adj. Designating the world’s seven richest nations. [group of seven]

    G abbr. (also g.) 1 gram(s). 2 a gravity. B acceleration due to gravity.

    Ga symb. Gallium.

    Gab n. Colloq. Talk, chatter. [var. Of *gob1]

    Gabardine n. (also gaberdine) 1 twill-woven cloth, esp. Of worsted. 2 raincoat etc. Made of this. [french gauvardine]

    Gabble —v. (-ling) talk or utter unintelligibly or too fast. —n. Fast unintelligible talk. [dutch, imitative]

    Gaberdine var. Of *gabardine.

    Gable n. 1 triangular upper part of a wall at the end of a ridged roof. 2 gable-topped wall. gabled adj. [old norse and french]

    Gad v. (-dd-) (foll. By about) go about idly or in search of pleasure. [obsolete gadling companion]

    Gadabout n. Person who gads about.

    Gadfly n. 1 fly that bites cattle and horses. 2 irritating person. [obsolete gad spike]

    Gadget n. Small mechanical device or tool. gadgetry n. [origin unknown]

    Gadolinium n. Metallic element of the lanthanide series. [gadolin, name of a mineralogist]

    Gadwall n. Brownish-grey freshwater duck. [origin unknown]

    Gael n. 1 scottish celt. 2 gaelic-speaking celt. [gaelic gaidheal]

    Gaelic —n. Celtic language of ireland and scotland. —adj. Of the celts or the celtic languages.

    Gaff1 —n. 1 a stick with an iron hook for landing large fish. B barbed fishing-

    Gaff1 —n. 1 a stick with an iron hook for landing large fish. B barbed fishing-spear. 2 spar to which the head of a fore-and-aft sail is bent. —v. Seize (a fish) with a gaff. [provençal gaf hook]

    Gaff2 n. Slang blow the gaff reveal a plot or secret. [origin unknown]

    Gaffe n. Blunder; indiscreet act or remark. [french]

    Gaffer n. 1 old fellow. 2 colloq. Foreman, boss. 3 chief electrician in a film or television production unit. [probably from *godfather]

    Gag —n. 1 thing thrust into or tied across the mouth, esp. To prevent speaking or crying out. 2 joke or comic scene. 3 parliamentary closure. 4 thing restricting free speech. —v. (-gg-) 1 apply a gag to. 2 silence; deprive of free speech. 3 choke, retch. 4 make gags as a comedian etc. [origin uncertain]

    Gaga adj. Slang 1 senile. 2 slightly crazy. [french]

    Gage1 n. 1 pledge; thing deposited as security. 2 symbol of a challenge to fight, esp. A glove thrown down. [germanic: related to *wed, *wage]

    Gage2 (brit. Gauge: see also sense 6) —n. 1 standard measure, esp. Of the capacity or contents of a barrel, fineness of a textile, diameter of a bullet, or thickness of sheet metal. 2 instrument for measuring pressure, width, length, thickness, etc. 3 distance between rails or opposite wheels. 4 capacity, extent. 5 criterion, test. 6 (usu. Gage) naut. Position relative to the wind. —v. (-ging) 1 measure exactly. 2 measure the capacity or content of. 3 estimate (a person,

    situation, etc.). [french]

    Gaggle n. 1 flock of geese. 2 colloq. Disorganized group of people. [imitative]

    Gaiety n. (us gayety) 1 being gay; mirth. 2 merrymaking. 3 bright appearance. [french: related to *gay]

    Gaily adv. In a gay or careless manner (gaily decorated; gaily announced their departure).

    Gain —v. 1 obtain or win (gain advantage; gain recognition). 2 acquire as profits etc., earn. 3 (often foll. By in) get more of, improve (gain momentum; gain in experience). 4 benefit, profit. 5 (of a clock etc.) Become fast; become fast by (a specified amount of time). 6 (often foll. By on, upon) come closer to a person or thing pursued. 7 a reclaim (land from the sea). B win (a battle). 8 reach (a desired place). —n. 1 increase of wealth etc.; profit, improvement. 2 (in pl.) Sums of money got by trade etc. 3 increase in amount. gain ground 1 advance. 2 (foll. By on) catch up (a person pursued). [french from germanic]

    Gainful adj. 1 (of employment) paid. 2 lucrative. gainfully adv.

    Gainsay v. Deny, contradict. [old norse: related to against, say]

    Gait n. Manner of walking or forward motion. [old norse]

    Gaiter n. Covering of cloth, leather, etc., for the lower leg. [french guêtre]

    Gal n. Slang girl. [representing a variant pronunciation]

    Gal. Abbr. (also gall.) Gallon(s).

    Gala n. Festive occasion or gathering (swimming gala). [ultimately from french gale rejoicing from germanic]

    Galactic adj. Of a galaxy or galaxies.

    Galantine n. White meat boned, stuffed, spiced, etc., and served cold. [french from latin]

    Galaxy n. (pl. -ies) 1 independent system of stars, gas, dust, etc., in space. 2 (the galaxy) milky way. 3 (foll. By of) brilliant company (galaxy of talent). [greek gala milk]

    Gale n. 1 very strong wind or storm. 2 outburst, esp. Of laughter. [origin unknown]

    Gall bladder n. Organ storing bile.

    Galleon n. Hist. Warship (usu. Spanish). [french or spanish: related to *galley]

    Galleria n. Collection of small shops under a single roof. [italian]

    Gallery n. (pl. -ies) 1 room or building for showing works of art. 2 balcony, esp. In a church, hall, etc. (minstrels’ gallery). 3 highest balcony in a theatre. 4 a covered walk partly open at the side; colonnade. B narrow passage in the thickness of a wall or on corbels, open towards the interior of the building. 5 long narrow room or passage (shooting-gallery). 6 horizontal underground passage in a mine etc. 7 group of spectators at a golf-match etc. play to the gallery seek to win approval by appealing to popular taste. [french galerie]

    Galley n. (pl. -s) 1 hist. A long flat single-decked vessel usu. Rowed by slaves or criminals. B ancient greek or roman warship. 2 ship’s or aircraft’s kitchen. 3 printing (in full galley proof) proof in continuous form before division into pages. [latin galea]

    Galley-slave n. Drudge.

    Gallic adj. 1 french or typically french. 2 of gaul or the gauls. [latin gallicus]

    Gallicism n. French idiom. [related to *gallic]

    Gallinaceous adj. Of the order including domestic poultry, pheasants, etc. [latin gallina hen]

    Gallium n. Soft bluish-white metallic element. [latin gallia france: so named

    patriotically by its discoverer lecoq]

    Gallivant v. Colloq. Gad about. [origin uncertain]

    Gallo-comb. Form french. [latin]

    Gallon n. 1 measure of capacity equal to eight pints (4.5 litres; for wine, or us, 3.8 litres). 2 (in pl.) Colloq. Large amount. [french]

    Gallop —n. 1 fastest pace of a horse etc., with all the feet off the ground together in each stride. 2 ride at this pace. —v. (-p-) 1 a (of a horse etc. Or its rider) go at a gallop. B make (a horse etc.) Gallop. 2 read, talk, etc., fast. 3 progress rapidly (galloping inflation). [french: related to *wallop]

    Gallows n.pl. (usu. Treated as sing.) Structure, usu. Of two uprights and a crosspiece, for hanging criminals. [old norse]

    Gallstone n. Small hard mass forming in the gall-bladder.

    Gallup poll n. = *opinion poll. [gallup, name of a statistician]

    Galore adv. In plenty (whisky galore). [irish]

    Galosh n. (also golosh) (usu. In pl.) Overshoe, usu. Of rubber. [french]

    Galosh n. (also golosh) (usu. In pl.) Overshoe, usu. Of rubber. [french]

    Galumph v. (esp. As galumphing adj.) Colloq. Move noisily or clumsily. [coined by lewis carroll, perhaps from gallop, triumph]

    Galvanic adj. 1 a producing an electric current by chemical action. B (of electricity) produced by chemical action. 2 a sudden and remarkable (had a galvanic effect). B stimulating; full of energy. galvanically adv.

    Galvanize v. (also -ise) (-zing or -sing) 1 (often foll. By into) rouse forcefully, esp. By shock or excitement (was galvanized into action). 2 stimulate by or as by electricity. 3 coat (iron) with zinc to protect against rust. galvanization n. [galvani, name of a physiologist]

    Galvanometer n. Instrument for detecting and measuring small electric currents.

    galvanometric adj.

    Gambit n. 1 chess opening in which a player sacrifices a piece or pawn to secure an advantage. 2 opening move in a discussion etc. 3 trick or device. [italian gambetto tripping up]

    Gamble —v. (-ling) 1 play games of chance for money. 2 a bet (a sum of money) in gambling. B (often foll. By away) lose by gambling. 3 risk much in the hope of great gain. 4 (foll. By on) act in the hope of. —n. 1 risky undertaking. 2 spell of gambling. gambler n.

    Gamboge n. Gum resin used as a yellow pigment and as a purgative. [cambodia in se asia]

    in se asia]

    Gambol —v. (-ll-; us -l-) skip or jump about playfully. —n. Frolic, caper. [french gambade leap, from italian gamba leg]

    Game1 —n. 1 form of play or sport, esp. A competitive one with rules. 2 portion of play forming a scoring unit, e.g. In bridge or tennis. 3 (in pl.) Series of athletic etc. Contests (olympic games). 4 a piece of fun, jest (didn’t mean to upset you; itwas only a game). B (in pl.) Dodges, tricks (none of your games!). 5 colloq. A scheme (so that’s your game). B type of activity or business (have been in the antiques game a long time). 6 a wild animals or birds hunted for sport or food. B their flesh as food. —adj. Spirited; eager and willing (are you game for a walk?). —v. (-ming) gamble for money stakes. the game is up scheme is revealed or foiled. On the game slang involved in prostitution. gamely adv. [old english]

    Game2 adj. Colloq. (of a leg, arm, etc.) Crippled. [origin unknown]

    Gamecock n. Cock bred and trained for cock-fighting.

    Gamekeeper n. Person employed to breed and protect game.

    Gamelan n. 1 se asian orchestra mainly of percussion instruments. 2 type of xylophone used in this. [javanese]

    Gamesmanship n. Art of winning games by gaining psychological advantage.

    Gamester n. Gambler.

    Gamete n. Mature germ cell able to unite with another in sexual reproduction. gametic adj. [greek, = wife]

    Gamin n. 1 street urchin. 2 impudent child. [french]

    Gamine n. 1 girl gamin. 2 girl with mischievous charm. [french]

    Gamma n. 1 third letter of the greek alphabet (g, g). 2 third-class mark for a piece of work etc. [greek]

    Gamma radiation n. (also gamma rays) electromagnetic radiation of shorter wavelength than x-rays.

    Gammon n. 1 bottom piece of a flitch of bacon including a hind leg. 2 ham of a pig cured like bacon. [french: related to *jamb]

    Gammy adj. (-ier, -iest) slang = *game2. [dial. Form of *game2]

    Gamut n. Entire range or scope. run the gamut of experience or perform the complete range of. [latin gamma ut, words arbitrarily taken as names of notes]

    Gamy adj. (-ier, -iest) smelling or tasting like high game.

    Gander n. 1 male goose. 2 slang look, glance (take a gander). [old english]

    Gang n. 1 band of persons associating for some (usu. Antisocial or criminal) purpose. 2 set of workers, slaves, or prisoners. gang up colloq. 1 (often foll. By with) act together. 2 (foll. By on) combine against. [old norse]

    Ganger n. Foreman of a gang of workers.

    Gangling adj. (of a person) loosely built; lanky. [frequentative of old english gang go]

    Ganglion n. (pl. -lia or -s) structure containing an assemblage of nerve cells. ganglionic adj. [greek]

    Gangly adj. (-ier, -iest) = *gangling.

    Gangplank n. Movable plank for boarding or disembarking from a ship etc.

    Gangrene n. Death of body tissue, usu. Resulting from obstructed circulation. gangrenous adj. [greek gaggraina]

    Gangster n. Member of a gang of violent criminals.

    Gangue n. Valueless earth etc. In which ore is found. [german: related to *gang]

    Gangway n. 1 passage, esp. Between rows of seats. 2 a opening in a ship’s bulwarks. B bridge from ship to shore.

    Gannet n. 1 large diving sea bird. 2 slang greedy person. [old english]

    Gantry n. (pl. -ies) structure supporting a travelling crane, railway or road signals, rocket-launching equipment, etc. [probably gawn, a dial. Form of *gallon, + *tree]

    Gaol var. Of *jail.

    Gaolbird var. Of *jailbird.

    Gaolbreak var. Of *jailbreak.

    Gaoler var. Of *jailer.

    Gap n. 1 empty space, interval; deficiency. 2 breach in a hedge, fence, etc. 3 wide divergence in views etc. gappy adj. [old norse]

    Gape —v. (-ping) 1 a open one’s mouth wide. B be or become wide open; split. 2 (foll. By at) stare at. —n. 1 open-mouthed stare; open mouth. 2 rent, opening. [old norse]

    Garage —n. 1 building for housing a vehicle. 2 establishment selling petrol etc., or repairing and selling vehicles. —v. (-ging) put or keep in a garage. [french]

    Garb —n. Clothing, esp. Of a distinctive kind. —v. (usu. In passive or refl.) Dress. [germanic: related to *gear]

    Garbage n. 1 esp. Us refuse. 2 colloq. Nonsense. [anglo-french]

    Garble v. (-ling) 1 (esp. As garbled adj.) Unintentionally distort or confuse (facts, messages, etc.). 2 make a (usu. Unfair) selection from (facts, statements, etc.). [italian from arabic]

    Garden —n. 1 piece of ground for growing flowers, fruit, or vegetables, and as a place of recreation. 2 (esp. In pl.) Grounds laid out for public enjoyment. 3 (attrib.) Cultivated (garden plants). —v. Cultivate or tend a garden. gardening n. [germanic: related to *yard2]

    Garden centre n. Place where plants and garden equipment are sold.

    Garden city n. Town spaciously laid out with parks etc.

    Gardener n. Person who gardens, esp. For a living.

    Gardenia n. Tree or shrub with large fragrant flowers. [garden, name of a naturalist]

    Garden party n. Party held on a lawn or in a garden.

    Garfish n. (pl. Same or -es) fish with a long spearlike snout. [old english, = spear-fish]

    Gargantuan adj. Gigantic. [from the name gargantua, a giant in rabelais]

    Gargle —v. (-ling) wash (the throat) with a liquid kept in motion by breathing through it. —n. Liquid for gargling. [french: related to *gargoyle]

    Gargoyle n. Grotesque carved face or figure, esp. As a spout from the gutter of a building. [french, = throat]

    Garibaldi n. (pl. -s) biscuit containing a layer of currants. [garibaldi, name of an italian patriot]

    Garish adj. Obtrusively bright; showy; gaudy. garishly adv. Garishness n. [obsolete gaure stare]

    Garland —n. Wreath of flowers etc., worn on the head or hung as a decoration. —v. Adorn or crown with a garland or garlands. [french]

    —v. Adorn or crown with a garland or garlands. [french]

    Garlic n. Plant of the onion family with a pungent bulb used in cookery. garlicky adj. [old english, = spear-leek]

    Garment n. 1 article of dress. 2 outward covering. [french: related to *garnish]

    Garner —v. 1 collect. 2 store. —n. Literary storehouse or granary. [latin: related to *granary]

    Garnet n. Glassy silicate mineral, esp. A red kind used as a gem. [medieval latin granatum *pomegranate]

    Garnish —v. Decorate (esp. Food). —n. Decoration, esp. To food. [french garnir from germanic]

    Garotte var. Of *garrotte.

    Garret n. Attic or room in a roof. [french, = watch-tower: related to *garrison]

    Garrison —n. Troops stationed in a town etc. To defend it. —v. (-n-) 1 provide with or occupy as a garrison. 2 place on garrison duty. [french garir defend, from germanic]

    Garrote (brit. Garrotte) —v. (-ting) execute or kill by strangulation, esp. With a wire collar. —n. Device used for this. [french or spanish]

    Garrotte (also garotte; us garrote) —v. (-ting) execute or kill by strangulation, esp. With a wire collar. —n. Device used for this. [french or spanish]

    Garrulous adj. Talkative. garrulity n. Garrulousness n. [latin]

    Garter n. 1 band worn to keep a sock or stocking up. 2 (the garter) a highest order of english knighthood. B badge or membership of this. [french]

    Garter stitch n. Plain knitting stitch.

    Gas —n. (pl. -es) 1 any airlike substance (i.e. Not solid or liquid) moving freely to fill any space available. 2 such a substance (esp. Found naturally or extracted from coal) used as fuel (also attrib.: gas cooker; gas industry). 3 nitrous oxide or other gas as an anaesthetic. 4 poisonous gas used in war. 5 us colloq. Petrol, gasoline. 6 slang idle talk; boasting. 7 slang enjoyable or amusing thing or person. —v. (gases, gassed, gassing) 1 expose to gas, esp. To kill. 2 colloq. Talk idly or boastfully.

    Gall1 n. 1 slang impudence. 2 rancour. 3 bitterness. 4 bile. [old norse]

    Gasbag n. Slang idle talker.

    Gas chamber n. Room filled with poisonous gas to kill people or animals.

    Gaseous adj. Of or like gas.

    Gas fire n. Domestic heater burning gas.

    Gas-fired adj. Using gas as fuel.

    Gash —n. Long deep slash, cut, or wound. —v. Make a gash in; cut. [french]

    Gasholder n. Large receptacle for storing gas; gasometer.

    Gasify v. (-ies, -ied) convert into gas. gasification n.

    Gasket n. Sheet or ring of rubber etc., shaped to seal the junction of metal surfaces. [french garcette]

    Gaslight n. Light from burning gas.

    Gasman n. Man who installs or services gas appliances, or reads gas meters.

    Gas mask n. Respirator as a protection against poison gas.

    Gasoline n. (also gasolene) us petrol.

    Gasometer n. Large tank from which gas is distributed by pipes. [french gazomètre: related to *gas, *-meter]

    Gasp —v. 1 catch one’s breath with an open mouth as in exhaustion or astonishment. 2 utter with gasps. —n. Convulsive catching of breath. [old norse]

    Gas ring n. Hollow ring perforated with gas jets, for cooking etc.

    Gassy adj. (-ier, -iest) 1 a of or like gas. B full of gas. 2 colloq. Verbose.

    Gasteropod var. Of *gastropod.

    Gastric adj. Of the stomach. [french: related to *gastro-]

    Gastric flu n. Colloq. Intestinal disorder of unknown cause.

    Gastric juice n. Digestive fluid secreted by the stomach glands.

    Gastritis n. Inflammation of the stomach.

    Gastro-comb. Form stomach. [greek gaster stomach]

    Gastro-enteritis n. Inflammation of the stomach and intestines.

    Gastronome n. Gourmet. [greek gaster stomach, nomos law]

    Gastronomy n. Science or art of good eating and drinking. gastronomic adj.

    Gastronomical adj. Gastronomically adv.

    Gastropod n. (also gasteropod) mollusc that moves by means of a ventral muscular organ, e.g. A snail. [from *gastro-, greek pous pod-foot]

    Gasworks n. Place where gas is manufactured for lighting and heating.

    Gate —n. 1 barrier, usu. Hinged, used to close an opening made for entrance and exit through a wall, fence, etc. 2 such an opening. 3 means of entrance or exit. 4 numbered place of access to aircraft at an airport. 5 device regulating the passage of water in a lock etc. 6 a number of people entering by payment at the gates of a sports ground etc. B amount of money taken thus. 7 a electrical signal that causes or controls the passage of other signals. B electrical circuit with an output that depends on the combination of several inputs. —v. (-ting) confine to college or school as a punishment. gated adj. [old english]

    Gateau n. (pl. -s or -x) large rich cake filled with cream etc. [french]

    Gatecrasher n. Uninvited guest at a party etc. gatecrash v.

    Gatehouse n. House standing by or over a gateway, esp. To a large house or park.

    Gateleg n. (in full gateleg table) table with folding flaps supported by legs swung open like a gate. gatelegged adj.

    Gatepost n. Post at either side of a gate.

    Gateway n. 1 opening which can be closed with a gate. 2 means of access (gateway to the south; gateway to success).

    Gather —v. 1 bring or come together; accumulate. 2 pick or collect as harvest. 3 infer or deduce. 4 a increase (gather speed). B collect (gather dust). 5 summon up (energy etc.). 6 draw together in folds or wrinkles. 7 (often as gathering adj.) Come to a head (gathering storm).

    Gall2 —n. 1 sore made by chafing. 2 mental soreness or its cause. 3 place rubbed bare. —v. 1 rub sore. 2 vex, humiliate. [low german or dutch galle]

    Gall3 n. Growth produced by insects etc. On plants and trees, esp. On oak. [latin galla]

    Gall. Abbr. Var. Of *gal.

    Gallant —adj. 1 brave. 2 fine, stately. 3 very attentive to women. —n. Ladies’ man. gallantly adv. [french galer make merry]

    Gallantry n. (pl. -ies) 1 bravery. 2 devotion to women. 3 polite act or speech.

    Gathering n. 1 assembly. 2 purulent swelling. 3 group of leaves taken together in bookbinding.

    Gatt abbr. General agreement on tariffs and trade.

    Gauche adj. 1 socially awkward. 2 tactless. gauchely adv. Gaucheness n. [french]

    Gaucherie n. Gauche manners or act. [french: related to *gauche]

    Gaucho n. (pl. -s) cowboy from the s. American pampas. [spanish from quechua]

    Gaudy adj. (-ier, -iest) tastelessly showy. gaudily adv. Gaudiness n. [obsolete gaud ornament, from latin gaudeo rejoice]

    Gauge (us gage: see also sense 6) —n. 1 standard measure, esp. Of the capacity or contents of a barrel, fineness of a textile, diameter of a bullet, or thickness of sheet metal. 2 instrument for measuring pressure, width, length, thickness, etc. 3 distance between rails or opposite wheels. 4 capacity, extent. 5 criterion, test. 6 (usu. Gage) naut. Position relative to the wind. —v. (-ging) 1 measure exactly. 2 measure the capacity or content of. 3 estimate (a person, situation, etc.). [french]

    Gaul n. Inhabitant of ancient gaul. [french from germanic]

    Gaulish —adj. Of the gauls. —n. Their language.

    Gaunt adj. 1 lean, haggard. 2 grim, desolate. gauntness n. [origin unknown]

    Gauntlet1 n. 1 stout glove with a long loose wrist. 2 hist. Armoured glove. pick up (or take up) the gauntlet accept a challenge. Throw down the gauntlet issue a challenge. [french diminutive of gant glove]

    Gauntlet2 n. run the gauntlet 1 undergo harsh criticism. 2 pass between two rows of people and receive blows from them, as a punishment or ordeal. [swedish gatlopp from gata lane, lopp course]

    Gauss n. (pl. Same) unit of magnetic flux density. [gauss, name of a mathematician]

    Gauze n. 1 thin transparent fabric of silk, cotton, etc. 2 fine mesh of wire etc. gauzy adj. (-ier, -iest). [french from gaza in palestine]

    Gave past of *give.

    Gavel n. Hammer used for calling attention by an auctioneer, chairman, or judge. [origin unknown]

    [origin unknown]

    Gavotte n. 1 old french dance. 2 music for this. [french from provençal]

    Gawk —v. Colloq. Gawp. —n. Awkward or bashful person. [obsolete gaw *gaze]

    Gawky adj. (-ier, -iest) awkward or ungainly. gawkily adv. Gawkiness n.

    Gawp v. Colloq. Stare stupidly or obtrusively. [related to *yelp]

    Gay —adj. 1 light-hearted, cheerful. 2 brightly coloured. 3 colloq. Homosexual. 4 colloq. Careless, thoughtless (gay abandon). —n. Colloq. (esp. Male) homosexual. gayness n. [french]

    Usage sense 3 is generally informal in tone, but is favoured by homosexual groups.

    Gayety n. (brit. Gaiety) 1 being gay; mirth. 2 merrymaking. 3 bright appearance. [french: related to *gay]

    Gaze —v. (-zing) (foll. By at, into, on, etc.) Look fixedly. —n. Intent look. [origin unknown]

    Gazebo n. (pl. -s) summerhouse, turret, etc., with a wide view. [perhaps a fanciful formation from *gaze]

    Gazelle n. (pl. Same or -s) small graceful antelope. [arabic gazal]

    Gazette —n. 1 newspaper (used in the title). 2 official publication with announcements etc. —v. (-tting) announce or name in an official gazette. [french from italian]

    Gazetteer n. Geographical index. [italian: related to *gazette]

    Gazpacho n. (pl. -s) cold spanish soup. [spanish]

    Gazump v. Colloq. 1 raise the price of a property after accepting an offer from (a buyer). 2 swindle. [origin unknown]

    Gazunder v. Colloq. Lower an offer made to (a seller) for a property just before the exchange of contracts. [from gazump, under]

    Gb abbr. Great britain.

    Gbh abbr. Grievous bodily harm.

    Gc abbr. George cross.

    Gce abbr. General certificate of education.

    Gchq abbr. Government communications headquarters.

    Gcse abbr. General certificate of secondary education.

    Gd symb. Gadolinium.

    Gdp abbr. Gross domestic product.

    Gdr abbr. Hist. German democratic republic.

    Ge symb. Germanium.

    Gear —n. 1 (often in pl.) A set of toothed wheels that work together, esp. Those connecting the engine of a vehicle to the road wheels. B particular setting of these (first gear). 2 equipment, apparatus, or tackle. 3 colloq. Clothing. —v. 1 (foll. By to) adjust or adapt to. 2 (often foll. By up) equip with gears. 3 (foll. By up) make ready or prepared. 4 put in gear. in gear with a gear engaged. Out of gear with no gear engaged. [old norse]

    Gearbox n. 1 set of gears with its casing, esp. In a vehicle. 2 the casing itself.

    Gearing n. Set or arrangement of gears.

    Gear lever n. (also gear shift) lever used to engage or change gear.

    Gearwheel n. Toothed wheel in a set of gears.

    Gecko n. (pl. -s) tropical house-lizard. [malay]

    Gee1 int. (also gee whiz) esp. Us colloq. Expression of surprise etc. [perhaps an abbreviation of *jesus]

    Gee2 int. (usu. Foll. By up) command to a horse etc. To start or go faster. [origin unknown]

    Gee-gee n. Colloq. (a child’s word for) a horse.

    Geese pl. Of *goose.

    Geezer n. Slang person, esp. An old man. [dial. Guiser mummer]

    Geiger counter n. Device for detecting and measuring radioactivity. [geiger, name of a physicist]

    name of a physicist]

    Geisha n. (pl. Same or -s) japanese woman trained to entertain men. [japanese]

    Gel —n. 1 semisolid jelly-like colloid. 2 jelly-like substance used for setting the hair. —v. (-ll-) 1 form a gel. 2 = jell 2. [from gelatin]

    Gelatin n. (also gelatine) transparent tasteless substance from skin, tendons, etc., used in cookery, photography, etc. gelatinize v. (also -ise) (-zing or -sing). [italian: related to *jelly]

    Gelatinous adj. Of a jelly-like consistency.

    Geld v. Castrate. [old norse]

    Gelding n. Gelded animal, esp. A horse.

    Gelignite n. Explosive made from nitroglycerine. [from *gelatin, *igneous]

    Gem —n. 1 precious stone, esp. Cut and polished or engraved. 2 thing or person of great beauty or worth. —v. (-mm-) adorn with or as with gems. [latin gemma bud, jewel]

    Geminate —adj. Combined in pairs. —v. (-ting) 1 double, repeat. 2 arrange in

    pairs. gemination n. [latin: related to *gemini]

    Gemini n. (pl. -s) 1 constellation and third sign of the zodiac (the twins). 2 person born when the sun is in this sign. [latin, = twins]

    Gemma n. (pl. Gemmae) small cellular body in plants such as mosses, that separates from the mother-plant and starts a new one. gemmation n. [latin, see *gem]

    Gemstone n. Precious stone used as a gem.

    Gen. Abbr. General.

    Gen slang —n. Information. —v. (-nn-) (foll. By up) gain or give information. [probably general information]

    -gen comb. Form chem. That which produces (hydrogen; antigen). [greek -genes born]

    Gendarme n. (in french-speaking countries) police officer. [french gens d’armes men of arms]

    Gender n. 1 a classification roughly corresponding to the two sexes and sexlessness. B class of noun according to this classification (see *masculine, feminine, neuter). 2 a person’s sex. [latin *genus]

    Gene n. Unit in a chromosome determining heredity. [german]

    Genealogy n. (pl. -ies) 1 descent traced continuously from an ancestor, pedigree. 2 study of pedigrees. 3 organism’s line of development from earlier forms. genealogical adj. Genealogically adv. Genealogist n. [greek genea race]

    Genera pl. Of *genus.

    General —adj. 1 including or affecting all or most parts or cases of things. 2 prevalent, usual (the general feeling). 3 not partial or particular or local. 4 not limited in application, true of all or nearly all cases (as a general rule). 5 not restricted or specialized (general knowledge; general hospital). 6 not detailed (general idea). 7 vague (spoke only in general terms). 8 chief, head; having overall authority (general manager; secretary-general). —n. 1 a army officer next below field marshal. B = lieutenant general (see lieutenant colonel), major-general. 2 commander of an army. 3 strategist (a great general). 4 head of a religious order, e.g. Of jesuits etc. in general 1 as a normal rule; usually. 2 for the most part. [latin generalis]

    General anaesthetic n. Anaesthetic affecting the whole body, usu. With loss of consciousness.

    General certificate of education n. Examination set esp. For secondary-school pupils at advanced level (and, formerly, ordinary level) in england, wales and northern ireland.

    General certificate of secondary education n. Examination replacing and combining the gce ordinary level and cse examinations.

    General election n. National parliamentary election.

    Generalissimo n. (pl. -s) commander of a combined military and naval and air force, or of combined armies. [italian superlative]

    Generality n. (pl. -ies) 1 general statement or rule. 2 general applicability. 3 lack of detail. 4 (foll. By of) main body or majority.

    Generalize v. (also -ise) (-zing or -sing) 1 a speak in general or indefinite terms.

    B form general notions. 2 reduce to a general statement. 3 infer (a rule etc.)

    From particular cases. 4 bring into general use. generalization n.

    Generally adv. 1 usually; in most respects or cases (generally get up early; was generally well-behaved). 2 in a general sense; without regard to particulars or exceptions (generally speaking). 3 for the most part (not generally known).

    General meeting n. Meeting open to all the members of a society etc.

    General practice n. Work of a general practitioner.

    General practitioner n. Community doctor treating cases of all kinds in the first instance.

    General staff n. Staff assisting a military commander at headquarters.

    General staff n. Staff assisting a military commander at headquarters.

    General strike n. Simultaneous strike of workers in all or most trades.

    Generate v. (-ting) bring into existence; produce. [latin: related to *genus]

    Generation n. 1 all the people born at about the same time. 2 single stage in a family history (three generations were present in the photograph). 3 stage in (esp. Technological) development (fourth-generation computers). 4 average time in which children are ready to take the place of their parents (about 30 years). 5 production, esp. Of electricity. 6 procreation. first- (or second-, third-, etc.) Generation (attrib.) Designating a person who emigrated to a place (or whose parents or grandparents etc. Emigrated). [latin: related to *generate]

    Generation gap n. Differences of outlook between different generations.

    Generative adj. 1 of procreation. 2 productive.

    Generator n. 1 machine for converting mechanical into electrical energy. 2 apparatus for producing gas, steam, etc.

    Generic adj. 1 characteristic of or relating to a class; general, not specific or special. 2 biol. Characteristic of or belonging to a genus. generically adv. [latin: related to *genus]

    Generous adj. 1 giving or given freely. 2 magnanimous, unprejudiced. 3

    Generous adj. 1 giving or given freely. 2 magnanimous, unprejudiced. 3 abundant, copious. generosity n. Generously adv. [latin: related to *genus]

    Genesis n. 1 origin; mode of formation. 2 (genesis) first book of the old testament, with an account of the creation. [greek gen-be produced]

    Gene therapy n. Introduction of normal genes into cells in place of defective or missing ones in order to correct genetic disorders.

    Genetic adj. 1 of genetics or genes. 2 of or in origin. genetically adv. [from *genesis]

    Genetic code n. Arrangement of genetic information in chromosomes.

    Genetic engineering n. Manipulation of dna to modify hereditary features.

    Genetic fingerprinting n. (also genetic profiling) identifying individuals by dna patterns.

    Genetics n.pl. (treated as sing.) The study of heredity and the variation of inherited characteristics. geneticist n.

    Genial adj. 1 jovial, sociable, kindly. 2 (of the climate) mild and warm; conducive to growth. 3 cheering. geniality n. Genially adv. [latin: related to *genius]

    Genie n. (pl. Genii) (in arabian tales) spirit or goblin with magical powers. [french génie genius: cf. jinnee]

    Genital —adj. Of animal reproduction or the reproductive organs. —n. (in pl.) External reproductive organs. [latin gigno genit-beget]

    Genitalia n.pl. Genitals. [latin, neuter pl. Of genitalis: see *genital]

    Genitive gram. —n. Case expressing possession or close association, corresponding to of, from, etc. —adj. Of or in this case. [latin: related to *genital]

    Genius n. (pl. Geniuses) 1 a exceptional intellectual or creative power or other natural ability or tendency. B person with this. 2 tutelary spirit of a person, place, etc. 3 person or spirit powerfully influencing a person for good or evil. 4prevalent feeling or association etc. Of a people or place. [latin]

    Genocide n. Deliberate extermination of a people or nation. genocidal adj. [greek genos race, *-cide]

    Genome n. 1 the haploid set of chromosomes of an organism. 2 the genetic material of an organism.

    -genous comb. Form forming adjectives meaning ‘produced’ (endogenous).

    Genre n. 1 kind or style of art etc. 2 painting of scenes from ordinary life. [french: related to *gender]

    Gent n. Colloq. 1 gentleman. 2 (the gents) colloq. Men’s public lavatory. [shortening of *gentleman]

    Genteel adj. 1 affectedly refined or stylish. 2 upper-class. genteelly adv. [french gentil: related to *gentle]

    Gentian n. Mountain plant usu. With blue flowers. [latin gentiana from gentius, king of illyria]

    Gentile —adj. Not jewish; heathen. —n. Person who is not jewish. [latin gentilis from gens family]

    Gentility n. 1 social superiority. 2 genteel manners or behaviour. [french: related to *gentle]

    Gentle adj. (gentler, gentlest) 1 not rough or severe; mild, kind (a gentle nature). 2 moderate (gentle breeze). 3 (of birth, pursuits, etc.) Honourable, of or fit for gentlefolk. 4 quiet; requiring patience (gentle art). gentleness n. Gently adv. [latin: related to *gentile]

    Gentlefolk n.pl. People of good family.

    Gentleman n. 1 man (in polite or formal use). 2 chivalrous well-bred man. 3 man of good social position (country gentleman). 4 man of gentle birth attached to a royal household (gentleman in waiting). 5 (in pl.) (as a form of address) male audience or part of this.

    Gentlemanly adj. Like or befitting a gentleman.

    Gentleman’s agreement n. (also gentlemen’s agreement) agreement binding in honour but not enforceable.

    Gentlewoman n. Archaic woman of good birth or breeding.

    Gentrification n. Upgrading of a working-class urban area by the arrival of more affluent residents. gentrify v. (-ies, -ied).

    Gentry n.pl. 1 people next below the nobility. 2 derog. People (these gentry). [french: related to *gentle]

    Genuflect v. Bend the knee, esp. In worship. genuflection n. (also genuflexion). [latin genu knee, flecto bend]

    Genuine adj. 1 really coming from its reputed source etc. 2 properly so called; not sham; sincere. genuinely adv. Genuineness n. [latin]

    Genus n. (pl. Genera) 1 taxonomic category of animals or plants with common structural characteristics, usu. Containing several species. 2 (in logic) kind of things including subordinate kinds or species. 3 colloq. Kind, class. [latin genus –

    eris]

    eris]

    Geo-comb. Form earth. [greek ge]

    Geocentric adj. 1 considered as viewed from the earth’s centre. 2 having the earth as the centre. geocentrically adv.

    Geode n. 1 cavity lined with crystals. 2 rock containing this. [greek geodes earthy]

    Geodesic adj. (also geodetic) of geodesy.

    Geodesic line n. Shortest possible line between two points on a curved surface.

    Geodesy n. The study of the shape and area of the earth. [greek geodaisia]

    Geographical adj. (also geographic) of geography. geographically adv.

    Geographical mile n. Distance of one minute of longitude or latitude at the equator (about 1.85 km).

    Geography n. 1 science of the earth’s physical features, resources, climate, population, etc. 2 features or arrangement of an area, rooms, etc. geographer n.

    [latin from greek]

    Geology n. 1 science of the earth’s crust, strata, origin of its rocks, etc. 2 geological features of a district. geological adj. Geologically adv. Geologist n.

    Geometric adj. (also geometrical) 1 of geometry. 2 (of a design etc.) With regular lines and shapes. geometrically adv.

    Geometric progression n. Progression with a constant ratio between successive quantities (as 1, 3, 9, 27).

    Geometry n. Science of the properties and relations of lines, surfaces, and solids. geometrician n. [from *geo-, *-metry]

    Geophysics n.pl. (treated as sing.) Physics of the earth.

    Geordie n. Native of tyneside. [name george]

    George cross n. Decoration for bravery awarded esp. To civilians. [king george vi]

    Georgette n. Thin dress-material similar to crêpe. [georgette de la plante, name of a dressmaker]

    Georgian1 adj. Of the time of kings george i–iv or of george v and vi.

    Georgian2 —adj. Of georgia in eastern europe or the us. —n. 1 native or language of georgia in eastern europe. 2 native of georgia in the us.

    Geranium n. (pl. -s) 1 (in general use) cultivated pelargonium. 2 herb or shrub bearing fruit shaped like a crane’s bill. [greek geranos crane]

    Gerbil n. (also jerbil) mouselike desert rodent with long hind legs. [french:

    related to *jerboa]

    Geriatric —adj. 1 of old people. 2 colloq. Old, outdated. —n. Old person. [greek geras old age, iatros doctor]

    Geriatrics n.pl. (usu. Treated as sing.) Branch of medicine or social science dealing with the health and care of old people. geriatrician n.

    Germ n. 1 micro-organism, esp. One causing disease. 2 portion of an organism capable of developing into a new one; rudiment of an animal or plant in seed (wheat germ). 3 thing that may develop; elementary principle. germy adj. (-ier, – iest). [latin germen sprout]

    German —n. 1 a native or national of germany. B person of german descent. 2 language of germany. —adj. Of germany or its people or language. [latin germanus]

    German adj. (placed after brother, sister, or cousin) having both parents the same, or both grandparents the same on one side (brother german; cousin german). [latin germanus]

    Germander n. Plant of the mint family. [greek, = ground-oak]

    Germane adj. (usu. Foll. By to) relevant (to a subject). [var. Of *german]

    Germanic —adj. 1 having german characteristics. 2 hist. Of the germans. 3 of the scandinavians, anglo-saxons, or germans. —n. 1 the branch of indo-european languages which includes english, german, dutch, and the scandinavian languages. 2 the primitive language of germanic peoples.

    Germanium n. Brittle greyish-white semi-metallic element. [related to *german]

    German measles n.pl. Disease like mild measles; rubella.

    German measles n.pl. Disease like mild measles; rubella.

    Germano-comb. Form german.

    German shepherd n. (also german shepherd dog) = *alsatian.

    German silver n. White alloy of nickel, zinc, and copper.

    Germicide n. Substance that destroys germs. germicidal adj.

    Germinal adj. 1 of germs. 2 in the earliest stage of development. 3 productive of new ideas. germinally adv. [related to *germ]

    Germinate v. (-ting) 1 sprout, bud, or develop. 2 cause to do this. germination n. Germinative adj. [latin: related to *germ]

    Germ warfare n. Use of germs to spread disease in war.

    Gerontology n. The study of old age and the process of ageing. [greek geron geront-old man]

    Gerrymander —v. Manipulate the boundaries of (a constituency etc.) So as to give undue influence to some party or class. —n. This practice. [governor gerry of massachusetts]

    Gerund n. Verbal noun, in english ending in -ing (e.g. Do you mind my asking you?). [latin]

    Gesso n. (pl. -es) gypsum as used in painting or sculpture. [italian: related to *gypsum]

    Gestapo n. Hist. Nazi secret police. [german, from geheime staatspolizei]

    Gestapo n. Hist. Nazi secret police. [german, from geheime staatspolizei]

    Gestation n. 1 a process of carrying or being carried in the uterus between conception and birth. B this period. 2 development of a plan, idea, etc. gestate v. (-ting). [latin gesto carry]

    Gesticulate v. (-ting) 1 use gestures instead of, or to reinforce, speech. 2 express thus. gesticulation n. [latin: related to *gesture]

    Gesture —n. 1 significant movement of a limb or the body. 2 use of such movements, esp. As a rhetorical device. 3 action to evoke a response or convey intention, usu. Friendly. —v. (-ring) gesticulate. [latin gestura from gero wield]

    Get v. (getting; past got; past part. Got or us gotten) (and in comb.) 1 come into possession of; receive or earn (get a job; got £200 a week; got first prize). 2 fetch or procure (get my book for me; got a new car). 3 go to reach or catch (a bus, train, etc.). 4 prepare (a meal etc.). 5 (cause to) reach some state or become (get rich; get married; get to be famous; got them ready; got him into trouble). 6 obtain as a result of calculation. 7 contract (a disease etc.). 8 establish contact by telephone etc. With; receive (a broadcast signal). 9 experience or suffer; have inflicted on one; receive as one’s lot or penalty (got four years in prison). 10 a succeed in bringing, placing, etc. (get it round the corner; get it on to the agenda). B (cause to) succeed in coming or going (will get you there somehow; got absolutely nowhere; got home). 11 (prec. By have) a possess (have not got a penny). B (foll. By to + infin.) Be bound or obliged (have got to see you). 12 (foll. By to + infin.) Induce; prevail upon (got them to help me). 13 colloq. Understand (a person or an argument) (have you got that?; i get your point; do you get me?). 14 colloq. Harm, injure, kill, esp. In retaliation (i’ll get you for that). 15 colloq. A annoy. B affect emotionally. C attract. 16 (foll. By to + infin.) Develop an inclination (am getting to like it). 17 (foll. By verbal noun) begin (get going). 18 establish (an idea etc.) In one’s mind. 19 archaic beget. get about 1 travel extensively or fast; go from place to place. 2 begin walking etc. (esp.

    After illness). Get across 1 communicate (an idea etc.). 2 (of an idea etc.) Be communicated. Get ahead make progress (esp. In a career etc.). Get along (or on) (foll. By together, with) live harmoniously. Get around = get about. Get at 1 reach; get hold of. 2 colloq. Imply. 3 colloq. Nag, criticize. Get away 1 escape, start. 2 (as int.) Colloq. Expressing disbelief or scepticism. 3 (foll. By with) escape blame or punishment for. Get back at colloq. Retaliate against. Get by colloq. Manage, even if with difficulty. Get cracking see *crack. Get down 1 alight, descend (from a vehicle, ladder, etc.). 2 record in writing.

    Get-at-able adj. Colloq. Accessible.

    Getaway n. Escape, esp. After a crime.

    Get-out n. Means of avoiding something.

    Get-together n. Colloq. Social gathering.

    Get-up n. Colloq. Style or arrangement of dress etc.

    Get-up-and-go n. Colloq. Energy, enthusiasm.

    Geyser n. 1 intermittent hot spring. 2 apparatus for heating water. [icelandic geysir from geysa to gush]

    Ghastly adj. (-ier, -iest) 1 horrible, frightful. 2 colloq. Unpleasant. 3 deathlike, pallid. ghastliness n. [obsolete gast terrify]

    Ghee n. Indian clarified butter. [hindi from sanskrit]

    Gherkin n. Small pickled cucumber. [dutch]

    Ghetto n. (pl. -s) 1 part of a city occupied by a minority group. 2 hist. Jewish quarter in a city. 3 segregated group or area. [italian]

    Ghetto-blaster n. Slang large portable radio, esp. For playing loud pop music.

    Ghillie var. Of *gillie.

    Ghost —n. 1 supposed apparition of a dead person or animal; disembodied spirit. 2 shadow or semblance (not a ghost of a chance). 3 secondary image in a defective telescope or television picture. —v. (often foll. By for) act as ghost-writer of (a work). ghostliness n. Ghostly adj. (-ier, -iest). [old english]

    Ghosting n. Appearance of a ‘ghost’ image in a television picture.

    Ghost town n. Town with few or no remaining inhabitants.

    Ghost train n. (at a funfair) open-topped miniature railway in which the rider experiences ghoulish sights, sounds, etc.

    Ghost-writer n. Person who writes on behalf of the credited author.

    Ghoul n. 1 person morbidly interested in death etc. 2 evil spirit or phantom. 3 spirit in muslim folklore preying on corpses. ghoulish adj. Ghoulishly adv. [arabic]

    Ghq abbr. General headquarters.

    Ghyll var. Of *gill3.

    Gi n. (often attrib.) Soldier in the us army. [abbreviation of government (or general) issue]

    Giant —n. 1 (fem. Giantess) imaginary or mythical being of human form but superhuman size. 2 person or thing of great size, ability, courage, etc. —attrib. Adj. 1 gigantic. 2 of a very large kind. [greek gigas gigant-]

    Gibber v. Jabber inarticulately. [imitative]

    Gibberish n. Unintelligible or meaningless speech; nonsense.

    Gibbet —n. Hist. 1 a gallows. B post with an arm on which an executed criminal was hung. 2 (prec. By the) death by hanging. —v. (-t-) 1 put to death by hanging. 2 expose or hang up on a gibbet. [french gibet]

    hanging. 2 expose or hang up on a gibbet. [french gibet]

    Gibbon n. Long-armed se asian anthropoid ape. [french]

    Gibbous adj. 1 convex. 2 (of a moon or planet) having the bright part greater than a semicircle and less than a circle. 3 humpbacked. [latin gibbus hump]

    Gibe (also jibe) —v. (-bing) (often foll. By at) jeer, mock. —n. Jeering remark, taunt. [perhaps from french giber handle roughly]

    Giblets n.pl. Edible organs etc. Of a bird, removed and usu. Cooked separately. [french gibelet game stew]

    Giddy adj. (-ier, -iest) 1 dizzy, tending to fall or stagger. 2 a mentally intoxicated (giddy with success). B excitable, frivolous, flighty. 3 making dizzy (giddy heights). giddily adv. Giddiness n. [old english]

    Gift n. 1 thing given; present. 2 natural ability or talent. 3 the power to give (in his gift). 4 giving. 5 colloq. Easy task. [old norse: related to *give]

    Gifted adj. Talented; intelligent.

    Gift of the gab n. Colloq. Eloquence, loquacity.

    Gift token n. (also gift voucher) voucher used as a gift and exchangeable for goods.

    Gift-wrap v. Wrap attractively as a gift.

    Gig1 n. 1 light two-wheeled one-horse carriage. 2 light ship’s boat for rowing or sailing. 3 rowing-boat esp. For racing. [probably imitative]

    Gig2 colloq. —n. Engagement to play music etc., usu. For one night. —v. (-gg-) perform a gig. [origin unknown]

    Giga-comb. Form one thousand million (109). [greek: related to *giant]

    Gigantic adj. Huge, giant-like. gigantically adv. [latin: related to *giant]

    Giggle —v. (-ling) laugh in half-suppressed spasms. —n. 1 such a laugh. 2 colloq. Amusing person or thing; joke (did it for a giggle). giggly adj. (-ier, – iest). [imitative]

    Gigolo n. (pl. -s) young man paid by an older woman to be her escort or lover. [french]

    Gild1 v. (past part. Gilded or as adj. In sense 1 gilt) 1 cover thinly with gold. 2 tinge with a golden colour. 3 give a false brilliance to. gild the lily try to improve what is already satisfactory. [old english: related to *gold]

    Gild2 var. Of *guild.

    Gill1 n. (usu. In pl.) 1 respiratory organ in a fish etc. 2 vertical radial plate on the underside of a mushroom etc. 3 flesh below a person’s jaws and ears. [old norse]

    Gill2 n. Unit of liquid measure equal to 1/4 pint. [french]

    Gill3 n. (also ghyll) 1 deep usu. Wooded ravine. 2 narrow mountain torrent. [old norse]

    Gillie n. (also ghillie) scot. Man or boy attending a person hunting or fishing. [gaelic]

    Gillyflower n. Clove-scented flower, e.g. A wallflower or the clove-scented pink. [french gilofre]

    Gilt1 —adj. 1 thinly covered with gold. 2 gold-coloured. —n. 1 gilding. 2 gilt-edged security. [from *gild1]

    Gilt2 n. Young sow. [old norse]

    Gilt-edged adj. (of securities, stocks, etc.) Having a high degree of reliability.

    Gimbals n.pl. Contrivance of rings and pivots for keeping instruments horizontal in ships, aircraft, etc. [var. Of gimmal from french gemel double finger-ring]

    Gimcrack —adj. Showy but flimsy and worthless. —n. Showy ornament; knick-knack. [origin unknown]

    Gimlet n. Small tool with a screw-tip for boring holes. [french]

    Gimlet eye n. Eye with a piercing glance.

    Gimmick n. Trick or device, esp. To attract attention or publicity. gimmickry n. Gimmicky adj. [origin unknown]

    Gimp n. (also gymp) 1 twist of silk etc. With cord or wire running through it. 2 fishing-line of silk etc. Bound with wire. [dutch]

    Gin1 n. Spirit made from grain or malt and flavoured with juniper berries. [dutch geneva: related to *juniper]

    Gin2 —n. 1 snare, trap. 2 machine separating cotton from its seeds. 3 a kind of crane and windlass. —v. (-nn-) 1 treat (cotton) in a gin. 2 trap. [french: related to *engine]

    Ginger —n. 1 a hot spicy root usu. Powdered for use in cooking, or preserved in syrup, or candied. B plant having this root. 2 light reddish-yellow. 3 spirit,

    mettle. —adj. Of a ginger colour. —v. 1 flavour with ginger. 2 (foll. By up) enliven. gingery adj. [old english and french, ultimately from sanskrit]

    Ginger ale n. Ginger-flavoured non-alcoholic drink.

    Ginger beer n. Mildly alcoholic or non-alcoholic cloudy drink made from fermented ginger and syrup.

    Gingerbread —n. Ginger-flavoured treacle cake. —attrib. Adj. Gaudy, tawdry.

    Ginger group n. Group urging a party or movement to stronger policy or action.

    Gingerly —adv. In a careful or cautious manner. —adj. Showing great care or caution. [perhaps from french gensor delicate]

    Ginger-nut n. Ginger-flavoured biscuit.

    Gingham n. Plain-woven cotton cloth, esp. Striped or checked. [dutch from malay]

    Gingivitis n. Inflammation of the gums. [latin gingiva gum2, -itis]

    Ginkgo n. (pl. -s) tree with fan-shaped leaves and yellow flowers. [chinese, = silver apricot]

    Ginormous adj. Slang enormous. [from giant, enormous]

    Gin rummy n. Form of the card-game rummy.

    Ginseng n. 1 plant found in e. Asia and n. America. 2 root of this used as a medicinal tonic. [chinese]

    Gippy tummy n. Colloq. Diarrhoea affecting visitors to hot countries. [from *egyptian]

    Gipsy var. Of *gypsy.

    Giraffe n. (pl. Same or -s) large four-legged african animal with a long neck and forelegs. [french, ultimately from arabic]

    Gird v. (past and past part. Girded or girt) 1 encircle, attach, or secure, with a belt or band. 2 enclose or encircle. 3 (foll. By round) place (a cord etc.) Round. gird (or gird up) one’s loins prepare for action. [old english]

    Girder n. Iron or steel beam or compound structure for bridge-building etc.

    Girdle1 —n. 1 belt or cord worn round the waist. 2 corset. 3 thing that

    surrounds. 4 bony support for the limbs (pelvic girdle). —v. (-ling) surround with a girdle. [old english]

    Girdle2 n. Scot. & n.engl. Var. Of *griddle.

    Girl n. 1 female child, daughter. 2 colloq. Young woman. 3 colloq. Girlfriend. 4 female servant. girlhood n. Girlish adj. Girly adj. [origin uncertain]

    Girl friday n. Female helper or follower.

    Girlfriend n. 1 person’s regular female companion or lover. 2 female friend.

    Girlie adj. Colloq. (of a magazine etc.) Depicting young women in erotic poses.

    Girl scout n. = *scout n. 4.

    Giro —n. (pl. -s) 1 system of credit transfer between banks, post offices, etc. 2 cheque or payment by giro. —v. (-es, -ed) pay by giro. [german from italian]

    Girt see *gird.

    Girth n. 1 distance round a thing. 2 band round the body of a horse to secure the saddle etc. [old norse: related to *gird]

    Gismo n. (also gizmo) (pl. -s) slang gadget. [origin unknown]

    Gist n. Substance or essence of a matter. [latin jaceo *lie1]

    Git n. Slang silly or contemptible person. [get (noun), = fool]

    Gîte n. Furnished holiday house in the french countryside. [french]

    Give —v. (-ving; past gave; past part. Given) 1 transfer the possession of freely; hand over as a present; donate. 2 a transfer temporarily; provide with (gave him the dog to hold; gave her a new hip). B administer (medicine). C deliver (a message). 3 (usu. Foll. By for) make over in exchange or payment. 4 a confer; grant (a benefit, honour, etc.). B accord; bestow (love, time, etc.). C pledge (gave his word). 5 a perform (an action etc.) (gave a jump; gave a performance; gave an interview). B utter; declare (gave a shriek; gave the batsman out). 6 (in passive; foll. By to) be inclined to or fond of (is given to boasting; is given to strong drink). 7 yield to pressure; collapse. 8 yield as a product or result (gives an average of 7). 9 a consign, put (gave him into custody). B sanction the marriage of (a daughter etc.). 10 devote; dedicate (gave his life to the cause). 11 present; offer; show; hold out (gives no sign of life; gave her his arm; give me an example). 12 impart; be a source of; cause (gave me a cold; gave me trouble; gave much pain). 13 concede (i give you the benefit of the doubt). 14 deliver (a judgement etc.) Authoritatively. 15 provide (a party, meal, etc.) As host. 16 (in past part.) Assume or grant or specify (given the circumstances; in a given situation; given that we earn so little). 17 (absol.) Colloq. Tell what one knows. —n. Capacity to yield or comply; elasticity. give and take 1 exchange of words, ideas, blows, etc. 2 ability to compromise. Give away 1 transfer as a gift. 2 hand over (a bride) to a bridegroom. 3 reveal (a secret etc.). Give the game (or show) away reveal a secret or intention. Give in 1 yield; acknowledge defeat. 2 hand in (a document etc.) To an official etc. Give it to a person colloq. Scold or punish.

    Give me i prefer (give me greece any day). Give off emit (fumes etc.). Give oneself up to 1 abandon oneself to (despair etc.). 2 addict oneself to. Give on to (or into) (of a window, corridor, etc.) Overlook or lead into. Give or take colloq. Accepting as a margin of error in estimating. Give out 1 announce; emit; distribute. 2 be exhausted. 3 run short. Give over 1 colloq. Stop or desist. 2 hand over. 3 devote. Give rise to cause. Give a person to understand inform or assure. Give up 1 resign; surrender. 2 part with.

    Give-away n. Colloq. 1 unintentional revelation. 2 thing given as a gift or at a low price.

    Gizmo var. Of *gismo.

    Gizzard n. 1 second part of a bird’s stomach, for grinding food. 2 muscular stomach of some fish etc. [french]

    Glacé adj. 1 (of fruit, esp. Cherries) preserved in sugar. 2 (of cloth etc.) Smooth; polished. [french]

    Glacé icing n. Icing made with icing sugar and water.

    Glacial adj. 1 of ice. 2 geol. Characterized or produced by ice. [latin glacies ice]

    Glacial period n. Period when an exceptionally large area was covered by ice.

    Glaciated adj. 1 marked or polished by the action of ice. 2 covered by glaciers or ice sheets. glaciation n. [glaciate freeze, from latin: related to *glacial]

    Glacier n. Mass of land ice formed by the accumulation of snow on high ground. [french: related to *glacial]

    Glad adj. (gladder, gladdest) 1 (predic.) Pleased. 2 expressing or causing pleasure (glad cry; glad news). 3 ready and willing (am glad to help). be glad of find useful. gladly adv. Gladness n. [old english]

    Gladden v. Make or become glad.

    Glade n. Open space in a forest. [origin unknown]

    Glad eye n. (prec. By the) colloq. Amorous glance.

    Glad hand n. Colloq. Hearty welcome.

    Gladiator n. Hist. Trained fighter in ancient roman shows. gladiatorial adj. [latin gladius sword]

    Gladiolus n. (pl. -li) plant of the lily family with sword-shaped leaves and flower-spikes. [latin, diminutive of gladius sword]

    Glad rags n.pl. Colloq. Best clothes.

    Gladsome adj. Poet. Cheerful, joyous.

    Gladstone bag n. Bag with two compartments joined by a hinge. [gladstone, name of a statesman]

    Glair n. 1 white of egg. 2 adhesive preparation made from this. [french]

    Glam adj. Colloq. Glamorous. [abbreviation]

    Glamor n. (brit. Glamour) 1 physical, esp. Cosmetic, attractiveness. 2 alluring or exciting beauty or charm. glamorous adj. Glamorously adv. [var. Of *grammar in obsolete sense ‘magic’]

    Glamorize v. (also -ise) (-zing or -sing) make glamorous or attractive.

    Glamour n. (us glamor) 1 physical, esp. Cosmetic, attractiveness. 2 alluring or exciting beauty or charm. glamorous adj. Glamorously adv. [var. Of *grammar in obsolete sense ‘magic’]

    Glance —v. (-cing) 1 (often foll. By down, up, over, etc.) Look briefly, direct one’s eye. 2 strike at an angle and glide off an object (glancing blow; ball glanced off his bat). 3 (usu. Foll. By over) refer briefly or indirectly to a subject or subjects. 4 (of light etc.) Flash or dart. —n. 1 brief look. 2 flash or gleam. 3 glancing stroke in cricket. at a glance immediately upon looking. [origin uncertain]

    Gland n. 1 organ or similar structure secreting substances for use in the body or for ejection. 2 bot. Similar organ in a plant. [latin glandulae pl.]

    Glanders n.pl. Contagious disease of horses. [french glandre: related to *gland]

    Glandular adj. Of a gland or glands.

    Glandular fever n. Infectious disease with swelling of the lymph glands.

    Glare —v. (-ring) 1 look fiercely or fixedly. 2 shine dazzlingly or oppressively. —n. 1 a strong fierce light, esp. Sunshine. B oppressive public attention (glare of publicity). 2 fierce or fixed look. 3 tawdry brilliance. [low german or dutch]

    Glaring adj. 1 obvious, conspicuous (glaring error). 2 shining oppressively.

    glaringly adv.

    Glasnost n. (in the former soviet union) policy of more open government and access to information. [russian, = openness]

    Glass —n. 1 a (often attrib.) Hard, brittle, usu. Transparent substance, made by fusing sand with soda and lime etc. B substance of similar properties. 2 glass objects collectively. 3 a glass drinking vessel. B its contents. 4 mirror. 5 glazed frame for plants. 6 barometer. 7 covering of a watch-face. 8 lens. 9 (in pl.) A spectacles. B binoculars. —v. (usu. As glassed adj.) Fit with glass. glassful n. (pl. -s). [old english]

    Glass-blowing n. Blowing semi-molten glass to make glassware.

    Glass fibre n. Filaments of glass made into fabric or embedded in plastic as reinforcement.

    Glasshouse n. 1 greenhouse. 2 slang military prison.

    Glass-paper n. Paper coated with glass particles, for smoothing and polishing.

    Glassware n. Articles made of glass.

    Glass wool n. Mass of fine glass fibres for packing and insulation.

    Glassy adj. (-ier, -iest) 1 like glass. 2 (of the eye, expression, etc.) Abstracted; dull; fixed.

    Glaswegian —adj. Of glasgow. —n. Native of glasgow. [after norwegian]

    Glaucoma n. Eye-condition with increased pressure in the eyeball and gradual loss of sight. glaucomatous adj. [greek glaukos greyish blue]

    Glaze —v. (-zing) 1 fit (a window etc.) With glass or (a building) with windows. 2 a cover (pottery etc.) With a glaze. B fix (paint) on pottery thus. 3 cover

    (pastry, cloth, etc.) With a glaze. 4 (often foll. By over) (of the eyes) become glassy. 5 give a glassy surface to. —n. 1 vitreous substance for glazing pottery. 2 smooth shiny coating on food etc. 3 thin coat of transparent paint to modify underlying tone. 4 surface formed by glazing. [from *glass]

    Glazier n. Person whose trade is glazing windows etc.

    Gleam —n. Faint or brief light or show. —v. Emit gleams, shine. [old english]

    Glean v. 1 acquire (facts etc.) In small amounts. 2 gather (corn left by reapers). [french]

    Gleanings n.pl. Things gleaned, esp. Facts.

    Glebe n. Piece of land as part of a clergyman’s benefice and providing income. [latin gl(a)eba clod, soil]

    Glee n. 1 mirth; delight. 2 part-song for three or more (esp. Male) voices. [old english]

    Gleeful adj. Joyful. gleefully adv. Gleefulness n.

    Glen n. Narrow valley. [gaelic]

    Glengarry n. (pl. -ies) brimless scottish hat cleft down the centre and with ribbons at the back. [glengarry in scotland]

    Glib adj. (glibber, glibbest) speaking or spoken quickly or fluently but without sincerity. glibly adv. Glibness n. [obsolete glibbery slippery, perhaps imitative]

    Glide —v. (-ding) 1 move smoothly and continuously. 2 (of an aircraft or pilot) fly without engine-power. 3 pass gradually or imperceptibly. 4 go stealthily. 5 cause to glide. —n. Gliding movement. [old english]

    Glide path n. Aircraft’s line of descent to land.

    Glider n. Light aircraft without an engine.

    Glimmer —v. Shine faintly or intermittently. —n. 1 feeble or wavering light. 2 (also glimmering) (usu. Foll. By of) small sign (of hope etc.). [probably scandinavian]

    Glimpse —n. (often foll. By of, at) 1 brief view or look. 2 faint transient appearance (glimpses of the truth). —v. (-sing) have a brief view of (glimpsed his face in the crowd). [related to *glimmer]

    Glint —v. Flash, glitter. —n. Flash, sparkle. [probably scandinavian]

    Glissade —n. 1 controlled slide down a snow slope in mountaineering. 2 gliding

    step in ballet. —v. (-ding) perform a glissade. [french]

    Glissando n. (pl. -di or -s) mus. Continuous slide of adjacent notes. [french glissant sliding: related to *glissade]

    Glisten —v. Shine like a wet or polished surface. —n. Glitter; sparkle. [old english]

    Glitch n. Colloq. Sudden irregularity or malfunction (of equipment etc.). [origin unknown]

    Glitter —v. 1 shine with a bright reflected light; sparkle. 2 (usu. Foll. By with) be showy or splendid. —n. 1 sparkle. 2 showiness. 3 tiny pieces of sparkling material as decoration etc. glittery adj. [old norse]

    Glitterati n.pl. Slang rich fashionable people. [from glitter, literati]

    Glitz n. Slang showy glamour. glitzy adj. (-ier, -iest). [from glitter, ritzy]

    Gloaming n. Scot. Or poet. Twilight. [old english]

    Gloat —v. (often foll. By over etc.) Look or consider with greed, malice, etc. — n. Act of gloating. [origin unknown]

    Glob n. Colloq. Mass or lump of semi-liquid substance, e.g. Mud. [perhaps from

    blob, gob2]

    Global adj. 1 worldwide (global conflict). 2 all-embracing. globally adv. [french:

    related to *globe]

    Global warming n. Increase in the temperature of the earth’s atmosphere caused by the greenhouse effect.

    Globe n. 1 a (prec. By the) the earth. B spherical representation of it with a map on the surface. 2 spherical object, e.g. A fish-bowl, lamp, etc. [latin globus]

    Globe artichoke n. The partly edible head of the artichoke plant.

    Globe-trotter n. Colloq. Person who travels widely. globe-trotting n. & attrib.

    Adj.

    Globular adj. 1 globe-shaped. 2 composed of globules.

    Globule n. Small globe or round particle or drop. [latin globulus]

    Globulin n. Molecule-transporting protein in plant and animal tissues.

    Glockenspiel n. Musical instrument with bells or metal bars or tubes struck by hammers. [german, = bell-play]

    hammers. [german, = bell-play]

    Gloom n. 1 darkness; obscurity. 2 melancholy; despondency. [origin unknown]

    Gloomy adj. (-ier, -iest) 1 dark; unlit. 2 depressed or depressing. gloomily adv.

    Gloominess n.

    Glorify v. (-ies, -ied) 1 make glorious. 2 make seem better or more splendid than it is. 3 (as glorified adj.) Invested with more attractiveness, importance, etc. Than it has in reality (glorified waitress). 4 extol. glorification n. [latin: related to *glory]

    Glorious adj. 1 possessing or conferring glory; illustrious. 2 colloq. Often iron.

    Splendid, excellent (glorious day; glorious muddle). gloriously adv.

    Glory —n. (pl. -ies) 1 renown, fame; honour. 2 adoring praise. 3 resplendent majesty, beauty, etc. 4 thing that brings renown, distinction, or pride. 5 heavenly bliss and splendour. 6 colloq. State of exaltation, prosperity, etc. 7 halo of a saint etc. —v. (-ies, -ied) (often foll. By in) pride oneself. [latin gloria]

    Glory-hole n. Colloq. Untidy room, cupboard, etc.

    Gloss1 —n. 1 surface shine or lustre. 2 deceptively attractive appearance. 3 (in full gloss paint) paint giving a glossy finish. —v. Make glossy. gloss over seek to conceal, esp. By mentioning only briefly. [origin unknown]

    Gloss2 —n. 1 explanatory comment added to a text, e.g. In the margin. 2 interpretation or paraphrase. —v. Add a gloss to (a text, word, etc.). [latin glossa tongue]

    Glossary n. (pl. -ies) 1 list or dictionary of technical or special words. 2 collection of glosses. [latin: related to *gloss2]

    Glossy —adj. (-ier, -iest) 1 smooth and shiny (glossy paper). 2 printed on such paper. —n. (pl. -ies) colloq. Glossy magazine or photograph. glossily adv. Glossiness n.

    Glottal adj. Of the glottis.

    Glottal stop n. Sound produced by the sudden opening or shutting of the glottis.

    Glottis n. Opening at the upper end of the windpipe and between the vocal cords. [greek]

    Gloucester n. (usu. Double gloucester, orig. A richer kind) cheese made in gloucestershire. [gloucester in england]

    Glove —n. 1 hand-covering for protection, warmth, etc., usu. With separate fingers. 2 boxing glove. —v. (-ving) cover or provide with gloves. [old english]

    Glove compartment n. Recess for small articles in the dashboard of a car etc.

    Glove puppet n. Small puppet fitted on the hand and worked by the fingers.

    Glover n. Glove-maker.

    Glow —v. 1 a emit light and heat without flame. B shine as if heated in this way. 2 (often foll. By with) a (of the body) be heated. B show or feel strong emotion (glowed with pride). 3 show a warm colour. 4 (as glowing adj.) Expressing pride or satisfaction (glowing report). —n. 1 glowing state. 2 bright warm colour. 3 feeling of satisfaction or well-being. [old english]

    Glower —v. 1 (often foll. By at) look angrily. 2 look dark or threatening. —n. Glowering look. [origin uncertain]

    Glow-worm n. Beetle whose wingless female emits light from the end of the abdomen.

    Gloxinia n. American tropical plant with large bell-shaped flowers. [gloxin, name of a botanist]

    Glucose n. Sugar found in the blood or in fruit juice etc., and as a constituent of starch, cellulose, etc. [greek gleukos sweet wine]

    Glue —n. Adhesive substance. —v. (glues, glued, gluing or glueing) 1 fasten or join with glue. 2 keep or put very close (eye glued to the keyhole). gluey adj. (gluier, gluiest). [latin glus: related to *gluten]

    Glue ear n. Blocking of the eustachian tube, esp. In children.

    Glue-sniffing n. Inhalation of fumes from adhesives as an intoxicant. glue-sniffer n.

    Glum adj. (glummer, glummest) dejected; sullen. glumly adv. Glumness n. [var. Of *gloom]

    Glut —v. (-tt-) 1 feed (a person, one’s stomach, etc.) Or indulge (a desire etc.) To the full; satiate. 2 fill to excess. 3 overstock (a market). —n. 1 supply exceeding demand. 2 full indulgence; surfeit. [french gloutir swallow: related to *glutton]

    Glutamate n. Salt or ester of glutamic acid, esp. A sodium salt used to enhance the flavour of food.

    Glutamic acid n. Amino acid normally found in proteins. [from gluten, amine]

    Gluten n. Mixture of proteins present in cereal grains; sticky protein substance left when starch is washed out of flour. [latin gluten -tin-glue]

    Glutinous adj. Sticky; like glue. [latin: related to *gluten]

    Glutton n. 1 greedy eater. 2 (often foll. By for) colloq. Person insatiably eager (glutton for work). 3 voracious animal of the weasel family. gluttonous adj.

    Gluttonously adv. [latin gluttio *swallow1]

    Glutton for punishment n. Person eager to take on hard or unpleasant tasks.

    Gluttony n. Greed or excess in eating. [french: related to *glutton]

    Glycerin n. (also glycerol, brit. Glycerine) thick sweet colourless liquid used as medicine, ointment, etc., and in explosives. [greek glukeros sweet]

    Glycerine n. (also glycerol, us glycerin) thick sweet colourless liquid used as medicine, ointment, etc., and in explosives. [greek glukeros sweet]

    Glycerol n. = *glycerine.

    Glycogen n. Polysaccharide serving as a store of carbohydrates, esp. In animal tissues.

    Glycolysis n. Breakdown of glucose by enzymes with the release of energy.

    Gm abbr. George medal.

    Gm abbr. Gram(s).

    G-man n. Us colloq. Federal criminal-investigation officer. [from government]

    Gms abbr. Grant maintained status.

    Gmt abbr. Greenwich mean time.

    Gnarled adj. (of a tree, hands, etc.) Knobbly, twisted, rugged. [var. Of knarled:

    related to *knurl]

    Gnash v. 1 grind (the teeth). 2 (of the teeth) strike together. [old norse]

    Gnat n. Small two-winged biting fly. [old english]

    Gnaw v. 1 a (usu. Foll. By away etc.) Wear away by biting. B (often foll. By at, into) bite persistently. 2 a corrode; wear away. B (of pain, fear, etc.) Torment. [old english]

    Gneiss n. Coarse-grained metamorphic rock of feldspar, quartz, and mica. [german]

    Gnome n. 1 a dwarfish legendary spirit or goblin living underground. B figure of this as a garden ornament. 2 (esp. In pl.) Colloq. Person with sinister influence, esp. Financial (gnomes of zurich). gnomish adj. [french]

    Gnomic adj. Of aphorisms; sententious. [greek gnome opinion]

    Gnomon n. Rod or pin etc. On a sundial, showing the time by its shadow. [greek, = indicator]

    Gnostic —adj. 1 of knowledge; having special mystical knowledge. 2 (gnostic) concerning the gnostics. —n. (gnostic) (usu. In pl.) Early christian heretic claiming mystical knowledge. gnosticism n. [greek gnosis knowledge]

    Gnp abbr. Gross national product.

    Gnu n. (pl. Same or -s) oxlike antelope. [bushman nqu]

    Go1 —v. (3rd sing. Present goes; past went; past part. Gone) 1 a start moving or be moving from one place or point in time to another; travel, proceed. B (foll. By and + verb) colloq. Expressing annoyance (you went and told him). 2 (foll. By verbal noun) make a special trip for; participate in (went skiing; goes running). 3 lie or extend in a certain direction (the road goes to london). 4 leave; depart (they had to go). 5 move, act, work, etc. (clock doesn’t go). 6 a make a specified movement (go like this with your foot). B make a sound (often of a specified kind) (gun went bang; door bell went). C (of an animal) make (its characteristic cry) (the cow went ‘moo’). D colloq. Say (so he goes to me ‘why didn’t you like it?’). 7 be in a specified state (go hungry; went in fear of his life). 8 a pass into a specified condition (gone bad; went to sleep). B colloq. Die. C proceed or escape in a specified condition (poet went unrecognized). 9 (of time or distance) pass, elapse; be traversed (ten days to go before easter; the last mile went quickly). 10 a (of a document, verse, song, etc.) Have a specified content or wording (the tune goes like this). B be current or accepted (so the story goes). C be suitable; fit; match (the shoes don’t go with the hat; those pinks don’t go). D be regularly kept or put (the forks go here). E find room; fit (this won’t go into the cupboard).

    11 a turn out, proceed; take a course or view (things went well; liverpool went labour). B be successful (make the party go). 12 a be sold (went for £1; went cheap). B (of money) be spent. 13 a be relinquished or abolished (the car will have to go). B fail, decline; give way, collapse (his sight is going; the bulb has gone). 14 be acceptable or permitted; be accepted without question (anything goes; what i say goes). 15 (often foll. By by, with, on, upon) be guided by; judge or act on or in harmony with (have nothing to go on; a good rule to go by). 16 attend regularly (goes to school). 17 (foll. By pres. Part.) Colloq. Proceed (often foolishly) to do (went running to the police; don’t go making him angry). 18 act or proceed to a certain point (will go so far and no further; went as high as £100). 19 (of a number) be capable of being contained in another (6 into 5 won’t go). 20 (usu. Foll. By to) be allotted or awarded; pass (first prize went to the girl). 21 (foll. By to, towards) amount to; contribute to (12 inches go to make a foot; this will go towards your holiday). 22 (in imper.) Begin motion (a starter’s order in a race) (ready, steady, go!). 23 (usu. Foll. By by, under) be known or called (goes by the name of droopy). 24 colloq. Proceed to (go jump in the lake). 25 (foll. By for) apply to (that goes for me too). —n. (pl. Goes) 1 mettle; animation (has a lot of go in her). 2 vigorous activity (it’s all go). 3 colloq. Success (made a go of it). 4 colloq. Turn; attempt (i’ll have a go; it’s my go). — adj. Colloq. Functioning properly (all systems are go). go about 1 set to work at. 2 be socially active. 3 (foll. By pres. Part.) Make a habit of doing. Go ahead proceed without hesitation. Go along with agree to or with. Go back on fail to keep (a promise etc.). Go begging see *beg. Go down 1 a (of an amount) become less through use (coffee has gone down). B subside (the flood went down). C decrease in price. 2 a (of a ship) sink. B (of the sun) set. C (of a curtain) fall. 3 deteriorate; (of a computer system etc.) Cease to function. 4 be recorded in writing. 5 be swallowed. 6 (often foll. By with) find acceptance. 7 colloq. Leave university.

    Goad —v. 1 urge on with a goad. 2 (usu. Foll. By on, into) irritate; stimulate. — n. 1 spiked stick used for urging cattle forward. 2 anything that torments or incites. [old english]

    Go-ahead —n. Permission to proceed. —adj. Enterprising.

    Goal n. 1 object of ambition or effort; destination. 2 a structure into or through

    which the ball has to be sent to score in certain games. B point won. 3 point marking the finish of a race. [origin unknown]

    Goalie n. Colloq. = *goalkeeper.

    Goalkeeper n. Player defending a goal.

    Goalpost n. Either of the two upright posts of a goal.

    Goat n. 1 hardy domesticated mammal, with horns and (in the male) a beard. 2 lecherous man. 3 colloq. Foolish person. 4 (the goat) zodiacal sign or constellation capricorn. get a person’s goat colloq. Irritate a person. [old english]

    Goatee n. Small pointed beard.

    Goatherd n. Person who tends goats.

    Goatskin n. 1 skin of a goat. 2 garment or bottle made of goatskin.

    Gob1 n. Slang mouth. [origin unknown]

    Gob2 slang —n. Clot of slimy matter. —v. (-bb-) spit. [french go(u)be mouthful]

    Gobbet n. 1 piece or lump of flesh, food, etc. 2 extract from a text, esp. One set for translation or comment. [french diminutive of gobe *gob2]

    Gobble1 v. (-ling) eat hurriedly and noisily. [from *gob2]

    Gobble2 v. (-ling) 1 (of a turkeycock) make a characteristic guttural sound. 2 make such a sound when speaking. [imitative]

    Gobbledegook n. (also gobbledygook) colloq. Pompous or unintelligible jargon. [probably imitative of a turkeycock]

    Go-between n. Intermediary.

    Goblet n. Drinking-vessel with a foot and stem. [french diminutive of gobel cup]

    Goblin n. Mischievous ugly dwarflike creature of folklore. [anglo-french]

    Gobsmacked adj. Slang flabbergasted.

    Gob-stopper n. Large hard sweet.

    Goby n. (pl. -ies) small fish with ventral fins joined to form a disc or sucker.

    Goby n. (pl. -ies) small fish with ventral fins joined to form a disc or sucker. [greek kobios *gudgeon1]

    Go-cart n. Var. Of *go-kart.

    God n. 1 a (in many religions) superhuman being or spirit worshipped as having power over nature, human fortunes, etc. B image, idol, etc., symbolizing a god. 2 (god) (in christian and other monotheistic religions) creator and ruler of the universe. 3 adored or greatly admired person. 4 (in pl.) Theatr. Gallery. god forbid may it not happen! God knows 1 it is beyond all knowledge. 2 i call god to witness that. God willing if providence allows. [old english]

    Godchild n. Person in relation to his or her godparent.

    God-daughter n. Female godchild.

    Goddess n. 1 female deity. 2 adored woman.

    Godfather n. 1 male godparent. 2 esp. Us person directing an illegal organization, esp. The mafia.

    God-fearing adj. Earnestly religious.

    God-forsaken adj. Dismal.
    Godhead n. (also godhead) 1 a state of being god or a god. B divine nature. 2 deity. 3 (the godhead) god.

    Godless adj. 1 impious; wicked. 2 without a god. 3 not recognizing god.

    godlessness n.

    Godlike adj. Resembling god or a god.

    Godly adj. (-ier, -iest) pious, devout. godliness n.

    Godmother n. Female godparent.

    Godparent n. Person who presents a child at baptism and responds on the child’s behalf.

    Godsend n. Unexpected but welcome event or acquisition.

    Godson n. Male godchild.

    Godspeed int. Expression of good wishes to a person starting a journey.

    Goer n. 1 person or thing that goes (slow goer). 2 (often in comb.) Person who

    Goer n. 1 person or thing that goes (slow goer). 2 (often in comb.) Person who attends, esp. Regularly (churchgoer). 3 colloq. A lively or persevering person. B sexually promiscuous person.

    Go-getter n. Colloq. Aggressively enterprising person.

    Goggle —v. (-ling) 1 a (often foll. By at) look with wide-open eyes. B (of the eyes) be rolled about; protrude. 2 roll (the eyes). —adj. (usu. Attrib.) (of the eyes) protuberant or rolling. —n. (in pl.) Spectacles for protecting the eyes. [probably imitative]

    Goggle-box n. Colloq. Television set.

    Go-go adj. Colloq. (of a dancer, music, etc.) In modern style; lively, erotic, and rhythmic.

    Going —n. 1 act or process of going. 2 a condition of the ground for walking, riding, etc. B progress affected by this. —adj. 1 in or into action (set the clock going). 2 existing, available (there’s cold beef going). 3 current, prevalent (the going rate). get going start steadily talking, working, etc. Going on fifteen etc. Esp. Us approaching one’s fifteenth etc. Birthday. Going on for approaching (a time, age, etc.). Going strong continuing vigorously. Going to intending to; about to. To be going on with to start with; for the time being. While the going is good while conditions are favourable.

    Going concern n. Thriving business.

    Going-over n. (pl. Goings-over) 1 colloq. Inspection or overhaul. 2 slang thrashing.

    Goings-on n.pl. (esp. Morally suspect) behaviour.

    Goiter n. (brit. Goitre) morbid enlargement of the thyroid gland. [latin guttur throat]

    Goitre n. (us goiter) morbid enlargement of the thyroid gland. [latin guttur throat]

    Go-kart n. (also go-cart) miniature racing car with a skeleton body.

    Gold —n. 1 precious yellow metallic element. 2 colour of gold. 3 a coins or articles made of gold. B wealth. 4 something precious or beautiful. 5 = *gold medal. —adj. 1 made wholly or chiefly of gold. 2 coloured like gold. [old english]

    Goldcrest n. Tiny bird with a golden crest.

    Gold-digger n. Slang woman who cultivates men to obtain money from them.

    Gold-dust n. Gold in fine particles as often found naturally.

    Golden adj. 1 a made or consisting of gold. B yielding gold. 2 coloured or shining like gold (golden hair). 3 precious; excellent.

    Golden age n. Period of a nation’s greatest prosperity, cultural merit, etc.

    Golden eagle n. Large eagle with yellow-tipped head-feathers.

    Golden handshake n. Colloq. Payment given on redundancy or early retirement.

    Golden jubilee n. Fiftieth anniversary.

    Golden mean n. The principle of moderation.

    Golden retriever n. Retriever with a thick golden-coloured coat.

    Golden rod n. Plant with a spike of yellow flowers.

    Golden rule n. Basic principle of action, esp. ‘do as you would be done by’.

    Golden wedding n. Fiftieth anniversary of a wedding.

    Gold-field n. District in which gold occurs naturally.

    Goldfinch n. Songbird with a yellow band across each wing.

    Goldfish n. (pl. Same or -es) small reddish-golden chinese carp.

    Gold foil n. Gold beaten into a thin sheet.

    Gold leaf n. Gold beaten into a very thin sheet.

    Gold medal n. Medal of gold, usu. Awarded as first prize.

    Gold-mine n. 1 place where gold is mined. 2 colloq. Source of great wealth.

    Gold plate n. 1 vessels made of gold. 2 material plated with gold.

    Gold-plate v. Plate with gold.

    Gold-rush n. Rush to a newly-discovered gold-field.

    Goldsmith n. Worker in gold.

    Gold standard n. System by which the value of a currency is defined in terms of gold.

    Golf —n. Game in which a small hard ball is driven with clubs into a series of 18 or 9 holes with the fewest possible strokes. —v. Play golf. golfer n. [origin unknown]

    Golf ball n. 1 ball used in golf. 2 colloq. Small ball used in some electric typewriters to carry the type.

    Golf club n. 1 club used in golf. 2 association for playing golf. 3 premises of this.

    Golf-course n. (also golf-links) course on which golf is played.

    Golliwog n. Black-faced soft doll with fuzzy hair. [origin uncertain]

    Golly1 int. Expressing surprise. [euphemism for *god]

    Golly2 n. (pl. -ies) colloq. = *golliwog. [abbreviation]

    Golosh var. Of *galosh.

    Gonad n. Animal organ producing gametes, esp. The testis or ovary. [greek gone seed]

    Gondola n. 1 light flat-bottomed boat used on venetian canals. 2 car suspended from an airship or balloon, or attached to a ski-lift. [italian]

    Gondolier n. Oarsman on a gondola. [italian: related to *gondola]

    Gone adj. 1 (of time) past (not until gone nine). 2 a lost; hopeless. B dead. 3 colloq. Pregnant for a specified time (already three months gone). 4 slang completely enthralled or entranced, esp. By rhythmic music, drugs, etc. be gone depart; leave temporarily (cf. begone). Gone on slang infatuated with. [past part. Of go1]

    Goner n. Slang person or thing that is doomed or irrevocably lost.

    Gong n. 1 metal disc with a turned rim, giving a resonant note when struck. 2 saucer-shaped bell. 3 slang medal. [malay]

    Gonorrhea n. (brit. Gonorrhoea) venereal disease with inflammatory discharge from the urethra or vagina. [greek, = semen-flux]

    Gonorrhoea n. (us gonorrhea) venereal disease with inflammatory discharge from the urethra or vagina. [greek, = semen-flux]

    Goo n. Colloq. 1 sticky or slimy substance. 2 sickly sentiment. [origin unknown]

    Good —adj. (better, best) 1 having the right or desired qualities; adequate. 2 a (of a person) efficient, competent (good at french; good driver). B effective, reliable (good brakes). 3 a kind. B morally excellent; virtuous (good deed). C well-behaved (good child). 4 enjoyable, agreeable (good party; good news). 5 thorough, considerable (a good wash). 6 a not less than (waited a good hour). B considerable in number, quality, etc. (a good many people). 7 beneficial (milk is good for you). 8 a valid, sound (good reason). B financially sound (his credit is good). 9 in exclamations of surprise (good heavens!). 10 (sometimes patronizing) commendable, worthy (good old george; my good man). 11 in courteous greetings and farewells (good morning). —n. 1 (only in sing.) That which is good; what is beneficial or morally right (only good can come of it; what good will it do?). 2 (in pl.) A movable property or merchandise. B things to be transported. C (prec. By the) colloq. What one has undertaken to supply (esp. Deliver the goods). —adv. Us colloq. Well (doing pretty good). as good as practically. Be (a certain amount) to the good have as net profit or advantage. For good (and all) finally, permanently. Good for 1 beneficial to; having a good effect on. 2 able to perform. 3 able to be trusted to pay. Good riddance see *riddance. Have the goods on a person slang have information about a person giving one an advantage over him or her. In good faith with honest or sincere intentions. In good time 1 with no risk of being late. 2 (also all in good time) in due course but without haste. To the good having as profit or benefit. [old english]

    Good book n. (prec. By the) the bible.

    Goodby (brit. Goodbye) —int. Expressing good wishes on parting, ending a telephone conversation, etc. —n. (pl. -byes or us -bys) parting; farewell. [from god be with you!]

    Goodbye (us goodby) —int. Expressing good wishes on parting, ending a telephone conversation, etc. —n. (pl. -byes or us -bys) parting; farewell. [from god be with you!]

    Good faith n. Sincerity of intention.

    Good-for-nothing —adj. Worthless. —n. Worthless person.

    Good friday n. Friday before easter sunday, commemorating the crucifixion.

    Good-hearted adj. Kindly, well-meaning.

    Good humour n. Genial mood.

    Good-humoured adj. Cheerful, amiable. good-humouredly adv.

    Goodie var. Of *goody n.

    Good job n. Fortunate state of affairs.

    Good-looking adj. Handsome.

    Goodly adj. (-ier, -iest) 1 handsome. 2 of imposing size etc. goodliness n. [old english]

    Good nature n. Friendly disposition.

    Good-natured adj. Kind, patient; easygoing. good-naturedly adv.

    Goodness —n. 1 virtue; excellence. 2 kindness (had the goodness to wait). 3 what is beneficial in a thing. —int. (esp. As a substitution for ‘god’) expressing surprise, anger, etc. (goodness me!; goodness knows).

    Good-tempered adj. Having a good temper; not easily annoyed.

    Goodwill n. 1 kindly feeling. 2 established reputation of a business etc. As enhancing its value. 3 willingness to undertake unpaid duties.

    Good will n. Intention that good will result (see also *goodwill).

    Good works n.pl. Charitable acts.

    Goody —n. (also goodie) (pl. -ies) 1 colloq. Good or favoured person. 2 (usu. In pl.) Something good or attractive, esp. To eat. —int. Expressing childish delight.

    Goody-goody colloq. —n. (pl. -ies) smug or obtrusively virtuous person. —adj.

    Obtrusively or smugly virtuous.

    Gooey adj. (gooier, gooiest) slang 1 viscous, sticky. 2 sentimental. [from *goo]

    Goof slang —n. 1 foolish or stupid person. 2 mistake. —v. 1 bungle. 2 blunder. [latin gufus coarse]

    Goofy adj. (-ier, -iest) slang 1 stupid. 2 having protruding or crooked front teeth.

    Googly n. (pl. -ies) cricket ball bowled so as to bounce in an unexpected direction. [origin unknown]

    Goon n. Slang 1 stupid person. 2 esp. Us ruffian hired by racketeers etc. [origin uncertain]

    Goose n. (pl. Geese) 1 a large water-bird with webbed feet and a broad bill. B female of this (opp. *gander 1). C flesh of a goose as food. 2 colloq. Simpleton. [old english]

    Gooseberry n. (pl. -ies) 1 yellowish-green berry with juicy flesh. 2 thorny shrub bearing this. play gooseberry colloq. Be an unwanted extra person. [origin uncertain]

    Goose-flesh n. (also goose-pimples; us goose-bumps) bristling state of the skin produced by cold, fright, etc.

    Goose-step n. Military marching step in which the knees are kept stiff.

    Gopher n. American burrowing rodent, ground-squirrel, or burrowing tortoise.

    [origin uncertain]

    Gordian adj. cut the gordian knot solve a problem by force or by evasion. [gordius king of phrygia, who tied a knot later cut by alexander the great]

    Gore1 n. Blood shed and clotted. [old english, = dirt]

    Gore2 v. (-ring) pierce with a horn, tusk, etc. [origin unknown]

    Gore3 —n. 1 wedge-shaped piece in a garment. 2 triangular or tapering piece in an umbrella etc. —v. (-ring) shape (a garment) with a gore. [old english, = triangle of land]

    Gorge —n. 1 narrow opening between hills. 2 act of gorging. 3 contents of the stomach. —v. (-ging) 1 feed greedily. 2 a (often refl.) Satiate. B devour greedily. one’s gorge rises at one is sickened by. [french, = throat]

    Gorgeous adj. 1 richly coloured, sumptuous. 2 colloq. Very pleasant, splendid (gorgeous weather). 3 colloq. Strikingly beautiful. gorgeously adv. [french]

    Gorgon n. 1 (in greek mythology) each of three snake-haired sisters (esp. Medusa) with the power to turn anyone who looked at them to stone. 2 frightening or repulsive woman. [greek gorgos terrible]

    Gorgonzola n. Type of rich cheese with bluish-green veins. [gorgonzola in italy]

    Gorilla n. Largest anthropoid ape, native to africa. [greek, perhaps from african = wild man]

    Gormless adj. Colloq. Foolish, lacking sense. gormlessly adv. [originally gaumless from dial. Gaum understanding]

    Gorse n. Spiny yellow-flowered shrub; furze. gorsy adj. [old english]

    Gorsedd n. Druidic order, meeting before the eisteddfod. [welsh, literally ‘throne’]

    Gory adj. (-ier, -iest) 1 involving bloodshed; bloodthirsty. 2 covered in gore.

    gorily adv. Goriness n.

    Gosh int. Expressing surprise. [euphemism for *god]

    Goshawk n. Large short-winged hawk. [old english: related to goose, hawk1]

    Gosling n. Young goose. [old norse: related to *goose]

    Go-slow n. Working slowly, as a form of industrial action.

    Gospel n. 1 teaching or revelation of christ. 2 (gospel) a record of christ’s life in the first four books of the new testament. B each of these books. C portion from

    the first four books of the new testament. B each of these books. C portion from one of them read at a service. 3 (also gospel truth) thing regarded as absolutely true. 4 (in full gospel music) black american religious singing. [old english: related to *good, *spell1 = news]

    Gossamer —n. 1 filmy substance of small spiders’ webs. 2 delicate filmy material. —adj. Light and flimsy as gossamer. [origin uncertain]

    Gossip —n. 1 a unconstrained talk or writing, esp. About persons or social incidents. B idle talk. 2 person who indulges in gossip. —v. (-p-) talk or write gossip. gossipy adj. [old english, originally ‘godparent’, hence ‘familiar acquaintance’]

    Gossip column n. Section of a newspaper devoted to gossip about well-known people. gossip columnist n.

    Got past and past part. Of *get.

    Goth n. 1 member of a germanic tribe that invaded the roman empire in the 3rd– 5th c. 2 uncivilized or ignorant person. [old english gota and greek gothoi]

    Goth n. 1 style of rock music with an intense or droning blend of guitars, bass, and drums, often with apocalyptic or mystical lyrics. 2 performer or devotee of this music, or member of the subculture favouring black clothing and white-painted faces with black make-up.

    Gothic —adj. 1 of the goths. 2 in the style of architecture prevalent in w. Europe in the 12th–16th c., characterized by pointed arches. 3 (of a novel etc.) In a style

    in the 12th–16th c., characterized by pointed arches. 3 (of a novel etc.) In a style popular in the 18th–19th c., with supernatural or horrifying events. 4 barbarous, uncouth. —n. 1 gothic language. 2 gothic architecture. [latin: related to *goth]

    Gotten us past part. Of *get.

    Gouache n. 1 method of painting in opaque pigments ground in water and thickened with a gluelike substance. 2 these pigments. [french from italian]

    Gouda n. Flat round usu. Dutch cheese. [gouda in holland]

    Gouge —n. Chisel with a concave blade. —v. (-ging) 1 cut with or as with a gouge. 2 (foll. By out) force out (esp. An eye with the thumb) with or as with a gouge. [latin gubia]

    Goulash n. Highly-seasoned hungarian stew of meat and vegetables. [magyar gulyás-hús, = herdsman’s meat]

    Gourd n. 1 a fleshy usu. Large fruit with a hard skin. B climbing or trailing plant of the cucumber family bearing this. 2 dried skin of the gourd-fruit, used as a drinking-vessel etc. [latin cucurbita]

    Gourmand n. 1 glutton. 2 gourmet. [french]

    Usage the use of gourmand in sense 2 is considered incorrect by some people.

    Gourmandise n. Gluttony.

    Gourmet n. Connoisseur of good food. [french]

    Gout n. Disease with inflammation of the smaller joints, esp. Of the toe. gouty adj. [latin gutta drop]

    Govern v. 1 rule or control with authority; conduct the policy and affairs of. 2 influence or determine (a person or course of action). 3 be a standard or principle for. 4 check or control (esp. Passions). 5 gram. (esp. Of a verb or preposition) have (a noun or pronoun or its case) depending on it. [greek kubernao steer]

    Governance n. 1 act or manner of governing. 2 function of governing. [french:

    related to *govern]

    Governess n. Woman employed to teach children in a private household.

    Government n. 1 act or manner of governing. 2 system by which a state is governed. 3 a body of persons governing a state. B (usu. Government) particular ministry in office. 4 the state as an agent. governmental adj.

    Governor n. 1 ruler. 2 a official governing a province, town, etc. B representative of the crown in a colony. 3 executive head of each state of the us. 4 officer commanding a fortress etc. 5 head or member of the governing body of an institution. 6 official in charge of a prison. 7 a slang one’s employer. B slang

    one’s father. 8 mech. Automatic regulator controlling the speed of an engine etc.

    governorship n.

    Governor-general n. Representative of the crown in a commonwealth country that regards the queen as head of state.

    Gown n. 1 loose flowing garment, esp. A woman’s long dress. 2 official robe of an alderman, judge, cleric, academic, etc. 3 surgeon’s overall. [latin gunna fur]

    Goy n. (pl. -im or -s) jewish name for a non-jew. [hebrew, = people]

    Gp abbr. General practitioner.

    Gpo abbr. General post office.

    Gr abbr. (also gr.) 1 gram(s). 2 grains. 3 gross.

    Grab —v. (-bb-) 1 seize suddenly. 2 take greedily or unfairly. 3 slang attract the attention of, impress. 4 (foll. By at) snatch at. 5 (of brakes) act harshly or jerkily. —n. 1 sudden clutch or attempt to seize. 2 mechanical device for clutching. [low german or dutch]

    Grace —n. 1 attractiveness, esp. In elegance of proportion or manner or movement. 2 courteous good will (had the grace to apologize). 3 attractive feature; accomplishment (social graces). 4 a (in christian belief) the unmerited favour of god. B state of receiving this. 5 goodwill, favour. 6 delay granted as a favour (a year’s grace). 7 short thanksgiving before or after a meal. 8 (grace) (in

    greek mythology) each of three beautiful sister goddesses, bestowers of beauty and charm. 9 (grace) (prec. By his, her, your) forms of description or address for a duke, duchess, or archbishop. —v. (-cing) (often foll. By with) add grace to; confer honour on (graced us with his presence). with good (or bad) grace as if willingly (or reluctantly). [latin gratia]

    Graceful adj. Having or showing grace or elegance. gracefully adv. Gracefulness n.

    Graceless adj. Lacking grace, elegance, or charm.

    Grace-note n. Mus. Extra note as an embellishment.

    Gracious —adj. 1 kind; indulgent and beneficent to inferiors. 2 (of god) merciful, benign. —int. Expressing surprise. graciously adv. Graciousness n. [latin: related to *grace]

    Gracious living n. Elegant way of life.

    Gradate v. (-ting) 1 (cause to) pass gradually from one shade to another. 2 arrange in steps or grades of size etc.

    Gradation n. (usu. In pl.) 1 stage of transition or advance. 2 a certain degree in rank, intensity, etc. B arrangement in such degrees. gradational adj. [latin: related to *grade]

    Grade —n. 1 a certain degree in rank, merit, proficiency, etc. B class of persons or things of the same grade. 2 mark indicating the quality of a student’s work. 3 us class in school. 4 gradient, slope. —v. (-ding) 1 arrange in grades. 2 (foll. By up, down, off, into, etc.) Pass gradually between grades, or into a grade. 3 give a grade to (a student). 4 reduce (a road etc.) To easy gradients. [latin gradus step]

    Gradient n. 1 stretch of road, railway, etc., that slopes. 2 amount of such a slope. [probably from *grade after salient]

    Gradual adj. 1 progressing by degrees. 2 not rapid, steep, or abrupt. gradually adv. [latin: related to *grade]

    Gradualism n. Policy of gradual reform.

    Graduate —n. Person holding an academic degree. —v. (-ting) 1 obtain an academic degree. 2 (foll. By to) move up to (a higher grade of activity etc.). 3 mark out in degrees or parts. 4 arrange in gradations; apportion (e.g. Tax) according to a scale. graduation n. [medieval latin graduor take a degree: related to *grade]

    Graeco-roman adj. Of the greeks and romans.

    Graffiti n.pl. (sing. Graffito) writing or drawing scribbled, scratched, or sprayed on a surface. [italian graffio a scratch]

    Usage the singular or collective use of the form graffiti is considered incorrect by some people, but it is frequently found, e.g. Graffiti has appeared.

    Graft1 —n. 1 bot. A shoot or scion inserted into a slit of stock, from which it receives sap. B place where a graft is inserted. 2 surgery piece of living tissue, organ, etc., transplanted surgically. 3 slang hard work. —v. 1 (often foll. By into, on, together, etc.) Insert (a scion) as a graft. 2 transplant (living tissue). 3 (foll. By in, on) insert or fix (a thing) permanently to another. 4 slang work hard. [greek graphion stylus]

    Graft2 colloq. —n. 1 practices, esp. Bribery, used to secure illicit gains in politics or business. 2 such gains. —v. Seek or make such gains. [origin unknown]

    Grail n. (in full holy grail) (in medieval legend) cup or platter used by christ at the last supper. [medieval latin gradalis dish]

    Grain —n. 1 fruit or seed of a cereal. 2 (collect.) Wheat or any allied grass used as food; corn. 3 small hard particle of salt, sand, etc. 4 unit of weight, 0.0648 gram. 5 smallest possible quantity (not a grain of truth in it). 6 roughness of surface. 7 texture of skin, wood, stone, etc. 8 a pattern of lines of fibre in wood or paper. B lamination in stone etc. —v. 1 paint in imitation of the grain of wood etc. 2 give a granular surface to. 3 form into grains. against the grain contrary toone’s natural inclination or feeling. grainy adj. (-ier, -iest). [latin granum]

    Gram n. (also gramme) metric unit of mass equal to one-thousandth of a kilogram. [greek gramma small weight]

    -gram comb. Form forming nouns denoting a thing written or recorded (often in a certain way) (anagram; epigram; telegram). [greek gramma thing written]

    Graminaceous adj. Of or like grass. [latin gramen grass]

    Graminivorous adj. Feeding on grass, cereals, etc.

    Grammar n. 1 the study or rules of a language’s inflections or other means of showing the relation between words. 2 observance or application of the rules of grammar (bad grammar). 3 book on grammar. [greek gramma letter]

    Grammarian n. Expert in grammar or linguistics.

    Grammar school n. Esp. Hist. Selective state secondary school with a mainly academic curriculum.

    Grammatical adj. Of or conforming to the rules of grammar. grammatically adv.

    Gramme var. Of *gram.

    Gramophone n. = *record-player. [inversion of phonogram: as phono-, -gram]

    Gramophone record = *record n. 3.

    Grampus n. (pl. -puses) a kind of dolphin with a blunt snout. [latin crassus piscis

    Grampus n. (pl. -puses) a kind of dolphin with a blunt snout. [latin crassus piscis fat fish]

    Gran n. Colloq. Grandmother. [abbreviation]

    Granadilla n. Passion-fruit. [spanish, diminutive of granada pomegranate]

    Granary n. (pl. -ies) 1 storehouse for threshed grain. 2 region producing, and esp. Exporting, much corn. [latin: related to *grain]

    Grand —adj. 1 splendid, magnificent, imposing, dignified. 2 main; of chief importance. 3 (grand) of the highest rank (grand duke). 4 colloq. Excellent, enjoyable. 5 belonging to high society. 6 (in comb.) (in names of family relationships) denoting the second degree of ascent or descent (granddaughter). —n. 1 = *grand piano. 2 (pl. Same) (usu. In pl.) Esp. Us slang a thousand dollars or pounds. grandly adv. Grandness n. [latin grandis full-grown]

    Grandad n. (also grand-dad) colloq. 1 grandfather. 2 elderly man.

    Grandchild n. Child of one’s son or daughter.

    Granddaughter n. Female grandchild.

    Grandee n. 1 spanish or portuguese nobleman of the highest rank. 2 person of high rank. [spanish and portuguese grande: related to *grand]

    Grandeur n. 1 majesty, splendour; dignity of appearance or bearing. 2 high rank, eminence. 3 nobility of character. [french: related to *grand]

    Grandfather n. Male grandparent.

    Grandfather clock n. Clock in a tall wooden case, driven by weights.

    Grandiloquent adj. Pompous or inflated in language. grandiloquence n. [latin:

    related to *grand, -loquus from loquor speak]

    Grandiose adj. 1 producing or meant to produce an imposing effect. 2 planned on an ambitious scale. grandiosity n. [italian: related to *grand]

    Grand jury n. Esp. Us jury selected to examine the validity of an accusation prior to trial.

    Grandma n. Colloq. Grandmother.

    Grand mal n. Serious form of epilepsy with loss of consciousness. [french, = great sickness]

    Grand master n. Chess-player of the highest class.

    Grandmother n. Female grandparent.

    Grandmother n. Female grandparent.

    Grand national n. Steeplechase held annually at aintree, liverpool.

    Grand opera n. Opera on a serious theme, or in which the entire libretto (including dialogue) is sung.

    Grandpa n. Colloq. Grandfather.

    Grandparent n. Parent of one’s father or mother.

    Grand piano n. Large full-toned piano with horizontal strings.

    Grand prix n. Any of several important international motor or motor-cycle racing events. [french, = great or chief prize]

    Grandsire n. Archaic grandfather.

    Grand slam n. 1 sport winning of all of a group of matches etc. 2 bridge winning of 13 tricks.

    Grandson n. Male grandchild.

    Grandstand n. Main stand for spectators at a racecourse etc.

    Grand total n. Sum of other totals.

    Grand tour n. Hist. Cultural tour of europe.

    Grange n. Country house with farm-buildings. [latin granica: related to *grain]

    Graniferous adj. Producing grain or a grainlike seed. [latin: related to *grain]

    Granite n. Granular crystalline rock of quartz, mica, etc., used for building. [italian granito: related to *grain]

    Granivorous adj. Feeding on grain. [latin: related to *grain]

    Granny n. (also grannie) (pl. -ies) colloq. Grandmother. [diminutive of grannam from archaic grandam: related to *grand, *dame]

    Granny flat n. Part of a house made into self-contained accommodation for an elderly relative.

    Granny knot n. Reef-knot crossed the wrong way and therefore insecure.

    Grant —v. 1 a consent to fulfil (a request etc.). B allow (a person) to have (a thing). 2 give formally; transfer legally. 3 (often foll. By that) admit as true; concede. —n. 1 process of granting. 2 sum of money given by the state. 3 legal conveyance by written instrument. take for granted 1 assume something to be true or valid. 2 cease to appreciate through familiarity. grantor n. (esp. In sense 2 of v.). [french gr(e)anter var. Of creanter from latin credo entrust]

    Grant-maintained adj. (of a school) funded by central rather than local government.

    Granular adj. Of or like grains or granules. granularity n. [latin: related to *granule]

    Granulate v. (-ting) 1 form into grains. 2 roughen the surface of. granulation n.

    Granule n. Small grain. [latin diminutive of granum: related to *grain]

    Grape n. Berry (usu. Green, purple, or black) growing in clusters on a vine, used as fruit and in making wine. [french, probably from grappe hook]

    Grapefruit n. (pl. Same) large round usu. Yellow citrus fruit.

    Grape hyacinth n. Plant of the lily family with clusters of usu. Blue flowers.

    Grapeshot n. Hist. Small balls used as charge in a cannon and scattering when fired.

    Grapevine n. 1 vine. 2 colloq. The means of transmission of a rumour.

    Graph —n. Diagram showing the relation between variable quantities, usu. Of two variables, each measured along one of a pair of axes. —v. Plot or trace on a graph. [abbreviation of graphic formula]

    -graph comb. Form forming nouns and verbs meaning: 1 thing written or drawn etc. In a specified way (photograph). 2 instrument that records (seismograph).

    -grapher comb. Form forming nouns denoting a person concerned with a subject (geographer; radiographer). [greek -grapho write]

    Grape hyacinth n. Plant of the lily family with clusters of usu. Blue flowers.

    Grapeshot n. Hist. Small balls used as charge in a cannon and scattering when fired.

    Grapevine n. 1 vine. 2 colloq. The means of transmission of a rumour.

    Graph —n. Diagram showing the relation between variable quantities, usu. Of two variables, each measured along one of a pair of axes. —v. Plot or trace on a graph. [abbreviation of graphic formula]

    -graph comb. Form forming nouns and verbs meaning: 1 thing written or drawn etc. In a specified way (photograph). 2 instrument that records (seismograph).

    -grapher comb. Form forming nouns denoting a person concerned with a subject (geographer; radiographer). [greek -grapho write]

    Graphic adj. 1 of or relating to the visual or descriptive arts, esp. Writing and drawing. 2 vividly descriptive. graphically adv. [greek graphe writing]

    -graphic comb. Form (also -graphical) forming adjectives corresponding to nouns in -graphy.

    Graphic arts n.pl. Visual and technical arts involving design or the use of lettering.

    Graphic novel n. Novel in comic-strip format.

    Graphics n.pl. (usu. Treated as sing.) 1 products of the graphic arts. 2 use of diagrams in calculation and design.

    Graphite n. Crystalline allotropic form of carbon used as a lubricant, in pencils, etc. graphitic adj. [german graphit from greek grapho write]

    Graphology n. The study of handwriting, esp. As a supposed guide to character. graphologist n. [greek: related to *graphic]

    Graph paper n. Paper printed with a network of lines as a basis for drawing graphs.

    -graphy comb. Form forming nouns denoting: 1 descriptive science (geography).

    2 technique of producing images (photography). 3 style or method of writing etc.

    (calligraphy).

    Grapnel n. 1 device with iron claws, for dragging or grasping. 2 small anchor with several flukes. [french grapon: related to *grape]

    Grapple —v. (-ling) 1 (often foll. By with) fight in close combat. 2 (foll. By with) try to manage (a difficult problem etc.). 3 a grip with the hands; come to close quarters with. B seize with or as with a grapnel. —n. 1 a hold or grip in or as in wrestling. B contest at close quarters. 2 clutching-instrument; grapnel. [french grapil: related to *grapnel]

    Grappling-iron n. (also grappling-hook) = *grapnel.

    Grasp —v. 1 a clutch at; seize greedily. B hold firmly. 2 (foll. By at) try to seize; accept avidly. 3 understand or realize (a fact or meaning). —n. 1 firm hold; grip. 2 (foll. By of) a mastery (a grasp of the situation). B mental hold. grasp the nettle tackle a difficulty boldly. [earlier grapse: related to *grope]

    Grasping adj. Avaricious.

    Grass —n. 1 a any of a group of wild plants with green blades that are eaten by ruminants. B plant of the family which includes cereals, reeds, and bamboos. 2 pasture land. 3 grass-covered ground, lawn. 4 grazing (out to grass). 5 slang marijuana. 6 slang informer. —v. 1 cover with turf. 2 us provide with pasture. 3 slang a betray, esp. To the police. B inform the police. grassy adj. (-ier, -iest). [old english]

    Grasshopper n. Jumping and chirping insect.

    Grassland n. Large open area covered with grass, esp. Used for grazing.

    Grass roots n.pl. 1 fundamental level or source. 2 ordinary people; rank and file of an organization, esp. A political party.

    Grass snake n. Common harmless european snake.

    Grass widow n. (also grass widower) person whose husband (or wife) is away for a prolonged period.

    Grate1 v. (-ting) 1 reduce to small particles by rubbing on a serrated surface. 2 (often foll. By against, on) rub with a harsh scraping sound. 3 utter in a harsh tone. 4 (often foll. By on) a sound harshly. B have an irritating effect.

    Grate2 n. 1 fireplace or furnace. 2 metal frame confining fuel in this. [latin cratis hurdle]

    Grateful adj. 1 thankful; feeling or showing gratitude. 2 pleasant, acceptable.

    gratefully adv. [obsolete grate from latin gratus]

    Gratify v. (-ies, -ied) 1 a please, delight. B please by compliance. 2 yield to (a feeling or desire). gratification n. [latin: related to *grateful]

    Grating n. 1 framework of parallel or crossed metal bars. 2 optics set of parallel wires, lines ruled on glass, etc.

    Gratis adv. & adj. Free; without charge. [latin]

    Gratitude n. Being thankful; readiness to return kindness. [latin: related to *grateful]

    Gratuitous adj. 1 given or done free of charge. 2 uncalled-for; lacking good reason. gratuitously adv. Gratuitousness n. [latin, = spontaneous]

    Gratuity n. (pl. -ies) = tip3 n. 1. [latin: related to grateful]

    Grave1 n. 1 trench dug in the ground for the burial of a corpse; mound or memorial stone placed over this. 2 (prec. By the) death. [old english]

    Grave2 —adj. 1 a serious, weighty, important. B dignified, solemn, sombre. 2 extremely serious or threatening. —n. = *grave accent. gravely adv. [latin gravis heavy]

    Grave3 v. (-ving; past part. Graven or graved) 1 (foll. By in, on) fix indelibly (on one’s memory). 2 archaic engrave, carve. [old english]

    Grave accent n. A mark (`) placed over a vowel to denote pronunciation, length, etc.

    Gravedigger n. Person who digs graves.

    Gravel —n. 1 mixture of coarse sand and small stones, used for paths etc. 2 med. Aggregations of crystals formed in the urinary tract. —v. (-ll-; us -l-) lay or strew with gravel. [french diminutive, perhaps of grave shore]

    Gravelly adj. 1 of or like gravel. 2 (of a voice) deep and rough-sounding.

    Graven past part. Of *grave3.

    Graven image n. Idol.

    Graves n. Light usu. White wine from graves in france.

    Gravestone n. Stone (usu. Inscribed) marking a grave.

    Graveyard n. Burial ground.

    Gravid adj. Pregnant. [latin gravidus: related to *grave2]

    Gravimeter n. Instrument measuring the difference in the force of gravity between two places. [latin: related to *grave2]

    Gravimetry n. Measurement of weight. gravimetric adj.

    Gravitate v. (-ting) 1 (foll. By to, towards) move or be attracted to. 2 a move or tend by force of gravity towards. B sink by or as if by gravity. [related to *grave2]

    Gravitation n. Physics 1 force of attraction between any particle of matter in the universe and any other. 2 effect of this, esp. The falling of bodies to the earth. gravitational adj.

    Gravity n. 1 a force that attracts a body to the centre of the earth etc. B degree of intensity of this. C gravitational force. 2 property of having weight. 3 a importance, seriousness. B solemnity. [latin: related to *grave2]

    Gravy n. (pl. -ies) 1 juices exuding from meat during and after cooking. 2 sauce for food, made from these etc. [perhaps from a misreading of french grané from grain spice, *grain]

    Gravy-boat n. Boat-shaped vessel for serving gravy.

    Gravy train n. Slang source of easy financial benefit.

    Gray (brit. Grey) —adj. 1 of a colour intermediate between black and white. 2 dull, dismal. 3 a (of hair) turning white with age etc. B having grey hair. 4 anonymous, unidentifiable. —n. 1 a grey colour or pigment. B grey clothes or material (dressed in grey). 2 grey or white horse. —v. Make or become grey. greyish adj. Greyness n. [old english]

    Grayling n. (pl. Same) silver-grey freshwater fish. [from *grey, *-ling]

    Graze1 v. (-zing) 1 (of cattle, sheep, etc.) Eat growing grass. 2 a feed (cattle etc.) On growing grass. B feed on (grass). 3 pasture cattle. [old english: related to *grass]

    Graze2 —v. (-zing) 1 rub or scrape (part of the body, esp. The skin). 2 a touch lightly in passing. B (foll. By against, along, etc.) Move with a light passing contact. —n. Abrasion. [perhaps from *graze1, as if ‘take off the grass close to the ground’]

    Grazier n. 1 person who feeds cattle for market. 2 austral. Large-scale sheep-farmer etc. [from *grass]

    Grazing n. Grassland suitable for pasturage.

    Grease —n. 1 oily or fatty matter, esp. As a lubricant. 2 melted fat of a dead

    animal. —v. (-sing) smear or lubricate with grease. grease the palm of colloq.

    animal. —v. (-sing) smear or lubricate with grease. grease the palm of colloq. Bribe. [latin crassus (adj.) Fat]

    Greasepaint n. Make-up used by actors.

    Greaseproof adj. Impervious to grease.

    Greaser n. Slang member of a gang of youths with long hair and motor cycles.

    Greasy adj. (-ier, -iest) 1 a of or like grease. B smeared or covered with grease. C containing or having too much grease. 2 a slippery. B (of a person or manner) unpleasantly unctuous. greasily adv. Greasiness n.

    Great —adj. 1 a of a size, amount, extent, or intensity considerably above the normal or average (a great hole; great fun). B also with implied admiration, contempt, etc., esp. In exclamations (you great idiot!; great stuff!). C reinforcing other words denoting size, quantity, etc. (great big hole). 2 important, pre-eminent (the great thing is not to get caught). 3 grand, imposing (great occasion). 4 distinguished. 5 remarkable in ability, character, etc. (great men; great thinker). 6 (foll. By at, on) competent, well-informed. 7 fully deserving the name of; doing a thing extensively (great reader; great believer in tolerance). 8 (also greater) the larger of the name, species, etc. (great auk; greater celandine). 9 colloq. Very enjoyable or satisfactory (had a great time). 10 (in comb.) (in names of family relationships) denoting one degree further removed upwards or downwards (great-uncle; great-great-grandmother). —n. 1 great or outstanding person or thing. 2 (in pl.) (greats) colloq. (at oxford university) honours course or final examinations in classics and philosophy. greatness n. [old english]

    Great bear see *bear2.

    Great circle n. Circle on the surface of a sphere whose plane passes through the sphere’s centre.

    Greatcoat n. Heavy overcoat.

    Great dane n. Dog of a large short-haired breed.

    Great deal n. = *deal1 n. 1.

    Greatly adv. Much; by a considerable amount (greatly admired; greatly superior).

    Great tit n. Eurasian songbird with black and white head markings.

    Great war n. World war of 1914–18.

    Greave n. (usu. In pl.) Armour for the shin. [french, = shin]

    Grebe n. A kind of diving bird. [french]

    Grecian adj. (of architecture or facial outline) greek. [latin graecia greece]

    Grecian nose n. Straight nose that continues the line of the forehead without a dip.

    Greed n. Excessive desire, esp. For food or wealth. [from *greedy]

    Greedy adj. (-ier, -iest) 1 having or showing greed. 2 (foll. By for, or to + infin.) Very eager. greedily adv. Greediness n. [old english]

    Greek —n. 1 a native or national of greece. B person of greek descent. 2 language of greece. —adj. Of greece or its people or language; hellenic. greek to me colloq. Incomprehensible to me. [old english ultimately from greek graikoi]

    Greek cross n. Cross with four equal arms.

    Green —adj. 1 of the colour between blue and yellow in the spectrum; coloured like grass. 2 covered with leaves or grass. 3 (of fruit etc. Or wood) unripe or unseasoned. 4 not dried, smoked, or tanned. 5 inexperienced, gullible. 6 a (of the complexion) pale, sickly-hued. B jealous, envious. 7 young, flourishing. 8 not withered or worn out (a green old age).

    Green belt n. Area of open land round a city, designated for preservation.

    Green card n. International insurance document for motorists.

    Greenery n. Green foliage or growing plants.

    Green-eyed adj. Colloq. Jealous.

    Greenfinch n. Finch with green and yellow plumage.

    Green fingers n. Colloq. Skill in growing plants.

    Greenfly n. 1 green aphid. 2 these collectively.

    Greengage n. Roundish green variety of plum. [sir w. Gage, name of a botanist]

    Greengrocer n. Retailer of fruit and vegetables.

    Greengrocery n. (pl. -ies) 1 greengrocer’s business. 2 goods sold by a greengrocer.

    Greenhorn n. Inexperienced person; new recruit.

    Greenhouse n. Light structure with the sides and roof mainly of glass, for rearing plants.

    Greenhouse effect n. Trapping of the sun’s warmth in the lower atmosphere of the earth, caused by an increase in carbon dioxide, methane, etc.

    Greenhouse gas n. Any of the gases, esp. Carbon dioxide and methane, that contribute to the greenhouse effect.

    Green light n. 1 signal to proceed on a road, railway, etc. 2 colloq. Permission to proceed with a project.

    Green paper n. Preliminary report of government proposals, for discussion.

    Green pound n. Exchange rate for the pound for payments for agricultural produce in the ec.

    Green revolution n. Greatly increased crop production in underdeveloped countries.

    Green-room n. Room in a theatre for actors and actresses who are off stage.

    Green-stick fracture n. Bone-fracture, esp. In children, in which one side of the bone is broken and one only bent.

    Greenstuff n. Vegetation; green vegetables.

    Greensward n. Expanse of grassy turf.

    Green tea n. Tea made from steam-dried leaves.

    Greenwich mean time n. Local time on the meridian of greenwich, used as an international basis of time-reckoning.

    Greenwood n. A wood in summer.

    Greeny adj. Greenish.

    Greet1 v. 1 address politely or welcomingly on meeting or arrival. 2 receive or acknowledge in a specified way. 3 (of a sight, sound, etc.) Become apparent to or noticed by. [old english]

    Greet2 v. Scot. Weep. [old english]

    Greeting n. 1 act or instance of welcoming etc. 2 words, gestures, etc., used to greet a person. 3 (often in pl.) Expression of goodwill.

    Greetings card n. Decorative card sent to convey greetings.

    Gregarious adj. 1 fond of company. 2 living in flocks or communities. gregariousness n. [latin grex gregis flock]

    gregariousness n. [latin grex gregis flock]

    Gregorian calendar n. Calendar introduced in 1582 by pope gregory xiii.

    Gregorian chant n. Plainsong ritual music, named after pope gregory i.

    Gremlin n. Colloq. Imaginary mischievous sprite regarded as responsible for mechanical faults etc. [origin unknown]

    Grenade n. Small bomb thrown by hand (hand-grenade) or shot from a rifle. [french: related to *pomegranate]

    Grenadier n. 1 (grenadiers or grenadier guards) first regiment of the royal household infantry. 2 hist. Soldier armed with grenades.

    Grew past of *grow.

    Grey (us gray) —adj. 1 of a colour intermediate between black and white. 2 dull, dismal. 3 a (of hair) turning white with age etc. B having grey hair. 4 anonymous, unidentifiable. —n. 1 a grey colour or pigment. B grey clothes or material (dressed in grey). 2 grey or white horse. —v. Make or become grey. greyish adj. Greyness n. [old english]

    Grey area n. Situation or topic not clearly defined.

    Grey friar n. Franciscan friar.

    Greyhound n. Dog of a tall slender breed capable of high speed. [old english, = bitch-hound]

    Greylag n. (in full greylag goose) european wild goose. [from *grey]

    Grey matter n. 1 the darker tissues of the brain and spinal cord. 2 colloq.

    Intelligence.

    Grey squirrel n. American squirrel brought to europe in the 19th c.

    Grid n. 1 grating. 2 system of numbered squares printed on a map and forming the basis of map references. 3 network of lines, electric-power connections, gas-supply lines, etc. 4 pattern of lines marking the starting-places on a motor-racing track. 5 perforated electrode controlling the flow of electrons in a thermionic valve etc. 6 arrangement of town streets in a rectangular pattern. [from *gridiron]

    Griddle n. Circular iron plate placed over a source of heat for baking etc. [latin cratis hurdle]

    Gridiron n. Cooking utensil of metal bars for broiling or grilling. [related to *griddle]

    Grief n. 1 intense sorrow. 2 cause of this. come to grief meet with disaster.

    [french: related to *grieve]

    Grievance n. Real or fancied cause for complaint. [french: related to *grief]

    Grieve v. (-ving) 1 cause grief to. 2 suffer grief. [latin: related to *grave2]

    Grievous adj. 1 (of pain etc.) Severe. 2 causing grief. 3 injurious. 4 flagrant, heinous. grievously adv. [french: related to *grieve]

    Grievous bodily harm n. Law serious injury inflicted intentionally.

    Griffin n. (also gryphon) fabulous creature with an eagle’s head and wings and a lion’s body. [latin gryphus from greek]

    Griffon n. 1 dog of a small terrier-like breed. 2 large vulture. 3 = griffin. [french,

    griffin]

    Grill —n. 1 a device on a cooker for radiating heat downwards. B = gridiron. 2 food cooked on a grill. 3 (in full grill room) restaurant specializing in grilled food. —v. 1 cook or be cooked under a grill or on a gridiron. 2 subject or be subjected to extreme heat. 3 subject to severe questioning. [french: related to griddle]

    Grille n. (also grill) 1 grating or latticed screen, used as a partition etc. 2 metal grid protecting the radiator of a vehicle.

    Grilse n. (pl. Same or -s) young salmon that has returned to fresh water from the sea for the first time. [origin unknown]

    Grim adj. (grimmer, grimmest) 1 of stern or forbidding appearance. 2 harsh, merciless. 3 ghastly, joyless (has a grim truth in it). 4 unpleasant, unattractive. grimly adv. Grimness n. [old english]

    Grimace —n. Distortion of the face made in disgust etc. Or to amuse. —v. (-cing) make a grimace. [french from spanish]

    Grime —n. Soot or dirt ingrained in a surface. —v. (-ming) blacken with grime; befoul. griminess n. Grimy adj. (-ier, -iest). [low german or dutch]

    Grin —v. (-nn-) 1 a smile broadly, showing the teeth. B make a forced, unrestrained, or stupid smile. 2 express by grinning. —n. Act of grinning. grin and bear it take pain etc. Stoically. [old english]

    Grind —v. (past and past part. Ground) 1 reduce to small particles or powder by crushing. 2 a sharpen or smooth by friction. B rub or rub together gratingly. 3 (often foll. By down) oppress; harass with exactions. 4 a (often foll. By away) work or study hard. B (foll. By out) produce with effort. —n. 1 act or instance of grinding. 2 colloq. Hard dull work (the daily grind). 3 size of ground particles. grind to a halt stop laboriously.

    Grinder n. 1 person or thing that grinds, esp. A machine. 2 molar tooth.

    Grindstone n. 1 thick revolving disc used for grinding, sharpening, and

    polishing. 2 a kind of stone used for this. keep one’s nose to the grindstone work hard and continuously.

    Grip —v. (-pp-) 1 a grasp tightly. B take a firm hold, esp. By friction. 2 compel the attention of. —n. 1 a firm hold; tight grasp. B manner of grasping or holding. 2 power of holding attention. 3 a intellectual mastery. B effective control of one’s behaviour etc. (lose one’s grip). 4 a part of a machine that grips. B part by which a weapon etc. Is held. 5 = *hairgrip. 6 travelling bag. come (or get) to grips with approach purposefully; begin to deal with. [old english]

    Gripe —v. (-ping) 1 colloq. Complain. 2 affect with gastric pain. —n. 1 (usu. In pl.) Colic. 2 colloq. Complaint. 3 grip, clutch. [old english]

    Gripe water n. Propr. Preparation to relieve colic in infants.

    Grisly adj. (-ier, -iest) causing horror, disgust, or fear. grisliness n. [old english]

    Grist n. Corn to grind. grist to the (or a person’s) mill source of profit or advantage. [old english: related to *grind]

    Gristle n. Tough flexible animal tissue; cartilage. gristly adj. [old english]

    Grit —n. 1 particles of stone or sand, esp. As irritating or hindering. 2 coarse sandstone. 3 colloq. Pluck, endurance. —v. (-tt-) 1 spread grit on (icy roads etc.). 2 clench (the teeth). 3 make a grating sound. gritter n. Gritty adj. (-ier, -iest). [old english]

    Grits n.pl. 1 coarsely ground grain, esp. Oatmeal. 2 oats that have been husked but not ground. [old english]

    Grizzle v. (-ling) colloq. 1 (esp. Of a child) cry fretfully. 2 complain whiningly. grizzly adj. [origin unknown]

    Grizzled adj. 1 (of hair) grey or streaked with grey. 2 having grizzled hair. [grizzle grey from french grisel]

    Grizzly —adj. (-ier, -iest) grey, grey-haired. —n. (pl. -ies) (in full grizzly bear) large variety of brown bear, found in n. America and n. Russia.

    Groan —v. 1 a make a deep sound expressing pain, grief, or disapproval. B utter with groans. 2 (usu. Foll. By under, beneath, with) be loaded or oppressed. —n. Sound made in groaning. [old english]

    Groat n. Hist. Silver coin worth four old pence. [low german or dutch: related to *great]

    Groats n.pl. Hulled or crushed grain, esp. Oats. [old english]

    Grocer n. Dealer in food and household provisions. [anglo-french grosser from latin grossus *gross]

    Grocery n. (pl. -ies) 1 grocer’s trade or shop. 2 (in pl.) Goods, esp. Food, sold by a grocer.

    Grog n. Drink of spirit (orig. Rum) and water. [origin uncertain]

    Groggy adj. (-ier, -iest) incapable or unsteady. groggily adv. Grogginess n.

    Groin1 —n. 1 depression between the belly and the thigh. 2 archit. A edge formed by intersecting vaults. B arch supporting a vault. —v. Archit. Build with groins. [origin uncertain]

    Groin n. (brit. Groyne) timber, stone, or concrete wall built at right angles to the coast to check beach erosion. [dial. Groin snout, from french]

    Grommet n. (also grummet) 1 metal, plastic, or rubber eyelet placed in a hole to protect or insulate a rope or cable etc. Passed through it. 2 tube passed through the eardrum to make a communication with the middle ear. [french]

    Groom —n. 1 person employed to take care of horses. 2 = *bridegroom. 3 mil. Any of certain officers of the royal household. —v. 1 a curry or tend (a horse). B give a neat appearance to (a person etc.).

    Groove —n. 1 channel or elongated hollow, esp. One made to guide motion or receive a corresponding ridge. 2 spiral track cut in a gramophone record. —v. (-ving) 1 make a groove or grooves in. 2 slang enjoy oneself. [dutch]

    Groovy adj. (-ier, -iest) 1 slang excellent. 2 of or like a groove.

    Grope —v. (-ping) 1 (usu. Foll. By for) feel about or search blindly. 2 (foll. By for, after) search mentally. 3 feel (one’s way) towards something. 4 slang fondle clumsily for sexual pleasure. —n. Act of groping. [old english]

    Grosgrain n. Corded fabric of silk etc. [french, = coarse grain: related to *gross, *grain]

    Gros point n. Cross-stitch embroidery on canvas. [french: related to *gross, *point]

    Gross —adj. 1 overfed, bloated. 2 (of a person, manners, or morals) coarse, unrefined, or indecent. 3 flagrant (gross negligence). 4 total; not net (gross tonnage). 5 (of the senses etc.) Dull. —v. Produce as gross profit. —n. (pl.

    Same) amount equal to twelve dozen. grossly adv. Grossness n. [latin grossus]

    Gross domestic product n. Total value of goods produced and services provided in a country in one year.

    Gross national product n. Gross domestic product plus the total of net income from abroad.

    Grotesque —adj. 1 comically or repulsively distorted. 2 incongruous, absurd. — n. 1 decorative form interweaving human and animal features. 2 comically distorted figure or design. grotesquely adv. Grotesqueness n. [italian: related to *grotto]

    Grotto n. (pl. -es or -s) 1 picturesque cave. 2 artificial ornamental cave. [italian grotta from greek krupte *crypt]

    Grotty adj. (-ier, -iest) slang unpleasant, dirty, shabby, unattractive. [shortening of *grotesque]

    Grouch colloq. —v. Grumble. —n. 1 discontented person. 2 fit of grumbling or the sulks. grouchy adj. (-ier, -iest). [related to *grudge]

    Ground1 —n. 1 a surface of the earth, esp. As contrasted with the air around it. B part of this specified in some way (low ground). 2 a position, area, or distance on the earth’s surface. B extent of a subject dealt with (the book covers a lot of ground). 3 (often in pl.) Reason, justification. 4 area of a special kind or use (often in comb.: cricket-ground; fishing-grounds). 5 (in pl.) Enclosed land attached to a house etc. 6 area or basis for agreement etc. (common ground). 7 (in painting etc.) The surface giving the predominant colour. 8 (in pl.) Solid particles, esp. Of coffee, forming a residue. 9 us electr. = *earth n. 4. 10 bottom of the sea. 11 floor of a room etc. 12 (in full ground bass) mus. Short theme in the bass constantly repeated with the upper parts of the music varied. 13 (attrib.) (of animals) living on or in the ground; (of plants) dwarfish or trailing. —v. 1 refuse authority for (a pilot or an aircraft) to fly. 2 a run (a ship) aground; strand. B (of a ship) run aground. 3 (foll. By in) instruct thoroughly (in a subject). 4 (often as grounded adj.) (foll. By on) base (a principle, conclusion, etc.) On. 5 us electr. = *earth v. break new (or fresh) ground treat a subject previously not dealt with. Get off the ground colloq. Make a successful start. Give (or lose) ground retreat, decline. Go to ground 1 (of a fox etc.) Enter its earth etc. 2 (of a person) become inaccessible for a prolonged period. Hold one’s ground not retreat. On the grounds of because of. [old english]

    Ground2 past and past part. Of *grind.

    Ground control n. Personnel directing the landing etc. Of aircraft etc.

    Ground cover n. Low-growing plants covering the surface of the earth.

    Ground elder n. Garden weed spreading by means of underground stems.

    Ground floor n. Floor of a building at ground level.

    Ground frost n. Frost on the surface of the ground or in the top layer of soil.

    Ground glass n. 1 glass made non-transparent by grinding etc. 2 glass ground to a powder.

    Grounding n. Basic training or instruction.

    Groundless adj. Without motive or foundation.

    Groundnut n. = *peanut 1, 2.

    Ground-plan n. 1 plan of a building at ground level. 2 general outline of a scheme.

    Ground-rent n. Rent for land leased for building.

    Groundsel n. Wild plant with small yellow flowers, used as a food for cage-birds etc. [old english]

    Groundsheet n. Waterproof sheet for spreading on the ground.

    Groundsman n. Person who maintains a sports ground.

    Ground speed n. Aircraft’s speed relative to the ground.

    Ground swell n. Heavy sea caused by a distant or past storm or an earthquake.

    Groundwater n. Water found in soil or in pores, crevices, etc., in rock.

    Groundwork n. Preliminary or basic work.

    Group —n. 1 number of persons or things located close together, or considered or classed together. 2 number of people working together etc. 3 number of commercial companies under common ownership. 4 ensemble playing popular music. 5 division of an air force etc. —v. 1 form or be formed into a group. 2 (often foll. By with) place in a group or groups. [italian gruppo]

    Group captain n. Raf officer next below air commodore.

    Group captain n. Raf officer next below air commodore.

    Groupie n. Slang ardent follower of touring pop groups, esp. A young woman seeking sexual relations with them.

    Group therapy n. Therapy in which people are brought together to assist one another psychologically.

    Grouse1 n. (pl. Same) 1 game-bird with a plump body and feathered legs. 2 its flesh as food. [origin uncertain]

    Grouse2 colloq. —v. (-sing) grumble or complain. —n. Complaint. [origin unknown]

    Grout —n. Thin fluid mortar. —v. Provide or fill with grout. [origin uncertain]

    Grove n. Small wood or group of trees. [old english]

    Grovel v. (-ll-; us -l-) 1 behave obsequiously. 2 lie prone in abject humility. grovelling adj. [obsolete grovelling (adv.) From old norse á grúfu face down]

    Grow v. (past grew; past part. Grown) 1 increase in size, height, quantity, degree, etc. 2 develop or exist as a living plant or natural product. 3 a produce (plants etc.) By cultivation. B allow (a beard etc.) To develop. 4 become gradually (grow rich). 5 (foll. By on) become gradually more favoured by. 6 (in

    passive; foll. By over etc.) Be covered with a growth. grow out of 1 become too large to wear. 2 become too mature to retain (a habit etc.). 3 develop from. Grow up 1 advance to maturity. 2 (of a custom) arise. [old english]

    Grower n. 1 (often in comb.) Person growing produce (fruit-grower). 2 plant that grows in a specified way (fast grower).

    Growing pains n.pl. 1 early difficulties in the development of a project etc. 2 neuralgic pain in children’s legs due to fatigue etc.

    Growl —v. 1 a (often foll. By at) make a low guttural sound, usu. Of anger. B murmur angrily. 2 rumble. 3 (often foll. By out) utter with a growl. —n. 1 growling sound. 2 angry murmur. 3 rumble. [probably imitative]

    Grown past part. Of *grow.

    Grown-up —adj. Adult. —n. Adult person.

    Growth n. 1 act or process of growing. 2 increase in size or value. 3 something that has grown or is growing. 4 med. Morbid formation.

    Growth industry n. Industry that is developing rapidly.

    Groyne n. (us groin) timber, stone, or concrete wall built at right angles to the coast to check beach erosion. [dial. Groin snout, from french]

    Grub —n. 1 larva of an insect. 2 colloq. Food. —v. (-bb-) 1 dig superficially. 2 (foll. By up, out) a extract by digging. B extract (information etc.) By searching in books etc. 3 rummage. [old english]

    Grubby adj. (-ier, -iest) 1 dirty. 2 of or infested with grubs. grubbily adv.

    Grubbiness n.

    Grudge —n. Persistent feeling of ill will or resentment. —v. (-ging) 1 be resentfully unwilling to give or allow. 2 (foll. By verbal noun or to + infin.) Be reluctant to do. [french]

    Gruel n. Liquid food of oatmeal etc. Boiled in milk or water. [french from germanic]

    Grueling adj. (brit. Gruelling) extremely demanding or tiring.

    Gruelling adj. (us grueling) extremely demanding or tiring.

    Gruesome adj. Horrible, grisly, disgusting. gruesomely adv. [scandinavian]

    Gruff adj. 1 a (of a voice) low and harsh. B (of a person) having a gruff voice. 2 surly. gruffly adv. Gruffness n. [low german or dutch grof coarse]

    Grumble —v. (-ling) 1 complain peevishly. 2 rumble. —n. 1 complaint. 2 rumble. grumbler n. [obsolete grumme]

    Grummet var. Of *grommet.

    Grumpy adj. (-ier, -iest) morosely irritable. grumpily adv. Grumpiness n. [imitative]

    Grunt —n. 1 low guttural sound made by a pig. 2 similar sound. —v. 1 make a grunt. 2 make a similar sound, esp. To express discontent. 3 utter with a grunt. [old english, imitative]

    Gruyère n. A firm pale cheese. [gruyère in switzerland]

    Gryphon var. Of *griffin.

    Gstring n. 1 mus. String sounding the note g. 2 narrow strip of cloth etc.

    Covering only the genitals and attached to a string round the waist.

    G-suit n. Garment with inflatable pressurized pouches, worn by pilots and astronauts to enable them to withstand high acceleration. [g = gravity, *suit]

    Gt n. High-performance saloon car. [italian gran turismo great touring]

    Guano n. (pl. -s) 1 excrement of sea birds, used as manure. 2 artificial manure, esp. That made from fish. [spanish from quechua]

    Guarantee —n. 1 a formal promise or assurance, esp. That something is of a specified quality and durability. B document giving such an undertaking. 2 = *guaranty. 3 person making a guaranty or giving a security. —v. (-tees, -teed) 1 a give or serve as a guarantee for. B provide with a guarantee. 2 give a promise or assurance. 3 (foll. By to) secure the possession of (a thing) for a person. [related to *warrant]

    Guarantor n. Person who gives a guarantee or guaranty.

    Guaranty n. (pl. -ies) 1 written or other undertaking to answer for the payment of a debt or for the performance of an obligation by another person liable in the first instance. 2 thing serving as security.

    Guard —v. 1 (often foll. By from, against) watch over and defend or protect. 2 keep watch by (a door etc.) To control entry or exit. 3 supervise (prisoners etc.) And prevent from escaping. 4 keep (thoughts or speech) in check. 5 (foll. By against) take precautions. —n. 1 state of vigilance. 2 person who protects or keeps watch. 3 soldiers etc. Protecting a place or person; escort. 4 official in general charge of a train. 5 part of an army detached for some purpose (advance guard). 6 (in pl.) (usu. Guards) body of troops nominally employed to guard a monarch. 7 thing that protects (fire-guard). 8 us prison warder. 9 defensive posture or motion in boxing etc. be on (or keep or stand) guard keep watch. Off (or off one’s) guard unprepared for some surprise or difficulty. On (or on one’s) guard prepared for all contingencies. [germanic: related to *ward]

    Guarded adj. (of a remark etc.) Cautious. guardedly adv.

    Guardhouse n. Building used to accommodate a military guard or to detain prisoners.

    prisoners.

    Guardian n. 1 protector, keeper. 2 person having legal custody of another, esp. A minor. guardianship n. [french: related to ward, warden]

    Guardroom n. Room serving the same purpose as a guardhouse.

    Guardsman n. Soldier belonging to a body of guards or regiment of guards.

    Guava n. 1 edible pale orange fruit with pink flesh. 2 tree bearing this. [spanish]

    Gubernatorial adj. Esp. Us of or relating to a governor. [latin gubernator governor]

    Gudgeon1 n. Small freshwater fish often used as bait. [french goujon from latin gobio *goby]

    Gudgeon2 n. 1 a kind of pivot. 2 tubular part of a hinge. 3 socket for a rudder. 4 pin holding two blocks of stone etc. Together. [french diminutive: related to *gouge]

    Guelder rose n. Shrub with round bunches of creamy-white flowers. [dutch from gelderland in the netherlands]

    Guernsey n. (pl. -s) 1 one of a breed of dairy cattle from guernsey in the channel islands. 2 (guernsey) type of thick woollen sweater.

    Guerrilla n. (also guerilla) member of a small independently acting (usu. Political) group taking part in irregular fighting. [spanish diminutive: related to *war]

    Guess —v. 1 (often absol.) Estimate without calculation or measurement. 2 form a hypothesis or opinion about; conjecture; think likely. 3 conjecture or estimate correctly. 4 (foll. By at) make a conjecture about. —n. Estimate, conjecture. i guess colloq. I think it likely; i suppose. [origin uncertain]

    Guesswork n. Process of or results got by guessing.

    Guest n. 1 person invited to visit another’s house or to have a meal etc. At another’s expense. 2 person lodging at a hotel etc. 3 outside performer invited to take part with a regular body of performers. [old norse]

    Guest-house n. Private house offering paid accommodation.

    Guestimate n. (also guesstimate) colloq. Estimate based on a mixture of guesswork and calculation. [from *guess, *estimate]

    Guff n. Slang empty talk. [imitative]

    Guffaw —n. Boisterous laugh. —v. Utter a guffaw. [imitative]

    Guidance n. 1 advice or direction for solving a problem etc. 2 guiding or being guided.

    Guide —n. 1 person who leads or shows the way. 2 person who conducts tours. 3 adviser. 4 directing principle. 5 book with essential information on a subject, esp. = *guidebook. 6 thing marking a position or guiding the eye. 7 bar etc.

    Directing the motion of something. 8 (guide) member of a girls’ organization similar to the scouts. —v. (-ding) 1 act as guide to. 2 be the principle or motive of. [french from germanic]

    Guidebook n. Book of information about a place for tourists etc.

    Guided missile n. Missile under remote control or directed by equipment within itself.

    Guide-dog n. Dog trained to guide a blind person.

    Guideline n. Principle directing action.

    Guider n. Adult leader of guides.

    Guild n. (also gild) 1 association of people for mutual aid or the pursuit of a common goal. 2 medieval association of craftsmen or merchants. [low german or dutch gilde]

    Guilder n. Chief monetary unit of the netherlands. [alteration of dutch gulden golden]

    Guildhall n. Meeting-place of a medieval guild; town hall.

    Guile n. Cunning or sly behaviour; treachery, deceit. guileful adj. Guileless adj. [french from scandinavian]

    Guillemot n. Fast-flying sea bird nesting on cliffs etc. [french]

    Guillotine —n. 1 machine with a blade sliding vertically in grooves, used for beheading. 2 device for cutting paper etc. 3 method of preventing delay in the discussion of a legislative bill by fixing times at which various parts of it must be voted on. —v. (-ning) use a guillotine on. [guillotin, name of a physician]

    Guilt n. 1 fact of having committed a specified or implied offence. 2 feeling of having done wrong. [old english]

    Guiltless adj. (often foll. By of an offence) innocent.

    Guilty adj. (-ier, -iest) 1 culpable of or responsible for a wrong. 2 conscious of or affected by guilt. 3 causing a feeling of guilt (a guilty secret). 4 (often foll. By of) having committed a (specified) offence. guiltily adv. Guiltiness n. [old english: related to *guilt]

    Guinea n. 1 hist. Sum of 21 old shillings (£1.05). 2 hist. Former british gold coin first coined for the african trade. [guinea in w. Africa]

    Guineafowl n. African fowl with slate-coloured white-spotted plumage.

    Guinea-pig n. 1 domesticated s. American cavy. 2 person used in an experiment.

    Guipure n. Heavy lace of linen pieces joined by embroidery. [french]

    Guise n. 1 assumed appearance; pretence. 2 external appearance. [germanic:

    related to *wise2]

    Guitar n. Usu. Six-stringed musical instrument played with the fingers or a plectrum. guitarist n. [greek kithara harp]

    Gujarati (also gujerati) —n. (pl. -s) 1 native of gujarat. 2 language of gujarat. — adj. Of gujarat, its people, or language. [gujarat, state in india]

    Gulch n. Us ravine, esp. One in which a torrent flows. [origin uncertain]

    Gulf n. 1 stretch of sea consisting of a deep inlet with a narrow mouth. 2 deep hollow; chasm. 3 wide difference of feelings, opinion, etc. [greek kolpos]

    Gulf stream n. Warm current flowing from the gulf of mexico to newfoundland

    Gulf stream n. Warm current flowing from the gulf of mexico to newfoundland where it is deflected across the atlantic ocean.

    Gull1 n. Long-winged web-footed sea bird. [probably welsh gwylan]

    Gull2 v. Dupe, fool. [perhaps from obsolete gull yellow from old norse]

    Gullet n. Food-passage extending from the mouth to the stomach. [latin gula throat]

    Gullible adj. Easily persuaded or deceived. gullibility n. [from *gull2]

    Gully n. (pl. -ies) 1 water-worn ravine. 2 gutter or drain. 3 cricket fielding position between point and slips. [french goulet: related to *gullet]

    Gulp —v. 1 (often foll. By down) swallow hastily, greedily, or with effort. 2 swallow gaspingly or with difficulty; choke. 3 (foll. By down, back) suppress (esp. Tears). —n. 1 act of gulping. 2 large mouthful of a drink. [dutch gulpen, imitative]

    Gum1 —n. 1 a viscous secretion of some trees and shrubs. B adhesive substance made from this. 2 us chewing gum. 3 = gumdrop. 4 = gum arabic. 5 = *gum-tree. —v. (-mm-) 1 (usu. Foll. By down, together, etc.) Fasten with gum. 2 apply gum to. gum up colloq. Interfere with the smooth running of. [greek kommi from egyptian kemai]

    Gum2 n. (usu. In pl.) Firm flesh around the roots of the teeth. [old english]

    Gum3 n. by gum! Colloq. By god! [corruption of god]

    Gum arabic n. Gum exuded by some kinds of acacia.

    Gumboil n. Small abscess on the gum.

    Gumboot n. Rubber boot.

    Gumdrop n. Hard translucent sweet made with gelatin etc.

    Gummy1 adj. (-ier, -iest) 1 sticky. 2 exuding gum.

    Gummy2 adj. (-ier, -iest) toothless.

    Gumption n. Colloq. 1 resourcefulness, initiative. 2 common sense. [origin unknown]

    Gum-tree n. Tree exuding gum, esp. A eucalyptus. up a gum-tree colloq. In great difficulties.

    Gun —n. 1 weapon consisting of a metal tube from which bullets or other missiles are propelled with great force, esp. By a contained explosion. 2 starting pistol. 3 device for discharging insecticide, grease etc., in the required direction. 4 member of a shooting-party. 5 us gunman. —v. (-nn-) 1 a (usu. Foll. By down) shoot (a person) with a gun. B shoot at with a gun. 2 go shooting. 3 (foll. By for) seek out determinedly to attack or rebuke. go great guns colloq. Proceed vigorously or successfully. Stick to one’s guns colloq. Maintain one’s position under attack. [perhaps an abbreviation of the scandinavian woman’s name gunnhildr, applied to cannon etc.]

    Gunboat n. Small vessel with heavy guns.

    Gunboat diplomacy n. Political negotiation backed by the threat of force.

    Gun-carriage n. Wheeled support for a gun.

    Gun-cotton n. Explosive made by steeping cotton in acids.

    Gun dog n. Dog trained to retrieve game shot by sportsmen.

    Gunfight n. Us fight with firearms. gunfighter n.

    Gunfire n. Firing of a gun or guns.

    Gunge colloq. —n. Sticky or viscous matter. —v. (-ging) (usu. Foll. By up) clog

    with gunge. gungy adj. [origin uncertain]

    Gung-ho adj. Zealous, arrogantly eager. [chinese gonghe work together]

    Gunman n. Man armed with a gun, esp. When committing a crime Gun-metal n. 1 a dull bluish-grey colour. 2 alloy formerly used for guns.

    Gunnel var. Of *gunwale.

    Gunner n. 1 artillery soldier (esp. As an official term for a private). 2 naut. Warrant-officer in charge of a battery, magazine, etc. 3 member of an aircraft crew who operates a gun.

    Gunnery n. 1 construction and management of large guns. 2 firing of guns.

    Gunny n. (pl. -ies) 1 coarse sacking, usu. Of jute fibre. 2 sack made of this. [hindi and marathi]

    Gunpoint n. at gunpoint threatened with a gun or an ultimatum etc.

    Gunpowder n. Explosive made of saltpetre, sulphur, and charcoal.

    Gunrunner n. Person engaged in the illegal sale or importing of firearms.

    gunrunning n.

    Gunshot n. 1 shot fired from a gun. 2 range of a gun (within gunshot).

    Gunslinger n. Esp. Us slang gunman.

    Gunsmith n. Maker and repairer of small firearms.

    Gunwale n. (also gunnel) upper edge of the side of a boat or ship. [from gun, wale, because it was formerly used to support guns]

    Guppy n. (pl. -ies) freshwater fish of the w. Indies and s. America frequently kept in aquariums. [guppy, name of a clergyman]

    Gurgle —v. (-ling) 1 make a bubbling sound as of water from a bottle. 2 utter with such a sound. —n. Gurgling sound. [probably imitative]

    Gurkha n. 1 member of the dominant hindu race in nepal. 2 nepalese soldier serving in the british army. [sanskrit]

    Gurnard n. (pl. Same or -s) marine fish with a large spiny head and finger-like pectoral rays. [french]

    Guru n. (pl. -s) 1 hindu spiritual teacher or head of a religious sect. 2 influential

    Guru n. (pl. -s) 1 hindu spiritual teacher or head of a religious sect. 2 influential or revered teacher. [hindi]

    Gush —v. 1 emit or flow in a sudden and copious stream. 2 speak or behave effusively. —n. 1 sudden or copious stream. 2 effusive manner. [probably imitative]

    Gusher n. 1 oil well from which oil flows without being pumped. 2 effusive person.

    Gusset n. 1 piece let into a garment etc. To strengthen or enlarge it. 2 bracket strengthening an angle of a structure. [french]

    Gust —n. 1 sudden strong rush of wind. 2 burst of rain, smoke, emotion, etc. — v. Blow in gusts. gusty adj. (-ier, -iest). [old norse]

    Gusto n. Zest; enjoyment. [latin gustus taste]

    Gut —n. 1 the intestine. 2 (in pl.) The bowel or entrails. 3 (in pl.) Colloq. Personal courage and determination; perseverance. 4 slang stomach, belly. 5 (in pl.) A contents. B essence. 6 a material for violin strings etc. B material for fishing-lines made from the silk-glands of silkworms. 7 (attrib.) A instinctive (a gut reaction). B fundamental (a gut issue). —v. (-tt-) 1 remove or destroy the internal fittings of (a house etc.). 2 remove the guts of (a fish). hate a person’s guts colloq. Dislike a person intensely. [old english]

    Gutless adj. Colloq. Lacking courage or energy.

    Gutsy adj. (-ier, -iest) colloq. 1 courageous. 2 greedy.

    Gutta-percha n. Tough rubbery substance obtained from latex. [malay]

    Gutted adj. Slang utterly exhausted or fed-up.

    Gutter —n. 1 shallow trough below the eaves of a house, or a channel at the side of a street, to carry off rainwater. 2 (prec. By the) poor or degraded background or environment. 3 open conduit. 4 groove. —v. (of a candle) burn unsteadily and melt away rapidly. [latin gutta drop]

    Guttering n. 1 gutters of a building etc. 2 material for gutters.

    Gutter press n. Sensational newspapers.

    Guttersnipe n. Street urchin.

    Guttural —adj. 1 throaty, harsh-sounding. 2 phonet. (of a consonant) produced in the throat or by the back of the tongue and palate. 3 of the throat. —n. Phonet. Guttural consonant (e.g. K, g). gutturally adv. [latin guttur throat]

    Guv n. Slang = *governor 7. [abbreviation]

    Guy1 —n. 1 colloq. Man; fellow. 2 effigy of guy fawkes burnt on 5 nov. —v. Ridicule. [guy fawkes, name of a conspirator]

    Guy2 —n. Rope or chain to secure a tent or steady a crane-load etc. —v. Secure with a guy or guys. [probably low german]

    Guzzle v. (-ling) eat or drink greedily. [probably french gosiller from gosier throat]

    Gybe v. (us jibe) (-bing) 1 (of a fore-and-aft sail or boom) swing across. 2 cause (a sail) to do this. 3 (of a ship or its crew) change course so that this happens. [dutch]

    Gym n. Colloq. 1 gymnasium. 2 gymnastics. [abbreviation]

    Gymkhana n. Horse-riding competition. [hindustani gendkhana ball-house, assimilated to *gymnasium]

    Gymnasium n. (pl. -s or -sia) room or building equipped for gymnastics. [greek gumnos naked]

    Gymnast n. Person who does gymnastics, esp. An expert.

    Gymnastic adj. Of or involving gymnastics. gymnastically adv.

    Gymnastics n.pl. (also treated as sing.) 1 exercises performed in order to develop or display physical agility. 2 other forms of physical or mental agility.

    Gymnosperm n. Any of a group of plants having seeds unprotected by an ovary, including conifers, cycads, and ginkgos. [greek gumnos naked]

    Gymp var. Of *gimp.

    Gymslip n. Sleeveless tunic worn by schoolgirls.

    Gynae n. (also gynie) colloq. Gynaecology. [abbreviation]

    Gynaecology n. (us gynecology) science of the physiological functions and diseases of women. gynaecological adj. Gynaecologist n. [greek gune gunaik-woman, *-logy]

    Gynecology n. (brit. Gynaecology) science of the physiological functions and diseases of women. gynaecological adj. Gynaecologist n. [greek gune gunaik-woman, *-logy]

    Gypsum n. Mineral used esp. To make plaster of paris. [greek gupsos]

    Gypsy n. (also gipsy) (pl. -ies) member of a nomadic people of europe and n. America, of hindu origin with dark skin and hair. [from *egyptian]

    America, of hindu origin with dark skin and hair. [from *egyptian]

    Gyrate v. (-ting) move in a circle or spiral; revolve, whirl. gyration n. Gyratory adj. [greek: related to *gyro-]

    Gyrfalcon n. Large falcon of the northern hemisphere. [french from old norse]

    Gyro n. (pl. -s) colloq. = *gyroscope. [abbreviation]

    Gyro-comb. Form rotation. [greek guros ring]

    Gyrocompass n. Compass giving true north and bearings from it by means of a gyroscope. Gyroscope n. Rotating wheel whose axis is free to turn but maintains a fixed direction unless perturbed, esp. Used for stabilization or with the compass in an aircraft, ship, etc.

    H

    H1 n. (also h) (pl. Hs or h’s) 1 eighth letter of the alphabet (see *aitch). 2 anything having the form of an h (esp. In comb.: h-girder).

    H2 abbr. (also h.) 1 (of a pencil-lead) hard. 2 (water) hydrant. 3 slang heroin. 4 henry(s).

    H3 symb. Hydrogen.

    H. Abbr. (also h) 1 hecto-. 2 (also h) height. 3 hot. 4 hour(s).

    Ha symb. Hahnium.

    Ha1 (also hah) —int. Expressing surprise, derision, triumph, etc. (cf. *ha ha). — v. In hum and ha: see *hum. [imitative]

    Ha2 abbr. Hectare(s).

    Habeas corpus n. Writ requiring a person to be brought before a judge or into court, esp. To investigate the lawfulness of his or her detention. [latin, = you must have the body]

    Haberdasher n. Dealer in dress accessories and sewing-goods. haberdashery n. (pl. -ies). [probably anglo-french]

    Habiliment n. (usu. In pl.) Archaic clothes. [french from habiller fit out]

    Habit n. 1 settled or regular tendency or practice (often foll. By of + verbal noun: has a habit of ignoring me). 2 practice that is hard to give up. 3 mental constitution or attitude. 4 dress, esp. Of a religious order. [latin habeo habit-have]

    Habitable adj. Suitable for living in. habitability n. [latin habito inhabit]

    Habitat n. Natural home of an animal or plant. [latin, = it dwells]

    Habitation n. 1 inhabiting (fit for habitation). 2 house or home.

    Habit-forming adj. Causing addiction.

    Habitual adj. 1 done constantly or as a habit. 2 regular, usual. 3 given to a (specified) habit (habitual smoker). habitually adv.

    Habituate v. (-ting) (often foll. By to) accustom. habituation n. [latin: related to *habit]

    Habitué n. Habitual visitor or resident. [french]

    Hácek n. Diacritic ( ) placed over a letter to modify its sound in some languages. [czech, diminutive of hák hook]

    Hachures n.pl. Parallel lines on a map indicating the degree of steepness of hills. [french: related to *hatch3]

    Hacienda n. (in spanish-speaking countries) estate with a dwelling-house. [spanish, from latin facienda things to be done]

    Hack1 —v. 1 cut or chop roughly. 2 football etc. Kick the shin of (an opponent). 3 (often foll. By at) deliver cutting blows. 4 cut (one’s way) through foliage etc. 5 colloq. Gain unauthorized access to (data in a computer). 6 slang manage, cope with; tolerate. 7 (as hacking adj.) (of a cough) short, dry, and frequent. —n. 1 kick with the toe of a boot. 2 gash or wound, esp. From a kick. 3 a mattock. B miner’s pick. [old english]

    Hack2 —n. 1 a = *hackney. B horse let out for hire. 2 person hired to do dull routine work, esp. Writing. —attrib. Adj. 1 used as a hack. 2 typical of a hack; commonplace (hack work). —v. Ride on horseback on a road at an ordinary pace. [abbreviation of *hackney]

    Hacker n. 1 person or thing that hacks or cuts roughly. 2 colloq. A person whose hobby is computing or computer programming. B person who uses a computer to gain unauthorized access to a computer network.

    Hackle n. 1 a (in pl.) Erectile hairs on an animal’s neck, rising when it is angry

    or alarmed. B feather(s) on the neck of a domestic cock etc. 2 steel comb for dressing flax. make one’s hackles rise cause one to be angry or indignant. [old english]

    Hackney n. (pl. -s) horse for ordinary riding. [hackney in london]

    Hackney carriage n. Taxi.

    Hackneyed adj. (of a phrase etc.) Made trite by overuse.

    Hacksaw n. Saw with a narrow blade set in a frame, for cutting metal.

    Had past and past part. Of *have.

    Haddock n. (pl. Same) n. Atlantic marine fish used as food. [probably french]

    Hades n. (in greek mythology) the underworld. [greek, originally a name of pluto]

    Hadj var. Of *hajj.

    Hadji var. Of *hajji.

    Hadn’t contr. Had not.

    Haemal adj. (us hem-) of the blood. [greek haima blood]

    Haematite n. (us hem-) a ferric oxide ore. [latin: related to *haemal]

    Haematology n. (us hem-) the study of the blood. haematologist n.

    Haemoglobin n. (us hem-) oxygen-carrying substance in the red blood cells of vertebrates. [from *globulin]

    Haemophilia n. (us hem-) hereditary failure of the blood to clot normally with the tendency to bleed severely from even a slight injury. [greek haima blood, philia loving]

    Haemophiliac n. (us hem-) person with haemophilia.

    Haemorrhage (us hem-) —n. 1 profuse loss of blood from a ruptured blood-vessel. 2 damaging loss, esp. Of people or assets. —v. (-ging) suffer a haemorrhage. [greek haima blood, rhegnumi burst]

    Haemorrhoids n.pl. (us hem-) swollen veins in the wall of the anus; piles. [greek haima blood, -rhoos -flowing]

    Hafnium n. Silvery lustrous metallic element. [latin hafnia copenhagen]

    Haft n. Handle of a dagger, knife, etc. [old english]

    Hag n. 1 ugly old woman. 2 witch. [old english]

    Haggard adj. Looking exhausted and distraught. [french hagard]

    Haggis n. Scottish dish of offal boiled in a sheep’s stomach with suet, oatmeal, etc. [origin unknown]

    Haggle —v. (-ling) (often foll. By about, over) bargain persistently. —n. Haggling. [old norse]

    Hagio-comb. Form of saints. [greek hagios holy]

    Hagiography n. Writing about saints’ lives. hagiographer n.

    Hagiology n. Literature dealing with the lives and legends of saints.

    Hagridden adj. Afflicted by nightmares or anxieties.

    Hah var. Of *ha1.

    Ha ha int. Representing laughter (iron. When spoken). [old english]

    Ha-ha n. Ditch with a wall in it, forming a boundary or fence without interrupting the view. [french]

    Hahnium n. Artificially produced radioactive element. [hahn, name of a chemist]

    Haiku n. (pl. Same) japanese three-part poem of usu. 17 syllables. [japanese]

    Hail1 —n. 1 pellets of frozen rain. 2 (foll. By of) barrage or onslaught. —v. 1 a (prec. By it as subject) hail falls. B come down forcefully. 2 pour down (blows, words, etc.). [old english]

    Hail2 —v. 1 signal to (a taxi etc.) To stop. 2 greet enthusiastically. 3 acclaim (hailed him king). 4 (foll. By from) originate or come (hails from leeds). —int. Archaic or joc. Expressing greeting. —n. Act of hailing. [old norse heill: related to *wassail]

    Hail-fellow-well-met adj. Friendly, esp. Too friendly towards strangers.

    Hail mary n. The ave maria (see *ave).

    Hailstone n. Pellet of hail.

    Hailstorm n. Period of heavy hail.

    Hair n. 1 a any of the fine threadlike strands growing from the skin of mammals, esp. From the human head. B these collectively (has long hair). 2 thing resembling a hair. 3 elongated cell growing from a plant. 4 very small quantity or extent (also attrib.: hair crack). get in a person’s hair colloq. Annoy a person. Keep one’s hair on colloq. Keep calm; not get angry. Let one’s hair down colloq. Enjoy oneself by abandoning restraint. Make one’s hair stand on end colloq. Horrify one. Not turn a hair remain unmoved or unaffected. hairless adj. [old english]

    Hairbrush n. Brush for tidying the hair.

    Haircloth n. Stiff cloth woven from hair.

    Haircut n. 1 act of cutting the hair (needs a haircut). 2 style in which the hair is cut.

    Hairdo n. (pl. -s) style of or act of styling the hair.

    Hairdresser n. 1 person who cuts and styles the hair, esp. For a living. 2 hairdresser’s shop. hairdressing n.

    Hairdrier n. (also hair-dryer) device for drying the hair with warm air.

    Hairgrip n. Flat hairpin with the ends close together.

    Hairline n. 1 edge of a person’s hair, esp. On the forehead. 2 very narrow line, crack (usu. Hairline crack), etc.

    Hairnet n. Piece of netting for confining the hair.

    Hair of the dog n. Further alcoholic drink taken to cure the effects of drink.

    Hairpiece n. Quantity of hair augmenting a person’s natural hair.

    Hairpin n. U-shaped pin for fastening the hair.

    Hairpin bend n. Sharp u-shaped bend in a road.

    Hair-raising adj. Terrifying.

    Hair’s breadth n. A tiny amount or margin.

    Hair shirt n. Shirt of haircloth, worn formerly by penitents and ascetics.

    Hair-slide n. Clip for keeping the hair in place.

    Hair-splitting adj. & n. Quibbling.

    Hairspray n. Liquid sprayed on the hair to keep it in place.

    Hairspring n. Fine spring regulating the balance-wheel in a watch.

    Hairstyle n. Particular way of arranging the hair. hairstylist n.

    Hair-trigger n. Trigger of a firearm set for release at the slightest pressure.

    Hairy adj. (-ier, -iest) 1 covered with hair. 2 slang frightening, dangerous.

    hairiness n.

    Hajj n. (also hadj) islamic pilgrimage to mecca. [arabic]

    Hajji n. (also hadji) (pl. -s) muslim who has made the pilgrimage to mecca. [persian from arabic]

    Haka n. Nz 1 maori ceremonial war dance with chanting. 2 imitation of this by a

    sports team before a match. [maori]

    Hake n. (pl. Same) marine fish resembling the cod, used as food. [origin uncertain]

    Halal n. (also hallal) (often attrib.) Meat from an animal killed according to muslim law. [arabic]

    Halberd n. Hist. Combined spear and battleaxe. [french from german]

    Halcyon adj. Calm, peaceful, happy (halcyon days). [greek, = kingfisher, because it was reputed to calm the sea at midwinter]

    Hale adj. Strong and healthy (esp. In hale and hearty). [var. Of *whole]

    Half —n. (pl. Halves) 1 either of two (esp. Equal) parts into which a thing is divided. 2 colloq. Half a pint, esp. Of beer. 3 sport either of two equal periods of play. 4 colloq. Half-price fare or ticket, esp. For a child. 5 colloq. = half-back. — adj. 1 amounting to half (half the men). 2 forming a half (a half share). —adv. 1 (often in comb.) To the extent of half; partly (half cooked). 2 to some extent (esp. In idiomatic phrases: half dead; am half convinced). 3 (in reckoning time) by the amount of half (an hour etc.) (half past two). at half cock see cock1. By half(prec. By too + adj.) Excessively (too clever by half). By halves imperfectly or incompletely (does nothing by halves). Half a mind see mind. Half the time see time. Not half 1 slang extremely, violently (he didn’t half swear). 2 not nearly (not half long enough). 3 colloq. Not at all (not half bad). [old english]

    Usage in sense 3 of the adverb, the word ‘past’ is often omitted in colloquial

    usage, e.g. Came at half two. In some parts of scotland and ireland this means ‘half past one’.

    Half-and-half adj. Being half one thing and half another.

    Half-back n. Sport player between the forwards and full backs.

    Half-baked adj. Colloq. 1 not thoroughly thought out; foolish. 2 (of enthusiasm etc.) Only partly committed.

    Half board n. Provision of bed, breakfast, and one main meal at a hotel etc.

    Half-breed n. Offens. = *half-caste.

    Half-brother n. Brother with whom one has only one parent in common.

    Half-caste n. Offens. Person of mixed race.

    Half-crown n. (also half a crown) former coin and monetary unit worth 2s. 6d.

    (121/2p).

    Half-cut adj. Slang fairly drunk.

    Half-dozen n. (also half a dozen) colloq. Six, or about six.

    Half-duplex n. Computing (of a circuit) allowing the two-way transmission of signals but not simultaneously.

    Half-hardy adj. (of a plant) able to grow in the open except in severe frost.

    Half-hearted adj. Lacking enthusiasm. half-heartedly adv. Half-heartedness n.

    Half hitch n. Knot formed by passing the end of a rope round its standing part and then through the loop.

    Half holiday n. Half a day as holiday.

    Half-hour n. 1 (also half an hour) period of 30 minutes. 2 point of time 30 minutes after any hour o’clock. half-hourly adj. & adv.

    Half-life n. Time taken for radioactivity etc. To fall to half its original value.

    Half-light n. Dim imperfect light.

    Half-mast n. Position of a flag halfway down a mast, as a mark of respect for a

    Half-mast n. Position of a flag halfway down a mast, as a mark of respect for a deceased person.

    Half measures n.pl. Unsatisfactory compromise or inadequate policy.

    Half moon n. 1 moon when only half its surface is illuminated. 2 time when this occurs. 3 semicircular object.

    Half nelson see *nelson.

    Halfpenny n. (pl. -pennies or -pence) former coin worth half a penny.

    Usage the halfpenny was withdrawn from circulation in 1984.

    Half-sister n. Sister with whom one has only one parent in common.

    Half-term n. Short holiday halfway through a school term.

    Half-timbered adj. Having walls with a timber frame and a brick or plaster filling.

    Half-time n. 1 mid-point of a game or contest. 2 short break occurring at this time.

    Half-title n. Title or short title of a book printed on the front of the leaf preceding the title-page.

    Halftone n. Photographic illustration in which various tones of grey are produced from small and large black dots.

    Half-truth n. Statement that (esp. Deliberately) conveys only part of the truth.

    Half-volley n. (in ball games) playing of the ball as soon as it bounces off the ground.

    Halfway —adv. 1 at a point midway between two others (halfway to rome). 2 to some extent, more or less (is halfway acceptable). —adj. Situated halfway (reached a halfway point).

    Halfway house n. 1 compromise. 2 halfway point in a progression. 3 centre for rehabilitating ex-prisoners etc. 4 inn midway between two towns.

    Halfwit n. Foolish or stupid person. halfwitted adj.

    Halibut n. (pl. Same) large marine flat-fish used as food. [from *holy (perhaps because eaten on holy days), butt flat-fish]

    Halitosis n. = *bad breath. [latin halitus breath]

    Hall n. 1 area into which the front entrance of a house etc. Opens. 2 large room or building for meetings, concerts, etc. 3 large country house or estate. 4 (in full hall of residence) residence for students. 5 (in a college etc.) Dining-room. 6 premises of a guild (fishmongers’ hall). 7 large public room in a palace etc. [old english]

    Hallal var. Of *halal.

    Hallelujah var. Of *alleluia.

    Halliard var. Of *halyard.

    Hallmark —n. 1 mark indicating the standard of gold, silver, and platinum. 2 distinctive feature. —v. Stamp with a hallmark.

    Hallo var. Of *hello.

    Halloo int. Inciting dogs to the chase or calling attention. [perhaps from hallow pursue with shouts]

    Hallow v. 1 make holy, consecrate. 2 honour as holy. [old english: related to *holy]

    Hallowe’en n. Eve of all saints’ day, 31 oct.

    Hallowe’en n. Eve of all saints’ day, 31 oct.

    Hallucinate v. (-ting) experience hallucinations. hallucinant adj. & n. [greek alusso be uneasy]

    Hallucination n. Illusion of seeing or hearing something not actually present.

    hallucinatory adj.

    Hallucinogen n. Drug causing hallucinations. hallucinogenic adj.

    Hallway n. Entrance-hall or corridor.

    Halm var. Of *haulm.

    Halo —n. (pl. -es) 1 disc or circle of light shown surrounding the head of a sacred person. 2 glory associated with an idealized person etc. 3 circle of white or coloured light round a luminous body, esp. The sun or moon. —v. (-es, -ed) surround with a halo. [greek halos threshing-floor, disc of the sun or moon]

    Halogen n. Any of the non-metallic elements (fluorine, chlorine, bromine, iodine, and astatine) which form a salt (e.g. Sodium chloride) when combined with a metal. [greek hals halos salt, *-gen]

    Halon n. Any of various gaseous compounds of carbon, bromine, and other halogens, used to extinguish fires. [related to *halogen]

    Halt1 —n. 1 stop (usu. Temporary) (come to a halt). 2 minor stopping-place on a local railway line. —v. Stop; come or bring to a halt. call a halt (to) decide to stop. [german: related to *hold1]

    Halt2 —v. (esp. As halting adj.) Proceed hesitantly. —adj. Archaic lame. haltingly adv. [old english]

    Halter n. 1 headstall and rope for leading or tying up a horse etc. 2 a strap round the neck holding a dress etc. Up and leaving the shoulders and back bare. B (also halterneck) dress etc. Held by this. [old english]

    Halva n. Confection of sesame flour and honey etc. [yiddish from turkish helva from arabic halwa]

    Halve v. (-ving) 1 divide into two halves or parts; share equally between two. 2 reduce by half. 3 golf use the same number of strokes as one’s opponent in (a hole or match).

    Halves pl. Of *half.

    Halyard n. (also halliard) rope or tackle for raising or lowering a sail, yard, etc. [archaic hale drag forcibly]

    Ham —n. 1 a upper part of a pig’s leg salted and dried or smoked for food. B meat from this. 2 back of the thigh; thigh and buttock. 3 colloq. (often attrib.)

    Inexpert or unsubtle actor or piece of acting. 4 colloq. Operator of an amateur radio station. —v. (-mm-) (usu. In ham it up) colloq. Overact. [old english]

    Hamburger n. Cake of minced beef, usu. Eaten in a soft bread roll. [hamburg in germany]

    Ham-fisted adj. (also ham-handed) colloq. Clumsy.

    Hamitic —n. Group of african languages including ancient egyptian and berber. —adj. Of this group. [from the name ham (gen. 10:6 ff.)]

    Hamlet n. Small village, esp. Without a church. [french hamelet diminutive]

    Hammer —n. 1 a tool with a heavy metal head at right angles to its handle, used for driving nails etc. B similar device, as for exploding the charge in a gun, striking the strings of a piano, etc. 2 auctioneer’s mallet. 3 metal ball attached to a wire for throwing in an athletic contest. —v. 1 a hit or beat with or as with a hammer. B strike loudly. 2 a drive in (nails) with a hammer. B fasten or secure by hammering (hammered the lid down). 3 (usu. Foll. By in) inculcate (ideas, knowledge, etc.) Forcefully or repeatedly. 4 colloq. Defeat utterly; beat up. 5 (foll. By at, away at) work hard or persistently at. come under the hammer be sold at auction. Hammer out 1 make flat or smooth by hammering. 2 work out details of (a plan etc.) Laboriously. 3 play (a tune, esp. On the piano) loudly or clumsily. hammering n. (esp. In sense 4 of v.). [old english]

    Hammer and sickle n. Symbols of the industrial worker and peasant used as an emblem of the former ussr and international communism.

    Hammer and tongs adv. Colloq. With great vigour and commotion.

    Hammerhead n. Shark with a flattened head and with eyes in lateral extensions of it.

    Hammerlock n. Wrestling hold in which the arm is twisted and bent behind the back.

    Hammer-toe n. Toe bent permanently downwards.

    Hammock n. Bed of canvas or rope network suspended by cords at the ends. [spanish from carib]

    Hammy adj. (-ier, -iest) colloq. Over-theatrical.

    Hamper1 n. Large basket, usu. With a hinged lid and containing food. [french hanap goblet]

    Hamper2 v. Prevent the free movement of; hinder. [origin unknown]

    Hamster n. Mouselike rodent with a short tail and large cheek-pouches for storing food. [german]

    Hamstring —n. 1 each of five tendons at the back of the knee. 2 great tendon at the back of the hock in quadrupeds. —v. (past and past part. -strung or -stringed)

    the back of the hock in quadrupeds. —v. (past and past part. -strung or -stringed) 1 cripple by cutting the hamstrings of (a person or animal). 2 impair the activity or efficiency of.

    Hand —n. 1 a end part of the human arm beyond the wrist. B (in other primates) end part of a forelimb. 2 a (often in pl.) Control, management, custody, disposal (is in good hands). B agency or influence (suffered at their hands). C share in an action; active support (had a hand in it; give me a hand). 3 thing like a hand, esp. The pointer of a clock. 4 right or left side or direction relative to a person or thing. 5 a skill (has a hand for making pastry). B person skilful in some respect.

    6 person who does or makes something, esp. Distinctively (picture by the same hand). 7 person’s writing or its style. 8 person etc. As a source (at first hand). 9 pledge of marriage. 10 manual worker, esp. At a factory or farm; member of a ship’s crew. 11 a playing-cards dealt to a player. B round of play. 12 colloq. Burst of applause. 13 unit of measure of a horse’s height, 4 inches (10.16 cm).

    14 forehock of pork. 15 (attrib.) A operated by or held in the hand (hand-drill). B done by hand, not machine (hand-knitted). —v. 1 (foll. By in, to, over, etc.) Deliver; transfer by hand or otherwise. 2 colloq. Give away too readily (handed them the advantage). all hands entire crew or workforce. At hand 1 close by. 2 about to happen. By hand 1 by a person, not a machine. 2 delivered privately, not by post. From hand to mouth satisfying only one’s immediate needs. Get (or have or keep) one’s hand in become (or be or remain) in practice. Hand down 1 pass ownership or use of to a later generation etc. 2 a transmit (a decision) from a higher court etc. B us express (an opinion or verdict). Hand it to colloq. Award deserved praise to. Hand on pass (a thing) to the next in a series. Hand out 1 serve, distribute.

    Handbag n. Small bag carried esp. By a woman.

    Handball n. 1 game with a ball thrown by hand among players or against a wall.

    2 football intentional touching of the ball, constituting a foul.

    Handbell n. Small bell for ringing by hand, esp. One of a set.

    Handbill n. Printed notice distributed by hand.

    Handbook n. Short manual or guidebook.

    Handbrake n. Brake operated by hand.

    H. & c. Abbr. Hot and cold (water).

    Handcart n. Small cart pushed or drawn by hand.

    Handclap n. Clapping of the hands.

    Handcraft —n. = *handicraft. —v. Make by handicraft.

    Handcuff —n. Each of a pair of linked metal rings for securing a prisoner’s wrist(s). —v. Put handcuffs on.

    Handful n. (pl. -s) 1 quantity that fills the hand. 2 small number or amount. 3 colloq. Troublesome person or task.

    Hand-grenade see *grenade.

    Handgun n. Small firearm held in and fired with one hand.

    Handhold n. Something for the hand to grip on (in climbing etc.).

    Handicap —n. 1 physical or mental disability. 2 thing that makes progress or success difficult. 3 a disadvantage imposed on a superior competitor to make chances more equal. B race etc. In which this is imposed. 4 number of strokes by which a golfer normally exceeds par for a course. —v. (-pp-) 1 impose a handicap on. 2 place at a disadvantage. [hand i’ (= in) cap describing a kind of sporting lottery]

    Handicapped adj. Suffering from a physical or mental disability.

    Handicraft n. Work requiring manual and artistic skill. [from earlier *handcraft]

    Hand in glove adj. In collusion or association.

    Hand in hand adv. 1 in close association (power and money go hand in hand). 2 (hand-in-hand) holding hands.

    Handiwork n. Work done or a thing made by hand, or by a particular person. [old english]

    Handkerchief n. (pl. -s or -chieves) square of cloth for wiping one’s nose etc.

    Handle —n. 1 part by which a thing is held, carried, or controlled. 2 fact that may be taken advantage of (gave a handle to his critics). 3 colloq. Personal title. —v. (-ling) 1 touch, feel, operate, or move with the hands. 2 manage, deal with (can handle people). 3 deal in (goods). 4 treat (a subject). [old english: related to *hand]

    Handlebar n. (usu. In pl.) Steering-bar of a bicycle etc.

    Handlebar moustache n. Thick moustache with curved ends.

    Handler n. 1 person who handles or deals in something. 2 person who trains and looks after an animal (esp. A police dog).

    Handmade adj. Made by hand (as opposed to machine).

    Handmaid n. (also handmaiden) archaic female servant.

    Hand-me-down n. Article of clothing etc. Passed on from another person.

    Hand-out n. 1 thing given free to a needy person. 2 statement given to the press etc.; notes given out in a class etc.

    Hand-over n. Handing over.

    Hand-over-fist adv. Colloq. With rapid progress.

    Hand-pick v. Choose carefully or personally.

    Handrail n. Narrow rail for holding as a support.

    Handsaw n. Saw worked by one hand.

    Handset n. Telephone mouthpiece and earpiece as one unit.

    Handshake n. Clasping of a person’s hand as a greeting etc.

    Hands off —int. Warning not to touch or interfere with something. —adj. & adv.

    (also hands-off) not requiring the manual use of controls.

    Handsome adj. (handsomer, handsomest) 1 (usu. Of a man) good-looking. 2 (of an object) imposing, attractive. 3 a generous, liberal (handsome present). B (of a price, fortune, etc.) Considerable. handsomely adv.

    Hands on (also hands-on) —adj. & adv. Of or requiring personal operation at a keyboard. —attrib. Adj. Practical rather than theoretical (lacks hands-on experience).

    experience).

    Handspring n. Gymnastic feat consisting of a handstand, somersaulting, and landing in a standing position.

    Handstand n. Supporting oneself on one’s hands with one’s feet in the air.

    Hand-to-hand adj. (of fighting) at close quarters.

    Handwork n. Work done with the hands. handworked adj.

    Handwriting n. 1 writing done with a pen, pencil, etc. 2 person’s particular style of this. handwritten adj.

    Handy adj. (-ier, -iest) 1 convenient to handle or use; useful. 2 ready to hand. 3 clever with the hands. handily adv. Handiness n.

    Handyman n. Person able to do occasional repairs etc.; odd-job man.

    Hang —v. (past and past part. Hung except in sense 7) 1 a secure or cause to be supported from above, esp. With the lower part free. B (foll. By up, on, on to, etc.) Attach by suspending from the top. 2 set up (a door etc.) On hinges. 3 place (a picture) on a wall or in an exhibition. 4 attach (wallpaper) to a wall. 5 (foll. By on) colloq. Blame (a thing) on (a person) (can’t hang that on me). 6 (foll. By with) decorate by suspending pictures etc. (hall hung with tapestries). 7 (past and past part. Hanged) a suspend or be suspended by the neck with a noosed rope until dead, esp. As a form of capital punishment. B as a mild oath (hang the

    expense). 8 let droop (hang one’s head). 9 suspend (meat or game) from a hook and leave until dry, tender, or high. 10 be or remain hung (in various senses). 11 remain static in the air. 12 (often foll. By over) be present or imminent, esp.

    Oppressively or threateningly (a hush hung over the room). 13 (foll. By on) a be contingent or dependent on (everything hangs on his reply). B listen closely to (hangs on my every word). —n. Way a thing hangs or falls. get the hang of colloq. Understand the technique or meaning of. Hang about (or around) 1 a stand about or spend time aimlessly; not move away. B linger near (a person or place). 2 (often foll. By with) colloq. Associate with. Hang back show reluctance to act or move. Hang fire be slow in taking action or in progressing. Hang heavily (or heavy) (of time) seem to pass slowly. Hang in us colloq. 1 persist, persevere. 2 linger. Hang on 1 (often foll. By to) continue to hold or grasp. 2 (foll. By to) retain; fail to give back. 3 colloq. A wait for a short time. B (in telephoning) not ring off during a pause in the conversation. 4 colloq. Continue; persevere. Hang out 1 suspend from a window, clothes-line, etc. 2 a protrude downwards (shirt hanging out). B (foll. By of) lean out of (a window etc.). 3 slang frequent or live in a place. Hang together 1 make sense. 2 remain associated. Hang up 1 hang from a hook etc. 2 (often foll. By on) end a telephone conversation by replacing the receiver (he hung up on me). 3 (usu. In passive, foll. By on) slang be a psychological problem or obsession for (is hung up on her father). Not care (or give) a hang colloq. Not care at all. [old english]

    Hangar n. Building for housing aircraft etc. [french]

    Hangdog adj. Shamefaced.

    Hanger n. 1 person or thing that hangs. 2 (in full coat-hanger) shaped piece of wood etc. For hanging clothes on.

    Hanger-on n. (pl. Hangers-on) follower or dependant, esp. An unwelcome one.

    Hang-glider n. Glider with a fabric wing on a light frame, from which the operator is suspended. hang-glide v. Hang-gliding n.

    Hanging n. 1 execution by suspending by the neck. 2 (usu. In pl.) Draperies hung on a wall etc.

    Hangman n. 1 executioner who hangs condemned persons. 2 word-game for two players, with failed guesses recorded by drawing a representation of a gallows.

    Hangnail n. = *agnail.

    Hang-out n. Slang place frequented by a person; haunt.

    Hangover n. 1 severe headache etc. From drinking too much alcohol. 2 survival from the past.

    Hang-up n. Slang emotional problem or inhibition.

    Hank n. Coil or skein of wool or thread etc. [old norse]

    Hanker v. (foll. By for, after, or to + infin.) Long for; crave. hankering n. [from obsolete hank]

    Hanky n. (also hankie) (pl. -ies) colloq. Handkerchief. [abbreviation]

    Hanky n. (also hankie) (pl. -ies) colloq. Handkerchief. [abbreviation]

    Hanky-panky n. Slang 1 naughtiness, esp. Sexual. 2 double-dealing; trickery. [origin unknown]

    Hanoverian adj. Of british sovereigns from george i to victoria. [hanover in germany]

    Hansard n. Official verbatim record of debates in the british parliament. [hansard, name of its first printer]

    Hansen’s disease n. Leprosy. [hansen, name of a physician]

    Hansom n. (in full hansom cab) hist. Two-wheeled horse-drawn cab. [hansom, name of an architect]

    Hanukkah n. Jewish festival of lights, commemorating the purification of the temple in 165 bc. [hebrew hanukkah consecration]

    Haphazard adj. Done etc. By chance; random. haphazardly adv. [archaic hap chance, luck, from old norse happ]

    Hapless adj. Unlucky.

    Haploid adj. (of an organism or cell) with a single set of chromosomes. [greek haplous single, eidos form]

    Happen v. 1 occur (by chance or otherwise). 2 (foll. By to + infin.) Have the (good or bad) fortune to (i happened to meet her). 3 (foll. By to) be the (esp. Unwelcome) fate or experience of (what happened to you?). 4 (foll. By on) encounter or discover by chance. as it happens in fact; in reality. [related to *haphazard]

    Happening n. 1 event. 2 improvised or spontaneous theatrical etc. Performance.

    Happy adj. (-ier, -iest) 1 feeling or showing pleasure or contentment. 2 a fortunate; characterized by happiness. B (of words, behaviour, etc.) Apt, pleasing. happily adv. Happiness n.

    Happy-go-lucky adj. Cheerfully casual.

    Happy hour n. Time of the day when goods, esp. Drinks, are sold at reduced prices.

    Happy medium n. Compromise; avoidance of extremes.

    Hara-kiri n. Ritual suicide by disembowelment with a sword, formerly practised by samurai to avoid dishonour. [japanese hara belly, kiri cutting]

    Harangue —n. Lengthy and earnest speech. —v. (-guing) make a harangue to; lecture. [french arenge from medieval latin]

    Harass v. 1 trouble and annoy continually. 2 make repeated attacks on. harassment n. [french]

    Usage the second pronunciation given, with the stress on the second syllable, is common, but is considered incorrect by some people.

    Harbinger n. 1 person or thing that announces or signals the approach of another. 2 forerunner. [germanic: related to *harbour]

    Harbor (brit. Harbour) —n. 1 place of shelter for ships. 2 shelter; refuge. —v. 1 give shelter to (esp. A criminal). 2 keep in one’s mind (esp. Resentment etc.). [old english, = army shelter]

    Harbour (us harbor) —n. 1 place of shelter for ships. 2 shelter; refuge. —v. 1 give shelter to (esp. A criminal). 2 keep in one’s mind (esp. Resentment etc.). [old english, = army shelter]

    Harbour-master n. Official in charge of a harbour.

    Hard —adj. 1 (of a substance etc.) Firm and solid. 2 a difficult to understand, explain, or accomplish. B (foll. By to + infin.) Not easy to (hard to please). 3 difficult to bear (a hard life). 4 unfeeling; severely critical. 5 (of a season or the weather) severe. 6 unpleasant to the senses, harsh (hard colours). 7 a strenuous, enthusiastic, intense (a hard worker). B severe, uncompromising (a hard bargain). C polit. Extreme; most radical (the hard right). 8 a (of liquor) strongly alcoholic. B (of drugs) potent and addictive. C (of pornography) highly obscene.

    9 (of water) containing mineral salts that make lathering difficult. 10 established; not disputable (hard facts). 11 (of currency, prices, etc.) High; not likely to fall in value. 12 (of a consonant) guttural (as c in cat, g in go). —adv. Strenuously, intensely, copiously (try hard; raining hard). be hard on 1 be difficult for. 2 be severe in one’s treatment or criticism of. 3 be unpleasant to (the senses). Be hard put to it (usu. Foll. By to + infin.) Find it difficult. Hard by close by. Hard on (or upon) close to in pursuit etc. hardish adj. Hardness n. [old english]

    Hard and fast adj. (of a rule or distinction) definite, unalterable, strict.

    Hardback —adj. Bound in boards covered with cloth etc. —n. Hardback book.

    Hardbitten adj. Colloq. Tough and cynical.

    Hardboard n. Stiff board made of compressed and treated wood pulp.

    Hard-boiled adj. 1 (of an egg) boiled until the white and yolk are solid. 2 colloq.

    (of a person) tough, shrewd.

    Hard cash n. Negotiable coins and banknotes.

    Hard copy n. Material printed by a computer on paper.

    Hardcore n. Solid material, esp. Rubble, as road-foundation.

    Hard core n. 1 irreducible nucleus. 2 colloq. A the most committed members of a society etc. B conservative or reactionary minority (see also *hardcore).

    Hardcore adj. 1 forming a nucleus. 2 blatant, uncompromising. 3 (of pornography) explicit, obscene.

    Hard disk n. Computing large-capacity rigid usu. Magnetic storage disk.

    Hard-done-by adj. Unfairly treated.

    Harden v. 1 make or become hard or harder. 2 become, or make (one’s attitude etc.), less sympathetic. 3 (of prices etc.) Cease to fall or fluctuate. harden off inure (a plant) to the cold by gradually increasing its exposure.

    Hardening of the arteries n. = *arteriosclerosis.

    Hard-headed adj. Practical; not sentimental. hard-headedness n.

    Hard-hearted adj. Unfeeling. hard-heartedness n.

    Hardihood n. Boldness, daring.

    Hard labour n. Heavy manual work as a punishment, esp. In a prison.

    Hard line n. Unyielding adherence to a policy. hard-liner n.

    Hard luck n. Worse fortune than one deserves.

    Hardly adv. 1 scarcely; only just (hardly knew me). 2 only with difficulty (can hardly see). 3 surely not (can hardly have realised). hardly any almost no; almost none. Hardly ever very seldom.

    Hard-nosed adj. Colloq. Realistic, uncompromising.

    Hard of hearing adj. Somewhat deaf.

    Hard-on n. Coarse slang erection of the penis.

    Hard pad n. Form of distemper in dogs etc.

    Hard palate n. Front part of the palate.

    Hard-pressed adj. 1 closely pursued. 2 burdened with urgent business.

    Hard roe see *roe1.

    Hard sell n. Aggressive salesmanship.

    Hardship n. 1 severe suffering or privation. 2 circumstance causing this.

    Hard shoulder n. Hard surface alongside a motorway for stopping on in an emergency.

    Hard tack n. Naut. Ship’s biscuit.

    Hardtop n. Car with a rigid (usu. Detachable) roof.

    Hard up adj. Short of money.

    Hardware n. 1 tools and household articles of metal etc. 2 heavy machinery or armaments. 3 mechanical and electronic components of a computer etc.

    Hard-wearing adj. Able to stand much wear.

    Hardwood n. Wood from a deciduous broad-leaved tree.

    Hard-working adj. Diligent.

    Hardy adj. (-ier, -iest) 1 robust; capable of enduring difficult conditions. 2 (of a plant) able to grow in the open air all year. hardiness n. [french hardi made bold]

    Hardy annual n. Annual plant that may be sown in the open.

    Hare —n. Mammal like a large rabbit, with long ears, short tail, and long hind legs. —v. (-ring) run rapidly. [old english]

    Harebell n. Plant with pale-blue bell-shaped flowers.

    Hare-brained adj. Rash, wild.

    Harelip n. Often offens. Congenital cleft in the upper lip.

    Harem n. 1 women of a muslim household. 2 their quarters. [arabic, = sanctuary]

    Haricot n. (in full haricot bean) variety of french bean with small white seeds dried and used as a vegetable. [french]

    Hark v. (usu. In imper.) Archaic listen attentively. hark back revert to earlier topic. [old english]

    Harlequin —n. (harlequin) name of a mute character in pantomime, usu. Masked and dressed in a diamond-patterned costume. —attrib. Adj. In varied colours. [french]

    Harlequinade n. 1 part of a pantomime featuring harlequin. 2 piece of buffoonery.

    Harlot n. Archaic prostitute. harlotry n. [french, = knave]

    Harm —n. Hurt, damage. —v. Cause harm to. out of harm’s way in safety. [old english]

    Harmful adj. Causing or likely to cause harm. harmfully adv. Harmfulness n.

    Harmless adj. 1 not able or likely to cause harm. 2 inoffensive. harmlessly adv.

    Harmlessness n.

    Harmonic —adj. Of or relating to harmony; harmonious. —n. Mus. Overtone accompanying (and forming a note with) a fundamental at a fixed interval. harmonically adv.

    Harmonica n. Small rectangular musical instrument played by blowing and sucking air through it.

    Harmonious adj. 1 sweet-sounding; tuneful. 2 forming a pleasing or consistent whole. 3 free from disagreement or dissent. harmoniously adv.

    Harmonium n. Keyboard instrument in which the notes are produced by air driven through metal reeds by foot-operated bellows. [latin: related to *harmony]

    Harmonize v. (also -ise) (-zing or -sing) 1 add notes to (a melody) to produce harmony. 2 bring into or be in harmony. 3 make or form a pleasing or consistent whole. harmonization n.

    Harmony n. (pl. -ies) 1 combination of simultaneously sounded musical notes to produce chords and chord progressions, esp. As creating a pleasing effect. 2 a apt or aesthetic arrangement of parts. B pleasing effect of this. 3 agreement, concord. in harmony 1 in agreement. 2 (of singing etc.) Producing chords; not discordant. [greek harmonia joining]

    Harness —n. 1 equipment of straps etc. By which a horse is fastened to a cart etc. And controlled. 2 similar arrangement for fastening a thing to a person’sbody. —v. 1 a put a harness on. B (foll. By to) attach by harness to. 2 make use of (natural resources), esp. To produce energy. in harness in the routine of daily work. [french harneis military equipment]

    Harp —n. Large upright stringed instrument plucked with the fingers. —v. (foll. By on, on about) talk repeatedly and tediously about. harpist n. [old english]

    Harpoon —n. Barbed spearlike missile with a rope attached, for catching whales etc. —v. Spear with a harpoon. [greek harpe sickle]

    Harpsichord n. Keyboard instrument with horizontal strings plucked

    mechanically. harpsichordist n. [latin harpa harp, chorda string]

    Harpy n. (pl. -ies) 1 mythological monster with a woman’s head and body and a bird’s wings and claws. 2 grasping unscrupulous person. [greek harpuiai snatchers]

    Harridan n. Bad-tempered old woman. [origin uncertain]

    Harrier n. 1 hound used for hunting hares. 2 group of cross-country runners. 3 hawklike bird of prey. [from *hare, *harry]

    Harrow —n. Heavy frame with iron teeth dragged over ploughed land to break up clods etc. —v. 1 draw a harrow over (land). 2 (usu. As harrowing adj.) Distress greatly. [old norse hervi]

    Harry v. (-ies, -ied) 1 ravage or despoil. 2 harass. [old english]

    Harsh adj. 1 unpleasantly rough or sharp, esp. To the senses. 2 severe, cruel. harshen v. Harshly adv. Harshness n. [low german]

    Hart n. (pl. Same or -s) male of the (esp. Red) deer, esp. After its 5th year. [old english]

    Hartebeest n. Large african antelope with curving horns. [afrikaans]

    Harum-scarum colloq. —adj. Wild and reckless. —n. Such a person. [rhyming formation on *hare, *scare]

    Harvest —n. 1 a process of gathering in crops etc. B season of this. 2 season’s yield. 3 product of any action. —v. Gather as harvest, reap. [old english]

    Harvester n. 1 reaper. 2 reaping-machine, esp. With sheaf-binding.

    Harvest festival n. Christian thanksgiving service for the harvest.

    Harvest moon n. Full moon nearest to the autumn equinox (22 or 23 sept.).

    Harvest mouse n. Small mouse nesting in the stalks of growing grain.

    Has 3rd sing. Present of *have.

    Has-been n. Colloq. Person or thing of declined importance.

    Hash1 —n. 1 dish of cooked meat cut into small pieces and reheated. 2 a mixture; jumble. B mess. 3 recycled material. —v. (often foll. By up) recycle (old material). make a hash of colloq. Make a mess of; bungle.

    Hash2 n. Colloq. Hashish. [abbreviation]

    Hashish n. Resinous product of hemp, smoked or chewed as a narcotic. [arabic]

    Haslet n. Pieces of (esp. Pig’s) offal cooked together, usu. As a meat loaf. [french hastelet]

    Hasn’t contr. Has not.

    Hasp n. Hinged metal clasp fitting over a staple and secured by a padlock. [old english]

    Hassle colloq. —n. Trouble; problem; argument. —v. (-ling) harass, annoy. [originally a dial. Word]

    Hassock n. Thick firm cushion for kneeling on. [old english]

    Haste —n. Urgency of movement or action; excessive hurry. —v. (-ting) archaic

    *hasten 1. in haste quickly, hurriedly. Make haste hurry; be quick. [french from germanic]

    Hasten v. 1 make haste; hurry. 2 cause to occur or be ready or be done sooner.

    Hasty adj. (-ier, -iest) 1 hurried; acting too quickly. 2 said, made, or done too quickly or too soon; rash. hastily adv. Hastiness n.

    Hat n. 1 (esp. Outdoor) covering for the head. 2 colloq. Person’s present capacity (wearing his managerial hat). keep it under one’s hat colloq. Keep it secret. Pass the hat round collect contributions of money. Take one’s hat off to colloq. Acknowledge admiration for. [old english]

    Hatband n. Band of ribbon etc. Round a hat above the brim.

    Hatbox n. Box to hold a hat, esp. For travelling.

    Hatch1 n. 1 opening in a wall between a kitchen and dining-room for serving food. 2 opening or door in an aircraft etc. 3 a = *hatchway. B cover for this. [old english]

    Hatch2 —v. 1 a (often foll. By out) (of a young bird or fish etc.) Emerge from the egg. B (of an egg) produce a young animal. 2 incubate (an egg). 3 (also foll. By up) devise (a plot etc.). —n. 1 act of hatching. 2 brood hatched. [earlier hacche, from germanic]

    Hatch3 v. Mark with close parallel lines. hatching n. [french hacher: related to *hash1]

    Hatchback n. Car with a sloping back hinged at the top to form a door.

    Hatchet n. Light short-handled axe. [french hachette]

    Hatchet man n. Colloq. Person hired to kill, dismiss, or otherwise harm another.

    Hatchway n. Opening in a ship’s deck for raising and lowering cargo.

    Hate —v. (-ting) 1 dislike intensely. 2 colloq. A dislike. B be reluctant (to do something) (i hate to disturb you; i hate fighting). —n. 1 hatred. 2 colloq. Hated person or thing. [old english]

    Hateful adj. Arousing hatred.

    Hatpin n. Long pin for securing a hat to the hair.

    Hatred n. Extreme dislike or ill will.

    Hatstand n. Stand with hooks for hanging hats etc. On.

    Hatter n. Maker or seller of hats.

    Hat trick n. 1 cricket taking of three wickets by the same bowler with three successive balls. 2 three consecutive successes etc.

    Haughty adj. (-ier, -iest) arrogant and disdainful. haughtily adv. Haughtiness n.

    Haughty adj. (-ier, -iest) arrogant and disdainful. haughtily adv. Haughtiness n. [haught, haut from french, = high]

    Haul —v. 1 pull or drag forcibly. 2 transport by lorry, cart, etc. 3 turn a ship’s course. 4 colloq. (usu. Foll. By up) bring for reprimand or trial. —n. 1 hauling. 2 amount gained or acquired. 3 distance to be traversed (a short haul). haul over the coals see *coal. [french haler from old norse hala]

    Haulage n. 1 commercial transport of goods. 2 charge for this.

    Haulier n. Person or firm engaged in the transport of goods.

    Haulm n. (also halm) 1 stalk or stem. 2 stalks or stems of peas, beans, etc., collectively. [old english]

    Haunch n. 1 fleshy part of the buttock with the thigh. 2 leg and loin of a deer etc. As food. [french from germanic]

    Haunt —v. 1 (of a ghost) visit (a place) regularly. 2 frequent (a place). 3 linger in the mind of. —n. Place frequented by a person or animal. [french from germanic]

    Haunting adj. (of a memory, melody, etc.) Tending to linger in the mind; poignant, evocative.

    Haute couture n. High fashion; leading fashion houses or their products. [french]

    Haute cuisine n. High-class cookery. [french]

    Hauteur n. Haughtiness. [french]

    Have —v. (-ving; 3rd sing. Present has; past and past part. Had) 1 as an auxiliary verb with past part. Or ellipt., to form the perfect, pluperfect, and future perfect tenses, and the conditional mood (has, had, will have, seen; had i known, i would have gone; yes, i have). 2 own or be able to use; be provided with (has a car; had no time). 3 hold in a certain relationship (has a sister; had no equals). 4 contain as a part or quality (box has a lid; has big eyes). 5 a experience (had a good time, a shock, a pain). B be subjected to a specified state (had my car stolen; book has a page missing). C cause (a person or thing) to be in a particular state or take particular action (had him sacked; had us worried; had my hair cut; had a copy made; had them to stay). 6 a engage in (an activity) (have an argument, sex). B hold (a meeting, party, etc.). 7 eat or drink (had a beer). 8 (usu. In neg.) Accept or tolerate; permit to (i won’t have it; won’t have you say that). 9 a feel (have no doubt; has nothing against me). B show (mercy, pity, etc.). C (foll. By to + infin.) Show by action that one is influenced by (a feeling, quality, etc.) (have the sense to stop). 10 a give birth to (offspring). B conceive mentally (an idea etc.). 11 receive, obtain (had a letter from him; not a ticket to be had). 12 be burdened with or committed to (has a job to do). 13 a have obtained (a qualification) (has six o levels). B know (a language) (has no latin). 14 slang a get the better of (i had him there). B (usu. In passive) cheat, deceive (you were had). 15 coarse slang have sexual intercourse with. —n. 1 (usu. In pl.) Colloq. Person with wealth or resources. 2 slang swindle. had best see best. Had better see better. Have got to colloq. = have to. Have had it colloq. 1 have missed one’schance. 2 have passed one’s prime. 3 have been killed, defeated, etc. Have it 1 (foll. By that) maintain that. 2 win a decision in a vote etc. 3 colloq. Have found the answer etc. Have it away (or off) coarse slang have sexual intercourse. Have it in for colloq. Be hostile or ill-disposed towards. Have it out (often foll. By with) colloq. Attempt to settle a dispute by argument. Have on 1 wear (clothes).

    2 have (an engagement). 3 colloq. Tease, hoax. Have to be obliged to, must. Have up colloq. Bring (a person) before a judge, interviewer, etc. [old english]

    Haven n. 1 refuge. 2 harbour, port. [old english]

    Have-not n. (usu. In pl.) Colloq. Person lacking wealth or resources.

    Haven’t contr. Have not.

    Haver v. 1 vacillate, hesitate. 2 dial. Talk foolishly. [origin unknown]

    Haversack n. Stout canvas bag carried on the back or over the shoulder. [german habersack, = oats-sack]

    Havoc n. Widespread destruction; great disorder. [french havo(t)]

    Haw1 n. Hawthorn berry. [old english]

    Haw2 see *hum.

    Hawfinch n. Large finch with a thick beak for cracking seeds. [from *haw1, *finch]

    Hawk1 —n. 1 bird of prey with a curved beak, rounded short wings, and a long tail. 2 polit. Person who advocates aggressive policies. —v. Hunt with a hawk.

    tail. 2 polit. Person who advocates aggressive policies. —v. Hunt with a hawk. hawkish adj. [old english]

    Hawk2 v. Carry about or offer (goods) for sale. [back-formation from *hawker]

    Hawk3 v. 1 clear the throat noisily. 2 (foll. By up) bring (phlegm etc.) Up from the throat. [imitative]

    Hawker n. Person who travels about selling goods. [low german or dutch]

    Hawk-eyed adj. Keen-sighted.

    Hawser n. Thick rope or cable for mooring or towing a ship. [french, haucier hoist, from latin altus high]

    Hawthorn n. Thorny shrub with small dark-red berries. [related to *haw1]

    Health service n. Public service providing medical care.

    Health visitor n. Trained nurse who visits mothers and babies, or the sick or elderly, at home.

    Healthy adj. (-ier, -iest) 1 having, showing, or promoting good health. 2 indicative of (esp. Moral or financial) health (a healthy sign). 3 substantial (won by a healthy 40 seconds). healthily adv. Healthiness n.

    Heap —n. 1 disorderly pile. 2 (esp. In pl.) Colloq. Large number or amount. 3 slang dilapidated vehicle. —v. 1 (foll. By up, together, etc.) Collect or be collected in a heap. 2 (foll. By with) load copiously with. 3 (foll. By on, upon) give or offer copiously (heaped insults on them). [old english]

    Hear v. (past and past part. Heard) 1 (also absol.) Perceive with the ear. 2 listen to (heard them on the radio). 3 listen judicially to (a case etc.). 4 be told or informed. 5 (foll. By from) be contacted by, esp. By letter or telephone. 6 be ready to obey (an order). 7 grant (a prayer). have heard of be aware of the existence of. Hear! Hear! Int. Expressing agreement. Hear a person out listen to all a person says. Will not hear of will not allow. hearer n. [old english]

    Hearing n. 1 faculty of perceiving sounds. 2 range within which sounds may be heard (within hearing). 3 opportunity to state one’s case (a fair hearing). 4 trial of a case before a court.

    Hearing-aid n. Small device to amplify sound, worn by a partially deaf person.

    Hearken v. Archaic (often foll. By to) listen. [old english: related to *hark]

    Hearsay n. Rumour, gossip.

    Hearse n. Vehicle for conveying the coffin at a funeral. [french herse harrow, from latin hirpex large rake]

    Heart n. 1 hollow muscular organ maintaining the circulation of blood by rhythmic contraction and dilation. 2 region of the heart; the breast. 3 a centre of

    thought, feeling, and emotion (esp. Love). B capacity for feeling emotion (has no heart). 4 a courage or enthusiasm (take heart). B mood or feeling (change of heart). 5 a central or innermost part of something. B essence (heart of the matter). 6 compact tender inner part of a lettuce etc. 7 a heart-shaped thing. B conventional representation of a heart with two equal curves meeting at a point at the bottom and a cusp at the top. 8 a playing-card of the suit denoted by a red figure of a heart. B (in pl.) This suit. at heart 1 in one’s inmost feelings. 2 basically. Break a person’s heart overwhelm a person with sorrow. By heart from memory. Give (or lose) one’s heart (often foll. By to) fall in love (with). Have the heart (usu. With neg.; foll. By to + infin.) Be insensitive or hard-hearted enough (didn’t have the heart to ask him). Take to heart be much affected by. To one’s heart’s content see *content1. With all one’s heart sincerely; with all goodwill. [old english]

    Heartache n. Mental anguish.

    Heart attack n. Sudden occurrence of coronary thrombosis.

    Heartbeat n. Pulsation of the heart.

    Heartbreak n. Overwhelming distress. heartbreaking adj. Heartbroken adj.

    Heartburn n. Burning sensation in the chest from indigestion.

    Hearten v. Make or become more cheerful. heartening adj.

    Heart failure n. Failure of the heart to function properly, esp. As a cause of

    death.

    Heartfelt adj. Sincere; deeply felt.

    Hearth n. 1 floor of a fireplace. 2 the home. [old english]

    Hearthrug n. Rug laid before a fireplace.

    Heartily adv. 1 in a hearty manner. 2 very (am heartily sick of it).

    Heartland n. Central part of an area.

    Heartless adj. Unfeeling, pitiless. heartlessly adv.

    Heart-lung machine n. Machine that temporarily takes over the functions of the heart and lungs.

    Heart-rending adj. Very distressing.

    Heart-searching n. Examination of one’s own feelings and motives.

    Heartsick adj. Despondent.

    Heartstrings n.pl. One’s deepest feelings.

    Heartthrob n. Colloq. Person for whom one has (esp. Immature) romantic feelings.

    Heart-to-heart —attrib. Adj. (of a conversation etc.) Candid, intimate. —n.

    Candid or personal conversation.

    Heart-warming adj. Emotionally rewarding or uplifting.

    Heartwood n. Dense inner part of a tree-trunk, yielding the hardest timber.

    Hearty adj. (-ier, -iest) 1 strong, vigorous. 2 (of a meal or appetite) large. 3 warm, friendly. heartiness n.

    Heat —n. 1 condition of being hot. 2 physics form of energy arising from the motion of bodies’ molecules. 3 hot weather. 4 warmth of feeling; anger or excitement. 5 (foll. By of) most intense part or period of activity (heat of battle). 6 (usu. Preliminary or trial) round in a race etc. —v. 1 make or become hot or warm. 2 inflame. on heat (of mammals, esp. Females) sexually receptive. [old english]

    Heated adj. Angry; impassioned. heatedly adv.

    Heater n. Stove or other heating device.

    Heath n. 1 area of flattish uncultivated land with low shrubs. 2 plant growing on a heath, esp. Heather. [old english]

    Heathen —n. 1 person not belonging to a predominant religion, esp. Not a christian, jew, or muslim. 2 person regarded as lacking culture or moral principles. —adj. 1 of heathens. 2 having no religion. [old english]

    Heather n. Any of various shrubs growing esp. On moors and heaths. [origin unknown]

    Heath robinson adj. Absurdly ingenious and impracticable. [name of a cartoonist]

    Heating n. 1 imparting or generation of heat. 2 equipment used to heat a building etc.

    Heatproof —adj. Able to resist great heat. —v. Make heatproof.

    Heat shield n. Device to protect (esp. A spacecraft) from excessive heat.

    Heatwave n. Period of unusually hot weather.

    Heave —v. (-ving; past and past part. Heaved or esp. Naut. Hove) 1 lift or haul with great effort. 2 utter with effort (heaved a sigh). 3 colloq. Throw. 4 rise and fall rhythmically or spasmodically. 5 naut. Haul by rope. 6 retch. —n. Heaving. heave in sight come into view. Heave to esp. Naut. Bring or be brought to a standstill. [old english]

    Heaven n. 1 place regarded in some religions as the abode of god and the angels, and of the blessed after death. 2 place or state of supreme bliss. 3 colloq. Delightful thing. 4 (usu. Heaven) god, providence (often as an exclamation or mild oath: heavens). 5 (the heavens) esp. Poet. The sky as seen from the earth, in which the sun, moon, and stars appear. heavenward adv. (also heavenwards). [old english]

    Heavenly adj. 1 of heaven; divine. 2 of the heavens or sky. 3 colloq. Very pleasing; wonderful.

    Heavenly bodies n.pl. The sun, stars, planets, etc.

    Heavensent adj. Providential.

    Heavier-than-air attrib. Adj. (of an aircraft) weighing more than the air it displaces.

    Heavy —adj. (-ier, -iest) 1 of great or unusually high weight; difficult to lift. 2 of great density (heavy metal). 3 abundant, considerable (heavy crop; heavy traffic). 4 severe, intense, extensive (heavy fighting; a heavy sleep). 5 doing a thing to excess (heavy drinker). 6 striking or falling with force; causing strong impact (heavy blows; heavy rain; heavy sea; a heavy fall). 7 (of machinery,

    artillery, etc.) Very large of its kind; large in calibre etc. 8 needing much physical effort (heavy work). 9 carrying heavy weapons (the heavy brigade). 10 serious or sombre in tone or attitude; dull, tedious. 11 a hard to digest. B hard to read or understand. 12 (of bread etc.) Too dense from not having risen. 13 (of ground) difficult to traverse or work. 14 oppressive; hard to endure (heavy demands). 15 a coarse, ungraceful (heavy features). B unwieldy. —n. (pl. -ies) 1 colloq. Large violent person; thug (esp. Hired). 2 villainous or tragic role or actor. 3 (usu. In pl.) Colloq. Serious newspaper. 4 anything large or heavy of its kind, e.g. A vehicle. —adv. Heavily (esp. In comb.: heavy-laden).

    Heavy-duty adj. Intended to withstand hard use.

    Heavy going n. Slow or difficult progress.

    Heavy-handed adj. 1 clumsy. 2 overbearing, oppressive. heavy-handedly adv.

    Heavy-handedness n.

    Heavy-hearted adj. Sad, doleful.

    Heavy hydrogen n. = *deuterium.

    Heavy industry n. Industry producing metal, machinery, etc.

    Heavy metal n. 1 heavy guns. 2 metal of high density. 3 colloq. Loud kind of rock music with a pounding rhythm.

    Heavy petting n. Erotic fondling that stops short of intercourse.

    Heavy water n. Water composed of deuterium and oxygen.

    Heavyweight n. 1 a weight in certain sports, in amateur boxing over 81 kg. B sportsman of this weight. 2 person etc. Of above average weight. 3 colloq. Person of influence or importance.

    Hebdomadal adj. Formal weekly, esp. Meeting weekly. [greek hepta seven]

    Hebe n. Evergreen flowering shrub from new zealand. [greek goddess hebe]

    Hebraic adj. Of hebrew or the hebrews.

    Hebrew —n. 1 member of a semitic people orig. Centred in ancient palestine. 2 a their language. B modern form of this, used esp. In israel. —adj. 1 of or in hebrew. 2 of the hebrews or the jews. [hebrew, = one from the other side of the river]

    Heck int. Colloq. Mild exclamation of surprise or dismay. [a form of *hell]

    Heckle —v. (-ling) interrupt and harass (a public speaker). —n. Act of heckling. heckler n. [var. Of *hackle]

    Hectare n. Metric unit of square measure, 100 ares (2.471 acres or 10,000 square

    metres). [french: related to hecto-, are2]

    Hectic adj. 1 busy and confused; excited. 2 feverish. hectically adv. [greek hektikos habitual]

    Hecto-comb. Form hundred. [greek hekaton]

    Hectogram n. (also hectogramme) metric unit of mass equal to 100 grams.

    Hector —v. Bully, intimidate. —n. Bully. [from the name hector in the iliad]

    He’d contr. 1 he had. 2 he would.

    Hedge —n. 1 fence or boundary of dense bushes or shrubs. 2 protection against possible loss. —v. (-ging) 1 surround or bound with a hedge. 2 (foll. By in) enclose. 3 a reduce one’s risk of loss on (a bet or speculation) by compensating transactions on the other side. B avoid committing oneself. [old english]

    Hedgehog n. Small insect-eating mammal with a piglike snout and a coat of spines, rolling itself up into a ball when attacked.

    Hedge-hop v. Fly at a very low altitude.

    Hedgerow n. Row of bushes etc. Forming a hedge.

    Hedge sparrow n. Common grey and brown bird; the dunnock.

    Hedonism n. 1 belief in pleasure as mankind’s proper aim. 2 behaviour based on this. hedonist n. Hedonistic adj. [greek hedone pleasure]

    Heebie-jeebies n.pl. (prec. By the) slang nervous anxiety, tension. [origin unknown]

    Heed —v. Attend to; take notice of. —n. Careful attention. heedful adj. Heedless adj. Heedlessly adv. [old english]

    Hee-haw —n. Bray of a donkey. —v. Make a braying sound. [imitative]

    Heel1 —n. 1 back of the foot below the ankle. 2 a part of a sock etc. Covering this. B part of a shoe etc. Supporting this. 3 thing like a heel in form or position. 4 crust end of a loaf of bread. 5 colloq. Scoundrel. 6 (as int.) Command to a dog to walk close to its owner’s heel. —v. 1 fit or renew a heel on (a shoe etc.). 2 touch the ground with the heel as in dancing. 3 (foll. By out) rugby pass the ball with the heel. at heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. At (or on) the heels of following closely after (a person or event). Cool (or kick) one’s heels be kept waiting. Down at heel 1 (of a shoe) with the heel worn down. 2 (of a person) shabby. Take to one’s heels run away. To heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. Turn on one’s heel turn sharply round. [old english]

    Heel2 —v. (often foll. By over) 1 (of a ship etc.) Lean over. 2 cause (a ship etc.) To do this. —n. Act or amount of heeling. [obsolete heeld, from germanic]

    Heel3 var. Of *hele.

    Heelball n. 1 mixture of hard wax and lampblack used by shoemakers for polishing. 2 this or a similar mixture used in brass-rubbing.

    Hefty adj. (-ier, -iest) 1 (of a person) big and strong. 2 (of a thing) large, heavy, powerful. heftily adv. Heftiness n. [heft weight: related to *heave]

    Hegemony n. Leadership, esp. By one state of a confederacy. [greek hegemon leader]

    Hegira n. (also hejira) 1 muhammad’s flight from mecca in ad 622. 2 muslim era reckoned from this date. [arabic hijra departure]

    Heifer n. Young cow, esp. One that has not had more than one calf. [old english]

    Height n. 1 measurement from base to top or head to foot. 2 elevation above the ground or a recognized level. 3 considerable elevation (situated at a height). 4 high place or area. 5 top. 6 a most intense part or period (battle was at its height). B extreme example (the height of fashion). [old english]

    Heighten v. Make or become higher or more intense.

    Heinous adj. Utterly odious or wicked. [french haïr hate]

    Heir n. (fem. Heiress) person entitled to property or rank as the legal successor of its former holder. [latin heres hered-]

    Heir apparent n. Heir whose claim cannot be set aside by the birth of another heir.

    Heirloom n. 1 piece of personal property that has been in a family for several generations. 2 piece of property as part of an inheritance.

    Heir presumptive n. Heir whose claim may be set aside by the birth of another heir.

    Hejira var. Of *hegira.

    Held past and past part. Of *hold1.

    Hele v. (-ling) (also heel) (foll. By in) set (a plant) in the ground temporarily and cover its roots. [old english]

    Helical adj. Having the form of a helix.

    Helices pl. Of *helix.

    Helices pl. Of *helix.

    Helicopter n. Wingless aircraft obtaining lift and propulsion from horizontally revolving overhead blades. [greek: related to *helix, pteron wing]

    Helio-comb. Form sun. [greek helios sun]

    Heliocentric adj. 1 regarding the sun as centre. 2 considered as viewed from the sun’s centre.

    Heliograph —n. 1 signalling apparatus reflecting sunlight in flashes. 2 message sent by means of this. —v. Send (a message) by heliograph.

    Heliotrope n. Plant with fragrant purple flowers. [greek: related to *helio-, trepo turn]

    Heliport n. Place where helicopters take off and land.

    Helium n. Light inert gaseous element used in airships and as a refrigerant. [related to *helio-]

    Helix n. (pl. Helices) spiral curve (like a corkscrew) or coiled curve (like a watch spring). [latin from greek]

    Hell —n. 1 place regarded in some religions as the abode of the dead, or of

    devils and condemned sinners. 2 place or state of misery or wickedness. —int. Expressing anger, surprise, etc. the hell (usu. Prec. By what, where, who, etc.) Expressing anger, disbelief, etc. (who the hell is this?; the hell you are!). Beat etc. The hell out of colloq. Beat etc. Without restraint. Come hell or high waterno matter what the difficulties. For the hell of it colloq. Just for fun. Get hell colloq. Be severely scolded or punished. Give a person hell colloq. Scold or punish a person. A (or one) hell of a colloq. Outstanding example of (a hell of a mess; one hell of a party). Like hell colloq. 1 not at all. 2 recklessly, exceedingly. [old english]

    He’ll contr. He will; he shall.

    Hell-bent adj. (foll. By on) recklessly determined.

    Hellebore n. Evergreen plant with usu. White, purple, or green flowers, e.g. The christmas rose. [greek (h)elleborus]

    Hellene n. 1 native of modern greece. 2 ancient greek. hellenic adj. [greek]

    Hellenism n. (esp. Ancient) greek character or culture. hellenist n.

    Hellenistic adj. Of greek history, language, and culture of the late 4th to the late 1st c. Bc.

    Hell-fire n. Fire(s) regarded as existing in hell.

    Hell for leather adv. At full speed.

    Hell-hole n. Oppressive or unbearable place.

    Hellish —adj. 1 of or like hell. 2 colloq. Extremely difficult or unpleasant. — adv. Colloq. Extremely (hellish expensive). hellishly adv.

    Hello (also hallo, hullo) —int. Expression of informal greeting, or of surprise, or to call attention. —n. (pl. -s) cry of ‘hello’. [var. Of earlier hollo]

    Hell’s angel n. Member of a gang of male motor-cycle enthusiasts notorious for outrageous and violent behaviour.

    Helm n. Tiller or wheel for controlling a ship’s rudder. at the helm in control; at the head of an organization etc. [old english]

    Helmet n. Protective head-covering worn by a policeman, motor cyclist, etc. [french from germanic]

    Helmsman n. Person who steers a ship.

    Helot n. Serf, esp. (helot) of a class in ancient sparta. [latin from greek]

    Help —v. 1 provide with the means towards what is needed or sought (helped

    Help —v. 1 provide with the means towards what is needed or sought (helped me with my work; helped me (to) pay my debts; helped him on with his coat). 2 (often absol.) Be of use or service to (does that help?). 3 contribute to alleviating (a pain or difficulty). 4 prevent or remedy (it can’t be helped). 5 (usu. With neg.) A refrain from (can’t help it; could not help laughing). B refl. Refrain from acting (couldn’t help himself). 6 (often foll. By to) serve (a person with food). — n. 1 helping or being helped (need your help; came to our help). 2 person or thing that helps. 3 colloq. Domestic assistant or assistance. 4 remedy or escape (there is no help for it). help oneself (often foll. By to) 1 serve oneself (with food etc.). 2 take without permission. Help a person out give a person help, esp. In difficulty. helper n.

    Helpful adj. Giving help; useful. helpfully adv. Helpfulness n.

    Helping n. Portion of food at a meal.

    Helpless adj. 1 lacking help or protection; defenceless. 2 unable to act without help. helplessly adv. Helplessness n.

    Helpline n. Telephone service providing help with problems.

    Helpmate n. Helpful companion or partner.

    Helter-skelter —adv. & adj. In disorderly haste. —n. (at a fairground) external spiral slide round a tower. [imitative]

    Hem1 —n. Border of cloth where the edge is turned under and sewn down. —v. (-mm-) turn down and sew in the edge of (cloth etc.). hem in confine; restrict the movement of. [old english]

    Hem2 —int. Calling attention or expressing hesitation by a slight cough. —n. Utterance of this. —v. (-mm-) say hem; hesitate in speech. hem and haw = hum and haw (see *hum). [imitative]

    Hemal adj. (brit. Haem-) of the blood. [greek haima blood]

    He-man n. Masterful or virile man.

    Hematite n. (brit. Haem-) a ferric oxide ore. [latin: related to *haemal]

    Hematology n. (brit. Haem-) the study of the blood. haematologist n.

    Hemi-comb. Form half. [greek, = latin semi-]

    Hemipterous adj. Of the insect order including aphids, bugs, and cicadas, with piercing or sucking mouthparts. [greek pteron wing]

    Hemisphere n. 1 half a sphere. 2 half of the earth, esp. As divided by the equator (into northern and southern hemisphere) or by a line passing through the poles (into eastern and western hemisphere). hemispherical adj. [greek: related to hemi-, sphere]

    Hemline n. Lower edge of a skirt etc.

    Hemlock n. 1 poisonous plant with fernlike leaves and small white flowers. 2 poison made from this. [old english]

    Hemoglobin n. (brit. Haem-) oxygen-carrying substance in the red blood cells of vertebrates. [from *globulin]

    Hemophilia n. (brit. Haem-) hereditary failure of the blood to clot normally with the tendency to bleed severely from even a slight injury. [greek haima blood, philia loving]

    Hemophiliac n. (brit. Haem-) person with haemophilia.

    Hemorrhage (brit. Haem-) —n. 1 profuse loss of blood from a ruptured blood-vessel. 2 damaging loss, esp. Of people or assets. —v. (-ging) suffer a haemorrhage. [greek haima blood, rhegnumi burst]

    Hemorrhoids n.pl. (brit. Haem-) swollen veins in the wall of the anus; piles. [greek haima blood, -rhoos -flowing]

    Hemp n. 1 (in full indian hemp) asian herbaceous plant. 2 its fibre used to make rope and stout fabrics. 3 narcotic drug made from the hemp plant. [old english]

    Hempen adj. Made of hemp.

    Hemstitch —n. Decorative stitch. —v. Hem with this stitch.

    Hen n. Female bird, esp. Of a domestic fowl. [old english]

    Henbane n. Poisonous hairy plant with an unpleasant smell.

    Hence adv. 1 from this time (two years hence). 2 for this reason (hence we seem to be wrong). 3 archaic from here. [old english]

    Henceforth adv. (also henceforward) from this time onwards.

    Henchman n. Usu. Derog. Trusted supporter. [old english hengst horse, *man]

    Henge n. Prehistoric monument consisting of a circle of stone or wood uprights. [stonehenge in s. England]

    Henna —n. 1 tropical shrub. 2 reddish dye made from it and used to colour hair. —v. (hennaed, hennaing) dye with henna. [arabic]

    Hen-party n. Colloq. Social gathering of women only.

    Henpeck v. (usu. In passive) (of a wife) constantly nag her husband.

    Henry n. (pl. -s or -ies) electr. Si unit of inductance. [henry, name of a physicist]

    Henry n. (pl. -s or -ies) electr. Si unit of inductance. [henry, name of a physicist]

    Hep var. Of *hip4.

    Hepatic adj. Of the liver. [greek hepar -atos liver]

    Hepatitis n. Inflammation of the liver. [related to *hepatic]

    Hepta-comb. Form seven. [greek]

    Heptagon n. Plane figure with seven sides and angles. heptagonal adj. [greek:

    related to *hepta-, -gonos angled]

    Her —pron. 1 objective case of she (i like her). 2 colloq. She (it’s her all right; am older than her). —poss. Pron. (attrib.) Of or belonging to her or herself (her house; her own business). [old english dative and genitive of she]

    Herald —n. 1 official messenger bringing news. 2 forerunner, harbinger. 3 a hist. Officer responsible for state ceremonial and etiquette. B official concerned with pedigrees and coats of arms. —v. Proclaim the approach of; usher in. heraldic adj. [french from germanic]

    Heraldry n. 1 art or knowledge of a herald. 2 coats of arms.

    Herb n. 1 any non-woody seed-bearing plant. 2 plant with leaves, seeds, or flowers used for flavouring, food, medicine, scent, etc. herby adj. (-ier, -iest). [latin herba]

    Herbaceous adj. Of or like herbs.

    Herbaceous border n. Garden border containing esp. Perennial flowering plants.

    Herbage n. Vegetation collectively, esp. As pasture.

    Herbal —adj. Of herbs in medicinal and culinary use. —n. Book describing the medicinal and culinary uses of herbs.

    Herbalist n. 1 dealer in medicinal herbs. 2 writer on herbs.

    Herbarium n. (pl. -ria) 1 systematically arranged collection of dried plants. 2 book, room, etc. For these.

    Herbicide n. Poison used to destroy unwanted vegetation.

    Herbivore n. Animal that feeds on plants. herbivorous adj. [latin voro devour]

    Herculean adj. Having or requiring great strength or effort. [from the name hercules, latin alteration of greek herakles]

    hercules, latin alteration of greek herakles]

    Herd —n. 1 a number of animals, esp. Cattle, feeding or travelling or kept together. 2 (prec. By the) derog. Large number of people; mob (tends to follow the herd). —v. 1 (cause to) go in a herd (herded together for warmth; herded the cattle into the field). 2 look after (sheep, cattle, etc.). [old english]

    Herd instinct n. (prec. By the) tendency to think and act as a crowd.

    Herdsman n. Man who owns or tends a herd.

    Here —adv. 1 in or at or to this place or position (come here; sit here). 2 indicating a person’s presence or a thing offered (my son here will show you; here is your coat). 3 at this point in the argument, situation, etc. (here i have a question). —n. This place (get out of here; lives near here; fill it up to here). — int. 1 calling attention: short for come here, look here, etc. (here, where are you going with that?). 2 indicating one’s presence in a roll-call: short for i am here. here goes! Colloq. Expression indicating the start of a bold act. Here’s to i drink to the health of. Here we are colloq. Said on arrival at one’s destination. Here we go again colloq. The same, usu. Undesirable, events are recurring. Here you are said on handing something to somebody. Neither here nor there of no importance. [old english]

    Hereabouts adv. (also hereabout) near this place.

    Hereafter —adv. From now on; in the future. —n. 1 the future. 2 life after death.

    Here and now adv. At this very moment; immediately.

    Here and now adv. At this very moment; immediately.

    Here and there adv. In various places.

    Hereby adv. By this means; as a result of this.

    Hereditable adj. That can be inherited. [latin: related to *heir]

    Hereditary adj. 1 (of a disease, instinct, etc.) Able to be passed down genetically from one generation to another. 2 a descending by inheritance. B holding a position by inheritance. [latin: related to *heir]

    Heredity n. 1 a passing on of physical or mental characteristics genetically. B these characteristics. 2 genetic constitution.

    Hereford n. Animal of a breed of red and white beef cattle. [hereford in england]

    Herein adv. Formal in this matter, book, etc.

    Hereinafter adv. Esp. Law formal 1 from this point on. 2 in a later part of this document etc.

    Hereof adv. Formal of this.

    Heresy n. (pl. -ies) 1 esp. Rc ch. Religious belief or practice contrary to orthodox doctrine. 2 opinion contrary to what is normally accepted or maintained. [greek hairesis choice]

    Heretic n. 1 person believing in or practising religious heresy. 2 holder of an unorthodox opinion. heretical adj.

    Hereto adv. Formal to this matter.

    Heretofore adv. Formal before this time.

    Hereupon adv. After this; in consequence of this.

    Herewith adv. With this (esp. Of an enclosure in a letter etc.).

    Heritable adj. 1 law capable of being inherited or of inheriting. 2 biol. Genetically transmissible from parent to offspring. [french: related to *heir]

    Heritage n. 1 what is or may be inherited. 2 inherited circumstances, benefits, etc. 3 a nation’s historic buildings, monuments, countryside, etc., esp. Whenregarded as worthy of preservation.

    Hermaphrodite —n. Person, animal, or plant having both male and female reproductive organs. —adj. Combining both sexes. hermaphroditic adj. [from hermaphroditus, son of hermes and aphrodite who became joined in one body to

    a nymph]

    Hermetic adj. With an airtight closure. hermetically adv. [from the greek god hermes, regarded as the founder of alchemy]

    Hermit n. Person (esp. An early christian) living in solitude and austerity. hermitic adj. [greek eremos solitary]

    Hermitage n. 1 hermit’s dwelling. 2 secluded dwelling.

    Hermit-crab n. Crab that lives in a mollusc’s cast-off shell.

    Hernia n. Protrusion of part of an organ through the wall of the body cavity containing it. [latin]

    Hero n. (pl. -es) 1 person noted or admired for nobility, courage, outstanding achievements, etc. 2 chief male character in a play, story, etc. [greek heros]

    Heroic —adj. Of, fit for, or like a hero; very brave. —n. (in pl.) 1 high-flown language or sentiments. 2 unduly bold behaviour. heroically adv.

    Heroin n. Addictive analgesic drug derived from morphine, often used as a narcotic. [german: related to *hero, from the effect on the user’s self-esteem]

    Heroine n. 1 woman noted or admired for nobility, courage, outstanding achievements, etc. 2 chief female character in a play, story, etc. [greek: related to *hero]

    Heroism n. Heroic conduct or qualities. [french héroïsme: related to *hero]

    Heron n. Long-legged wading bird with a long sshaped neck. [french from germanic]

    Hero-worship —n. Idealization of an admired person. —v. Idolize.

    Herpes n. Virus disease causing skin blisters. [greek herpo creep]

    Herr n. (pl. Herren) 1 title of a german man; mr. 2 german man. [german]

    Herring n. (pl. Same or -s) n. Atlantic fish used as food. [old english]

    Herring-bone n. Stitch or weave consisting of a series of small ‘v’ shapes making a zigzag pattern.

    Herring-gull n. Large gull with dark wing-tips.

    Hers poss. Pron. The one or ones belonging to or associated with her (it is hers; hers are over there). of hers of or belonging to her (friend of hers).

    hers are over there). of hers of or belonging to her (friend of hers).

    Herself pron. 1 a emphat. Form of *she or her (she herself will do it). B refl. Form of her (she has hurt herself). 2 in her normal state of body or mind (doesnot feel quite herself today). be herself see oneself. By herself see by oneself. [old english: related to her, *self]

    Hertz n. (pl. Same) si unit of frequency, equal to one cycle per second. [hertz, name of a physicist]

    He’s contr. 1 he is. 2 he has.

    Hesitant adj. Hesitating; irresolute. hesitance n. Hesitancy n. Hesitantly adv.

    Hesitate v. (-ting) 1 show or feel indecision or uncertainty; pause in doubt (hesitated over her choice). 2 be reluctant (i hesitate to say so). hesitation n. [latin haereo haes-stick fast]

    Hessian n. Strong coarse sacking made of hemp or jute. [hesse in germany]

    Hetero-comb. Form other, different. [greek heteros other]

    Heterodox adj. Not orthodox. heterodoxy n. [from *hetero-, greek doxa opinion]

    Heterodyne adj. Radio relating to the production of a lower frequency from the combination of two almost equal high frequencies. [from *hetero-, greek

    dunamis force]

    Heterogeneous adj. 1 diverse in character. 2 varied in content. heterogeneity n. [latin from greek genos kind]

    Heteromorphic adj. (also heteromorphous) biol. Of dissimilar forms.

    heteromorphism n.

    Heterosexual —adj. Feeling or involving sexual attraction to the opposite sex. — n. Heterosexual person. heterosexuality n.

    Het up predic. Adj. Colloq. Excited, overwrought. [het, a dial. Word = heated]

    Heuristic adj. 1 allowing or assisting to discover. 2 proceeding to a solution by trial and error. [greek heurisko find]

    Hew v. (past part. Hewn or hewed) 1 chop or cut with an axe, sword, etc. 2 cut into shape. [old english]

    Hex —v. 1 practise witchcraft. 2 bewitch. —n. Magic spell. [german]

    Hexa-comb. Form six. [greek]

    Hexadecimal adj. Esp. Computing of a system of numerical notation that has 16

    Hexadecimal adj. Esp. Computing of a system of numerical notation that has 16 (the figures 0 to 9 and the letters a to f) rather than 10 as a base.

    Hexagon n. Plane figure with six sides and angles. hexagonal adj. [greek: related to *hexa-, -gonos angled]

    Hexagram n. Figure formed by two intersecting equilateral triangles.

    Hexameter n. Line of verse with six metrical feet.

    Hey int. Calling attention or expressing joy, surprise, inquiry, etc. [imitative]

    Heyday n. Time of greatest success or prosperity. [low german]

    Hey presto! Int. Conjuror’s phrase on completing a trick.

    Hezbollah n. (also hiz-) extreme shiite muslim group, active esp. In lebanon. [arabic hisbullah party of god]

    Hf abbr. High frequency.

    Hf symb. Hafnium.

    Hg symb. Mercury.

    Hg abbr. Hectogram(s).

    Hgv abbr. Heavy goods vehicle.

    Hh abbr. 1 her or his highness. 2 his holiness. 3 (of pencil-lead) double-hard.

    Hi int. Calling attention or as a greeting.

    Hiatus n. (pl. -tuses) 1 break or gap in a series or sequence. 2 break between two vowels coming together but not in the same syllable, as in though oft the ear. [latin hio gape]

    Hibernate v. (-ting) (of an animal) spend the winter in a dormant state. hibernation n. [latin hibernus wintry]

    Hibernian archaic poet. —adj. Of ireland. —n. Native of ireland. [latin hibernia ireland]

    Hibiscus n. (pl. -cuses) cultivated shrub with large bright-coloured flowers. [greek hibiskos marsh mallow]

    Hiccup (also hiccough) —n. 1 involuntary spasm of the diaphragm causing a characteristic sound ‘hic’. 2 temporary or minor stoppage or difficulty. —v. (-p-) make a hiccup. [imitative]

    Hick n. (often attrib.) Esp. Us colloq. Country bumpkin, provincial. [familiar form of richard]

    Hickory n. (pl. -ies) 1 n. American tree yielding wood and nutlike edible fruits. 2 the tough heavy wood of this. [virginian pohickery]

    Hid past of *hide1.

    Hidden past part. Of *hide1.

    Hidden agenda n. Secret motivation behind a policy, statement, etc.; ulterior motive.

    Hide1 —v. (-ding; past hid; past part. Hidden) 1 put or keep out of sight. 2 conceal oneself. 3 (usu. Foll. By from) keep (a fact) secret. 4 conceal. —n. Camouflaged shelter used for observing wildlife. hider n. [old english]

    Hide2 n. 1 animal’s skin, esp. When tanned or dressed. 2 colloq. The human skin, esp. The backside. [old english]

    Hide-and-seek n. Game in which players hide and another searches for them.

    Hideaway n. Hiding-place or place of retreat.

    Hidebound adj. 1 narrow-minded. 2 constricted by tradition.

    Hideous adj. 1 very ugly, revolting. 2 colloq. Unpleasant. hideosity n. (pl. -ies). Hideously adv. [anglo-french hidous]

    Hide-out n. Colloq. Hiding-place.

    Hiding1 n. Colloq. A thrashing. on a hiding to nothing with no chance of succeeding. [from *hide2]

    Hiding2 n. 1 act of hiding. 2 state of remaining hidden (go into hiding). [from *hide1]

    Hiding-place n. Place of concealment.

    Hierarchy n. (pl. -ies) system of grades of status or authority ranked one above the other. hierarchical adj. [greek hieros sacred, arkho rule]

    Hieratic adj. 1 of priests. 2 of the ancient egyptian hieroglyphic writing as used by priests. [greek hiereus priest]

    Hieroglyph n. Picture representing a word, syllable, or sound, as used in ancient egyptian etc. [greek hieros sacred, glupho carve]

    Hieroglyphic —adj. Of or written in hieroglyphs. —n. (in pl.) Hieroglyphs; hieroglyphic writing.

    Hi-fi colloq. —adj. Of high fidelity. —n. (pl. -s) set of high-fidelity equipment. [abbreviation]

    Higgledy-piggledy adv. & adj. In confusion or disorder. [origin uncertain]

    High —adj. 1 a of great vertical extent (high building). B (predic.; often in comb.) Of a specified height (one inch high; waist-high). 2 a far above ground or sea level etc. (high altitude). B inland, esp. When raised (high asia). 3 extending above the normal level (jersey with a high neck). 4 a of exalted quality (high minds). B lavish; superior (high living; high fashion). 5 of exalted rank (high society; is high in the government). 6 a great; intense; extreme; powerful (high praise; high temperature). B greater than normal (high prices). C extreme or very traditional in religious or political opinion (high tory). 7 performed at, to, or from a considerable height (high diving; high flying). 8 (often foll. By on) colloq. Intoxicated by alcohol or esp. Drugs. 9 (of a sound etc.) Of high frequency; shrill. 10 (of a period, age, time, etc.) At its peak (high noon; high summer; high renaissance). 11 a (of meat etc.) Beginning to go bad; off. B (of game) well-hung and slightly decomposed. —n. 1 high, or the highest, level or figure. 2 area of high pressure; anticyclone. 3 slang euphoric state, esp. Drug-induced (am on a high). —adv. 1 far up; aloft (flew the flag high). 2 in or to a high degree. 3 at a high price. 4 (of a sound) at or to a high pitch. high opinion of favourable opinion of. On high in or to heaven or a high place. On one’s high horse colloq. Acting arrogantly. [old english]

    High altar n. Chief altar in a church.

    High and dry adj. Stranded; aground.

    High and low adv. Everywhere (searched high and low).

    High and mighty adj. Colloq. Arrogant.

    Highball n. Us drink of spirits and soda etc., served with ice in a tall glass.

    Highbrow colloq. —adj. Intellectual; cultural. —n. Intellectual or cultured person.

    High chair n. Infant’s chair with long legs and a tray for meals.

    High church n. Section of the church of england emphasizing ritual, priestly authority, and sacraments.

    High-class adj. Of high quality.

    High colour n. Flushed complexion.

    High command n. Army commander-in-chief and associated staff.

    High commission n. Embassy from one commonwealth country to another. high commissioner n.

    High court n. (also in england high court of justice) supreme court of justice for civil cases.

    High day n. Festal day.

    Higher animal n. (also higher plant) animal or plant evolved to a high degree.

    Higher education n. Education at university etc.

    High explosive n. Extremely explosive substance used in shells, bombs, etc.

    Highfalutin adj. (also highfaluting) colloq. Pompous, pretentious. [origin unknown]

    High fidelity n. High-quality sound reproduction with little distortion.

    High-flown adj. (of language etc.) Extravagant, bombastic.

    High-flyer n. (also high-flier) 1 ambitious person. 2 person or thing of great potential. high-flying adj.

    High frequency n. Frequency, esp. In radio, of 3 to 30 megahertz.

    High gear n. Gear such that the driven end of a transmission revolves faster than the driving end.

    High-handed adj. Disregarding others’ feelings; overbearing. high-handedly adv.

    High-handedness n.

    High heels n.pl. Women’s shoes with high heels.

    High jinks n.pl. Boisterous fun.

    High jump n. 1 athletic event consisting of jumping over a high bar. 2 colloq.

    Drastic punishment (he’s for the high jump).

    Highland —n. (usu. In pl.) 1 area of high land. 2 (the highlands) mountainous part of scotland. —adj. Of or in a highland or the highlands. highlander n. (also highlander). [old english, = promontory: related to *high]

    Highland cattle n. Cattle of a shaggy-haired breed with long curved horns.

    Highland fling see *fling n. 3.

    High-level adj. 1 (of negotiations etc.) Conducted by high-ranking people. 2 computing (of a programming language) not machine-dependent and usu. At a level of abstraction close to natural language.

    Highlight —n. 1 moment or detail of vivid interest; outstanding feature. 2 (in a painting etc.) Bright area. 3 (usu. In pl.) Light streak in the hair produced by bleaching. —v. 1 bring into prominence; draw attention to. 2 mark with a highlighter.

    Highlighter n. Marker pen for emphasizing a printed word etc. By overlaying it with colour.

    Highly adv. 1 in a high degree (highly amusing; commend it highly). 2 favourably (think highly of him).

    Highly-strung adj. Very sensitive or nervous.

    High-minded adj. Having high moral principles. high-mindedly adv. High-mindedness n.

    Highness n. 1 state of being high (highness of taxation). 2 (highness) title used when addressing or referring to a prince or princess (her highness; your royal highness).

    High-octane adj. (of fuel used in internal-combustion engines) not detonating readily during the power stroke.

    High-pitched adj. 1 (of a sound) high. 2 (of a roof) steep.

    High point n. The maximum or best state reached.

    High-powered adj. 1 having great power or energy. 2 important or influential.

    High pressure n. 1 high degree of activity or exertion. 2 atmospheric condition with the pressure above average.

    High priest n. (fem. High priestess) 1 chief priest, esp. Jewish. 2 head of a cult.

    High-ranking adj. Of high rank, senior.

    High-rise —attrib. Adj. (of a building) having many storeys. —n. Such a building.

    High-risk attrib. Adj. Involving or exposed to danger (high-risk sports).

    High road n. Main road.

    High road n. Main road.

    High school n. 1 grammar school. 2 us & scot. Secondary school.

    High sea n. (also high seas) open seas not under any country’s jurisdiction.

    High season n. Busiest period at a resort etc.

    High-speed attrib. Adj. Operating at great speed.

    High-spirited adj. Vivacious; cheerful; lively.

    High spot n. Important place or feature.

    High street n. Principal shopping street of a town.

    High table n. Dining-table for the most important guests or members.

    High tea n. Evening meal usu. Consisting of a cooked dish, bread and butter, tea, etc.

    High-tech adj. 1 employing, requiring, or involved in high technology. 2

    imitating styles more usual in industry etc.

    High technology n. Advanced technological development, esp. In electronics.

    High tension n. = *high voltage.

    High tide n. Time or level of the tide at its peak.

    High time n. Time that is overdue (it is high time they arrived).

    High treason n. = *treason.

    High-up n. Colloq. Person of high rank.

    High voltage n. Electrical potential large enough to injure or damage.

    High water n. = *high tide.

    High-water mark n. Level reached at high water.

    Highway n. 1 a public road. B main route. 2 direct course of action (on the highway to success).

    Highway code n. Official booklet of guidance for road-users.

    Highwayman n. Hist. Robber of travellers etc., usu. Mounted.

    High wire n. High tightrope.

    Hijack —v. 1 seize control of (a vehicle etc.), esp. To force it to a different destination. 2 seize (goods) in transit. 3 take control of (talks etc.) By force or subterfuge. —n. A hijacking. hijacker n. [origin unknown]

    Hike —n. 1 long walk, esp. In the country for pleasure. 2 rise in prices etc. —v. (-king) 1 go for a hike. 2 walk laboriously. 3 (usu. Foll. By up) hitch up (clothing etc.); become hitched up. 4 (usu. Foll. By up) raise (prices etc.). hiker n. [origin unknown]

    Hilarious adj. 1 exceedingly funny. 2 boisterously merry. hilariously adv. Hilarity n. [greek hilaros cheerful]

    Hill n. 1 naturally raised area of land, lower than a mountain. 2 (often in comb.) Heap, mound (anthill). 3 sloping piece of road. over the hill colloq. Past the prime of life. [old english]

    Hill-billy n. Us colloq., often derog. Person from a remote rural area in a southern state.

    Hillock n. Small hill, mound.

    Hillside n. Sloping side of a hill.

    Hilltop n. Top of a hill.

    Hillwalking n. Hiking in hilly country. hillwalker n.

    Hilly adj. (-ier, -iest) having many hills. hilliness n.

    Hilt n. Handle of a sword, dagger, etc. up to the hilt completely. [old english]

    Him pron. 1 objective case of he (i saw him). 2 colloq. He (it’s him again; taller than him). [old english, dative of he]

    Himself pron. 1 a emphat. Form of *he or him (he himself will do it). B refl. Form of him (he has hurt himself). 2 in his normal state of body or mind (doesnot feel quite himself today). be himself see oneself. By himself see by oneself. [old english: related to him, *self]

    Hind1 adj. At the back (hind leg). [old english hindan from behind]

    Hind2 n. Female (esp. Red) deer, esp. In and after the third year. [old english]

    Hinder1 v. Impede; delay. [old english]

    Hinder2 adj. Rear, hind (the hinder part). [old english]

    Hindi n. 1 group of spoken dialects of n. India. 2 literary form of hindustani, an official language of india. [urdu hind india]

    Hindmost adj. Furthest behind.

    Hindquarters n.pl. Hind legs and rump of a quadruped.

    Hindrance n. 1 hindering; being hindered. 2 thing that hinders.

    Hindsight n. Wisdom after the event.

    Hindu —n. (pl. -s) follower of hinduism. —adj. Of hindus or hinduism. [urdu hind india]

    Hinduism n. Main religious and social system of india, including the belief in reincarnation, several gods, and a caste system.

    reincarnation, several gods, and a caste system.

    Hindustani n. Language based on hindi, used as a lingua franca in much of india. [from *hindu, stan country]

    Hinge —n. 1 movable joint on which a door, lid, etc., turns or swings. 2 principle on which all depends. —v. (-ging) 1 (foll. By on) depend (on a principle, an event, etc.). 2 attach or be attached by a hinge. [related to *hang]

    Hinny n. (pl. -ies) offspring of a female donkey and a male horse. [greek hinnos]

    Hint —n. 1 slight or indirect indication or suggestion. 2 small piece of practical information. 3 very small trace; suggestion (a hint of perfume). —v. Suggest slightly or indirectly. hint at give a hint of; refer indirectly to. Take a hint heed a hint. [obsolete hent grasp]

    Hinterland n. 1 district beyond a coast or river’s banks. 2 area served by a port or other centre. [german]

    Hip1 n. Projection of the pelvis and the upper part of the thigh-bone. [old english]

    Hip2 n. Fruit of a rose, esp. Wild. [old english]

    Hip3 int. Introducing a united cheer (hip, hip, hooray). [origin unknown]

    Hip4 adj. (also hep) (-pper, -ppest) slang trendy, stylish. [origin unknown]

    Hip-bath n. Portable bath in which one sits immersed to the hips.

    Hip-bone n. Bone forming the hip.

    Hip-flask n. Small flask for spirits etc.

    Hip hop n. (also hip-hop) subculture combining rap music, graffiti art, and break-dancing. [from *hip4]

    Hippie n. (also hippy) (pl. -ies) colloq. (esp. In the 1960s) person rejecting convention, typically with long hair, jeans, beads, etc., and taking hallucinogenic drugs. [from *hip4]

    Hippo n. (pl. -s) colloq. Hippopotamus. [abbreviation]

    Hip-pocket n. Trouser-pocket just behind the hip.

    Hippocratic oath n. Statement of ethics of the medical profession. [hippocrates, name of a greek physician]

    Hippodrome n. 1 music-hall or dancehall. 2 (in classical antiquity) course for

    chariot races etc. [greek hippos horse, dromos race]

    Hippopotamus n. (pl. -muses or -mi) large african mammal with short legs and thick skin, living by rivers, lakes, etc. [greek hippos horse, potamos river]

    Hippy1 var. Of *hippie.

    Hippy2 adj. Having large hips.

    Hipster1 —attrib. Adj. (of a garment) hanging from the hips rather than the waist. —n. (in pl.) Such trousers.

    Hipster2 n. Slang hip person.

    Hire —v. (-ring) 1 purchase the temporary use of (a thing) (hired a van). 2 esp. Us employ (a person). —n. 1 hiring or being hired. 2 payment for this. for (or on) hire ready to be hired. Hire out grant the temporary use of (a thing) for payment. hireable adj. Hirer n. [old english]

    Hireling n. Usu. Derog. Person who works (only) for money.

    Hire purchase n. System of purchase by paying in instalments.

    Hirsute adj. Hairy. [latin]

    Hirsute adj. Hairy. [latin]

    His poss. Pron. 1 (attrib.) Of or belonging to him or himself (his house; his own business). 2 the one or ones belonging to or associated with him (it is his; his are over there). of his of or belonging to him (friend of his). [old english, genitive of *he]

    Hispanic —adj. 1 of spain or spain and portugal. 2 of spain and other spanish-speaking countries. —n. Spanish-speaking person living in the us. [latin hispania spain]

    Hiss —v. 1 make a sharp sibilant sound, as of the letter s. 2 express disapproval of by hisses. 3 whisper urgently or angrily. —n. 1 sharp sibilant sound as of the letter s. 2 electronics interference at audio frequencies. [imitative]

    Histamine n. Chemical compound in body tissues etc., associated with allergic reactions. [from histology, amine]

    Histogram n. Statistical diagram of rectangles with areas proportional to the value of a number of variables. [greek histos mast]

    Histology n. The study of tissue structure. [greek histos web]

    Historian n. 1 writer of history. 2 person learned in history.

    Historic adj. 1 famous or important in history or potentially so (historic

    moment). 2 gram. (of a tense) used to narrate past events.

    Historical adj. 1 of or concerning history (historical evidence). 2 (of the study of a subject) showing its development over a period. 3 factual, not fictional or legendary. 4 belonging to the past, not the present. 5 (of a novel etc.) Dealing with historical events. historically adv.

    Historicism n. 1 theory that social and cultural phenomena are determined by history. 2 belief that historical events are governed by laws.

    Historicity n. Historical truth or authenticity.

    Historiography n. 1 the writing of history. 2 the study of this. historiographer n.

    History n. (pl. -ies) 1 continuous record of (esp. Public) events. 2 a the study of past events, esp. Human affairs. B total accumulation of past events, esp. Relating to human affairs or a particular nation, person, thing, etc. 3 eventful past (this house has a history). 4 (foll. By of) past record (had a history of illness). 5 a systematic or critical account of or research into past events etc. B similar record or account of natural phenomena. 6 historical play. make history do something memorable. [greek historia inquiry]

    Histrionic —adj. (of behaviour) theatrical, dramatic. —n. (in pl.) Insincere and dramatic behaviour designed to impress. [latin histrio actor]

    Hit —v. (-tt-; past and past part. Hit) 1 a strike with a blow or missile. B (of a moving body) strike with force (the plane hit the ground). C reach (a target etc.) With a directed missile (hit the wicket). 2 cause to suffer; affect adversely. 3

    (often foll. By at, against) direct a blow. 4 (often foll. By against, on) knock (a part of the body) (hit his head). 5 achieve, reach (hit the right tone; can’t hit the high notes). 6 colloq. A encounter (hit a snag). B arrive at (hit town). C indulge heavily in, esp. Liquor etc. (hit the bottle). 7 esp. Us slang rob or kill. 8 occur forcefully to (it only hit him later). 9 a propel (a ball etc.) With a bat etc. To score runs or points. B score in this way (hit a six). —n. 1 a blow, stroke. B collision. 2 shot etc. That hits its target. 3 colloq. Popular success. hit back retaliate. Hit below the belt 1 esp. Boxing give a foul blow. 2 treat or behave unfairly. Hit the hay (or sack) colloq. Go to bed. Hit it off (often foll. By with, together) colloq. Get on well (with a person). Hit the nail on the head state the truth exactly. Hit on (or upon) find by chance. Hit out deal vigorous physical or verbal blows. Hit the road slang depart. Hit the roof see *roof. [old english from old norse]

    Hit-and-run attrib. Adj. 1 (of a driver, raider, etc.) Causing damage or injury and leaving the scene immediately. 2 (of an accident, attack, etc.) Perpetrated by such a person or people.

    Hitch —v. 1 fasten or be fastened with a loop, hook, etc.; tether. 2 move (a thing) slightly or with a jerk. 3 colloq. A = *hitchhike. B obtain (a lift) by hitchhiking. —n. 1 temporary obstacle or snag. 2 abrupt pull or push. 3 noose or knot of various kinds. 4 colloq. Free ride in a vehicle. get hitched colloq. Marry. Hitch up lift (esp. Clothing) with a jerk. [origin uncertain]

    Hitchhike v. (-king) travel by seeking free lifts in passing vehicles. hitchhiker n.

    Hi-tech adj. = *high-tech. [abbreviation]

    Hither adv. Formal to or towards this place. [old english]

    Hither and thither adv. To and fro.

    Hitherto adv. Until this time, up to now.

    Hit list n. Slang list of prospective victims.

    Hit man n. Slang hired assassin.

    Hit-or-miss adj. Liable to error, random.

    Hit parade n. Colloq. List of the current best-selling pop records.

    Hittite —n. Member or language of an ancient people of asia minor and syria. — adj. Of the hittites. [hebrew]

    Hiv abbr. Human immunodeficiency virus, either of two viruses causing aids.

    Hive n. Beehive. hive off (-ving) separate from a larger group. [old english]

    Hives n.pl. Skin-eruption, esp. Nettle-rash. [origin unknown]

    Hizbollah var. Of *hezbollah.

    Hm abbr. Her (or his) majesty(‘s).

    Hmg abbr. Her (or his) majesty’s government.

    Hmi abbr. Her (or his) majesty’s inspector (of schools).

    Hms abbr. Her (or his) majesty’s ship.

    Hmso abbr. Her (or his) majesty’s stationery office.

    Hnc abbr. Higher national certificate.

    Hnd abbr. Higher national diploma.

    Ho symb. Holmium.

    Ho int. Expressing triumph, derision, etc., or calling attention. [natural exclamation]

    He abbr. 1 his or her excellency. 2 his eminence. 3 high explosive.

    He symb. Helium.

    He —pron. (obj. Him; poss. His; pl. They) 1 the man, boy, or male animal previously named or in question. 2 person etc. Of unspecified sex (if anyone comes he will have to wait; he who hesitates). —n. 1 male; man. 2 (in comb.) Male (he-goat). [old english]

    Head —n. 1 upper part of the human body, or foremost or upper part of an animal’s body, containing the brain, mouth, and sense-organs. 2 a seat of intellect (use your head). B mental aptitude or tolerance (a good head for business; no head for heights). 3 thing like a head in form or position, esp.: a the operative part of a tool. B the top of a nail. C the leaves or flowers at the top of a stem. D foam on the top of a glass of beer etc. 4 a person in charge, esp. The principal teacher of a school. B position of command. 5 front part of a queue etc. 6 upper end of a table or bed etc. 7 top or highest part of a page, stairs, etc. 8 a individual person as a unit (£10 per head). B (pl. Same) individual animal as a unit (20 head). 9 a side of a coin bearing the image of a head. B (usu. In pl.) This as a choice when tossing a coin. 10 a source of a river etc. B end of a lake at which a river enters it. 11 height or length of a head as a measure. 12 part of a machine in contact with or very close to what is being worked on, esp.: a the part of a tape recorder that touches the moving tape and converts signals. B the part of a record-player that holds the playing cartridge and stylus. 13 (usu. In phr. Come to a head) climax, crisis. 14 a confined body of water or steam in an engine etc. B pressure exerted by this. 15 promontory (esp. In place-names) (beachy head). 16 heading or headline. 17 fully developed top of a boil etc. 18 colloq. Headache. 19 (attrib.) Chief, principal. —v. 1 be at the head or front of. 2 be in charge of. 3 provide with a head or heading. 4 (often foll. By for) face, move, or direct in a specified direction (is heading for trouble). 5 hit (a ball etc.) With the head. above (or over) one’s head beyond one’s understanding. Come to a head reach a crisis. Get it into one’s head (foll. By that) 1 adopt a mistaken idea. 2 form a definite plan. Give a person his (or her) head allow a person to act freely. Go to one’s head 1 make one slightly drunk. 2 make one conceited. Head

    off 1 get ahead of so as to intercept and turn aside. 2 forestall. Keep (or lose) one’s head remain (or fail to remain) calm. Off one’s head slang crazy. Off the top of one’s head colloq. Impromptu. On one’s (or one’s own) head as one’s own responsibility. Out of one’s head slang crazy. Over one’s head 1 beyond one’s understanding. 2 without one’s rightful knowledge or involvement, esp. Of action taken by a subordinate consulting one’s own superior. 3 with disregard for one’s own (stronger) claim (was promoted over my head). Put heads together consult together. Take it into one’s head (foll. By that + clause or to + infin.) Decide, esp. Impetuously. Turn a person’s head make a person conceited. [old english]

    Headache n. 1 continuous pain in the head. 2 colloq. Worrying problem.

    headachy adj.

    Headband n. Band worn round the head as decoration or to confine the hair.

    Headbanger n. Slang 1 person who shakes his or her head violently to the rhythm of music; fan of loud music. 2 crazy or eccentric person.

    Headboard n. Upright panel at the head of a bed.

    Head-butt —n. Thrust with the head into the chin or body of another person. — v. Attack with a head-butt.

    Headcount n. 1 counting of individual people. 2 total number of people, esp.

    Employees.

    Headdress n. Covering for the head.

    Header n. 1 football shot or pass made with the head. 2 colloq. Headlong fall or dive. 3 brick etc. Laid at right angles to the face of a wall. 4 (in full header-tank) tank of water etc. Maintaining pressure in a plumbing system.

    Head first adv. 1 with the head foremost. 2 precipitately.

    Headgear n. Hat or headdress.

    Head-hunting n. 1 collecting of the heads of dead enemies as trophies. 2 seeking of (esp. Senior) staff by approaching people employed elsewhere. head-hunt v. Head-hunter n.

    Heading n. 1 a title at the head of a page or section of a book etc. B section of a subject of discourse etc. 2 horizontal passage made in preparation for building a tunnel, or in a mine.

    Head in the sand n. Refusal to acknowledge danger or difficulty.

    Headlamp n. = *headlight.

    Headland n. Promontory.

    Headlight n. 1 strong light at the front of a vehicle. 2 beam from this.

    Headline n. 1 heading at the top of an article or page, esp. In a newspaper. 2 (in pl.) Summary of the most important items in a news bulletin.

    Headlock n. Wrestling hold with an arm round the opponent’s head.

    Headlong adv. & adj. 1 with the head foremost. 2 in a rush.

    Headman n. Chief man of a tribe etc.

    Headmaster n. (fem. Headmistress) = *head teacher.

    Head-on adj. & adv. 1 with the front foremost (head-on crash). 2 in direct confrontation.

    Head over heels —n. Turning over completely in forward motion as in a somersault etc. —adv. Utterly (head over heels in love).

    Headphones n.pl. Set of earphones fitting over the head, for listening to audio equipment etc.

    Headquarters n. (as sing. Or pl.) Administrative centre of an organization.

    Headrest n. Support for the head, esp. On a seat.

    Headroom n. Space or clearance above a vehicle, person’s head, etc.

    Headscarf n. Scarf worn round the head and tied under the chin.

    Headset n. Headphones, often with a microphone attached.

    Headship n. Position of head or chief, esp. In a school.

    Headshrinker n. Slang psychiatrist.

    Headstall n. Part of a halter or bridle fitting round a horse’s head.

    Head start n. Advantage granted or gained at an early stage.

    Headstone n. Stone set up at the head of a grave.

    Headstrong adj. Self-willed.

    Head teacher n. Teacher in charge of a school.

    Headwaters n.pl. Streams flowing from the sources of a river.

    Headway n. 1 progress. 2 ship’s rate of progress. 3 headroom.

    Head wind n. Wind blowing from directly in front.

    Headword n. Word forming a heading.

    Heady adj. (-ier, -iest) 1 (of liquor) potent. 2 intoxicating, exciting. 3 impulsive, rash. 4 headachy. headily adv. Headiness n.

    Heal v. 1 (often foll. By up) become sound or healthy again. 2 cause to heal. 3 put right (differences etc.). 4 alleviate (sorrow etc.). healer n. [old english: related to *whole]

    Health n. 1 state of being well in body or mind. 2 person’s mental or physical condition. 3 soundness, esp. Financial or moral. [old english: related to *whole]

    Health centre n. Building containing various local medical services and doctors’ practices.

    Health farm n. Establishment offering improved health by a regime of dieting, exercise, etc.

    Health food n. Natural food, thought to promote good health.

    Healthful adj. Conducive to good health; beneficial.

    Health service n. Public service providing medical care.

    Health visitor n. Trained nurse who visits mothers and babies, or the sick or elderly, at home.

    Healthy adj. (-ier, -iest) 1 having, showing, or promoting good health. 2 indicative of (esp. Moral or financial) health (a healthy sign). 3 substantial (won by a healthy 40 seconds). healthily adv. Healthiness n.

    Heap —n. 1 disorderly pile. 2 (esp. In pl.) Colloq. Large number or amount. 3 slang dilapidated vehicle. —v. 1 (foll. By up, together, etc.) Collect or be collected in a heap. 2 (foll. By with) load copiously with. 3 (foll. By on, upon) give or offer copiously (heaped insults on them). [old english]

    Hear v. (past and past part. Heard) 1 (also absol.) Perceive with the ear. 2 listen to (heard them on the radio). 3 listen judicially to (a case etc.). 4 be told or informed. 5 (foll.

    Hearing n. 1 faculty of perceiving sounds. 2 range within which sounds may be heard (within hearing). 3 opportunity to state one’s case (a fair hearing). 4 trial of a case before a court.

    Hearing-aid n. Small device to amplify sound, worn by a partially deaf person.

    Hearken v. Archaic (often foll. By to) listen. [old english: related to *hark]

    Hearsay n. Rumour, gossip.

    Hearse n. Vehicle for conveying the coffin at a funeral. [french herse harrow, from latin hirpex large rake]

    Heart n. 1 hollow muscular organ maintaining the circulation of blood by rhythmic contraction and dilation. 2 region of the heart; the breast. 3 a centre of thought, feeling, and emotion (esp. Love). B capacity for feeling emotion (has no heart). 4 a courage or enthusiasm (take heart). B mood or feeling (change of heart). 5 a central or innermost part of something. B essence (heart of the matter). 6 compact tender inner part of a lettuce etc. 7 a heart-shaped thing. B conventional representation of a heart with two equal curves meeting at a point at the bottom and a cusp at the top. 8 a playing-card of the suit denoted by a red figure of a heart. B (in pl.) This suit. at heart 1 in one’s inmost feelings. 2 basically. Break a person’s heart overwhelm a person with sorrow. By heart from memory. Give (or lose) one’s heart (often foll. By to) fall in love (with). Have the heart (usu. With neg.; foll. By to + infin.) Be insensitive or hard-hearted enough (didn’t have the heart to ask him). Take to heart be much affected by. To one’s heart’s content see *content1. With all one’s heart sincerely; with all goodwill. [old english]

    Heartache n. Mental anguish.

    Heart attack n. Sudden occurrence of coronary thrombosis.

    Heartbeat n. Pulsation of the heart.

    Heartbreak n. Overwhelming distress. heartbreaking adj. Heartbroken adj.

    Heartburn n. Burning sensation in the chest from indigestion.

    Hearten v. Make or become more cheerful. heartening adj.

    Heart failure n. Failure of the heart to function properly, esp. As a cause of death.

    Heartfelt adj. Sincere; deeply felt.

    Hearth n. 1 floor of a fireplace. 2 the home. [old english]

    Hearthrug n. Rug laid before a fireplace.

    Heartily adv. 1 in a hearty manner. 2 very (am heartily sick of it).

    Heartland n. Central part of an area.

    Heartless adj. Unfeeling, pitiless. heartlessly adv.

    Heart-lung machine n. Machine that temporarily takes over the functions of the heart and lungs.

    Heart-rending adj. Very distressing.

    Heart-searching n. Examination of one’s own feelings and motives.

    Heartsick adj. Despondent.

    Heartstrings n.pl. One’s deepest feelings.

    Heartthrob n. Colloq. Person for whom one has (esp. Immature) romantic feelings.

    Heart-to-heart —attrib. Adj. (of a conversation etc.) Candid, intimate. —n.

    Candid or personal conversation.

    Heart-warming adj. Emotionally rewarding or uplifting.

    Heartwood n. Dense inner part of a tree-trunk, yielding the hardest timber.

    Heartwood n. Dense inner part of a tree-trunk, yielding the hardest timber.

    Hearty adj. (-ier, -iest) 1 strong, vigorous. 2 (of a meal or appetite) large. 3 warm, friendly. heartiness n.

    Heat —n. 1 condition of being hot. 2 physics form of energy arising from the motion of bodies’ molecules. 3 hot weather. 4 warmth of feeling; anger or excitement. 5 (foll. By of) most intense part or period of activity (heat of battle). 6 (usu. Preliminary or trial) round in a race etc. —v. 1 make or become hot or warm. 2 inflame. on heat (of mammals, esp.

    Heated adj. Angry; impassioned. heatedly adv.

    Heater n. Stove or other heating device.

    Heath n. 1 area of flattish uncultivated land with low shrubs. 2 plant growing on a heath, esp. Heather. [old english]

    Heathen —n. 1 person not belonging to a predominant religion, esp. Not a christian, jew, or muslim. 2 person regarded as lacking culture or moral principles. —adj. 1 of heathens. 2 having no religion. [old english]

    Heather n. Any of various shrubs growing esp. On moors and heaths. [origin unknown]

    Heath robinson adj. Absurdly ingenious and impracticable. [name of a cartoonist]

    Heating n. 1 imparting or generation of heat. 2 equipment used to heat a building etc.

    Heatproof —adj. Able to resist great heat. —v. Make heatproof.

    Heat shield n. Device to protect (esp. A spacecraft) from excessive heat.

    Heatwave n. Period of unusually hot weather.

    Heave —v. (-ving; past and past part. Heaved or esp. Naut. Hove) 1 lift or haul with great effort. 2 utter with effort (heaved a sigh). 3 colloq. Throw. 4 rise and fall rhythmically or spasmodically. 5 naut. Haul by rope. 6 retch. —n. Heaving. heave in sight come into view. Heave to esp. Naut. Bring or be brought to a standstill. [old english]

    Heaven n. 1 place regarded in some religions as the abode of god and the angels, and of the blessed after death. 2 place or state of supreme bliss. 3 colloq. Delightful thing. 4 (usu. Heaven) god, providence (often as an exclamation or mild oath: heavens). 5 (the heavens) esp. Poet. The sky as seen from the earth, in which the sun, moon, and stars appear. heavenward adv. (also heavenwards). [old english]

    Heavenly adj. 1 of heaven; divine. 2 of the heavens or sky. 3 colloq. Very pleasing; wonderful.

    Heavenly bodies n.pl. The sun, stars, planets, etc.

    Heavensent adj. Providential.

    Heavier-than-air attrib. Adj. (of an aircraft) weighing more than the air it displaces.

    Heavy —adj. (-ier, -iest) 1 of great or unusually high weight; difficult to lift. 2 of great density (heavy metal). 3 abundant, considerable (heavy crop; heavy traffic). 4 severe, intense, extensive (heavy fighting; a heavy sleep). 5 doing a thing to excess (heavy drinker). 6 striking or falling with force; causing strong impact (heavy blows; heavy rain; heavy sea; a heavy fall). 7 (of machinery, artillery, etc.) Very large of its kind; large in calibre etc. 8 needing much physical effort (heavy work). 9 carrying heavy weapons (the heavy brigade). 10 serious or sombre in tone or attitude; dull, tedious. 11 a hard to digest. B hard to read or understand. 12 (of bread etc.) Too dense from not having risen. 13 (of ground) difficult to traverse or work. 14 oppressive; hard to endure (heavy demands). 15 a coarse, ungraceful (heavy features). B unwieldy. —n. (pl. -ies) 1 colloq. Large violent person; thug (esp. Hired). 2 villainous or tragic role or actor. 3 (usu. In pl.) Colloq. Serious newspaper. 4 anything large or heavy of its kind, e.g. A vehicle. —adv. Heavily (esp. In comb.: heavy-laden). heavy on using a lot of (heavy on petrol). Make heavy weather of see *weather. heavily adv. Heaviness n. Heavyish adj. [old english]

    Heavy-duty adj. Intended to withstand hard use.

    Heavy going n. Slow or difficult progress.

    Heavy-handed adj. 1 clumsy. 2 overbearing, oppressive. heavy-handedly adv.

    Heavy-handedness n.

    Heavy-hearted adj. Sad, doleful.

    Heavy hydrogen n. = *deuterium.

    Heavy industry n. Industry producing metal, machinery, etc.

    Heavy metal n. 1 heavy guns. 2 metal of high density. 3 colloq. Loud kind of rock music with a pounding rhythm.

    Heavy petting n. Erotic fondling that stops short of intercourse.

    Heavy water n. Water composed of deuterium and oxygen.

    Heavyweight n. 1 a weight in certain sports, in amateur boxing over 81 kg. B sportsman of this weight. 2 person etc. Of above average weight. 3 colloq. Person of influence or importance.

    Hebdomadal adj. Formal weekly, esp. Meeting weekly. [greek hepta seven]

    Hebe n. Evergreen flowering shrub from new zealand. [greek goddess hebe]

    Hebraic adj. Of hebrew or the hebrews.

    Hebraic adj. Of hebrew or the hebrews.

    Hebrew —n. 1 member of a semitic people orig. Centred in ancient palestine. 2 a their language. B modern form of this, used esp. In israel. —adj. 1 of or in hebrew. 2 of the hebrews or the jews. [hebrew, = one from the other side of the river]

    Heck int. Colloq. Mild exclamation of surprise or dismay. [a form of *hell]

    Heckle —v. (-ling) interrupt and harass (a public speaker). —n. Act of heckling. heckler n. [var. Of *hackle]

    Hectare n. Metric unit of square measure, 100 ares (2.471 acres or 10,000 square metres). [french: related to hecto-, are2]

    Hectic adj. 1 busy and confused; excited. 2 feverish. hectically adv. [greek hektikos habitual]

    Hecto-comb. Form hundred. [greek hekaton]

    Hectogram n. (also hectogramme) metric unit of mass equal to 100 grams.

    Hector —v. Bully, intimidate. —n. Bully. [from the name hector in the iliad]

    He’d contr. 1 he had. 2 he would.

    Hedge —n. 1 fence or boundary of dense bushes or shrubs. 2 protection against possible loss. —v. (-ging) 1 surround or bound with a hedge. 2 (foll. By in) enclose. 3 a reduce one’s risk of loss on (a bet or speculation) by compensating transactions on the other side. B avoid committing oneself. [old english]

    Hedgehog n. Small insect-eating mammal with a piglike snout and a coat of spines, rolling itself up into a ball when attacked.

    Hedge-hop v. Fly at a very low altitude.

    Hedgerow n. Row of bushes etc. Forming a hedge.

    Hedge sparrow n. Common grey and brown bird; the dunnock.

    Hedonism n. 1 belief in pleasure as mankind’s proper aim. 2 behaviour based on this. hedonist n. Hedonistic adj. [greek hedone pleasure]

    Heebie-jeebies n.pl. (prec. By the) slang nervous anxiety, tension. [origin unknown]

    Heed —v. Attend to; take notice of. —n. Careful attention. heedful adj. Heedless adj. Heedlessly adv. [old english]

    Hee-haw —n. Bray of a donkey. —v. Make a braying sound. [imitative]

    Heel1 —n. 1 back of the foot below the ankle. 2 a part of a sock etc. Covering this. B part of a shoe etc. Supporting this. 3 thing like a heel in form or position. 4 crust end of a loaf of bread. 5 colloq. Scoundrel. 6 (as int.) Command to a dog to walk close to its owner’s heel. —v. 1 fit or renew a heel on (a shoe etc.). 2 touch the ground with the heel as in dancing. 3 (foll. By out) rugby pass the ball with the heel. at heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. At (or on) the heels of following closely after (a person or event). Cool (or kick) one’s heels be kept waiting. Down at heel 1 (of a shoe) with the heel worn down. 2 (of a person) shabby. Take to one’s heels run away. To heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. Turn on one’s heel turn sharply round. [old english]

    Heel2 —v. (often foll. By over) 1 (of a ship etc.) Lean over. 2 cause (a ship etc.) To do this. —n. Act or amount of heeling. [obsolete heeld, from germanic]

    Heel3 var. Of *hele.

    Heelball n. 1 mixture of hard wax and lampblack used by shoemakers for polishing. 2 this or a similar mixture used in brass-rubbing.

    Hefty adj. (-ier, -iest) 1 (of a person) big and strong. 2 (of a thing) large, heavy, powerful. heftily adv. Heftiness n. [heft weight: related to *heave]

    Hegemony n. Leadership, esp. By one state of a confederacy. [greek hegemon leader]

    Hegira n. (also hejira) 1 muhammad’s flight from mecca in ad 622. 2 muslim era reckoned from this date. [arabic hijra departure]

    Heifer n. Young cow, esp. One that has not had more than one calf. [old english]

    Height n. 1 measurement from base to top or head to foot. 2 elevation above the ground or a recognized level. 3 considerable elevation (situated at a height). 4 high place or area. 5 top. 6 a most intense part or period (battle was at its height). B extreme example (the height of fashion). [old english]

    Heighten v. Make or become higher or more intense.

    Heinous adj. Utterly odious or wicked. [french haïr hate]

    Heir n. (fem. Heiress) person entitled to property or rank as the legal successor of its former holder. [latin heres hered-]

    Heir apparent n. Heir whose claim cannot be set aside by the birth of another heir.

    Heirloom n. 1 piece of personal property that has been in a family for several generations. 2 piece of property as part of an inheritance.

    Heir presumptive n. Heir whose claim may be set aside by the birth of another

    Heir presumptive n. Heir whose claim may be set aside by the birth of another heir.

    Hejira var. Of *hegira.

    Held past and past part. Of *hold1.

    Hele v. (-ling) (also heel) (foll. By in) set (a plant) in the ground temporarily and cover its roots. [old english]

    Helical adj. Having the form of a helix.

    Helices pl. Of *helix.

    Helicopter n. Wingless aircraft obtaining lift and propulsion from horizontally revolving overhead blades. [greek: related to *helix, pteron wing]

    Helio-comb. Form sun. [greek helios sun]

    Heliocentric adj. 1 regarding the sun as centre. 2 considered as viewed from the sun’s centre.

    Heliograph —n. 1 signalling apparatus reflecting sunlight in flashes. 2 message sent by means of this. —v. Send (a message) by heliograph.

    Heliotrope n. Plant with fragrant purple flowers. [greek: related to *helio-, trepo turn]

    Heliport n. Place where helicopters take off and land.

    Helium n. Light inert gaseous element used in airships and as a refrigerant. [related to *helio-]

    Helix n. (pl. Helices) spiral curve (like a corkscrew) or coiled curve (like a watch spring). [latin from greek]

    Hell —n. 1 place regarded in some religions as the abode of the dead, or of devils and condemned sinners. 2 place or state of misery or wickedness. —int. Expressing anger, surprise, etc. the hell (usu. Prec. By what, where, who, etc.) Expressing anger, disbelief, etc. (who the hell is this?; the hell you are!). Beat etc. The hell out of colloq. Beat etc. Without restraint. Come hell or high waterno matter what the difficulties. For the hell of it colloq. Just for fun. Get hell colloq. Be severely scolded or punished. Give a person hell colloq. Scold or punish a person. A (or one) hell of a colloq. Outstanding example of (a hell of a mess; one hell of a party). Like hell colloq. 1 not at all. 2 recklessly, exceedingly. [old english]

    He’ll contr. He will; he shall.

    Hell-bent adj. (foll. By on) recklessly determined.

    Hellebore n. Evergreen plant with usu. White, purple, or green flowers, e.g. The christmas rose. [greek (h)elleborus]

    Hellene n. 1 native of modern greece. 2 ancient greek. hellenic adj. [greek]

    Hellenism n. (esp. Ancient) greek character or culture. hellenist n.

    Hellenistic adj. Of greek history, language, and culture of the late 4th to the late 1st c. Bc.

    Hell-fire n. Fire(s) regarded as existing in hell.

    Hell for leather adv. At full speed.

    Hell-hole n. Oppressive or unbearable place.

    Hellish —adj. 1 of or like hell. 2 colloq. Extremely difficult or unpleasant. — adv. Colloq. Extremely (hellish expensive). hellishly adv.

    Hello (also hallo, hullo) —int. Expression of informal greeting, or of surprise, or to call attention. —n. (pl. -s) cry of ‘hello’. [var. Of earlier hollo]

    Hell’s angel n. Member of a gang of male motor-cycle enthusiasts notorious for outrageous and violent behaviour.

    outrageous and violent behaviour.

    Helm n. Tiller or wheel for controlling a ship’s rudder. at the helm in control; at the head of an organization etc. [old english]

    Helmet n. Protective head-covering worn by a policeman, motor cyclist, etc. [french from germanic]

    Helmsman n. Person who steers a ship.

    Helot n. Serf, esp. (helot) of a class in ancient sparta. [latin from greek]

    Help —v. 1 provide with the means towards what is needed or sought (helped me with my work; helped me (to) pay my debts; helped him on with his coat). 2 (often absol.) Be of use or service to (does that help?). 3 contribute to alleviating (a pain or difficulty). 4 prevent or remedy (it can’t be helped). 5 (usu. With neg.) A refrain from (can’t help it; could not help laughing). B refl. Refrain from acting (couldn’t help himself). 6 (often foll. By to) serve (a person with food). — n. 1 helping or being helped (need your help; came to our help). 2 person or thing that helps. 3 colloq. Domestic assistant or assistance. 4 remedy or escape (there is no help for it). help oneself (often foll. By to) 1 serve oneself (with food etc.). 2 take without permission. Help a person out give a person help, esp. In difficulty. helper n. [old english]

    Helpful adj. Giving help; useful. helpfully adv. Helpfulness n.

    Helping n. Portion of food at a meal.

    Helpless adj. 1 lacking help or protection; defenceless. 2 unable to act without help. helplessly adv. Helplessness n.

    Helpline n. Telephone service providing help with problems.

    Helpmate n. Helpful companion or partner.

    Helter-skelter —adv. & adj. In disorderly haste. —n. (at a fairground) external spiral slide round a tower. [imitative]

    Hem1 —n. Border of cloth where the edge is turned under and sewn down. —v. (-mm-) turn down and sew in the edge of (cloth etc.). hem in confine; restrict the movement of. [old english]

    Hem2 —int. Calling attention or expressing hesitation by a slight cough. —n. Utterance of this. —v. (-mm-) say hem; hesitate in speech. hem and haw = hum and haw (see *hum). [imitative]

    Hemal adj. (brit. Haem-) of the blood. [greek haima blood]

    He-man n. Masterful or virile man.

    Hematite n. (brit. Haem-) a ferric oxide ore. [latin: related to *haemal]

    Hematology n. (brit. Haem-) the study of the blood. haematologist n.

    Hemi-comb. Form half. [greek, = latin semi-]

    Hemipterous adj. Of the insect order including aphids, bugs, and cicadas, with piercing or sucking mouthparts. [greek pteron wing]

    Hemisphere n. 1 half a sphere. 2 half of the earth, esp. As divided by the equator (into northern and southern hemisphere) or by a line passing through the poles (into eastern and western hemisphere). hemispherical adj. [greek: related to hemi-, sphere]

    Hemline n. Lower edge of a skirt etc.

    Hemlock n. 1 poisonous plant with fernlike leaves and small white flowers. 2 poison made from this. [old english]

    Hemoglobin n. (brit. Haem-) oxygen-carrying substance in the red blood cells of vertebrates. [from *globulin]

    Hemophilia n. (brit. Haem-) hereditary failure of the blood to clot normally with the tendency to bleed severely from even a slight injury. [greek haima blood, philia loving]

    Hemophiliac n. (brit. Haem-) person with haemophilia.

    Hemorrhage (brit. Haem-) —n. 1 profuse loss of blood from a ruptured blood-vessel. 2 damaging loss, esp. Of people or assets. —v. (-ging) suffer a haemorrhage. [greek haima blood, rhegnumi burst]

    Hemorrhoids n.pl. (brit. Haem-) swollen veins in the wall of the anus; piles. [greek haima blood, -rhoos -flowing]

    Hemp n. 1 (in full indian hemp) asian herbaceous plant. 2 its fibre used to make rope and stout fabrics. 3 narcotic drug made from the hemp plant. [old english]

    Hempen adj. Made of hemp.

    Hemstitch —n. Decorative stitch. —v. Hem with this stitch.

    Hen n. Female bird, esp. Of a domestic fowl. [old english]

    Henbane n. Poisonous hairy plant with an unpleasant smell.

    Hence adv. 1 from this time (two years hence). 2 for this reason (hence we seem to be wrong). 3 archaic from here. [old english]

    Henceforth adv. (also henceforward) from this time onwards.

    Henchman n. Usu. Derog. Trusted supporter. [old english hengst horse, *man]

    Henge n. Prehistoric monument consisting of a circle of stone or wood uprights. [stonehenge in s. England]

    Henna —n. 1 tropical shrub. 2 reddish dye made from it and used to colour hair. —v. (hennaed, hennaing) dye with henna. [arabic]

    Hen-party n. Colloq. Social gathering of women only.

    Henpeck v. (usu. In passive) (of a wife) constantly nag her husband.

    Henry n. (pl. -s or -ies) electr. Si unit of inductance. [henry, name of a physicist]

    Hep var. Of *hip4.

    Hepatic adj. Of the liver. [greek hepar -atos liver]

    Hepatitis n. Inflammation of the liver. [related to *hepatic]

    Hepta-comb. Form seven. [greek]

    Heptagon n. Plane figure with seven sides and angles. heptagonal adj. [greek:

    related to *hepta-, -gonos angled]

    Her —pron. 1 objective case of she (i like her). 2 colloq. She (it’s her all right; am older than her). —poss. Pron. (attrib.) Of or belonging to her or herself (her house; her own business). [old english dative and genitive of she]

    Herald —n. 1 official messenger bringing news. 2 forerunner, harbinger. 3 a hist. Officer responsible for state ceremonial and etiquette. B official concerned with pedigrees and coats of arms. —v. Proclaim the approach of; usher in. heraldic adj. [french from germanic]

    Heraldry n. 1 art or knowledge of a herald. 2 coats of arms.

    Herb n. 1 any non-woody seed-bearing plant. 2 plant with leaves, seeds, or flowers used for flavouring, food, medicine, scent, etc. herby adj. (-ier, -iest). [latin herba]

    Herbaceous adj. Of or like herbs.

    Herbaceous border n. Garden border containing esp. Perennial flowering plants.

    Herbage n. Vegetation collectively, esp. As pasture.

    Herbal —adj. Of herbs in medicinal and culinary use. —n. Book describing the medicinal and culinary uses of herbs.

    Herbalist n. 1 dealer in medicinal herbs. 2 writer on herbs.

    Herbarium n. (pl. -ria) 1 systematically arranged collection of dried plants. 2 book, room, etc. For these.

    Herbicide n. Poison used to destroy unwanted vegetation.

    Herbivore n. Animal that feeds on plants. herbivorous adj. [latin voro devour]

    Herculean adj. Having or requiring great strength or effort. [from the name hercules, latin alteration of greek herakles]

    Herd —n. 1 a number of animals, esp. Cattle, feeding or travelling or kept together. 2 (prec. By the) derog. Large number of people; mob (tends to follow the herd). —v. 1 (cause to) go in a herd (herded together for warmth; herded the cattle into the field). 2 look after (sheep, cattle, etc.). [old english]

    Herd instinct n. (prec. By the) tendency to think and act as a crowd.

    Herdsman n. Man who owns or tends a herd.

    Here —adv. 1 in or at or to this place or position (come here; sit here). 2 indicating a person’s presence or a thing offered (my son here will show you; here is your coat). 3 at this point in the argument, situation, etc. (here i have a question). —n.

    Hereabouts adv. (also hereabout) near this place.

    Hereafter —adv. From now on; in the future. —n. 1 the future. 2 life after death.

    Here and now adv. At this very moment; immediately.

    Here and there adv. In various places.

    Hereby adv. By this means; as a result of this.

    Hereditable adj. That can be inherited. [latin: related to *heir]

    Hereditary adj. 1 (of a disease, instinct, etc.) Able to be passed down genetically from one generation to another. 2 a descending by inheritance. B holding a position by inheritance. [latin: related to *heir]

    Heredity n. 1 a passing on of physical or mental characteristics genetically. B these characteristics. 2 genetic constitution.

    Hereford n. Animal of a breed of red and white beef cattle. [hereford in england]

    Herein adv. Formal in this matter, book, etc.

    Hereinafter adv. Esp. Law formal 1 from this point on. 2 in a later part of this document etc.

    Hereof adv. Formal of this.

    Heresy n. (pl. -ies) 1 esp. Rc ch. Religious belief or practice contrary to orthodox doctrine. 2 opinion contrary to what is normally accepted or maintained. [greek hairesis choice]

    Heretic n. 1 person believing in or practising religious heresy. 2 holder of an unorthodox opinion. heretical adj.

    Hereto adv. Formal to this matter.

    Heretofore adv. Formal before this time.

    Hereupon adv. After this; in consequence of this.

    Herewith adv. With this (esp. Of an enclosure in a letter etc.).

    Heritable adj. 1 law capable of being inherited or of inheriting. 2 biol. Genetically transmissible from parent to offspring. [french: related to *heir]

    Heritage n. 1 what is or may be inherited. 2 inherited circumstances, benefits, etc. 3 a nation’s historic buildings, monuments, countryside, etc., esp. Whenregarded as worthy of preservation.

    Hermaphrodite —n. Person, animal, or plant having both male and female reproductive organs. —adj. Combining both sexes. hermaphroditic adj. [from hermaphroditus, son of hermes and aphrodite who became joined in one body to a nymph]

    Hermetic adj. With an airtight closure. hermetically adv. [from the greek god hermes, regarded as the founder of alchemy]

    Hermit n. Person (esp. An early christian) living in solitude and austerity. hermitic adj. [greek eremos solitary]

    Hermitage n. 1 hermit’s dwelling. 2 secluded dwelling.

    Hermit-crab n. Crab that lives in a mollusc’s cast-off shell.

    Hernia n. Protrusion of part of an organ through the wall of the body cavity containing it. [latin]

    Hero n. (pl. -es) 1 person noted or admired for nobility, courage, outstanding achievements, etc. 2 chief male character in a play, story, etc. [greek heros]

    Heroic —adj. Of, fit for, or like a hero; very brave. —n. (in pl.) 1 high-flown language or sentiments. 2 unduly bold behaviour. heroically adv.

    Heroin n. Addictive analgesic drug derived from morphine, often used as a narcotic. [german: related to *hero, from the effect on the user’s self-esteem]

    Hay n. Grass mown and dried for fodder. make hay (while the sun shines) seize opportunities. [old english]

    Haycock n. Conical heap of hay.

    Hay fever n. Allergy with asthmatic symptoms etc., caused by pollen or dust.

    Haymaking n. Mowing grass and spreading it to dry. haymaker n.

    Haystack n. (also hayrick) packed pile of hay with a pointed or ridged top.

    Haywire adj. Colloq. Badly disorganized, out of control.

    Hazard —n. 1 danger or risk. 2 source of this. 3 golf obstacle, e.g. A bunker. —

    v. 1 venture (hazard a guess). 2 risk. [arabic az-zahr chance, luck]

    Hazardous adj. Risky.

    Haze n. 1 thin atmospheric vapour. 2 mental obscurity or confusion. [back-formation from *hazy]

    Hazel n. 1 hedgerow shrub bearing round brown edible nuts. 2 greenish-brown. [old english]

    Hazelnut n. Nut of the hazel.

    Hazy adj. (-ier, -iest) 1 misty. 2 vague, indistinct. 3 confused, uncertain. hazily adv. Haziness n. [origin unknown]

    Hb abbr. (of pencil-lead) hard black.

    H-bomb n. = *hydrogen bomb. [from *h3]

    Hcf abbr. Highest common factor.

    He abbr. 1 his or her excellency. 2 his eminence. 3 high explosive.

    He symb. Helium.

    He —pron. (obj. Him; poss. His; pl. They) 1 the man, boy, or male animal previously named or in question. 2 person etc. Of unspecified sex (if anyone comes he will have to wait; he who hesitates). —n. 1 male; man. 2 (in comb.) Male (he-goat). [old english]

    Head —n. 1 upper part of the human body, or foremost or upper part of an animal’s body, containing the brain, mouth, and sense-organs. 2 a seat of intellect (use your head). B mental aptitude or tolerance (a good head for business; no head for heights). 3 thing like a head in form or position, esp.: a the operative part of a tool. B the top of a nail. C the leaves or flowers at the top of a stem. D foam on the top of a glass of beer etc. 4 a person in charge, esp. The principal teacher of a school. B position of command. 5 front part of a queue etc. 6 upper end of a table or bed etc. 7 top or highest part of a page, stairs, etc. 8 a individual person as a unit (£10 per head). B (pl. Same) individual animal as a unit (20 head). 9 a side of a coin bearing the image of a head. B (usu. In pl.) This as a choice when tossing a coin. 10 a source of a river etc. B end of a lake at which a river enters it. 11 height or length of a head as a measure. 12 part of a machine in contact with or very close to what is being worked on, esp.: a the part of a tape recorder that touches the moving tape and converts signals. B the part of a record-player that holds the playing cartridge and stylus. 13 (usu. In phr. Come to a head) climax, crisis. 14 a confined body of water or steam in an engine etc. B pressure exerted by this. 15 promontory (esp. In place-names) (beachy head). 16 heading or headline. 17 fully developed top of a boil etc. 18 colloq. Headache. 19 (attrib.) Chief, principal. —v. 1 be at the head or front of. 2 be in charge of. 3 provide with a head or heading. 4 (often foll. By for) face, move, or direct in a specified direction (is heading for trouble). 5 hit (a ball etc.) With the head. above (or over) one’s head beyond one’s understanding. Come to a head reach a crisis. Get it into one’s head (foll. By that) 1 adopt a mistaken idea. 2 form a definite plan. Give a person his (or her) head allow a person to act freely. Go to one’s head 1 make one slightly drunk. 2 make one conceited. Head off 1 get ahead of so as to intercept and turn aside. 2 forestall. Keep (or lose)

    one’s head remain (or fail to remain) calm. Off one’s head slang crazy. Off the top of one’s head colloq. Impromptu. On one’s (or one’s own) head as one’s own responsibility. Out of one’s head slang crazy. Over one’s head 1 beyond one’s understanding.

    Headache n. 1 continuous pain in the head. 2 colloq. Worrying problem.

    headachy adj.

    Headband n. Band worn round the head as decoration or to confine the hair.

    Headbanger n. Slang 1 person who shakes his or her head violently to the rhythm of music; fan of loud music. 2 crazy or eccentric person.

    Headboard n. Upright panel at the head of a bed.

    Head-butt —n. Thrust with the head into the chin or body of another person. — v. Attack with a head-butt.

    Headcount n. 1 counting of individual people. 2 total number of people, esp.

    Employees.

    Headdress n. Covering for the head.

    Header n. 1 football shot or pass made with the head. 2 colloq. Headlong fall or dive. 3 brick etc. Laid at right angles to the face of a wall. 4 (in full header-tank) tank of water etc. Maintaining pressure in a plumbing system.

    Head first adv. 1 with the head foremost. 2 precipitately.

    Headgear n. Hat or headdress.

    Head-hunting n. 1 collecting of the heads of dead enemies as trophies. 2 seeking of (esp. Senior) staff by approaching people employed elsewhere. head-hunt v. Head-hunter n.

    Heading n. 1 a title at the head of a page or section of a book etc. B section of a subject of discourse etc. 2 horizontal passage made in preparation for building a tunnel, or in a mine.

    Head in the sand n. Refusal to acknowledge danger or difficulty.

    Headlamp n. = *headlight.

    Headland n. Promontory.

    Headlight n. 1 strong light at the front of a vehicle. 2 beam from this.

    Headline n. 1 heading at the top of an article or page, esp. In a newspaper. 2 (in pl.) Summary of the most important items in a news bulletin.

    Headlock n. Wrestling hold with an arm round the opponent’s head.

    Headlong adv. & adj. 1 with the head foremost. 2 in a rush.

    Headman n. Chief man of a tribe etc.

    Headmaster n. (fem. Headmistress) = *head teacher.

    Head-on adj. & adv. 1 with the front foremost (head-on crash). 2 in direct confrontation.

    Head over heels —n. Turning over completely in forward motion as in a somersault etc. —adv. Utterly (head over heels in love).

    Headphones n.pl. Set of earphones fitting over the head, for listening to audio equipment etc.

    Headquarters n. (as sing. Or pl.) Administrative centre of an organization.

    Headrest n. Support for the head, esp. On a seat.

    Headroom n. Space or clearance above a vehicle, person’s head, etc.

    Headscarf n. Scarf worn round the head and tied under the chin.

    Headset n. Headphones, often with a microphone attached.

    Headship n. Position of head or chief, esp. In a school.

    Headshrinker n. Slang psychiatrist.

    Headstall n. Part of a halter or bridle fitting round a horse’s head.

    Head start n. Advantage granted or gained at an early stage.

    Headstone n. Stone set up at the head of a grave.

    Headstrong adj. Self-willed.

    Head teacher n. Teacher in charge of a school.

    Headwaters n.pl. Streams flowing from the sources of a river.

    Headway n. 1 progress. 2 ship’s rate of progress. 3 headroom.

    Head wind n. Wind blowing from directly in front.

    Headword n. Word forming a heading.

    Heady adj. (-ier, -iest) 1 (of liquor) potent. 2 intoxicating, exciting. 3 impulsive, rash. 4 headachy. headily adv. Headiness n.

    Heal v. 1 (often foll. By up) become sound or healthy again. 2 cause to heal. 3 put right (differences etc.). 4 alleviate (sorrow etc.). healer n. [old english: related to *whole]

    Health n. 1 state of being well in body or mind. 2 person’s mental or physical condition. 3 soundness, esp. Financial or moral. [old english: related to *whole]

    Health centre n. Building containing various local medical services and doctors’ practices.

    Health farm n. Establishment offering improved health by a regime of dieting, exercise, etc.

    Health food n. Natural food, thought to promote good health.

    Healthful adj. Conducive to good health; beneficial.

    Health service n. Public service providing medical care.

    Health visitor n. Trained nurse who visits mothers and babies, or the sick or elderly, at home.

    Healthy adj. (-ier, -iest) 1 having, showing, or promoting good health. 2 indicative of (esp. Moral or financial) health (a healthy sign). 3 substantial (won by a healthy 40 seconds). healthily adv. Healthiness n.

    Heap —n. 1 disorderly pile. 2 (esp. In pl.) Colloq. Large number or amount. 3 slang dilapidated vehicle. —v. 1 (foll. By up, together, etc.) Collect or be collected in a heap. 2 (foll. By with) load copiously with. 3 (foll. By on, upon) give or offer copiously (heaped insults on them). [old english]

    Hear v. (past and past part. Heard) 1 (also absol.) Perceive with the ear. 2 listen to (heard them on the radio). 3 listen judicially to (a case etc.). 4 be told or informed. 5 (foll. By from) be contacted by, esp. By letter or telephone. 6 be ready to obey (an order). 7 grant (a prayer). have heard of be aware of the existence of. Hear! Hear! Int. Expressing agreement. Hear a person out listen to all a person says. Will not hear of will not allow. hearer n. [old english]

    Hearing n. 1 faculty of perceiving sounds. 2 range within which sounds may be heard (within hearing). 3 opportunity to state one’s case (a fair hearing). 4 trial of a case before a court.

    Hearing-aid n. Small device to amplify sound, worn by a partially deaf person.

    Hearken v. Archaic (often foll. By to) listen. [old english: related to *hark]

    Hearsay n. Rumour, gossip.

    Hearse n. Vehicle for conveying the coffin at a funeral. [french herse harrow, from latin hirpex large rake]

    Heart n. 1 hollow muscular organ maintaining the circulation of blood by rhythmic contraction and dilation. 2 region of the heart; the breast. 3 a centre of thought, feeling, and emotion (esp. Love). B capacity for feeling emotion (has no heart). 4 a courage or enthusiasm (take heart). B mood or feeling (change of heart). 5 a central or innermost part of something. B essence (heart of the matter). 6 compact tender inner part of a lettuce etc. 7 a heart-shaped thing. B conventional representation of a heart with two equal curves meeting at a point at the bottom and a cusp at the top. 8 a playing-card of the suit denoted by a red figure of a heart. B (in pl.) This suit. at heart 1 in one’s inmost feelings. 2 basically. Break a person’s heart overwhelm a person with sorrow. By heart from memory. Give (or lose) one’s heart (often foll. By to) fall in love (with). Have the heart (usu. With neg.; foll. By to + infin.) Be insensitive or hard-hearted enough (didn’t have the heart to ask him). Take to heart be much affected by. To one’s heart’s content see *content1. With all one’s heart sincerely; with all goodwill. [old english]

    Heartache n. Mental anguish.

    Heart attack n. Sudden occurrence of coronary thrombosis.

    Heartbeat n. Pulsation of the heart.

    Heartbreak n. Overwhelming distress. heartbreaking adj. Heartbroken adj.

    Heartburn n. Burning sensation in the chest from indigestion.

    Hearten v. Make or become more cheerful. heartening adj.

    Heart failure n. Failure of the heart to function properly, esp. As a cause of death.

    Heartfelt adj. Sincere; deeply felt.

    Hearth n. 1 floor of a fireplace. 2 the home. [old english]

    Hearthrug n. Rug laid before a fireplace.

    Heartily adv. 1 in a hearty manner. 2 very (am heartily sick of it).

    Heartland n. Central part of an area.

    Heartless adj. Unfeeling, pitiless. heartlessly adv.

    Heart-lung machine n. Machine that temporarily takes over the functions of the heart and lungs.

    Heart-rending adj. Very distressing.

    Heart-searching n. Examination of one’s own feelings and motives.

    Heartsick adj. Despondent.

    Heartstrings n.pl. One’s deepest feelings.

    Heartthrob n. Colloq. Person for whom one has (esp. Immature) romantic feelings.

    Heart-to-heart —attrib. Adj. (of a conversation etc.) Candid, intimate. —n.

    Candid or personal conversation.

    Heart-warming adj. Emotionally rewarding or uplifting.

    Heartwood n. Dense inner part of a tree-trunk, yielding the hardest timber.

    Hearty adj. (-ier, -iest) 1 strong, vigorous. 2 (of a meal or appetite) large. 3 warm, friendly. heartiness n.

    Heat —n. 1 condition of being hot. 2 physics form of energy arising from the motion of bodies’ molecules. 3 hot weather. 4 warmth of feeling; anger or excitement. 5 (foll. By of) most intense part or period of activity (heat of battle). 6 (usu. Preliminary or trial) round in a race etc. —v. 1 make or become hot or warm. 2 inflame. on heat (of mammals, esp. Females) sexually receptive. [old english]

    Heated adj. Angry; impassioned. heatedly adv.

    Heater n. Stove or other heating device.

    Heath n. 1 area of flattish uncultivated land with low shrubs. 2 plant growing on a heath, esp. Heather. [old english]

    Heathen —n. 1 person not belonging to a predominant religion, esp. Not a christian, jew, or muslim. 2 person regarded as lacking culture or moral principles. —adj. 1 of heathens. 2 having no religion. [old english]

    Heather n. Any of various shrubs growing esp. On moors and heaths. [origin unknown]

    Heath robinson adj. Absurdly ingenious and impracticable. [name of a

    cartoonist]

    Heating n. 1 imparting or generation of heat. 2 equipment used to heat a building etc.

    Heatproof —adj. Able to resist great heat. —v. Make heatproof.

    Heat shield n. Device to protect (esp. A spacecraft) from excessive heat.

    Heatwave n. Period of unusually hot weather.

    Heave —v. (-ving; past and past part. Heaved or esp. Naut. Hove) 1 lift or haul with great effort. 2 utter with effort (heaved a sigh). 3 colloq. Throw. 4 rise and fall rhythmically or spasmodically. 5 naut. Haul by rope. 6 retch. —n. Heaving. heave in sight come into view. Heave to esp. Naut. Bring or be brought to a standstill. [old english]

    Heaven n. 1 place regarded in some religions as the abode of god and the angels, and of the blessed after death. 2 place or state of supreme bliss. 3 colloq. Delightful thing. 4 (usu. Heaven) god, providence (often as an exclamation or mild oath: heavens). 5 (the heavens) esp. Poet. The sky as seen from the earth, in which the sun, moon, and stars appear. heavenward adv. (also heavenwards). [old english]

    Heavenly adj. 1 of heaven; divine. 2 of the heavens or sky. 3 colloq. Very pleasing; wonderful.

    Heavenly bodies n.pl. The sun, stars, planets, etc.

    Heavensent adj. Providential.

    Heavier-than-air attrib. Adj. (of an aircraft) weighing more than the air it displaces.

    Heavy —adj. (-ier, -iest) 1 of great or unusually high weight; difficult to lift. 2 of great density (heavy metal). 3 abundant, considerable (heavy crop; heavy traffic). 4 severe, intense, extensive (heavy fighting; a heavy sleep). 5 doing a thing to excess (heavy drinker). 6 striking or falling with force; causing strong impact (heavy blows; heavy rain; heavy sea; a heavy fall). 7 (of machinery, artillery, etc.) Very large of its kind; large in calibre etc. 8 needing much physical effort (heavy work). 9 carrying heavy weapons (the heavy brigade). 10 serious or sombre in tone or attitude; dull, tedious. 11 a hard to digest. B hard to read or understand. 12 (of bread etc.) Too dense from not having risen. 13 (of ground) difficult to traverse or work. 14 oppressive; hard to endure (heavy demands). 15 a coarse, ungraceful (heavy features). B unwieldy. —n. (pl. -ies) 1 colloq. Large violent person; thug (esp. Hired). 2 villainous or tragic role or actor. 3 (usu. In pl.) Colloq. Serious newspaper. 4 anything large or heavy of its kind, e.g. A vehicle. —adv. Heavily (esp. In comb.: heavy-laden).

    Heavy-duty adj. Intended to withstand hard use.

    Heavy going n. Slow or difficult progress.

    Heavy-handed adj. 1 clumsy. 2 overbearing, oppressive. heavy-handedly adv.

    Heavy-handedness n.

    Heavy-hearted adj. Sad, doleful.

    Heavy hydrogen n. = *deuterium.

    Heavy industry n. Industry producing metal, machinery, etc.

    Heavy metal n. 1 heavy guns. 2 metal of high density. 3 colloq. Loud kind of rock music with a pounding rhythm.

    Heavy petting n. Erotic fondling that stops short of intercourse.

    Heavy water n. Water composed of deuterium and oxygen.

    Heavyweight n. 1 a weight in certain sports, in amateur boxing over 81 kg. B sportsman of this weight. 2 person etc. Of above average weight. 3 colloq. Person of influence or importance.

    Hebdomadal adj. Formal weekly, esp. Meeting weekly. [greek hepta seven]

    Hebe n. Evergreen flowering shrub from new zealand. [greek goddess hebe]

    Hebraic adj. Of hebrew or the hebrews.

    Hebraic adj. Of hebrew or the hebrews.

    Hebrew —n. 1 member of a semitic people orig. Centred in ancient palestine. 2 a their language. B modern form of this, used esp. In israel. —adj. 1 of or in hebrew. 2 of the hebrews or the jews. [hebrew, = one from the other side of the river]

    Heck int. Colloq. Mild exclamation of surprise or dismay. [a form of *hell]

    Heckle —v. (-ling) interrupt and harass (a public speaker). —n. Act of heckling. heckler n. [var. Of *hackle]

    Hectare n. Metric unit of square measure, 100 ares (2.471 acres or 10,000 square metres). [french: related to hecto-, are2]

    Hectic adj. 1 busy and confused; excited. 2 feverish. hectically adv. [greek hektikos habitual]

    Hecto-comb. Form hundred. [greek hekaton]

    Hectogram n. (also hectogramme) metric unit of mass equal to 100 grams.

    Hector —v. Bully, intimidate. —n. Bully. [from the name hector in the iliad]

    He’d contr. 1 he had. 2 he would.

    Hedge —n. 1 fence or boundary of dense bushes or shrubs. 2 protection against possible loss. —v. (-ging) 1 surround or bound with a hedge. 2 (foll. By in) enclose. 3 a reduce one’s risk of loss on (a bet or speculation) by compensating transactions on the other side. B avoid committing oneself. [old english]

    Hedgehog n. Small insect-eating mammal with a piglike snout and a coat of spines, rolling itself up into a ball when attacked.

    Hedge-hop v. Fly at a very low altitude.

    Hedgerow n. Row of bushes etc. Forming a hedge.

    Hedge sparrow n. Common grey and brown bird; the dunnock.

    Hedonism n. 1 belief in pleasure as mankind’s proper aim. 2 behaviour based on this. hedonist n. Hedonistic adj. [greek hedone pleasure]

    Heebie-jeebies n.pl. (prec. By the) slang nervous anxiety, tension. [origin unknown]

    Heed —v. Attend to; take notice of. —n. Careful attention. heedful adj. Heedless adj. Heedlessly adv. [old english]

    Hee-haw —n. Bray of a donkey. —v. Make a braying sound. [imitative]

    Heel1 —n. 1 back of the foot below the ankle. 2 a part of a sock etc. Covering this. B part of a shoe etc. Supporting this. 3 thing like a heel in form or position. 4 crust end of a loaf of bread. 5 colloq. Scoundrel. 6 (as int.) Command to a dog to walk close to its owner’s heel. —v. 1 fit or renew a heel on (a shoe etc.). 2 touch the ground with the heel as in dancing. 3 (foll. By out) rugby pass the ball with the heel. at heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. At (or on) the heels of following closely after (a person or event). Cool (or kick) one’s heels be kept waiting. Down at heel 1 (of a shoe) with the heel worn down. 2 (of a person) shabby. Take to one’s heels run away. To heel 1 (of a dog) close behind. 2 (of a person etc.) Under control. Turn on one’s heel turn sharply round. [old english]

    Heel2 —v. (often foll. By over) 1 (of a ship etc.) Lean over. 2 cause (a ship etc.) To do this. —n. Act or amount of heeling. [obsolete heeld, from germanic]

    Heel3 var. Of *hele.

    Heel3 var. Of *hele.

    Heelball n. 1 mixture of hard wax and lampblack used by shoemakers for polishing. 2 this or a similar mixture used in brass-rubbing.

    Hefty adj. (-ier, -iest) 1 (of a person) big and strong. 2 (of a thing) large, heavy, powerful. heftily adv. Heftiness n. [heft weight: related to *heave]

    Hegemony n. Leadership, esp. By one state of a confederacy. [greek hegemon leader]

    Hegira n. (also hejira) 1 muhammad’s flight from mecca in ad 622. 2 muslim era reckoned from this date. [arabic hijra departure]

    Heifer n. Young cow, esp. One that has not had more than one calf. [old english]

    Height n. 1 measurement from base to top or head to foot. 2 elevation above the ground or a recognized level. 3 considerable elevation (situated at a height). 4 high place or area. 5 top. 6 a most intense part or period (battle was at its height). B extreme example (the height of fashion). [old english]

    Heighten v. Make or become higher or more intense.

    Heinous adj. Utterly odious or wicked. [french haïr hate]

    Heir n. (fem. Heiress) person entitled to property or rank as the legal successor of its former holder. [latin heres hered-]

    Heir apparent n. Heir whose claim cannot be set aside by the birth of another heir.

    Heirloom n. 1 piece of personal property that has been in a family for several generations. 2 piece of property as part of an inheritance.

    Heir presumptive n. Heir whose claim may be set aside by the birth of another heir.

    Hejira var. Of *hegira.

    Held past and past part. Of *hold1.

    Hele v. (-ling) (also heel) (foll. By in) set (a plant) in the ground temporarily and cover its roots. [old english]

    Helical adj. Having the form of a helix.

    Helices pl. Of *helix.

    Helicopter n. Wingless aircraft obtaining lift and propulsion from horizontally revolving overhead blades. [greek: related to *helix, pteron wing]

    Helio-comb. Form sun. [greek helios sun]

    Heliocentric adj. 1 regarding the sun as centre. 2 considered as viewed from the sun’s centre.

    Heliograph —n. 1 signalling apparatus reflecting sunlight in flashes. 2 message sent by means of this. —v. Send (a message) by heliograph.

    Heliotrope n. Plant with fragrant purple flowers. [greek: related to *helio-, trepo turn]

    Heliport n. Place where helicopters take off and land.

    Helium n. Light inert gaseous element used in airships and as a refrigerant. [related to *helio-]

    Helix n. (pl. Helices) spiral curve (like a corkscrew) or coiled curve (like a watch spring). [latin from greek]

    Hell —n. 1 place regarded in some religions as the abode of the dead, or of devils and condemned sinners. 2 place or state of misery or wickedness. —int. Expressing anger, surprise, etc. the hell (usu. Prec. By what, where, who, etc.) Expressing anger, disbelief, etc. (who the hell is this?; the hell you are!). Beat etc. The hell out of colloq. Beat etc. Without restraint.

    He’ll contr. He will; he shall.

    Hell-bent adj. (foll. By on) recklessly determined.

    Hellebore n. Evergreen plant with usu. White, purple, or green flowers, e.g. The christmas rose. [greek (h)elleborus]

    Hellene n. 1 native of modern greece. 2 ancient greek. hellenic adj. [greek]

    Hellenism n. (esp. Ancient) greek character or culture. hellenist n.

    Hellenistic adj. Of greek history, language, and culture of the late 4th to the late 1st c. Bc.

    Hell-fire n. Fire(s) regarded as existing in hell.

    Hell for leather adv. At full speed.

    Hell-hole n. Oppressive or unbearable place.

    Hellish —adj. 1 of or like hell. 2 colloq. Extremely difficult or unpleasant. — adv. Colloq. Extremely (hellish expensive). hellishly adv.

    Hello (also hallo, hullo) —int. Expression of informal greeting, or of surprise, or to call attention. —n. (pl. -s) cry of ‘hello’. [var. Of earlier hollo]

    Hell’s angel n. Member of a gang of male motor-cycle enthusiasts notorious for outrageous and violent behaviour.

    Helm n. Tiller or wheel for controlling a ship’s rudder. at the helm in control; at the head of an organization etc. [old english]

    Helmet n. Protective head-covering worn by a policeman, motor cyclist, etc. [french from germanic]

    Helmsman n. Person who steers a ship.

    Helot n. Serf, esp. (helot) of a class in ancient sparta. [latin from greek]

    Help —v. 1 provide with the means towards what is needed or sought (helped me with my work; helped me (to) pay my debts; helped him on with his coat). 2 (often absol.) Be of use or service to (does that help?). 3 contribute to alleviating (a pain or difficulty). 4 prevent or remedy (it can’t be helped). 5 (usu. With neg.) A refrain from (can’t help it; could not help laughing). B refl. Refrain from acting (couldn’t help himself). 6 (often foll. By to) serve (a person with food). — n. 1 helping or being helped (need your help; came to our help). 2 person or thing that helps. 3 colloq. Domestic assistant or assistance. 4 remedy or escape (there is no help for it). help oneself (often foll. By to) 1 serve oneself (with food etc.). 2 take without permission. Help a person out give a person help, esp. In difficulty. helper n. [old english]

    Helpful adj. Giving help; useful. helpfully adv. Helpfulness n.

    Helping n. Portion of food at a meal.

    Helpless adj. 1 lacking help or protection; defenceless. 2 unable to act without

    help. helplessly adv. Helplessness n.

    Helpline n. Telephone service providing help with problems.

    Helpmate n. Helpful companion or partner.

    Helter-skelter —adv. & adj. In disorderly haste. —n. (at a fairground) external spiral slide round a tower. [imitative]

    Hem1 —n. Border of cloth where the edge is turned under and sewn down. —v. (-mm-) turn down and sew in the edge of (cloth etc.). hem in confine; restrict the movement of. [old english]

    Hem2 —int. Calling attention or expressing hesitation by a slight cough. —n. Utterance of this. —v. (-mm-) say hem; hesitate in speech. hem and haw = hum and haw (see *hum). [imitative]

    Hemal adj. (brit. Haem-) of the blood. [greek haima blood]

    He-man n. Masterful or virile man.

    Hematite n. (brit. Haem-) a ferric oxide ore. [latin: related to *haemal]

    Hematology n. (brit. Haem-) the study of the blood. haematologist n.

    Hemi-comb. Form half. [greek, = latin semi-]

    Hemipterous adj. Of the insect order including aphids, bugs, and cicadas, with piercing or sucking mouthparts. [greek pteron wing]

    Hemisphere n. 1 half a sphere. 2 half of the earth, esp. As divided by the equator (into northern and southern hemisphere) or by a line passing through the poles (into eastern and western hemisphere). hemispherical adj. [greek: related to hemi-, sphere]

    Hemline n. Lower edge of a skirt etc.

    Hemlock n. 1 poisonous plant with fernlike leaves and small white flowers. 2 poison made from this. [old english]

    Hemoglobin n. (brit. Haem-) oxygen-carrying substance in the red blood cells of vertebrates. [from *globulin]

    Hemophilia n. (brit. Haem-) hereditary failure of the blood to clot normally with the tendency to bleed severely from even a slight injury. [greek haima blood, philia loving]

    Hemophiliac n. (brit. Haem-) person with haemophilia.

    Hemorrhage (brit. Haem-) —n. 1 profuse loss of blood from a ruptured blood-vessel. 2 damaging loss, esp. Of people or assets. —v. (-ging) suffer a haemorrhage. [greek haima blood, rhegnumi burst]

    Hemorrhoids n.pl. (brit. Haem-) swollen veins in the wall of the anus; piles. [greek haima blood, -rhoos -flowing]

    Hemp n. 1 (in full indian hemp) asian herbaceous plant. 2 its fibre used to make rope and stout fabrics. 3 narcotic drug made from the hemp plant. [old english]

    Hempen adj. Made of hemp.

    Hemstitch —n. Decorative stitch. —v. Hem with this stitch.

    Hen n. Female bird, esp. Of a domestic fowl. [old english]

    Henbane n. Poisonous hairy plant with an unpleasant smell.

    Hence adv. 1 from this time (two years hence). 2 for this reason (hence we seem to be wrong). 3 archaic from here. [old english]

    Henceforth adv. (also henceforward) from this time onwards.

    Henchman n. Usu. Derog. Trusted supporter. [old english hengst horse, *man]

    Henchman n. Usu. Derog. Trusted supporter. [old english hengst horse, *man]

    Henge n. Prehistoric monument consisting of a circle of stone or wood uprights. [stonehenge in s. England]

    Henna —n. 1 tropical shrub. 2 reddish dye made from it and used to colour hair. —v. (hennaed, hennaing) dye with henna. [arabic]

    Hen-party n. Colloq. Social gathering of women only.

    Henpeck v. (usu. In passive) (of a wife) constantly nag her husband.

    Henry n. (pl. -s or -ies) electr. Si unit of inductance. [henry, name of a physicist]

    Hep var. Of *hip4.

    Hepatic adj. Of the liver. [greek hepar -atos liver]

    Hepatitis n. Inflammation of the liver. [related to *hepatic]

    Hepta-comb. Form seven. [greek]

    Heptagon n. Plane figure with seven sides and angles. heptagonal adj. [greek:

    related to *hepta-, -gonos angled]

    Her —pron. 1 objective case of she (i like her). 2 colloq. She (it’s her all right; am older than her). —poss. Pron. (attrib.) Of or belonging to her or herself (her house; her own business). [old english dative and genitive of she]

    Herald —n. 1 official messenger bringing news. 2 forerunner, harbinger. 3 a hist. Officer responsible for state ceremonial and etiquette. B official concerned with pedigrees and coats of arms. —v. Proclaim the approach of; usher in. heraldic adj. [french from germanic]

    Heraldry n. 1 art or knowledge of a herald. 2 coats of arms.

    Herb n. 1 any non-woody seed-bearing plant. 2 plant with leaves, seeds, or flowers used for flavouring, food, medicine, scent, etc. herby adj. (-ier, -iest). [latin herba]

    Herbaceous adj. Of or like herbs.

    Herbaceous border n. Garden border containing esp. Perennial flowering plants.

    Herbage n. Vegetation collectively, esp. As pasture.

    Herbal —adj. Of herbs in medicinal and culinary use. —n. Book describing the medicinal and culinary uses of herbs.

    Herbalist n. 1 dealer in medicinal herbs. 2 writer on herbs.

    Herbarium n. (pl. -ria) 1 systematically arranged collection of dried plants. 2 book, room, etc. For these.

    Herbicide n. Poison used to destroy unwanted vegetation.

    Herbivore n. Animal that feeds on plants. herbivorous adj. [latin voro devour]

    Herculean adj. Having or requiring great strength or effort. [from the name hercules, latin alteration of greek herakles]

    Herd —n. 1 a number of animals, esp. Cattle, feeding or travelling or kept together. 2 (prec. By the) derog. Large number of people; mob (tends to follow the herd). —v. 1 (cause to) go in a herd (herded together for warmth; herded the cattle into the field). 2 look after (sheep, cattle, etc.). [old english]

    Herd instinct n. (prec. By the) tendency to think and act as a crowd.

    Herdsman n. Man who owns or tends a herd.

    Here —adv. 1 in or at or to this place or position (come here; sit here). 2 indicating a person’s presence or a thing offered (my son here will show you;

    here is your coat). 3 at this point in the argument, situation, etc. (here i have a question). —n. This place (get out of here; lives near here; fill it up to here). — int. 1 calling attention: short for come here, look here, etc. (here, where are you going with that?). 2 indicating one’s presence in a roll-call: short for i am here. here goes! Colloq. Expression indicating the start of a bold act. Here’s to i drink to the health of. Here we are colloq. Said on arrival at one’s destination. Here we go again colloq. The same, usu. Undesirable, events are recurring. Here you are said on handing something to somebody. Neither here nor there of no importance. [old english]

    Hereabouts adv. (also hereabout) near this place.

    Hereafter —adv. From now on; in the future. —n. 1 the future. 2 life after death.

    Here and now adv. At this very moment; immediately.

    Here and there adv. In various places.

    Hereby adv. By this means; as a result of this.

    Hereditable adj. That can be inherited. [latin: related to *heir]

    Hereditary adj. 1 (of a disease, instinct, etc.) Able to be passed down genetically from one generation to another. 2 a descending by inheritance. B holding a position by inheritance. [latin: related to *heir]

    Heredity n. 1 a passing on of physical or mental characteristics genetically. B these characteristics. 2 genetic constitution.

    Hereford n. Animal of a breed of red and white beef cattle. [hereford in england]

    Herein adv. Formal in this matter, book, etc.

    Hereinafter adv. Esp. Law formal 1 from this point on. 2 in a later part of this document etc.

    Hereof adv. Formal of this.

    Heresy n. (pl. -ies) 1 esp. Rc ch. Religious belief or practice contrary to orthodox doctrine. 2 opinion contrary to what is normally accepted or maintained. [greek hairesis choice]

    Heretic n. 1 person believing in or practising religious heresy. 2 holder of an unorthodox opinion. heretical adj.

    Hereto adv. Formal to this matter.

    Heretofore adv. Formal before this time.

    Hereupon adv. After this; in consequence of this.

    Hereupon adv. After this; in consequence of this.

    Herewith adv. With this (esp. Of an enclosure in a letter etc.).

    Heritable adj. 1 law capable of being inherited or of inheriting. 2 biol. Genetically transmissible from parent to offspring. [french: related to *heir]

    Heritage n. 1 what is or may be inherited. 2 inherited circumstances, benefits, etc. 3 a nation’s historic buildings, monuments, countryside, etc., esp. Whenregarded as worthy of preservation.

    Hermaphrodite —n. Person, animal, or plant having both male and female reproductive organs. —adj. Combining both sexes. hermaphroditic adj. [from hermaphroditus, son of hermes and aphrodite who became joined in one body to a nymph]

    Hermetic adj. With an airtight closure. hermetically adv. [from the greek god hermes, regarded as the founder of alchemy]

    Hermit n. Person (esp. An early christian) living in solitude and austerity. hermitic adj. [greek eremos solitary]

    Hermitage n. 1 hermit’s dwelling. 2 secluded dwelling.

    Hermit-crab n. Crab that lives in a mollusc’s cast-off shell.

    Hernia n. Protrusion of part of an organ through the wall of the body cavity containing it. [latin]

    Hero n. (pl. -es) 1 person noted or admired for nobility, courage, outstanding achievements, etc. 2 chief male character in a play, story, etc. [greek heros]

    Heroic —adj. Of, fit for, or like a hero; very brave. —n. (in pl.) 1 high-flown language or sentiments. 2 unduly bold behaviour. heroically adv.

    Heroin n. Addictive analgesic drug derived from morphine, often used as a narcotic. [german: related to *hero, from the effect on the user’s self-esteem]

    Heroine n. 1 woman noted or admired for nobility, courage, outstanding achievements, etc. 2 chief female character in a play, story, etc. [greek: related to *hero]

    Heroism n. Heroic conduct or qualities. [french héroïsme: related to *hero]

    Heron n. Long-legged wading bird with a long sshaped neck. [french from germanic]

    Hero-worship —n. Idealization of an admired person. —v. Idolize.

    Herpes n. Virus disease causing skin blisters. [greek herpo creep]

    Herr n. (pl. Herren) 1 title of a german man; mr. 2 german man. [german]

    Herring n. (pl. Same or -s) n. Atlantic fish used as food. [old english]

    Herring-bone n. Stitch or weave consisting of a series of small ‘v’ shapes making a zigzag pattern.

    Herring-gull n. Large gull with dark wing-tips.

    Hers poss. Pron. The one or ones belonging to or associated with her (it is hers; hers are over there). of hers of or belonging to her (friend of hers).

    Herself pron. 1 a emphat. Form of *she or her (she herself will do it). B refl. Form of her (she has hurt herself). 2 in her normal state of body or mind (doesnot feel quite herself today). be herself see oneself. By herself see by oneself. [old english: related to her, *self]

    Hertz n. (pl. Same) si unit of frequency, equal to one cycle per second. [hertz, name of a physicist]

    He’s contr. 1 he is. 2 he has.

    Hesitant adj. Hesitating; irresolute. hesitance n. Hesitancy n. Hesitantly adv.

    Hesitate v. (-ting) 1 show or feel indecision or uncertainty; pause in doubt (hesitated over her choice). 2 be reluctant (i hesitate to say so). hesitation n. [latin haereo haes-stick fast]

    Hessian n. Strong coarse sacking made of hemp or jute. [hesse in germany]

    Hetero-comb. Form other, different. [greek heteros other]

    Heterodox adj. Not orthodox. heterodoxy n. [from *hetero-, greek doxa opinion]

    Heterodyne adj. Radio relating to the production of a lower frequency from the combination of two almost equal high frequencies. [from *hetero-, greek dunamis force]

    Heterogeneous adj. 1 diverse in character. 2 varied in content. heterogeneity n. [latin from greek genos kind]

    Heteromorphic adj. (also heteromorphous) biol. Of dissimilar forms.

    heteromorphism n.

    Heterosexual —adj. Feeling or involving sexual attraction to the opposite sex. — n. Heterosexual person. heterosexuality n.

    Het up predic. Adj. Colloq. Excited, overwrought. [het, a dial. Word = heated]

    Het up predic. Adj. Colloq. Excited, overwrought. [het, a dial. Word = heated]

    Heuristic adj. 1 allowing or assisting to discover. 2 proceeding to a solution by trial and error. [greek heurisko find]

    Hew v. (past part. Hewn or hewed) 1 chop or cut with an axe, sword, etc. 2 cut into shape. [old english]

    Hex —v. 1 practise witchcraft. 2 bewitch. —n. Magic spell. [german]

    Hexa-comb. Form six. [greek]

    Hexadecimal adj. Esp. Computing of a system of numerical notation that has 16 (the figures 0 to 9 and the letters a to f) rather than 10 as a base.

    Hexagon n. Plane figure with six sides and angles. hexagonal adj. [greek: related to *hexa-, -gonos angled]

    Hexagram n. Figure formed by two intersecting equilateral triangles.

    Hexameter n. Line of verse with six metrical feet.

    Hey int. Calling attention or expressing joy, surprise, inquiry, etc. [imitative]

    Heyday n. Time of greatest success or prosperity. [low german]

    Hey presto! Int. Conjuror’s phrase on completing a trick.

    Hezbollah n. (also hiz-) extreme shiite muslim group, active esp. In lebanon. [arabic hisbullah party of god]

    Hf abbr. High frequency.

    Hf symb. Hafnium.

    Hg symb. Mercury.

    Hg abbr. Hectogram(s).

    Hgv abbr. Heavy goods vehicle.

    Hh abbr. 1 her or his highness. 2 his holiness. 3 (of pencil-lead) double-hard.

    Hi int. Calling attention or as a greeting.

    Hiatus n. (pl. -tuses) 1 break or gap in a series or sequence. 2 break between two

    vowels coming together but not in the same syllable, as in though oft the ear. [latin hio gape]

    Hibernate v. (-ting) (of an animal) spend the winter in a dormant state. hibernation n. [latin hibernus wintry]

    Hibernian archaic poet. —adj. Of ireland. —n. Native of ireland. [latin hibernia ireland]

    Hibiscus n. (pl. -cuses) cultivated shrub with large bright-coloured flowers. [greek hibiskos marsh mallow]

    Hiccup (also hiccough) —n. 1 involuntary spasm of the diaphragm causing a characteristic sound ‘hic’. 2 temporary or minor stoppage or difficulty. —v. (-p-) make a hiccup. [imitative]

    Hick n. (often attrib.) Esp. Us colloq. Country bumpkin, provincial. [familiar form of richard]

    Hickory n. (pl. -ies) 1 n. American tree yielding wood and nutlike edible fruits. 2 the tough heavy wood of this. [virginian pohickery]

    Hid past of *hide1.

    Hidden past part. Of *hide1.

    Hidden agenda n. Secret motivation behind a policy, statement, etc.; ulterior motive.

    Hide1 —v. (-ding; past hid; past part. Hidden) 1 put or keep out of sight. 2 conceal oneself. 3 (usu. Foll. By from) keep (a fact) secret. 4 conceal. —n. Camouflaged shelter used for observing wildlife. hider n. [old english]

    Hide2 n. 1 animal’s skin, esp. When tanned or dressed. 2 colloq. The human skin, esp. The backside. [old english]

    Hide-and-seek n. Game in which players hide and another searches for them.

    Hideaway n. Hiding-place or place of retreat.

    Hidebound adj. 1 narrow-minded. 2 constricted by tradition.

    Hideous adj. 1 very ugly, revolting. 2 colloq. Unpleasant. hideosity n. (pl. -ies). Hideously adv. [anglo-french hidous]

    Hide-out n. Colloq. Hiding-place.

    Hiding1 n. Colloq. A thrashing. on a hiding to nothing with no chance of succeeding. [from *hide2]

    succeeding. [from *hide2]

    Hiding2 n. 1 act of hiding. 2 state of remaining hidden (go into hiding). [from *hide1]

    Hiding-place n. Place of concealment.

    Hierarchy n. (pl. -ies) system of grades of status or authority ranked one above the other. hierarchical adj. [greek hieros sacred, arkho rule]

    Hieratic adj. 1 of priests. 2 of the ancient egyptian hieroglyphic writing as used by priests. [greek hiereus priest]

    Hieroglyph n. Picture representing a word, syllable, or sound, as used in ancient egyptian etc. [greek hieros sacred, glupho carve]

    Hieroglyphic —adj. Of or written in hieroglyphs. —n. (in pl.) Hieroglyphs; hieroglyphic writing.

    Hi-fi colloq. —adj. Of high fidelity. —n. (pl. -s) set of high-fidelity equipment. [abbreviation]

    Higgledy-piggledy adv. & adj. In confusion or disorder. [origin uncertain]

    High —adj. 1 a of great vertical extent (high building). B (predic.; often in comb.) Of a specified height (one inch high; waist-high). 2 a far above ground or sea level etc. (high altitude). B inland, esp. When raised (high asia).

    High altar n. Chief altar in a church.

    High and dry adj. Stranded; aground.

    High and low adv. Everywhere (searched high and low).

    High and mighty adj. Colloq. Arrogant.

    Highball n. Us drink of spirits and soda etc., served with ice in a tall glass.

    Highbrow colloq. —adj. Intellectual; cultural. —n. Intellectual or cultured person.

    High chair n. Infant’s chair with long legs and a tray for meals.

    High church n. Section of the church of england emphasizing ritual, priestly authority, and sacraments.

    High-class adj. Of high quality.

    High colour n. Flushed complexion.

    High command n. Army commander-in-chief and associated staff.

    High commission n. Embassy from one commonwealth country to another. high commissioner n.

    High court n. (also in england high court of justice) supreme court of justice for civil cases.

    High day n. Festal day.

    Higher animal n. (also higher plant) animal or plant evolved to a high degree.

    Higher education n. Education at university etc.

    High explosive n. Extremely explosive substance used in shells, bombs, etc.

    Highfalutin adj. (also highfaluting) colloq. Pompous, pretentious. [origin unknown]

    High fidelity n. High-quality sound reproduction with little distortion.

    High-flown adj. (of language etc.) Extravagant, bombastic.

    High-flyer n. (also high-flier) 1 ambitious person. 2 person or thing of great potential. high-flying adj.

    High frequency n. Frequency, esp. In radio, of 3 to 30 megahertz.

    High gear n. Gear such that the driven end of a transmission revolves faster than the driving end.

    High-handed adj. Disregarding others’ feelings; overbearing. high-handedly adv.

    High-handedness n.

    High heels n.pl. Women’s shoes with high heels.

    High jinks n.pl. Boisterous fun.

    High jump n. 1 athletic event consisting of jumping over a high bar. 2 colloq.

    Drastic punishment (he’s for the high jump).

    Highland —n. (usu. In pl.) 1 area of high land. 2 (the highlands) mountainous part of scotland. —adj. Of or in a highland or the highlands. highlander n. (also highlander). [old english, = promontory: related to *high]

    Highland cattle n. Cattle of a shaggy-haired breed with long curved horns.

    Highland fling see *fling n. 3.

    High-level adj. 1 (of negotiations etc.) Conducted by high-ranking people. 2 computing (of a programming language) not machine-dependent and usu. At a level of abstraction close to natural language.

    Highlight —n. 1 moment or detail of vivid interest; outstanding feature. 2 (in a painting etc.) Bright area. 3 (usu. In pl.) Light streak in the hair produced by bleaching. —v. 1 bring into prominence; draw attention to. 2 mark with a highlighter.

    Highlighter n. Marker pen for emphasizing a printed word etc. By overlaying it with colour.

    Highly adv. 1 in a high degree (highly amusing; commend it highly). 2 favourably (think highly of him).

    Highly-strung adj. Very sensitive or nervous.

    High-minded adj. Having high moral principles. high-mindedly adv. High-mindedness n.

    Highness n. 1 state of being high (highness of taxation). 2 (highness) title used when addressing or referring to a prince or princess (her highness; your royal highness).

    High-octane adj. (of fuel used in internal-combustion engines) not detonating readily during the power stroke.

    High-pitched adj. 1 (of a sound) high. 2 (of a roof) steep.

    High point n. The maximum or best state reached.

    High-powered adj. 1 having great power or energy. 2 important or influential.

    High pressure n. 1 high degree of activity or exertion. 2 atmospheric condition with the pressure above average.

    High priest n. (fem. High priestess) 1 chief priest, esp. Jewish. 2 head of a cult.

    High-ranking adj. Of high rank, senior.

    High-rise —attrib. Adj. (of a building) having many storeys. —n. Such a building.

    High-risk attrib. Adj. Involving or exposed to danger (high-risk sports).

    High-risk attrib. Adj. Involving or exposed to danger (high-risk sports).

    High road n. Main road.

    High school n. 1 grammar school. 2 us & scot. Secondary school.

    High sea n. (also high seas) open seas not under any country’s jurisdiction.

    High season n. Busiest period at a resort etc.

    High-speed attrib. Adj. Operating at great speed.

    High-spirited adj. Vivacious; cheerful; lively.

    High spot n. Important place or feature.

    High street n. Principal shopping street of a town.

    High table n. Dining-table for the most important guests or members.

    High tea n. Evening meal usu. Consisting of a cooked dish, bread and butter, tea, etc.

    High-tech adj. 1 employing, requiring, or involved in high technology. 2 imitating styles more usual in industry etc.

    High technology n. Advanced technological development, esp. In electronics.

    High tension n. = *high voltage.

    High tide n. Time or level of the tide at its peak.

    High time n. Time that is overdue (it is high time they arrived).

    High treason n. = *treason.

    High-up n. Colloq. Person of high rank.

    High voltage n. Electrical potential large enough to injure or damage.

    High water n. = *high tide.

    High-water mark n. Level reached at high water.

    Highway n. 1 a public road. B main route. 2 direct course of action (on the highway to success).

    Highway code n. Official booklet of guidance for road-users.

    Highwayman n. Hist. Robber of travellers etc., usu. Mounted.

    High wire n. High tightrope.

    Hijack —v. 1 seize control of (a vehicle etc.), esp. To force it to a different destination. 2 seize (goods) in transit. 3 take control of (talks etc.) By force or subterfuge. —n. A hijacking. hijacker n. [origin unknown]

    Hike —n. 1 long walk, esp. In the country for pleasure. 2 rise in prices etc. —v. (-king) 1 go for a hike. 2 walk laboriously. 3 (usu. Foll. By up) hitch up (clothing etc.); become hitched up. 4 (usu. Foll. By up) raise (prices etc.). hiker n. [origin unknown]

    Hilarious adj. 1 exceedingly funny. 2 boisterously merry. hilariously adv. Hilarity n. [greek hilaros cheerful]

    Hill n. 1 naturally raised area of land, lower than a mountain. 2 (often in comb.) Heap, mound (anthill). 3 sloping piece of road. over the hill colloq. Past the prime of life. [old english]

    Hill-billy n. Us colloq., often derog. Person from a remote rural area in a southern state.

    Hillock n. Small hill, mound.

    Hillside n. Sloping side of a hill.

    Hilltop n. Top of a hill.

    Hillwalking n. Hiking in hilly country. hillwalker n.

    Hilly adj. (-ier, -iest) having many hills. hilliness n.

    Hilt n. Handle of a sword, dagger, etc. up to the hilt completely. [old english]

    Him pron. 1 objective case of he (i saw him). 2 colloq. He (it’s him again; taller than him). [old english, dative of he]

    Himself pron. 1 a emphat. Form of *he or him (he himself will do it). B refl. Form of him (he has hurt himself). 2 in his normal state of body or mind (doesnot feel quite himself today). be himself see oneself. By himself see by oneself. [old english: related to him, *self]

    Hind1 adj. At the back (hind leg). [old english hindan from behind]

    Hind2 n. Female (esp. Red) deer, esp. In and after the third year. [old english]

    Hinder1 v. Impede; delay. [old english]

    Hinder2 adj. Rear, hind (the hinder part). [old english]

    Hindi n. 1 group of spoken dialects of n. India. 2 literary form of hindustani, an official language of india. [urdu hind india]

    Hindmost adj. Furthest behind.

    Hindquarters n.pl. Hind legs and rump of a quadruped.

    Hindrance n. 1 hindering; being hindered. 2 thing that hinders.

    Hindsight n. Wisdom after the event.

    Hindu —n. (pl. -s) follower of hinduism. —adj. Of hindus or hinduism. [urdu hind india]

    Hinduism n. Main religious and social system of india, including the belief in

    Hinduism n. Main religious and social system of india, including the belief in reincarnation, several gods, and a caste system.

    Hindustani n. Language based on hindi, used as a lingua franca in much of india. [from *hindu, stan country]

    Hinge —n. 1 movable joint on which a door, lid, etc., turns or swings. 2 principle on which all depends. —v. (-ging) 1 (foll. By on) depend (on a principle, an event, etc.). 2 attach or be attached by a hinge. [related to *hang]

    Hinny n. (pl. -ies) offspring of a female donkey and a male horse. [greek hinnos]

    Hint —n. 1 slight or indirect indication or suggestion. 2 small piece of practical information. 3 very small trace; suggestion (a hint of perfume). —v. Suggest slightly or indirectly. hint at give a hint of; refer indirectly to. Take a hint heed a hint. [obsolete hent grasp]

    Hinterland n. 1 district beyond a coast or river’s banks. 2 area served by a port or other centre. [german]

    Hip1 n. Projection of the pelvis and the upper part of the thigh-bone. [old english]

    Hip2 n. Fruit of a rose, esp. Wild. [old english]

    Hip3 int. Introducing a united cheer (hip, hip, hooray). [origin unknown]

    Hip3 int. Introducing a united cheer (hip, hip, hooray). [origin unknown]

    Hip4 adj. (also hep) (-pper, -ppest) slang trendy, stylish. [origin unknown]

    Hip-bath n. Portable bath in which one sits immersed to the hips.

    Hip-bone n. Bone forming the hip.

    Hip-flask n. Small flask for spirits etc.

    Hip hop n. (also hip-hop) subculture combining rap music, graffiti art, and break-dancing. [from *hip4]

    Hippie n. (also hippy) (pl. -ies) colloq. (esp. In the 1960s) person rejecting convention, typically with long hair, jeans, beads, etc., and taking hallucinogenic drugs. [from *hip4]

    Hippo n. (pl. -s) colloq. Hippopotamus. [abbreviation]

    Hip-pocket n. Trouser-pocket just behind the hip.

    Hippocratic oath n. Statement of ethics of the medical profession. [hippocrates, name of a greek physician]

    Hippodrome n. 1 music-hall or dancehall. 2 (in classical antiquity) course for chariot races etc. [greek hippos horse, dromos race]

    Hippopotamus n. (pl. -muses or -mi) large african mammal with short legs and thick skin, living by rivers, lakes, etc. [greek hippos horse, potamos river]

    Hippy1 var. Of *hippie.

    Hippy2 adj. Having large hips.

    Hippy2 adj. Having large hips.

    Hipster1 —attrib. Adj. (of a garment) hanging from the hips rather than the waist. —n. (in pl.) Such trousers.

    Hipster2 n. Slang hip person.

    Hire —v. (-ring) 1 purchase the temporary use of (a thing) (hired a van). 2 esp. Us employ (a person). —n. 1 hiring or being hired. 2 payment for this. for (or on) hire ready to be hired. Hire out grant the temporary use of (a thing) for payment. hireable adj. Hirer n. [old english]

    Hireling n. Usu. Derog. Person who works (only) for money.

    Hire purchase n. System of purchase by paying in instalments.

    Hirsute adj. Hairy. [latin]

    His poss. Pron. 1 (attrib.) Of or belonging to him or himself (his house; his own business). 2 the one or ones belonging to or associated with him (it is his; his are over there). of his of or belonging to him (friend of his). [old english, genitive of *he]

    Hispanic —adj. 1 of spain or spain and portugal. 2 of spain and other spanish-speaking countries. —n. Spanish-speaking person living in the us. [latin hispania spain]

    Hiss —v. 1 make a sharp sibilant sound, as of the letter s. 2 express disapproval of by hisses. 3 whisper urgently or angrily. —n. 1 sharp sibilant sound as of the letter s. 2 electronics interference at audio frequencies. [imitative]

    Histamine n. Chemical compound in body tissues etc., associated with allergic reactions. [from histology, amine]

    Histogram n. Statistical diagram of rectangles with areas proportional to the value of a number of variables. [greek histos mast]

    Histology n. The study of tissue structure. [greek histos web]

    Historian n. 1 writer of history. 2 person learned in history.

    Historic adj. 1 famous or important in history or potentially so (historic moment). 2 gram. (of a tense) used to narrate past events.

    Historical adj. 1 of or concerning history (historical evidence). 2 (of the study of a subject) showing its development over a period. 3 factual, not fictional or legendary. 4 belonging to the past, not the present. 5 (of a novel etc.) Dealing with historical events. historically adv.

    Historicism n. 1 theory that social and cultural phenomena are determined by history. 2 belief that historical events are governed by laws.

    Historicity n. Historical truth or authenticity.

    Historiography n. 1 the writing of history. 2 the study of this. historiographer n.

    History n. (pl. -ies) 1 continuous record of (esp. Public) events. 2 a the study of past events, esp. Human affairs. B total accumulation of past events, esp. Relating to human affairs or a particular nation, person, thing, etc. 3 eventful past (this house has a history). 4 (foll. By of) past record (had a history of illness). 5 a systematic or critical account of or research into past events etc. B similar record or account of natural phenomena. 6 historical play. make history do something memorable. [greek historia inquiry]

    Histrionic —adj. (of behaviour) theatrical, dramatic. —n. (in pl.) Insincere and dramatic behaviour designed to impress. [latin histrio actor]

    Hit —v. (-tt-; past and past part. Hit) 1 a strike with a blow or missile. B (of a moving body) strike with force (the plane hit the ground). C reach (a target etc.) With a directed missile (hit the wicket). 2 cause to suffer; affect adversely. 3 (often foll. By at, against) direct a blow. 4 (often foll. By against, on) knock (a part of the body) (hit his head). 5 achieve, reach (hit the right tone; can’t hit the high notes). 6 colloq. A encounter (hit a snag). B arrive at (hit town). C indulge heavily in, esp. Liquor etc. (hit the bottle). 7 esp. Us slang rob or kill. 8 occur forcefully to (it only hit him later). 9 a propel (a ball etc.) With a bat etc. To score runs or points. B score in this way (hit a six). —n. 1 a blow, stroke. B collision. 2 shot etc. That hits its target. 3 colloq. Popular success. hit back retaliate. Hit below the belt 1 esp.

    Hit-and-run attrib. Adj. 1 (of a driver, raider, etc.) Causing damage or injury and leaving the scene immediately. 2 (of an accident, attack, etc.) Perpetrated by such a person or people.

    Hitch —v. 1 fasten or be fastened with a loop, hook, etc.; tether. 2 move (a thing) slightly or with a jerk. 3 colloq. A = *hitchhike. B obtain (a lift) by hitchhiking. —n. 1 temporary obstacle or snag. 2 abrupt pull or push. 3 noose or knot of various kinds. 4 colloq. Free ride in a vehicle. get hitched colloq. Marry. Hitch up lift (esp. Clothing) with a jerk. [origin uncertain]

    Hitchhike v. (-king) travel by seeking free lifts in passing vehicles. hitchhiker n.

    Hi-tech adj. = *high-tech. [abbreviation]

    Hither adv. Formal to or towards this place. [old english]

    Hither and thither adv. To and fro.

    Hitherto adv. Until this time, up to now.

    Hit list n. Slang list of prospective victims.

    Hit man n. Slang hired assassin.

    Hit-or-miss adj. Liable to error, random.

    Hit parade n. Colloq. List of the current best-selling pop records.

    Hittite —n. Member or language of an ancient people of asia minor and syria. — adj. Of the hittites. [hebrew]

    Hiv abbr. Human immunodeficiency virus, either of two viruses causing aids.

    Hive n. Beehive. hive off (-ving) separate from a larger group. [old english]

    Hives n.pl. Skin-eruption, esp. Nettle-rash. [origin unknown]

    Hizbollah var. Of *hezbollah.

    Hm abbr. Her (or his) majesty(‘s).

    Hmg abbr. Her (or his) majesty’s government.

    Hmi abbr. Her (or his) majesty’s inspector (of schools).

    Hms abbr. Her (or his) majesty’s ship.

    Hmso abbr. Her (or his) majesty’s stationery office.

    Hnc abbr. Higher national certificate.

    Hnd abbr. Higher national diploma.

    Ho symb. Holmium.

    Ho int. Expressing triumph, derision, etc., or calling attention. [natural exclamation]

    Hoard —n. Stock or store (esp. Of money or food). —v. Amass and store. hoarder n. [old english]

    Hoarding n. 1 large, usu. Wooden, structure used to carry advertisements etc. 2 temporary fence round a building site etc. [obsolete hoard from french: hourd]

    Hoar-frost n. Frozen water vapour on vegetation etc. [old english]

    Hoarse adj. 1 (of the voice) rough and deep; husky, croaking. 2 having such a voice. hoarsely adv. Hoarseness n. [old norse]

    Hoary adj. (-ier, -iest) 1 a (of hair) grey or white with age. B having such hair; aged. 2 old and trite (hoary joke). [old english]

    Hoax —n. Humorous or malicious deception. —v. Deceive (a person) with a hoax. [probably a shortening of hocus in *hocus-pocus]

    Hob n. 1 flat heating surface with hotplates or burners, on a cooker or as a separate unit. 2 flat metal shelf at the side of a fireplace for heating a pan etc. [perhaps var. Of *hub]

    Hobble —v. (-ling) 1 walk lamely; limp. 2 tie together the legs of (a horse etc.) To prevent it from straying. —n. 1 uneven or infirm gait. 2 rope etc. For hobbling a horse etc. [probably low german]

    Hobby n. (pl. -ies) leisure-time activity pursued for pleasure. [from the name robin]

    Hobby-horse n. 1 child’s toy consisting of a stick with a horse’s head. 2 favourite subject or idea.

    Hobgoblin n. Mischievous imp; bogy. [from *hobby, *goblin]

    Hobnail n. Heavy-headed nail for boot-soles. [from *hob]

    Hobnob v. (-bb-) (usu. Foll. By with) mix socially or informally. [hab nab have or not have]

    Hobo n. (pl. -es or -s) us wandering worker; tramp. [origin unknown]

    Hobson’s choice n. Choice of taking the thing offered or nothing. [hobson, name of a carrier who let out horses thus]

    Hock1 n. Joint of a quadruped’s hind leg between the knee and the fetlock. [old english]

    Hock2 n. German white wine from the rhineland. [hochheim in germany]

    Hock3 v. Esp. Us colloq. Pawn; pledge. in hock 1 in pawn. 2 in debt. 3 in prison. [dutch]

    Hockey n. Team game with hooked sticks and a small hard ball. [origin unknown]

    Hocus-pocus n. Deception; trickery. [sham latin]

    Hod n. 1 v-shaped trough on a pole used for carrying bricks etc. 2 portable receptacle for coal. [french hotte pannier]

    Hodgepodge var. Of *hotchpotch.

    Hodgkin’s disease n. Malignant disease of lymphatic tissues, usu. Characterized by enlargement of the lymph nodes. [hodgkin, name of a physician]

    Hoe —n. Long-handled tool with a blade, used for weeding etc. —v. (hoes, hoed, hoeing) weed (crops); loosen (earth); dig up with a hoe. [french from germanic]

    Hog —n. 1 castrated male pig. 2 colloq. Greedy person. —v. (-gg-) colloq. Take greedily; hoard selfishly; monopolize. go the whole hog colloq. Do something completely or thoroughly. hoggish adj. [old english]

    Hogmanay n. Scot. New year’s eve. [probably french]

    Hogshead n. 1 large cask. 2 liquid or dry measure (about 50 gallons). [from *hog: the reason for the name is unknown]

    Hogwash n. Colloq. Nonsense, rubbish.

    Ho-ho int. 1 representing a deep jolly laugh. 2 expressing surprise, triumph, or derision. [reduplication of *ho]

    Hoick v. Colloq. (often foll. By out) lift or pull, esp. With a jerk. [perhaps var. Of *hike]

    Hoi polloi n. The masses; the common people. [greek, = the many]

    Usage this phrase is often preceded by the, which is, strictly speaking, unnecessary, since hoi means ‘the’.

    Hoist —v. 1 raise or haul up. 2 raise by means of ropes and pulleys etc. —n. 1 act of hoisting, lift. 2 apparatus for hoisting. hoist with one’s own petard caught by one’s own trick etc. [earlier hoise, probably from low german]

    Hoity-toity adj. Haughty. [obsolete hoit romp]

    Hokum n. Esp. Us slang 1 sentimental, sensational, or unreal material in a film or play etc. 2 bunkum; rubbish. [origin unknown]

    Hold1 —v. (past and past part. Held) 1 a keep fast; grasp (esp. In the hands or

    arms). B (also refl.) Keep or sustain (a thing, oneself, one’s head, etc.) In a particular position. C grip so as to control (hold the reins). 2 have the capacity for, contain (holds two pints). 3 possess, gain, or have, esp.: a be the owner or tenant of (land, property, stocks, etc.). B gain or have gained (a qualification, record, etc.). C have the position of (a job or office). D keep possession of (a place etc.), esp. Against attack. 4 remain unbroken; not give way (roof held under the storm). 5 celebrate or conduct (a meeting, festival, conversation, etc.). 6 a keep (a person etc.) In a place or condition (held him in suspense). B detain, esp. In custody. 7 a engross (book held him for hours). B dominate (held the stage). 8 (foll. By to) keep (a person etc.) To (a promise etc.). 9 (of weather) continue fine. 10 think, believe; assert (held it to be plain; held that the earth was flat). 11 regard with a specified feeling (held him in contempt). 12 cease; restrain (hold your fire). 13 keep or reserve (please hold our seats). 14 be able to drink (alcohol) without effect (can’t hold his drink). 15 (of a court etc.) Lay down; decide. 16 mus. Sustain (a note). 17 = hold the line. —n. 1 (foll. By on, over) influence or power over (has a strange hold over me). 2 manner of holding in wrestling etc. 3 grasp (take hold of him). 4 (often in comb.) Thing to hold by (seized the handhold). hold (a thing) against (a person) resent or regard it as discreditable to (a person). Hold back 1 impede the progress of; restrain. 2 keep for oneself. 3 (often foll. By from) hesitate; refrain. Hold one’s breath see breath. Hold down 1 repress. 2 colloq. Be competent enough to keep (one’s job etc.). Hold the fort 1 act as a temporary substitute. 2 cope in an emergency. Hold forth speak at length or tediously. Hold one’s ground see ground1. Holdhands grasp one another by the hand as a sign of affection or for support or guidance. Hold it cease action or movement. Hold the line not ring off (in a telephone connection).

    Hold2 n. Cavity in the lower part of a ship or aircraft for cargo. [old english:

    related to *hollow]

    Holdall n. Large soft travelling bag.

    Holding n. 1 tenure of land. 2 stocks, property, etc. Held.

    Holding company n. Company created to hold the shares of other companies, which it then controls.

    Hold-up n. 1 stoppage or delay. 2 robbery by force.

    Hole n. 1 a empty space in a solid body. B opening in or through something. 2 animal’s burrow. 3 (in games) cavity or receptacle for a ball. 4 colloq. Small or dingy place. 5 colloq. Awkward situation. 6 golf a point scored by a player who gets the ball from tee to hole with the fewest strokes. B terrain or distance from tee to hole. hole up us colloq. Hide oneself. Make a hole in use a large amount of. holey adj. [old english]

    Hole-and-corner adj. Secret; underhand.

    Hole in the heart n. Colloq. Congenital defect in the heart membrane.

    Holiday —n. 1 (often in pl.) Extended period of recreation, esp. Spent away from home or travelling; break from work. 2 day of festivity or recreation when no work is done, esp. A religious festival etc. —v. Spend a holiday. [old english: related to *holy, *day]

    Holiday camp n. Place for holiday-makers with facilities on site.

    Holiday-maker n. Person on holiday.

    Holier-than-thou adj. Colloq. Self-righteous.

    Holiness n. 1 being holy or sacred. 2 (holiness) title used when addressing or referring to the pope. [old english: related to *holy]

    Holism n. (also wholism) 1 philos. Theory that certain wholes are greater than the sum of their parts. 2 med. Treating of the whole person rather than the symptoms of a disease. holistic adj. [greek holos whole]

    Hollandaise sauce n. Creamy sauce of melted butter, egg-yolks, vinegar, etc. [french]

    Holler v. & n. Us colloq. Shout. [french holà hello!]

    Hollow —adj. 1 a having a cavity; not solid. B sunken (hollow cheeks). 2 (of a sound) echoing. 3 empty; hungry. 4 meaningless (hollow victory). 5 insincere (hollow laugh). —n. 1 hollow place; hole. 2 valley; basin. —v. (often foll. By out) make hollow; excavate. —adv. Colloq. Completely (beaten hollow). hollowly adv. Hollowness n. [old english]

    Holly n. (pl. -ies) evergreen shrub with prickly leaves and red berries. [old english]

    Hollyhock n. Tall plant with showy flowers. [from *holy, obsolete hock mallow]

    Holm n. (in full holm-oak) evergreen oak with holly-like young leaves. [dial. Holm holly]

    Holmium n. Metallic element of the lanthanide series. [latin holmia stockholm]

    Holocaust n. 1 large-scale destruction, esp. By fire or nuclear war. 2 (the holocaust) mass murder of the jews by the nazis 1939–45. [greek holos whole, kaustos burnt]

    Hologram n. Photographic pattern that gives a three-dimensional image when illuminated by coherent light. [greek holos whole, *-gram]

    Holograph —adj. Wholly written by hand by the person named as the author. — n. Holograph document. [greek holos whole, *-graph]

    Holography n. The study or production of holograms.

    Hols n.pl. Colloq. Holidays. [abbreviation]

    Holster n. Leather case for a pistol or revolver, worn on a belt etc. [dutch]

    Holy adj. (-ier, -iest) 1 morally and spiritually excellent or perfect, and to be revered. 2 belonging to or devoted to god. 3 consecrated, sacred. [old english: related to *whole]

    Holy communion see *communion.

    Holy ghost n. = *holy spirit.

    Holy grail see *grail.

    Holy land n. Area between the river jordan and the mediterranean sea.

    Holy of holies n. 1 sacred inner chamber of the jewish temple. 2 thing regarded as most sacred.

    Holy orders n.pl. The status of a bishop, priest, or deacon.

    Holy roman empire n. Western part of the roman empire as revived by charlemagne in 800 ad.

    Holy see n. Papacy or papal court.

    Holy spirit n. Third person of the trinity, god as spiritually acting.

    Holy week n. Week before easter.

    Holy writ n. Holy writings, esp. The bible.

    Homage n. Tribute, expression of reverence (pay homage to). [latin homo man]

    Homburg n. Man’s felt hat with a narrow curled brim and a lengthwise dent in the crown. [homburg in germany]

    Home —n. 1 a place where one lives; fixed residence. B dwelling-house. 2 family circumstances (comes from a good home). 3 native land. 4 institution caring for people or animals. 5 place where a thing originates, is kept, or is native or most common. 6 a finishing-point in a race. B (in games) place where one is safe; goal. 7 sport home match or win. —attrib. Adj. 1 a of or connected with one’s home. B carried on, done, or made, at home. 2 in one’s own country (home industries; the home market). 3 sport played on one’s own ground etc. (home match). —adv. 1 to, at, or in one’s home or country (go home; is he home yet?).

    Home and dry predic. Adj. Having achieved one’s aim.

    Home-brew n. Beer or other alcoholic drink brewed at home.

    Home-coming n. Arrival at home.

    Home counties n.pl. The counties closest to london.

    Home economics n.pl. The study of household management.

    Home farm n. Principal farm on an estate, providing produce for the owner.

    Home-grown adj. Grown or produced at home.

    Home guard n. Hist. British citizen army organized for defence in 1940.

    Home help n. Person helping with housework etc., esp. One provided by a local authority.

    Homeland n. 1 one’s native land. 2 any of several partially self-governing areas in s. Africa reserved for black south africans (the official name for a bantustan).

    Homeless adj. Lacking a home. homelessness n.

    Homely adj. (-ier, -iest) 1 simple, plain, unpretentious. 2 us (of facial appearance) plain, unattractive. 3 comfortable, cosy. homeliness n.

    Home-made adj. Made at home.

    Home office n. British government department dealing with law and order, immigration, etc., in england and wales.

    Homeopathy n. (brit. Homoeopathy) treatment of disease by minute doses of drugs that in a healthy person would produce symptoms of the disease.

    homoeopath n. Homoeopathic adj. [greek homoios like: related to *pathos]

    Homeric adj. 1 of, or in the style of, homer. 2 of bronze age greece as described in homer’s poems.

    Home rule n. Government of a country or region by its own citizens.

    Home secretary n. Secretary of state in charge of the home office.

    Homesick adj. Depressed by absence from home. homesickness n.

    Homespun —adj. 1 made of yarn spun at home. 2 plain, simple. —n. Homespun cloth.

    Homestead n. House, esp. A farmhouse, and outbuildings.

    Home truth n. Basic but unwelcome information about oneself.

    Homeward —adv. (also homewards) towards home. —adj. Going towards home.

    Homework n. 1 work to be done at home, esp. By a school pupil. 2 preparatory work or study.

    Homey adj. (also homy) (-mier, -miest) suggesting home; cosy.

    Homicide n. 1 killing of a human being by another. 2 person who kills a human being. homicidal adj. [latin homo man]

    Homily n. (pl. -ies) 1 sermon. 2 tedious moralizing discourse. homiletic adj. [greek homilia]

    Homing attrib. Adj. 1 (of a pigeon) trained to fly home. 2 (of a device) for guiding to a target etc.

    Hominid —adj. Of the primate family including humans and their fossil ancestors. —n. Member of this family. [latin homo homin-man]

    Hominoid —adj. Like a human. —n. Animal resembling a human.

    Homo n. (pl. -s) colloq. Offens. Homosexual. [abbreviation]

    Homo-comb. Form same. [greek homos same]

    Homoeopathy n. (us homeopathy) treatment of disease by minute doses of drugs that in a healthy person would produce symptoms of the disease. homoeopath n. Homoeopathic adj. [greek homoios like: related to *pathos]

    Homogeneous adj. 1 of the same kind. 2 consisting of parts all of the same kind; uniform. homogeneity n. Homogeneously adv. [from *homo-, greek genos kind]

    Usage homogeneous is often confused with homogenous which is a term in biology meaning ‘similar owing to common descent’.

    Homogenize v. (also -ise) (-zing or -sing) 1 make homogeneous. 2 treat (milk) so that the fat droplets are emulsified and the cream does not separate.

    Homograph n. Word spelt like another but of different meaning or origin (e.g.

    pole1, pole2).

    Homologous adj. 1 a having the same relation, relative position, etc. B corresponding. 2 biol. (of organs etc.) Similar in position and structure but not necessarily in function. [from *homo-, greek logos ratio]

    Homology n. Homologous state or relation; correspondence.

    Homonym n. 1 word spelt or pronounced like another but of different meaning; homograph or homophone. 2 namesake. [from *homo-, onoma name]

    Homophobia n. Hatred or fear of homosexuals. homophobe n. Homophobic adj.

    Homophone n. Word pronounced like another but of different meaning or origin (e.g. Pair, pear). [from *homo-, greek phone sound]

    Homo sapiens n. Modern humans regarded as a species. [latin, = wise man]

    Homosexual —adj. Feeling or involving sexual attraction only to people of the same sex. —n. Homosexual person. homosexuality n. [from *homo-, *sexual]

    Homy var. Of *homey.

    Hon. Abbr. 1 honorary. 2 honourable.

    Hone —n. Whetstone, esp. For razors. —v. (-ning) sharpen on or as on a hone. [old english]

    Honest —adj. 1 fair and just; not cheating or stealing. 2 free of deceit and untruthfulness; sincere. 3 fairly earned (an honest living). 4 blameless but undistinguished. —adv. Colloq. Genuinely, really. [latin honestus]

    Honestly adv. 1 in an honest way. 2 really (i don’t honestly know).

    Honesty n. 1 being honest. 2 truthfulness. 3 plant with purple or white flowers and flat round semi-transparent seed-pods.

    Honey n. (pl. -s) 1 sweet sticky yellowish fluid made by bees from nectar. 2 colour of this. 3 a sweetness. B sweet thing. 4 esp. Us (usu. As a form of address) darling. [old english]

    address) darling. [old english]

    Honey-bee n. Common hive-bee.

    Honeycomb —n. 1 bees’ wax structure of hexagonal cells for honey and eggs. 2 pattern arranged hexagonally. —v. 1 fill with cavities or tunnels, undermine. 2 mark with a honeycomb pattern. [old english]

    Honeydew n. 1 sweet sticky substance excreted by aphids on leaves and stems. 2 variety of melon.

    Honeyed adj. (of words, flattery, etc.) Sweet, sweet-sounding.

    Honeymoon —n. 1 holiday taken by a newly married couple. 2 initial period of enthusiasm or goodwill. —v. Spend a honeymoon. honeymooner n.

    Honeysuckle n. Climbing shrub with fragrant yellow or pink flowers.

    Honk —n. 1 sound of a car horn. 2 cry of a wild goose. —v. (cause to) make a honk. [imitative]

    Honky-tonk n. Colloq. 1 ragtime piano music. 2 cheap or disreputable nightclub etc. [origin unknown]

    Honor (brit. Honour) —n. 1 high respect, public regard. 2 adherence to what is right or an accepted standard of conduct. 3 nobleness of mind, magnanimity (honour among thieves). 4 thing conferred as a distinction, esp. An official award for bravery or achievement. 5 privilege, special right (had the honour of being invited). 6 a exalted position. B (honour) (prec. By your, his, etc.) Title of a circuit judge etc. 7 (foll. By to) person or thing that brings honour (an honour to her profession). 8 a chastity (of a woman). B reputation for this. 9 (in pl.) Specialized degree course or special distinction in an examination. 10 (in card-games) the four or five highest-ranking cards. 11 golf the right of driving off first. —v. 1 respect highly.

    Honorable adj. (brit. Honourable) 1 deserving, bringing, or showing honour. 2 (honourable) title indicating distinction, given to certain high officials, the children of certain ranks of the nobility, and (in the house of commons) to mps. honourably adv.

    Honorarium n. (pl. -s or -ria) fee, esp. A voluntary payment for professional services rendered without the normal fee. [latin: related to *honour]

    Honorary adj. 1 conferred as an honour (honorary degree). 2 (of an office or its holder) unpaid.

    Honorific adj. 1 conferring honour. 2 implying respect.

    Honour (us honor) —n. 1 high respect, public regard. 2 adherence to what is right or an accepted standard of conduct. 3 nobleness of mind, magnanimity (honour among thieves). 4 thing conferred as a distinction, esp. An official award for bravery or achievement. 5 privilege, special right (had the honour of being invited). 6 a exalted position. B (honour) (prec. By your, his, etc.) Title of a circuit judge etc. 7 (foll. By to) person or thing that brings honour (an honour to her profession). 8 a chastity (of a woman). B reputation for this. 9 (in pl.) Specialized degree course or special distinction in an examination. 10 (in card-

    games) the four or five highest-ranking cards. 11 golf the right of driving off first. —v. 1 respect highly. 2 confer honour on. 3 accept or pay (a bill or cheque) when due. do the honours perform the duties of a host to guests etc. In honour of as a celebration of. On one’s honour (usu. Foll. By to + infin.) Under a moral obligation. [latin honor repute]

    Honourable adj. (us honorable) 1 deserving, bringing, or showing honour. 2 (honourable) title indicating distinction, given to certain high officials, the children of certain ranks of the nobility, and (in the house of commons) to mps. honourably adv.

    Hooch n. Us colloq. Alcoholic liquor, esp. Inferior or illicit whisky. [alaskan]

    Hood1 —n. 1 a covering for the head and neck, esp. As part of a garment. B separate hoodlike garment. 2 folding top of a car etc. 3 us bonnet of a car etc. 4 protective cover. —v. Cover with or as with a hood. [old english]

    Hood2 n. Us slang gangster, gunman. [abbreviation of *hoodlum]

    -hood suffix forming nouns: 1 of condition or state (childhood; falsehood). 2 designating a group (sisterhood; neighbourhood). [old english]

    Hooded adj. 1 having a hood. 2 (of an animal) having a hoodlike part (hooded crow).

    Hoodlum n. 1 street hooligan, young thug. 2 gangster. [origin unknown]

    Hoodoo n. Esp. Us 1 a bad luck. B thing or person that brings this. 2 voodoo. [alteration of *voodoo]

    Hoodwink v. Deceive, delude. [from *hood1: originally = ‘blindfold’]

    Hoof n. (pl. -s or hooves) horny part of the foot of a horse etc. hoof it slang go on foot. [old english]

    Hoo-ha n. Slang commotion. [origin unknown]

    Hook —n. 1 a bent or curved piece of metal etc. For catching hold or for hanging things on. B (in full fish-hook) bent piece of wire for catching fish. 2 curved cutting instrument (reaping-hook). 3 bend in a river, curved strip of land, etc. 4 a hooking stroke. B boxing short swinging blow. —v. 1 grasp or securewith hook(s). 2 catch with or as with a hook. 3 slang steal. 4 (in sports) send (the ball) in a curve or deviating path. 5 rugby secure (the ball) and pass it backward with the foot in the scrum. by hook or by crook by one means or another. Off the hook 1 colloq. Out of difficulty or trouble. 2 (of a telephone receiver) not on its rest. [old english]

    Hookah n. Oriental tobacco-pipe with a long tube passing through water for cooling the smoke as it is drawn through. [urdu from arabic, = casket]

    Hook and eye n. Small metal hook and loop as a fastener on a garment.

    Hooked adj. 1 hook-shaped. 2 (often foll. By on) slang addicted or captivated.

    Hooker n. 1 rugby player in the front row of the scrum who tries to hook the ball. 2 slang prostitute.

    Hookey n. Us play hookey slang play truant. [origin unknown]

    Hook, line, and sinker adv. Entirely.

    Hook-up n. Connection, esp. Of broadcasting equipment.

    Hookworm n. Worm with hooklike mouthparts, infesting humans and animals.

    Hooligan n. Young ruffian. hooliganism n. [origin unknown]

    Hoop —n. 1 circular band of metal, wood, etc., esp. As part of a framework. 2 ring bowled along by a child, or for circus performers to jump through. 3 arch through which balls are hit in croquet. —v. Bind or encircle with hoop(s). be put (or go) through the hoop (or hoops) undergo rigorous testing. [old english]

    Hoop-la n. Fairground game with rings thrown to encircle a prize.

    Hoopoe n. Salmon-pink bird with black and white wings and a large erectile crest. [latin upupa (imitative of its cry)]

    Hooray int. = *hurrah.

    Hooray henry n. Slang loud upper-class young man.

    Hoot —n. 1 owl’s cry. 2 sound made by a car’s horn etc. 3 shout expressing scorn or disapproval. 4 colloq. A laughter. B cause of this. 5 (also two hoots) slang anything at all, in the slightest degree (don’t care a hoot; doesn’t matter two hoots). —v. 1 utter or make hoot(s). 2 greet or drive away with scornful hoots. 3 sound (a car horn etc.). [imitative]

    Hooter n. 1 thing that hoots, esp. A car’s horn or a siren. 2 slang nose.

    Hoover —n. Propr. Vacuum cleaner. —v. (hoover) 1 (also absol.) Clean with a vacuum cleaner. 2 (foll. By up) a suck up with a vacuum cleaner. B clean a room etc. With a vacuum cleaner. [name of the manufacturer]

    Hooves pl. Of *hoof.

    Hop1 —v. (-pp-) 1 (of a bird, frog, etc.) Spring with two or all feet at once. 2 (of a person) jump on one foot. 3 move or go quickly (hopped over the fence). 4 cross (a ditch etc.) By hopping. —n. 1 hopping movement. 2 colloq. Informal dance. 3 short journey, esp. A flight. hop in (or out) colloq. Get into (or out of) a car etc. Hop it slang go away. On the hop colloq. Unprepared (caught on the hop). [old english]

    Hop2 n. 1 climbing plant bearing cones. 2 (in pl.) Its ripe cones, used to flavour beer. [low german or dutch]

    Hope —n. 1 expectation and desire for a thing. 2 person or thing giving cause for hope. 3 what is hoped for. —v. (-ping) 1 feel hope. 2 expect and desire. 3 feel fairly confident. hope against hope cling to a mere possibility. [old english]

    Hopeful —adj. 1 feeling hope. 2 causing or inspiring hope. 3 likely to succeed, promising. —n. Person likely to succeed.

    Hopefully adv. 1 in a hopeful manner. 2 it is to be hoped (hopefully, we will succeed).

    Usage the use of hopefully in sense 2 is common, but is considered incorrect by some people.

    Hopeless adj. 1 feeling no hope. 2 admitting no hope (hopeless case). 3 incompetent. hopelessly adv. Hopelessness n.

    Hopper1 n. 1 container tapering downward to an opening for discharging its contents. 2 hopping insect.

    Hopper2 n. Hop-picker.

    Hopping mad predic. Adj. Colloq. Very angry.

    Hopscotch n. Children’s game of hopping over squares marked on the ground to retrieve a stone etc. [from hop1, scotch]

    Horde n. Usu. Derog. Large group, gang. [turkish ordu camp]

    Horehound n. Herbaceous plant yielding a bitter aromatic juice used against coughs etc. [old english, = hoary herb]

    Horizon n. 1 line at which the earth and sky appear to meet. 2 limit of mental perception, experience, interest, etc. on the horizon (of an event) just imminent or becoming apparent. [greek horizo bound]

    Horizontal —adj. 1 parallel to the plane of the horizon, at right angles to the vertical. 2 of or concerned with the same work, status, etc. (it was a horizontal move rather than promotion). —n. Horizontal line, plane, etc. horizontality n. Horizontally adv.

    Hormone n. 1 regulatory substance produced in an organism and transported in tissue fluids to stimulate cells or tissues into action. 2 similar synthetic substance. hormonal adj. [greek hormao impel]

    Hormone replacement therapy n. Treatment to relieve menopausal symptoms by boosting a woman’s oestrogen levels.

    Horn n. 1 a hard outgrowth, often curved and pointed, on the head of esp. Hoofed animals. B each of two branched appendages on the head of (esp. Male)

    deer. C hornlike projection on animals, e.g. A snail’s tentacle. 2 substance of which horns are made. 3 mus. A = *french horn. B wind instrument played by lip vibration, orig. Made of horn, now usu. Of brass. 4 instrument sounding a warning. 5 receptacle or instrument made of horn. 6 horn-shaped projection. 7 extremity of the moon or other crescent. 8 arm of a river etc. horn in slang intrude, interfere. horned adj. Hornist n. (in sense 3 of n.). [old english]

    Hornbeam n. Tree with a hard tough wood.

    Hornbill n. Bird with a hornlike excrescence on its large curved bill.

    Hornblende n. Dark-brown, black, or green mineral occurring in many rocks. [german]

    Hornet n. Large wasp capable of inflicting a serious sting. [low german or dutch]

    Horn of plenty n. A cornucopia.

    Hornpipe n. 1 lively dance (esp. Associated with sailors). 2 music for this.

    Horn-rimmed adj. (esp. Of spectacles) having rims made of horn or a similar substance.

    Horny adj. (-ier, -iest) 1 of or like horn. 2 hard like horn. 3 slang sexually excited. horniness n.

    Horology n. Art of measuring time or making clocks, watches, etc. horological adj. [greek hora time]

    Horoscope n. 1 forecast of a person’s future from a diagram showing the relative positions of the stars and planets at his or her birth. 2 such a diagram. [greek hora time, skopos observer]

    Horrendous adj. Horrifying. horrendously adv. [latin: related to *horrible]

    Horrible adj. 1 causing or likely to cause horror. 2 colloq. Unpleasant. horribly adv. [latin horreo bristle, shudder at]

    Horrid adj. 1 horrible, revolting. 2 colloq. Unpleasant (horrid weather).

    Horrific adj. Horrifying. horrifically adv.

    Horrify v. (-ies, -ied) arouse horror in; shock. horrifying adj.

    Horror —n. 1 painful feeling of loathing and fear. 2 a (often foll. By of) intense dislike. B (often foll. By at) colloq. Intense dismay. 3 a person or thing causing horror. B colloq. Bad or mischievous person etc. 4 (in pl.; prec. By the) fit of depression, nervousness, etc. —attrib. Adj. (of films etc.) Designed to interest by arousing feelings of horror.

    Hors d’œuvre n. Food served as an appetizer at the start of a meal. [french, = outside the work]

    Horse —n. 1 a large four-legged mammal with flowing mane and tail, used for riding and to carry and pull loads. B adult male horse; stallion or gelding. C (collect.; as sing.) Cavalry. 2 vaulting-block. 3 supporting frame (clothes-horse). —v. (-sing) (foll. By around) fool about. from the horse’s mouth colloq. (of information etc.) From the original or an authoritative source. [old english]

    Horseback n. on horseback mounted on a horse.

    Horsebox n. Closed vehicle for transporting horse(s).

    Horse-brass n. Brass ornament orig. For a horse’s harness.

    Horse chestnut n. 1 large tree with upright conical clusters of flowers. 2 dark brown fruit of this.

    Horse-drawn adj. (of a vehicle) pulled by a horse or horses.

    Horseflesh n. 1 flesh of a horse, esp. As food. 2 horses collectively.

    Horsefly n. Any of various biting insects troublesome esp. To horses.

    Horse guards n.pl. Cavalry brigade of the household troops.

    Horsehair n. Hair from the mane or tail of a horse, used for padding etc.

    Horseman n. 1 rider on horseback. 2 skilled rider. horsemanship n.

    Horseplay n. Boisterous play.

    Horsepower n. (pl. Same) imperial unit of power (about 750 watts), esp. For measuring the power of an engine.

    Horse-race n. Race between horses with riders. horse-racing n.

    Horseradish n. Plant with a pungent root used to make a sauce.

    Horse sense n. Colloq. Plain common sense.

    Horseshoe n. 1 u-shaped iron shoe for a horse. 2 thing of this shape.

    Horsetail n. 1 horse’s tail. 2 plant resembling it.

    Horsewhip —n. Whip for driving horses. —v. (-pp-) beat with a horsewhip.

    Horsewoman n. 1 woman who rides on horseback. 2 skilled woman rider.

    Horsy adj. (-ier, -iest) 1 of or like a horse. 2 concerned with or devoted to horses.

    Horticulture n. Art of garden cultivation. horticultural adj. Horticulturist n. [latin hortus garden, *culture]

    Hosanna n. & int. Shout of adoration (matt. 21:9, 15, etc.). [hebrew]

    Hose —n. 1 (also hose-pipe) flexible tube for conveying water. 2 a (collect.; as pl.) Stockings and socks. B hist. Breeches (doublet and hose). —v. (-sing) (often foll. By down) water, spray, or drench with a hose. [old english]

    Hosier n. Dealer in hosiery.

    Hosiery n. Stockings and socks.

    Hospice n. 1 home for people who are ill (esp. Terminally) or destitute. 2 lodging for travellers, esp. One kept by a religious order. [latin: related to *host2]

    Hospitable adj. Giving hospitality. hospitably adv. [latin hospito entertain:

    related to *host2]

    Hospital n. 1 institution providing medical and surgical treatment and nursing care for ill and injured people. 2 hist. Hospice. [latin: related to *host2]

    Hospitality n. Friendly and generous reception and entertainment of guests or strangers.

    Hospitalize v. (also -ise) (-zing or -sing) send or admit (a patient) to hospital.

    hospitalization n.

    Host1 n. (usu. Foll. By of) large number of people or things. [latin hostis enemy, army]

    Host2 —n. 1 person who receives or entertains another as a guest. 2 compère. 3 biol. Animal or plant having a parasite. 4 recipient of a transplanted organ etc. 5 landlord of an inn. —v. Be host to (a person) or of (an event). [latin hospes hospitis host, guest]

    Host3 n. (usu. Prec. By the; often host) bread consecrated in the eucharist. [latin hostia victim]

    Hostage n. Person seized or held as security for the fulfilment of a condition. [latin obses obsidis hostage]

    Hostel n. 1 house of residence or lodging for students, nurses, etc. 2 = youth hostel. [medieval latin: related to hospital]

    Hosteling n. (brit. Hostelling) practice of staying in youth hostels. hosteller n.

    Hostelling n. (us hosteling) practice of staying in youth hostels. hosteller n.

    Hostelry n. (pl. -ies) archaic inn.

    Hostess n. 1 woman who receives or entertains a guest. 2 woman employed to entertain customers at a nightclub etc. 3 stewardess on an aircraft etc. [related to *host2]

    Hostile adj. 1 of an enemy. 2 (often foll. By to) unfriendly, opposed. hostilely adv. [latin: related to *host1]

    Hostility n. (pl. -ies) 1 being hostile, enmity. 2 state of warfare. 3 (in pl.) Acts of warfare.

    Hot —adj. (hotter, hottest) 1 having a high temperature. 2 causing a sensation of heat (hot flush). 3 (of pepper, spices, etc.) Pungent. 4 (of a person) feeling heat.

    5 a ardent, passionate, excited. B (often foll. By for, on) eager, keen (in hot pursuit). C angry or upset. 6 (of news etc.) Fresh, recent. 7 hunting (of the scent) fresh, recent. 8 a (of a player, competitor, or feat) very skilful, formidable. B (foll. By on) knowledgeable about. 9 (esp. Of jazz) strongly rhythmical. 10 slang (of stolen goods) difficult to dispose of because identifiable. 11 slang radioactive. —v. (-tt-) (usu. Foll. By up) colloq. 1 make or become hot. 2 make or become more active, exciting, or dangerous. have the hots for slang be sexually attracted to. Hot under the collar angry, resentful, embarrassed. Like hot cakes see *cake. Make it (or things) hot for a person persecute a person. hotly adv. Hotness n. Hottish adj. [old english]

    Hot air n. Slang empty or boastful talk.

    Hot-air balloon n. Balloon containing air heated by burners below it, causing it to rise.

    Hotbed n. 1 (foll. By of) environment conducive to (vice, intrigue, etc.). 2 bed of earth heated by fermenting manure.

    Hot-blooded adj. Ardent, passionate.

    Hotchpotch n. (also hodgepodge) confused mixture or jumble, esp. Of ideas. [french hochepot shake pot]

    Hot cross bun n. Bun marked with a cross and traditionally eaten on good friday.

    Hot dog n. Colloq. Hot sausage in a soft roll.

    Hotel n. (usu. Licensed) establishment providing accommodation and meals for payment. [french: related to *hostel]

    Hotelier n. Hotel-keeper.

    Hot flush see *flush1.

    Hotfoot —adv. In eager haste. —v. Hurry eagerly (esp. Hotfoot it).

    Hot gospeller n. Colloq. Eager preacher of the gospel.

    Hothead n. Impetuous person. hotheaded adj. Hotheadedness n.

    Hothouse n. 1 heated (mainly glass) building for rearing tender plants. 2 environment conducive to the rapid growth or development of something.

    Hot line n. Direct exclusive telephone etc. Line, esp. For emergencies.

    Hot money n. Capital frequently transferred.

    Hotplate n. Heated metal plate etc. (or a set of these) for cooking food or keeping it hot.

    Hotpot n. Casserole of meat and vegetables topped with potato.

    Hot potato n. Colloq. Contentious matter.

    Hot rod n. Vehicle modified to have extra power and speed.

    Hot seat n. Slang 1 position of difficult responsibility. 2 electric chair.

    Hot spot n. 1 small region that is relatively hot. 2 lively or dangerous place.

    Hot stuff n. Colloq. 1 formidably capable or important person or thing. 2 sexually attractive person. 3 erotic book, film, etc.

    Hot-tempered adj. Impulsively angry.

    Hottentot n. 1 member of a sw african negroid people. 2 their language. [afrikaans]

    Hot water n. Colloq. Difficulty or trouble.

    Hot-water bottle n. (usu. Rubber) container filled with hot water to warm a bed.

    Houmous var. Of *hummus.

    Hound —n. 1 dog used in hunting. 2 colloq. Despicable man. —v. Harass or pursue. [old english]

    Hour n. 1 twenty-fourth part of a day and night, 60 minutes. 2 time of day, point in time (a late hour; what is the hour?). 3 (in pl. With preceding numerals in form 18.00, 20.30, etc.) This number of hours and minutes past midnight on the 24-hour clock (will assemble at 20.00 hours). 4 a period for a specific purpose (lunch hour; keep regular hours). B (in pl.) Fixed working or open period (office hours; opening hours). 5 short period of time (an idle hour).

    Hourglass n. Two vertically connected glass bulbs containing sand taking an hour to pass from upper to lower bulb.

    Houri n. (pl. -s) beautiful young woman of the muslim paradise. [persian from arabic, = dark-eyed]

    Hourly —adj. 1 done or occurring every hour. 2 frequent. 3 reckoned hour by hour (hourly wage). —adv. 1 every hour. 2 frequently.

    House —n. (pl.) 1 building for human habitation. 2 building for a special purpose or for animals or goods (opera-house; summerhouse; hen-house). 3 a religious community. B its buildings. 4 a body of pupils living in the same building at a boarding-school. B such a building. C division of a day-school for games, competitions, etc. 5 royal family or dynasty (house of york). 6 a firm or institution. B its premises. 7 a legislative or deliberative assembly. B building for this. 8 audience or performance in a theatre etc. 9 astrol. Twelfth part of the heavens. —v. (-sing) 1 provide with a house or other accommodation. 2 store (goods etc.). 3 enclose or encase (a part or fitting). 4 fix in a socket, mortise, etc. keep house provide for or manage a household. Like a house on fire 1 vigorously, fast. 2 successfully, excellently. On the house free. Put (or set) one’s house in order make necessary reforms. [old english]

    House-agent n. Agent for the sale and letting of houses.

    House arrest n. Detention in one’s own house, not in prison.

    Houseboat n. Boat equipped for living in.

    Housebound adj. Confined to one’s house through illness etc.

    Housebreaking n. Act of breaking into a building, esp. In daytime, to commit a crime. housebreaker n.

    Usage in 1968 housebreaking was replaced as a statutory crime in english law by burglary.

    Housecoat n. Woman’s informal indoor coat or gown.

    Housefly n. Common fly often entering houses.

    Household n. 1 occupants of a house as a unit. 2 house and its affairs.

    Householder n. 1 person who owns or rents a house. 2 head of a household.

    Household troops n.pl. Troops nominally guarding the sovereign.

    Household word n. (also household name) 1 familiar name or saying. 2 familiar person or thing.

    House-hunting n. Seeking a house to buy or rent.

    House-husband n. Man who does a wife’s traditional household duties.

    Housekeeper n. Person, esp. A woman, employed to manage a household.

    Housekeeping n. 1 management of household affairs. 2 money allowed for this.

    3 operations of maintenance, record-keeping, etc., in an organization.

    House lights n.pl. Lights in a theatre auditorium.

    Housemaid n. Female servant in a house.

    Housemaid’s knee n. Inflammation of the kneecap.

    Houseman n. Resident junior doctor at a hospital etc.

    House-martin n. Black and white bird nesting on house walls etc.

    Housemaster n. (fem. Housemistress) teacher in charge of a house, esp. At a boarding-school.

    House music n. Style of pop music, typically using drum machines and synthesized bass lines with sparse repetitive vocals and a fast beat.

    House of cards n. Insecure scheme etc.

    House of commons n. Elected chamber of parliament.

    House of keys n. (in the isle of man) elected chamber of the tynwald.

    House of lords n. Chamber of parliament that is mainly hereditary.

    House party n. Group of guests staying at a country house etc.

    House-plant n. Plant grown indoors.

    House-proud adj. Attentive to the care and appearance of the home.

    Houseroom n. Space or accommodation in one’s house. not give houseroom to not have in any circumstances.

    Housetop n. Roof of a house. shout etc. From the housetops announce publicly.

    House-trained adj. 1 (of animals) trained to be clean in the house. 2 colloq. Well-mannered.

    House-warming n. Party celebrating a move to a new home.

    Housewife n. 1 woman who manages a household and usu. Does not have a full-time paid job. 2 case for needles, thread, etc. housewifely adj. [from house, wife = woman]

    Housework n. Regular housekeeping work, e.g. Cleaning and cooking.

    Housey-housey n. (also housie-housie) slang gambling form of lotto.

    Housing n. 1 a dwelling-houses collectively. B provision of these. 2 shelter, lodging. 3 rigid casing for machinery etc. 4 hole or niche cut in one piece of wood for another to fit into.

    Housing estate n. Residential area planned as a unit.

    Hove past of *heave.

    Hovel n. Small miserable dwelling. [origin unknown]

    Hover —v. 1 (of a bird etc.) Remain in one place in the air. 2 (often foll. By about, round) wait close at hand, linger. —n. 1 hovering. 2 state of suspense. [obsolete hove hover]

    Hovercraft n. (pl. Same) vehicle travelling on a cushion of air provided by a downward blast.

    Hoverport n. Terminal for hovercraft.

    How —interrog. Adv. 1 by what means, in what way (how do you do it?; tell me how you do it; how could you?). 2 in what condition, esp. Of health (how are you?; how do things stand?). 3 a to what extent (how far is it?; how would you like to take my place?; how we laughed!). B to what extent good or well, what

    like (how was the film?; how did they play?). —rel. Adv. In whatever way, as (do it how you can). —conj. Colloq. That (told us how he’d been in india). how about colloq. Would you like (how about a quick swim?). How do you do? A formal greeting. How many what number. How much 1 what amount. 2 what price. How’s that? 1 what is your opinion or explanation of that? 2 cricket (said to an umpire) is the batsman out or not? [old english]

    Howbeit adv. Archaic nevertheless.

    Howdah n. (usu. Canopied) seat for riding on an elephant or camel. [urdu hawda]

    However adv. 1 a in whatever way (do it however you want). B to whatever extent (must go however inconvenient). 2 nevertheless.

    Howitzer n. Short gun for the high-angle firing of shells. [czech houfnice catapult]

    Howl —n. 1 long loud doleful cry of a dog etc. 2 prolonged wailing noise. 3 loud cry of pain, rage, derision, or laughter. —v. 1 make a howl. 2 weep loudly. 3 utter with a howl. howl down prevent (a speaker) from being heard by howls of derision. [imitative]

    Howler n. Colloq. Glaring mistake.

    Howsoever adv. Formal 1 in whatsoever way. 2 to whatsoever extent.

    Hoy int. Used to call attention. [natural cry]

    Hoyden n. Boisterous girl. [dutch heiden: related to *heathen]

    H.p. Abbr. (also hp) 1 horsepower. 2 hire purchase.

    Hq abbr. Headquarters.

    Hr. Abbr. Hour.

    Hrh abbr. Her or his royal highness.

    Hrs. Abbr. Hours.

    Hrt abbr. Hormone replacement therapy.

    Ht abbr. High tension.

    Hub n. 1 central part of a wheel, rotating on or with the axle. 2 centre of interest, activity, etc. [origin uncertain]

    Hubble-bubble n. 1 simple hookah. 2 bubbling sound. 3 confused talk. [imitative]

    Hubbub n. 1 confused noise of talking. 2 disturbance. [perhaps of irish origin]

    Hubby n. (pl. -ies) colloq. Husband. [abbreviation]

    Hubris n. Arrogant pride or presumption. hubristic adj. [greek]

    Huckleberry n. 1 low-growing n. American shrub. 2 blue or black fruit of this. [probably an alteration of hurtleberry, *whortleberry]

    Huckster —n. Aggressive salesman; hawker. —v. 1 haggle. 2 hawk (goods). [low german]

    Huddle —v. (-ling) 1 (often foll. By up) crowd together; nestle closely. 2 (often foll. By up) curl one’s body into a small space. 3 heap together in a muddle. —n. 1 confused or crowded mass. 2 colloq. Close or secret conference (esp. In go into a huddle). [perhaps from low german]

    Hue n. 1 colour, tint. 2 variety or shade of colour. [old english]

    Hue and cry n. Loud outcry. [french huer shout]

    Huff —n. Colloq. Fit of petty annoyance. —v. 1 blow air, steam, etc. 2 (esp. Huff and puff) bluster self-importantly but ineffectually. 3 draughts remove (an opponent’s piece) as a forfeit. in a huff colloq. Annoyed and offended. [imitative of blowing]

    Huffy adj. (-ier, -iest) colloq. 1 apt to take offence. 2 offended. huffily adv.

    Huffiness n.

    Hug —v. (-gg-) 1 squeeze tightly in one’s arms, esp. With affection. 2 (of a bear) squeeze (a person) between its forelegs. 3 keep close to; fit tightly around. —n. 1 strong clasp with the arms. 2 squeezing grip in wrestling. [probably scandinavian]

    Huge adj. 1 extremely large; enormous. 2 (of an abstract thing) very great. hugeness n. [french ahuge]

    Hugely adv. 1 extremely (hugely successful). 2 very much (enjoyed it hugely).

    Hugger-mugger —adj. & adv. 1 in secret. 2 confused; in confusion. —n. 1 secrecy. 2 confusion. [origin uncertain]

    Huguenot n. Hist. French protestant. [french]

    Huh int. Expressing disgust, surprise, etc. [imitative]

    Hula n. (also hula-hula) polynesian dance performed by women, with flowing arm movements. [hawaiian]

    Hula hoop n. Large hoop spun round the body.

    Hulk n. 1 body of a dismantled ship. 2 colloq. Large clumsy-looking person or thing. [old english]

    Hulking adj. Colloq. Bulky; clumsy.

    Hull1 n. Body of a ship, airship, etc. [perhaps related to *hold2]

    Hull2 —n. Outer covering of a fruit, esp. The pod of peas and beans, the husk of grain, or the green calyx of a strawberry. —v. Remove the hulls from (fruit etc.). [old english]

    Hullabaloo n. Uproar. [reduplication of hallo, hullo, etc.]

    Hullo var. Of *hello.

    Hum —v. (-mm-) 1 make a low steady continuous sound like a bee. 2 sing with closed lips. 3 utter a slight inarticulate sound. 4 colloq. Be active (really made things hum). 5 colloq. Smell unpleasantly. —n. 1 humming sound. 2 colloq. Bad smell. hum and haw (or ha) hesitate; be indecisive. [imitative]

    Human —adj. 1 of or belonging to the species homo sapiens. 2 consisting of human beings (the human race). 3 of or characteristic of humankind, esp. As being weak, fallible, etc. (is only human). 4 showing warmth, sympathy, etc. (is very human). —n. Human being. [latin humanus]

    Human being n. Man, woman, or child.

    Human chain n. Line of people formed for passing things along, as a protest, etc.

    Humane adj. 1 benevolent, compassionate. 2 inflicting the minimum of pain. 3 (of learning) tending to civilize. humanely adv. Humaneness n.

    Humane killer n. Instrument for the painless slaughter of animals.

    Humanism n. 1 non-religious philosophy based on liberal human values. 2 (often humanism) literary culture, esp. That of the renaissance. humanist n. Humanistic adj.

    Humanitarian —n. Person who seeks to promote human welfare. —adj. Of humanitarians. humanitarianism n.

    Humanity n. (pl. -ies) 1 a the human race. B human beings collectively. C being human. 2 humaneness, benevolence. 3 (in pl.) Subjects concerned with human culture, e.g. Language, literature, and history.

    Humanize v. (also -ise) (-zing or -sing) make human or humane. humanization n. [french: related to *human]

    Humankind n. Human beings collectively.

    Humanly adv. 1 by human means (if it is humanly possible). 2 in a human manner.

    Human nature n. General characteristics and feelings of mankind.

    Human rights n.pl. Rights held to be common to all.

    Human shield n. Person(s) placed in the line of fire in order to discourage attack.

    Humble —adj. 1 having or showing low self-esteem. 2 of low social or political rank. 3 modest in size, pretensions, etc. —v. (-ling) 1 make humble; abase. 2 lower the rank or status of. eat humble pie apologize humbly; accept humiliation. humbleness n. Humbly adv. [latin humilis: related to *humus]

    Humbug —n. 1 lying or deception; hypocrisy. 2 impostor. 3 hard boiled striped peppermint sweet. —v. (-gg-) 1 be or behave like an impostor. 2 deceive, hoax. [origin unknown]

    Humdinger n. Slang excellent or remarkable person or thing. [origin unknown]

    Humdrum adj. Commonplace, dull, monotonous. [a reduplication of *hum]

    Humerus n. (pl. -ri) bone of the upper arm. humeral adj. [latin, = shoulder]

    Humid adj. (of the air or climate) warm and damp. [latin humidus]

    Humidifier n. Device for keeping the atmosphere moist in a room etc.

    Humidify v. (-ies, -ied) make (air etc.) Humid.

    Humidify v. (-ies, -ied) make (air etc.) Humid.

    Humidity n. (pl. -ies) 1 dampness. 2 degree of moisture, esp. In the atmosphere.

    Humiliate v. (-ting) injure the dignity or self-respect of. humiliating adj. Humiliation n. [latin: related to *humble]

    Humility n. 1 humbleness, meekness. 2 humble condition. [french: related to *humiliate]

    Hummingbird n. Small tropical bird that makes a humming sound with its wings when it hovers.

    Hummock n. Hillock or hump. [origin unknown]

    Hummus n. (also houmous) dip or appetizer made from ground chick-peas, sesame oil, lemon, and garlic. [turkish]

    Humor (brit. Humour) —n. 1 a quality of being amusing or comic. B the expression of humour in literature, speech, etc. 2 (in full sense of humour) ability to perceive or express humour. 3 state of mind; inclination (bad humour). 4 (in full cardinal humour) hist. Each of the four fluids (blood, phlegm, choler, melancholy), thought to determine a person’s physical and mental qualities. —v. Gratify or indulge (a person or taste etc.). out of humour displeased. humourless adj. [latin humor moisture]

    Humoresque n. Short lively piece of music. [german humoreske]

    Humorist n. Humorous writer, talker, or actor.

    Humorous adj. Showing humour or a sense of humour. humorously adv.

    Humour (us humor) —n. 1 a quality of being amusing or comic. B the expression of humour in literature, speech, etc. 2 (in full sense of humour) ability to perceive or express humour. 3 state of mind; inclination (bad humour). 4 (in full cardinal humour) hist. Each of the four fluids (blood, phlegm, choler, melancholy), thought to determine a person’s physical and mental qualities. —v. Gratify or indulge (a person or taste etc.). out of humour displeased. humourless adj. [latin humor moisture]

    Hump —n. 1 rounded protuberance on a camel’s back, or as an abnormality on a person’s back. 2 rounded raised mass of earth etc. 3 critical point in an undertaking. 4 (prec. By the) slang fit of depression or vexation (gave me the hump). —v. 1 (often foll. By about) colloq. Lift or carry (heavy objects etc.) With difficulty. 2 make hump-shaped. [probably low german or dutch]

    Humpback n. 1 a deformed back with a hump. B person with this. 2 whale with a dorsal fin forming a hump. humpbacked adj.

    Humpback bridge n. Small bridge with a steep ascent and descent.

    Humph int. & n. Inarticulate sound of doubt or dissatisfaction. [imitative]

    Humus n. Organic constituent of soil formed by the decomposition of vegetation. [latin, = soil]

    Hun n. 1 offens. German (esp. In military contexts). 2 member of a warlike asiatic nomadic people who ravaged europe in the 4th–5th c. 3 vandal. hunnish adj. [old english]

    Hunch —v. Bend or arch into a hump. —n. 1 intuitive feeling or idea. 2 hump. [origin unknown]

    Hunchback n. = *humpback 1. hunchbacked adj.

    Hundred adj. & n. (pl. Hundreds or (in sense 1) hundred) (in sing., prec. By a or one) 1 ten times ten. 2 symbol for this (100, c, c). 3 (in sing. Or pl.) Colloq. A large number. 4 (in pl.) The years of a specified century (the seventeen hundreds). 5 hist. Subdivision of a county or shire, having its own court. hundredfold adj. & adv. Hundredth adj. & n. [old english]

    Hundreds and thousands n.pl. Tiny coloured sweets for decorating cakes etc.

    Hundredweight n. (pl. Same or -s) 1 unit of weight equal to 112 lb, or us equal to 100 lb. 2 unit of weight equal to 50 kg.

    Hung past and past part. Of *hang.

    Hungarian —n. 1 a native or national of hungary. B person of hungarian descent. 2 language of hungary. —adj. Of hungary or its people or language. [medieval latin]

    Hunger —n. 1 a lack of food. B feeling of discomfort or exhaustion caused by this. 2 (often foll. By for, after) strong desire. —v. 1 (often foll. By for, after) crave or desire. 2 feel hunger. [old english]

    Hunger strike n. Refusal of food as a protest.

    Hung-over adj. Colloq. Suffering from a hangover.

    Hung parliament n. Parliament in which no party has a clear majority.

    Hungry adj. (-ier, -iest) 1 feeling or showing hunger; needing food. 2 inducing hunger (hungry work). 3 craving (hungry for news). hungrily adv. [old english]

    Hunk n. 1 large piece cut off (hunk of bread). 2 colloq. Sexually attractive man. hunky adj. (-ier, -iest). [probably dutch]

    Hunky-dory adj. Esp. Us colloq. Excellent. [origin unknown]

    Hunt —v. 1 (also absol.) A pursue and kill (wild animals, esp. Foxes, or game) for sport or food. B use (a horse or hounds) for hunting. C (of an animal) chase (its prey). 2 (foll. By after, for) seek, search. 3 (of an engine etc.) Run alternately too fast and too slow. 4 scour (a district) for game. 5 (as hunted adj.) (of a look

    too fast and too slow. 4 scour (a district) for game. 5 (as hunted adj.) (of a look etc.) Terrified as if being hunted. —n. 1 practice or instance of hunting. 2 a association of people hunting with hounds. B area for hunting. hunt down pursue and capture. hunting n. [old english]

    Hunter n. 1 a (fem. Huntress) person or animal that hunts. B horse used in hunting. 2 person who seeks something. 3 pocket-watch with a hinged cover protecting the glass.

    Hunter’s moon n. Next full moon after the harvest moon.

    Huntsman n. 1 hunter. 2 hunt official in charge of hounds.

    Hurdle —n. 1 a each of a series of light frames to be cleared by athletes in a race. B (in pl.) Hurdle-race. 2 obstacle or difficulty. 3 portable rectangular frame used as a temporary fence etc. —v. (-ling) 1 run in a hurdle-race. 2 fence off etc. With hurdles. [old english]

    Hurdler n. 1 athlete who runs in hurdle-races. 2 maker of hurdles.

    Hurdy-gurdy n. (pl. -ies) 1 droning musical instrument played by turning a handle. 2 colloq. Barrel-organ. [imitative]

    Hurl —v. 1 throw with great force. 2 utter (abuse etc.) Vehemently. —n. Forceful throw. [imitative]

    Hurley n. 1 (also hurling) irish game resembling hockey. 2 stick used in this.

    Hurly-burly n. Boisterous activity; commotion. [a reduplication of *hurl]

    Hurrah int. & n. (also hurray) exclamation of joy or approval. [earlier huzza, origin uncertain]

    Hurricane n. 1 storm with a violent wind, esp. A w. Indian cyclone. 2 meteorol. Wind of 65 knots (75 m.p.h.) Or more, force 12 on the beaufort scale. [spanish and portuguese from carib]

    Hurricane-lamp n. Oil-lamp designed to resist a high wind.

    Hurry —n. 1 great or eager haste. 2 (with neg. Or interrog.) Need for haste (there is no hurry; what’s the hurry?). —v. (-ies, -ied) 1 move or act hastily. 2 cause to hurry.

    Hurt —v. (past and past part. Hurt) 1 (also absol.) Cause pain or injury to. 2 cause mental pain or distress to. 3 suffer pain (my arm hurts). —n. 1 injury. 2 harm, wrong. [french hurter knock]

    Hurtful adj. Causing (esp. Mental) hurt. hurtfully adv.

    Hurtle v. (-ling) 1 move or hurl rapidly or noisily. 2 come with a crash. [from *hurt in the obsolete sense ‘strike hard’]

    Husband —n. Married man, esp. In relation to his wife. —v. Use (resources) economically; eke out. [old english, = house-dweller]

    Husbandry n. 1 farming. 2 management of resources.

    Hush —v. Make or become silent or quiet. —int. Calling for silence. —n. Expectant stillness or silence. hush up suppress public mention of (an affair). [husht, an obsolete exclamation, taken as a past part.]

    Hush-hush adj. Colloq. Highly secret, confidential.

    Hush money n. Slang money paid to ensure discretion.

    Husk —n. 1 dry outer covering of some fruits or seeds. 2 worthless outside part of a thing. —v. Remove husk(s) from. [probably low german]

    Husky1 adj. (-ier, -iest) 1 (of a person or voice) dry in the throat; hoarse. 2 of or full of husks. 3 dry as a husk. 4 tough, strong, hefty. huskily adv. Huskiness n.

    Husky2 n. (pl. -ies) dog of a powerful breed used in the arctic for pulling sledges. [perhaps from corruption of *eskimo]

    Huss n. Dogfish as food. [origin unknown]

    Hussar n. Soldier of a light cavalry regiment. [magyar huszár]

    Hussy n. (pl. -ies) derog. Impudent or promiscuous girl or woman. [contraction of *housewife]

    Hustings n. Election campaign or proceedings. [old english, = house of assembly, from old norse]

    Hustle —v. (-ling) 1 jostle, bustle. 2 (foll. By into, out of, etc.) Force, coerce, or hurry (hustled them out of the room; was hustled into agreeing). 3 slang a solicit business. B engage in prostitution. 4 slang obtain by energetic activity. —n. Act or instance of hustling. hustler n. [dutch]

    Hut n. Small simple or crude house or shelter. [french hutte from germanic]

    Hutch n. Box or cage for rabbits etc. [french huche]

    Hyacinth n. 1 bulbous plant with racemes of bell-shaped (esp. Purplish-blue) fragrant flowers. 2 purplish-blue. [greek huakinthos]

    Hyaena var. Of *hyena.

    Hybrid —n. 1 offspring of two plants or animals of different species or varieties. 2 thing composed of diverse elements, e.g. A word with parts taken from different languages. —adj. 1 bred as a hybrid. 2 heterogeneous. hybridism n.

    [latin]

    Hybridize v. (also -ise) (-zing or -sing) 1 subject (a species etc.) To crossbreeding. 2 a produce hybrids. B (of an animal or plant) interbreed. hybridization n.

    Hydra n. 1 freshwater polyp with a tubular body and tentacles. 2 something hard to destroy. [greek, a mythical snake with many heads that grew again when cut off]

    Hydrangea n. Shrub with globular clusters of white, pink, or blue flowers. [greek hudor water, aggos vessel]

    Hydrant n. Outlet (esp. In a street) with a nozzle for a hose, for drawing water from the main. [as *hydro-]

    Hydrate —n. Compound in which water is chemically combined with another compound or an element. —v. (-ting) 1 combine chemically with water. 2 cause to absorb water. hydration n. [french: related to *hydro-]

    Hydraulic adj. 1 (of water, oil, etc.) Conveyed through pipes or channels. 2 (of a mechanism etc.) Operated by liquid moving in this way (hydraulic brakes). hydraulically adv. [greek hudor water, aulos pipe]

    Hydraulics n.pl. (usu. Treated as sing.) Science of the conveyance of liquids through pipes etc., esp. As motive power.

    Hydride n. Compound of hydrogen with an element.

    Hydro n. (pl. -s) colloq. 1 hotel or clinic etc., orig. Providing hydropathic treatment. 2 hydroelectric power plant. [abbreviation]

    Hydro-comb. Form 1 having to do with water (hydroelectric). 2 combined with hydrogen (hydrochloric). [greek hudro-from hudor water]

    Hydrocarbon n. Compound of hydrogen and carbon.

    Hydrocephalus n. Accumulated fluid in the brain, esp. In young children. hydrocephalic adj. [greek kephale head]

    Hydrochloric acid n. Solution of the colourless gas hydrogen chloride in water.

    Hydrocyanic acid n. Highly poisonous liquid smelling of bitter almonds; prussic acid.

    Hydrodynamics n.pl. (usu. Treated as sing.) Science of forces acting on or exerted by fluids (esp. Liquids). hydrodynamic adj.

    Hydroelectric adj. 1 generating electricity by water-power. 2 (of electricity) so generated. hydroelectricity n.

    Hydrofoil n. 1 boat equipped with planes for lifting its hull out of the water to increase its speed. 2 such a plane.

    Hydrogen n. Tasteless odourless gas, the lightest element, occurring in water and all organic compounds. hydrogenous adj. [french: related to *hydro-, *-gen]

    Hydrogenate v. (-ting) charge with or cause to combine with hydrogen.

    hydrogenation n.

    Hydrogen bomb n. Immensely powerful bomb utilizing the explosive fusion of hydrogen nuclei.

    Hydrogen peroxide n. Viscous unstable liquid with strong oxidizing properties.

    Hydrogen sulphide n. Poisonous unpleasant-smelling gas formed by rotting animal matter.

    Hydrography n. Science of surveying and charting seas, lakes, rivers, etc.

    hydrographer n. Hydrographic adj.

    Hydrology n. Science of the properties of water, esp. Of its movement in relation to land. hydrologist n.

    Hydrolyse v. (us -lyze) (-sing or -zing) decompose by hydrolysis.

    Hydrolysis n. Chemical reaction of a substance with water, usu. Resulting in decomposition. [greek lusis dissolving]

    Hydrolyze v. (brit. -lyse) decompose by hydrolysis.

    Hydrometer n. Instrument for measuring the density of liquids.

    Hydropathy n. (medically unorthodox) treatment of disease by water. hydropathic adj. [related to *pathos]

    Hydrophilic adj. 1 having an affinity for water. 2 wettable by water. [greek philos loving]

    Hydrophobia n. 1 aversion to water, esp. As a symptom of rabies in humans. 2 rabies, esp. In humans. hydrophobic adj.

    Hydroplane n. 1 light fast motor boat that skims over water. 2 finlike attachment enabling a submarine to rise and descend.

    Hydroponics n. Growing plants without soil, in sand, gravel, or liquid, with added nutrients. [greek ponos labour]

    Hydrosphere n. Waters of the earth’s surface.

    Hydrostatic adj. Of the equilibrium of liquids and the pressure exerted by liquid at rest. [related to *static]

    Hydrostatics n.pl. (usu. Treated as sing.) Mechanics of the hydrostatic properties of liquids.

    Hydrotherapy n. Use of water, esp. Swimming, in the treatment of arthritis, paralysis, etc.

    Hydrous adj. Containing water. [related to *hydro-]

    Hydroxide n. Compound containing oxygen and hydrogen as either a hydroxide ion or a hydroxyl group.

    Hydroxyl n. (attrib.) Univalent group containing hydrogen and oxygen.

    Hyena n. (also hyaena) doglike flesh-eating mammal. [latin from greek]

    Hygiene n. 1 conditions or practices, esp. Cleanliness, conducive to maintaining health. 2 science of maintaining health. hygienic adj. Hygienically adv. Hygienist n. [greek hugies healthy]

    Hygrometer n. Instrument for measuring the humidity of the air or a gas. [greek hugros wet]

    hugros wet]

    Hygroscope n. Instrument indicating but not measuring the humidity of the air.

    Hygroscopic adj. 1 of the hygroscope. 2 (of a substance) tending to absorb moisture from the air.

    Hymen n. Membrane at the opening of the vagina, usu. Broken at the first occurrence of sexual intercourse. [greek humen membrane]

    Hymenopterous adj. Of an order of insects having four transparent wings, including bees, wasps, and ants. [greek, = membrane-winged]

    Hymn —n. 1 song of esp. Christian praise. 2 crusading theme (hymn of freedom). —v. Praise or celebrate in hymns. [greek humnos]

    Hymnal n. Book of hymns. [medieval latin: related to *hymn]

    Hymnology n. (pl. -ies) 1 the composition or study of hymns. 2 hymns collectively. hymnologist n.

    Hyoscine n. Poisonous alkaloid found in plants of the nightshade family, used to prevent motion sickness etc. [greek huoskuamos henbane from hus huos pig, kuamos bean]

    Hype slang —n. Extravagant or intensive promotion of a product etc. —v. (-ping) promote with hype. [origin unknown]

    Hyped up adj. Slang nervously excited or stimulated. [shortening of *hypodermic]

    Hyper adj. Slang hyperactive, highly-strung. [abbreviation of *hyperactive]

    Hyper-prefix meaning: 1 over, beyond, above (hypersonic). 2 too (hypersensitive). [greek huper over]

    Hyperactive adj. (of a person) abnormally active.

    Hyperbola n. (pl. -s or -lae) plane curve produced when a cone is cut by a plane that makes a larger angle with the base than the side of the cone makes. hyperbolic adj. [greek hyperbole, = excess: related to *hyper-, ballo throw]

    Hyperbole n. Exaggeration, esp. For effect. hyperbolical adj.

    Hyperbolic function n. Function related to a rectangular hyperbola, e.g. A hyperbolic cosine or sine.

    Hypercritical adj. Excessively critical. hypercritically adv.

    Hyperglycaemia n. (us hyperglycemia) excess of glucose in the bloodstream. [from *hyper-, greek glukus sweet, haima blood]

    Hyperglycemia n. (brit. Hyperglycaemia) excess of glucose in the bloodstream. [from *hyper-, greek glukus sweet, haima blood]

    Hypermarket n. Very large supermarket.

    Hypermedia n. Provision of several media (e.g. Audio, video, and graphics) on one computer system, with cross-references from one to another (often attrib.: hypermedia database).

    Hypersensitive adj. Excessively sensitive. hypersensitivity n.

    Hypersonic adj. 1 of speeds of more than five times that of sound. 2 of sound-frequencies above about a thousand million hertz.

    Hypertension n. 1 abnormally high blood pressure. 2 great emotional tension.

    Hypertext n. Provision of several texts on one computer system, with cross-references from one to another.

    Hyperthermia n. Abnormally high body-temperature. [from *hyper-, greek therme heat]

    Hyperthyroidism n. Overactivity of the thyroid gland, resulting in an increased rate of metabolism.

    Hyperventilation n. Abnormally rapid breathing. hyperventilate v. (-ting).

    Hyphen —n. Sign (-) used to join words semantically or syntactically (e.g. Fruit-tree, pick-me-up, rock-forming), to indicate the division of a word at the end of a line, or to indicate a missing or implied element (as in man-and womankind). — v. = *hyphenate. [greek huphen together]

    Hyphenate v. (-ting) 1 write (a compound word) with a hyphen. 2 join (words) with a hyphen. hyphenation n.

    Hypnosis n. 1 state like sleep in which the subject acts only on external suggestion. 2 artificially produced sleep. [greek hupnos sleep]

    Hypnotherapy n. Treatment of mental disorders by hypnosis.

    Hypnotic —adj. 1 of or producing hypnosis. 2 inducing sleep. —n. Hypnotic drug or influence. hypnotically adv. [greek: related to *hypnosis]

    Hypnotism n. The study or practice of hypnosis. hypnotist n.

    Hypnotize v. (also -ise) (-zing or -sing) 1 produce hypnosis in. 2 fascinate;

    Hypnotize v. (also -ise) (-zing or -sing) 1 produce hypnosis in. 2 fascinate; capture the mind of.

    Hypo1 n. Sodium thiosulphate (incorrectly called hyposulphite) used as a photographic fixer. [abbreviation]

    Hypo2 n. (pl. -s) slang = *hypodermic n. [abbreviation]

    Hypo-prefix 1 under (hypodermic). 2 below normal (hypotension). 3 slightly. [greek hupo under]

    Hypocaust n. Space for underfloor hot-air heating in ancient roman houses. [from *hypo-, kaustos burnt]

    Hypochondria n. Abnormal and ill-founded anxiety about one’s health. [latin from greek, = soft parts of the body below the ribs, where melancholy was thought to arise]

    Hypochondriac —n. Person given to hypochondria. —adj. Of or affected by hypochondria.

    Hypocrisy n. (pl. -ies) 1 false claim to virtue; insincerity, pretence. 2 instance of this. [greek, = acting, feigning]

    Hypocrite n. Person given to hypocrisy. hypocritical adj. Hypocritically adv.

    Hypodermic —adj. 1 of the area beneath the skin. 2 a injected beneath the skin. B (of a syringe, etc.) Used to do this. —n. Hypodermic injection or syringe. [from *hypo-, greek derma skin]

    Hypotension n. Abnormally low blood pressure.

    Hypotenuse n. Side opposite the right angle of a right-angled triangle. [greek, = subtending line]

    Hypothalamus n. (pl. -mi) region of the brain controlling body-temperature, thirst, hunger, etc. hypothalamic adj. [latin: related to *hypo-, greek thalamos inner room]

    Hypothermia n. Abnormally low body-temperature. [from *hypo-, greek therme heat]

    Hypothesis n. (pl. -theses) proposition or supposition made as the basis for reasoning or investigation. [greek, = foundation]

    Hypothesize v. (also -ise) (-zing or -sing) form or assume a hypothesis.

    Hypothetical adj. 1 of, based on, or serving as a hypothesis. 2 supposed; not necessarily true. hypothetically adv.

    Hypothyroidism n. Subnormal activity of the thyroid gland, resulting in

    cretinism. hypothyroid n. & adj.

    Hypoventilation n. Abnormally slow breathing.

    Hyssop n. 1 small bushy aromatic herb, formerly used medicinally. 2 bibl. Plant whose twigs were used for sprinkling in jewish rites. [ultimately from greek hyssopos, of semitic origin]

    Hysterectomy n. (pl. -ies) surgical removal of the womb. [greek hustera womb, *-ectomy]

    Hysteresis n. Phenomenon whereby changes in an effect lag behind changes in its cause. [greek husteros coming after]

    Hysteria n. 1 wild uncontrollable emotion or excitement. 2 functional disturbance of the nervous system, of psychoneurotic origin. [greek hustera womb]

    Hysteric n. 1 (in pl.) A fit of hysteria. B colloq. Overwhelming laughter (we were in hysterics). 2 hysterical person.

    Hysterical adj. 1 of or affected with hysteria. 2 uncontrollably emotional. 3 colloq. Extremely funny. hysterically adv.

    Hz abbr. Hertz.

    I

    I1 n. (also i) (pl. Is or i’s) 1 ninth letter of the alphabet. 2 (as a roman numeral) 1.

    I2 pron. (obj. Me; poss. My, mine; pl. We) used by a speaker or writer to refer to himself or herself. [old english]

    I3 symb. Iodine.

    I4 abbr. (also i.) 1 island(s). 2 isle(s).

    -ial var. Of *-al.

    Iambic prosody —adj. Of or using iambuses. —n. (usu. In pl.) Iambic verse.

    Iambus n. (pl. -buses or -bi) metrical foot consisting of one short followed by one long syllable (&iambus.). [greek, = lampoon]

    -ian var. Of *-an.

    Iba abbr. Independent broadcasting authority.

    Iberian —adj. Of iberia, the peninsula comprising spain and portugal; of spain and portugal. —n. Native or language of iberia. [latin iberia]

    Ibex n. (pl. -es) wild mountain goat with thick curved ridged horns. [latin]

    Ibid. Abbr. In the same book or passage etc. [latin ibidem in the same place]

    -ibility suffix forming nouns from, or corresponding to, adjectives in -ible.

    Ibis n. (pl. -es) wading bird with a curved bill, long neck, and long legs. [greek, from egyptian]

    -ible suffix forming adjectives meaning ‘that may or may be’ (forcible; possible). [latin]

    -ible suffix forming adjectives meaning ‘that may or may be’ (forcible; possible). [latin]

    -ibly suffix forming adverbs corresponding to adjectives in -ible.

    Ibo n. (also igbo) (pl. Same or -s) 1 member of a black people of se nigeria. 2 their language. [native name]

    -ic suffix 1 forming adjectives (arabic; classic; public) and nouns (critic; epic;

    -ic suffix 1 forming adjectives (arabic; classic; public) and nouns (critic; epic; mechanic; music). 2 combined in higher valence or degree of oxidation (ferric; sulphuric). [latin -icus, greek -ikos]

    -ical suffix forming adjectives corresponding to nouns or adjectives in -ic or -y (classical; historical).

    Ice —n. 1 a frozen water. B sheet of this on water. 2 ice-cream or water-ice (ate an ice). —v. (icing) 1 mix with or cool in ice (iced drinks). 2 (often foll. By over, up) a cover or become covered with ice. B freeze. 3 cover (a cake etc.) With icing. on ice 1 performed by skaters. 2 colloq. In reserve. On thin ice in a risky situation. [old english]

    Ice age n. Glacial period.

    Ice-axe n. Cutting tool used by mountaineers.

    Iceberg n. Large floating mass of ice. the tip of the iceberg small perceptible part of something very large or complex. [dutch]

    Iceberg lettuce n. Crisp type of round lettuce.

    Ice blue adj. & n. (as adj. Often hyphenated) very pale blue.

    Icebox n. 1 compartment in a refrigerator for making or storing ice. 2 us refrigerator.

    Ice-breaker n. 1 ship designed to break through ice. 2 joke, incident, etc. That breaks the ice.

    Ice bucket n. Bucket holding ice, used to chill wine.

    Ice cap n. Permanent covering of ice, esp. In polar regions.

    Ice-cream n. Sweet creamy frozen food, usu. Flavoured.

    Ice-cube n. Small block of ice for drinks etc.

    Ice-field n. Expanse of ice, esp. In polar regions.

    Ice hockey n. Form of hockey played on ice.

    Icelander n. 1 native or national of iceland. 2 person of icelandic descent.

    Icelandic —adj. Of iceland. —n. Language of iceland.

    Ice lolly n. (also iced lolly) flavoured ice on a stick.

    Ice-pack n. 1 = *pack ice. 2 ice applied to the body for medical purposes.

    Ice-pick n. Tool with a spike for splitting up ice.

    Ice-plant n. Plant with speckled leaves.

    Ice-rink n. = *rink n. 1.

    Ice-skate —n. Boot with a blade beneath, for skating on ice. —v. Skate on ice.

    ice-skater n.

    Ichneumon n. 1 (in full ichneumon fly) small wasp depositing eggs in or on the larva of another as food for its own larva. 2 mongoose noted for destroying crocodile eggs. [greek from ikhnos footstep]

    Ichthyology n. The study of fishes. ichthyological adj. Ichthyologist n. [greek ikhthus fish]

    Ichthyosaurus n. (also ichthyosaur) (pl. -sauruses or -saurs) extinct marine reptile with four flippers and usu. A large tail. [greek ikhthus fish, sauros lizard]

    -ician suffix forming nouns denoting persons skilled in subjects having nouns usu. Ending in -ic or -ics (magician; politician). [french -icien]

    Icicle n. Hanging tapering piece of ice, formed from dripping water. [from *ice, obsolete ickle icicle]

    Icing n. 1 coating of sugar etc. On a cake or biscuit. 2 formation of ice on a ship or aircraft. icing on the cake inessential though attractive addition or enhancement.

    Icing sugar n. Finely powdered sugar.

    Icon n. (also ikon) 1 painting of christ etc., esp. In the eastern church. 2 image or statue. 3 symbol on a vdu screen of a program, option, or window, esp. For selection. iconic adj. [greek eikon image]

    Iconoclast n. 1 person who attacks cherished beliefs. 2 hist. Person destroying religious images. iconoclasm n. Iconoclastic adj. [greek: related to *icon, klao break]

    Iconography n. 1 the illustration of a subject by drawings or figures. 2 the study of portraits, esp. Of an individual, or of artistic images or symbols. [greek: related to *icon]

    Iconostasis n. (pl. -stases) (in the eastern church) screen bearing icons. [greek:

    related to *icon]

    Icosahedron n. Solid figure with twenty faces. [greek eikosi twenty, hedra base]

    -ics suffix (treated as sing. Or pl.) Forming nouns denoting arts, sciences, etc.

    (athletics; politics).

    Icy adj. (-ier, -iest) 1 very cold. 2 covered with or abounding in ice. 3 (of a tone or manner) unfriendly, hostile. icily adv. Iciness n.

    Id abbr. Identification, identity (id card).

    Id n. Person’s inherited unconscious psychological impulses. [latin, = that]

    I’d contr. 1 i had. 2 i should; i would.

    -ide suffix chem. Forming nouns denoting binary compounds of an element (sodium chloride; lead sulphide; calcium carbide). [extended from *oxide]

    Idea n. 1 plan etc. Formed by mental effort (an idea for a book). 2 a mental impression or concept. B vague belief or fancy (had an idea you were married). 3 intention or purpose (the idea is to make money). 4 archetype or pattern. 5 ambition or aspiration (have ideas; put ideas into a person’s head). have no idea colloq. 1 not know at all. 2 be completely incompetent. Not one’s idea of colloq. Not what one regards as (not my idea of a holiday). [greek, = form, kind]

    Ideal —adj. 1 answering to one’s highest conception; perfect. 2 existing only in idea; visionary. —n. Perfect type, thing, concept, principle, etc., esp. As a standard to emulate. [french: related to *idea]

    Idealism n. 1 forming or pursuing ideals, esp. Unrealistically. 2 representation of things in ideal form. 3 system of thought in which objects are held to be in some way dependent on the mind. idealist n. Idealistic adj. Idealistically adv.

    Idealize v. (also -ise) (-zing or -sing) regard or represent as ideal or perfect.

    idealization n.

    Ideally adv. 1 in ideal circumstances. 2 according to an ideal.

    Idée fixe n. (pl. Idées fixes pronunc. Same) dominating idea; obsession. [french, = fixed idea]

    Identical adj. 1 (often foll. By with) (of different things) absolutely alike. 2 one and the same. 3 (of twins) developed from a single ovum. identically adv. [latin identicus: related to *identity]

    Identification n. 1 identifying. 2 means of identifying (also attrib.: identification card).

    Identification parade n. Group of people from whom a suspect is to be identified.

    Identify v. (-ies, -ied) 1 establish the identity of; recognize. 2 select or discover (identify the best solution). 3 (also refl.; foll. By with) associate inseparably or very closely (with a party, policy, etc.). 4 (often foll. By with) treat as identical. 5 (foll. By with) put oneself in the place of (another person). identifiable adj. [medieval latin identifico: related to *identity]

    Identikit n. (often attrib.) Propr. Picture of esp. A wanted suspect assembled from standard components using witnesses’ descriptions. [from *identity, *kit]

    Identity n. (pl. -ies) 1 a condition of being a specified person or thing. B individuality, personality (felt he had lost his identity). 2 identification or the result of it (mistaken identity; identity card). 3 absolute sameness (identity of interests). 4 algebra a equality of two expressions for all values of the quantities. B equation expressing this. [latin identitas from idem same]

    Ideogram n. Character symbolizing a thing without indicating the sounds in its name (e.g. A numeral, chinese characters). [greek idea form, *-gram]

    Ideograph n. = *ideogram. ideographic adj. Ideography n.

    Ideologue n. Often derog. Adherent of an ideology. [french: related to *idea]

    Ideology n. (pl. -ies) 1 ideas at the basis of an economic or political theory (marxist ideology). 2 characteristic thinking of a class etc. (bourgeois ideology). ideological adj. Ideologically adv. Ideologist n. [french: related to idea, -logy]

    Ides n.pl. Day of the ancient roman month (the 15th day of march, may, july, and october, the 13th of other months). [latin idus]

    Idiocy n. (pl. -ies) 1 foolishness; foolish act. 2 extreme mental imbecility.

    Idiom n. 1 phrase etc. Established by usage and not immediately comprehensible from the words used (e.g. Over the moon, see the light). 2 form of expression peculiar to a language etc. 3 language of a people or country. 4 characteristic mode of expression in art etc. [greek idios own]

    Idiomatic adj. 1 relating or conforming to idiom. 2 characteristic of a particular language. idiomatically adv.

    Idiosyncrasy n. (pl. -ies) attitude, behaviour, or opinion peculiar to a person; anything highly individual or eccentric. idiosyncratic adj. Idiosyncratically adv. [greek idios private, sun with, krasis mixture]

    Idiot n. 1 stupid person. 2 mentally deficient person incapable of rational conduct. idiotic adj. Idiotically adv. [greek idiotes, = private citizen, ignorant person]

    Idle —adj. (idler, idlest) 1 lazy, indolent. 2 not in use; not working. 3 (of time etc.) Unoccupied. 4 purposeless; groundless (idle rumour). 5 useless, ineffective (idle protest). —v. (-ling) 1 be idle. 2 run (an engine) or (of an engine) be run slowly without doing any work. 3 (foll. By away) pass (time etc.) In idleness. idleness n. Idler n. Idly adv. [old english]

    Idol n. 1 image of a deity etc. As an object of worship. 2 object of excessive or supreme adulation. [greek eidolon image, phantom]

    Idolater n. 1 worshipper of idols. 2 devoted admirer. idolatrous adj. Idolatry n. [related to *idol, greek latreuo worship]

    Idolize v. (also -ise) (-zing or -sing) 1 venerate or love excessively. 2 make an idol of. idolization n.

    Idyll n. 1 short description, esp. In verse, of a peaceful or romantic, esp. Rural, scene or incident. 2 such a scene or incident. [greek eidullion]

    Idyllic adj. 1 blissfully peaceful and happy. 2 of or like an idyll. idyllically adv.

    I.e. Abbr. That is to say. [latin id est]

    -ie see *-y2.

    If —conj. 1 introducing a conditional clause: a on the condition or supposition that; in the event that (if he comes i will tell him; if you are tired we can rest). B (with past tense) implying that the condition is not fulfilled (if i knew i would say). 2 even though (i’ll finish it, if it takes me all day). 3 whenever (if i am not sure i ask). 4 whether (see if you can find it). 5 expressing a wish, surprise, or request (if i could just try!; if it isn’t my old hat!; if you wouldn’t mind?). —n. Condition, supposition (too many ifs about it). if only 1 even if for no other reason than (i’ll come if only to see her). 2 (often ellipt.) Expression of regret; i wish that (if only i had thought of it). [old english]

    Iffy adj. (-ier, -iest) colloq. Uncertain; dubious.

    Igbo var. Of *ibo.

    Igloo n. Eskimo dome-shaped dwelling, esp. Of snow. [eskimo, = house]

    Igneous adj. 1 of fire; fiery. 2 (esp. Of rocks) volcanic. [latin ignis fire]

    Ignite v. (-ting) 1 set fire to. 2 catch fire. 3 provoke or excite (feelings etc.). [latin ignio ignit-set on fire]

    Ignition n. 1 mechanism for, or the action of, starting combustion in an internal-combustion engine. 2 igniting or being ignited.

    Ignoble adj. (-bler, -blest) 1 dishonourable. 2 of low birth, position, or reputation. ignobly adv. [latin: related to in-1, noble]

    Ignominious adj. Shameful, humiliating. ignominiously adv. [latin: related to *ignominy]

    Ignominy n. Dishonour, infamy. [latin: related to *in-1, latin (g)nomen name]

    Ignoramus n. (pl. -muses) ignorant person. [latin, = we do not know: related to *ignore]

    Ignorance n. Lack of knowledge. [french from latin: related to *ignore]

    Ignorant adj. 1 (often foll. By of, in) lacking knowledge (esp. Of a fact or

    Ignorant adj. 1 (often foll. By of, in) lacking knowledge (esp. Of a fact or subject). 2 colloq. Uncouth. ignorantly adv.

    Ignore v. (-ring) refuse to take notice of; intentionally disregard. [latin ignoro not know]

    Iguana n. Large american, w. Indian, or pacific lizard with a dorsal crest. [spanish from carib iwana]

    Iguanodon n. Large plant-eating dinosaur with small forelimbs. [from *iguana, which it resembles, after mastodon etc.]

    Ikebana n. Art of japanese flower arrangement. [japanese, = living flowers]

    Ikon var. Of *icon.

    Il-prefix assim. Form of in-1, in-2 before l.

    Ileum n. (pl. Ilea) third and last portion of the small intestine. [latin ilium]

    Ilex n. (pl. -es) 1 tree or shrub of the genus including the common holly. 2 holm-oak. [latin]

    Iliac adj. Of the lower body (iliac artery). [latin ilia flanks]

    Ilk n. 1 colloq., usu. Derog. Sort, family, class, etc. 2 (in of that ilk) scot. Of the ancestral estate with the same name as the family (guthrie of that ilk). [old english]

    Ill —adj. (attrib. Except in sense 1) 1 (usu. Predic.) Not in good health; unwell. 2 wretched, unfavourable (ill fortune; ill luck). 3 harmful (ill effects). 4 hostile, unkind (ill feeling). 5 faulty, unskilful (ill management). 6 (of manners or conduct) improper. —adv. 1 badly, wrongly, imperfectly (ill-matched; ill-provided). 2 scarcely (can ill afford it). 3 unfavourably (spoke ill of them). —n.

    1 injury, harm. 2 evil. ill at ease embarrassed, uneasy. [old norse]

    I’ll contr. I shall; i will.

    Ill-advised adj. Foolish; imprudent.

    Ill-assorted adj. Badly matched; mixed.

    Ill-bred adj. Badly brought up; rude.

    Ill-defined adj. Not clearly defined.

    Ill-disposed adj. 1 (often foll. By towards) unfavourably disposed. 2 malevolent.

    Illegal adj. 1 not legal. 2 criminal. illegality n. (pl. -ies). Illegally adv.

    Illegible adj. Not legible. illegibility n. Illegibly adv.

    Illegitimate adj. 1 born of parents not married to each other. 2 unlawful. 3 improper. 4 wrongly inferred. illegitimacy n. Illegitimately adv.

    Illfated adj. Destined to or bringing bad fortune.

    Ill-favoured adj. Unattractive.

    Ill-founded adj. (of an idea etc.) Baseless.

    Ill-gotten adj. Gained unlawfully or wickedly.

    Ill health n. Poor physical or mental condition.

    Ill humour n. Irritability.

    Illiberal adj. 1 intolerant, narrow-minded. 2 without liberal culture; vulgar. 3 stingy; mean. illiberality n. Illiberally adv.

    Illicit adj. Unlawful, forbidden. illicitly adv.

    Illiterate —adj. 1 unable to read. 2 uneducated. —n. Illiterate person. illiteracy n.

    Illiterately adv.

    Ill-mannered adj. Having bad manners; rude.

    Ill-natured adj. Churlish, unkind.

    Illness n. 1 disease. 2 being ill.

    Illogical adj. Devoid of or contrary to logic. illogicality n. (pl. -ies). Illogically adv.

    Ill-omened adj. Doomed.

    Ill-tempered adj. Morose, irritable.

    Ill-timed adj. Done or occurring at an inappropriate time.

    Ill-treat v. Treat badly; abuse.

    Illuminate v. (-ting) 1 light up; make bright. 2 decorate (buildings etc.) With

    lights. 3 decorate (a manuscript etc.) With gold, colour, etc. 4 help to explain (a subject etc.). 5 enlighten spiritually or intellectually. 6 shed lustre on. illuminating adj. Illumination n. Illuminative adj. [latin lumen light]

    Illumine v. (-ning) literary 1 light up; make bright. 2 enlighten.

    Ill-use v. = *ill-treat.

    Illusion n. 1 false impression or belief. 2 state of being deceived by appearances. 3 figment of the imagination. be under the illusion (foll. By that) believe mistakenly. illusive adj. Illusory adj. [latin illudo mock]

    Illusionist n. Conjuror.

    Illustrate v. (-ting) 1 a provide (a book etc.) With pictures. B elucidate by drawings, pictures, examples, etc. 2 serve as an example of. illustrator n. [latin lustro light up]

    Illustration n. 1 drawing or picture in a book, magazine, etc. 2 explanatory example. 3 illustrating.

    Illustrative adj. (often foll. By of) explanatory; exemplary.

    Illustrious adj. Distinguished, renowned. [latin illustris: related to *illustrate]

    Ill will n. Bad feeling; animosity.

    Im-prefix assim. Form of in-1, in-2 before b, m, or p.

    I’m contr. I am.

    Image —n. 1 representation of an object, e.g. A statue. 2 reputation or persona of a person, company, etc. 3 appearance as seen in a mirror or through a lens. 4 mental picture or idea. 5 simile or metaphor. —v. (-ging) 1 make an image of; portray. 2 reflect, mirror. 3 describe or imagine vividly. be the image of be or look exactly like. [latin imago imagin-]

    Imagery n. 1 figurative illustration, esp. In literature. 2 images; statuary, carving.

    3 mental images collectively.

    Imaginary adj. 1 existing only in the imagination. 2 math. Being the square root of a negative quantity. [latin: related to *image]

    Imagination n. 1 mental faculty of forming images or concepts of objects or situations not existent or not directly experienced. 2 mental creativity or resourcefulness.

    Imaginative adj. Having or showing imagination. imaginatively adv.

    Imaginativeness n.

    Imagine v. (-ning) 1 a form a mental image or concept of. B picture to oneself. 2 think of as probable (can’t imagine he’d be so stupid). 3 guess (can’t imagine what he is doing). 4 suppose (i imagine you’ll need help). imaginable adj. [latin imaginor]

    Imago n. (pl. -s or imagines) fully developed stage of an insect, e.g. A butterfly. [latin: see *image]

    Imam n. 1 leader of prayers in a mosque. 2 title of various muslim leaders. [arabic]

    Imbalance n. 1 lack of balance. 2 disproportion.

    Imbecile —n. 1 colloq. Stupid person. 2 person with a mental age of about five. —adj. Mentally weak; stupid, idiotic. imbecilic adj. Imbecility n. (pl. -ies). [french from latin]

    Imbed var. Of *embed.

    Imbibe v. (-bing) 1 drink (esp. Alcohol). 2 a assimilate (ideas etc.). B absorb (moisture etc.). 3 inhale (air etc.). [latin bibo drink]

    Imbroglio n. (pl. -s) 1 confused or complicated situation. 2 confused heap. [italian: related to in-2, broil]

    Imbue v. (-bues, -bued, -buing) (often foll. By with) 1 inspire or permeate (with feelings, opinions, or qualities). 2 saturate. 3 dye. [latin imbuo]

    Imf abbr. International monetary fund.

    Imitate v. (-ting) 1 follow the example of; copy. 2 mimic. 3 make a copy of. 4 be like. imitable adj. Imitator n. [latin imitor -tat-]

    Imitation n. 1 imitating or being imitated. 2 copy. 3 counterfeit (often attrib.:

    imitation leather).

    Imitative adj. 1 (often foll. By of) imitating; following a model or example. 2 (of a word) reproducing a natural sound (e.g. Fizz), or otherwise suggestive (e.g. Blob).

    Immaculate adj. 1 perfectly clean and tidy. 2 perfect (immaculate timing). 3 innocent, faultless. immaculately adv. Immaculateness n. [latin: related to *in-1, macula spot]

    Immaculate conception n. Rc ch. Doctrine that the virgin mary was without original sin from conception.

    Immanent adj. 1 (often foll. By in) naturally present, inherent. 2 (of god) omnipresent. immanence n. [latin: related to *in-2, maneo remain]

    Immaterial adj. 1 unimportant; irrelevant. 2 not material; incorporeal.

    immateriality n.

    Immature adj. 1 not mature. 2 undeveloped, esp. Emotionally. 3 unripe.

    immaturely adv. Immaturity n.

    Immeasurable adj. Not measurable; immense. immeasurably adv.

    Immediate adj. 1 occurring or done at once (immediate reply). 2 nearest, next; direct (immediate vicinity; immediate future; immediate cause of death). 3 most pressing or urgent (our immediate concern). immediacy n. Immediateness n. [latin: related to in-1, mediate]

    Immediately —adv. 1 without pause or delay. 2 without intermediary. —conj.

    As soon as.

    Immemorial adj. Ancient beyond memory or record (from time immemorial).

    Immense adj. 1 extremely large; huge. 2 considerable (immense difference). immenseness n. Immensity n. [latin metior mens-measure]

    Immensely adv. 1 colloq. Very much (enjoyed myself immensely). 2 to an immense degree (immensely rich).

    Immerse v. (-sing) 1 a (often foll. By in) dip, plunge. B submerge (a person). 2 (often refl. Or in passive; often foll. By in) absorb or involve deeply. 3 (often

    (often refl. Or in passive; often foll. By in) absorb or involve deeply. 3 (often foll. By in) bury, embed. [latin mergo mers-dip]

    Immersion n. 1 immersing or being immersed. 2 baptism by total bodily immersion. 3 mental absorption.

    Immersion heater n. Electric device immersed in a liquid to heat it, esp. In a hot-water tank.

    Immigrant —n. Person who immigrates. —adj. 1 immigrating. 2 of immigrants.

    Immigrate v. Come into a country and settle. immigration n. [related to in-2, migrate]

    Imminent adj. Impending; about to happen (war is imminent). imminence n. Imminently adv. [latin immineo be impending]

    Immiscible adj. (often foll. By with) not able to be mixed. immiscibility n.

    Immobile adj. 1 not moving. 2 unable to move or be moved. immobility n.

    Immobilize v. (also -ise) (-zing or -sing) 1 make or keep immobile. 2 keep (a limb or patient) still for healing purposes. immobilization n.

    Immoderate adj. Excessive; lacking moderation. immoderately adv.

    Immodest adj. 1 lacking modesty; conceited. 2 shameless, indecent. immodestly adv. Immodesty n.

    Immolate v. (-ting) kill or offer as a sacrifice. immolation n. [latin, = sprinkle with meal]

    Immoral adj. 1 not conforming to accepted morality; morally wrong. 2 sexually promiscuous or deviant. immorality n. (pl. -ies). Immorally adv.

    Immortal —adj. 1 a living for ever; not mortal. B divine. 2 unfading. 3 famous for all time. —n. 1 a immortal being. B (in pl.) Gods of antiquity. 2 person, esp. An author, remembered long after death. immortality n. Immortalize v. (also – ise) (-zing or -sing). Immortally adv.

    Immovable adj. (also immoveable) 1 not able to be moved. 2 steadfast, unyielding. 3 emotionless. 4 not subject to change (immovable law). 5 motionless. 6 (of property) consisting of land, houses, etc. immovability n. Immovably adv.

    Immune adj. 1 a (often foll. By against, from, to) protected against infection through inoculation etc. B relating to immunity (immune system). 2 (foll. By from, to) exempt from or proof against a charge, duty, criticism, etc. [latin immunis exempt]

    Immunity n. (pl. -ies) 1 ability of an organism to resist infection by means of

    antibodies and white blood cells. 2 (often foll. By from) freedom or exemption.

    Immunize v. (also -ise) (-zing or -sing) make immune, usu. By inoculation.

    immunization n.

    Immunodeficiency n. Reduction in normal immune defences.

    Immunoglobulin n. Any of a group of related proteins functioning as antibodies.

    Immunology n. The study of immunity. immunological adj. Immunologist n.

    Immunotherapy n. Prevention or treatment of disease with substances that stimulate the immune response.

    Immure v. (-ring) 1 imprison. 2 refl. Shut oneself away. [latin murus wall]

    Immutable adj. Unchangeable. immutability n. Immutably adv.

    Imp n. 1 mischievous child. 2 small devil or sprite. [old english, = young shoot]

    Impact —n. 1 effect of sudden forcible contact between two solid bodies etc.; collision. 2 strong effect or impression. —v. 1 press or fix firmly. 2 (as impacted adj.) (of a tooth) wedged between another tooth and the jaw. 3 (often foll. By on) have an impact on. impaction n. [latin: related to *impinge]

    Impair v. Damage, weaken. impairment n. [latin, = make worse, from pejor]

    Impala n. (pl. Same or -s) small african antelope. [zulu]

    Impale v. (-ling) transfix or pierce with a sharp stake etc. impalement n. [latin palus *pale2]

    Impalpable adj. 1 not easily grasped by the mind; intangible. 2 imperceptible to the touch. 3 (of powder) very fine. impalpability n. Impalpably adv.

    Impanel var. Of *empanel.

    Impart v. (often foll. By to) 1 communicate (news etc.). 2 give a share of (a thing). [latin: related to *part]

    Impartial adj. Treating all alike; unprejudiced, fair. impartiality n. Impartially adv.

    Impassable adj. Not able to be traversed. impassability n. Impassableness n.

    Impassably adv.

    Impasse n. Deadlock. [french: related to *pass1]

    Impassible adj. 1 impassive. 2 incapable of feeling, emotion, or injury. impassibility n. Impassibly adv. [latin patior pass-suffer]

    Impassioned adj. Filled with passion; ardent. [italian impassionato: related to *passion]

    Impassive adj. Incapable of or not showing emotion; serene. impassively adv.

    Impassiveness n. Impassivity n.

    Impasto n. Art technique of laying on paint thickly. [italian]

    Impatiens n. Any of several plants including the busy lizzie. [latin: related to *impatient]

    Impatient adj. 1 lacking or showing a lack of patience or tolerance. 2 restlessly eager. 3 (foll. By of) intolerant of. impatience n. Impatiently adv.

    Impeach v. 1 charge with a crime against the state, esp. Treason. 2 us charge (a public official) with misconduct. 3 call in question, disparage. impeachable adj. Impeachment n. [french empecher from latin pedica fetter]

    Impeccable adj. Faultless, exemplary. impeccability n. Impeccably adv. [related to *in-1, latin pecco sin]

    Impecunious adj. Having little or no money. impecuniosity n. Impecuniousness n. [related to *pecuniary]

    Impedance n. Total effective resistance of an electric circuit etc. To an alternating current. [from *impede]

    Usage impedance is sometimes confused with impediment, which means ‘a hindrance’ or ‘a speech defect’.

    Impede v. (-ding) obstruct; hinder. [latin impedio from pes ped-foot]

    Impediment n. 1 hindrance or obstruction. 2 speech defect, e.g. A stammer. [latin: related to *impede]

    Usage see note at impedance.

    Impedimenta n.pl. 1 encumbrances. 2 baggage, esp. Of an army.

    Impel v. (-ll-) 1 drive, force, or urge. 2 propel. [latin pello drive]

    Impend v. (often foll. By over) 1 (of a danger, event, etc.) Be threatening or imminent. 2 hang. impending adj. [latin pendeo hang]

    Impenetrable adj. 1 not able to be penetrated. 2 inscrutable. 3 inaccessible to ideas, influences, etc. impenetrability n. Impenetrableness n. Impenetrably adv.

    Impenitent adj. Not sorry, unrepentant. impenitence n.

    Imperative —adj. 1 urgent; obligatory. 2 commanding, peremptory. 3 gram. (of a mood) expressing a command (e.g. Come here!). —n. 1 gram. Imperative mood. 2 command. 3 essential or urgent thing. [latin impero command]

    Imperceptible adj. 1 not perceptible. 2 very slight, gradual, or subtle.

    imperceptibility n. Imperceptibly adv.

    Imperfect —adj. 1 not perfect; faulty, incomplete. 2 gram. (of a tense) denoting action in progress but not completed (e.g. They were singing). —n. Imperfect tense. imperfectly adv.

    Imperfection n. 1 state of being imperfect. 2 fault, blemish.

    Imperial adj. 1 of or characteristic of an empire or similar sovereign state. 2 a of an emperor. B majestic, august; authoritative. 3 (of non-metric weights and measures) statutory in the uk, esp. Formerly (imperial gallon). imperially adv. [latin imperium dominion]

    Imperialism n. 1 imperial rule or system. 2 usu. Derog. Policy of dominating other nations by acquiring dependencies etc. imperialist n. & adj. Imperialistic adj.

    Imperil v. (-ll-; us -l-) endanger.

    Imperious adj. Overbearing, domineering. imperiously adv. Imperiousness n.

    Imperishable adj. Not able to perish, indestructible.

    Impermanent adj. Not permanent. impermanence n. Impermanency n.

    Impermeable adj. Not permeable, not allowing fluids to pass through.

    impermeability n.

    Impermissible adj. Not allowable.

    Impersonal adj. 1 without personal reference; objective, impartial. 2 without human attributes; cold, unfeeling. 3 gram. A (of a verb) used esp. With it as a subject (e.g. It is snowing). B (of a pronoun) = *indefinite. impersonality n. Impersonally adv.

    Impersonate v. (-ting) 1 pretend to be (another person), esp. As entertainment or fraud. 2 act (a character). impersonation n. Impersonator n. [from in-2, latin persona]

    Impertinent adj. 1 insolent, disrespectful. 2 esp. Law irrelevant. impertinence n.

    Impertinently adv.

    Imperturbable adj. Not excitable; calm. imperturbability n. Imperturbably adv.

    Impervious adj. (usu. Foll. By to) 1 impermeable. 2 not responsive (to argument etc.).

    Impetigo n. Contagious skin infection forming pimples and sores. [latin impeto assail]

    Impetuous adj. 1 acting or done rashly or with sudden energy. 2 moving forcefully or rapidly. impetuosity n. Impetuously adv. Impetuousness n. [latin: related to *impetus]

    Impetus n. 1 force with which a body moves. 2 driving force or impulse. [latin impeto assail]

    Impiety n. (pl. -ies) 1 lack of piety or reverence. 2 act etc. Showing this.

    Impinge v. (-ging) (usu. Foll. By on, upon) 1 make an impact or effect. 2 encroach. impingement n. [latin pango pact-fix]

    Impious adj. 1 not pious. 2 wicked, profane.

    Impish adj. Of or like an imp; mischievous. impishly adv. Impishness n.

    Implacable adj. Unable to be appeased. implacability n. Implacably adv.

    Implant —v. 1 (often foll. By in) insert or fix. 2 (often foll. By in) instil (an idea etc.) In a person’s mind. 3 plant. 4 a insert (tissue etc.) In a living body. B (in passive) (of a fertilized ovum) become attached to the wall of the womb. —n. Thing implanted, esp. A piece of tissue. implantation n. [latin: related to *plant]

    Implausible adj. Not plausible. implausibility n. Implausibly adv.

    Implement —n. Tool, instrument, utensil. —v. Put (a decision, plan, contract, etc.) Into effect. implementation n. [latin impleo fulfil]

    Implicate v. (-ting) 1 (often foll. By in) show (a person) to be involved (in a crime etc.). 2 imply. [latin plico fold]

    Implication n. 1 thing implied. 2 implicating or implying.

    Implicit adj. 1 implied though not plainly expressed. 2 absolute, unquestioning (implicit belief). implicitly adv. [latin: related to *implicate]

    Implode v. (-ding) (cause to) burst inwards. implosion n. [from *in-2: cf. *explode]

    Implore v. (-ring) 1 (often foll. By to + infin.) Entreat (a person). 2 beg earnestly for. [latin ploro weep]

    Imply v. (-ies, -ied) 1 (often foll. By that) strongly suggest or insinuate without directly stating (what are you implying?). 2 signify, esp. As a consequence (silence implies guilt). [latin: related to *implicate]

    Impolite adj. (impolitest) ill-mannered, uncivil, rude. impolitely adv.

    Impoliteness n.

    Impolitic adj. Inexpedient, unwise. impoliticly adv.

    Imponderable —adj. 1 not able to be estimated. 2 very light; weightless. —n.

    (usu. In pl.) Imponderable thing. imponderability n. Imponderably adv.

    Import —v. 1 bring in (esp. Foreign goods or services) to a country. 2 imply, indicate, signify. —n. 1 (esp. In pl.) Imported article or service. 2 importing. 3 what is implied; meaning. 4 importance. importation n. Importer n. [latin importo carry in]

    Important adj. 1 (often foll. By to) of great effect or consequence; momentous. 2 (of a person) having high rank or authority. 3 pompous. importance n. Importantly adv. [latin importo carry in, signify]

    Importunate adj. Making persistent or pressing requests. importunity n. [latin importunus inconvenient]

    Importune v. (-ning) 1 pester (a person) with requests. 2 solicit as a prostitute.

    Impose v. (-sing) 1 (often foll. By on, upon) lay (a tax, duty, charge, or obligation) on. 2 enforce compliance with. 3 also refl. (foll. By on, upon, or absol.) Take advantage of (will not impose on you any longer). 4 (often foll. By on, upon) inflict (a thing) on. [latin impono]

    Imposing adj. Impressive, formidable, esp. In appearance.

    Imposition n. 1 imposing or being imposed. 2 unfair demand or burden. 3 tax, duty.

    Impossible adj. 1 not possible. 2 colloq. Not easy, convenient, or believable. 3 colloq. (esp. Of a person) outrageous, intolerable. impossibility n. (pl. -ies). Impossibly adv.

    Impost1 n. Tax, duty, or tribute. [latin impono impost-impose]

    Impost2 n. Upper course of a pillar, carrying an arch.

    Impostor n. (also imposter) 1 person who assumes a false character or pretends to be someone else. 2 swindler.

    Imposture n. Fraudulent deception.

    Impotent adj. 1 powerless, ineffective. 2 (of a male) unable to achieve an

    Impotent adj. 1 powerless, ineffective. 2 (of a male) unable to achieve an erection or orgasm. impotence n.

    Impound v. 1 confiscate. 2 take legal possession of. 3 shut up (animals) in a pound.

    Impoverish v. Make poor. impoverishment n. [french: related to *poverty]

    Impracticable adj. Not practicable. impracticability n. Impracticably adv.

    Impractical adj. 1 not practical. 2 esp. Us not practicable. impracticality n.

    Imprecation n. Formal oath, curse. [latin precor pray]

    Imprecise adj. Not precise. imprecisely adv. Impreciseness n. Imprecision n.

    Impregnable adj. Strong enough to be secure against attack. impregnability n. Impregnably adv. [french: related to *in-1, latin prehendo take]

    Impregnate v. (-ting) 1 (often foll. By with) fill or saturate. 2 (often foll. By with) imbue (with feelings etc.). 3 a make (a female) pregnant. B fertilize (an ovum). impregnation n. [latin: related to *pregnant]

    Impresario n. (pl. -s) organizer of public entertainment, esp. A theatrical etc. Manager. [italian]

    Impress —v. 1 (often foll. By with) a affect or influence deeply. B affect (a person) favourably (was most impressed). 2 (often foll. By on) emphasize (an idea etc.) (must impress on you the need to be prompt). 3 a (often foll. By on) imprint or make (a mark). B mark (a thing) with a stamp, seal, etc. —n. 1 mark made by a seal, stamp, etc. 2 characteristic mark or quality. impressible adj. [french: related to *press1]

    Impression n. 1 effect (esp. On the mind or feelings). 2 notion or belief (esp. Vague or mistaken). 3 imitation of a person or sound, esp. As entertainment. 4 a impressing. B mark impressed.

    Impressionable adj. Easily influenced. impressionability n. Impressionably adv.

    Impressionism n. 1 style or movement in art concerned with conveying the effect of natural light on objects. 2 style of music or writing seeking to convey esp. Fleeting feelings or experience. impressionist n. Impressionistic adj.

    Impressive adj. Arousing respect, approval, or admiration. impressively adv.

    Impressiveness n.

    Imprimatur n. 1 rc ch. Licence to print (a religious book etc.). 2 official approval. [latin, = let it be printed]

    Usage imprimatur is sometimes confused with sense 2 of imprint.

    Imprint —v. 1 (often foll. By on) impress firmly, esp. On the mind. 2 a (often foll. By on) make a stamp or impression of (a figure etc.) On a thing. B make an impression on (a thing) with a stamp etc. —n. 1 impression, stamp. 2 printer’s or publisher’s name etc. Printed in a book.

    Usage see note at imprimatur.

    Imprison v. 1 put in prison. 2 confine. imprisonment n.

    Improbable adj. 1 unlikely. 2 difficult to believe. improbability n. Improbably adv.

    Improbity n. (pl. -ies) 1 wickedness; dishonesty. 2 wicked or dishonest act.

    Impromptu —adj. & adv. Extempore, unrehearsed. —n. (pl. -s) 1 extempore performance or speech. 2 short, usu. Solo, instrumental composition, often improvisatory in style. [french from latin in promptu in readiness]

    Improper adj. 1 unseemly; indecent. 2 inaccurate, wrong. improperly adv.

    Improper fraction n. Fraction in which the numerator is greater than or equal to the denominator.

    Impropriety n. (pl. -ies) 1 lack of propriety; indecency. 2 instance of this. 3

    Impropriety n. (pl. -ies) 1 lack of propriety; indecency. 2 instance of this. 3 incorrectness.

    Improve v. (-ving) 1 a make or become better. B (foll. By on, upon) produce something better than. 2 (as improving adj.) Giving moral benefit (improving literature). improvable adj. Improvement n. [anglo-french emprower from french prou profit]

    Improvident adj. 1 lacking foresight. 2 profligate; wasteful. 3 incautious.

    improvidence n. Improvidently adv.

    Improvise v. (-sing) (also absol.) 1 compose or perform (music, verse, etc.) Extempore. 2 provide or construct from materials not intended for the purpose. improvisation n. Improvisational adj. Improvisatory adj. [latin improvisus unforeseen]

    Imprudent adj. Unwise, indiscreet. imprudence n. Imprudently adv.

    Impudent adj. Impertinent. impudence n. Impudently adv. [latin pudeo be ashamed]

    Impugn v. Challenge or call in question. impugnment n. [latin pugno fight]

    Impulse n. 1 sudden urge (felt an impulse to laugh). 2 tendency to follow such urges (man of impulse). 3 impelling; a push. 4 impetus. 5 physics a large temporary force producing a change of momentum (e.g. A hammer-blow). B change of momentum so produced. 6 wave of excitation in a nerve. [latin:

    related to *pulse1]

    related to *pulse1]

    Impulse buying n. Purchasing goods on impulse.

    Impulsion n. 1 impelling. 2 mental impulse. 3 impetus.

    Impulsive adj. 1 tending to act on impulse. 2 done on impulse. 3 tending to impel. impulsively adv. Impulsiveness n.

    Impunity n. Exemption from punishment, bad consequences, etc. with impunity without punishment etc. [latin poena penalty]

    Impure adj. 1 adulterated. 2 dirty. 3 unchaste.

    Impurity n. (pl. -ies) 1 being impure. 2 impure thing or part.

    Impute v. (-ting) (foll. By to) attribute (a fault etc.) To. imputation n. [latin puto reckon]

    In symb. Indium.

    In —prep. 1 expressing inclusion or position within limits of space, time, circumstance, etc. (in england; in bed; in 1989; in the rain). 2 a within (a certain

    time) (finished it in two hours).

    In. Abbr. Inch(es).

    In-1 prefix (also il-, im-, ir-) added to: 1 adjectives, meaning ‘not’ (inedible; insane). 2 nouns, meaning ‘without, lacking’ (inaction). [latin]

    In-2 prefix (also il-, im-, ir-) in, on, into, towards, within (induce; influx; insight; intrude). [from *in, or from latin in (prep.)]

    Inability n. 1 being unable. 2 lack of power or means.

    In absentia adv. In (his, her, or their) absence. [latin]

    Inaccessible adj. 1 not accessible. 2 (of a person) unapproachable. inaccessibility n.

    Inaccurate adj. Not accurate. inaccuracy n. (pl. -ies). Inaccurately adv.

    Inaction n. Lack of action.

    Inactive adj. 1 not active. 2 not operating. 3 indolent. inactivity n.

    Inadequate adj. 1 not adequate; insufficient. 2 (of a person) incompetent; weak.

    Inadequate adj. 1 not adequate; insufficient. 2 (of a person) incompetent; weak.

    inadequacy n. (pl. -ies). Inadequately adv.

    Inadmissible adj. That cannot be admitted or allowed. inadmissibility n.

    Inadmissibly adv.

    Inadvertent adj. 1 unintentional. 2 negligent, inattentive. inadvertence n. Inadvertently adv. [from in-1, advert]

    Inadvisable adj. Not advisable. inadvisability n.

    Inalienable adj. That cannot be transferred to another or taken away (inalienable rights).

    Inamorato n. (fem. Inamorata) (pl. -s) literary lover. [italian inamorato: related to *in-2, latin amor love]

    Inane adj. 1 silly, senseless. 2 empty, void. inanely adv. Inanity n. (pl. -ies). [latin inanis]

    Inanimate adj. 1 not endowed with, or deprived of, animal life (an inanimate object). 2 spiritless, dull.

    Inapplicable adj. (often foll. By to) not applicable or relevant. inapplicability n.

    Inapposite adj. Not apposite.

    Inappropriate adj. Not appropriate. inappropriately adv. Inappropriateness n.

    Inapt adj. 1 not apt or suitable. 2 unskilful. inaptitude n.

    Inarticulate adj. 1 unable to express oneself clearly. 2 (of speech) not articulate; indistinct. 3 dumb. 4 esp. Anat. Not jointed. inarticulately adv.

    Inasmuch adv. (foll. By as) 1 since, because. 2 to the extent that. [from in as much]

    Inattentive adj. 1 not paying attention. 2 neglecting to show courtesy. inattention n. Inattentively adv.

    Inaudible adj. Unable to be heard. inaudibly adv.

    Inaugural —adj. Of or for an inauguration. —n. Inaugural speech, lecture, etc. [french from latin auguro take omens: related to *augur]

    Inaugurate v. (-ting) 1 admit formally to office. 2 begin (an undertaking) or initiate the public use of (a building etc.), with a ceremony. 3 begin, introduce. inauguration n. Inaugurator n.

    Inauspicious adj. 1 ill-omened, not favourable. 2 unlucky. inauspiciously adv.

    Inauspicious adj. 1 ill-omened, not favourable. 2 unlucky. inauspiciously adv.

    Inauspiciousness n.

    In-between attrib. Adj. Colloq. Intermediate.

    Inboard —adv. Within the sides or towards the centre of a ship, aircraft, or vehicle. —adj. Situated inboard.

    Inborn adj. Existing from birth; natural, innate.

    Inbred adj. 1 inborn. 2 produced by inbreeding.

    Inbreeding n. Breeding from closely related animals or persons. inbreed v. (past and past part. -bred).

    Inbuilt adj. Built-in.

    Inc. Abbr. Us incorporated.

    Inca n. Member of a people of peru before the spanish conquest. [quechua, = lord]

    Incalculable adj. 1 too great for calculation. 2 not calculable beforehand. 3 uncertain, unpredictable. incalculability n. Incalculably adv.

    Incandesce v. (-cing) (cause to) glow with heat.

    Incandescent adj. 1 glowing with heat. 2 shining. 3 (of artificial light) produced by a glowing filament etc. incandescence n. [latin candeo be white]

    Incantation n. Magical formula; spell, charm. incantational adj. [latin canto sing]

    Incapable adj. 1 a not capable. B too honest, kind, etc., to do something (incapable of hurting anyone). 2 not capable of rational conduct (drunk and incapable). incapability n. Incapably adv.

    Incapacitate v. (-ting) make incapable or unfit.

    Incapacity n. 1 inability; lack of power. 2 legal disqualification.

    Incarcerate v. (-ting) imprison. incarceration n. [medieval latin carcer prison]

    Incarnate —adj. Embodied in flesh, esp. In human form (is the devil incarnate). —v. (-ting) 1 embody in flesh. 2 put (an idea etc.) Into concrete form. 3 be the living embodiment of (a quality). [latin incarnor be made flesh: related to *carnage]

    Incarnation n. 1 a embodiment in (esp. Human) flesh. B (the incarnation) the

    Incarnation n. 1 a embodiment in (esp. Human) flesh. B (the incarnation) the embodiment of god in christ. 2 (often foll. By of) living type (of a quality etc.).

    Incautious adj. Heedless, rash. incautiously adv.

    Incendiary —adj. 1 (of a bomb) designed to cause fires. 2 a of arson. B guilty of arson. 3 inflammatory. —n. (pl. -ies) 1 incendiary bomb. 2 arsonist. incendiarism n. [latin incendo -cens-set fire to]

    Incense1 n. 1 gum or spice producing a sweet smell when burned. 2 smoke of this, esp. In religious ceremonial. [church latin incensum]

    Incense2 v. (-sing) make angry. [latin: related to *incendiary]

    Incense2 v. (-sing) make angry. [latin: related to *incendiary]

    Incentive —n. 1 motive or incitement. 2 payment or concession encouraging effort in work. —attrib. Adj. Serving to motivate or incite (incentive scheme). [latin incentivus that sets the tune]

    Inception n. Beginning. [latin incipio -cept-begin]

    Inceptive adj. 1 a beginning. B initial. 2 (of a verb) denoting the beginning of an action.

    Incessant adj. Unceasing, continual, repeated. incessantly adv. [latin cesso cease]

    Incest n. Sexual intercourse between persons too closely related to marry. [latin castus chaste]

    Incestuous adj. 1 of or guilty of incest. 2 having relationships restricted to a particular group or organization. incestuously adv.

    Inch —n. 1 linear measure of 1/12 of a foot (2.54 cm). 2 (as a unit of rainfall) 1 inch depth of water. 3 (as a unit of map-scale) so many inches representing 1 mile. 4 small amount (usu. With neg.: would not yield an inch). —v. Move gradually. every inch entirely (looked every inch a queen). Within an inch of almost to the point of. [old english from latin uncia *ounce]

    Inchoate adj. 1 just begun. 2 undeveloped. inchoation n. [latin inchoo, incoho begin]

    Usage inchoate is sometimes used incorrectly to mean ‘chaotic’ or ‘incoherent’.

    Incidence n. 1 (often foll. By of) range, scope, extent, or rate of occurrence or influence (of disease, tax, etc.). 2 falling of a line, ray, particles, etc., on a surface. 3 coming into contact with a thing. [latin cado fall]

    Incident —n. 1 occurrence, esp. A minor one. 2 public disturbance (the march took place without incident). 3 clash of armed forces (frontier incident). 4 distinct piece of action in a play, film, etc. —adj. 1 (often foll. By to) apt to occur; naturally attaching. 2 (often foll. By on, upon) (of light etc.) Falling. [latin

    cado fall]

    Incidental —adj. (often foll. By to) 1 small and relatively unimportant, minor; supplementary. 2 not essential. —n. (usu. In pl.) Minor detail, expense, event, etc.

    Incidentally adv. 1 by the way. 2 in an incidental way.

    Incidental music n. Background music in a film, broadcast, etc.

    Incinerate v. (-ting) burn to ashes. incineration n. [medieval latin cinis ciner-ashes]

    Incinerator n. Furnace or device for incineration.

    Incipient adj. 1 beginning. 2 in an early stage. [latin incipio begin]

    Incise v. (-sing) 1 make a cut in. 2 engrave. [latin caedo cut]

    Incision n. 1 cutting, esp. By a surgeon. 2 cut made in this way.

    Incisive adj. 1 sharp. 2 clear and effective.

    Incisor n. Cutting-tooth, esp. At the front of the mouth.

    Incite v. (-ting) (often foll. By to) urge or stir up. incitement n. [latin cito rouse]

    Incivility n. (pl. -ies) 1 rudeness. 2 impolite act.

    Inclement adj. (of the weather) severe or stormy. inclemency n.

    Inclination n. 1 disposition or propensity. 2 liking, affection. 3 slope, slant. 4 angle between lines. 5 dip of a magnetic needle. 6 slow nod of the head. [latin: related to *incline]

    Incline —v. (-ning) 1 (usu. In passive) a dispose or influence (am inclined to think so; does not incline me to agree; don’t feel inclined). B have a specified tendency (the door is inclined to bang). 2 a be disposed (i incline to think so). B (often foll. By to, towards) tend. 3 (cause to) lean, usu. From the vertical; slope. 4 bend forward or downward. —n. Slope. incline one’s ear listen favourably. [latin clino bend]

    Inclined plane n. Sloping plane used e.g. To reduce work in raising a load.

    Include v. (-ding) 1 comprise or reckon in as part of a whole. 2 (as including prep.) If we include (six, including me). 3 put in a certain category etc. inclusion n. [latin includo -clus-enclose, from claudo shut]

    Inclusive adj. 1 (often foll. By of) including. 2 including the limits stated (pages 7 to 26 inclusive). 3 including all or much (inclusive terms). inclusively adv. Inclusiveness n.

    Incognito —predic. Adj. & adv. With one’s name or identity kept secret. —n. (pl. -s) 1 person who is incognito. 2 pretended identity. [italian, = unknown: related to in-1, cognition]

    Incognizant adj. Formal unaware. incognizance n.

    Incoherent adj. 1 unintelligible. 2 lacking logic or consistency; not clear.

    incoherence n. Incoherently adv.

    Incombustible adj. That cannot be burnt.

    Income n. Money received, esp. Periodically or in a year, from one’s work, investments, etc. [from in, come]

    Income tax n. Tax levied on income.

    Incoming —adj. 1 coming in (incoming telephone calls). 2 succeeding another (incoming tenant). —n. (usu. In pl.) Revenue, income.

    Incommensurable adj. (often foll. By with) 1 not commensurable. 2 having no common factor, integral or fractional. incommensurability n.

    Incommensurate adj. 1 (often foll. By with, to) out of proportion; inadequate. 2 = *incommensurable.

    Incommode v. (-ding) formal 1 inconvenience. 2 trouble, annoy.

    Incommodious adj. Formal too small for comfort; inconvenient.

    Incommunicable adj. That cannot be communicated.

    Incommunicado adj. 1 without means of communication. 2 (of a prisoner) in solitary confinement. [spanish incomunicado]

    Incommunicative adj. Uncommunicative.

    Incomparable adj. Without an equal; matchless. incomparability n. Incomparably adv.

    Incompatible adj. Not compatible. incompatibility n.

    Incompetent —adj. Lacking the necessary skill. —n. Incompetent person.

    incompetence n.

    Incomplete adj. Not complete.

    Incomprehensible adj. That cannot be understood.

    Incomprehension n. Failure to understand.

    Inconceivable adj. 1 that cannot be imagined. 2 colloq. Most unlikely.

    inconceivably adv.

    Inconclusive adj. (of an argument, evidence, or action) not decisive or convincing.

    Incongruous adj. 1 out of place; absurd. 2 (often foll. By with) out of keeping.

    incongruity n. (pl. -ies). Incongruously adv.

    Inconsequent adj. 1 irrelevant. 2 lacking logical sequence. 3 disconnected.

    inconsequence n.

    Inconsequential adj. 1 unimportant. 2 = *inconsequent. inconsequentially adv.

    Inconsiderable adj. 1 of small size, value, etc. 2 not worth considering.

    inconsiderably adv.

    Inconsiderate adj. (of a person or action) lacking regard for others; thoughtless.

    Inconsiderate adj. (of a person or action) lacking regard for others; thoughtless.

    inconsiderately adv. Inconsiderateness n.

    Inconsistent adj. Not consistent. inconsistency n. (pl. -ies). Inconsistently adv.

    Inconsolable adj. (of a person, grief, etc.) That cannot be consoled. inconsolably adv.

    Inconspicuous adj. Not conspicuous; not easily noticed. inconspicuously adv.

    Inconspicuousness n.

    Inconstant adj. 1 fickle, changeable. 2 variable, not fixed. inconstancy n. (pl. – ies).

    Incontestable adj. That cannot be disputed. incontestably adv.

    Incontinent adj. 1 unable to control the bowels or bladder. 2 lacking self-restraint (esp. In sexual matters). incontinence n.

    Incontrovertible adj. Indisputable, undeniable. incontrovertibly adv.

    Inconvenience —n. 1 lack of ease or comfort; trouble. 2 cause or instance of this. —v. (-cing) cause inconvenience to.

    Inconvenient adj. Causing trouble, difficulty, or discomfort; awkward.

    inconveniently adv.

    Incorporate —v. (-ting) 1 include as a part or ingredient (incorporated all the latest features). 2 (often foll. By in, with) unite (in one body). 3 admit as a member of a company etc. 4 (esp. As incorporated adj.) Form into a legal corporation. —adj. Incorporated. incorporation n. [latin corpus body]

    Incorporeal adj. Without physical or material existence. incorporeally adv.

    Incorporeity n.

    Incorrect adj. 1 not correct or true. 2 improper, unsuitable. incorrectly adv.

    Incorrigible adj. (of a person or habit) that cannot be corrected or improved.

    incorrigibility n. Incorrigibly adv.

    Incorruptible adj. 1 that cannot be corrupted, esp. By bribery. 2 that cannot decay. incorruptibility n. Incorruptibly adv.

    Increase —v. (-sing) make or become greater or more numerous. —n. 1 growth, enlargement. 2 (of people, animals, or plants) multiplication. 3 amount or extent of an increase. on the increase increasing. [latin cresco grow]

    Increasingly adv. More and more.

    Incredible adj. 1 that cannot be believed. 2 colloq. Amazing, extremely good.

    incredibility n. Incredibly adv.

    Incredulous adj. Unwilling to believe; showing disbelief. incredulity n.

    Incredulously adv.

    Increment n. Increase or added amount, esp. On a fixed salary scale. incremental adj. [latin cresco grow]

    Incriminate v. (-ting) 1 make (a person) appear to be guilty. 2 charge with a crime. incrimination n. Incriminatory adj. [latin: related to *crime]

    Incrustation n. 1 encrusting. 2 crust or hard coating. 3 deposit on a surface. [latin: related to *crust]

    Incubate v. (-ting) 1 hatch (eggs) by sitting on them or by artificial heat. 2 cause (micro-organisms) to develop. 3 develop slowly. [latin cubo lie]

    Incubation n. 1 incubating. 2 period between infection and the appearance of the first symptoms.

    Incubator n. Apparatus providing artificial warmth for hatching eggs, rearing premature babies, or developing micro-organisms.

    Incubus n. (pl. -buses or -bi) 1 demon formerly believed to have sexual intercourse with sleeping women. 2 nightmare. 3 oppressive person or thing. [latin: as *incubate]

    Inculcate v. (-ting) (often foll. By upon, in) urge or impress (a habit or idea) persistently. inculcation n. [latin calco tread]

    Incumbency n. (pl. -ies) office or tenure of an incumbent.

    Incumbent —adj. 1 resting as a duty (it is incumbent on you to do it). 2 (often foll. By on) lying, pressing. 3 currently holding office (the incumbent president). —n. Holder of an office or post, esp. A benefice. [latin incumbo lie upon]

    Incunabulum n. (pl. -la) 1 early printed book, esp. From before 1501. 2 (in pl.) Early stages of a thing. [latin, (in pl.) = swaddling-clothes]

    Incur v. (-rr-) bring on oneself (danger, blame, loss, etc.). [latin curro run]

    Incurable —adj. That cannot be cured. —n. Incurable person. incurability n.

    Incurably adv.

    Incurious adj. Lacking curiosity.

    Incursion n. Invasion or attack, esp. Sudden or brief. incursive adj. [latin: related to *incur]

    Incurve v. (-ving) 1 bend into a curve. 2 (as incurved adj.) Curved inwards.

    incurvation n.

    incurvation n.

    Indebted adj. (usu. Foll. By to) owing gratitude or money. indebtedness n. [french endetté: related to *debt]

    Indecent adj. 1 offending against decency. 2 unbecoming; unsuitable (indecent haste). indecency n. (pl. -ies). Indecently adv.

    Indecent assault n. Sexual attack not involving rape.

    Indecent exposure n. Exposing one’s genitals in public.

    Indecipherable adj. That cannot be deciphered.

    Indecision n. Inability to decide; hesitation.

    Indecisive adj. 1 (of a person) not decisive; hesitating. 2 not conclusive (an indecisive battle). indecisively adv. Indecisiveness n.

    Indeclinable adj. Gram. That cannot be declined; having no inflections.

    Indecorous adj. 1 improper, undignified. 2 in bad taste. indecorously adv.

    Indeed —adv. 1 in truth; really. 2 admittedly. —int. Expressing irony, incredulity, etc.

    Indefatigable adj. Unwearying, unremitting. indefatigably adv.

    Indefeasible adj. Literary (esp. Of a claim, rights, etc.) That cannot be forfeited or annulled. indefeasibly adv.

    Indefensible adj. That cannot be defended or justified. indefensibility n.

    Indefensibly adv.

    Indefinable adj. That cannot be defined; mysterious. indefinably adv.

    Indefinite adj. 1 vague, undefined. 2 unlimited. 3 (of adjectives, adverbs, and pronouns) not determining the person etc. Referred to (e.g. Some, someone, anyhow).

    Indefinite article n. Word (e.g. A, an in english) preceding a noun and implying ‘any of several’.

    Indefinitely adv. 1 for an unlimited time (was postponed indefinitely). 2 in an indefinite manner.

    Indelible adj. That cannot be rubbed out or removed. indelibly adv. [latin deleo efface]

    Indelicate adj. 1 coarse, unrefined. 2 tactless. indelicacy n. (pl. -ies). Indelicately adv.

    Indemnify v. (-ies, -ied) 1 (often foll. By from, against) secure (a person) in respect of harm, a loss, etc. 2 (often foll. By for) exempt from a penalty. 3 compensate. indemnification n. [latin indemnis free from loss]

    Indemnity n. (pl. -ies) 1 a compensation for damage. B sum exacted by a victor in war. 2 security against loss. 3 exemption from penalties.

    Indent —v. 1 make or impress marks, notches, dents, etc. In. 2 start (a line of print or writing) further from the margin than others. 3 draw up (a legal document) in duplicate. 4 a (often foll. By on, upon a person, for a thing) make a requisition. B order (goods) by requisition. —n. 1 a order (esp. From abroad) for goods. B official requisition for stores. 2 indented line. 3 indentation. 4 indenture. [latin dens dentis tooth]

    Indentation n. 1 indenting or being indented. 2 notch.

    Indention n. 1 indenting, esp. In printing. 2 notch.

    Indenture —n. 1 (usu. In pl.) Sealed agreement or contract. 2 formal list, certificate, etc. —v. (-ring) hist. Bind by indentures, esp. As an apprentice. [anglo-french: related to *indent]

    Independent —adj. 1 a (often foll. By of) not depending on authority or control. B self-governing. 2 a not depending on another person for one’s opinions or livelihood. B (of income or resources) making it unnecessary to earn one’s living. 3 unwilling to be under an obligation to others. 4 acting independently of any political party. 5 not depending on something else for its validity etc. (independent proof). 6 (of broadcasting, a school, etc.) Not supported by public funds. —n. Person who is politically independent. independence n. Independently adv.

    In-depth adj. Thorough.

    Indescribable adj. 1 too good or bad etc. To be described. 2 that cannot be described. indescribably adv.

    Indestructible adj. That cannot be destroyed. indestructibility n. Indestructibly adv.

    Indeterminable adj. That cannot be ascertained or settled. indeterminably adv.

    Indeterminate adj. 1 not fixed in extent, character, etc. 2 left doubtful; vague. 3 math. Of no fixed value. indeterminacy n.

    Indeterminate vowel n. Vowel heard in ‘a moment ago’.

    Index —n. (pl. Indexes or indices) 1 alphabetical list of subjects etc. With references, usu. At the end of a book. 2 = *card index. 3 measure of prices or

    wages compared with a previous month, year, etc. (retail price index). 4 math. Exponent of a number. 5 pointer, sign, or indicator. —v. 1 provide (a book etc.) With an index. 2 enter in an index. 3 relate (wages etc.) To a price index. indexation n. (in sense 3 of v.). [latin]

    Index finger n. Forefinger.

    Index-linked adj. Related to the value of a price index.

    Indiaman n. (pl. -men) hist. Ship engaged in trade with india or the east indies.

    Indian —n. 1 a native or national of india. B person of indian descent. 2 (in full american indian) a original inhabitant of america. B any of the languages of the american indians. —adj. 1 of india or the subcontinent comprising india, pakistan, and bangladesh. 2 of the original peoples of america.

    Indian corn n. Maize.

    Indian elephant n. The elephant of india, smaller than the african elephant.

    Indian file n. = *single file.

    Indian hemp see *hemp 1.

    Indian ink n. 1 black pigment. 2 ink made from this.

    Indian summer n. 1 dry warm weather in late autumn. 2 late tranquil period of life.

    Indiarubber n. Rubber for erasing pencil marks etc.

    Indicate v. (-ting) (often foll. By that) 1 point out; make known. 2 be a sign of; show the presence of. 3 call for; require (stronger measures are indicated). 4 state briefly. 5 give as a reading or measurement. 6 point by hand; use a vehicle’s indicator (failed to indicate). indication n. [latin dico make known]

    Indicative —adj. 1 (foll. By of) suggestive; serving as an indication. 2 gram. (of a mood) stating a fact. —n. Gram. 1 indicative mood. 2 verb in this mood.

    Indicator n. 1 flashing light on a vehicle showing the direction in which it is about to turn. 2 person or thing that indicates. 3 device indicating the condition of a machine etc. 4 recording instrument. 5 board giving information, esp. Times of trains etc.

    Indicatory adj. (often foll. By of) indicative.

    Indices pl. Of *index.

    Indict v. Accuse formally by legal process. [anglo-french: related to in-2, dictate]

    Indictable adj. 1 (of an offence) making the doer liable to be charged with a crime. 2 (of a person) so liable.

    Indictment n. 1 a indicting, accusation. B document containing this. 2 thing that serves to condemn or censure (an indictment of society).

    Indie colloq. —adj. (of a pop group or record label) independent, not belonging to one of the major companies. —n. Such a group or label. [abbreviation of *independent]

    Indifference n. 1 lack of interest or attention. 2 unimportance.

    Indifferent adj. 1 (foll. By to) showing indifference or lack of interest. 2 neither good nor bad. 3 of poor quality or ability. indifferently adv.

    Indigenous adj. (often foll. By to) native or belonging naturally to a place. [latin:

    from a root gen-be born]

    Indigent adj. Formal needy, poor. indigence n. [latin egeo need]

    Indigestible adj. 1 difficult or impossible to digest. 2 too complex to read or understand. indigestibility n.

    Indigestion n. 1 difficulty in digesting food. 2 pain caused by this.

    Indignant adj. Feeling or showing indignation. indignantly adv. [latin dignus worthy]

    Indignation n. Anger at supposed injustice etc.

    Indignity n. (pl. -ies) 1 humiliating treatment or quality. 2 insult.

    Indigo n. (pl. -s) 1 colour between blue and violet in the spectrum. 2 dye of this colour. [greek indikon indian dye]

    Indirect adj. 1 not going straight to the point. 2 (of a route etc.) Not straight. 3 a not directly sought (indirect result). B not primary (indirect cause). indirectly adv.

    Indirect object n. Gram. Person or thing affected by a verbal action but not primarily acted on (e.g. Him in give him the book).

    Indirect question n. Gram. Question in indirect speech.

    Indirect speech n. = *reported speech.

    Indirect tax n. Tax on goods and services, not on income or profits.

    Indiscernible adj. That cannot be discerned.

    Indiscipline n. Lack of discipline.

    Indiscreet adj. 1 not discreet. 2 injudicious, unwary. indiscreetly adv.

    Indiscretion n. Indiscreet conduct or action.

    Indiscriminate adj. Making no distinctions; done or acting at random (indiscriminate shooting). indiscriminately adv.

    Indispensable adj. That cannot be dispensed with; necessary. indispensability n.

    Indispensably adv.

    Indisposed adj. 1 slightly unwell. 2 averse or unwilling. indisposition n.

    Indisputable adj. That cannot be disputed. indisputably adv.

    Indissoluble adj. 1 that cannot be dissolved or broken up. 2 firm and lasting.

    indissolubly adv.

    Indistinct adj. 1 not distinct. 2 confused, obscure. indistinctly adv.

    Indistinct adj. 1 not distinct. 2 confused, obscure. indistinctly adv.

    Indistinguishable adj. (often foll. By from) not distinguishable.

    Indite v. (-ting) formal or joc. 1 put (a speech etc.) Into words. 2 write (a letter etc.). [french: related to *indict]

    Indium n. Soft silvery-white metallic element occurring in zinc ores. [latin indicum *indigo]

    Individual —adj. 1 of, for, or characteristic of, a single person etc. 2 a single (individual words). B particular; not general. 3 having a distinct character. 4 designed for use by one person. —n. 1 single member of a class. 2 single human being. 3 colloq. Person (a tiresome individual). 4 distinctive person. [medieval latin: related to *divide]

    Individualism n. 1 social theory favouring free action by individuals. 2 being independent or different. individualist n. Individualistic adj.

    Individuality n. 1 individual character, esp. When strongly marked. 2 separate existence.

    Individualize v. (also -ise) (-zing or -sing) 1 give an individual character to. 2 (esp. As individualized adj.) Personalize (individualized notepaper).

    Individually adv. 1 one by one. 2 personally. 3 distinctively.

    Indivisible adj. Not divisible.

    Indo-comb. Form indian; indian and.

    Indoctrinate v. (-ting) teach to accept a particular belief uncritically.

    indoctrination n.

    Indo-european —adj. 1 of the family of languages spoken over most of europe and asia as far as n. India. 2 of the hypothetical parent language of this family. —n. 1 indo-european family of languages. 2 hypothetical parent language of these.

    Indolent adj. Lazy; averse to exertion. indolence n. Indolently adv. [latin doleo suffer pain]

    Indomitable adj. 1 unconquerable. 2 unyielding. indomitably adv. [latin: related to *in-1, domito tame]

    Indoor adj. Of, done, or for use in a building or under cover.

    Indoors adv. Into or in a building.

    Indorse var. Of *endorse.

    Indorse var. Of *endorse.

    Indrawn adj. (of breath etc.) Drawn in.

    Indubitable adj. That cannot be doubted. indubitably adv. [latin dubito doubt]

    Induce v. (-cing) 1 prevail on; persuade. 2 bring about. 3 a bring on (labour) artificially. B bring on labour in (a mother). C speed up the birth of (a baby). 4 produce (a current) by induction. 5 infer; deduce. inducible adj. [latin duco duct-lead]

    Inducement n. Attractive offer; incentive; bribe.

    Induct v. (often foll. By to, into) 1 introduce into office, install (into a benefice etc.). 2 archaic lead (to a seat, into a room, etc.); install. [related to *induce]

    Inductance n. Property of an electric circuit generating an electromotive force by virtue of the current flowing through it.

    Induction n. 1 act of inducting or inducing. 2 act of bringing on (esp. Labour) by artificial means. 3 inference of a general law from particular instances. 4 (often attrib.) Formal introduction to a new job etc. (induction course). 5 electr. A production of an electric or magnetic state by the proximity (without contact) of an electrified or magnetized body. B production of an electric current by a change of magnetic field. 6 drawing of the fuel mixture into the cylinders of an internal-combustion engine.

    Inductive adj. 1 (of reasoning etc.) Based on induction. 2 of electric or magnetic induction.

    Inductor n. Component (in an electric circuit) having inductance.

    Indue var. Of *endue.

    Indulge v. (-ging) 1 (often foll. By in) take pleasure freely. 2 yield freely to (a desire etc.). 3 (also refl.) Gratify the wishes of. 4 colloq. Take alcoholic liquor. [latin indulgeo give free rein to]

    Indulgence n. 1 indulging or being indulgent. 2 thing indulged in. 3 rc ch.

    Remission of punishment still due after absolution. 4 privilege granted.

    Indulgent adj. 1 lenient; ready to overlook faults etc. 2 indulging. indulgently adv.

    Industrial adj. 1 of, engaged in, or for use in or serving the needs of industries. 2 (of a nation etc.) Having developed industries. industrially adv.

    Industrial action n. Strike or other disruptive action by workers as a protest.

    Industrial estate n. Area of land zoned for factories etc.

    Industrialism n. System in which manufacturing industries are prevalent.

    Industrialist n. Owner or manager in industry.

    Industrialize v. (also -ise) (-zing or -sing) make (a nation etc.) Industrial.

    industrialization n.

    Industrial relations n.pl. Relations between management and workers.

    Industrious adj. Hard-working. industriously adv.

    Industry n. (pl. -ies) 1 a branch of production or manufacture; commercial enterprise. B these collectively. 2 concerted activity (a hive of industry). 3 diligence. [latin industria]

    -ine suffix 1 forming adjectives, meaning ‘belonging to, of the nature of’ (alpine; asinine). 2 forming feminine nouns (heroine). [latin -inus]

    Inebriate —v. (-ting) 1 make drunk. 2 excite. —adj. Drunken. —n. Drunkard. inebriation n. Inebriety n. [latin ebrius drunk]

    Inedible adj. Not suitable for eating.

    Ineducable adj. Incapable of being educated.

    Ineducable adj. Incapable of being educated.

    Ineffable adj. 1 too great for description in words. 2 that must not be uttered. ineffability n. Ineffably adv. [latin effor speak out]

    Ineffective adj. Not achieving the desired effect or results. ineffectively adv.

    Ineffectiveness n.

    Ineffectual adj. Ineffective, feeble. ineffectually adv. Ineffectualness n.

    Inefficient adj. 1 not efficient or fully capable. 2 (of a machine etc.) Wasteful.

    inefficiency n. Inefficiently adv.

    Inelegant adj. 1 ungraceful. 2 unrefined. inelegance n. Inelegantly adv.

    Ineligible adj. Not eligible or qualified. ineligibility n.

    Ineluctable adj. Inescapable, unavoidable. [latin luctor strive]

    Inept adj. 1 unskilful. 2 absurd, silly. 3 out of place. ineptitude n. Ineptly adv. [latin: related to *apt]

    Inequable adj. 1 unfair. 2 not uniform.

    Inequality n. (pl. -ies) 1 lack of equality. 2 variability. 3 unevenness.

    Inequitable adj. Unfair, unjust.

    Inequity n. (pl. -ies) unfairness, injustice.

    Ineradicable adj. That cannot be rooted out.

    Inert adj. 1 without inherent power of action, motion, or resistance. 2 not reacting chemically with other substances (inert gas). 3 sluggish, slow; lifeless. [latin iners -ert-: related to *art]

    Inertia n. 1 physics property of matter by which it continues in its existing state of rest or motion unless an external force is applied. 2 a inertness, lethargy. B tendency to remain unchanged (inertia of the system). inertial adj. [latin: related to *inert]

    Inertia reel n. Reel allowing a seat-belt to unwind freely but locking on impact etc.

    Inertia selling n. Sending of unsolicited goods in the hope of making a sale.

    Inescapable adj. That cannot be escaped or avoided.

    Inessential —adj. Not necessary; dispensable. —n. Inessential thing.

    Inestimable adj. Too great, precious, etc., to be estimated. inestimably adv.

    Inevitable —adj. 1 unavoidable; sure to happen. 2 colloq. Tiresomely familiar. —n. (prec. By the) inevitable fact, event, etc. inevitability n. Inevitably adv. [latin evito avoid]

    Inexact adj. Not exact. inexactitude n. Inexactly adv.

    Inexcusable adj. That cannot be excused or justified. inexcusably adv.

    Inexhaustible adj. That cannot be used up, endless.

    Inexorable adj. Relentless; unstoppable. inexorably adv. [latin exoro entreat]

    Inexpedient adj. Not expedient.

    Inexpensive adj. Not expensive.

    Inexperience n. Lack of experience, knowledge, or skill. inexperienced adj.

    Inexpert adj. Unskilful; lacking expertise.

    Inexpiable adj. That cannot be expiated or appeased.

    Inexplicable adj. That cannot be explained. inexplicably adv.

    Inexpressible adj. That cannot be expressed. inexpressibly adv.

    Inextinguishable adj. That cannot be extinguished or destroyed.

    In extremis adj. 1 at the point of death. 2 in great difficulties; in an emergency. [latin]

    Inextricable adj. 1 inescapable. 2 that cannot be separated, loosened, or solved.

    inextricably adv.

    Inf abbr. Intermediate-range nuclear forces.

    Infallible adj. 1 incapable of error. 2 unfailing; sure to succeed. 3 (of the pope) incapable of doctrinal error. infallibility n. Infallibly adv.

    Infamous adj. Notoriously bad. infamously adv. Infamy n. (pl. -ies).

    Infant n. 1 a child during the earliest period of its life. B schoolchild below the age of seven years. 2 (esp. Attrib.) Thing in an early stage of its development. 3 law person under 18. infancy n. [latin infans unable to speak]

    Infanta n. Hist. Daughter of a spanish or portuguese king. [spanish and portuguese: related to *infant]

    Infanticide n. 1 killing of an infant, esp. Soon after birth. 2 person who kills an infant.

    Infantile adj. 1 of or like infants. 2 childish, immature. infantilism n.

    Infantile paralysis n. Poliomyelitis.

    Infantry n. (pl. -ies) body of foot-soldiers; foot-soldiers collectively. [italian infante youth, foot-soldier]

    Infantryman n. Soldier of an infantry regiment.

    Infarct n. Small area of dead tissue caused by an inadequate blood supply. infarction n. [latin farcio farct-stuff]

    Infatuate v. (-ting) (usu. As infatuated adj.) 1 inspire with intense usu. Transitory fondness or admiration. 2 affect with extreme folly. infatuation n. [latin: related

    fondness or admiration. 2 affect with extreme folly. infatuation n. [latin: related to *fatuous]

    Infect v. 1 affect or contaminate with a germ, virus, or disease. 2 imbue, taint. [latin inficio -fect-taint]

    Infection n. 1 a infecting or being infected. B instance of this; disease. 2 communication of disease, esp. By air, water, etc.

    Infectious adj. 1 infecting. 2 (of a disease) transmissible by infection. 3 (of emotions etc.) Quickly affecting or spreading to others. infectiously adv. Infectiousness n.

    Infelicity n. (pl. -ies) 1 inapt expression etc. 2 unhappiness. infelicitous adj.

    Infer v. (-rr-) 1 deduce or conclude. 2 imply. inferable adj. [latin fero bring]

    Usage the use of infer in sense 2 is considered incorrect by some people.

    Inference n. 1 act of inferring. 2 thing inferred. inferential adj.

    Inferior —adj. 1 (often foll. By to) lower in rank, quality, etc. 2 of poor quality. 3 situated below. 4 written or printed below the line. —n. Person inferior to another, esp. In rank. [latin, comparative of inferus]

    Inferiority n. Being inferior.

    Inferiority complex n. Feeling of inadequacy, sometimes marked by compensating aggressive behaviour.

    Infernal adj. 1 of hell; hellish. 2 colloq. Detestable, tiresome. infernally adv. [latin infernus low]

    Inferno n. (pl. -s) 1 raging fire. 2 scene of horror or distress. 3 hell. [italian:

    related to *infernal]

    Infertile adj. 1 not fertile. 2 unable to have offspring. infertility n.

    Infest v. (esp. Of vermin) overrun (a place). infestation n. [latin infestus hostile]

    Infidel —n. Unbeliever in esp. The supposed true religion. —adj. 1 of infidels. 2 unbelieving. [latin fides faith]

    Infidelity n. (pl. -ies) unfaithfulness, esp. Adultery. [latin: related to *infidel]

    Infield n. Cricket the part of the ground near the wicket.

    Infighting n. 1 conflict or competitiveness between colleagues. 2 boxing within arm’s length.

    Infill —n. 1 material used to fill a hole, gap, etc. 2 filling gaps (esp. In a row of buildings). —v. Fill in (a cavity etc.).

    Infilling n. = *infill n.

    Infiltrate v. (-ting) 1 a enter (a territory, political party, etc.) Gradually and imperceptibly. B cause to do this. 2 permeate by filtration. 3 (often foll. By into, through) introduce (fluid) by filtration. infiltration n. Infiltrator n. [from in-2, filtrate]

    Infinite —adj. 1 boundless, endless. 2 very great or many. —n. 1 (the infinite) god. 2 (the infinite) infinite space. infinitely adv. [latin: related to in-1, finite]

    Infinitesimal —adj. Infinitely or very small. —n. Infinitesimal amount.

    infinitesimally adv.

    Infinitive —n. Form of a verb expressing the verbal notion without a particular subject, tense, etc. (e.g. See in we came to see, let him see). —adj. Having this form.

    Infinitude n. Literary = *infinity 1, 2.

    Infinity n. (pl. -ies) 1 being infinite; boundlessness. 2 infinite number or extent. 3 infinite distance (gaze into infinity). 4 math. Infinite quantity.

    Infirm adj. Physically weak, esp. Through age.

    Infirmary n. (pl. -ies) 1 hospital. 2 sick-quarters in a school etc.

    Infirmity n. (pl. -ies) 1 being infirm. 2 particular physical weakness.

    Infix v. Fasten or fix in.

    In flagrante delicto adv. In the very act of committing an offence. [latin, = in blazing crime]

    Inflame v. (-ming) 1 provoke to strong feeling, esp. Anger. 2 cause inflammation in; make hot. 3 aggravate. 4 catch or set on fire. 5 light up with or as with flames.

    Inflammable adj. Easily set on fire or excited. inflammability n.

    Usage where there is a danger of inflammable being understood to mean the opposite, i.e. ‘not easily set on fire’, flammable can be used to avoid confusion.

    Inflammation n. 1 inflaming. 2 bodily condition with heat, swelling, redness, and usu. Pain.

    Inflammatory adj. 1 tending to cause anger etc. 2 of inflammation.

    Inflatable —adj. That can be inflated. —n. Inflatable object.

    Inflate v. (-ting) 1 distend with air or gas. 2 (usu. Foll. By with; usu. In passive) puff up (with pride etc.). 3 a cause inflation of (the currency). B raise (prices) artificially. 4 (as inflated adj.) (esp. Of language, opinions, etc.) Bombastic, overblown, exaggerated. [latin inflo -flat-]

    Inflation n. 1 inflating. 2 econ. A general increase in prices. B increase in the supply of money regarded as causing this. inflationary adj.

    Inflect v. 1 change the pitch of (the voice). 2 a change the form of (a word) to express grammatical relation. B undergo such a change. 3 bend, curve. inflective adj. [latin flecto flex-bend]

    Inflection n. (also inflexion) 1 inflecting or being inflected. 2 a inflected word. B suffix etc. Used to inflect. 3 modulation of the voice. inflectional adj. [latin: related to *inflect]

    Inflexible adj. 1 unbendable. 2 unbending. inflexibility n. Inflexibly adv.

    Inflexion var. Of *inflection.

    Inflict v. (usu. Foll. By on) 1 deal (a blow etc.). 2 often joc. Impose (suffering, oneself, etc.) On (shall not inflict myself on you any longer). infliction n. Inflictor n. [latin fligo flict-strike]

    Inflight attrib. Adj. Occurring or provided during a flight.

    Inflorescence n. 1 a complete flower-head of a plant. B arrangement of this. 2 flowering. [latin: related to in-2, flourish]

    Inflow n. 1 flowing in. 2 something that flows in.

    Influence —n. 1 (usu. Foll. By on) effect a person or thing has on another. 2 (usu. Foll. By over, with) moral ascendancy or power. 3 thing or person exercising this. —v. (-cing) exert influence on; affect. under the influence colloq. Drunk. [latin influo flow in]

    Influential adj. Having great influence. influentially adv.

    Influenza n. Virus infection causing fever, aches, and catarrh. [italian: related to *influence]

    Influx n. Flowing in, esp. Of people or things into a place. [latin: related to *flux]

    Info n. Colloq. Information. [abbreviation]

    Inform v. 1 tell (informed them of their rights). 2 (usu. Foll. By against, on) give incriminating information about a person to the authorities. [latin: related to *form]

    Informal adj. 1 without formality. 2 not formal. informality n. (pl. -ies).

    Informally adv.

    Informant n. Giver of information.

    Information n. 1 a something told; knowledge. B items of knowledge; news. 2 charge or complaint lodged with a court etc.

    Information retrieval n. The tracing of information stored in books, computers, etc.

    Information technology n. The study or use of processes (esp. Computers, telecommunications, etc.) For storing, retrieving, and sending information.

    Informative adj. Giving information; instructive.

    Informed adj. 1 knowing the facts. 2 having some knowledge.

    Informer n. Person who informs, esp. Against others.

    Infra adv. Below, further on (in a book etc.). [latin, = below]

    Infra-comb. Form below.

    Infraction n. Infringement. [latin: related to *infringe]

    Infra dig predic. Adj. Colloq. Beneath one’s dignity. [latin infra dignitatem]

    Infrared adj. Of or using rays with a wavelength just longer than the red end of the visible spectrum.

    Infrastructure n. 1 a basic structural foundations of a society or enterprise. B roads, bridges, sewers, etc., regarded as a country’s economic foundation. 2 permanent installations as a basis for military etc. Operations.

    Infrequent adj. Not frequent. infrequently adv.

    Infringe v. (-ging) 1 break or violate (a law, another’s rights, etc.). 2 (usu. Foll. By on) encroach; trespass. infringement n. [latin frango fract-break]

    Infuriate v. Make furious; irritate greatly. infuriating adj. Infuriatingly adv. [medieval latin: related to *fury]

    Infuse v. (-sing) 1 (usu. Foll. By with) fill (with a quality). 2 steep (tea leaves

    Infuse v. (-sing) 1 (usu. Foll. By with) fill (with a quality). 2 steep (tea leaves etc.) In liquid to extract the content; be steeped thus. 3 (usu. Foll. By into) instil (life etc.). [latin infundo -fus-: related to *found3]

    Infusible adj. That cannot be melted. infusibility n.

    Infusion n. 1 a infusing. B liquid extract obtained thus. 2 infused element.

    -ing1 suffix forming nouns from verbs denoting: 1 verbal action or its result (asking). 2 material associated with a process etc. (piping; washing). 3 occupation or event (banking; wedding). [old english]

    -ing2 suffix 1 forming the present participle of verbs (asking; fighting), often as adjectives (charming; strapping). 2 forming adjectives from nouns (hulking) and verbs (balding). [old english]

    Ingenious adj. 1 clever at inventing, organizing, etc. 2 cleverly contrived. ingeniously adv. [latin ingenium cleverness]

    Usage ingenious is sometimes confused with ingenuous.

    Ingénue n. 1 unsophisticated young woman. 2 such a part in a play. [french:

    related to *ingenuous]

    Ingenuity n. Inventiveness, cleverness.

    Ingenuous adj. 1 artless. 2 frank. ingenuously adv. [latin ingenuus free-born, frank]

    Usage ingenuous is sometimes confused with ingenious.

    Ingest v. 1 take in (food etc.). 2 absorb (knowledge etc.). ingestion n. [latin gero carry]

    Inglenook n. Space within the opening on either side of a large fireplace. [perhaps gaelic aingeal fire, light]

    Inglorious adj. 1 shameful. 2 not famous.

    Ingoing adj. Going in.

    Ingot n. (usu. Oblong) piece of cast metal, esp. Gold. [origin uncertain]

    Ingraft var. Of *engraft.

    Ingrained adj. 1 deeply rooted; inveterate. 2 (of dirt etc.) Deeply embedded.

    Ingratiate v.refl. (-ting) (usu. Foll. By with) bring oneself into favour.

    Ingratiate v.refl. (-ting) (usu. Foll. By with) bring oneself into favour. ingratiating adj. Ingratiatingly adv. [latin in gratiam into favour]

    Ingratitude n. Lack of due gratitude.

    Ingredient n. Component part in a mixture. [latin ingredior enter into]

    Ingress n. Act or right of going in. [latin ingressus: related to *ingredient]

    Ingrowing adj. (esp. Of a toenail) growing into the flesh. ingrown adj.

    Inguinal adj. Of the groin. [latin inguen groin]

    Inhabit v. (-t-) dwell in; occupy. inhabitable adj. [latin: related to *habit]

    Inhabitant n. Person etc. Who inhabits a place.

    Inhalant n. Medicinal substance for inhaling.

    Inhale v. (-ling) (often absol.) Breathe in (air, gas, smoke, etc.). inhalation n. [latin halo breathe]

    Inhaler n. Device for administering an inhalant, esp. To relieve asthma.

    Inhere v. (-ring) be inherent. [latin haereo haes-stick]

    Inherent adj. (often foll. By in) existing in something as an essential or permanent attribute. inherence n. Inherently adv.

    Inherit v. (-t-) 1 receive (property, rank, title, etc.) By legal succession. 2 derive (a characteristic) from one’s ancestors. 3 derive (a situation etc.) From a predecessor. inheritable adj. Inheritor n. [latin heres heir]

    Inheritance n. 1 thing that is inherited. 2 inheriting.

    Inheritance tax n. Tax levied on property acquired by gift or inheritance.

    Usage this tax was introduced in 1986 to replace capital transfer tax.

    Inhibit v. (-t-) 1 hinder, restrain, or prevent (action or progress). 2 (as inhibited adj.) Suffering from inhibition. 3 (usu. Foll. By from + verbal noun) prohibit (a person etc.). inhibitory adj. [latin inhibeo -hibit-hinder]

    Inhibition n. 1 psychol. Restraint on the direct expression of an instinct. 2 colloq.

    Emotional resistance to a thought, action, etc. 3 inhibiting or being inhibited.

    Inhospitable adj. 1 not hospitable. 2 (of a region etc.) Not affording shelter,

    favourable conditions, etc. inhospitably adv.

    In-house adj. & adv. Within an institution, company, etc.

    Inhuman adj. Brutal; unfeeling; barbarous. inhumanity n. (pl. -ies). Inhumanly adv.

    Inhumane adj. = *inhuman. inhumanely adv.

    Inimical adj. 1 hostile. 2 harmful. inimically adv. [latin inimicus enemy]

    Inimitable adj. Impossible to imitate. inimitably adv.

    Iniquity n. (pl. -ies) 1 wickedness. 2 gross injustice. iniquitous adj. [french from latin aequus just]

    Initial —adj. Of or at the beginning. —n. Initial letter, esp. (in pl.) Those of a person’s names. —v. (-ll-; us -l-) mark or sign with one’s initials. initially adv. [latin initium beginning]

    Initial letter n. First letter of a word.

    Initiate —v. (-ting) 1 begin; set going; originate. 2 a admit (a person) into a society, office, etc., esp. With a ritual. B instruct (a person) in a subject. —n.

    society, office, etc., esp. With a ritual. B instruct (a person) in a subject. —n. (esp. Newly) initiated person. initiation n. Initiator n. Initiatory adj. [latin initium beginning]

    Initiative n. 1 ability to initiate things; enterprise (lacks initiative). 2 first step. 3 (prec. By the) power or right to begin. have the initiative esp. Mil. Be able to control the enemy’s movements. [french: related to *initiate]

    Inject v. 1 a (usu. Foll. By into) drive (a solution, medicine, etc.) By or as if by a syringe. B (usu. Foll. By with) fill (a cavity etc.) By injecting. C administer medicine etc. To (a person) by injection. 2 place (a quality, money, etc.) Into something. injection n. Injector n. [latin injicere -ject-from jacio throw]

    Injudicious adj. Unwise; ill-judged.

    Injunction n. 1 authoritative order. 2 judicial order restraining a person or body from an act, or compelling redress to an injured party. [latin: related to *enjoin]

    Injure v. (-ring) 1 harm or damage. 2 do wrong to. [back-formation from *injury]

    Injured adj. 1 harmed or hurt. 2 offended.

    Injurious adj. 1 hurtful. 2 (of language) insulting. 3 wrongful.

    Injury n. (pl. -ies) 1 physical harm or damage. 2 offence to feelings etc. 3 esp. Law wrongful action or treatment. [latin injuria]

    Injury time n. Extra playing-time at a football etc. Match to compensate for time lost in dealing with injuries.

    Injustice n. 1 lack of fairness. 2 unjust act. do a person an injustice judge a person unfairly. [french from latin: related to *in-1]

    Ink —n. 1 coloured fluid or paste used for writing, printing, etc. 2 black liquid ejected by a cuttlefish etc. —v. 1 (usu. Foll. By in, over, etc.) Mark with ink. 2 cover (type etc.) With ink. [greek egkauston purple ink used by roman emperors]

    Inkling n. (often foll. By of) slight knowledge or suspicion; hint. [origin unknown]

    Inkstand n. Stand for one or more ink bottles.

    Ink-well n. Pot for ink, usu. Housed in a hole in a desk.

    Inky adj. (-ier, -iest) of, as black as, or stained with ink. inkiness n.

    Inland —adj. 1 in the interior of a country. 2 carried on within a country. —adv.

    In or towards the interior of a country.

    Inland revenue n. Government department assessing and collecting taxes.

    In-law n. (often in pl.) Relative by marriage.

    Inlay —v. (past and past part. Inlaid) 1 embed (a thing in another) so that the surfaces are even. 2 decorate (a thing with inlaid work). —n. 1 inlaid work. 2 material inlaid. 3 filling shaped to fit a tooth-cavity. [from in-2, lay1]

    Inlet n. 1 small arm of the sea, a lake, or a river. 2 piece inserted. 3 way of entry. [from in, let1]

    In loco parentis adv. (acting) for or instead of a parent. [latin]

    Inmate n. Occupant of a hospital, prison, institution, etc. [probably from inn, mate1]

    In memoriam prep. In memory of (a dead person). [latin]

    Inmost adj. Most inward. [old english]

    Inn n. 1 pub, sometimes with accommodation. 2 hist. House providing accommodation, esp. For travellers. [old english: related to *in]

    Innards n.pl. Colloq. Entrails. [special pronunciation of *inward]

    Innate adj. Inborn; natural. innately adv. [latin natus born]

    Inner —adj. (usu. Attrib.) 1 inside; interior. 2 (of thoughts, feelings, etc.) Deeper. —n. Archery 1 division of the target next to the bull’s-eye. 2 shot striking this. innermost adj. [old english, comparative of *in]

    Inner city n. Central area of a city, esp. Regarded as having particular problems (also (with hyphen) attrib.: inner-city housing).

    Inner man n. (also inner woman) 1 soul or mind. 2 joc. Stomach.

    Inner tube n. Separate inflatable tube inside a pneumatic tyre.

    Innings n. (pl. Same) 1 esp. Cricket part of a game during which a side is batting. 2 period during which a government, party, person, etc. Is in office or can achieve something. [obsolete in (verb) = go in]

    Innkeeper n. Person who keeps an inn.

    Innocent —adj. 1 free from moral wrong. 2 (usu. Foll. By of) not guilty (of a crime etc.). 3 simple; guileless. 4 harmless. —n. Innocent person, esp. A young child. innocence n. Innocently adv. [latin noceo hurt]

    Innocuous adj. Harmless. [latin innocuus: related to *innocent]

    Innocuous adj. Harmless. [latin innocuus: related to *innocent]

    Inn of court n. Each of the four legal societies admitting people to the english bar.

    Innovate v. (-ting) bring in new methods, ideas, etc.; make changes. innovation n. Innovative adj. Innovator n. Innovatory adj. [latin novus new]

    Innuendo n. (pl. -es or -s) allusive remark or hint, usu. Disparaging or with a double meaning. [latin, = by nodding at: related to *in-2, nuo nod]

    Innuit var. Of *inuit.

    Innumerable adj. Too many to be counted. innumerably adv.

    Innumerate adj. Having no knowledge of basic mathematics. innumeracy n.

    Inoculate v. (-ting) treat (a person or animal) with vaccine or serum to promote immunity against a disease. inoculation n. [latin oculus eye, bud]

    Inoffensive adj. Not objectionable; harmless.

    Inoperable adj. Surgery that cannot successfully be operated on.

    Inoperative adj. Not working or taking effect.

    Inopportune adj. Not appropriate, esp. Not timely.

    Inordinate adj. Excessive. inordinately adv. [latin: related to *ordain]

    Inorganic adj. 1 chem. (of a compound) not organic, usu. Of mineral origin. 2 without organized physical structure. 3 extraneous.

    In-patient n. Patient who lives in hospital while under treatment.

    Input —n. 1 what is put in or taken in. 2 place where energy, information, etc., enters a system. 3 action of putting in or feeding in. 4 contribution of information etc. —v. (inputting; past and past part. Input or inputted) (often foll. By into) 1 put in. 2 supply (data, programs, etc., to a computer etc.).

    Inquest n. 1 law inquiry by a coroner’s court into the cause of a death. 2 colloq. Discussion analysing the outcome of a game, election, etc. [romanic: related to *inquire]

    Inquietude n. Uneasiness. [latin: related to *quiet]

    Inquire v. (-ring) 1 seek information formally; make a formal investigation. 2 = *enquire. [latin quaero quisit-seek]

    Inquiry n. (pl. -ies) 1 investigation, esp. An official one. 2 = *enquiry.

    Inquisition n. 1 intensive search or investigation. 2 judicial or official inquiry. 3 (the inquisition) rc ch. Hist. Ecclesiastical tribunal for the violent suppression of heresy, esp. In spain. inquisitional adj. [latin: related to *inquire]

    Inquisitive adj. 1 unduly curious; prying. 2 seeking knowledge. inquisitively adv.

    Inquisitiveness n.

    Inquisitor n. 1 official investigator. 2 hist. Officer of the inquisition.

    Inquisitorial adj. 1 of or like an inquisitor. 2 prying. inquisitorially adv.

    Inquorate adj. Not constituting a quorum.

    In re prep. = *re1. [latin]

    Inri abbr. Jesus of nazareth, king of the jews. [latin iesus nazarenus rex iudaeorum]

    Inroad n. 1 (often in pl.) Encroachment; using up of resources etc. 2 hostile attack.

    Inrush n. Rapid influx.

    Insalubrious adj. (of a climate or place) unhealthy.

    Insane adj. 1 mad. 2 colloq. Extremely foolish. insanely adv. Insanity n. (pl. – ies).

    Insanitary adj. Not sanitary; dirty.

    Insatiable adj. 1 unable to be satisfied. 2 extremely greedy. insatiability n.

    Insatiably adv.

    Insatiate adj. Never satisfied.

    Inscribe v. (-bing) 1 a (usu. Foll. By in, on) write or carve (words etc.) On a surface, page, etc. B (usu. Foll. By with) mark (a surface) with characters. 2 (usu. Foll. By to) write an informal dedication in or on (a book etc.). 3 enter the name of (a person) on a list or in a book. 4 geom. Draw (a figure) within another so that points of it lie on the boundary of the other. [latin scribo write]

    Inscription n. 1 words inscribed. 2 inscribing. inscriptional adj. [latin: related to *inscribe]

    Inscrutable adj. Mysterious, impenetrable. inscrutability n. Inscrutably adv. [latin

    Inscrutable adj. Mysterious, impenetrable. inscrutability n. Inscrutably adv. [latin scrutor search]

    Insect n. Small invertebrate of a class characteristically having a head, thorax, abdomen, two antennae, three pairs of thoracic legs, and usu. One or two pairs of thoracic wings. [latin: related to *section]

    Insecticide n. Substance for killing insects.

    Insectivore n. 1 animal that feeds on insects. 2 plant which captures and absorbs insects. insectivorous adj. [from *insect, latin voro devour]

    Insecure adj. 1 a unsafe; not firm. B (of a surface etc.) Liable to give way. 2 uncertain; lacking confidence. insecurity n.

    Inseminate v. (-ting) 1 introduce semen into. 2 sow (seed etc.). insemination n. [latin: related to *semen]

    Insensate adj. 1 without physical sensation. 2 without sensibility. 3 stupid. [latin:

    related to *sense]

    Insensible adj. 1 unconscious. 2 (usu. Foll. By of, to) unaware (insensible of her needs). 3 callous. 4 too small or gradual to be perceived. insensibility n. Insensibly adv.

    Insensitive adj. (often foll. By to) 1 unfeeling; boorish; crass. 2 not sensitive to physical stimuli. insensitively adv. Insensitiveness n. Insensitivity n.

    Insentient adj. Not sentient; inanimate.

    Inseparable adj. (esp. Of friends) unable or unwilling to be separated.

    inseparability n. Inseparably adv.

    Insert —v. Place or put (a thing) into another. —n. Something (esp. Pages) inserted. [latin sero sert-join]

    Insertion n. 1 inserting. 2 thing inserted.

    In-service attrib. Adj. (of training) for those actively engaged in the profession or activity concerned.

    Inset —n. 1 a extra section inserted in a book etc. B small map etc. Within the border of a larger one. 2 piece let into a dress etc. —v. (insetting; past and past part. Inset or insetted) 1 put in as an inset. 2 decorate with an inset.

    Inshore adv. & adj. At sea but close to the shore.

    Inside —n. 1 a inner side. B inner part; interior. 2 side away from the road. 3 (usu. In pl.) Colloq. Stomach and bowels. —adj. 1 situated on or in the inside. 2 football & hockey nearer to the centre of the field. —adv. 1 on, in, or to the inside. 2 slang in prison. —prep. 1 on the inner side of; within. 2 in less than (inside an hour). inside out 1 with the inner surface turned outwards. 2 thoroughly (knew his subject inside out).

    Inside information n. Information not normally accessible to outsiders.

    Inside job n. Colloq. Crime committed by a person living or working on the premises burgled etc.

    Insider n. 1 person who is within an organization etc. 2 person privy to a secret.

    Insider dealing n. Stock exch. Illegal practice of trading to one’s own advantage through having access to confidential information.

    Insidious adj. 1 proceeding inconspicuously but harmfully. 2 crafty. insidiously adv. Insidiousness n. [latin insidiae ambush]

    Insight n. (usu. Foll. By into) 1 capacity of understanding hidden truths etc. 2 instance of this.

    Insignia n. (treated as sing. Or pl.) Badge. [latin signum sign]

    Insignificant adj. 1 unimportant. 2 meaningless. insignificance n.

    Insincere adj. Not sincere. insincerely adv. Insincerity n. (pl. -ies).

    Insinuate v. (-ting) 1 hint obliquely, esp. Unpleasantly. 2 (often refl.; usu. Foll. By into) a introduce (a person etc.) Into favour etc., by subtle manipulation. B introduce (a thing, oneself, etc.) Deviously into a place. insinuation n. [latin sinuo curve]

    Insipid adj. 1 lacking vigour or character; dull. 2 tasteless. insipidity n. Insipidly adv. [latin sapio have savour]

    Insist v. (usu. Foll. By on or that; also absol.) Maintain or demand assertively (insisted on my going; insisted that he was innocent). [latin sisto stand]

    Insistent adj. 1 (often foll. By on) insisting. 2 forcing itself on the attention.

    insistence n. Insistently adv.

    In situ adv. In its proper or original place. [latin]

    Insobriety n. Intemperance, esp. In drinking.

    Insofar adv. = in so far (see *far).

    Insole n. Fixed or removable inner sole of a boot or shoe.

    Insolent adj. Impertinently insulting. insolence n. Insolently adv. [latin soleo be accustomed]

    Insoluble adj. 1 incapable of being solved. 2 incapable of being dissolved.

    insolubility n. Insolubly adv.

    Insolvent —adj. Unable to pay one’s debts; bankrupt. —n. Insolvent person.

    insolvency n.

    Insomnia n. Sleeplessness, esp. Habitual. [latin somnus sleep]

    Insomniac n. Person suffering from insomnia.

    Insomuch adv. 1 (foll. By that) to such an extent. 2 (foll. By as) inasmuch. [originally in so much]

    Insouciant adj. Carefree; unconcerned. insouciance n. [french souci care]

    Inspect v. 1 look closely at. 2 examine officially. inspection n. [latin spicio spect-look]

    Inspector n. 1 person who inspects. 2 official employed to supervise. 3 police officer next above sergeant in rank. inspectorate n.

    Inspector of taxes n. Inland revenue official responsible for assessing taxes.

    Inspiration n. 1 a creative force or influence. B person etc. Stimulating creativity etc. C divine influence, esp. On the writing of scripture etc. 2 sudden brilliantidea. inspirational adj.

    Inspire v. (-ring) 1 stimulate (a person) to esp. Creative activity. 2 a (usu. Foll. By with) animate (a person) with a feeling. B create (a feeling) in a person (inspires confidence). 3 prompt; give rise to (a poem inspired by love). 4 (as inspired adj.) Characterized by inspiration. inspiring adj. [latin spiro breathe]

    Inspirit v. (-t-) 1 put life into; animate. 2 encourage.

    Inst. Abbr. = *instant adj. 4 (the 6th inst.).

    Instability n. 1 lack of stability. 2 unpredictability in behaviour etc.

    Install v. (also instal) (-ll-) 1 place (equipment etc.) In position ready for use. 2 place (a person) in an office or rank with ceremony. 3 establish (oneself, a person, etc.). installation n. [latin: related to *stall1]

    Installment n. (brit. Instalment) 1 any of several usu. Equal payments for something. 2 any of several parts, esp. Of a broadcast or published story. [anglo-french estaler fix]

    Instalment n. (us installment) 1 any of several usu. Equal payments for something. 2 any of several parts, esp. Of a broadcast or published story. [anglo-french estaler fix]

    Instance —n. 1 example or illustration of. 2 particular case (that’s not true in this instance). —v. (-cing) cite as an instance. for instance as an example. In the first (or second etc.) Instance in the first (or second etc.) Place; at the first (or second etc.) Stage (of a proceeding). [french from latin instantia contrary example]

    Instant —adj. 1 occurring immediately. 2 (of food etc.) Processed for quick preparation. 3 urgent; pressing. 4 commerce of the current month (the 6th instant). —n. 1 precise moment (come here this instant). 2 short space of time (in an instant). [latin insto be urgent]

    Instantaneous adj. Occurring or done in an instant. instantaneously adv.

    Instantly adv. Immediately; at once.

    Instead adv. 1 (foll. By of) in place of. 2 as an alternative.

    Instep n. 1 inner arch of the foot between the toes and the ankle. 2 part of a shoe etc. Over or under this. [ultimately from in-2, step]

    Instigate v. (-ting) 1 bring about by incitement or persuasion. 2 urge on, incite. instigation n. Instigator n. [latin stigo prick]

    Instil v. (us instill) (-ll-) (often foll. By into) 1 introduce (a feeling, idea, etc.) Into a person’s mind etc. Gradually. 2 put (a liquid) into something in drops. instillation n. Instilment n. [latin stillo drop]

    Instill v. (brit. Instil) (-ll-) (often foll. By into) 1 introduce (a feeling, idea, etc.) Into a person’s mind etc. Gradually. 2 put (a liquid) into something in drops. instillation n. Instilment n. [latin stillo drop]

    Instinct —n. 1 a innate pattern of behaviour, esp. In animals. B innate impulse. 2 intuition. —predic. Adj. (foll. By with) imbued, filled (with life, beauty, etc.). instinctive adj. Instinctively adv. Instinctual adj. [latin stinguo prick]

    Institute —n. 1 society or organization for the promotion of science, education, etc. 2 its premises. —v. (-ting) 1 establish; found. 2 initiate (an inquiry etc.). 3(usu. Foll. By to, into) appoint (a person) as a cleric in a church etc. [latin statuo set up]

    Institution n. 1 organization or society founded for a particular purpose. 2 established law, practice, or custom. 3 colloq. (of a person etc.) Familiar object. 4 instituting or being instituted.

    Institutional adj. 1 of or like an institution. 2 typical of institutions.

    institutionally adv.

    Institutionalize v. (also -ise) (-zing or -sing) 1 (as institutionalized adj.) Made dependent after a long period in an institution. 2 place or keep (a person) in an institution. 3 make institutional.

    Instruct v. 1 teach (a person) a subject etc.; train. 2 (usu. Foll. By to + infin.) Direct; command. 3 law a employ (a lawyer). B inform. instructor n. [latin instruo -struct-build, teach]

    Instruction n. 1 (often in pl.) A order. B direction (as to how a thing works etc.).

    2 teaching (course of instruction). instructional adj.

    Instructive adj. Tending to instruct; enlightening.

    Instrument n. 1 tool or implement, esp. For delicate or scientific work. 2 (in full musical instrument) device for producing musical sounds. 3 a thing used in performing an action. B person made use of. 4 measuring-device, esp. In an aeroplane. 5 formal, esp. Legal, document. [latin instrumentum: related to *instruct]

    Instrumental adj. 1 serving as an instrument or means. 2 (of music) performed on instruments. 3 of, or arising from, an instrument (instrumental error).

    Instrumentalist n. Performer on a musical instrument.

    Instrumentality n. Agency or means.

    Instrumentation n. 1 a provision or use of instruments. B instruments collectively. 2 a arrangement of music for instruments. B the particular instruments used in a piece.

    Insubordinate adj. Disobedient; rebellious. insubordination n.

    Insubstantial adj. 1 lacking solidity or substance. 2 not real.

    Insufferable adj. 1 intolerable. 2 unbearably conceited etc. insufferably adv.

    Insufficient adj. Not sufficient; inadequate. insufficiency n. Insufficiently adv.

    Insular adj. 1 a of or like an island. B separated or remote. 2 narrow-minded. insularity n. [latin insula island]

    Insulate v. (-ting) 1 prevent the passage of electricity, heat, or sound from (a thing, room, etc.) By interposing non-conductors. 2 isolate. insulation n. Insulator n. [latin insula island]

    Insulin n. Hormone regulating the amount of glucose in the blood, the lack of which causes diabetes. [latin insula island]

    Insult —v. 1 speak to or treat with scornful abuse. 2 offend the self-respect or modesty of. —n. Insulting remark or action. insulting adj. Insultingly adv. [latin insulto leap on, assail]

    Insuperable adj. 1 (of a barrier) impossible to surmount. 2 (of a difficulty etc.) Impossible to overcome. insuperability n. Insuperably adv. [latin supero overcome]

    Insupportable adj. 1 unable to be endured. 2 unjustifiable.

    Insurance n. 1 insuring. 2 a sum paid for this. B sum paid out as compensation for theft, damage, etc. [french: related to *ensure]

    Insure v. (-ring) (often foll. By against; also absol.) Secure compensation in the event of loss or damage to (property, life, a person, etc.) By advance regular payments. [var. Of *ensure]

    Insured n. (usu. Prec. By the) person etc. Covered by insurance.

    Insurer n. Person or company selling insurance policies.

    Insurgent —adj. In active revolt. —n. Rebel. insurgence n. [latin surgo surrect-rise]

    Insurmountable adj. Unable to be surmounted or overcome.

    Insurrection n. Rebellion. insurrectionist n. [latin: related to *insurgent]

    Insusceptible adj. Not susceptible.

    Intact adj. 1 undamaged; entire. 2 untouched. intactness n. [latin tango tact-touch]

    Intaglio n. (pl. -s) 1 gem with an incised design. 2 engraved design. [italian:

    related to in-2, tail2]

    Intake n. 1 action of taking in. 2 a number (of people etc.), or amount, taken in or received. B such people etc. (this year’s intake). 3 place where water is taken into a pipe, or fuel or air enters an engine etc.

    Intangible —adj. 1 unable to be touched. 2 unable to be grasped mentally. —n. Thing that cannot be precisely assessed or defined. intangibility n. Intangibly adv. [latin: related to *intact]

    Integer n. Whole number. [latin, = untouched, whole]

    Integral —adj. Also 1 a of or necessary to a whole. B forming a whole. C complete. 2 of or denoted by an integer. —n. Math. Quantity of which a given function is the derivative. integrally adv. [latin: related to *integer]

    Usage the alternative pronunciation given for the adjective, stressed on the second syllable, is considered incorrect by some people.

    Integral calculus n. Mathematics concerned with finding integrals, their properties and application, etc.

    Integrate v. (-ting) 1 a combine (parts) into a whole. B complete by the addition of parts. 2 bring or come into equal membership of society, a school, etc. 3 desegregate, esp. Racially (a school etc.). 4 math. Find the integral of.

    integration n.

    Integrated circuit n. Electronics small chip etc. Of material replacing several separate components in a conventional electronic circuit.

    Integrity n. 1 moral excellence; honesty. 2 wholeness; soundness. [latin: related to *integer]

    Integument n. Natural outer covering, as a skin, husk, rind, etc. [latin tego cover]

    Intellect n. 1 a faculty of reasoning, knowing, and thinking. B understanding. 2 clever or knowledgeable person. [latin: related to *intelligent]

    Intellectual —adj. 1 of or appealing to the intellect. 2 possessing a highly developed intellect. 3 requiring the intellect. —n. Intellectual person. intellectuality n. Intellectualize v. (also -ise) (-zing or -sing). Intellectually adv.

    Intelligence n. 1 a intellect; understanding. B quickness of understanding. 2 a the collecting of information, esp. Of military or political value. B information so collected. C people employed in this.

    Intelligence quotient n. Number denoting the ratio of a person’s intelligence to the average.

    Intelligent adj. 1 having or showing intelligence, esp. Of a high level. 2 clever.

    intelligently adv. [latin intelligo -lect-understand]

    Intelligentsia n. Class of intellectuals regarded as possessing culture and political initiative. [russian intelligentsiya]

    Intelligible adj. Able to be understood. intelligibility n. Intelligibly adv.

    Intemperate adj. 1 immoderate. 2 a given to excessive drinking of alcohol. B excessively indulgent in one’s appetites. intemperance n.

    Intend v. 1 have as one’s purpose (we intend to go; we intend going). 2 (usu. Foll. By for, as) design or destine (a person or a thing) (i intend him to go; i intend it as a warning). [latin tendo stretch]

    Intended —adj. Done on purpose. —n. Colloq. One’s fiancé or fiancée.

    Intense adj. (intenser, intensest) 1 existing in a high degree; violent; forceful; extreme (intense joy; intense cold). 2 very emotional. intensely adv. Intenseness n. [latin intensus stretched]

    Usage intense is sometimes confused with intensive, and wrongly used to describe a course of study etc.

    Intensifier n. 1 thing that makes something more intense. 2 word or prefix used to give force or emphasis, e.g. Thundering in a thundering nuisance.

    Intensify v. (-ies, -ied) make or become intense or more intense. intensification n.

    Intensity n. (pl. -ies) 1 intenseness. 2 amount of some quality, e.g. Force, brightness, etc.

    Intensive adj. 1 thorough, vigorous; directed to a single point, area, or subject (intensive study; intensive bombardment). 2 of or relating to intensity. 3 serving to increase production in relation to costs (intensive farming). 4 (usu. In comb.) Econ. Making much use of (labour-intensive). 5 (of an adjective, adverb, etc.) Expressing intensity, e.g. Really in my feet are really cold. intensively adv. Intensiveness n.

    Usage see note at intense.

    Intensive care n. 1 constant monitoring etc. Of a seriously ill patient. 2 part of a hospital devoted to this.

    Intent —n. Intention; purpose (with intent to defraud). —adj. 1 (usu. Foll. By on) a resolved, determined. B attentively occupied. 2 (esp. Of a look) earnest; eager. to all intents and purposes practically; virtually. intently adv. Intentness n. [latin intentus]

    Intention n. 1 thing intended; aim, purpose. 2 intending (done without intention).

    Intentional adj. Done on purpose. intentionally adv.

    Inter v. (-rr-) bury (a corpse etc.). [latin terra earth]

    Inter-comb. Form 1 between, among (intercontinental). 2 mutually, reciprocally (interbreed). [latin inter between, among]

    Interact v. Act on each other. interaction n.

    Interactive adj. 1 reciprocally active. 2 (of a computer or other electronic device) allowing a two-way flow of information between it and a user. interactively adv.

    Inter alia adv. Among other things. [latin]

    Interbreed v. (past and past part. -bred) 1 (cause to) breed with members of a different race or species to produce a hybrid. 2 breed within one family etc.

    Intercalary attrib. Adj. 1 a (of a day or a month) inserted in the calendar to harmonize it with the solar year. B (of a year) having such an addition. 2 interpolated. [latin calo proclaim]

    Intercede v. (-ding) (usu. Foll. By with) intervene on behalf of another; plead. [latin: related to *cede]

    Intercept v. 1 seize, catch, or stop (a person or thing) going from one place to another. 2 (usu. Foll. By from) cut off (light etc.). interception n. Interceptive

    another. 2 (usu. Foll. By from) cut off (light etc.). interception n. Interceptive adj. Interceptor n. [latin intercipio -cept-from capio take]

    Intercession n. Interceding. intercessor n. [latin: related to *intercede]

    Interchange —v. (-ging) 1 (of two people) exchange (things) with each other. 2 put each of (two things) in the other’s place; alternate. —n. 1 (often foll. By of) exchange between two people etc. 2 alternation. 3 road junction where traffic streams do not cross.

    Interchangeable adj. That can be interchanged, esp. Without affecting the way a thing works. interchangeably adv.

    Intercity adj. Existing or travelling between cities.

    Intercom n. Colloq. 1 system of intercommunication by radio or telephone. 2 instrument used in this. [abbreviation]

    Intercommunicate v. (-ting) 1 communicate reciprocally. 2 (of rooms etc.) Open into each other. intercommunication n.

    Intercommunion n. 1 mutual communion. 2 mutual action or relationship, esp.

    Between christian denominations.

    Interconnect v. Connect with each other. interconnection n.

    Intercontinental adj. Connecting or travelling between continents.

    Intercourse n. 1 communication or dealings between individuals, nations, etc. 2 = *sexual intercourse. [latin: related to *course]

    Interdenominational adj. Concerning more than one (religious) denomination.

    Interdepartmental adj. Concerning more than one department.

    Interdependent adj. Dependent on each other. interdependence n.

    Interdict —n. 1 authoritative prohibition. 2 rc ch. Sentence debarring a person, or esp. A place, from ecclesiastical functions and privileges. —v. 1 prohibit (an action). 2 forbid the use of. 3 (usu. Foll. By from + verbal noun) restrain (a person). 4 (usu. Foll. By to) forbid (a thing) to a person. interdiction n. Interdictory adj. [latin dico say]

    Interdisciplinary adj. Of or between more than one branch of learning.

    Interest —n. 1 a concern; curiosity (have no interest in fishing). B quality exciting curiosity etc. (this book lacks interest). 2 subject, hobby, etc., in which one is concerned. 3 advantage or profit (it is in my interest to go). 4 money paid for the use of money lent. 5 a thing in which one has a stake or concern (business interests). B financial stake (in an undertaking etc.). C legal concern, title, or right (in property). 6 a party or group with a common interest (the brewing interest). B principle or cause with which this is concerned. —v. 1 excite the

    curiosity or attention of. 2 (usu. Foll. By in) cause (a person) to take a personal interest. 3 (as interested adj.) Having a private interest; not impartial or disinterested. [latin, = it matters]

    Interesting adj. Causing curiosity; holding the attention. interestingly adv.

    Interface —n. 1 surface forming a boundary between two regions. 2 means or place of interaction between two systems etc.; interaction (the interface between psychology and education). 3 esp. Computing apparatus for connecting two pieces of equipment so that they can be operated jointly. —v. (-cing) (often foll. By with) 1 connect with (another piece of equipment etc.) By an interface. 2 interact.

    Usage the use of the noun and verb in sense 2 is deplored by some people.

    Interfacing n. Stiffish material between two layers of fabric in collars etc.

    Interfere v. (-ring) 1 (usu. Foll. By with) a (of a person) meddle; obstruct a process etc. B (of a thing) be a hindrance. 2 (usu. Foll. By in) intervene, esp. Without invitation or necessity. 3 (foll. By with) euphem. Molest or assault sexually. 4 (of light or other waves) combine so as to cause interference. [latin ferio strike]

    Interference n. 1 act of interfering. 2 fading or disturbance of received radio signals. 3 physics combination of two or more wave motions to form a resultant wave in which the displacement is reinforced or cancelled.

    Interferon n. Any of various proteins inhibiting the development of a virus in a cell etc.

    Interfuse v. (-sing) 1 a (usu. Foll. By with) mix (a thing) with; intersperse. B blend (things). 2 (of two things) blend with each other. interfusion n. [latin: related to *fuse1]

    Intergalactic adj. Of or situated between galaxies.

    Interim —n. Intervening time. —adj. Provisional, temporary. [latin, = in the interim]

    Interior —adj. 1 inner. 2 inland. 3 internal; domestic. 4 (usu. Foll. By to) situated further in or within. 5 existing in the mind. 6 coming from inside. —n. 1 interior part; inside. 2 interior part of a region. 3 home affairs of a country (minister of the interior). 4 representation of the inside of a room etc. [latin]

    Interior decoration n. Decoration of the interior of a building etc. interior decorator n.

    Interior design n. Design of the interior of a building. interior designer n.

    Interject v. 1 utter (words) abruptly or parenthetically. 2 interrupt. [latin jacio throw]

    Interjection n. Exclamation, esp. As a part of speech (e.g. Ah!, dear me!).

    Interlace v. (-cing) 1 bind intricately together; interweave. 2 cross each other intricately. interlacement n.

    Interlard v. (usu. Foll. By with) mix (writing or speech) with unusual words or phrases. [french]

    Interleave v. (-ving) insert (usu. Blank) leaves between the leaves of (a book etc.).

    Interline v. (-ning) put an extra layer of material between the fabric of (a garment) and its lining.

    Interlink v. Link or be linked together.

    Interlock —v. 1 engage with each other by overlapping. 2 lock or clasp within each other. —n. 1 machine-knitted fabric with fine stitches. 2 mechanism for preventing a set of operations from being performed in any but the prescribed sequence.

    Interlocutor n. Formal person who takes part in a conversation. [latin loquor speak]

    Interlocutory adj. Formal 1 of dialogue. 2 (of a decree etc.) Given provisionally in a legal action.

    Interloper n. 1 intruder. 2 person who interferes in others’ affairs, esp. For profit. [after landloper vagabond, from dutch loopen run]

    Interlude n. 1 a pause between the acts of a play. B something performed during this pause. 2 contrasting event, time, etc. In the middle of something (comic interlude). 3 piece of music played between other pieces etc. [medieval latin ludus play]

    Intermarry v. (-ies, -ied) (foll. By with) (of races, castes, families, etc.) Become connected by marriage. intermarriage n.

    Intermediary —n. (pl. -ies) intermediate person or thing, esp. A mediator. —adj.

    Acting as mediator; intermediate.

    Intermediate —adj. Coming between two things in time, place, order, character, etc. —n. 1 intermediate thing. 2 chemical compound formed by one reaction andthen used in another. [latin intermedius]

    Interment n. Burial.

    Usage interment is sometimes confused with internment, which means ‘confinement’.

    Intermezzo n. (pl. -mezzi or -s) 1 a short connecting instrumental movement in a musical work. B similar independent piece. 2 short light dramatic or other

    performance inserted between the acts of a play. [italian]

    Interminable adj. 1 endless. 2 tediously long. interminably adv.

    Intermingle v. (-ling) mix together; mingle.

    Intermission n. 1 pause or cessation. 2 interval in a cinema etc. [latin: related to *intermittent]

    Intermittent adj. Occurring at intervals; not continuous. intermittently adv. [latin mitto miss-let go]

    Intermix v. Mix together.

    Intern —n. (also interne) esp. Us = *houseman. —v. Oblige (a prisoner, alien, etc.) To reside within prescribed limits. internment n. [french: related to *internal]

    Usage internment is sometimes confused with interment, which means ‘burial’.

    Internal adj. 1 of or situated in the inside or invisible part. 2 of the inside of the body (internal injuries). 3 of a nation’s domestic affairs. 4 (of a student) attending a university etc. As well as taking its examinations. 5 used or applying within an organization. 6 a intrinsic. B of the mind or soul. internality n. Internally adv. [medieval latin internus internal]

    Internal-combustion engine n. Engine with its motive power generated by the explosion of gases or vapour with air in a cylinder.

    Internal evidence n. Evidence derived from the contents of the thing discussed.

    Internalize v. (also -ise) (-zing or -sing) psychol. Make (attitudes, behaviour, etc.) Part of one’s nature by learning or unconscious assimilation. internalization n.

    International —adj. 1 existing or carried on between nations. 2 agreed on or used by all or many nations. —n. 1 a contest, esp. In sport, between teams representing different countries. B member of such a team. 2 (international) any of four successive associations for socialist or communist action. internationality n. Internationally adv.

    Internationalism n. Advocacy of a community of interests among nations.

    internationalist n.

    Internationalize v. (also -ise) (-zing or -sing) 1 make international. 2 bring under the protection or control of two or more nations.

    Interne var. Of *intern n.

    Internecine adj. Mutually destructive. [latin internecinus deadly]

    Internee n. Person interned.

    Interpenetrate v. (-ting) 1 penetrate each other. 2 pervade. interpenetration n.

    Interpersonal adj. Between persons, social (interpersonal skills).

    Interplanetary adj. 1 between planets. 2 of travel between planets.

    Interplay n. Reciprocal action.

    Interpol n. International criminal police organization. [abbreviation]

    Interpolate v. (-ting) 1 a insert (words) in a book etc., esp. Misleadingly. B make such insertions in (a book etc.). 2 interject (a remark) in a conversation. 3 estimate (values) between known ones in the same range. interpolation n. Interpolator n. [latin interpolo furbish]

    Interpose v. (-sing) 1 (often foll. By between) insert (a thing) between others. 2 say (words) as an interruption; interrupt. 3 exercise or advance (a veto or objection) so as to interfere. 4 (foll. By between) intervene (between parties). interposition n. [latin pono put]

    Interpret v. (-t-) 1 explain the meaning of (words, a dream, etc.). 2 make out or bring out the meaning of (creative work). 3 act as an interpreter. 4 explain or understand (behaviour etc.) In a specified manner. interpretation n. Interpretative

    adj. Interpretive adj. [latin interpres -pretis explainer]

    Interpreter n. Person who interprets, esp. One who translates foreign speech orally.

    Interracial adj. Between or affecting different races.

    Interregnum n. (pl. -s) 1 interval when the normal government or leadership is suspended, esp. Between successive reigns or regimes. 2 interval, pause. [latin regnum reign]

    Interrelate v. (-ting) 1 relate (two or more things) to each other. 2 (of two or more things) relate to each other. interrelation n. Interrelationship n.

    Interrogate v. (-ting) question (a person), esp. Closely or formally. interrogation n. Interrogator n. [latin rogo ask]

    Interrogative —adj. Of, like, or used in a question. —n. Interrogative word (e.g.

    What?).

    Interrogatory —adj. Questioning (interrogatory tone). —n. (pl. -ies) formal set of questions.

    Interrupt v. 1 break the continuous progress of (an action, speech, person speaking, etc.). 2 obstruct (a person’s view etc.). interruption n. [latin: related to *rupture]

    *rupture]

    Interrupter n. (also interruptor) 1 person or thing that interrupts. 2 device for interrupting, esp. An electric circuit.

    Intersect v. 1 divide (a thing) by crossing it. 2 (of lines, roads, etc.) Cross each other. [latin: related to *section]

    Intersection n. 1 intersecting. 2 place where two roads intersect. 3 point or line common to lines or planes that intersect.

    Intersperse v. (-sing) 1 (often foll. By between, among) scatter. 2 (foll. By with) vary (a thing) by scattering other things among it. interspersion n. [latin: related to *sparse]

    Interstate adj. Existing or carried on between states, esp. Those of the us.

    Interstellar adj. Between stars.

    Interstice n. 1 intervening space. 2 chink or crevice. [latin interstitium from sisto stand]

    Interstitial adj. Of, forming, or occupying interstices. interstitially adv.

    Intertwine v. (-ning) (often foll. By with) entwine (together).

    Interval n. 1 intervening time or space. 2 pause or break, esp. Between the parts of a performance. 3 difference in pitch between two sounds. at intervals here and there; now and then. [latin intervallum space between ramparts]

    Intervene v. (-ning) 1 occur in time between events. 2 interfere; prevent or modify events. 3 be situated between things. 4 come in as an extraneous factor. [latin venio vent-come]

    Intervention n. 1 intervening. 2 interference, esp. By a state. 3 mediation.

    Interventionist n. Person who favours intervention.

    Interview —n. 1 oral examination of an applicant. 2 conversation with a reporter, for a broadcast or publication. 3 meeting face to face, esp. For consultation. —v. Hold an interview with. interviewee n. Interviewer n. [french entrevue: related to *inter-, vue sight]

    Interwar attrib. Adj. Existing in the period between two wars.

    Interweave v. (-ving; past -wove; past part. -woven) 1 weave together. 2 blend intimately.

    Interpolate v. (-ting) 1 a insert (words) in a book etc., esp. Misleadingly. B make

    such insertions in (a book etc.). 2 interject (a remark) in a conversation. 3 estimate (values) between known ones in the same range. interpolation n. Interpolator n. [latin interpolo furbish]

    Interpose v. (-sing) 1 (often foll. By between) insert (a thing) between others. 2 say (words) as an interruption; interrupt. 3 exercise or advance (a veto or objection) so as to interfere. 4 (foll. By between) intervene (between parties). interposition n. [latin pono put]

    Interpret v. (-t-) 1 explain the meaning of (words, a dream, etc.). 2 make out or bring out the meaning of (creative work). 3 act as an interpreter. 4 explain or understand (behaviour etc.) In a specified manner. interpretation n. Interpretative adj. Interpretive adj. [latin interpres -pretis explainer]

    Interpreter n. Person who interprets, esp. One who translates foreign speech orally.

    Interracial adj. Between or affecting different races.

    Interregnum n. (pl. -s) 1 interval when the normal government or leadership is suspended, esp. Between successive reigns or regimes. 2 interval, pause. [latin regnum reign]

    Interrelate v. (-ting) 1 relate (two or more things) to each other. 2 (of two or more things) relate to each other. interrelation n. Interrelationship n.

    Interrogate v. (-ting) question (a person), esp. Closely or formally. interrogation

    n. Interrogator n. [latin rogo ask]

    Interrogative —adj. Of, like, or used in a question. —n. Interrogative word (e.g.

    What?).

    Interrogatory —adj. Questioning (interrogatory tone). —n. (pl. -ies) formal set of questions.

    Interrupt v. 1 break the continuous progress of (an action, speech, person speaking, etc.). 2 obstruct (a person’s view etc.). interruption n. [latin: related to *rupture]

    Interrupter n. (also interruptor) 1 person or thing that interrupts. 2 device for interrupting, esp. An electric circuit.

    Intersect v. 1 divide (a thing) by crossing it. 2 (of lines, roads, etc.) Cross each other. [latin: related to *section]

    Intersection n. 1 intersecting. 2 place where two roads intersect. 3 point or line common to lines or planes that intersect.

    Intersperse v. (-sing) 1 (often foll. By between, among) scatter. 2 (foll. By with) vary (a thing) by scattering other things among it. interspersion n. [latin: related to *sparse]

    Interstate adj. Existing or carried on between states, esp. Those of the us.

    Interstate adj. Existing or carried on between states, esp. Those of the us.

    Interstellar adj. Between stars.

    Interstice n. 1 intervening space. 2 chink or crevice. [latin interstitium from sisto stand]

    Interstitial adj. Of, forming, or occupying interstices. interstitially adv.

    Intertwine v. (-ning) (often foll. By with) entwine (together).

    Interval n. 1 intervening time or space. 2 pause or break, esp. Between the parts of a performance. 3 difference in pitch between two sounds. at intervals here and there; now and then. [latin intervallum space between ramparts]

    Intervene v. (-ning) 1 occur in time between events. 2 interfere; prevent or modify events. 3 be situated between things. 4 come in as an extraneous factor. [latin venio vent-come]

    Intervention n. 1 intervening. 2 interference, esp. By a state. 3 mediation.

    Interventionist n. Person who favours intervention.

    Interview —n. 1 oral examination of an applicant. 2 conversation with a

    reporter, for a broadcast or publication. 3 meeting face to face, esp. For consultation. —v. Hold an interview with. interviewee n. Interviewer n. [french entrevue: related to *inter-, vue sight]

    Interwar attrib. Adj. Existing in the period between two wars.

    Interweave v. (-ving; past -wove; past part. -woven) 1 weave together. 2 blend intimately.

    Intestate —adj. Not having made a will before death. —n. Person who has died intestate. intestacy n. [latin: related to *testament]

    —adj. Not having made a will before death. —n. Person who has died intestate. intestacy n. [latin: related to *testament]

    Intestine n. (in sing. Or pl.) Lower part of the alimentary canal. intestinal adj. [latin intus within]

    Intifada n. Arab uprising. [arabic]

    Intimacy n. (pl. -ies) 1 state of being intimate. 2 intimate remark or act; sexual intercourse.

    Intimate1 —adj. 1 closely acquainted; familiar (intimate friend). 2 private and personal. 3 (usu. Foll. By with) having sexual relations. 4 (of knowledge) detailed, thorough. 5 (of a relationship between things) close. —n. Close friend. intimately adv. [latin intimus inmost]

    Intimate2 v. (-ting) 1 (often foll. By that) state or make known. 2 imply, hint. intimation n. [latin intimo announce: related to *intimate1]

    Intimidate v. (-ting) frighten or overawe, esp. To subdue or influence. intimidation n. [medieval latin: related to *timid]

    Into prep. 1 expressing motion or direction to a point on or within (walked into a tree; ran into the house). 2 expressing direction of attention etc. (will look into it). 3 expressing a change of state (turned into a dragon; separated into groups). 4 after the beginning of (five minutes into the game). 5 colloq. Interested in. [old english: related to in, to]

    Intolerable adj. That cannot be endured. intolerably adv.

    Intolerant adj. Not tolerant, esp. Of others’ beliefs or behaviour. intolerance n.

    Intonation n. 1 modulation of the voice; accent. 2 intoning. 3 accuracy of musical pitch. [medieval latin: related to *intone]

    Intone v. (-ning) 1 recite (prayers etc.) With prolonged sounds, esp. In a monotone. 2 utter with a particular tone. [medieval latin: related to *in-2]

    In toto adv. Completely. [latin]

    Intoxicant —adj. Intoxicating. —n. Intoxicating substance.

    Intoxicate v. (-ting) 1 make drunk. 2 excite or elate beyond self-control. intoxication n. [medieval latin: related to *toxic]

    Intra-prefix on the inside, within. [latin intra inside]

    Intractable adj. 1 hard to control or deal with. 2 difficult, stubborn. intractability n. Intractably adv.

    Intramural adj. 1 situated or done within the walls of an institution etc. 2 forming part of normal university etc. Studies. intramurally adv. [latin murus wall]

    Intramuscular adj. In or into muscle tissue.

    Intransigent —adj. Uncompromising, stubborn. —n. Intransigent person. intransigence n. [spanish los intransigentes extremists]

    Intransitive adj. (of a verb) not taking a direct object.

    Intrauterine adj. Within the womb.

    Intravenous adj. In or into a vein or veins. intravenously adv.

    In-tray n. Tray for incoming documents.

    Intrepid adj. Fearless; very brave. intrepidity n. Intrepidly adv. [latin trepidus alarmed]

    Intricate adj. Very complicated; perplexingly detailed. intricacy n. (pl. -ies). Intricately adv. [latin: related to *in-2, tricae tricks]

    Intrigue —v. (-gues, -gued, -guing) 1 (foll. By with) a carry on an underhand plot. B use secret influence. 2 arouse the curiosity of. —n. 1 underhand plot or plotting. 2 secret arrangement (amorous intrigues). intriguing adj. Esp. In sense 2 of v. Intriguingly adv. [french from italian intrigo]

    Intrinsic adj. Inherent, essential (intrinsic value). intrinsically adv. [latin intrinsecus inwardly]

    Intro n. (pl. -s) colloq. Introduction. [abbreviation]

    Intro-comb. Form into. [latin]

    Introduce v. (-cing) 1 (foll. By to) make (a person or oneself) known by name to another, esp. Formally. 2 announce or present to an audience. 3 bring (a custom etc.) Into use. 4 bring (legislation) before parliament etc. 5 (foll. By to) initiate (a person) in a subject. 6 insert. 7 bring in; usher in; bring forward. 8 occur just before the start of. 9 put on sale for the first time. introducible adj. [latin duco

    lead]

    Introduction n. 1 introducing or being introduced. 2 formal presentation of one person to another. 3 explanatory section at the beginning of a book etc. 4 introductory treatise. 5 thing introduced.

    Introductory adj. Serving as an introduction; preliminary.

    Introit n. Psalm or antiphon sung or said as the priest approaches the altar for the eucharist. [latin introitus entrance]

    Introspection n. Examination of one’s own thoughts. introspective adj. [latin specio spect-look]

    Introvert —n. 1 person predominantly concerned with his or her own thoughts. 2 shy thoughtful person. —adj. (also introverted) characteristic of an introvert. introversion n.

    Intrude v. (-ding) (foll. By on, upon, into) 1 come uninvited or unwanted. 2 force on a person. [latin trudo trus-thrust]

    Intruder n. Person who intrudes, esp. A trespasser.

    Intrusion n. 1 intruding. 2 influx of molten rock between existing strata etc.

    intrusive adj.

    Intrust var. Of *entrust.

    Intuition n. Immediate insight or understanding without conscious reasoning. intuit v. Intuitional adj. [latin tueor tuit-look]

    Intuitive adj. Of, possessing, or perceived by intuition. intuitively adv. Intuitiveness n. [medieval latin: related to *intuition]

    Inuit n. (also innuit) (pl. Same or -s) n. American eskimo. [eskimo inuit people]

    Inundate v. (-ting) (often foll. By with) 1 flood. 2 overwhelm. inundation n. [latin unda wave]

    Inure v. (-ring) 1 (often in passive; foll. By to) accustom (a person) to an esp. Unpleasant thing. 2 law take effect. inurement n. [anglo-french: related to *in, eure work, from latin opera]

    Invade v. (-ding) (often absol.) 1 enter (a country etc.) Under arms to control or subdue it. 2 swarm into. 3 (of a disease) attack. 4 encroach upon (a person’s rights, esp. Privacy). invader n. [latin vado vas-go]

    Invalid1 —n. Person enfeebled or disabled by illness or injury. —attrib. Adj. 1 of or for invalids. 2 sick, disabled. —v. (-d-) 1 (often foll. By out etc.) Remove (an invalid) from active service. 2 (usu. In passive) disable (a person) by illness. invalidism n. Invalidityn. [latin: related to *in-1]

    Invalid2 adj. Not valid. invalidity n.

    Invalidate v. (-ting) make (a claim etc.) Invalid. invalidation n.

    Invaluable adj. Above valuation; very valuable. invaluably adv.

    Invariable adj. 1 unchangeable. 2 always the same. 3 math. Constant. invariably adv.

    Invasion n. Invading or being invaded.

    Invasive adj. 1 (of weeds, cancer cells, etc.) Tending to spread. 2 (of surgery) involving large incisions etc. 3 tending to encroach.

    Invective n. Strong verbal attack. [latin: related to *inveigh]

    Inveigh v. (foll. By against) speak or write with strong hostility. [latin invehor – vect-assail]

    Inveigle v. (-ling) (foll. By into, or to + infin.) Entice; persuade by guile. inveiglement n. [anglo-french from french aveugler to blind]

    Invent v. 1 create by thought, originate (a method, device, etc.). 2 concoct (a false story etc.). inventor n. [latin invenio -vent-find]

    false story etc.). inventor n. [latin invenio -vent-find]

    Invention n. 1 inventing or being invented. 2 thing invented. 3 fictitious story. 4 inventiveness.

    Inventive adj. Able to invent; imaginative. inventively adv. Inventiveness n.

    Inventory —n. (pl. -ies) 1 complete list of goods etc. 2 goods listed in this. —v. (-ies, -ied) 1 make an inventory of. 2 enter (goods) in an inventory. [medieval latin: related to *invent]

    Inverse —adj. Inverted in position, order, or relation. —n. 1 inverted state. 2 (often foll. By of) the direct opposite. [latin: related to *invert]

    Inverse proportion n. (also inverse ratio) relation between two quantities such that one increases in proportion as the other decreases.

    Inversion n. 1 turning upside down. 2 reversal of a normal order, position, or relation.

    Invert v. 1 turn upside down. 2 reverse the position, order, or relation of. [latin verto vers-turn]

    Invertebrate —adj. (of an animal) not having a backbone. —n. Invertebrate animal.

    Inverted commas n.pl. = *quotation marks.

    Invest v. 1 a (often foll. By in) apply or use (money), esp. For profit. B (foll. By in) put money for profit into (stocks etc.). 2 (often foll. By in) devote (time etc.) To an enterprise. 3 (foll. By in) colloq. Buy (something useful). 4 a (foll. By with) provide or credit (a person etc. With qualities) (invested her with magical importance; invested his tone with irony). B (foll. By in) attribute or entrust (qualities or feelings) to (a person etc.) (power invested in the doctor). 5 (often foll. By with, in) clothe with the insignia of office; install in an office. investor n. [latin vestis clothing]

    Investigate v. (-ting) 1 inquire into; examine. 2 make a systematic inquiry. investigation n. Investigative adj. Investigator n. Investigatory adj. [latin vestigo track]

    Investiture n. Formal investing of a person with honours or rank. [medieval latin:

    related to *invest]

    Investment n. 1 investing. 2 money invested. 3 property etc. In which money is invested.

    Investment trust n. Trust that buys and sells shares in selected companies to make a profit for its members.

    Inveterate adj. 1 (of a person) confirmed in a habit etc. 2 (of a habit etc.) Long-established. inveteracy n. [latin vetus old]

    Invidious adj. Likely to cause resentment or anger (invidious position; invidious task). [latin invidiosus: related to *envy]

    Invigilate v. (-ting) supervise people taking an exam. invigilation n. Invigilator n. [latin: related to *vigil]

    Invigorate v. (-ting) give vigour or strength to. invigorating adj. [medieval latin:

    related to *vigour]

    Invincible adj. Unconquerable. invincibility n. Invincibly adv. [latin vinco conquer]

    Inviolable adj. Not to be violated or dishonoured. inviolability n. Inviolably adv.

    Inviolate adj. 1 not violated. 2 safe (from violation or harm). inviolacy n.

    Invisible adj. Not visible to the eye. invisibility n. Invisibly adv.

    Invisible exports n.pl. (also invisible imports etc.) Intangible commodities, esp.

    Services, involving payment between countries.

    Invitation n. 1 inviting or being invited. 2 letter or card etc. Used to invite.

    Invite —v. (-ting) 1 (often foll. By to, or to + infin.) Ask (a person) courteously

    Invite —v. (-ting) 1 (often foll. By to, or to + infin.) Ask (a person) courteously to come, or to do something. 2 make a formal courteous request for. 3 tend to call forth unintentionally. 4 a attract. B be attractive. —n. Colloq. Invitation. [latin invito]

    Inviting adj. 1 attractive. 2 tempting. invitingly adv.

    In vitro adv. (of biological processes) taking place in a test-tube or other laboratory environment. [latin, = in glass]

    Invocation n. 1 invoking or being invoked, esp. In prayer. 2 summoning of supernatural beings, e.g. The muses, for inspiration. 3 eccl. The words ‘in the name of the father’ etc. Used to preface a sermon etc. invocatory adj. [latin: related to *invoke]

    Invoice —n. Bill for usu. Itemized goods or services. —v. (-cing) 1 send an invoice to. 2 make an invoice of. [earlier invoyes pl. Of invoy: related to *envoy]

    Invoke v. (-king) 1 call on (a deity etc.) In prayer or as a witness. 2 appeal to (the law, a person’s authority, etc.). 3 summon (a spirit) by charms etc. 4 ask earnestly for (vengeance etc.). [latin voco call]

    Involuntary adj. 1 done without exercising the will; unintentional. 2 (of a muscle) not under the control of the will. involuntarily adv. Involuntariness n.

    Involute adj. 1 involved, intricate. 2 curled spirally. [latin: related to *involve]

    Involuted adj. Complicated, abstruse.

    Involution n. 1 involving. 2 intricacy. 3 curling inwards. 4 part that curls inwards.

    Involve v. (-ving) 1 (often foll. By in) cause (a person or thing) to share the experience or effect (of a situation, activity, etc.). 2 imply, entail, make necessary. 3 (often foll. By in) implicate (a person) in a charge, crime, etc. 4 include or affect in its operations. 5 (as involved adj.) A (often foll. By in) concerned. B complicated in thought or form. C amorously associated. involvement n. [latin volvo roll]

    Invulnerable adj. That cannot be wounded, damaged, or hurt, physically or mentally. invulnerability n. Invulnerably adv.

    Inward —adj. 1 directed towards the inside; going in. 2 situated within. 3 mental, spiritual. —adv. (also inwards) 1 towards the inside. 2 in the mind or soul. [old english: related to in, -ward]

    Inwardly adv. 1 on the inside. 2 in the mind or soul. 3 not aloud.

    Inwrought adj. 1 (often foll. By with) (of a fabric) decorated (with a pattern). 2 (often foll. By in, on) (of a pattern) wrought (in or on a fabric).

    Iodide n. Any compound of iodine with another element or group.

    Iodine n. 1 black crystalline element forming a violet vapour. 2 solution of this as an antiseptic. [french iode from greek iodes violet-like]

    Iom abbr. Isle of man.

    Ion n. Atom or group of atoms that has lost one or more electrons (= *cation), or gained one or more electrons (= *anion). [greek, = going]

    -ion suffix (usu. As -sion, -tion, -xion) forming nouns denoting: 1 verbal action (excision). 2 instance of this (a suggestion). 3 resulting state or product (vexation; concoction). [latin -io]

    Ionic adj. Of the order of greek architecture characterized by a column with scroll-shapes on either side of the capital. [from ionia in greek asia minor]

    Ionic adj. Of or using ions. ionically adv.

    Ionize v. (also -ise) (-zing or -sing) convert or be converted into an ion or ions.

    ionization n.

    Ionizer n. Device producing ions to improve the quality of the air.

    Ionosphere n. Ionized region of the atmosphere above the stratosphere, reflecting radio waves. ionospheric adj.

    Iota n. 1 ninth letter of the greek alphabet (i, i). 2 (usu. With neg.) A jot. [greek iota]

    Iou n. Signed document acknowledging a debt. [from i owe you]

    Iow abbr. Isle of wight.

    Ipa abbr. International phonetic alphabet.

    Ipecacuanha n. Root of a s. American shrub, used as an emetic and purgative. [portuguese from s. American indian, = emetic creeper]

    Ipso facto adv. By that very fact. [latin]

    Iq abbr. Intelligence quotient.

    Ir-prefix assim. Form of in-1, in-2 before r.

    Ira abbr. Irish republican army.

    Iranian —adj. 1 of iran (formerly persia). 2 of the group of languages including persian. —n. 1 native or national of iran. 2 person of iranian descent.

    persian. —n. 1 native or national of iran. 2 person of iranian descent.

    Iraqi —adj. Of iraq. —n. (pl. -s) 1 a native or national of iraq. B person of iraqi descent. 2 the form of arabic spoken in iraq.

    Irascible adj. Irritable; hot-tempered. irascibility n. Irascibly adv. [latin irascor grow angry, from ira anger]

    Irate adj. Angry, enraged. irately adv. Irateness n. [latin iratus from ira anger]

    Ire n. Literary anger. [latin ira]

    Iridaceous adj. Of the iris family of plants.

    Iridescent adj. 1 showing rainbow-like luminous colours. 2 changing colour with position. iridescence n.

    Iridium n. Hard white metallic element of the platinum group.

    Iris n. 1 circular coloured membrane behind the cornea of the eye, with a circular opening (pupil) in the centre. 2 plant of a family with bulbs or tuberous roots, sword-shaped leaves, and showy flowers. 3 adjustable diaphragm for regulating the size of a central hole, esp. For the admission of light to a lens. [greek iris iridos rainbow]

    Irish —adj. Of ireland or its people. —n. 1 celtic language of ireland. 2 (prec. By

    the; treated as pl.) The people of ireland. [old english]

    Irish bull n. = *bull3.

    Irish coffee n. Coffee with a dash of whiskey and a little sugar, topped with cream.

    Irishman n. Man who is irish by birth or descent.

    Irish stew n. Stew of mutton, potato, and onion.

    Irishwoman n. Woman who is irish by birth or descent.

    Irk v. Irritate, bore, annoy. [origin unknown]

    Irksome adj. Annoying, tiresome. irksomely adv.

    Iron —n. 1 grey metallic element used for tools and constructions and found in some foods, e.g. Spinach. 2 this as a symbol of strength or firmness (man of iron; iron will). 3 tool made of iron. 4 implement with a flat base which is heated to smooth clothes etc. 5 golf club with an iron or steel sloping face. 6 (usu. In pl.) Fetter. 7 (usu. In pl.) Stirrup. 8 (often in pl.) Iron support for a malformed leg. —adj. 1 made of iron. 2 very robust. 3 unyielding, merciless. —v. Smooth (clothes etc.) With an iron. iron out remove (difficulties etc.). [old english]

    Iron age n. Period when iron replaced bronze in the making of tools and weapons.

    Ironclad —adj. 1 clad or protected with iron. 2 impregnable. —n. Hist. Warship protected by iron plates.

    Iron cross n. German military decoration.

    Iron curtain n. Hist. Former notional barrier to the passage of people and information between the soviet bloc and the west.

    Ironic adj. (also ironical) using or displaying irony. ironically adv.

    Ironing n. Clothes etc. For ironing or just ironed.

    Ironing-board n. Narrow folding table on which clothes etc. Are ironed.

    Iron in the fire n. Undertaking, opportunity (usu. In pl.: too many irons in the fire).

    Iron lung n. Rigid case fitted over a patient’s body for administering prolonged artificial respiration.

    Ironmaster n. Manufacturer of iron.

    Ironmonger n. Dealer in hardware etc. ironmongery n. (pl. -ies).

    Iron rations n.pl. Small emergency supply of food.

    Ironstone n. 1 rock containing much iron. 2 a kind of hard white pottery.

    Ironware n. Articles made of iron.

    Ironwork n. 1 things made of iron. 2 work in iron.

    Ironworks n. (as sing. Or pl.) Factory where iron is smelted or iron goods are made.

    Irony n. (pl. -ies) 1 expression of meaning, often humorous or sarcastic, using language of a different or opposite tendency. 2 apparent perversity of an event or circumstance in reversing human intentions. 3 theatr. Use of language with one meaning for a privileged audience and another for those addressed or concerned. [greek eironeia pretended ignorance]

    Irradiate v. (-ting) 1 subject to radiation. 2 shine upon; light up. 3 throw light on (a subject). irradiation n. [latin irradio shine on, from radius ray]

    Irrational adj. 1 illogical; unreasonable. 2 not endowed with reason. 3 math. Not commensurate with the natural numbers. irrationality n. Irrationally adv.

    Irreconcilable adj. 1 implacably hostile. 2 (of ideas etc.) Incompatible.

    irreconcilability n. Irreconcilably adv.

    Irrecoverable adj. Not able to be recovered or remedied. irrecoverably adv.

    Irredeemable adj. 1 not able to be redeemed. 2 hopeless. irredeemably adv.

    Irredentist n. Person advocating the restoration to his or her country of any territory formerly belonging to it. irredentism n. [italian irredenta unredeemed]

    Irreducible adj. Not able to be reduced or simplified. irreducibility n. Irreducibly adv.

    Irrefutable adj. That cannot be refuted. irrefutably adv.

    Irregular —adj. 1 not regular; unsymmetrical, uneven; varying in form. 2 not occurring at regular intervals. 3 contrary to a rule, principle, or custom; abnormal. 4 (of troops) not belonging to the regular army. 5 (of a verb, noun, etc.) Not inflected according to the usual rules. 6 disorderly. —n. (in pl.) Irregular troops. irregularity n. (pl. -ies). Irregularly adv.

    Irrelevant adj. (often foll. By to) not relevant. irrelevance n. Irrelevancy n. (pl. –

    ies).

    Irreligious adj. Lacking or hostile to religion; irreverent.

    Irremediable adj. That cannot be remedied. irremediably adv.

    Irremovable adj. That cannot be removed. irremovably adv.

    Irreparable adj. (of an injury, loss, etc.) That cannot be rectified or made good.

    irreparably adv.

    Irreplaceable adj. That cannot be replaced.

    Irrepressible adj. That cannot be repressed or restrained. irrepressibly adv.

    Irreproachable adj. Faultless, blameless. irreproachably adv.

    Irresistible adj. Too strong, delightful, or convincing to be resisted. irresistibly adv.

    Irresolute adj. 1 hesitant. 2 lacking in resoluteness. irresolutely adv.

    Irresoluteness n. Irresolution n.

    Irrespective adj. (foll. By of) not taking into account; regardless of.

    Irresponsible adj. 1 acting or done without due sense of responsibility. 2 not responsible for one’s conduct. irresponsibility n. Irresponsibly adv.

    Irretrievable adj. That cannot be retrieved or restored. irretrievably adv.

    Irreverent adj. Lacking reverence. irreverence n. Irreverently adv.

    Irreversible adj. Not reversible or alterable. irreversibly adv.

    Irrevocable adj. 1 unalterable. 2 gone beyond recall. irrevocably adv.

    Irrigate v. (-ting) 1 a water (land) by means of channels etc. B (of a stream etc.) Supply (land) with water. 2 supply (a wound etc.) With a constant flow of liquid. irrigable adj. Irrigation n. Irrigator n. [latin rigo moisten]

    Irritable adj. 1 easily annoyed. 2 (of an organ etc.) Very sensitive to contact. irritability n. Irritably adv. [latin: related to *irritate]

    Irritant —adj. Causing irritation. —n. Irritant substance.

    Irritate v. (-ting) 1 excite to anger; annoy. 2 stimulate discomfort in (a part of the body). 3 biol. Stimulate (an organ) to action. irritating adj. Irritation n. Irritative adj. [latin irrito]

    Irrupt v. (foll. By into) enter forcibly or violently. irruption n. [latin: related to *rupture]

    Is 3rd sing. Present of *be.

    Isbn abbr. International standard book number.

    -ise var. Of *-ize.

    Usage see note at -ize.

    -ish suffix forming adjectives: 1 from nouns, meaning: a having the qualities of (boyish). B of the nationality of (danish). 2 from adjectives, meaning ‘somewhat’ (thickish). 3 colloq. Denoting an approximate age or time of day (fortyish; six-thirtyish). [old english]

    Isinglass n. 1 gelatin obtained from fish, esp. Sturgeon, and used in making jellies, glue, etc. 2 mica. [dutch huisenblas sturgeon’s bladder]

    Islam n. 1 the religion of the muslims, proclaimed by muhammad. 2 the muslim world. islamic adj. [arabic, = submission (to god)]

    Island n. 1 piece of land surrounded by water. 2 = traffic island. 3 detached or isolated thing. [old english igland; first syllable influenced by isle]

    Islander n. Native or inhabitant of an island.

    Isle n. Poet. (and in place-names) island, esp. A small one. [french ile from latin insula]

    Islet n. 1 small island. 2 anat. Structurally distinct portion of tissue. [french diminutive of *isle]

    Ism n. Colloq. Usu. Derog. Any distinctive doctrine or practice. [from *-ism]

    -ism suffix forming nouns, esp. Denoting: 1 action or its result (baptism; organism). 2 system or principle (conservatism; jingoism). 3 state or quality (heroism; barbarism). 4 basis of prejudice or discrimination (racism; sexism). 5 peculiarity in language (americanism). [greek -ismos]

    Isn’t contr. Is not.

    Iso-comb. Form equal. [greek isos equal]

    Isobar n. Line on a map connecting places with the same atmospheric pressure. isobaric adj. [greek baros weight]

    Isochronous adj. 1 occurring at the same time. 2 occupying equal time.

    Isolate v. (-ting) 1 a place apart or alone. B place (a contagious or infectious patient etc.) In quarantine. 2 separate (a substance) from a mixture. 3 insulate (electrical apparatus), esp. By a physical gap; disconnect. isolation n. [latin insulatus made into an island]

    Isolationism n. Policy of holding aloof from the affairs of other countries or groups. isolationist n.

    Isomer n. One of two or more compounds with the same molecular formula but a different arrangement of atoms. isomeric adj. Isomerism n. [greek *iso-, meros share]

    Isometric adj. 1 of equal measure. 2 (of muscle action) developing tension while the muscle is prevented from contracting. 3 (of a drawing etc.) With the plane of projection at equal angles to the three principal axes of the object shown. [greek isometria equality of measure]

    Isomorphic adj. (also isomorphous) exactly corresponding in form and relations. [from *iso-, greek morphe form]

    Isosceles adj. (of a triangle) having two sides equal. [from *iso-, greek skelos leg]

    Isotherm n. Line on a map connecting places with the same temperature. isothermal adj. [from *iso-, greek therme heat]

    Isotope n. One of two or more forms of an element differing from each other in relative atomic mass, and in nuclear but not chemical properties. isotopic adj. [from *iso-, greek topos place]

    Isotropic adj. Having the same physical properties in all directions. isotropy n. [from *iso-, greek tropos turn]

    Israeli —adj. Of the modern state of israel. —n. (pl. -s) 1 native or national of israel. 2 person of israeli descent. [hebrew]

    Israelite n. Hist. Native of ancient israel; jew. [hebrew]

    Issue —n. 1 a act of giving out or circulating shares, notes, stamps, etc. B quantity of coins, copies of a newspaper, etc., circulated at one time. C each of a regular series of a magazine etc. (the may issue). 2 a outgoing, outflow. B way out, outlet, esp. The place of the emergence of a stream etc. 3 point in question; important subject of debate or litigation. 4 result; outcome. 5 law children, progeny (without male issue). —v. (issues, issued, issuing) 1 literary go or come out. 2 a send forth; publish; put into circulation. B supply, esp. Officially or authoritatively (foll. By to, with: issued passports to them; issued them with passports). 3 a (often foll. By from) be derived or result. B (foll. By in) end, result. 4 (foll. By from) emerge from a condition. at issue under discussion; in dispute. Join (or take) issue (foll. By with a person etc., about, on, over a subject) disagree or argue. [latin exitus: related to *exit]

    -ist suffix forming personal nouns denoting: 1 adherent of a system etc. In -ism: (marxist; fatalist). 2 person pursuing, using, or concerned with something as an interest or profession (balloonist; tobacconist). 3 person who does something expressed by a verb in -ize (plagiarist). 4 person who subscribes to a prejudice or practises discrimination (racist; sexist). [greek -istes]

    Isthmus n. (pl. -es) narrow piece of land connecting two larger bodies of land. [greek isthmos]

    It abbr. Information technology.

    It pron. (poss. Its; pl. They) 1 thing (or occasionally an animal or child) previously named or in question (took a stone and threw it). 2 person in question (who is it? It is i). 3 as the subject of an impersonal verb (it is raining; it is winter; it is two miles to bath). 4 as a substitute for a deferred subject or object (it is silly to talk like that; i take it that you agree). 5 as a substitute for a vague object (brazen it out). 6 as the antecedent to a relative word or clause (it was an owl that i heard). 7 exactly what is needed. 8 extreme limit of achievement. 9 colloq. A sexual intercourse. B sex appeal. 10 (in children’s games) player who has to perform a required feat. that’s it colloq. That is: 1 what is required. 2 the difficulty. 3 the end, enough. [old english]

    Italian —n. 1 a native or national of italy. B person of italian descent. 2 romance language of italy. —adj. Of or relating to italy.

    Italianate adj. Of italian style or appearance.

    Italian vermouth n. Sweet kind of vermouth.

    Italic —adj. 1 a of the sloping kind of letters now used esp. For emphasis and in foreign words. B (of handwriting) compact and pointed like early italian handwriting. 2 (italic) of ancient italy. —n. 1 letter in italic type. 2 this type. [latin italicus: related to *italian]

    Italicize v. (also -ise) (-zing or -sing) print in italics.

    Itch —n. 1 irritation in the skin. 2 impatient desire. 3 (prec. By the) (in general use) scabies. —v. 1 feel an irritation in the skin. 2 feel a desire to do something (itching to tell you). [old english]

    Itching palm n. Avarice.

    Itchy adj. (-ier, -iest) having or causing an itch. have itchy feet colloq. 1 be restless. 2 have a strong urge to travel. itchiness n.

    It’d contr. Colloq. 1 it had. 2 it would.

    -ite suffix forming nouns meaning ‘a person or thing connected with’ (israelite; trotskyite; graphite; dynamite). [greek -ites]

    Item n. 1 any of a number of enumerated things. 2 separate or distinct piece of news etc. [latin, = in like manner]

    Itemize v. (also -ise) (-zing or -sing) state item by item. itemization n.

    Iterate v. (-ting) repeat; state repeatedly. iteration n. Iterative adj. [latin iterum again]

    -itic suffix forming adjectives and nouns corresponding to nouns in -ite, -itis, etc. (semitic; arthritic). [latin -iticus, greek -itikos]

    Itinerant —adj. Travelling from place to place. —n. Itinerant person. [latin iter itiner-journey]

    Itinerary n. (pl. -ies) 1 detailed route. 2 record of travel. 3 guidebook.

    -itis suffix forming nouns, esp.: 1 names of inflammatory diseases (appendicitis). 2 colloq. With ref. To conditions compared to diseases (electionitis). [greek]

    It’ll contr. Colloq. It will; it shall.

    Its poss. Pron. Of it; of itself.

    It’s contr. 1 it is. 2 it has.

    Itself pron. Emphatic and refl. Form of it. be itself see oneself. By itself see by oneself. In itself viewed in its essential qualities (not in itself a bad thing). [old english: related to it, self]

    Itv abbr. Independent television.

    -ity suffix forming nouns denoting: 1 quality or condition (humility; purity). 2 instance of this (monstrosity). [latin -itas]

    Iud abbr. Intrauterine (contraceptive) device.

    I’ve contr. I have.

    -ive suffix forming adjectives meaning ‘tending to’, and corresponding nouns (suggestive; corrosive; palliative). [latin -ivus]

    Ivf abbr. In vitro fertilization.

    Ivory n. (pl. -ies) 1 hard substance of the tusks of an elephant etc. 2 creamy-white colour of this. 3 (usu. In pl.) A article made of ivory. B slang thing made of or resembling ivory, esp. A piano key or a tooth. [latin ebur]

    Ivory tower n. Seclusion or withdrawal from the harsh realities of life (often attrib.: ivory tower professors).

    Ivy n. (pl. -ies) climbing evergreen shrub with shiny five-angled leaves. [old english]

    -ize suffix (also -ise) forming verbs, meaning: 1 make or become such (americanize; realize). 2 treat in such a way (monopolize; pasteurize). 3 a follow a special practice (economize). B have a specified feeling (sympathize). -ization suffix forming nouns. [greek -izo]

    Usage the form -ize has been in use in english since the 16th c.; it is widely used in american english, but is not an americanism. The alternative spelling -ise (reflecting a french influence) is in common use, esp. In british english, and is obligatory in certain cases: (a) where it forms part of a larger word-element, such as -mise (= sending) in compromise, and -prise (= taking) in surprise; and (b) in verbs corresponding to nouns with -s-in the stem, such as advertise and televise.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • C Programming: Pointers, Structures, and Data Allocation

    C Programming: Pointers, Structures, and Data Allocation

    These sources explore the C programming language, drawing comparisons to Python to highlight key differences and similarities. The materials emphasize C’s historical significance and its role in the development of other languages. Topics covered include syntax, data structures (like linked lists, trees, and hashmaps), pointers, memory management, and the C pre-processor. The goal is to understand the low-level implementations that enable higher-level languages like Python to function. Practical examples demonstrate concepts such as file input/output and the building of fundamental data structures in C. The materials acknowledge C’s complexities and potential pitfalls, like buffer overflows, but stress its importance in grasping computer science fundamentals.

    Operating Systems, C Programming, and Data Structures: A Comprehensive Study Guide

    I. Quiz

    1. What was the significance of the 1973 rewrite of Unix in C? 2. How did the University of California, Berkeley (BSD) contribute to the development and popularization of Unix? 3. Explain the difference between Minix and Linux, and why Linux became more successful. 4. What are some advantages and disadvantages of using scanf in C compared to Python’s input methods? 5. Explain what a buffer overflow is and why it’s a security risk in C programming. 6. Explain the difference between internal static and external static variables in C. 7. Describe the role of the “size of” operator in C and why it’s important for dynamic memory allocation. 8. Briefly explain the concept of pointer arithmetic in C, and why it is not as simple as regular arithmetic. 9. What are the benefits of using assignment operators like += in C, according to the text? 10. How does C simulate object-oriented programming principles even without native object-oriented features?

    Quiz Answer Key

    1. Rewriting Unix in C made the operating system more portable, allowing it to run on different hardware architectures, a key factor in its widespread adoption. 2. BSD Unix distributed networking protocols such as TCP/IP which aided the growth of the internet. 3. Minix was a free operating system used for education. Linux became commercially viable due to its GNU Public Library license. 4. scanf is more low-level and requires format specifiers, while Python’s input is higher-level and easier to use but may require type conversion; scanf continues processing data and has no stop at end of line. 5. A buffer overflow occurs when a program writes data beyond the allocated memory of an array, potentially overwriting other data or code and leading to security vulnerabilities. 6. Internal static variables retain their value between function calls but are only accessible within that function, while external static variables are accessible within the file in which they are declared but not in other files. 7. The size of operator determines the memory size in bytes of a variable or data type. 8. Pointer arithmetic adjusts memory addresses based on the size of the data type being pointed to, so adding 1 to an int pointer increments the address by the size of an int rather than a single byte. 9. Assignment operators like += are more concise and may allow the compiler to generate more efficient code, as they only evaluate the left-hand side expression once. 10. C achieves object-oriented concepts like encapsulation and polymorphism through structures with function pointers, naming conventions, and explicit passing of the structure as the first argument to the functions that operate on it.

    II. Essay Questions

    1. Discuss the evolution of operating systems from Multics to Unix to Linux. What were the key innovations and shortcomings of each?

    2. Explain the significance of portability in the context of operating systems and programming languages, using Unix and C as primary examples.

    3. Compare and contrast C’s approach to arrays with that of other languages, such as Python and Java, focusing on dynamic resizing and memory management.

    4. Analyze the trade-offs between structured programming and avoiding “goto” statements in C. How does C balance these two paradigms?

    5. Describe how C achieves object-oriented programming principles, such as encapsulation and polymorphism, without native object-oriented language constructs. Discuss the limitations and advantages of this approach.

    III. Glossary of Key Terms

    • Unix: An operating system developed in the 1970s known for its portability, multi-user capabilities, and influence on subsequent operating systems.
    • C: A programming language developed in conjunction with Unix, known for its efficiency, portability, and low-level access to hardware.
    • BSD (Berkeley Software Distribution): A Unix distribution developed at the University of California, Berkeley, that contributed significantly to networking and TCP/IP protocols.
    • Minix: An educational operating system created by Andrew Tanenbaum that served as an inspiration for Linux.
    • Linux: A free and open-source operating system kernel that has become the dominant operating system in many areas, particularly servers and embedded systems.
    • Portability: The ability of software to run on different hardware platforms or operating systems with minimal modification.
    • Assembly Language: A low-level programming language that is specific to a particular computer architecture.
    • TCP/IP: A suite of communication protocols used to interconnect network devices on the internet.
    • Buffer Overflow: A security vulnerability that occurs when a program writes data beyond the allocated memory of a buffer.
    • Static Variable: A variable with a limited scope (either within a function or a file) and a lifetime that persists throughout the execution of the program.
    • size of Operator: An operator in C that returns the size, in bytes, of a variable or data type.
    • Pointer Arithmetic: The manipulation of memory addresses using arithmetic operations, taking into account the size of the data type being pointed to.
    • Assignment Operator: A shorthand notation (e.g., +=, -=) that combines an arithmetic operation with assignment.
    • Conditional Expression: A compact way to express an if-else statement using the ternary operator ?:.
    • Function Pointer: A variable that stores the memory address of a function, allowing functions to be passed as arguments to other functions or stored in data structures.
    • Structure: A composite data type that groups together variables of different data types under a single name.
    • Dynamic Memory Allocation: The process of allocating memory during the runtime of a program, as opposed to at compile time.
    • malloc: A standard library function in C used to allocate a block of memory dynamically.
    • free: A standard library function in C used to deallocate a block of memory previously allocated with malloc.
    • Linked List: A data structure in which elements are linked together using pointers.
    • Tree: A hierarchical data structure in which each node can have zero or more child nodes.
    • Hash Table: A data structure that uses a hash function to map keys to values for efficient retrieval.
    • Iterator: An object that allows you to traverse the elements of a container (e.g., a list, a tree) in a sequential manner.
    • Object-Oriented Programming: A programming paradigm based on the concept of “objects,” which contain data and methods that operate on that data.
    • Encapsulation: Bundling data and methods that operate on that data within a single unit (e.g., a class or structure).
    • Polymorphism: The ability of objects of different classes to respond to the same method call in their own specific ways.
    • Call by Reference: A method of passing arguments to a function where the function can directly modify the original variable passed in.
    • Function: A block of organized, reusable code that performs a specific task.

    C, Operating Systems, and Foundational Computer Science

    Okay, here’s a briefing document summarizing the key themes and ideas from the provided text excerpts:

    Briefing Document: Analysis of Operating Systems, Programming Languages (C, Python), Data Structures, and Software Design

    Overall Theme: This document explores the historical evolution and underlying principles of operating systems (specifically Unix and Linux), the C programming language, its influence on other languages like Python and Java, fundamental data structures, and object-oriented programming concepts. The author uses a narrative style, drawing on personal experience and comparing different approaches to problem-solving in computer science. A recurring theme is the trade-offs in language design and the importance of understanding low-level details even when using high-level languages.

    Key Ideas and Facts:

    • Unix History and Portability:Unix was developed in the 1970s, evolving from the Multics project.
    • Portability was a design goal, with Unix being rewritten in C to facilitate this: “in 1973 Unix was Rewritten in C but it only was there on the pdp11 although they had laid the groundwork for portability from the beginning.”
    • Early challenges involved adapting Unix to different architectures, such as the Interdata 8/32.
    • BSD Unix from UC Berkeley was significant for introducing networking (TCP/IP).
    • Sun Microsystems played a key role in popularizing Unix workstations.
    • AT&T’s lack of a clear business plan hindered the commercial success of Unix.
    • Minix and the Birth of Linux:Andrew Tanenbaum created Minix as a free, open-source operating system for educational purposes.
    • Linus Torvalds developed Linux as a fresh implementation of a Unix-like kernel, adopting the GPL license: “in 1991 a program called lonus Torvalds decided he was going to build a fresh groundup implementation of the Unix kernel that was 100% free.”
    • Linux, due to its open-source nature, eventually surpassed Unix in market share: “Linux has become Unix right Linux in the modern world is the Unix like system and Unix tried to hold on for a while but they really really couldn’t.”
    • The C Programming Language:C was a byte-oriented language, a significant shift from earlier word-oriented languages like B. “the C language came from B and became a bite oriented language and so C sort of like said we’re going to do bite and dressing”
    • Arrays in C are not dynamically resizable, leading to potential buffer overflows.
    • C provides bitwise operators for low-level manipulation of data.
    • C provides specific operators such as & bitwise AND and && for logical AND. There are nuances in the order of evaluation that can be significant in certain expressions.
    • The switch statement is presented as a multi-way decision maker, but the author expresses some reservations about its use.
    • C uses semicolon for end of line.
    • C has loop structures (while, for, do while).
    • C’s Influence on Other Languages:Python’s open() function is inspired by C’s fopen().
    • Many C conventions, such as the use of || and && for logical operators, have been adopted by other languages.
    • Java adopted C-like syntax for arrays but also provides dynamic list structures.
    • Concepts from C are present in TCP/IP implementations and encryption algorithms in other languages.
    • Data Structures and Algorithms:Arrays are a fundamental data structure in C, but their fixed size can be limiting.
    • Linked lists are crucial for dynamic memory allocation and building data structures like Python’s lists.
    • The discussion covers base conversion algorithms (decimal to octal/hexadecimal) using the modulo operator.
    • Binary search is presented as an example of a three-way decision process suitable for else if constructs.
    • Trees, hashMaps and ListMaps are discussed as dictionary data structures.
    • Memory Management:C provides functions like malloc() and free() for dynamic memory allocation.
    • The concept of “call by reference” is explored, contrasting C’s approach (using pointers) with languages like Python (which primarily use call by value).
    • “Static” keyword in C has multiple meanings with internal static being local to a function and external static being known to a source file.
    • Pointers and Addressing:Pointers are a central concept in C, allowing direct manipulation of memory addresses. “pointers gives us the ability to do call by reference”
    • Pointer arithmetic is type-aware, incrementing based on the size of the data type being pointed to: “if you add one to a character pointer that actually adds one to the address and if you add one to an integer pointer then it adds four”.
    • The “arrow operator” (->) provides a concise way to access members of structures through pointers.
    • Object-Oriented Programming (OOP) in C:The author demonstrates how to simulate OOP concepts in C using structures and function pointers.
    • Naming conventions are used to mimic methods and constructors: “…we’re going to name the dump function and the dump function is going to take a self parameter and we’re going to name it pointcore dump that’s just a naming convention.”
    • The code illustrates how to implement dynamic data structures like linked lists using dynamic memory allocation.
    • The Importance of Low-Level Understanding:The author emphasizes that understanding how bits are stored and manipulated is crucial, even with modern high-level languages.
    • Language Design Tradeoffs:The document implicitly highlights the trade-offs between language features (e.g., operator overloading, call by reference) and complexity in memory management and language implementation.

    Quotes: I have incorporated quotes throughout the summary above.

    In Conclusion: The document presents a rich overview of core computer science concepts, focusing on the C programming language as a foundation for understanding operating systems, data structures, and the evolution of programming paradigms. The author’s perspective provides valuable insights into the design choices behind different languages and the continuing relevance of low-level knowledge.

    Unix, C, and Operating System Development: An Overview

    FAQ

    1. What is Unix and why is it important?

    Unix is an operating system that emerged in the 1970s, known for its multi-user capabilities and portability. It was initially rewritten in C, a programming language that facilitated its adaptation to different computer architectures. Unix played a crucial role in shaping modern operating systems, introducing concepts like networking (TCP/IP) and influencing the development of BSD (Berkeley Software Distribution), which pioneered many advancements. Although AT&T struggled to monetize Unix effectively, its impact on computer science education and the subsequent rise of Unix workstations cemented its place in computing history.

    2. How did Minix and Linux emerge in relation to Unix?

    Minix, developed by Andrew Tanenbaum, was a free and open-source operating system created for educational purposes. While popular, Tanenbaum initially restricted commercialization. In 1991, Linus Torvalds independently created Linux, a Unix-like kernel, under the GPL (GNU Public License). This licensing allowed for community investment and development, eventually leading to Linux becoming the dominant “Unix” system in the modern marketplace, surpassing the original Unix distributions.

    3. What is C’s significance in the context of operating systems and portability?

    The C programming language played a pivotal role in making Unix portable. As C evolved, it enabled the rewriting of Unix code to contain less assembly language, resulting in a more adaptable operating system. C’s influence extends to many later languages (like Python, Java, JavaScript and PHP) which adopted C conventions for logical and bitwise operators.

    4. How did the PC revolution impact the adoption of Unix?

    While Unix was gaining popularity, the rise of personal computers (PCs) with operating systems like DOS and early versions of Windows presented competition. This meant Unix wasn’t universally adopted in professional settings during the early 1980s. However, as microprocessor speeds increased, smaller companies began producing Unix workstations that eventually outperformed older mainframe computers.

    5. How do C arrays differ from Python lists, and what are the implications?

    C arrays have a fixed size determined at compile time, and their size cannot be dynamically adjusted during program execution. This limitation can lead to buffer overflows, a class of security vulnerabilities. Python lists, in contrast, can automatically resize as elements are added or removed at runtime.

    6. What are the common uses of bitwise operators in C, and why are they important?

    Bitwise operators in C, such as AND (&), OR (|), XOR (^), left shift (<<), and right shift (>>), allow for direct manipulation of individual bits within data. They are crucial for tasks like masking bits, setting bits, and performing efficient multiplication or division by powers of two. While they might seem less relevant in modern high-level programming, bitwise operators remain essential for low-level programming, implementing networking protocols (like TCP/IP), encryption algorithms, and checksum calculations. The fact that Java and Python support bitwise operators in the same way C does made it possible to write portable code.

    7. How does C support structured programming, and what alternatives exist?

    C supports structured programming through constructs like if-then-else, else if, while, do loops, which promote code readability and maintainability by avoiding “spaghetti code” created by extensive use of goto statements. C’s approach represents a middle ground, allowing both structured and less-structured coding styles. However, the switch statement can act as a multi-way decision branch which is an alternative to structured constructs, though it should be used sparingly and with caution to prevent fall through errors.

    8. How does C’s approach to pointers enable “call by reference,” and what are some alternative approaches in other languages?

    C enables “call by reference” by allowing functions to receive memory addresses as arguments (pointers). By dereferencing these pointers within the function, it can directly modify the original data in the calling scope. Pascal also directly supports call by reference with the VAR keyword. While Python, Java, and Javascript lack explicit call-by-reference features, they allow modification of mutable objects passed as arguments. Some languages, like PHP and C#, provide syntax or mechanisms (e.g. ref keyword in C#) to achieve similar effects while maintaining code clarity and safety. Returning tuples is another way to effectively return more than one value from a Python function and thus emulate some of the effects of call by reference.

    Python Lists: Implementation and Evolution

    Here’s what the sources say about Python lists:

    • Python lists emulate the list class in C.
    • When building a list object, an object-oriented approach can hide implementation details within the object.
    • When creating a new list (Pylist new), memory is dynamically allocated to make it work. The head and tail are set to null, indicating an empty list. The count is set to zero.
    • In Python, a list is a mutable data structure.

    Python 1.0 Lists:

    • In Python 1.0, lists were implemented as extendable arrays of pointers, not linked lists.
    • The Python 1.0 list has an allocation and a length, as well as an array of pointers.
    • The allocation is how many characters were allocated, and the length is how many of those have been used. A zero byte is automatically put at the end.
    • The structure of the Python 1.0 list is simpler than a linked list because there is only one structure.
    • If there is room to append, a new string is allocated, the parameter is copied into that string, and wherever the end is, length tells where the end is, it is put in that position and one is added to the length.
    • When extending a list, realloc is used.
    • If memory needs to be reallocated, the items that were in it before are copied if a new pointer is returned.

    Python 3.7 Lists:

    • Python 3.7 uses an integer array for its index.

    Additional details:

    • In C, next is a common convention (but not a keyword) used when creating linked lists.
    • The destructor is trickier because it requires going through the list and freeing up all of the text areas, not just the structure list nodes, and also the character text has to be removed.
    • There is an infinite array of optimizations to make everything faster.

    C Language: Memory Allocation Strategies and Concepts

    Here’s what the sources say about memory allocation:

    • C requires programmers to handle memory allocation manually, unlike languages like Python, JavaScript, and Java that have automatic memory management.
    • Understanding data allocation and location is crucial in all programming languages.
    • C’s memory allocation is closely tied to pointers.
    • In C, memory allocation can be done statically or dynamically.

    Key Concepts & Functions:

    • malloc(): Allocates a block of memory at runtime. It returns a pointer to the allocated memory. The programmer is responsible for specifying the size of the memory block needed.
    • free(): Deallocates memory that was previously allocated with malloc(). It is crucial to free memory when it is no longer needed to prevent memory leaks.
    • realloc(): Changes the size of a previously allocated block of memory. It can expand or shrink the memory block. If it expands the memory and there is not enough contiguous space, it may copy the contents to a new location.

    Memory Allocation Strategies:

    • Static Allocation: Memory is allocated at compile time, and the size is fixed.
    • Dynamic Allocation: Memory is allocated at runtime, allowing for more flexibility in memory usage. Dynamic allocation is essential when the amount of memory needed is not known at compile time.

    Memory allocation in the context of C and data structures:

    • Arrays: When allocating memory for arrays, the size must be known.
    • Structures: The sizeof operator is used to determine the size in bytes of a structure or data type, which is needed when allocating memory for it.
    • Linked Lists: Nodes in a linked list are dynamically allocated. Each node contains data and a pointer to the next node in the list.
    • Strings: In C, strings are often represented as character arrays. Dynamic memory allocation allows strings to grow or shrink as needed.
    • Hash tables: Memory is allocated using malloc for the key and value.
    • Python List: Python’s list object in early versions, allocated memory using realloc.
    • Memory allocation sizes: Integers are 16 bits on some computers and 32 bits on others. Addresses are generally positive numbers that start from zero.
    • Security: The gets function is prone to buffer overflow, because it doesn’t check bounds.

    C Character Arrays: Concepts, Functions, and Usage

    Here’s what the sources say about character arrays:

    • In C, character arrays are used to represent strings [1-6].
    • Unlike some other languages, C doesn’t have a built-in string object type [2, 7].
    • Character arrays in C are not automatically resizable [2, 7, 8].
    • The C language is responsible for many security holes due to coding practices regarding character arrays [7].

    Here’s what you need to know about character arrays:

    • Declaration: When declaring a character array, its size must be specified at allocation time [2, 3, 7, 8]. For example: char line [1, 3].
    • Fixed Length: Character arrays have a fixed length, and they do not auto-extend [1, 7].
    • Potential for buffer overflow: Writing beyond the allocated size of a character array can lead to a buffer overflow, potentially causing the program to crash or create security vulnerabilities [1, 5, 7]. This can happen if you try to input more characters into the array than it can hold [1, 5].
    • No String Object: C does not have a built-in string object. Character arrays are used as strings [2, 7].
    • String Literals:
    • Double quotes are used to define string literals, which are character arrays [6, 7].
    • A string constant like “I am a string” is internally represented as an array of characters, terminated by a null character (\0) [6].
    • Single vs. Double Quotes: In C, single quotes denote a single character, while double quotes create a character array [7].
    • Character Representation: Characters in C are essentially integers [3, 7]. They have numeric representations based on the character set being used (e.g., ASCII) [2, 3, 7].

    String Termination:

    • Strings in C are terminated by a null character (\0), which is a character with the integer value of zero [2, 6]. This null terminator is crucial for functions that process strings, as they use it to determine the end of the string [2].

    Passing Character Arrays to Functions:

    • When passing a character array to a function, you’re actually passing the address of the first element of the array [8, 9].
    • Within the function, the argument can be treated as a pointer to characters [8, 9].
    • When declaring a character array as a function parameter without specifying its size, it means that the array’s length is determined in the calling code [10, 11].

    Common Operations and Functions:

    • scanf(): Can be used to read a string from input [1]. It’s important to limit the number of characters read to prevent buffer overflows [1, 5].
    • fgets(): A safer alternative to scanf() for reading strings, as it allows specifying the maximum number of characters to read.
    • strlen(): Calculates the length of a string (excluding the null terminator) by iterating through the array until it finds the null character [2, 9].
    • strcpy(): Copies one string to another [6, 11]. A pointer version of strcpy increments pointers as it copies [6].
    • strcmp(): Compares two strings lexicographically [6, 11].

    Example:

    #include <stdio.h>

    #include <string.h>

    int main() {

    char name; // Character array to store a name

    printf(“Enter your name: “);

    scanf(“%99s”, name); // Read up to 99 characters to prevent overflow. %s expects a char* argument. No ampersand needed.

    printf(“Hello, %s!\n”, name);

    return 0;

    }

    Pointers and Character Arrays: The name of an array is treated as a pointer, so there is no need for an ampersand (&) [1, 8, 9].

    • char *message declares message as a pointer to a character [6]. message = “Now is the time”; assigns message to point to the character array [6].

    Initialization:

    • Character arrays can be initialized with a string literal [12]:
    • char month_name[] = {
    • “Illegal”,
    • “January”,
    • “February”,
    • “March”
    • };
    • If the size of the array is not specified, the compiler will determine the size based on the initializer [12].

    Multi-dimensional arrays:

    • Elements are stored by rows [11, 12].
    • When passing a two-dimensional array to a function, the column dimension must be included in the function’s argument declaration [11, 12]. The row dimension is irrelevant [11, 12].

    The C Language: History, Features, and Impact

    Here’s what the sources say about the C language:

    • C is a general-purpose programming language that has been closely associated with the Unix system since it was developed on that system.
    • C is a relatively low-level language, dealing with characters, numbers, and addresses.
    • C is often studied as a foundation of modern software and computing, acting as a “Rosetta Stone” connecting past and present programming languages.
    • The C language was created in the early 1970s, with a key book published in 1978.
    • C enabled major advances in computer architecture and performance. Operating systems, compilers, and utilities could be recompiled to work on a new hardware platform once a C compiler was available for that hardware.
    • C is known for being efficient and expressive, closely matched to the hardware of its time.
    • Many popular programming languages, such as Perl, Python, Java, JavaScript, and Ruby, were written in C.

    History and Evolution

    • C evolved from a language called B at AT&T Bell Labs, but C was designed to support byte addressing.
    • Unix and C co-evolved, with C being used to rewrite Unix and improve its portability.
    • The book The C Programming Language by Brian Kernighan and Dennis Ritchie (K&R) was published in 1978 and summarized a decade of research in building a portable programming language.
    • In 1989, C was standardized as C89 (ANSI C) and later as C90 (ISO).
    • Later revisions of C have not attempted to make it an easy-to-use language like Python or JavaScript.
    • Before C, Assembly Language or Fortran were commonly used.
    • C was aimed at writing system code, such as operating systems and utilities.
    • Influenced the syntax of many other languages.

    Key Features and Characteristics

    • Portability: C was designed to be portable, allowing it to work on different computers.
    • Low-Level Access: C provides the ability to do address arithmetic through pointers.
    • Functions: C provides fundamental control constructions for well-structured programs, such as statement grouping, decision-making with if, looping with for and while, and selecting one of a set of possible cases with switch.
    • No High-Level Operations: C lacks built-in operations for directly dealing with composite objects like character strings, sets, lists, or arrays as a whole.
    • Manual Memory Management: C requires manual memory management using functions like malloc and free.
    • Not Strongly Typed: C is relatively permissive with data conversion, although it does not automatically convert data types with the “wild abandon” of PL/1.
    • Evolving Language: C is an evolving language that exists on a variety of systems.

    Impact and Influence

    • Foundation for Other Languages: C is considered the “mother tongue” of many other languages, including the Bash shell, Perl, Python, PHP, C++, JavaScript, Java, C#, and Objective-C.
    • Systems Programming: C is well-suited for systems programming, such as writing operating system kernels.
    • Early Internet: Early TCP/IP networking stack implementations and the first web browsers and web servers were written in C.
    • Operating Systems: C was used to develop operating systems like Unix, Minix, and Linux.

    Importance of Pointers

    • Pointers are heavily used in C for computations and achieving compact, efficient code.
    • Pointers allow accessing objects indirectly by containing the address of another variable.
    • Pointers, if used carelessly, can create impossible-to-understand programs, but with discipline, they can achieve clarity and simplicity.
    • Understanding pointers leads to understanding Assembly Language, machine language, and ultimately hardware.

    Learning C

    • The only way to learn a new programming language is by writing programs in it.
    • It is essential to master the mechanical details of creating, compiling, loading, and running a program.
    • The book is not intended to be a reference work on data structures and algorithms.

    Modern C and its Role

    • General-Purpose vs. Systems Language: While C is a difficult language to use as a general-purpose language, it excels as a systems programming language.
    • Alternatives: Languages like Java, JavaScript, C#, and Python are better suited for general-purpose tasks, as they offer features like simpler object-oriented layers and automatic memory management.
    • Rust as a Successor: Rust is considered a potential successor to C, offering low-level control with safer data types.
    • Legacy Considerations: Modern lint programs look at programs in far more detail than most compilers.

    C Pointers: Concepts, Usage, and Dynamic Memory Allocation

    Here’s what the sources say about pointers in C:

    • Definition: A pointer is a variable that holds the memory address of another variable.
    • Pointers are essential to C, enabling high-level languages to function like low-level languages.
    • Pointers are heavily used in C, sometimes being the only way to express a computation, and often lead to more compact and efficient code.
    • Pointers are fundamental to many core concepts in C, such as functions, arrays, structures, and dynamic memory allocation.
    • Mastering pointers is critical, and rushing through this material is not recommended.

    Core Pointer Concepts

    • Address Operator (&): The unary operator & provides the address of an object. PX = &X assigns the address of X to the variable PX.
    • Dereference Operator (*): The unary operator * treats its operand as an address and accesses the content of that address. If PX points to X, then Y = *PX assigns the content of what PX points to (which is X) to Y.

    Declaration

    • int *PX; declares PX as a pointer to an integer.

    Usage

    • Function Arguments: C passes arguments to functions by value. To modify a variable in the calling function, pass a pointer to the variable.
    • Calling code: swap(&a, &b).
    • Function declaration: swap(int *PX, int *PY).
    • Arrays: Pointers are closely related to arrays in C. When a character string appears in a program (as with printf(“hello, world\n”)), access to it is done through a character pointer.
    • Character pointers and string constants:
    • char *message = “Now is the time”; assigns message to a pointer to the character array.
    • Arrays of pointers are a mapping to the typical operating system and string manipulation use cases that are more the core of C applications.
    • Structures: Pointers are used to access structure members. The arrow operator (->) is a shorthand for dereferencing a pointer to a structure and accessing a member: PP->X is equivalent to (*PP).X.

    Arithmetic

    • If P is a pointer to some element of an array, P++ increments P to point to the next element, provided it stays within the bounds of the array.
    • Pointer arithmetic is consistent; if P is a pointer to a float, P++ will advance to the next float.
    • Valid pointer arithmetic operations include adding or subtracting a pointer and an integer, subtracting or comparing two pointers. Other pointer arithmetic operations are illegal.

    Cautionary Notes

    • Potential for confusion: Pointers have been labeled alongside the “go-to” statement as a way to create impossible-to-understand programs.
    • Invalid Accesses: It is easy to create pointers that point somewhere unexpected.
    • Type Safety: It is unwise to take liberties with routines that return pointers without proper pointer declarations.

    Dynamic Memory Allocation

    • sizeof operator: The sizeof operator can compute the size of any object. sizeof(object) yields an integer equal to the size of the specified object in bytes.
    • malloc function: Used for dynamic memory allocation. It’s necessary to know the size of the data to be allocated.
    • Return type is void * in modern C.
    • free function: Used to release dynamically allocated memory.

    Pointers and Structures

    • Self-Referential Structures: Structures can contain pointers to themselves, enabling the creation of linked lists and trees.
    • Linked Lists: Dynamic data structures can be constructed using pointers and structures, allowing for efficient insertion and deletion of elements.
    • Trees and Hashmaps: Understanding pointers is essential for implementing more complex data structures like trees and hashmaps.

    Command Line Arguments

    • Pointers are used extensively in handling command-line arguments. argv is a pointer to an array of character strings containing the arguments.
    Learn C Programming and OOP with Dr. Chuck [feat. classic book by Kernighan and Ritchie]

    Dr Charles sance is one of the world’s most popular programming instructors in this course he’ll teach you C programming and object orientation With a Little Help from the classic cbook from kinghan and Richie this is definitely the place to start if you want to learn C welcome to C programming for everybody my name is Charles sance and I’m your instructor for this course this course and website is dedicated to learning the classic version of C programming language from the 1978 book written by Brian W kernigan and Dennis M Richie this book places the reader in the middle of the 1970s transition from a hardware centered computer science to a focus on writing portable and efficient software C was used to develop operating systems like Unix Minix and Linux programming languages like Pearl python Java and JavaScript and Ruby are all written in C software like early tcpip networking stack implementations that made the internet possible were written in C and the first web browsers and web servers were written in C writing software in C enabled major advances in computer architecture and performance operating systems compilers and utilities could be recompiled to work on a new hardware platform once we had a c compiler for the new hardware so much software has been written in C over the past 40 years that there’s a very good chance that much of the software that you use every day was either written in C or written in a programming language that was was written in C so we study C less as a programming language to use on a daily basis and more as the foundation of modern software and Computing in many ways C is the technology equivalent of the Rosetta Stone in that it provides a connection between the programming languages of the past and the programming languages of the present the name cc4 in http://www.cc.com refers to the original Unix command CC which was the command that you used to compile your C program CC stood for C compiler and it is featured on the first page of the first chapter of the KRC book programmers like me from the 1970s and 1980s typed CC on unic systems like the AT&T 3bw to compile and run their first hello world program in C this material is being presented under fair use as we are making use of material from a copyrighted work that is out of print and not broadly available in any format the book is also not available in any accessible format we are making use of this material in a teaching and research context with a focus on studying its contribution to Computing history the material is a available for free and online to anyone who wants to learn about the history of the sea language Computing and computer architecture welcome to the course [Music] welcome to C programming for everybody my name is Charles sance and I’m your instructor for this course this course in website is dedicated to learning the classic version of C programming language from the 1978 book written by Brian W kernigan and Dennis M Richie this book places the reader in the middle of the 1970s transition from a hardware centered computer science to a focus on writing portable and efficient software C was used to develop operating systems like Unix NX and Linux programming languages like Pearl python Java and JavaScript and Ruby are all written in C software like early tcpip networking stack implementations that made the internet possible were written in C and the first web browsers and web servers were written in C writing software in C enabled major advances in computer architecture and performance operating systems compilers and utilities could be recompiled to work on a new hardware platform once we had a c comp filer for the new hardware so much software has been written in C over the past 40 years that there’s a very good chance that much of the software that you use every day was either written in C or written in a programming language that was written in C so we study C less as a programming language to use on a daily basis and more as the foundation of modern software and Computing in many ways C is the technology equivalent of the Rosetta Stone in that it provides a connection between the programming languages of the past and the programming languages of the present the name cc4 in http://www.cc.com refers to the original Unix command CC which was the command that you Ed to compile your C program CC stood for C compiler and it is featured on the first page of the first chapter of the KRC book programmers like me from the 1970s and 1980s typed CC on unic systems like the AT&T 3bw to compile and run their first hello world program in C this material is being presented under fair use as we are making use of material from a copyrighted work that is out of print and not broadly available in any format the book is also not available in any accessible format we are making use of this material in a teaching and research context with a focus on studying its contribution to Computing history the material is a available for free and online to anyone who wants to learn about the history of the sea language Computing and computer architecture welcome to the [Music] course hello and welcome to C programming for everybody this lecture is putting C in a bit of a historical context now if you’re watching this lecture you’re probably familiar with some of my other classes I just want to kind of let you know that I’ve been been building a lot of classes most of you probably took python for everybody available on corsera edx and many other platforms but I have a whole series of classes that are designed what I call the path of the master programmer where I try to start people that no matter where you start I want you to be able to learn to be a really good programmer and follow along as far as you want these are all my materials they’re all 100% free open and online and they’re really aimed at teaching everybody how to program I mean I started doing doing this back in 2012 with corsera and I have dedicated myself to making all my materials free and to create a path that anyone can take anywhere in the world regardless of economic uh challenges or other things in your life I want everybody to have an opportunity to be a professional developer so I encourage you and and and frankly if you haven’t taken python yet like my python for everybody class this this course is going to be a little bit uh difficult so let’s start with a history of sea the book we’re looking at the kigan and Richie uh C A C programming language by Brian W kernigan and Dennis M Richie uh was published in 1978 and the the key thing is is that it it is a moment in history where everything changed and and so we’re looking at this textbook and the text in this textbook and the language itself in the context of how it is impacted history the C programming language itself has a long history there was a language called B and they were using it at AT&T of bell labs to build utilities and operating system stuff um but it was a little too word oriented and so they the language C was as new uh computer hardware came out that supported bite addressing and the ability to load a string of bites and send store a string of bites rather than a set of words words being lger than a bite and more than one character were packed into a words and kind of like the 60s and early’ 70s um C wanted to make a character a sort of core uh low-level V kind of data that the language would happen and from like like the the mid early and mid 70s the C and Unix kind of co-evolved they wanted to build something that would uh make Unix work well on a PDP 1120 and at the same time uh make it so they could Port Unix to other systems but really um it was about the PDP 1120s uh cool memory architecture having to do with bite addressability and what happened was is they were they were carefully rewriting Unix in C but then fixing C laying the groundwork for uh Unix portability and so by 1978 the this KRC book was published and at that point you could think of it as a um a summary of over a decade of research in how to build a portable programming language and then use that portable programming language to build a portable operating system C in Unix of course um by uh 1989 the C had become popular and there was a need to standardize it so there’s a variant of C called c89 that is the ANC and then that same version was called C90 as ISO ISO the international organization of standards also standardized that and so that was our first uh version of the sea that we could all agree on uh the the ancy did not intend to go too far away from what we call KRC it but instead it just you know sort of nailed down a few things that by then were important to nail down um and C has continued to evolve from sort of 1990 to the present and there’s a number of major revisions but the key thing that these revisions don’t do in the modern version of C is they do not attempt to make C uh easy to use language say like python or JavaScript and they C is knows its place in the in the panoply of languages and does a good job of that so if we look at sort of what’s the future C is a difficult language to use as a general purpose language python is a is a great general purpose language but it’s not a great systems programming language and the two things that are missing from C are the lack of really solid dynamic memory support in the core types and libraries and then there is no safe string type strings are not there’s no string in C it’s character arrays and arrays have sizes and if you start putting stuff beyond the boundary of that array things just blow up and C++ is to me not the the sort of future version of C it’s really a more powerful inter and flexible version of C for programmers who are doing really professional intricate systems applications writing good C++ in some ways is more difficult than writing good C the the languages that sort of take on in C’s mantle in the general purpose are things like Java JavaScript CP or python the key thing with these languages is they don’t give you sort of strings as just raw bite arrays and they they give us a simple objectoriented layer that keeps us away from the metal the goal of C is to get close to the hardware close to the metal and so Java JavaScript C python are all great languages and they’re great for what we use them for they’re just not well suited for writing an operating system kernel the most likely language that is like C like the next C is probably rust the idea of rust is that it stays close to the metal um but then gives us some simple and safe core data types and recently Linux is starting to accept some Rust in Linux and so that means that rust has to be mature it means that rust can’t be like evolving rapidly um I’ve seen situations where operating systems like Mac OS like decide to depend on python so there’s parts of Mac OS that depend on python 2 but then they can’t really upgrade to python 2 because their operating system blah blah blah so to for an operating system to depend on a programming language like rust it really has to be mature and even more importantly stable you can’t have clever Innovations in the programming language causing regressions in an operating system say like clinics so I look look look for rust now C is has been around a long time um before C we call C starting in 72 the book is published in 78 before c most of us would write Assembly Language or Fortran some people WR wrote pl1 that’s not on here uh Fortran is not really a general purpose programming language you wouldn’t write uh command like cat in Fortran Fortran was really for scientific computations and the earliest of computers in the 50s 60s were either sort of really specialized toward like payroll and HR systems or they were really specialized to doing computations and the ones that specialized were science the science ones were uh used for Trend because it was just the right language for those computers that were aimed at doing scientific calculations c as a language was kind of none of the above in that it was aimed at writing system code a kernel an operating system and the utilities around it including like other languages and so C is kind of the mother tongue of all kinds of other derivative languages and things like The Bash shell Pearl python PHP C++ JavaScript Java and C sh and Objective C just kind of were derivatives of this beginning of c and that’s why you see a lot of patterns in these other languages that are similar and that’s because JavaScript and Java both inherited their for Loop syntax from C so I’ve got a couple of videos in this section this is Brian kernigan and uh talking about the C programming language and it’s a short video I didn’t produce this video but it’s a great little video um another video is from the creator of C++ Barn strrip this was an interview that I did with itle e computer Magazine on top of this history of the sea language we can look at a brief history of computers and I have a whole course called internet history technology and security that really starts in the 1940s with a focus more on communication rather than computation even though Comm communication and computation were very much connected throughout the 40s through the even today in the early 1950s computers were you best think of them as like a multi-million doll strategic asset every single computer and a lot of them were custombuilt the first computer uh Michigan State University where where I went to undergrad was built by the electrical engineering students of that University based on some designs that they’d borrowed I think from Iowa and so things like the programming language the operating system you didn’t have a lot of generalization you didn’t have a lot of sharing you tended to write code and put it on a paper tape or later a magnetic tape and load it and run it and so you were just pretty happy if the code worked you didn’t need an operating system these weren’t multiprocessing computers and so the software environment was very minimalist but in the late 50s and early 60s you saw companies like IBM and digital equipment corporation began selling general purpose computers they just could make them um and they and they started selling them and they still were expensive and they were only in like a business would have a couple of computers to help them do payroll perhaps or something like that something that was really really important because the computers were expensive but in the’ 60s there we we really got to the point where the computer componentry the chips Etc were becoming Commodities you could just go to a place and buy chips and then you could make a computer by buying a bunch of chips and putting those things together and and because you weren’t building everything from scratch the cost got a lot lower the other thing that these uh these less expensive computers were is they were a little slower but by the end of the 1960 there was a lot of computers there were some you know super expensive weird oneoff you know small production computers there were computers that had had there was like the previous generation of mini computer where there were lots of them laying around old computer science departments or businesses that they weren’t sure what they did with them to do with them they wanted to buy a new one and then there were just Innovative new lowcost computers coming out and in the 70s in the this millu of just lots of new and old computer hardware the question was is is there a way we can do things with all of this old hardware and is there sort of one solution and that’s where Unix andc uh came and certainly after the 70s we look at the 80s and that’s where microprocessors and personal computers and so we went from computers that were sizes of refrigerators or or desks to the size of a a computer could be on a single chip and in the beginning those personal computers like the IBM PC or Commodore pet they had really bad performance but that performance once you could get everything on a single chip that performance could get faster very quickly and because personal computers became a mass Market item a lot of money could be invested in personal computers by the 1990s personal computers continued to grow right and um but the to communicate and and talk and exchange information became important and so in the 1990s we saw really an increasing focus on connecting computers with the internet and other kinds of networks and the performance of these computers and the price kept going down the performance kept going up and then by the time we get to the 2000s Amazon’s AWS was founded in 2002 and it used personal computer microprocessors like from Intel and produced Computing as a commodity right and so and you don’t even buy computers anymore you just go to Amazon and say I’ll rent a computer for $7 a month and so we see in 1978 we see this moment where the we going from uh the computers were were becoming more common they’re going down in price and there’s getting to be more and more of them and there was a diversity of computers these days there’s actually less diversity if we go back in history and you take a look at my internet history class you you can see the I go to Bletchley Park and show you some of the earliest uh computations from the 1940s in World War II we go to uh Computer History Museum in California and visit with Gordon Bell and talk about the the pdp1 and he talks a lot about um buying the components and putting the components together and how how sort of the mass availability of relatively lowcost components really allowed for a rapid innovation in computer architecture uh a computer that I used in my uh computer science degree was the Control Data CDC 6500 and I have a video where we visit the living computer Museum in Seattle Washington and here card readers work and card punches and if uh if we ever get to the point where everything opens back up again it’s a it’s a tremendous visit to go see uh all the technology that really Through The Years except that it in the living computer Museum they like to have everything running and then you can take a look at a more modern smaller the Raspberry Pi which the Raspberry Pi is actually not an Intel based system the Raspberry Pi is based on uh arm the processor that really became popular as a result of the cell phone Revolution and so they the Raspberry Pi is to take what the the technology was Advanced both um low power and high performance technology that was Advanced because of mobile phone Innovations the Raspberry Pi came out and was a good single board computer so let’s take a look at the operating system munix is the operating system that is uh connected with C in the 1960s there was a multi-user operating system called multics um and then in the 1970s they they wanted to come up with yet another operating system and they called it eventually called it Unix and the deck PDP 1120 which was one of these new uh commodity PE part-based computers um that was coming into the marketplace and so in 1973 Unix was Rewritten in C but it only was there on the pdp11 although they had laid the groundwork for portability from the beginning they they knew they wanted to H have everything be portable they just couldn’t make it all portable the first version they just had to make it run on the pdp11 and then by 1978 the Unix the second computer that Unix had run on was an inata 832 and that was quite a different computer and so it was good and so they really learned a lot about making Unix a portable bit of software from in the early 1970s C was evolving in a way so that the Unix could be ported right so it’s like let’s we got this problem between let’s just say the pdb1 and the inner data and how can we fix this and we can both change how the operating system works we can change the operating system code and we can change the C compiler and then we can rewrite the operating system code to get less and less Assembly Language and more and more C language and so the idea was to get to the point where uh there was a very very small amount of Assembly Language in Unix and over the years that’s gotten lower and lower Unix was Rewritten a number of versions came out in the 70s having to do with their portability so by 1978 the Unix version 7 could also run on a whole new architecture from deck called the VAC systems um uh the University of California Berkeley had their own distribution of Unix called BSD the Berkeley software distribution and that was really cool because uh universities often pushed things like networking tcpip arpanet BSD Unix was the first place some of us saw tcpip 1982 a company based solely on Unix called Sun Microsystems was found uh sun was some work at Stanford some work at Berkeley based on Unix and they created what in effect was the Unix workstation Marketplace at this point you could imagine that the world was about to just adopt Unix Unix was the greatest thing ever computer science departments were um teaching Unix in their operating systems classes in the in the mid 80s the problem became AT&T had never come up really with a business plan for what the purpose of Unix was and so there was some fits and starts as to how they could monetize this extremely popular thing and they they didn’t do a great job and it took them a long time to figure out what was going to be successful and by the time AT&T sort of figured things out the market had moved on and so Minx is an operating system system that was developed in the Netherlands by Andrew Tannon bomb and he he built a completely free and open- Source operating system that was used for Education he he built a textbook around it and it was very popular but uh he didn’t want commercialization at least not at that point in time so he sort of he sort of held on to it too tightly again kind of an intellectual property mistake and in 19911 a program called lonus Torvalds decided he was going to build a fresh groundup implementation of the Unix kernel that was 100% free so he wasn’t going to use Unix he wasn’t going to use Minix he wanted to create another thing and originally it was just like a hobby I’m going to try to see how far I can go by 1992 Linux started to work and it adopted this license called the the GPL which is called the ganu public library license which is a strongly open source license in the way that it’s difficult to take uh Linux out of Open Source with which meant that people could then invest in Linux and so Linux has become Unix right Linux in the modern world is the Unix like system and Unix tried to hold on for a while but they really really couldn’t and so the uh the the remaining Unix distributions are a a tiny tiny fraction of the marketplace and Linux is the marketplace so we can see some of this in some of the videos that I’ve got like Andrew tanom will tell us the story of how Minix was created and how Minx be how Minix kind of begat Linux and so that there’s some interesting stuff here okay so I’ll lay on top of all this remember that 1978 is this moment in history where I claim like everything changed now I’ve been a computer scientist for a very long time I started in 1975 and in 19775 I learned things like Fortran on a computer that CDC 6500 computer it ran a special operating system called scope Hustler I knew how to do assembly I knew to Fortran and even Pascal so Pascal in the 70s was one of these languages um that and I’ve got a video for Pascal as well one of these languages that was sort of like saying look here’s the future now Pascal was really aimed at teaching and so I used Pascal in educational context and I as I became a professional programmer in the 1980s I was using a bunch of stuff Assembly Language Cobalt little bit Unix and see here it wasn’t like by the early 80s Unix was everywhere at least not in the professional world because the PC Revolution was happening so we had Doss we had early Windows versions I used things like dbas and turbo Pascal um I taught classes of the IBM 360 and I taught Assembly Language I use the deck vax and I use the VMS not Unix operating system in Fortran and I also then taught in the mid 80s on AT&T West I think it’s called Uh a g8t 3B 2 I taught Unix I taught C and I taught Fortran and so even though we can trace back to like 1978 is the moment that everything changed it’s not like the market changed the the thing that happened in the 1990s though is that all these older computers all and the older computers vendors like burough and Unisys and IBM and cray and control data um as microprocessor speeds increased all these little companies would create Unix workstations that were faster and faster and faster and because they could build new hardware that was fast and then grab the Unix operating system um and make their operating system work on their new hardware it allowed for some amazing Innovation so I was using Sun ardan Stellar these are all gone now IBM RS 6000 convex C2 2400 I had a next on my desk I used C but TCP IP Windows HTTP the web you know and Windows and Mac OS were all kind of in the mix but the Innovation was really happening most rapidly in the Unix space but by the 2000s everything that I touched really had some aspect I’m not a Windows person so everything I touched had some aspect of Unix in it Mac OS still has Unix in Linux and my languages were sort of narrowing back down to Java PHP and JavaScript and then in 2010s right Linux Mac OS python PHP JavaScript so things really have settled into a world that my own software development where I’m pretty much using Unix like systems all the time and C based or C derived languages because python Java p HP and JavaScript are all based on C and that’s why it’s so important to understand C I’m not writing c as a profession professional in any way but I am using all my C knowledge every single day and so that’s a a sort of a picture of me in my office that’s an IBM PS2 in my office I I was registering in 1989 I was registering with Punch Cards when I first started I was using a line printer and punch cards and so so there there’s my history now I think it’s important to acknowledge that as I’ve shown you all these history documents and the videos and the oral histories that I’ve done is there is a preponderance of old white males in here and I I think that it is important to talk a bit about that and why that is perhaps and so I would encourage you to take a look at an article it’s so article it’s actually a you can listen to it about what happened to computer science the title of the article is when women stop coding yeah all the way up to 1980 computer science was just another field and then it you know kept going up to sort of 1985 but then it went down and so you know all these other fields have a pretty good uh gender mix and the computer science uh does not have a gender and so I would encourage you to listen to this article uh another another area that you can learn something about um the diversity in computer science is uh this book by Jane margalis called unlocking the clubhouse the essence of the book is really talking about how uh social pressure advertising pressure in the early 80s uh made it seem as though Computing was a guy thing and in particular uh it made it so that uh young men even in high school would go fiddle around with computers as a hobby and by the time they got to college they were pretty skilled and if you weren’t skilled the college classes were designed for people who already knew what programming was and if you were a a woman and you hadn’t played with computers in 1980 when you were like 14 years old you’d came to college at a distinct disadvantage and this is what led to this falloff where colleges tended to teach to programmers who already knew how to program and uh that really meant that that the hobbyists people who are in their youth before they went to college and played with programming as a hobby uh had a tremendous Advantage now Jane did her work in the 80s late 80s and 90s um I myself I’m older than that and I think that to some degree this notion of the social pressure uh that said that uh Computing was really for young men and not young women uh it it’s actually as much a symptom as it is the cause because I grew up in a time in the mid ’70s where there were women everywhere um and this is a person who’s who who who had a really large impact in my life her name is Helen Spence she was a professor at Michigan State University and I show you a URL to look at her oral history um she taught me operating systems so in 1977 or 1978 I don’t remember when Helen was my operating systems teacher uh the interesting thing about how Helen taught operating systems was she made it fun I it was really fun uh I encountered my first Auto grader in Helen’s class she had made a piece of software that she called the HMS 5050 which itself is both Helen Spence and uh I think it’s her majesty ship at the same time and what she did was she built a operating system simulator in Fortran and and our job as uh taking the class was to build functions and sub routines that would implement the tasks and the algorithms that operating systems need to do so you’d run your program over and over and over again until you had written a successful operating system and she wrote a autog grader that would do things to your program and then measure whether or not you knew how to build an operating system it was just a natural thing to have females as fast faculty members uh you know and and it was just a there was a lot more fun in the field um and I I have my own theories that I think complement uh Jane’s theories as well but I’ll leave it here that that’s a TED Talk for another day as to uh gender and Computing right now I’m just acknowledging it and giving you some resources to uh to to read and U and reach your own conclusions if you look at everything I’ve done since 2012 in the free online education in Muk space you’ll notice that every course I’ve ever created has the words for everybody and that’s not just a marketing thing that’s because it’s my philosophy if you’ve taken some of my classes like python for everybody or jangle for everybody web applications for everybody postgress for everybody and now see programming for everybody I try to build a course where I spend time thinking about how not to create the clubhouse that Jane talks about and that is I want you in the club I want everybody in the club I don’t want it just to be a club for the super Geniuses and so part of why I’m building an entire curriculum is to perhaps just make a new club and that is programming for everybody club and I think once you become a great programmer I think that’s a good time to study computer science and so perhaps after we teach everybody programming then we can teach everybody computer science but again that’s a TED Talk talk for another day so on to the course C programming for everybody I’ll just say that c is the most important programming language you’re going to ever learn it should never be the first programming language taught to any students you will likely never write a line of C in a professional context in your career I’m not teaching you C so that you can go be a professional C programmer I’m teaching you C so you can be a professional Java programmer really but if you learn see at the right time in your Learning Journey it’s a necessary step on the path to becoming a master programmer but it’s important step because I can’t teach you Java if I hadn’t already taught you C I have to explain how Java Works in terms of what you’re going to learn in this class so this class is not just like get a c certificate and go make lots of money CU I don’t think that this certificate’s going to make you a lot of money but I do think this certificate is going to unlock the future of you as a programmer so please be patient with this material do not rush it’s an online class I guarantee that you can search for solutions to every programming exercise that I create I don’t change them that much so the solutions are out there and if your goal is to game it and just search for solutions to programming go ahead finish the class congratulations but you you have just taken the opportunity to learn from yourself right you didn’t you didn’t trick me I didn’t lose anything by you searching for and just pasting in solutions to programs each exercise from beginning to end is trying to take you a little tiny step further down your understanding and the easy exercises in the beginning even if I have a bunch of them they’re there to prepare and strengthen rengen you for something much more challenging in the course if you start pasting in Solutions in the beginning of the course you have no chance in the end of the course and you’re just going to be pasting in Solutions and when you do that you’ll have only wasted your time so I look forward to you taking the rest of this course I of course I look forward to you telling me if uh if I’m right in my instinct about how important this is for you uh especially after you take a few more classes and then uh find your way to being a professional [Music] that b abbs bunch of smart people I call it 1,200 PhD level people in Murray Hill in basically one giant building and so that’s a lot lot of people rubbing up against each and they’re all doing technical kinds of things and and the environment did not tell people what to do it was go do your thing and once a year one side of one piece of paper tell us what you did and that’ll determine how much money you get next year but it was a very long cycle the one extra thing is that it was a problem Rich environment and so there were things that you could work on and there was this I think very gentle gravitational drift towards doing something that somebody else might care about now lots of people you know who cares what other people think I’m going to do my stuff but I think most people got some reward you know psychic reward from I do something I give it to you and you say that was great and then you say but and you tell me all the things that aren’t yet great but but that kind of thing was very common at the labs because AT&T at that time basically supplied telephone service to most of the United States million people all kinds of in problems in and around Communications and so no matter what you were interested in there’ be some part of AT&T that could probably make use of that so that was part of it but then there was the external world as well the research Community Bill Labs was just part of the academic research community so they’re both outlets and the labs was perfectly happy to have people do either and so all of that I think worked out really very well um and it helped to have stable funding because basically at that point if you made a a longdistance phone call in the United States remember the concept of longdistance right if you made one of those calls a tiny slice of the revenue of that finance bill Labs with the charter of make the service better and don’t we won’t worry about the details of how you do that so at the time there was a lot of interest in programming languages this all came out of the multics experience right where where people at Bel labs and of course the folks at MIT were had realized that writing things in a highle language made sense and then the question is what’s what’s the high level language and they started with pl1 which in the abstract sounded like a good idea and in reality was a horrible idea because it was a horrible language and and so Martin Richards from uh Cambridge University of Cambridge um had this language called bcpl and he had spent if I understand it correctly a sabatical year at MIT planted the language in some sense and it was much simpler much cleaner much better suited to system programming kinds of things than any version of pl1 would have been and so the people at Bell Labs Ken Thompson Dennis Richie and so on had gotten some experience with high level languages as suitable for writing lots of different things bcpl wasn’t a suitable thing for modern machines because it was typeless and newer machines clearly were coming on stream that would have types like btes and integers and maybe bigger things and so so at some point Ken did a lot of experimenting this is Ken Thomas did a lot of experimenting with simpler versions even of bcpl particular one called B which was an interpreted language no compiler um and that was again expressive enough that people started to like it and that’s sort of where I started in on this I mean I’d written bits of pl1 it was awful I’d written Fortran better um but the B was sort of nicer to use but it was still typeless and an interpreter as well so it wouldn’t be terribly efficient um but with the pdp1 in the offing and I don’t remember the exact timing here U it was clear that a version of something that was felt sort of like B but which had some mechanism to include types so that you could talk about characters or integers was going to be the way to go and that’s where Dennis picked up and started developing the C language and the compiler to go with it and so on portability was very much on people’s minds at that time because although the core Unix work was done on the pdp1 there were other machines at the time that were you know in the same equivalence class uh inata had a couple 732 832 numbers like that and I think there were probably HP machines as well and ETA um and the other thing that was in some ways harder was that there was the big big Mainframe kind of computerss that were used by the local computer center and these were fundamentally stripped down versions of the multic machines there were g635 kind of things and so those were big clunky word oriented machines they were you know effect IBM 794 is cleaned up a bit and getting something that would compile sensibly for those machines that really didn’t have characters in a language which had become what it was so it could manipulate characters I think there was a bit of a strain there but that portability how do you get the same language to work on different computers and Dennis’s original compiler really was targeted at the pdp1 and Steve Johnson came along with the portable C compiler which basically separated the front end okay let’s recognize the language let’s build some intermediate structure and then let’s generate code for different kinds of machines I had written a tutorial on B because you know I thought it was interesting maybe I can tell other people how to use it um and so when C started to be used and I became somewhat better at using it then I basically repurposed the B tutorial brought it forward in in and made the c tutorial out of it uh and so I used C4 all this essentially all the software that I was writing at that time and you know kind of liked it it was good it was a nice match for the way people think about Computing I think but also a very nice match for the actual Hardware of the time you could imagine what the compiler was doing all of it was clear so efficient expressive and you know nicely matched to everything around it um and then somewhere in probably 1977 earlyish um I coerced Dennis into writing a book about it first edition came out in 78 and at that point the language was pretty reasonable the book I think it was right on the cusp of we structures were fully part of the language or not a bit of overhang there and I don’t remember but I think probably they were not quite but awful close and since Dennis was doing both compiler and book I it was at least a consistent Viewpoint question can you pick up a structure as a unit and pass it around or do you have to do something special um so I think but that’s a milestone and then the next one is probably the 1988 book and the development of the ANC C standard the first stand which is essentially again about the same time um and so I think those are the ways I measured and at that point call it 1988 give or take just before you encountered it um C was probably just fine for anything you might reasonably want to do and this is probably heresy or something but I don’t think that the changes in evolution since then have bought enough in some sense [Music] welcome to C programming for everybody my name is Charles sance and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter zero introduction C is a general purpose programming language it has been closely associated with the Unix System since it was developed on that system and since Unix and its software are written in C the language however is not tied to any one operating system or machine and although it has been called a system programming language because it is useful for writing operating systems it has been used equally well to write major numerical text processing and database programs C is a relatively low-level language this characterization is not perjorative it simply means that c deals with the same sort of objects that most computers do namely characters numbers and addresses these may be be combined and moved about with the usual arithmetic and logical operators implemented by actual machines C provides no operations to deal directly with composite objects such as character strings sets lists or arrays considered as a whole there is no analog for example of the pl1 operations which manipulate an entire array or string the language does not define any storage allocation facility other than static definition and the stack discipline provided by the local variables of functions there is no Heap or Garbage Collection like that provided by alol 68 finally C itself Prov provides no input output facilities there are no read or write statements and no wired INF file access methods all of these higher level mechanisms must be provided by explicitly called functions I would note that the lack of a heap or Garbage Collection feature in C is both one of the great strengths of the language and at the same time is likely the reason that the average programmer will never develop or maintain a major C application during their career C provides a simple feature using Malo and free functions that allow a programmer to request a certain amount of memory be allocated dynamically use the memory and then return the memory to the C runtime library for reuse for example to convert a jpeg image to a PNG image our application will read the jpeg data into memory then convert the image into a PNG image in memory and then write the PNG data out to a file we don’t know how large the images will be in ADV advance so we request whatever size we need from C and then give it back when we’re done the term Heap refers to the memory that c manages on our behalf when we need to borrow a bit of memory and give it back later there are a couple of issues with a simple Heap implementation first if we forget to call free when we are done with a memory we have created a memory leak and our program will eventually run out of memory and abort C places the onus of giving back any dynamically allocated memory on the programmer modern languages like Java JavaScript and python keep track of when we stop using dynamic memory using a dynamic memory layer that can automatically reclaim the memory the more difficult problem is after a series of calls to malakin free the Heap space becomes fragmented and some cleanup is needed this cleanup is called garbage collection efficient memory allocation and garbage collection has been the subject of Decades of computer science research the Java language has built an number of increasingly effective garbage collection approaches over the years kernigan and Richie in one simple paragraph Define most of the problem as out of scope for the ca language which makes it a bit challenging for us to make good use of dynamic memory allocation in C but when we do it properly it performs very well if you are currently using a language like Java python or PHP every time you create a new string through concatenation without thinking about memory allocation remember to appreciate the Decades of work by computer scientists that made it easy for you kernigan and Richie knew that garbage collection was difficult so they left it out of the C language and put it into a runtime Library back to chapter zero similarly C offers only straightforward singlethread control flow constructions tests Loops grouping and subprograms but not multi-programming parallel operations synchronization or code routines though the absence of some of these features may seem like a grave deficiency you mean I have to call a function to compare two character strings keeping the language down to modest Dimensions has brought real benefits since C is relatively small it can be described in a small space and learned quickly a compiler for C can be simple and compact compilers are also easily written using current technology one can expect to prepare a compiler for a new machine in a couple of months and to find that 80% of the code of a new compiler is common with existing ones this provides a high degree of language Mobility because the data types and control structures provided by C are supported directly by most existing computers the runtime Library required to implement self-contained programs is Tiny on the pdp1 for example sample it contains only the routines to do 32-bit multiplication and division and to perform sub routine entry and exit sequences of course each implementation provides a comprehensible compatible library of functions to carry out input output string handling and storage allocation operations but since they are only called explicitly they can be avoided if required and they can also be written portably in C itself again because the language reflects the capabilities of current computers C programs tend to be efficient enough that there is no compulsion to write Assembly Language instead the most obvious example of this is the Unix operating system itself which is written almost entirely in C of 13,000 lines of system code only about 800 lines at the very lowest level are an assembler in addition essentially all of the Unix application software is written in C the vast majority of Unix users including one of the authors of this book do not even know the pdp1 Assembly Language I would note that in this preface the authors are carefully explaining the fact that many of the wellestablished programming languages of the 1960s and 1970s like Fortran Cobalt Pascal alol and pl1 were solving many of the use cases that were needed by us programmers by adding syntax to the languages the creators of CN Unix for advocating for a more minimal set of programming language constructs and more Reliance on calling function in provided runtime libraries to meet programmer use cases it may have seemed a strange approach for experienced programmers in the 1980s but over time it has allowed C to expand to meet a very wide range of programmer needs without requiring major revisions to the core language or compiler back to chapter zero although C matches the capability of many computers it is independent of any particular machine architecture and so with a little care it is easy to write portable programs that is programs which can be run without change on a variety of Hardware it is now routine in our environment that software developed on Unix is transported to local Honeywell IBM and inata systems in fact the C compilers and runtime support on these four machines are much more compatible than the supposedly an Standard Version of Fortran the Unix operating system itself now runs on both the pdp11 and the interdata 832 outside of programs which are necessarily somewhat machine dependent like the compiler assembler and debugger software written in C is identical on both machines within the operating system itself the 7,000 lines of code outside of the Assembly Language support and the io device handlers is about 95% identical as a note note before Unix and C if you were running the vendor operating system and writing in the best language for systems like the pdp11 and in dat 732 the user experience was completely different today we take for granted that we expect to be able to download the same application for Windows Mac OS or a Linux system even in the 1970s those that were using Unix andc could write code once and move it between two Hardware platforms and expect that it would work with no or relatively few changes back to chapter zero for programmers familiar with other language it may prove helpful to mention a few historical Technical and philosophical aspects of C for contrast and comparison many of the most important ideas of C stem from the considerably older but still quite vital language bcpl developed by Martin Richards the influence of bcpl on C proceeded indirectly through the language B which was written by Ken Thompson in 1970 for the first Unix system on the PDP 7 although it shares several characteristic features with bcpl C is in no sense a dialect of it bcpl and B are typeless language the only data type is the machine word and access to other kinds of objects is by special operators or function calls in C the fundamental data objects are characters integers of several sizes and floating Point numbers in addition there is a hierarchy of derived data types created with pointers arrays structures unions and functions C provides the fundamental control constructions required for well-structured programs statement grouping decision- making with if looping with termination test at the top using for and while or at the bottom using do and selecting one of a set of possible cases switch all of these were provided in bcpl as well though with somewhat different syntax that language anticipated the Vogue for structured programming by several years C provides pointers in the ability to do address arithmetic the arguments to functions are passed by copying the value of an argument and is impossible for the called function to change the actual argument in the caller when it is desired to achieve call by reference a pointer may be passed explicitly and the function may change the object to which the pointer points array names are passed as the location of the array origin so array arguments are effectively called by reference any function can be called recursively and its local variables are typically automatic or created a new with each invocation function definitions may not be nested but variables may be be declared in a block structured fashion the functions of a c program may be compiled separately variables may be internal to a function external but known only within a single source file or complet completely Global internal variables may be automatic or static automatic variables may be placed in registers for increased efficiency but the register declaration is only a hint to the compiler and does not refer to specific machine registers C is not a strongly typed language in the sense of Pascal or algo 68 it is relatively permissive about data conversion although it will not automatically convert data types with the wild abandon of pl1 existing compilers provide no runtime checking of array subscripts or argument types etc for those situations where strong type checking is desirable a separate version of the compiler is used this program is called lint apparently because it picks up bits of fluff from one’s program lint does not generate code but instead applies a very strict check as to many aspects of the program as can be verified at compile and load time it detects type mismatches inconsistent argument use unused or apparently uninitialized variables potential portability difficulties and the like programs which pass unscathed through lint enjoy with few exceptions freedom from type errors about as complete as do for example algol 68 programs we will mention other lint capabilities as the occasion arises I would note that separately checking for things that might be wrong into the lint program keeps the C compiler simple and easy to port to a new computer the lint program was naturally a very portable text processing application well there’s some overlap between a lint program and a compiler over time there’s quite distinct research and expertise in how to lint versus how to compile modern lint programs look at programs in far more detail than most compilers separating concerns of lint and the C compiler also allow ow lint programs to use more memory and take more time to execute than compilers since the typical developer might use the compiler many times per day and run lint less often it was nice for the compiler to run quickly and make light use of Computer Resources we call this idea of building two smaller complimentary programs that each specialize in one task separation of concerns and it is an important principle in computer science by keeping each component simple and focused we can more easily build test and verify each component Unix and C showed the benefits of taking many small components approach to solve an overall set of problems back to chapter zero finally C like any other language has its blemishes some of the operators have the wrong precedence some of the syntax could be better there are several versions of the language extent differing in minor ways nonetheless has proven to be an extremely effective and expressive language for a wide variety of programming applications the rest of this book is organized as follows chapter one is a tutorial introduction to the central part of C the purpose is to get the reader started as quickly as possible since we believe strongly that the only way to learn a new language is to write programs in it this tutorial does assume a working knowledge of the basic elements of programming there is no explanation of computers of compilation nor the meaning of an expression like n equals n plus one although we have tried where possible to show useful programming techniques the book is not intended to be a reference work on data structures and algorithms when forced to make a choice we have concentrated on the language chapters 2 through six discuss the various aspects of C in more detail and rather more formally than does chapter 1 although the emphasis is still on working examples of complete useful programs rather than isolated fragments chapter 2 deals with da basic data types operators and expressions and chapter three treats control flow if else while for ETC chapter four covers functions and program structure external variables scope RS and so on chapter five discusses pointers and address arithmetic and chapter six contains the details of structures and unions chapter 7 describes the standard CIO Library which provides a common interface to the operating system this IO library is supported on all machines that support C so programs which use it for input output and other system functions can be moved from one system to another essentially without Change chapter 8 describes the interface between C programs and the Unix operating system concentrating on input output the file system and portability although some of this chapter is UNIX specific programmers who are not using Unix system should still find useful material here including some insight on how one version of the standard library is implemented and suggestions on achieving portable code appendix a contains the C reference manual this is the official statement of the syntax and semantics of c and except for one owns compiler the final Arbiter of any ambiguities and omissions from earlier chapters since C is an evolving language that exists on a variety of systems some of the material in this book may not correspond to the current state of developments for a particular system we have tried to steer clear of such problems and warn of potential difficulties with in doubt however we have chosen generally to describe the pdp11 Unix System since that is the environment of the majority of C programmers appendix a also describes implementation differences on the major C systems this recording of chapter zero of the 1978 C programming book written by Brian kernigan and Dennis Richie is part of my C programming for everybody course where I teach C from a historical perspective my name is Charles sance and I’m the teacher of the [Music] course hello and welcome to C programming for everybody I’m Charles Severance and I’m your professor for this course in this lecture we are going to do a very rapid translation from python to C so as I’ve shown you in our earlier lecture she C is kind of like the mother tongue of advanced programming languages python itself was written and still is written in C and python is deeply influenced by C even though the syntax looks very different right um and if you’ve taken all my other classes you will have seen PHP you’ll have seen uh JavaScript and to some degree even see SS takes some of its inspiration from uh the syntax of c and so I’m not intending for this to be your first programming class I intend for you to be an expert in Python well not expert but certainly I’m not going to tell you what a if statement is I’m not going to tell you what a variable is I’m going to just tell you how to use variables in C and I’m going to tell you how to use if statements in C and so that’s why a solid foundation of python not wizard but solid foundation of python is essential and frankly I would rather that you learned a bit of PHP some JavaScript and all this other stuff before you come I see that c I think a C programming is not the first class that you should take but instead it is your gateway to the advanced work that you’re going to do and so I think C is very very important I just don’t think it’s your first programming class so you might think Python and C are not very different although python is written in C python has Whit space that is part of its syntax c whes space is ignored I I do like C better in that python is very object Orient if you read an article I wrote on quora you’ll see I I rank all my languages and I I put Javascript and python is the most object Orient languages Java is a little less objectoriented and C is like the least unob oriented C is not objectoriented at all python has wonderfully convenient data structures in the form of list and dictionaries PHP has arrays and um JavaScript has objects the all beautiful beautiful stuff Fair object R structures Python A C does not it’s fast it’s efficient it’s powerful it’s got strs and pointers and by goly you will use them and they’re not they’re not convenient but they are scorchingly fast and by the time we’re done with all this we will see how to use stru and pointers to build lists and dictionaries and that really is we will follow down the path of building python so you’ll see a a common three theme throughout this class of how python achieves what it’s trying to achieve by writing C python has automatic memory management to the point where if you’ve been a python programmer a PHP programmer a Java programmer or JavaScript programmer you probably don’t even know what memory management is well you’re going to by the end of this class and by the end of this class you’re going to be able to see how python automates memory management for you right python is written in the 80s and C was written in the 70s in in many ways I see python as a convenience layer that was built on top of C just C programmers look at C it’s like it’s great it’s great it’s great if we just had this layer of easiness on top of it then things would be better and so um that’s what python is now python also introduced things like quite different syntax to make it uh indentation you know required because they thought it was a good idea so we we could argue one way or the other I mean I I’ll tell you when I’m writing a million lines of code I white white space is not to me a good way to have syntax so we’re going to look at C through a python lens and we’re going to learn by example now most of the time I tell you you um don’t copy and paste don’t cheat don’t look for Solutions this lecture is the exception to that rule I’ve written this lecture as a Rosetta Stone it’s just a little tiny bit of connection to what you already know in Python to what you’re going to do in C and so I’m not intending at this point for you to build your own stuff based on reading a book I actually just want you and if I give you assignments to do these particular things I really do want you to just watch this lecture grab the PowerPoint and feel free to cut and paste from my PowerPoint into my assignments because this is I don’t know if you’ve ever seen it where the mama tiger is teaching a baby tiger how to hunt and the mama tiger goes out and gets a something or other and brings it back and puts it near the baby tiger and lets the baby tiger Chase it well that’s kind of what I’m doing I’m the mama tiger and I’m giving you some C code and I’m putting it right in front of you and then I want you to take that c code and I want you to run it and play with it and understand it so I’m not expecting in this lecture that you’re going to derive it that you’re going to sort of somehow read the textbook look at a problem and solve the problem that’s later that is that’s absolutely later so this is the beginning this is trying to make connections conceptual connections to the complex knowledge you have about python to little places where you can hook things on to in see and so the idea is to go through it quickly so I do assigned some of these as programming exercises it’s intended for me my intent is that you’ll watch the lectures and just work on the code at the same time I’m not trying to test what you learned I really want you to watch and listen and type that’s how we learn right you could cut and paste it or you could type it and you could type it one piece at a time and the mere Act of you typing even though you’re just looking at a slide and typing it in at this point in the course that is the learning objective is this lecture now that whole rule of just typing code in that you’re looking at some from someone else don’t don’t do that forever later I want you to do things like synthesize what you learn in the book synthesize it struggle through it and figure things out and do the assignment yourself so don’t go searching if you want to gain maximum benefit if you’re just in the biggest hurry of all just go ahead and search but please if you want benefit from this class don’t cheat yourself there’s a lot of similarities that I’m not going to cover you can go read the textbook like the plus minus asterisk slash and percent hey probably when you were learning python you’re like whoa what’s this percent thing and why did they choose percent the answer is that’s what C chose and so modulo is just percent in all these other languages because they flipped a coin in C and decided percent was modulo the comparison operators the assignment operators is equal sign which means that the the equality operators got to be double equals exclamation equals less than greater than less than equal all that stuff’s the same variable naming rules the same you start with a letter underscore and then numbers letters and underscores and case matters both languages while Loops the concept of break and continue which you know some people get all worried about I love break and continue if you’ve taken my other courses and you’ll see when we talk about it in see I love breaking continu in C2 maybe because that’s I learned C first and I I just love breaking and you okay enough about that I love breaking okay enough about that uh constants uh about the only thing that’s really different in constants is like strings and characters and booleans and strings and characters are like the biggest thing in the beginning both have int and float and Char and bite now again bite and string and Char and not the same thing C has no stir class which is the string class list or dictionary and python has no concept of struct or double and in a sense you could think of um Python’s float is really sees double right and so by the time python was written the notion of shorter floating Point numbers is less less critical there are some differences a lot of this I think was in the design of python trying to be a little less obtuse and a little more convenient uh for me it’s annoying I write the C versions of The Operators like and double Amper sand not is exclamation point we call that bang or double vertical bar and in Python they’re all convenient we use the word A and D but okay whatever um so there in C we have a for Loop but it’s it’s an indeterminant Loop if you remember the definition from python for everybody in determined Loop is one that you have to examine to see if it’s got infinite Loop whereas in the in Python if you say 4X in some list you’re going to go through the whole list it’s a determinant Loop it only runs until that list is exhausted C does not have such a thing right it just every Loop has got a condition to finish it now we write Loops like 4 I equal 1 to 100 or 0 to 99 we write them and you can look at them and say yeah that’s not an infinite loop it’s just technically you have to look at the Loop to make sure that you haven’t inadvertently made it infinit Loop there’s no predefined true and false I find this really like wow couldn’t they got eoff capital eof for IND defil Andy none and null are similar Concepts but quite different none in Python is its own type null is the number zero that’s cast to be a pointer to nothing and so none is like specially marked empty null is a zero we’ll get there we’ll get there um strings and character arrays for a while you can kind of pretend that character arays in C are mostly like strings like when you throw a constant and you pass it to a function they kind of look the same but like once we start working with them you’ll see they’re very very different and that’s that’s kind of the first fun part of the first part of this class is like strings are now your responsibility there’s there’s no help right um and C of course has no list or dictionary and python has no concept of like tightly packed data which is what strs are and uh and doubles and floats so here we go let’s get started let’s see if my pen is working here yeah so what we’re going to see is on one side we’re going to see some Python and other side we’re going to see some C and so this is just talking about output this is Python 3 of course and so we have a print function and it takes any number of parameters one of the things you’ll notice about the print function is like hello space World well that’s part of this constant but answer comma 42 puts a little space in between answer and 42 and the output so if you want to suppress that kind of automatic addition of spacing you have to maybe concatenate things together or or some other trick um the print statement automatically knows if it’s got a string or a float or an integer and it just does things kind of all automatically and so if you want to see something usually you just print it okay so let’s take a look at the uh compare and contrast so first off you pretty much you’re going to have to start every one of your C programs with pound includes standard i.h comments are different python comments are pound signed to the end of the line uh C comments are SL star across multiple lines to Star slash so everything in between there that can be multiple lines later versions of C also add the What’s called the C++ style of comments and JavaScript uses those as comments which is the double slash so when you’re writing you probably can use double slash in the C that you’re using but I’m kind of being kind of strict and so I’m pretending I’m in 1978 so I’m not using that uh C++ style comment again that came from C++ it didn’t come from JavaScript some of you have taken python classes where there’s this like uncore uncore Main and it calls this thing and it makes a function and calls it and indents everything one Tab and they’re really imitating C in that respect and I think I don’t like that style I think those people who do that in Python I’m sure they have a good reason but I think they’re just like wishing it was C because the definition of c is code a program starts it when it starts running it searches for a function named Main and later we’ll see that this function can actually have arguments and it returns an integer as to the success or failure so really main is a function and so that first line there int main open print Clos print open curly brace that is the definition of a function that happens to be named Main and then we have print F now again if we if you I don’t know if you learned python 2 but in Python 2 there was a print statement in Python 3 there is a print function and so here we’re using a Python 3 print function and um C never did the statement so C decided as we’ll talk about later to not have any input output any reading or writing in the language itself but instead put them in standard libraries and that’s what this pound includes stdio.h is saying okay I’m going to do some IO here input output here and so include the C input output Library okay and so print F takes as its first parameter a string the other thing you see in C is you can’t use single quotes for long strings later we’ll see single quotes but in C there’s a major difference between single quotes and double quotes single single quotes are single characters and double quotes are a character array not a string character array the other thing is things like the end of line so in Python the new line is added implicitly in C you have to add it explicitly and so that’s basically saying print hello world and then go to the beginning of the next line now this first parameter is actually not just a string it’s a string with embedded format codes that start with percent percent D says there is a corresponding integer number and I want you to conver convert that into a string and print it out I guess I should probably just re erase some of this so it says answer and then a number and so you can have more than one of these things and then they match so that says there’s an integer as another parameter so you can have one parameter two parameters Etc so for Beyond one parameter like in this one X per. 1f that corresponds to this first flow voting Point number and this percent D corresponds to the integer one okay so you have these percent things now we will learn that these percent things have um a language unto themselves in chapter 8 and uh this is basically saying please print me a floating Point number with only one digit of precision right so percent. onef says print a floating Point number and then if we want a string it’s percent s but this really Sarah here double quote Sarah double quote is a character array and it’s actually not five characters but six because there is always a terminating zero character at the end and so percent s says the parameter needs to be a character array and properly terminated by an end of string indicator which is a zero character so so that’s this right it’s pretty simple but I we got a lot of stuff to cover here and this is the Rosetta Stone it’s more complex than C you have you have more control you’re doing things the more explicitly um and and it’s not doing it for you automatically so let’s take a look at a simple number input and you’ll see that some of these things come from my uh my python for everybody class this is the famous US floor to European floor um elevator can inverter so we we’re going to print something out now one thing about C is that you’ve got to declare all your variables python is sort of a typeless language it’s increasingly getting more typy um but it’s but it’s a typeless language so we have to declare that we’re going to have two variables USF and euf and they’re going to be integers we print the statement about the diff only difference there is we have to put the backs slash n in otherwise it won’t automatically do that and then we have this IO routine again coming from stdio.h called scanf and its first parameter much like printf is actually a formatting string and what this says is this says read four a lot little ways find me a number as long as it seems like a number keep reading and turn that into an integer and give it back to me and so it actually has got some scanning built into it and it reads until it finds a non-digit and then stops and says that’s the number so it turns out in C the way you could type a lot of different things here we won’t go into that too much detail we’ll hold that until chapter 8 but the the idea is it doesn’t work exactly the same although this input in Python reads a line now again I got this little note here if you recall if you recall in Python 2 there was an input and a raw input and raw input was what read a line which I tended to use when I was teaching python 2 input was a weird thing that had some kind of scanning thing going on and it scanned and threw stuff away and it grabbed something it might go from to multiple lines and it was totally inconsistent and it was worse than scan F so I was really glad when they just got rid of it in Python 3 and then they changed the name what used to be python 2’s raw input became input in Python 3 so the old input from python 2 is kind of like homage to scan F in C but it’s not exactly the same and the reason it’s not the same is the input in Python 2 was was deriving the type of the data from what it encountered so it might give you back a string it might give you back a floating Point might go like oh that’s dangerous right and and that’s because the type of USF in Python here is determined it it it you can it’s not preclarus and by the way both the input and the scan F we can write stuff that confuses it badly and causes it to blow up but we’re not we’re not worrying too much about that right now we’re just kind of getting the basics done so we have a we read an integer we subtract one we print it out right we read an integer oh I forgot to say this Amper sand call by reference and call by value so in Python this is coming back as a function return so it’s really easy to assign it into USF whereas in C we put these parameters on the scan F call and we have to say oh and by the way I want you to change it because ultimately if we don’t put Ampersand on it’s what’s called call by value not call by reference and ampers USF is a way to tell C to actually give it the address of the USF variable rather than the value in the USF variable and in that is a the whole chapter that we will cover like uh I think four and five will be all about the Amper sand and call by reference call by I’m we we’re way ahead because I don’t think chapters one through four would all they ever do is mention call by reference and then say Oh that’s in the future so I’m going to just say oh that’s in the future I will tell you that that Amper sand is really important and the code doesn’t work without it because it is the way that c does call by reference for simple variables like integers and floats as you’re going to see on the next slide there’s always an exception string input okay so here we’re going to this H my hello Sarah thing right we say enter your name and then we say name input now the beauty is here in Python is input gives us a whole line okay and then we just print hello name and you’ll notice that there’s like this little space that comes out automatically so switching over to C we have our included the library we have the in main which is the and then we have to precare a character array there is no like make it a string If This Were python we could say hey let’s make a string but you can’t and what’s even more important is you got to tell it how long which means that we could type too much stuff in here and blow our program up and that’s one of the difficulties of C is the fact that arrays including character arrays have fixed length then they don’t Auto extend there is no Auto there is no DOA pend in C you can’t like say oh name DOA pend you can’t do it python it’s an object it’s not an actual array python it’s an object name is a string object here name is a character array with 100 elements and if you put 20 in you’ll be fine if you put 80 in you’ll be fine if you put 101 in it’s going to blow up ah well that’s okay that’s why C is fast we’ll get to all that we’ll get to all that so we print out a prompt and we say scan F and we say in this case percent s give me a string and you can put a limit on it so we’re saying look only read up to 100 characters and you’ll notice there is no Amper sand on name and that is because name is an array and so when you put name in with no square brackets no index operator then you’re passing the address of the beginning of the array and so that is in a sense an Amper sand that is the location of the beginning of a 100 character array we’re going to scan up to 100 characters into it and so it really is roughly equivalent to the input and then we just again say hello percent s and then name is the corresponding thing and so it says hello Sarah now a lot of what we did in the python for everybody is read whole lines of input and we tended to use string parsing of those lines like we would trim the stuff off the end and then we’d split it and all these things there’s there’s no good split see so we won’t be doing too much of that but it does help to understand how to read a whole line of input so now we’re going to read something that doesn’t have it it has lots of spaces we’re going to read the whole line and we’re just going to Echo the whole line right enter line read the Line Print the line so now we’re going to have again we have to declare how big of a string we’re willing to take Char line with a thousand characters in it the prompt by now should be pretty easy and we have a really weird look percent square bracket carrot back sln close square bracket 1000s well if you took python for everybody and you remember chapter 11 regular Expressions that should look familiar to you open bracket carrot back sln close bracket says match any character that’s not a new line so that says scan up to the end of a line or until you hit a th characters that’s what percent open square bracket carrot back sln close square bracket 1000s means as the first parameter to scan F read a whole line but stop at 100 stop at a thousand characters and then of course line is just the parameter and then we print that thing out okay and so a lot of C programmers probably never written this particular line of code but it gives you a sense that um there’s a lot of of sort of programmability and things like regular Expressions that we you know that python had well those are kind of an old concept those are seven 1970s Concepts this C language had that Concept in it in 1970 there’s another way that’s a little safer to do this and these are the exact same thing where this command fgs so fgs says put it into the up to a thousand characters looking for a new line and reading from what’s called standard input so in C there are three basic files one is the standard input which usually is read through to up to eof standard output which is where print f is going and then there’s a thing called standard error which is where you send errror messages that you don’t just go want to go to the output so the input and the output like if you’re going to make a program to do uppercase you would read your input you would uppercase it and then send it out but if for example um um you encountered a character that you didn’t want to copy and you wanted to send an airor says I’m I’m not going to copy you wouldn’t just send it to standard output you actually send it to standard erir when you’re running um just on a terminal like in your command line standard input is your keyboard standard output is your screen and standard error is your screen so you can see both the error messages and the output of the program but if you’re running sort of with redirecting input and output you do tend to still see the error message on your screen and it doesn’t end up hidden in some stand standard output but in this case we’re using fgs which is part of the standard library and we are saying read this from standard input now you’ll see in a second when we read a file fgs can read a file and that third parameter is the file handle but there are three predefined file Handles in C programs standard in standard out and standard err they’re all named stdin that’s their name their predefined constants in the C the C standard SDI Doh Library okay so now we’re going to read a file we do this a lot in Python we go get a file handle it reads it this might fail of course if the file doesn’t exist then we got add a a nice determinant Loop remember we talk about iner loops and this for in it’s so Python and it’s so awesome and it’s like so expressive I love it I miss it okay and then uh line. strip which takes the new line off um and so that’s going to read you know just reads reads the little file writes it out so we uh we have to create a variable we’ll call it a th thousand characters we now we are and and in Python we could have any length of characters in our file and it would work but in C now we’re going to have to actually say we can only handle up to a th characters because we’ve declared the line that we’re going to use the line variable we’re going to read this in has a thousand there is a equivalent to the handle file is a type it’s it’s defined in stdio.h starand which means it’s a pointer to a file object and a hand equals fopen romeo. text R so that’s two character arrays romeo. txt and R and actually the open in Python is inspired by the F open in um in in C and that’s because again when they were writing python they were writing it in C why don’t we take an open and all the did was made the open in python be a little easier so we don’t have any kind of a io4 in so we have to write our own y Loop here so we’re going to call F gets line give me up to a th000 characters from the file handle named hand and fgs returns null which is a constant that’s defined in stdio.h if it reaches end of file so this basically is a loop that says re everything up till end of file very similar to this four line in hand and then we’re printing it now I don’t have to strip it because F gets actually takes the new line that is the end of each line so in Python you would get double spacing if you didn’t strip the new line at the end of each one of these little things right each line whereas the the F get S is nice enough not to give us the new line so there we go so a counted Loop now this honestly is not one of my favorite things in P in Python but this range is a generator that’s going to generate the numbers 0o through four 4 I in range this is effectively kind of a a dynamically generated set and then we’re going to print it so we’re going 0 1 2 3 4 in C we of course have to declare the I is going to be an INT and the for Loop has three pieces separated by semicolons there’s the initialization piece now PHP and JavaScript are the exact same thing so if this looks familiar to you that’s because you took those classes congratulations so for I equal Z is the initialization that says before the loop starts set I to zero then there is the middle part is the test whether or not the loop should run or continue to run it’s a top tested Loop and so I less than five must be true or The Loop won’t run at all but given that I is zero at the beginning it’s less than five so it’s going to run at least once and then each time through the loop at the bottom after the loop is run we’re going to add one to I with a i++ a post increment operator and again that line of code PHP JavaScript Java all look the same except PHP has dollar signs for variable prefixes which yeah bothers me but it is what it is and of course we have a a block curly brace open curly brace and close curly brace denote the block and then we simply print the variable out and both both bits of code produce the exact same output so if we get a little bit trickier we’re going to do a uh take an example from my python for everybody class and look at the max and Min and because we need to Prime the loop we’re going to set our Max Val to none and the Min Val to none and we’re going to do an a middle tested infinite Loop while true we’re going to read the input line each line like 5 29 we’re going to strip it just because we’re going to check to see if it’s the string done if it is we’re going to break out of the loop right and then we’re going to convert it to an integer and we’re going to check to see if Max Val is none or the Val value we read is greater than Max Val we’re going to reme remember it and if Minal is none or the value we just read is less than minval we’re going to remember it and when the loop finally reads all the way through we’re going to print out the maximum and the minimum so this is pretty much the same code except we’re using scanf with a percent D format input format and scanning into the V integer variable and using Ampersand to indicate that it’s called by reference and to replace the current V and then the rest of it the same right if uh if it’s the first one or we’ve got a larger one we keep it if it’s the first one or we got a smaller one we keep that one as well we Loop through and it all goes now one thing that if we’re using scanf as I mentioned before scanf doesn’t sort of stop at the end of lines it keeps on going and so the if I have 5 to and nine and again we have to use contrl D or eof here to to finish this or we have to five space two five Space 9 and then eof it it does the same because scanf is just looking for an integer it start it’s really it’s algorithm we’ll see this in chapter 8 but the the thing that it does it’s like get me an integer which means throw away stuff that’s not an integer so um away you go so that’s a slightly more cthonic version of uh this min max using uh scan f and it doesn’t suffer from the problem of using uh get us and having to worry about the size of the arrays that’s character arrays here’s a guessing game it’s one of my favorite applications so we have a a infinite Loop the ultimate non-determinate Loop a loop that you got to examine to know that it’s going to finish and in this particular one we’re just looping to eof you’re using try and accept why because line doesn’t give you any return indication that it’s hit into files so we just have to like have it blow up and then do an accept and then jump out oh well so we throw away the new line and then we convert the line to an integer and we say if guess is 42 nice work and then break which gets out of the loop the break affects the loop not the if and then LF guess less than 42 too low else print too high so this is a classic multi-way if where we can have an if you can have kind of as many lfs as you want dot dot dot and then an else we do the same thing in C uh we’re going to use the scanf pattern waiting till we uh see eof um if the guess is 42 um we print nice work and then break now we have to have curly braces here because that is a two statement block and so if you’re having more than one statement you’ve got to do uh curly braces and then else this else matches up with that if else if guess less than 42 print F now modern programmers would tend to put curly braces even though this is only one line but this print f is the statement connected to the if and it does not need curly braces because what comes after an if is a statement or block of statements with curly braces and the same is true of its else the print f is the single statement so you would You’ not seeing curly braces here and I I’m I would write this with curly braces but because the authors of the book are really very succinct they tend to not put curly braces in so I’m calling your attention to that now a really important thing to call your attention to is the difference between else space if and L if now the high level is what we’re doing in C is not really a multi-way if what we’re doing in Python is truly a multi-way if this if and L if and else are really part of the same block of code but this else if is two keywords and so if you look at the the the first if the first if has one block of code which is the print F nice work and the break and then the else Clause of the first if is this entire block of code here which is if guess less than 42 print F yada yada and then another else and so this is a block so this is a block if and in the else Clause there is another block if and so if you look at this really the indentation of this stuff ought to be in in this like the El If part in the else that indentation should be further in now by convention we don’t de indent we don’t add that indentation even though it’s technically correct because this is an else and then there’s one statement and that statement is the if okay and so it’s we use this idiomatically all the time it looks like a multiway if else if else but it’s not it’s actually a further and further deeply nested elseif an else with an if inside the else and then another else with an if inside the else we just don’t indent it we indent it by Convention as if it were a multi-way if you know need to know this precisely when you are writing code but I just want to point that out in case like in the back of your mind you’re like why does python called LF which is one reserved word and why does c not have an LF but instead has an LF I think when the gido invented python he said look that’s a cool convention let’s make it actually part of the language rather than a idiomatic use of the language okay enough of that enough of that okay calling by value functions this is pretty easy right there’s no defa key word um you have the return value the name of the function and the parameters and then of course before the curly braces you have to have the type of the parameters those are not the type of the variables in the function those are the type of the parameters in Python you don’t need to tell it what type they are python is kind of a flexible typeless language the type of a variable goes right along with it any you could be inside my mol and say what kind of a thing is a and then a could be an integer it could be a float it could be whatever could be a string right because that’s an object and an object can have a type whereas a is just a number and you have to tell it in C uh that number that’s coming in it is an integer and if someone miscalls it in C like put 6.0 here it just blows up doesn’t work right I mean it might do something it’s just unexpected right so there’s no cleverness now there might be some checking you might get a compiler warning that says how come it’s an integer here and it’s a floating Point here that will be dangerous but it won’t fix it for you and it doesn’t automatically convert it whereas if you did this in Python it would automatically convert so you have a far greater responsibility to match your types up and see uh things like return statement pretty much functions the same it was you know the python return state statement is an imitation of the C return statement you do have to declare your variable types that are going to be used temporary inside the function scope wise right this C is not outside we will see later when we get to the functions chapter about external values and static values Etc but the default scoping is that any variable that you declare inside of a function only lives inside the function there is no a b or c in the main code any and that’s the same as how python works that’s a lot of Rosetta Stone we talked about input output we talked about looping we talked about reading a file we’ve talked about strings which are really character arrays we’ve talked about um float and later later later later later we’re going to learn a lot and chapters five and six are the crazy chapters but we’re going to play with how would P how would we Implement some of the things that python strings lists and dictionaries handle and before this course is is over we’re going to come back and get inside the mind of what it would take to build python using the C language so we’ll see how Alec structures pointers Etc character Rays can be used to build string object list object and dict object and that to me is the learning objective of this course is not so much how to code C because it’s your job but what in C is necessary to make a higher level language like python or JavaScript or Java or C work and we’ll get to that before the end of the course it is a long course um and again this was a long lecture this takes some time to absorb and and just zooming through this you you you achieve nothing if you just do the homework without understanding so take your time I put the lines in this lecture the lines of code are there very much on purpose every single one is trying to teach something so I hope you’ll take the time to learn all this material [Music] cheers hello and welcome to chapter one of K en Richie my name is Charles Sant and of course I’m your professor for this course that’s about history so welcome to this course it’s really part of a learning path um I don’t think that c should be your first programming Lang language and I don’t think it should be your last programming language I have a whole series of courses that are all free and available online both just on the web on places like free code camp and corera and at X and the place that you’re at in my learning path is a uh that you’re at right now is C programming and we’re not learning C programming to learn C programming we’re learning C programming to take a historical look at how computers work and lead into uh computer architecture I’m not trying to teach you coding in C but I am going to explain how computers work and things like how Java Works using C as kind of like the it just gives me a way to explain Java to you so the outline of the textbook is a kind pretty typical computer science textbook where it uh it starts off easy and then whoo everything goes pretty crazy so chapters 1 through 4 and we’re on chapter one right now is mostly syntax and it’s just another programming language and especially if you’ve know a little bit of Java or a little little bit of PHP or a little bit of JavaScript some of that syntax is going to be like whoa of course this is familiar and the answer is well that’s because all those languages came from C so it’s kind of feels like just another programming language except that arrays are not lists and character arrays are not strings and character arrays kind of look like strings but they don’t work like strings and you can get in all kinds of trouble but other than that once you sort of stop worrying about how long things are pretend it’s okay which is dangerous of course when you write code chapters 1 through 4 feel a lot like you’re just any other programming language but then chapters 5 and six are the valuable chap chter of this book but they also become a lot more difficult so don’t don’t give chapters 1 through 4 short shrift because five and six are going to just go woo um and then seven and eight is just sort of filling in detail and seven and eight are not so critical um you know it just kind of fills in all the gaps so that’s that’s the outline of the book just expect that 1 through four is going to be smooth and then five and six are going to be like now we’re really getting somewhere okay so looking at chapter one one again chapters sections 1 through 15 looks not that different than any other programming language that you’ve learned it’s chapter one section 1.6 is arrays static allocation arrays you you have to know how big they are when you declare them and you can’t resize them until chapter 5 at which point we’ll start talking about dynamic memory and pointers and resizing chapter 1.7 and 1.8 functions and parameters and it’s all called by value in this early phase called by by reference is in chapter 5 because we need to know about pointers before that we talked about chapter 5 even though they use a little pointer syntax here and there in chapter one and section 1.9 is character Rays read this one closely because there is no string object in C there’s no objects at all in C and in section 1.10 they talk about variable scoping between functions and that feels kind of similar to to other languages and part of it is because other languages took their inspiration from C so if we just take a quick look at C character arrays we must understand that the size of the character array is at allocation time and there is nothing Auto extended and if you write a for Loop that goes off the end of the loop like I’ve got where you know I have a character array that’s 10 long and I write a loop That’s goes up to a thousand storing data in it eventually the program will blow up and you can see like I mean in Python you just make you just add characters whereas in C if you add characters beyond what where is allocated the system blows up and you probably heard me say more than once that the C language is probably responsible for 90% of the security hole significant security holes in all of computing and this kind of code where you allocate an array and then you wildly go beyond it ends up making it so that people can inject things into operating systems and routers and all kinds of things so this is why we don’t use C to to write programs I mean here we are in the first page the example one of chapter one is why we don’t write C very often or if we do we have to be really careful at reviewing it and making sure that it’s right it’s really fast but it’s also dangerous uh string constants and character constants strings and characters in most languages Java’s a little different but PHP Python and JavaScript treat single and double quotes roughly the same and they create string constants and that’s a multicar thing that has a length C doesn’t have a multi character thing has a length it has an array of characters that has a zero character at the end of it in C single quotes are a single character and double quotes are a character array so a single a double quote with one character in it is actually two bytes because it’s the character and the string ending whereas in Python A String has a length it doesn’t really have an ending character there’s a special character that we use for an ending in c a character is a bite which is a short integer usually eight bits in in in most computers and so we you got to be real careful you you got double quote things and single quote things and single quote things in in C are far more like integers and far less like strings and so in in in Python you just use them interchangeably single quotes and double quotes character sets the Char in C is like a number it’s a tiny number it’s eight bits long so you can go from 0 to 255 and the character representations depend on the character set but quite often they’re asky and so you can just go look up at an asky chart and figure out what the numeric representation of the letter a is and in Python we can actually see the ordinal position of a by using the or function but that’s the or function of a single character string which pulls the ORD of the very first character and we find it it’s 65 and if you look up in the asky chart it’s 65 but in python python 3 Python 3 are multi-te characters that represent Unicode and unicode is much larger than 8 Bits I think Unicode is 32 bits uh utf8 is a way to represent Unicode and unicode is a 32bit character set and so if you say what is the character the integer equivalent of the character Smiley phase you see that it’s 128,50 122 and that’s in a space of 32bit it’s a 32-bit integer and that’s the character Point within that 32-bit integer that represents smiley face in C there is no smiley face you can’t represent well unless you put a bunch of libraries into it but the normal out of- the box seed can’t can’t represent a smiley face it can represent an uppercase a and you can say what is the A and you’ll notice we’re printing it out with a percent c and a percent D and and it’s the same thing if you print a a a a character out as a a character it’s an A and if you print it out as an integer it’s an a we don’t even need an Ord function because character constants are really integer constants in the asy character set okay just understand that every time you see single quote a single quote think of it as an integer as a number that happens to be conveniently looked up for you by the C compiler and you can take a look at the asy character set and you can go look at uppercase a and you see that its decimal equivalent is 65 you also see in this table that its hexadecimal is 41 and its octal is one1 and it’s it’s binary its actual bits are one bunch of zeros and a one now the reason we like octal and and hex as programmers is it’s easier to convert directly one without having converting from decimal requires like divisions and modulo and stuff like that um but converting from octal or hex to Binary is Direct on a on a digit by digit basis so I can convert an octal digit to a binary set of binary digits just by looking at each digit in succession so when we’re printing out and we want to be able to understand what the raw bit pattern is of some data we tend to print it out in HEX or in octal so that we can quickly figure out what bits are set inside that uh value strings in C are not strings they are arrays of characters and there is no length so you can ask python what the length of a string is and the string knows its length but in C that you can ask what the length of a string is but it turns into a for Loop that scans until it finds the end of the string and the end of the string is a special character which is quote back sl0 quote which is zero I mean it’s literally the integer zero so you have characters that are nonzero and then you have a zero character and the length is how many characters are in this array up to the end now that is different than the allocation so you can have in this case I have a an example of a six character array and I put six things in it it’s all full I could have terminated it like you notice I say x sub3 equal 0 it’s no it still got six characters in the array but now the end of the string in that array or the end of the character sequence in that array has a zero at position sub three and of course array start at zero so you see the first three characters and the third one is an end and that that stops IT to print out and so you got to you got to a allocate for the end of the character string and you you be you’ve got to have it there if just because it goes up to six if you don’t have the end of the string it’s going to go off and and and R randomly go through memory until it blows up probably right and so strings must be terminated if you append something to a string first you have to have enough space in that string if you pen something to a character aray you have to have enough space and then if you overwrite the end of the string you got to add another little Mark to say now the end of the string has been moved so terminating a string is a thing that you always got to think about both when you’re scanning through a string and when you’re creating a new string like I said the C string length is only computable by a loop that scans for a zero character so there’s a sterland function in string.h that computes the string but it’s very very different than the Len function in Python Len function in Python X is an object and length is an attribute of that object whereas in C there is an array and it has a length and it has a zero position but to ask how long is it you’ve got to actually Loop through all the characters looking for the zero marker so you kind of can find a length of a character a length of a string the length of a quote unquote string in C but you got to write a for Loop to do it you don’t have to write a for Loop because python just knows the length later we’ll bring all these things together much later so one of your assignments exercise 117 is reversing a string in C without requiring any information an extra string you can’t you have a string it’s got a certain amount of space and you’ve got to just flip you got to swap the characters you’re going to probably have to draw a picture to do that it is exercise 117 and I’m going to tell you do not cheat there are probably a million Solutions out there on the internet chat GPT will tell you how to do it don’t be tempted as you do this you will get there I show you a blurred out version of it it’s not all that much code so don’t shortcut this don’t just the solution getting the solution to this assignment without actually doing it is the the meanest thing you’ll ever do to yourself you have to do the reversal in place it’s a classic interview question at the interview you don’t get to go to chat GPT you got to think about even length strings odd length strings empty strings and Single Character strings you’re going to have to draw some pictures take your time enjoy this assignment seriously it’s not that big and when you get it done you can be very very proud of yourself that you you really thought through the low-level storage of what an array of characters with an ending marker is working with and so that’s why it’s such a good interview question so there we go that’s kind of my call outs from chapter one give you a sense of overall sense of the book see character arrays and encouraging you to actually do your homework even though there’s a million ways to get it done for you cheers [Music] welcome to C programming for everybody my name is Charles S and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter 1 a tutorial introduction let us begin with a quick ruction to see our aim is to show the Essential Elements of the language in real programs but without getting bogged down in details formal rules and exceptions at this point we are not trying to be complete or even precise we want you to get as quickly as possible to the point where you can write useful programs and to do that we have to concentrate on the basics variables and constants arithmetic control flow functions and the rudiments of input and output we are quite intentionally leaving out of this chapter features of C which are of vital importance for writing bigger programs these include pointers structures and most of C’s Rich set of operators several control flow statements and a myriad of details this approach has its drawbacks of course most notable is that the complete story on any particular language feature is not found in a single place the tutorial by being brief may also mislead and because they cannot use the full power of C the examples are not as concise and elegant as they might be we have tried to minimize these effects but be warned another drawback is that later chapters will necessarily repeat some of this chapter in any case experienced programmers should be able to extrapolate from the material in this chapter to their own programming needs beginners should supplement it by writing small similar programs of Their Own both groups can use it as a framework on which to hang the more detailed descriptions that begin in Chapter 2 1.1 getting started the only way to learn a new programming language is by writing programs in it the first program to write is the same for all languages print the words hello world this is the basic hurdle to leap over it you have to be able to create the program text somewhere compile it successfully load it it run it and find out where your output went with these mechanical details mastered everything else is comparatively easy in traditional C the program to PR print hello world is main open parentheses close parentheses open curly brace print F parentheses double quote hello comma space world back sln double quote close parentheses semicolon close curly brace the modern minimal version of this program needs a bit more syntax we add a single line at the beginning hashtag include space left angle brackets stdio.h right angle bracket P include stdio.h we have to add that line for the modern program back to the book just how to run this program depends on the system that you’re using as a specific example on the Unix operating system you must create the source program in a file whose name ends in C such as hello.c and then you compile it with the command CC space hello.c if you haven’t botched anything such as omitting a character or misspelling something the compilation will proceed silently and make an executable file called a.out running that by the command a.out will produce hello comma world as its output on other systems the rules will be different check with a local expert on Modern systems we use the GCC compiler with the dash ANC option to accept the Legacy syntax of C so we use GCC space minus an space hello.c and to run the resulting a.out file you usually you need to prepend the local directory because most shell configurations do not include the current path in the paths to search for applications so you need to write SL a.out now for some explanations about the program itself a c program whatever its size consists of one or more functions which specify the actual Computing operations that are to be done C functions are similar to functions and subroutines of a Fortran program or the procedures of pl1 Pascal Etc in our example Maine is such a function normally you are at Liberty give functions whatever names you like but Maine is a special name your program begins executing at the beginning of main this means every program must have a main somewhere main will usually invoke other functions to perform its job some coming from the same program and others from libraries of previously written functions one method of communicating data between functions is by arguments the parentheses following the function name surround the argument list here main is a function of no arguments indicated by open parentheses closed parentheses the curly braces enclose the statements that make up the function they’re analogous to the due end of pl1 or the begin end of alol or Pascal and so on a function is invoked by naming it followed by a parenthesized list of arguments there is no call statement as there is in foran or pl1 the parentheses must be present even if there are no arguments in the above text the authors were making connections to the popular general purpose programming languages of the time when the book was written it was not all a ured that c and C- like languages would ever evolve past writing high performance applications like operating system kernels and device drivers by comparing C to these more general purpose languages the authors are trying to plant the seed that c could have value as a general purpose language back to the text the line that says print F parentheses double quot hello commas space world back slash and double quot close parentheses semicolon is a function call which calls a function named print f with the argument hello world print f is a library function which prints the output to the terminal unless some other destination is specified in this case it prints the string of characters that make up its argument any sequence of any number of characters enclosed in double quotes is called a character string or string constant for the moment our only use of the character strings will be as arguments to print F and other functions the sequence back sln in the string is C notation for the new line character which when printed advances the terminal to the left margin on the next line if you leave out the back slash n a worthwhile experiment by the way you will find that your output is not terminated by a line feed the only way to get a new line character into the print f argument is with back slash n if you try to break it into two lines like print F quote hello world and then just hit the return double quote close parentheses semicolon on a new line the C compiler will print out unfriendly Diagnostics about missing quotes printf never supplies a new line automatically so multiple calls can be used to build up an output line in stages our first program could have just as well been written as main open parentheses Clos parentheses open curly brace brf quote hello quote semicolon print F quote World quote semicolon print F back slash n semicolon and then on a sixth line Clos curly braids and it would have produce the identical output note that back sln represents only a single character an Escape SE sequence like back sln provides a general and extensible mechanism for representing hardto get or invisible characters among the others that c provides are back SLT for tab back SLB for backspace back SL double quote for double quote and back slashback slash for the backslash itself 1.2 page8 variables and arithmetic the next program prints the following table of fair fhe temperatures and their Centigrade or Celsius equivalents using the formula c equal parentheses 5 / 9 Clos parentheses parentheses Fus 32 the table contains Fahrenheit of 0 Celsius of -7.8 Fahrenheit of 20 Celsius of -6.7 Fahrenheit of 40 Celsius of 4.4 and so forth here is the program itself for reference this this program is on page 29 of the textbook so it starts with pound include stdio.h to include the standard library then it has a comment it says print the Fahrenheit Celsius table for f equals 0 comma 20 comma dot dot dot comma 300 close comment main open parentheses close parentheses open curly brace int lower comma upper comma step semicolon float far comma Celsius lower equals z semicolon followed by a comment upper equals 300 semicolon followed by a comment step equals 20 semicolon followed by a comment far equals lower then while open parentheses far less than or equal upper close parentheses open curly brace Celsius equals parentheses 5.0 9.0 Clos parentheses asterisk open parentheses far minus 32.0 closed parentheses semicolon then a print F statement print F open parentheses double quote percent 4.0 f space percent 6.1 f back slash n close quote comma far comma Celsius close parentheses semicolon far equals far plus step and then a closing curly brace to finish the while statement and then a closing curly brace to finish the main statement the first two lines slash star print Fahrenheit to Celsius table for FAL 0 comma 20 dot dot dot 3 100 star slash are a comment which in this case explains briefly what the program does any characters between SL star and star slash are ignored by the compiler they may be used to freely make the program easier to understand comments may appear anywhere a blank or new line can in C all variables must be declared before use usually at the beginning of a function before any executable statements if you forget a declaration you will get a diagnostic from the compiler a declaration consider consists of a type and a list of variables that have that type as in int lower comma upper comma step semicolon float far comma Celsius semicolon the type int implies that the variables listed are integers float stands for floating Point I.E numbers which may have a fractional part Precision of both int and Float depends on the particular machine that you are using on the pdp1 for instance an INT is a 16bit signed number that is one that lies between negative 32,768 and positive 32,767 a float number is a 32bit quantity which amounts to about seven significant digits with a magnitude of about 10 Theus 38 and 10 + 38 chapter 2 lists the sizes for other machines I would note that the 1970s was a time of transition in the amount of memory installed in computers the C language int type was 16 bits in the older but more generally available computers like the pdp1 C could be used to write programs like the Unix operating system that made efficient use of available memory in particular the 1978 version of C did not require that Computers support 32bit integers but 32,768 is a pretty small number the size of an integer affected the maximum size of arrays and strings a lot of early C programs use the long type to get at least a 32-bit integer capable of representing numbers up to about 2 billion in modern modern computers and database we tend to choose between 32bit and 64-bit integers back to the text C provides several other basic data types besides int and Float Char is a character a single bite short is a short integer long is a long integer and double is a double Precision floating Point size of these objects are also machine dependent and details are in Chapter 2 there are also arrays structures and unions of these basic types and pointers to them and functions that return them all of which we will meet in due course the actual computation in our temperature conversion program begins with the assignments lower equals z upper equals 300 step equals 20 far equals lower all ending with semicolon these set the variables to their starting VAR values individual statements are terminated by semicolons each line of the table is computed in the same way so we use a loop which repeats once per line This is the purpose of the while statement while parentheses far less than or equal upper closed parentheses open curly brace then the body of the loop and then close curly brace the condition in the parenthesis is tested if it is true I.E far is less than or equal to Upper the body of the loop all of the statements included between the open curly brace and the closed curly brace are executed then the condition is retested if true the body’s executed again when the test becomes false I.E far exceeds upper the loop ends and execution continues at the statement that follows the loop there are no further statements in the program so it terminates the body of a while loop can be one or more statements enclosed in braces as the temperature converter or a single statement without braces as in while open parentheses I less than J closed parentheses I = 2 * I semicolon in either case the statements controlled by the while are indented by one tab stop so you can see at a glance what statements are inside the loop the indentation emphasizes The Logical structure of the program although C is quite permissive about statement positioning proper indentation and the use of Whit space are critical in making programs easy for people to read we recommend writing only one statement per line and usually leaving blanks around operators the position of the braces is less important we have chosen one of the several popular Styles pick a style that suits you and then use it consistently I would add that with these words the authors triggered a great debate about how to best indent code and use curly braces that continues to this day the indentation style used in this book is often referred to as the k&r style it tends to put open braces at the end of statements like if and while to keep code more compact in terms of the number of lines of code the best advice is not to debate at all when you modify someone else’s code just imitate the style that they used when they wrote their code back to the text most of the work gets done in the body of the loop the Celsius temperature is computed and assigned to the Celsius variable by the statement Celsius equals open parentheses 5.0 SL 9.0 closed parentheses asteris open parentheses far minus 32.0 closed parentheses semicolon the reason for using 5.0 9.0 instead of the simpler looking 59 is that in C as in many other languages integer division truncates so that any fractional part is discarded thus 59 is zero and of course so would then all the temperatures be zero a decimal point in a constant indicates that it is floating point so that 5.0 over 9.0 is 0.555 5 repeating which is what we want we also wrote 32.0 instead of 32 even though since far is a float 32 would automatically be converted to float before the subtraction but as a matter of style it’s wise to write floating Point constants with explicit decimal points even when they have integral values it emphasizes their floating Point nature for human readers and ensures the compiler will see things the way you do as well I would note that for those of you familiar with python before Python 3 integer division truncated and returned an integer just like C in Python 3 one of the major improvements was that the division of two integers perform the division operation in floating point and returns a floating Point result C and python 2 made the choice because of efficiency integer division with truncation especially for 16bit numbers was quite fast in the 1970s computers compared to floating Point division that kept the fractional part intact early pdp1 computers did integer division in Hardware while all floating point was done with loops and functions so it was far slower if you wanted to write fast code in the 1970s you avoided floating Point numbers except for special situations modern computers usually do 6 4bit floating Point operations almost at the same speed as integer division so we don’t need to allow programmers to avoid using floating point computations in their code the detailed rules for when integers are converted to floating Point are in chapter two for now notice that the assignment far equals lower semicolon and the test while far less than or equals upper both work as expected the int is converted to a float before the operation is done this example also shows a bit more of how print F Works print f is actually a general purpose format conversion function which we will describe completely in chapter 7 its first argument is a string of characters to be printed with each percent sign indicating where one of the other second third Etc arguments is to be substituted and what form it is to be printed in for instance in the statement print F parentheses double quote percent 4.0 f space percent 6.1 F back slash and double quote comma far comma Celsius the conversion specification percent 4.0 F says that a floating Point number is to be printed in a space at least four characters wide with no digits after the decimal point percent 6.1 F describes another number to occupy at least six spaces with one digit after the decimal point analogous to the f61 of Fortran or the F parentheses 6 comma 1 of pl1 parts of a specification may be omitted percent 6f says that the number is to be at least six characters y percent do 2f requests two places after the decimal point but the width is not constrained and merely percent F says to print the number itself as floating point printf also recognizes percent D for decimal integers percent o for octal percent X for heximal and percent C for characters and percent s for a character string and percent percent for the percent itself each percent Construction in the first argument of print f is paired with its corresponding second third Etc argument they must line up properly by number and type or else you’ll get meaningless Answers by the way print f is not part of the C language there is no input or output defined in C itself there is nothing magic about printf it’s just a useful function which is part of the standard library of routines that are normally accessible to C programs in order to concentrate on C itself we won’t we won’t talk much about IO until chapter 7 in particular will defer formatted input until then if you have to input numbers read the discussion of the function scanf in chapter 7 section 7.4 scanf is much like printf except that it reads input instead of writing output the balance between building a feature into the language itself and providing it as a function in a library is something that computer language designers struggle with many years later for example in Python 2 print was a language element in Python 3 one of the non- upwards compatible and somewhat unpopular changes was changing print to be a function many programmers feel that a print statement is a more elegant way to Express Printing but from a compiler and language design perspective a function call with a variable number of parameters is seen as technically more elegant and flexible with kernigan and Richie focused on keeping everything small and portable they opted to keep all input output functionality in libraries the syntax is a little more complex but given how Computing has changed in the past 30 years it is the right choice section 1.3 the four statement as you might expect there are plenty of different ways to write a program let’s try a variation on the temperature converter this is sample code is on page 11 of the textbook pound sign include less than stdio.h greater than main open parentheses closed parentheses open curly brace int bar that is f a HR semicolon for open parentheses far equals z semicolon far less than or equal to 300 semicolon far equal far + 20 close parentheses print F open parenthese double quote percent 4D space percent 6.1 F back sln close print close quote comma far comma open parentheses 5.0 9.0 Clos parentheses asterisk open parentheses far minus 32 close parentheses close parentheses semicolon this code produces the same answers as the one before but it certainly looks different one major change is the elimination of most of the variables only far fahr remains as an INT to show the percent D conversion in print F the lower and upper limits of the step size appear only as constants in the four statement itself four is a new construction and the expression that computes the Celsius temperature now appears as the third argument of print F instead of in a separate assignment statement this last change is an instance of a quite general rule in C in any context where it is permiss permissible to use the value of a variable of some type you can use an expression of that type since the third argument of print F has to be a floating point value to match the percent 6.1 F any floating Point expression can occur there the four itself is a loop a generalization of while if you compare it to the earlier while its operation should be clear it contains three parts separated by semicolons the first part far equals zero is done once before the loop proper is entered the second part is the test or condition that controls the loop far less than or equal to 300 this condition is evaluated if it is true the body of a loop in this case a single print f is executed then the reinitialization step faral far + 20 is done and the condition is re-evaluated the loop terminates when the condition becomes false as with the while the body of the loop can be a single statement or a group of statements enclosed in braces the initialization and reinitialization parts can be any single expression the choice between while and for is arbitrary and should be based on what seems clearer the four is usually appropriate for Loops in which the initialization and reinitialization are single statements and logically related since it is more compact than while and keeps the Lo Loop control statements together in one place I would note that the syntax of the four and while loop is a feature of c and derived C- like languages in modern languages we tend to have two kinds of loop structures determinant and indeterminant the four and the Y Loop structures in C are both indeterminant because you must read them closely to make sure they are properly constructed and for example are not unintentionally infinite Loops an example of a determinant Loop is the for each Loop in PHP or the for Loop in Python the semantics of both of these Loops is to iterate all the elements in a collection but since collections are never infinite you can be assured that these determinant Loops will not run forever section 1. for symbolic constants a final observation before we leave temperature conversion it’s a bad practice to BU magic numbers or magic constants like 320 or 320 in a program they convey little information to someone who might read the program later and they’re hard to change in a systematic way fortunately C provides a way to avoid such magic numbers with the pound sign defined Construction at the beginning of a program we can define a symbolic name or symbolic constant to be a particular string of characters thereafter the compiler will replace all unquoted occurrences of the name by the corresponding string the replacement for the name can actually be any text at all it’s not related to numbers so this is sample code on page 13 of the text pound sign include less than stdio.h greater than next line pound toine space lower space zero next line pound toine space upper space 300 pound define space step space 20 for these pound sign statements I would note that they have to start in the First Column the rest of this sample code is the code itself main open parentheses Clos parentheses open curly brace int far F A HR for open parthy far equals uppercase lower semicolon far less than or equal to uppercase upper semicolon far equals far plus uppercase step and then the same print statement print F open parentheses double quote percent 4D space percent 6.1 F back sln quote comma far comma percent 5.0 9.0 close parentheses asterisk open parentheses far minus 32 close parentheses close parentheses semicolon and then to end the program close curly brace the quantities uppercase lower uppercase upper and uppercase step are constants so they do not eer in declarations symbolic names are commonly written in uppercase so they can be readly distinguished from lowercase variable names notice that there is no semicolon at the end of a pound fine statement since the whole line after the defined name is substituted there would be too many semicolons in the four section 1.5 a collection of useful programs we are now going to consider a family of related programs for doing Simple operations on character data you will find that many programs are just expanded versions of the prototypes we discussed here character input and output the standard Library provides functions for reading and writing a character at a time get charar fetches the next input character each time it is called and Returns the character as its value that is after C equals get Char open parentheses Clos parentheses the variable C contains the next character of input these characters normally come from the terminal or keyboard but that need not concern us until chapter 7 the function put Char open parentheses C closed parentheses is the complement of get charar put charar open parentheses C close parentheses prints the content of the variable C on some output medium again usually the terminal or screen calls to put chart and print F may be interleaved the output may be app will appear in the order in which the calls are made as with printf there is nothing special about getchar and putchar they are not part of the C language but they are universally available once again I would note that the authors are making the case that the syntax of the language should not include Syntax for input output operations but instead call library functions keeping the compiler small and easy to Port new systems was important to the creators of c and even if it’s something like putchar was part of the language syntax it would be translated at runtime to call a function programming languages from the 1960s tended to have a small set of use cases read some input run some calculation and then write some output so it seemed like a few language elements would be sufficient to describe all programs but as programs started to make network connections draw buttons on a screen or respond to API calls over the network it would have been difficult to keep expanding the core language Syntax for each new use case but it was extremely natural to add new libraries to languages like C with functions to call to accomplish these new use cases file copying given getchar and putchar you can write a surprising amount of useful code without knowing anything more about input output the simplest example is a program which copies its input to its output one character at a time in outline here’s what we do get a character while the character is not the end of file signal I’ll put the character we just read and then get a new character converting this into C gives us the sample code on page 14 of the textbook pound includes stdio.h main open parentheses Clos parentheses open curly prce int c semicolon C equals getchar open parentheses close parentheses semicolon while c not equal eoff uppercase eoff close parentheses open curly brace put char C C equals get charge semicolon close parentheses close curly brace the relational operator exclamation equals means not equal to the main problem is detecting the end of the input by convention getchar Returns the value which is not a valid character when it encounters the end of input in this way programs can detect when they did not get a character and and they’ve actually simply run out of input the only complication which is a serious nuisance is that there are two conventions in common use about what that endif file value really is we have deferred this issue by using the S symbolic name EF capital eof for the value whatever it might be in practice eof will be either negative one or zero so the program must be proceeded by the appropriate pound Define eof minus one or pound Define e0 to work properly by using the symbolic constant eof to represent the value that geta returns when the end of file occurs we are assured that only one thing in the program defines on the specific depends on the specific value numeric value of eof I would note most of that is incorrect modern C compilers actually Define EOS in the stdio.h include file so you never Define eoff in your code in modern C the value of eoff is minus one you should just include stdio.h and use predefined eoff constant to check for end a file the nuisance of different values for eof was resolved shortly after 1978 continuing with the text we also declare C to be an INT not a chair Char so that it can hold the value which get Char returns as we’ll see in chapter two the value is actually an in because it must be capable of representing end of file in addition to all possible characters so the program for copying could actually be written more concisely by experienced C programmers in C any assignment such as C equals get Char open parentheses close parentheses can be used in an expression it’s a value is simply the residual value being assigned to the left hand side if the assignment of a character to the variable C is put inside the test part of a while statement the file copy program can be written as shown in the example code on page 15 of the textbook pound include stdio.h main open parentheses closed parentheses open curly brace int space c semicolon while open parentheses open parentheses C equals getchar open parentheses close parentheses Clos parentheses not equal EF Clos parentheses put Char C parentheses C Clos parentheses semicolon close curly brace the program gets a character assigns it to C and then tests whether the character was the end ofile signal if it was not the body of the while is executed printing the character the while then repeats when the input is end of input is finally reached the Wild termin terminates and so does Main this version version centralizes the input there’s now only one call to getchar and shrinks the program nesting an assignment is a test of one of the places where C permits a valuable conciseness it is possible to get carried away and create impensable code though a tendency that we will try though that is a tendency we will try to curve it’s important to recognize that the parentheses around the assignment within the conditional are really necessary the Precedence of exclamation equal not equals is higher than that of equals the assignment operator which means that in absence of parentheses the relational test exclamation equals would be done before the assignment equals so the statement C equals get charar parentheses open parentheses closed parentheses not equal eof is equivalent to C equals get Char open no sorry is equivalent to C equals open parthey get chart open parthy closed parentheses not equal e closed parenthesis this has the undef desired effect of setting it is important to recognize that the parentheses around the assignment within the conditional are really necessary the Precedence of exclamation equals is higher than that of equals which means that in the absence of parentheses the relational test not equals would be done before the assignment so the statement C equals get Char not equal eoff is equivalent to C equals open parentheses get Char not equal eof closed parentheses this has the undesired effect of setting C to zero or one depending on whether or not the call of getchar encountered the end of file more on this in Chapter 2 The Next program counts characters it is a small elaboration of the copy program this sample code is on page 16 of the textbook pound include stdio.h main open parentheses close parentheses open curly brace long NC semicolon N C equals 0 semicolon while open parentheses get CH Char open parthey close parentheses exclamation equal EO Plus+ n c semicolon print f double quot percent LD back sln double quot comma NC parentheses semicolon close curly brakes the statement plus plus NC semicolon shows a new operator Plus+ which means increment by one you could write ncal NC + 1 but plus plus NC is more concise and often more efficient there is a corresponding operator minus minus to de By One The Operators Plus+ and minus minus can either be prefix operators Plus+ C NC or postfix n C++ these two forms have different values and expressions as will be shown in Chapter 2 but Plus+ NC and N C++ both increment and see for the moment we’ll stick to the prefix form the character counting program accumulates its count in a long variable instead of an INT on a pdp1 the maximum value of an INT is 32,767 and it would take relatively little input to overflow that counter if it were declared as an INT in honey well and ibmc long and int are synonymous and much larger the conversion specification percent LD signals to print F that the corresponding argument is a long integer we again as a note we again see another reference to the fact that the number of bits of the int type is in transition in 1978 the older pdp1 used a 16-bit integer to save limited memory on a small almost obsolete computer while later computers from IBM and Honeywell have already switched to their int type to be 32bits this allowed code originally written for the pdp1 like Unix or even the C compiler to be recompiled on the IBM or Honeywell with very few changes to cope with bigger numbers you can use a double which is a double length float we will also use a four statement instead of a while to illustrate an alternate way to write a while loop this code is the second sample code on page 16 of the textbook found include stdio.h main open parentheses closed parenthesis open curly brace double NC semicolon for open parentheses NC equal 0 semicolon getar open parentheses closed parentheses not equal EF semicolon plus plus NC Clos parentheses and then a semicolon a semicolon in this case is an empty statement because there’s nothing in the body of the of the for Loop and at the end we say print F double quote percent. 0f back sln double quot comma NC close parentheses semicolon close curly bracket print F uses percent f for both float and double percent. ZF suppresses printing of the non-existent fraction part the body of the for Loop here is empty because all the work is done in the test and reinitialization parts of the for Loop but the grammatical rules of C require that a four statement have a body the isolated simp semi and technically a null statement is there to satisfy that syntax requirement we put it on a separate line to make it more visible before we leave the character counting program observe that if the input contains no characters the while or for test fails on the very first call to getchar so that the loop program produces zero the right answer this is an important observation one of the nice things about while and four is they are tested at the top of the loop proceed before proceeding with the body if there is nothing to do nothing is done even if that means never going through the loop body programs should act intelligently with hand handed input like no characters the while and the four statements help ensure that they do reasonable things with boundary conditions line counting the next program counts lines in its in put input lines are assumed to be terminated by the new line character back sln that has been carefully appended to every line written out this is sample code on line 17 of the textbook pound includes stdio.h main open parentheses closed parentheses open curly brace int C comma NL semicolon NL equals z semicolon while open parentheses open parentheses C equals get Char open parentheses closed parentheses closed parentheses not equal eoff Clos parentheses if open parentheses C double equals single quote back sln single quote close parentheses Plus+ NL semicolon print F double quot percent D back sln double quot comma NL close parentheses semicolon Clos curly brace the body of the while loop now consists of an if which in turn controls the increment Plus+ n l the if statement tests its parenthesized condition and if true does the statement or group of statements inside braces that follow we have again indented to show what is controlled by what the double equal sign in is the C notation for is equal to like fortrans do EQ do this symbol is used to distinguish the quality test a question being asked from the single equal sign used for assignment since assignment is about twice as frequently used as equality testing in typical C programs it’s appropriate that the operator be half as long A Single Character can be written between single quotes to produce a value equal to the numerical value of the character in The Machine’s character set this is called a character constant so for example single quote a single quote is a a character constant in the asky character set its value is 65 the internal representation of the character a of course double single quote a single quote is to be preferred over 65 its meaning is obvious and it is independent of a particular character set these Escape sequences that are used in character strings are also legal and character constants so in tests and arithmetic Expressions single quote back slash ning single quote stands for the value of a new line character you should note carefully that single quote back sln is a single qu character and in Expressions is equivalent to a single integer on the other hand double quote back sln double quote is a character string which happens to contain only one character the topics of strings versus characters is discussed further in Chapter 2 the numeric values that are shown for characters are using the asy character set the character sets in the 1970s were quite intricate most were eight bits long to conserve computer memory and only support a 100 or so Latin like characters this is why early programming languages use special characters like asterisk and curly brace in their syntax very carefully they needed to choose characters that were commonly available on computer keyboards from different manufacturers modern programming languages like Python 3 three and Ruby store internal string values using the Unicode character set so they are all able to represent all the characters in all languages around the world modern languages tend to represent 8 bit values in the range from 0 to 256 using a bite or similar type python 2 strings were stored as 8bit bytes and Python 3 strings are stored as 32-bit Unicode characters moving to Unicode was a major effort in the python 2 to Python 3 transition word counting the fourth in our series of useful programs counts lines words and characters with a loose definition that a word is any sequence of characters that does not contain a blank a tab or a new line this is a very very barebones version of the Unix utility WC this example is on page in the textbook pound include stdio.h pound Define yes one pound Define no zero main open parentheses closed parentheses open curly braas int C comma NL comma NW comma NC comma NW NW equals no NL = NW = ncal Z while open parentheses open parentheses C equals get Char not equal to eof open curly brace plus plus n c if parentheses C equals quote back sln quote parentheses Plus+ n l if open parentheses C double equals single quote space single quote double vertical bar cble equals single quot back sln single quote double vertical Bar C equals equals single quote back SLT single quote close parentheses inward equals no else if open parentheses inward equal equal no close parentheses open curly brace inward equals yes semicolon Plus+ n W semicolon close curly brace close curly brace print F open princy double quot percent d space percent d space percent D back sln double quot comma NL comma NW comma NC close curly brace every time the program encounters the first character of a word it counts it the variable inword records whether the program is currently in a word or not initially it is not in a word which which is assign the value no we prefer the symbolic constants yes and no to the literal values one and zero because they make the program more readable of course in a program as Tiny as this it makes little difference but in larger programs the increase of clarity is well worth the modest X effort to write it this way to make it more readable you will also find that it’s easier to make changes to programs where numbers appear only as symbolic constants the line NL equal nwal N C equals z sets all three variables to zero this is not a special case but a consequence of the fact that an assignment has a value and assignments associate right to left it’s really as if we had written NC equals open parentheses NL equals open parentheses NW equals 0 close parentheses close parentheses semicolon the operator double vertical bar vertical bar vertical bar means or so the line if open parentheses C equals single quote space single quote vertical bar vertical bar cble equals single quote back slash n single quote double vertical Bar C equals quot back SLT quote parentheses says if C is a blank or C is a new line or C is a tab the escape sequence back SLT is a visible representation of the tab character there’s a corresponding operator which is double Amper sand for and expressions connected by double Amper sand or double vertical bar are evaluated left to right and it is guaranteed that the evaluation will stop as TR as true soon as the truth or falsehood for the overall expression is known thus if C contains a blank there is no need to test whether it contains contains a new line or tab so these tests are not made this isn’t particularly important here but is very significant in more complicated situations as we will soon see I would note that the double vertical bar and double Ampersand are the norm for booing operators in C like languages when a new language was being designed it was really easy to just adopt the C convention for logical operators because while they may seem cryptic millions of software developers were already familiar with the operators in this way the relationship between C and C like languages is like the relationship between Latin and romance languages including English back to the text the example also shows the C else statement which specifies an alternative action to be done if the condition part of an if statement is false the general form is if open parentheses expression closed parentheses statement one else statement two one and only one of the two statements associated with an if then else is done if the expression is true statement one is executed if not statement two is executed each statement can actually be in fact quite complicated in the word count problem the one after the else is an if that controls two statements in braces section 1.6 arrays understanding the capabilities and limitations of CR arrays is one of the most important topics in our historical look at the C programming language most importantly the number of elements in an array declaration must be a constant at compiled time and the size of an array cannot be adjusted using an array declaration while the program’s running this inability to automatically resize C arrays as data is added leads to a class of security laws that are generally referred to as buffer overflow where a program reads more data in that can fit into an array and is tricked to overwriting other data or code in compromising an application later in this book we will create Dynamic array like structures in C using pointers and the standard Library calac function python has support for non-dynamic arrays buffers python buffers are generally not used except for programmers writing Library code that talks to low-level code written in a language other than python or talking to operating system things like Linux more commonly used python list and dictionary structures can change their sizes automatically as elements are added and deleted at runtime Java has support for non-dynamic arrays like C which are given a length at the moment they are created and the array length cannot be increased nor decreased without making a new array and copying all the elements from the first to the second array Java does provide list and map structures that automatically adjust their length as data is added or removed Java has a class called array list which can be dynamically extended but provides array likee linear access it is a list internally but it can be used like an array externally the underlying technique that is used to implement language structures like Python’s list is dynamic memory allocation in a link list structure link list are one of the most important data structures in all of computer science we will cover Dynamic allocation in implementing data structures in C in chapter 6 for now we will merely examine the syntax of C arrays but keep in mind that allocating an array in C is very different than C creating a list in Python back to the text let us write a program to count the number of occurrences of each digit of Whit space characters blank tab and new line and all other characters this is an artificial problem to solve but it permits us to illustrate several aspects of C in one program there are 12 categories of input so it is convenient to use an array to hold the number of occurrences of each digit rather than 10 individual variables actually 12 individual variables here is one version of the program on page 21 in the textbook and I would note that as these programs get larger and larger it is harder and harder for you to just listen to me read them and you have to go look at them in the textbook so I recommend that you go check out the textbook in page 20 and find this um actual code found include stdio.h main open parentheses close parenthe open curly brace int C comma I comma n white comma n other semicolon int n digit open square bracket 10 Clos square bracket semicolon n white equal n other equals z semicolon four open parentheses I equal 0 semicolon I less than 10 semicolon Plus+ I open I mean close parentheses n digit open square bracket I closed square bracket equals 0 semicolon now we’re going to have a loop to read all of our input while double open parentheses C equals get Char open parentheses close parentheses and another closed parentheses not equal EF closed parentheses if open parentheses C greater than or equal to single quote 0 single quote double Amper sand C less than or equal single quote 9 single quote close parentheses Plus+ in digit open square bracket C minus single quote 0 single quote close square bracket semicolon else if open parentheses C double equals space uh quote space quote or double vertical bar cble equals single quot back sln single quote double vertical Bar C double equals single quot backt single quote close parentheses plus plus n white semicolon else plus plus n other that if statement was a sort of a three branch if checking to see if we were doing a digit a a whit space character or some other character at the end of the Y Loop or not at the end of The L while loop and so we say print F parentheses double quote digits equals double quote closed parentheses semicolon now we’ll note in this that there is no new line so we can have these print defs kind of concatenate outward without going to a separate line for parentheses I equals 0 semicolon I less than 10 semicolon Plus+ I close parentheses print F double quote space percent d double quote comma igit open square bracket I close square bracket Clos parentheses semicolon print F open parentheses double quote back slash n Whit space equals percent D comma other equals percent D back slash N double quote comma n white comma n other Clos parentheses semicolon close curly brace let’s go through the code the Declaration int n digit op square bracket 10 closed square bracket semicolon declares igit to be an array of 10 integers array of subscripts always start as zero in C rather than one as in forrer pl1 so the elements are igit Subzero igit sub one dot dot dot n digit sub n square brackets are the sub this is reflected in the for Loops which initialize and print the array a subscript can be integer any integer expression which of course includes integer variables like I and integer constants this particular program relies heavily on the properties of character representation of the digits for example if C greater than or equal to single quote zero single quote double Ampersand C less than or equal to single quote 9 single quote Clos parentheses determines whether it’s a digit that is if the numeric value of the digit and the numeric value of the digit is C minus double quot 0 double quot this only works if double quot 0 double quote one Etc are positive and increasing order and there’s nothing but digits between 0 and N fortunately this is true for all conventional character sets by definition arithmetic involving chars and ins converts everything to int before proceeding so Char variables and constants are identically to essentially identical to ins in arithmetic contexts this is quite natural and convenient for example C minus single quote 0 single quote is an integer expression that gives us a value between zero and nine an integer value between Zer and N corresponding to the character quote 0 quote 2 quote 9 quote stored in C and is thus a valid subscript for the 10 element array and digit the decision as to whether the character is a digit a white space or something else is made by the sequence if open parentheses C greater than or equal to quote zero quote double Amper San C less than or equal quote Z quote quote 9 quote closed parentheses plus plus igit open square bracket C minus quote zero quote close bracket semicolon else if C equals single quote or C equals single quot back sln or cou equals single quot backt plus plus n white else Plus+ and other the pattern if in parentheses condition statement else if parentheses condition statement L statement occurs frequently in programs as a way to Express a multi-way decision the code is simply read from the top of the B until the bottom until some condition is satisfied at that point the corresponding statement part is executed and the entire construction is finished of course statement can be several statements enclosed in braces if none of the conditions are satisfied the statement after the final else is executed if present if the final else and statement are omitted as in the word count program no action takes place there can be an arbitrary number of elsif condition statements groups between the initial if and the final else as a matter of style it is advisable to format this construction as we have shown with proper indentation so that long decisions do not March off the right side of the page the switch statement to be discussed in chapter 3 provides another way to write multi-way branching that is particularly suitable when the condition being tested is simply whether some integer or character expression matches one of a set of constants for contrast we will present a switch version of this program in chapter three functions in C a function is equivalent to a subroutine or function in Fortran or a procedure in pl1 Pascal Etc a function provides a convenient way to encapsulate some computation in a black box which can then be used without worrying about its inerts functions are really the only way to cope with the potential complexity of large programs with properly designed functions it is possible to ignore how a job gets done knowing what is done is sufficient C is designed to make the use of functions easy convenient and efficient you will often see a function only a few lines long called only once just because it clarifies some piece of code so far we have used functions like print f get charart and put chart that have been provided for us now it’s time to write a few of our own since C has no exponentiation operator like the double asterisk of forrer pl1 let us illustrate the mechanics of function definition by writing a function power open parentheses M comma n closed parentheses to raise an integer into a positive power n that is the value of power parentheses 2 comma 5 5 is 32 this function certainly doesn’t do the whole job of exponentiation since it only handles positive powers of small integers but it is best to confuse only one issue at a time here is the function power and a main program to exercise it so you can see the whole structure at once this sample code is on page 23 of the textbook pound include stdio.h main open curly R in I semicolon for for parentheses I equal 0 semicolon I less than 10 semicolon plus plus I Clos parentheses print F double quote percent d space percent d space percent D back slash N double quote comma I comma power open parentheses 2 comma I close parentheses comma power open parentheses -3 comma I close parentheses close parentheses semicolon close curly brace the end of the main now we’ begin the function power open parentheses x comma n Clos parentheses int X comma n semicolon open curly brace int I comma p p equal 1 for open parentheses I equal 1 semicolon I less than or equal to n semicolon plus plus I p = p * X semicolon return open parentheses p closed parentheses semicolon close curly brace each function has the same form function name open parentheses argument list if any followed by argument declarations if any followed by the body of the function which includes declarations and statements the functions can’t appear in either order and in one source file or two if of course the source file appears in two files you will have to say more to compile and load it then it fall appears in one but that’s an operating system matter not a language attribute for the moment we’ll just assume that both fun functions are in the same file so whatever you learned about C programs running them will not change the function power is called twice in the Line Print F open parenes double quote percent d space percent d space percent D back sln double quote comma I comma power open parentheses to comma I Clos parentheses comma power open parentheses -3 comma I close parentheses close parentheses each call passes two arguments to the power function which each time returns an integer to be formatted and printed in the expression power open parentheses 2 comma I is just an integer as two and I are not all functions produce an integer value and we’ll take this up in more detail in chapter 4 in power the arguments have to declared appropriately so their types are known before the beginning of the body of the function this is done by the line int X comma n semicolon that follows the function name the argument declarations go between the argument list and the opening left brace each declaration is terminated by a semicolon the names used for power and for its arguments are purely local to power and not accessible to any other functions other routines can use the same names for their variables without conflict this is all so true of the variables I and P within the function the i in power is unrelated to the i in main the value that power comp computes is returned to main by the return statement which is just as in pl1 any expression must occur within the parentheses a function need not return a value a return statement with no expression causes control but no useful value to be returned to the call caller as does falling off the end of a function by reaching the terminating right curly brace section 1.8 arguments call by value one aspect of C function which may be unfamiliar to programmers who are used to other languages particularly Fortran and P one in C all function arguments are passed by value this means that the called function is given the values of its arguments in temporary variables actually on a stack rather than their addresses this leads to some different properties than are seen with call by reference languages like Fortran and pl1 in which the called routine is handled the address of the argument not its value it may seem strange that the authors are calling so much attention to the fact that function arguments are passed call by value in the very first chapter most modern programming languages like python PHP or Java pass single value arguments by value by default and to pass in an argument by reference you need to do something special like adding the Ampersand in the function declaration in PHP passing by reference was the norm before c and passing by value was the norm form after C since modern languages were deeply influenced by and often written in C passing by value is the norm for modern languages it’s nice because it isolates the data in the calling code from the called code so the called code can’t easily mess with its arguments either intentionally or by mistake and create an unexpected side effect and possibly a bug or security flaw in the calling code it was a bit of work to make pass by value work in C C implements a call stack where a bit of memory is automatically allocated at each function call and C makes a copy of the values in the calling code to pass them into the called code in a way that the calling code can see the values and change their local copies without affecting the values in the calling code the same call stack that made it possible for C function arguments to be passed by value also made it possible for a function to call itself recursively Fortran functions could not be called recursively until the 1990 version of Fortran if you know your python you know that simple variables like integers and strings are passed by value while structured data like dictionaries and list are passed by reference I.E the called function can modify its arguments we will later see this in C as well talking about call Stacks recursive functions and the fact that arrays andru structured are called by reference is jumping ahead somewhat so for now let’s just remember the author’s point that normal valuable values like integers and floats are passed by value in C back to the text the main distinction is that in C the called function cannot alter a variable in the calling function it can only alter its private temporary copy call by value is an asset however not a liability it usually leads to more compact programs with fewer extraneous variables because arguments can be treated as conveniently initialized local variables in the called routine for example here is a version of power which makes use of this fact this code is on page 24 of the text power open parentheses x comma n close parentheses int X comma n semicolon open curly brace int I comma P semicolon for open parentheses p = 1 semicolon n greater than 0 semicolon minus- n Clos parentheses p = p * X semicolon return open parentheses p close parentheses semicolon close curly brace the argument n is used as a temporary variable and is counted down until it becomes zero there is no longer a need for the variable I as in the previous example whatever is done to n inside the power function has no effect on the argument that power was originally called with when necessary it is possible to arrange for a function to modify the variable in the calling routine the caller must provide the address of their variable to be set technically a pointer to the variable and the called function must declare the argument to be a pointer and reference the actual variable indirectly through it we will cover this in detail in chapter five when the name of an array is used as an argument the value passed to the function is actually the location or address of the beginning of the array there is no copying of the elements in the array by subscripting this value the function can access and alter any element of the array in the calling code this is the topic of the next section now I would recommend that you’re careful looking at the code samples in the rest of this chapter recall that in C array sizes do not grow and Shrink dynamically at all after they’re allocated the authors statically allocate character arrays capable of handling up to 1,000 characters long their code works but it is somewhat riddle so look at the next two sections as examples of cyntax with many important Concepts about character strings stored as arrays and calling patterns when passing arrays to functions as parameters that but not exactly the best practice when handling dynamically sized data back to the text probably the most common type of array in C is an array of characters to illustrate the use of character arrays and functions to manipulate them let’s write a program that reads a set of lines and prints the longest the basic outline is simple enough while there’s another line if it’s longer than the previous longest save it and its length and then at the very end print the longest line the outline makes it clear that the program divides naturally into pieces one piece gets a new line another checks it another saves it and then the rest controls the process since things divide so nicely it’ be it would be well to write them that way too accordingly let’s write first a separate function called getline to fetch the next line of input this is a generalization of get Char to make the function useful in other context we’ll try to make it as flexible as possible at the minimum get line has to return a signal about possible end of file a more generally useful design would be to return the length of the line line or zero if the end of file is encountered zero is never a valid line length since every line has at least one character even a line containing only a new line has length one I would note that here in chapter one we have changed the book’s original use of the function named getline to get underscore line in the code examples because it conflicts with Ste the stdio.h that defines getline as a library function in this chapter the authors are providing examples around function naming and linking in later chapters code samples will simply use the built-in git line without an underscore to read an input when we find a line that is longer than the previous longest it must be saved somewhere this suggests a second function copy to copy the new line to a safe place finally we need a main program to control get line and copy here is the result the sample code for this is on page 26 and it’s a bit long so you might want to show take a look at uh the sample code in a browser pound include stdi H pound Define MAX Line 1000 Main open pen and Clos pen open curly brace int Len semicolon which is the current line length int Max semicolon which is the maximum length we’ve seen so far Char Line open square bracket MAX Line closed square bracket semicolon a character array that’s the current input line and then char Save open square bracket MAX Line Clos square bracket semicolon which is a character array that has the longest line where we’re going to save it onto the code Max equals z while open parentheses open parentheses Len equals get Line open parentheses line comma MAX Line close parentheses close parthy greater than zero if Len is greater than Max open curly brace Max equals Len to save it and then copy line comma save close curly brace if open parentheses Max greater than zero I.E there was a line print F open parentheses double quote percent s double quote comma save close curly brace to end the main program now we’re in the first function getline open parentheses s comma limb closed parentheses Char s Open Bracket close bracket semicolon since it’s being passed in as an argument we don’t need to know the length of it and the next argument is int limb semicolon so getline takes a character array of unknown length and a limit that tells us the length of the character array open curly brace int C comma I semicolon four open parentheses I equals 0 semicolon I less than limb minus1 double Amper sand parentheses C equals get Char open parentheses close parentheses close parentheses not equal eof and double Amper sand c not equal single quote back sln back single quote semicolon Plus+ I and in the body of the loop it’s s open square bracket I closed square bracket equals c from now on I’ll read that S Sub I equals c at the end of the loop we say if open parentheses cble equals single quote back slash n single quote closed parenthe see open curly brace S Sub i = c Plus+ I Clos curly brace s subi equals back sl0 quot semicolon return open parentheses I Clos parentheses semicolon close curly brace and that’s the end of the getline function and now we on to the copy function copy copy open parentheses S1 S2 closed parentheses purpose of this function is copy S1 to S2 assume that S2 is big enough the Declaration is Char S1 open square bracket closed square bracket comma S2 open square bracket closed square bracket as a note these arrays have a size we just don’t know what they are and we hope that they’re large enough the body of the copy function starts with open curly braids int I semicolon I equal 0 while open parentheses open parentheses S2 sub I equals S1 sub I Clos parentheses not equal single quote back sl0 single quote plus plus I glow curly brace to end the copy function Main and getline communicate both through a pair of arguments and a returned value in getline the arguments are declared by the lines Char s open square bracket close square bracket semicolon int limb semicolon which specify that the first argument is an array of unknown length and the second is an integer the length of the array s is not specified in getline since it’s determined in main getline uses return to send a value back to the call Callum caller just as the function power did some functions return a useful value others like copy are only used for their effect and return no value getline puts the character back sl0 the null character whose integer value is zero at the end of the array it’s creating to Mark the end of the string of characters this convention is also used by the C compiler with a when a string constant like double quote h l back SL N double quote is written in a c program the compiler creates an array of characters containing the characters of the string and adds a back sl0 at the end to terminate so that functions such as print F can detect the end so that would lead to an array that has h e l l o back sln back sl0 so it’s a five character array with a new line which is a sixth character and then back sl0 which is an actual character again we don’t know the arrays don’t know their length and so you use the back sl0 as the indicator of the end of a string the percent s format specification in print F expects a string represented in exactly this form if you examine copy you will discover that it too relies on the fact that its input argument S1 is ter terminated by back sl0 and it copies this character back sl0 into the argument output argument S2 all of this implies that back sl0 is not part of normal text it’s merely a marker it is worth mentioning in passing that even a program as small as this one presents some sticky design problems for example what should Maine do if it encounters line which is bigger than its limit get line works properly in that it stops collecting when the array is full even if no new line has been seen by testing the length in the last character returned main can determine whether the line was too long then cope with it as it wishes in interest of brevity we have ignored this issue there’s also no way for a user of getline function to know in Advance how long an input line might be so get line checks for overflow on the other hand a user of the copy function already knows or should be able to find out how big the strings are so we have have chosen not to add error checking to it section section 1.10 scope external variables the variables in Main Line save Etc are private or local to main because they’re declared within main no other function can have direct access to them the same is true of the variables in the other functions for example the variable I in get line is unrelated to the i in copy each local variable in a routine comes into existence only when a function is called and disappears when the function is exited it is for this reason that such variables are usually known as automatic variables following terminology and other languages we’ll use the term automatic henceforth to refer to these Dynamic local variables chapter 4 discusses the static storage class in which local variables do retain their values between function invocations because automatic variables come and go with function in invocation they do not retain their values from one call to the next and must be explicitly set upon each entry if they are not set they will contain garbage as an alternative to automatic variables it is possible to Define variables which are external to all functions that is global variables which can be accessed by name by any function that cares to this function is rather like Fortran common or pl1 external because external variables are globally accessible they can be used instead of arguments to communicate data between functions furthermore because external variables remain in existence permanently rather than appearing and disappearing as functions are called and exited they retain their values even after the functions that set them are done an external variable has to be defined outside of any function this allocates actual storage for it the function also must be declared on each function that wants to access it this may be done either by an explicit extern declaration or implicitly by context to make the discussion concrete let’s rewrite the longest line program with line save and Max as external variables this requires changing the calls declarations and bodies of all three functions this sample code is on page 29 of the textbook and it’s pretty long but um I’ll read it for you pound include stdio.h pound Define MAX Line 1000 and we’re still outside of main Char line Open Bracket MAX Line close bracket semicolon Char save Open Bracket MAX Line semicolon int Max semicolon those are our three Global variables starting the main main open pin Clos pin open curly brace int Len extern int Max so we’re saying that this is an integer but it’s also not to be allocated inside of main extern Char Save open square bracket closed square bracket we the line length the length of the save array is defined above so we don’t need to Define it here Max equals z semicolon while double parentheses Len double left parentheses Len equals get line parentheses greater than zero parentheses if parthey Len greater than Max open curly brace Max equals Len copy open parentheses no parentheses semicolon no parameters to copy because it’s going to Simply talk to the global variables close curly brace after the loop finishes we say if open parentheses Max greater than zero then print F open parentheses double quote percent s double quote comma save close parentheses semicolon close close curly brace and that is the end of the main so now we have the getline function which is specialized to deal with external variables okay so we start get Line open parentheses closed parentheses no parameters open curly brace int comma C comma int C comma I semicolon these are local variables extern Char Line open curl curly BL brace closed curly brace semicolon this is the our reference inside of getline to the global variable line for open parentheses I equals z semicolon I less than MAX Line minus one MAX Line minus one max line is a predefined constant at compile time for I less than MAX Line minus one double Amper sand parentheses C equals get open parentheses Clos parentheses Clos parentheses not equal EF double Amper sand IE and c not equal single quot back sln single quote semicolon plus plus I line subi equals c that’s the for Loop that in effect reads characters one at a time and puts them in line after the for Loop we say if open parentheses C double equals single quote back slash n single quote close parentheses open curly brace line sub I equal C plus plus I close curly brace this ensures that we append the new line to the function line subi equals single quote back slash Z back slash that’s semicolon the that’s the string termination character return I return open parentheses I Clos parenthe see this is the length that getline is returning and then close curly brace to end the getline function and then we have the copy function and again it takes no parameters copy open parentheses close parentheses curly brace in I extern Char line Open Bracket close bracket comma save Open Bracket close bracket semic colum I equals z while parentheses open parentheses open parentheses say sub I equals line sub I Clos parentheses is not equal quote back sl0 quote plus plus I close curly brace for copy so the external variables in Main getline and copy are defined by the very first lines in the example above outside of main which state their type and cause storage to be allocated for them syntactically external definitions are just like the Declarations we used previously but because they occur outside of any function including outside the main function the variables are external before a function can use or access an external variable the name of the variable must be made known to the function one way to do this is to write an extern declaration in the function the Declaration is the same as before except for the added keyword extern in certain circumstances the external declaration can be admitted omitted if the external definition of the variable occurs in the same source file before it’s used in a particular function then there’s no need for an extern declaration in the function the extern Declarations in Main and getline and copy are thus redundant in fact common practice is to place all definition of all external variables at the beginning of the source file and then omit all extern declarations if the program is in several source files and a variable is defined in say file one and used in file two then an extern declaration is needed in file two to connect the two occurrences of the variables this topic is discussed at length in chapter 4 you should note that we are using the words declaration and definition very carefully when we refer to external variables in this section definition refers to the place where the variable is actually created or assigned storage declaration refers to places where the nature of the variable is stated but no storage is allocated by the way there is a tendency to make everything in sight an extern variable because it appears to simplify things argument lists are short and variables are always there when you want them but external variables are always there also when you don’t want them the style of coding is fraught with Peril since it leads to programs whose data connections are not at all obvious variables can be changed in unexpected and even inadvertent ways and the program is hard to modify when it becomes necessary the second version of the longest line program is inferior to the first partly because of these reasons and partly because it destroys the general generality of two quite useful functions by hardwiring them into the names of the variables they will manipulate section 1.1 summary at this point we have covered what might be called the conventional core of see with this handful of building blocks it’s possible to write useful programs of considerable size and it probably a good idea if you paused long enough to do so the exercises that follow are intended to give you suggestions for programs of somewhat greater complexity than the ones presented in this chapter after you have this much C under control it will be well worth your effort to read on for the features covered in the next few chapters are where the power and expressiveness of the language begin to become apparent this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand stand Its Right Place in a historical context amidst the major changes of the 1970s and 1980s as computer science evolve from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the ideal book to learn SE programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the sea language was evolving as it laid the groundwork for a future with portable [Music] applications welcome to chapter 2 types operators and expressions so again I’m not going to tell you everything the book I want you to read the book the book does a great job I’m just going to call your attention to some things that that might seem a little bit weird if you’re coming from a language like python or JavaScript or even PHP where things are objects and you don’t even notice it you’ve been using objects your whole career and you didn’t even realize it so we’re going to talk about data types and storage allocation one of the things that you just got to part of what I love about teaching this historical view on C is that we have to talk about storage allocation um float and double worked out pretty well um partly because in the early days of C they did them all in software so they just made them easy and they made them work well um they weren’t expected expected to be fast the things that they wanted to be super fast were like the integer and bite bite data character data uh type conversion and then and there’s a story that connects integer division in Python 2 and all that pain of Python 3 and how division changed and why it was the way it was and how that worked and again it has to do with performance and simple decisions that got made sadly bitwise logical operations we’ll talk about them you’re probably not going to use them but it’s really important in a historical context to understand why they were so thorough and it really had to do with the fact that because of word oriented computers switching to character oriented computers all of us programmers were thinking in words and if we didn’t see shifting and masking and bitwise stuff we’d be like I can’t program in this thing cuz a lot of our work work in those word oriented computers was masking and shifting and so it’s like we had to have it um we didn’t use it as much as we uh we could have thought so let’s start with uh division in the good old days we were not worried too much about doing Division and if you were doing Division and you cared about the division uh you were probably doing it in floating point because you were doing SCI scientific Computing and you did that on supercomputers you didn’t do that on general purpose computers Unix is really designed for general purpose computers and in general purpose computers you you sort thought to yourself you know why is division that important and I’m sure they made some decision somewhere I do not know why it probably had to do with one of the computers they were working with had truncating division in hardware and non-truncating Division in software I don’t know or rounding division or whatever a lot of those computers didn’t even have fast floating point so some of the computers they were working on did all the floating point in software and maybe they even did integer division in software with loops and stuff uh but we don’t know I I don’t exactly know but they made this decision to do integer Division truncating and this was one of the biggest things of going from python 2 to Python 3 that was the most painful so python 2 was like over 25 years old and it wasn’t that long after C that python 2 was written python 2 was written in C and uh python 2 to Python 3 transition was a big deal it took a long time it took 12 years to get there but python 2 was like the greatest thing ever except for a few things because python 2 was so related to C the strings in Python 2 natively were asky not Unicode which meant it was it it couldn’t even do like Spanish characters let alone uh Asian characters print was part of the language and the programmers got a lot of help like they got automated code converter and syntax Checkers and they did all kinds of things where they would take certain libraries like the print function and then would put it in Python 3 then we backport it to python 2 so you could like switch from using the print statement to the print function and there were lots of things that made this transition as easy as possible the one thing that they really never could crack and we just had to bite the bullet and get used to it was python 2 returns integer and the division is truncated so if you do three four three divided by four is zero in Python 2 and in Python 3 it’s integer 3 divided by integer 4 becomes floating Point 0.75 because that’s what calculators do and the python 2 Division truncated because it didn’t seem like it mattered much back in the 80s and C integer division truncated so 3/4 in C was zero and 3/4 integer 3/4s was zero in C and so it was in Python and 20 plus years later that was the one thing we couldn’t autocon convert and Python 3 does it the way python does so it’s less of a problem in C because C is actually a strongly typed language which means if I wanted to say 3 over4 I knew whether it was integers or floats and I could force that um and so but in in Python you just what’s the variable and so that it imputes the variable type from the result of that expression where C has got a declare X as a float or a double or an in so when a c programmer writes a division they need to know they know already that they have to cast the values or use float constants to trigger type conversion and expressions so as you’re looking through the chapters seeing these type conversions and casting uh that’s the kind of problem that was solved but then python simplified it and then made it really kind of kind of luck uh kind of yucky and then they had to fix it it’s better in Python 3 and most of you have just learned Python 3 so consider yourself lucky so another thing they talk about a lot and it has to do with as we start thinking about um storage allocation on a bit bybit basis we tend to need to know how how to represent and print things out not just in base 10 and it really has to do with the fact that um base 8 and base 16 are better at printing out binary data raw data 10 is the number like where you know how many pizzas do you want I want 16 pizzas or 22 pizzas it’s it’s our natural the way we think way humans think so talk about to talk about bases let’s start by just reviewing what base 10 means there is you know the ones place and the 10’s place and of course later there’s hundreds and thousands but the the four and 42 represents 4 10 so you can think of it as 4 * 10 which is 40 and then the one’s place is two more so 42 is 40 + 2 which is kind of redundant we do that instinctively so now let’s take a look at base 8 so in 42 in base 10 is 52 in base 8 and what base 8 is really doing is it means that the digits in the two places means something different meaning the five and 52 represents an eight so there’s 58s in this number that we’re dealing with and two ones and so 5 * 8 is 40 and 2 * 1 is 2 and so converting from 52 base 8 to 52 base 10 we get to 42 and we used base 8 and again base 8 lines up perfectly with base two because three base 2 digits equals one base 8 digit and I did a lot of Base 8 in the early days but base 16 is really the way we tend to do it now because it’s a little more dense the rightmost place is still the ones and the next place is the 16s so the two in the 16’s Place represents 2 * 16 or 32 and then what’s left over is 10 which we represent with an A and 10 + 32 is 42 now the problem is is we only have digits 0 through n so by convention 10 is a 11 is B 12 is C 13 is D 14 is e and 15 is f f is all the ones it’s four ones I know that I just like four ones so I can convert hex from hex to base two like very very quickly and if I need to look at some a dump of some memory I can dump it in HEX and then I can when I need to I can convert it to base two so just converting back and forth between base 16 and base two uh is a bit of a trick and I don’t really care if you do much of this you can grab this sample code and play with it this is a conversion from base 10 Base number like 1 2 3 4 to base eight and then base 16 and the way this one does it is it converts the number in effect from the left the rightmost number up to the low the low digit up to the high digit and so what you do is you use the modulo function and so you take your number one 2 3 4 and you take it modulo 8 and what’s left over as remainder is two so that’s the far right number in the new one and then you chop it off with integer division you chop that off and see what’s left and that’s 154 and you’re accumulating the two in the converted number and then you take the modulo of 154 modulo 8 and you get two and then you chop off the next eight with divide by integer divide by four and you get 19 so now you your bottom two digits are two two and then you do 19 modulo 8 and you get three and that next digit from the right is a three then you divide by eight integer divide by 8 to get what’s left over and that’s below eight and so that the fourth digit from the right is a two so 1 2 3 4 in base 8 is 2 322 and you can do the exact same thing the difference is you got to look up the digits because the base 16 needs the ab bcde e f and so I make a little string now go we’re talking python here and so we do a we do repeatedly modulo 16 integer divide by 16 modulo 16 integer divide by 16 modulo 16 integer divide by 16 and so we take 1 2 3 4 and when we convert it to base 16 it’s kind of comes up from the bottom as 2 D4 which we read 4d2 so that’s just an algorithm that converts these you tend to you tend to use this modulo and that’s how can convert from one base to another now it’s not critical in this class we’re not going to spend a lot of time converting bases but we just need to be aware that uh because there was so much awareness of how bits were stored we tended to print a lot of stuff out in heximal or in base eight and so I just want you to to know what those things are so if you look for example at the asy chart that we’ve already seen you see that it shows us that the letter a is 65 and in HEX it’s 41 and in octal it’s one1 and in base two or binary it’s one and a bunch of zeros and a one and so this is this is just something that’s making and you know in the old days you had to be just much more aware of the real bits inside the computer and hex and base 8 hex and octal were better ways to sort of know what the bits were um you know so there you go now another thing that uh C really was one of the early Innovative language was bite addressable computers right and so we don’t think much everything’s a string and we can look at the characters in The String but in the old days before c and the generation of computers that kind of triggered c um we didn’t have characters you couldn’t in the hardware load a character you could only load a word and then you had to find the character within the word and uh the language that really was the immediate precursor to C was the B language and the difference was is the B language was a really cool low-level word oriented language and then the C language came from B and became a bite oriented language and so C sort of like said we’re going to do bite and dressing so if I take a look at the way I had to do character character support in a CDC 6500 which is the computer I was using in like 1975 1976 it was a scientific computer it it barely cared about printing characters it didn’t even have lowercase it had 60 bit words and packed six-bit uppercase characters into those words and it used a series of zeros to fill it up and so if I put the word hello world words hello world into the CDC 6500 it took two words and hello space w r l was packed into the first word and D was in the second one and then we did what was called zero filling the rest of those characters were all zeros the integer zero 0000000000 Z and if I wanted to know what the fifth character of this two-word string was like the O for example you would create a mask and in that mask you would have zeros where you wanted to get rid of stuff and ones where you wanted to copy stuff so you would take hello world and you’d run it through this mask with the bits in the right position and then you would get the O and all zeros in the rest of the word and then you would have to shift it half the way down because there were 10 characters so you had to shift it five characters to the right and then you would have the letter o in the bottom six bits of that word and then I could write an if statement that’s how I would say if the fifth character is the letter O I had to extract the fifth character by hand so you can imagine how happy I was when I began to see programming languages that allowed me to use more of an aray syntax and say string sub five or even in this case 0 1 2 3 four string sub four but I could treat characters as an array the notion of a character array for me in the 197 in 1977 was what why would you you know you couldn’t do that right and so we you know a whole generation of programmers went go through their entire career without having to do any masking and shifting so this chapter is going to talk to you about it and you might say well if C was so good at doing it for you um why did they show it and that is that people like me would not have had respect for this language if it weren’t for the fact that they had good masking and shifting CU we were doing that all the time in these word oriented computers and word oriented languages and just as C and Unix were making the world safe for characters then we had this other problem and I’m only going to talk a little bit about this just don’t worry about it the concept of indianness so if you’re loading words do you load them with the least significant digits first or the most significant digits first and most comp computers were big Indian and big Indian to us software developers made the most sense because that’s how we thought it would lay out but it turns out that a few processors wanted to load if they were going to do an ad they wanted to Lo load the low end of the integer first so they could start the addition while they’re adding bringing in the high end and they could overlap the load and the ad and then Intel which in those days wasn’t all that popular but they were so so interested in the microprocessor performance that they became little Indian so that they loading and addition were fast and so we’ve been stuck with a lot of little Indian microprocessors since then and big Indian and little Indian it’s it’s one of the harder things to solve really it really is and so I’m going to show you some code I really I really all I want you to do is feel sorry for those of us who had to figure out little Indian and big Indian and let me just give you an out line of what this code is doing I’m not going to walk through it in detail it just is kind of scary so and and you’re not even going to understand most of this code until chapter 5 it’s just let’s just talk a little bit about the bits and how masking and shifting would have worked if we didn’t have character arrays so what I’m doing in this program is I’m creating a character array the length of this character array is hello world plus one for the Terminator h e l l o space w r l d so 11 + 1 uh should be 12 characters are allocated and then what I’m doing in this next line that says in Star SII is I’m actually saying I want to take the same storage and pretend it’s an integer array and so that’s what that line is is the it takes the address of the beginning of the first character and convert it from a pointer to a character which is Char s is a pointer to a character and have it be a pointer to an integer and again I’m sort of like jumping ahead in chapter 5 so I’m I’m not expecting to understand all this I’m just just making you aware of it so in those first two lines I’ve got a character array and an integer array okay and this is a this is a 32-bit integer and so that means that um the characters are stuck into 32-bit integers in a little ending way and so if you look that means that if you just look at memory from left to right that the the lowest of the first four which is 32 bits the the first character that comes out is the L right and you can see the the little Indian which which in your mind should thinks it should be shifted but it’s because this is running on a little Indian computer and different computers will give you different results and this is a a little endian example and so you can see with masking and shifting where I’m going to try to get the E out which would normally be the second character but it’s kind of the second from the bottom of the first integer and so what I do is I make a mask and I’m going to print this out I take FF which is uh eight bits of ones and then I shifted up eight characters to the left and you can see that in the printout and then I mask out that character which is the e but then it’s in the wrong position and then I have to take that masked result and I have to shift it back down eight so that it’s in the bottom part so now I can check to see what that letter is this is how I would pull out the second character of a string so I could check to see if it’s an e because I can’t compare directly the second character of string right in Python you’re like why are we doing this that’s why you build a string class instead of use a character array for this and i’ I made it even worse by like starting with taking a character array and viewing it as an integer array and then playing with the integers so you don’t have to understand this just be thankful that you use Python and if you don’t use Python use C and whether it’s a big Indian or a little Indian machine you can you can treat an array of characters as an array of characters and you can get the third one or the fifth one with with a square bracket notation okay storage allocation storage allocation storage allocation so a summary of this lecture is we talked about number base conversion we talked a little bit about division why the python 2 integer division happened I I don’t really have a really good answer for that concept of integers and words and bites and masking and shifting and characters just because these topics are covered in this chapter and they will feel very foreign to you and unnatural but just give them a shot read through them understand them and uh and they’ll make sense later later we’re going to learn about structures and pointers and addresses advancing and stuff like that it’ll all make a lot more sense coming up [Music] welcome to C programming for everybody my name is Charles sance and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter 2 types operators and expressions variables and constants are the basic data objects manipulated in a program declarations list the variables to be used and state what typee they have and perhaps what their initial values are operators specify what is to be done to them Expressions combine variables and constants to produce new values these are the topics of this chapter section 2.1 variable names although we didn’t come out and say so there are some restrictions on variable and symbolic constant names names are made up of letters and digits the first character must be a letter the underscore counts as a letter it is useful for improving the readability of long variable names Upper and Lower cases are different traditional C practice is to use lowercase for variable names and all uppercase for symbolic constants only the first eight characters of an internal name are significant although more may be used for external names such as function names and external variables the number must be less than eight because external names are used by various assemblers and loaders appendix a list the details furthermore keywords like if else in float Etc are reserved you can’t use them as variable names and they must be in lower case I would note that in modern CA languages the limitation of the first eight characters of a variable name being unique has been extended in most C variants at least 30 characters of a variable are treated as unique the character limitation was to reflect the typical limitation of identifier length in Assembly Language programming and runtime linkers of the time naturally it’s wise to choose variable names that mean something that are related to the purpose of the variable and are unlikely to get mixed up typographically section 2.2 data types and sizes there are only a few basic data types in C Char which is a single bite capable of holding one character in the local character set int an integer typically reflecting the natural size of integers on the host machine float a single precision floating point and double is a double Precision floating point in addition there are a number of qualifiers which can be applied to int short long and unsigned short and long refer to different sizes of integers unsigned numbers obey the Ari arithmetic of modulo 2 to the N where n is the number of bits in an INT unsigned numbers are always positive the Declarations for qualifiers look like short int X semicolon long int y semicolon unsigned int Z semicolon the word int can be omitted in such situations and typically is the Precision of these objects depends on the machine at hand the table below shows some representative values on a deck pdp1 a Char is 8 Bits an INT is 16 a short is 16 a Char is 32 a float is 32 a double is 64 on a Honeywell 6000 which uses asky character set a Char is nine bits an INT is 36 bits a short is 36 bits a Char is 36 bits and a float is 36 bits and a double is 32 bits on the IBM 370 which is idic in its character set a Char is 8 Bits an INT is 32 bits a short is 16 bits a Char is 32 bits a float is 32 bits and a double is 6 64 bits and so on the intent is that short and long should provide different lengths of integers where practical int will normally reflect the most natural size of a particular machine as you can see each compiler is free to interpret short and long as appropriate for their own Hardware about all you should count on is that short is no longer than long in this table we see that in the mid1 1970s C was designed to support a range of computer Generations the pdp11 was a common previous generation computer that had less memory so variable sizes were kept small the more modern computers in the chart had a bit more memory and could afford to have slightly larger larger sizes the idea of a natural size is the size that could be loaded computed and stored in usually a single machine language instruction you knew as a programmer that when you used int the machine code you would generate would not need to include extra instructions for a simple line of code like xal x +1 semicolon modern int values in C are 32 bits long and long values are 64 bits long even though modern computers can do 64-bit computations in a single instruction using the shorter int type when appropriate can save on memory storage and memory bandwidth using int values interestingly the length of a 32-bit int leads to a Unix and C problem with dates that is called the year 2038 problem a common way to represent time in Unix C programs was as a 32bit integer of the number of seconds since January 1st 1970 it was quick and easy to compare or add or subtract these second counter dates in code and even in databases but the number of seconds since January 1st 1970 will overflow a 30-bit number on the 19th of January in 2038 by now in order to avoid systems in order to avoid problems most systems have converted to storing these number of second values in long or 64-bit values which gives us almost 300 billion years until we need to worry about overflowing second Tim counters again back when C was developed we had two different character sets and two different character variable lengths the world generally standardized on the asy character set for the core Western characters and the Unicode utf8 to represent all characters in all languages worldwide but that is a story for another time for now just think of the Char type as also a bite type it is8 bits in length and can store asy modern languages like python or Java have excellent support for wide character sets in our historical look at C we will not cover wide or multi-b characters also if you look at the float and double types you will see different bit sizes even worse each of these computers in the 1970s did floating Point computation using slightly different hardware implementations and the same code run on different computers would give slightly different results and have unpredictable Behavior un overflow underflow and other extraordinary floating Point operations this was solved by the introduction of the i e 754 standard in 1985 which standardized floating Point format this standardized both the length of the float in the double but also ensured that the same set of floating Point calculations would produce the exact same result on different processors 2.3 constants int and Float constants have already been disposed of except to note that the usual 123.456 eus 7 or 0.12 E3 scientific notation for floats is also legal every floating Point constant is taken to be double so the E notation serves for both float and double long constants are written in the style 1 2 3 capital L an ordinary integer constant that is too long to fit into an INT is also assumed to be a long there is a notation for octal and heximal constants a leading zero on an INT constant implies octal and a Le meting 0x or 0x uppercase indicates heximal for example the decimal 31 can be written as 037 in octal and 0x1f or 0x1f where f is capitalized in HEX heximal and octal constants may also be followed by the letter L to make them long a character constant is a single character written in single quotes as in quote X quote the value of the character constant is the numeric value of the character in The Machine’s character set for example the asking character set zero or quote Zer quote is 48 and in idic quote Zer quote is 240 both quite different from the numeric value zero writing quote zero quote instead of a numeric value like 48 or 240 makes the program independent of the particular value character constants participate in numeric operations just like any other numbers although they are most often used in comparisons with other characters a later section treats conversion rules certain non-graphic characters can be represented in character constants by escape sequence like back sln for New Line back SLT for tab back sl0 for null back slashback slash for backs slash itself and back slash quote for single quote Etc these look like two characters but they’re actually only one in addition an arbitrary bite-sized P bit pattern can be generated by writing single quote back slash and then three digits single quote where the three digits is 1 to three octal digits as in pound define space form feed single quote back 014 single quote which is asking for a form feed we mentioned form feed here because in the 1970s we sent much of our output to printers physical printers a form feed was the character we would send to the printer to a to advance to the top of a new page the character constant quote back sl0 quote represents the character with the value zero quot back sl0 quote is often written instead of zero to emphasize the character nature of some expression expression a constant expression is an expression that only involves constants such expressions are evaluated at compile time rather than runtime and accordingly may be used in in any place a constant may be as in pound Define MAX Line 1000 Char line Open Bracket MAX Line plus one close bracket semicolon or seconds equals 60 * 60 * hours a string constant is a sequence of zero or more characters surrounded by double quotes as in double quote I space am space a space string double quote or double quote double quote which is a way to show an empty string the quotes are not part of the string but only serve to delimit it the same Escape sequences used for character constants apply in strings back SL double quote represents the double quote character technically a string is an array whose elements are single characters the compiler automatically places the null character back sl0 at the end of each such string so programs can conveniently find the end this representation means that there is no real limit on how long a string can be but programs have to scan one to completely determine its length length the physical storage required is one more location than the number of characters written between the quotes the following function sterin taking the parameter s Returns the length of the character string s excluding the terminal back sl0 sterlin open parentheses s closed parentheses Char s Open Bracket Clos bracket semicolon open curly brace int space I semicolon I equal 0 semicolon while parentheses S Sub I exclamation equals quote back sl0 quote close parentheses plus plus I semicolon return parentheses I parentheses semicolon Clos curly brace be careful to distinguish between the character constant and a string that contains a single character single quote X single quote is not the same as double quot X double quote the former is a single character used to produce the numerical value of the letter X in the machine’s character set the latter is a character string that contains one character the letter X and a back sl0 section 2.4 all variables must be declared before use although certain declarations can be made implicitly by context a declaration specifies a type and is followed by a list of one or more variables of that type as in int lower comma upper comma step semicolon Char C comma line Open Bracket 1000 close bracket semicolon variables can be distributed among declaration in any fashion the list above could be could be equally well written as in lower semicolon int upper semicolon int step semicolon Char C semicolon Char line Open Bracket 1000 close bracket semicolon the latter form takes more room but it is convenient for adding a comment to each declaration or for subsequent modifications variables may also be initialized in their declaration although there are some restrictions if the name is followed by an equal sign in a constant that serves as an initializer as in Char backs slash equals single quote backs slashback slash single quote semicolon int I equals 0 semicolon float EPS equal 1.0 eus 5 semicolon if the variable in question is external or static the initialization is done once only conceptually before the program starts executing explicitly initialized automatic variables are initialized each time the function they are in is called automatic variables for which there is no EXP explicit initializer have undefined that is garbage values external and static variables are initialized to Zero by default but it is a good style to State the initialization anyway we will discuss initialization further as new data types are introduced section 2.5 arithmetic operators the binary operators are plus minus asterisk and Slash and the modulus operator percent there is a unary minus but no unary plus integer division truncates any fraction fractional part the expression x% y produces the remainder when X is divided by Y and is thus zero when y divides X exactly for example a year is a leap year if it is divisible by four but not by 100 except years divisible by four are leap years therefore if parentheses year percent 4 equal equal 0 and and year percent 100 not equal zero or year perent 400 equal equal Z it’s a leap year else it’s not the percent operator cannot be applied to float or double the plus and minus operators have have the same precedence which is lower than the identical precedence of asterisk slash and percent which are in turn lower than unary minus arithmetic operators group from left to right a table at the end of this chapter summarizes precedence and associativity for all operators the order of evaluation is not specified for associative and communative operators like asterisk and plus the compiler May rearrange a parenthesized computation involving these thus A Plus open parentheses B plus C closed parentheses can be evaluated as open parentheses a plus b closed parentheses plus C this rarely makes any difference but if a particular order is required explicit temporary variables might be used the action on overflow or underflow depends on the machine at hand I would note that the above paragraph allows the compiler I would note that the above paragraph allowing the compiler to reorder computations even in the parenthe presence of parentheses is known as the k&r C Arrangement license as the author state it almost never makes a difference unless an expression contains a value computed in a function call or is there a poined lookup to find a value for the computation that might fail the the rule was subtly adjusted in the iso version of C but ISO C still does not strictly Force the order of otherwise communative operations even in the pr presence of parentheses the good news is that as long as you keep your expression simple you don’t have to worry about this rule sometimes the real value of parentheses is to communicate your intentions to the human readers of your code if you are writing code that depends on the order of overflow function calls and pointer D references in a single mathematical expression perhaps you should break your expression into multiple statements section 2.6 relational and logical operators the relational operators are greater than greater than or equal less than less than equal they all have the same precedence just below them in precedence are the equality operators double equals and exclamation equals which have the same precedence relational have lower precedence than arithmetic operators so expressions like I less than limb minus one are taken as I less than open parentheses limb minus one closed parentheses as would be expected more interesting are The Logical connectives double Amper sand and double vertical bar and and or Expressions connected by double Amper sand or double vertical bar are evaluated left to right and the evaluation stops as soon as the truth or falsehood of the result result is known these properties are critical in writing programs that work for example here is a loop from the input function getline which we wrote in chapter 1 for parentheses I equal 0 semicolon I less than limb minus one double Ampersand parentheses C equals get Char open parentheses closed parentheses closed parthy not equal single quote back slash n single quote double ampersand C exclamation equal e f semicolon Plus+ I close parentheses S Sub I equals c clearly before reading a new character it is necessary to check that there’s room to store the array so the test I less than limb minus one must be made first not only but if this test fails we must not go on and read another character similarly it would be unfortunate if C were tested against eof before get Char was called the call must occur before the character C is checked against do the Precedence of double Amper sand and is greater than that of double vertical bar or and both are low lower than the relational inequality operators so expressions like I less than limb minus one double %an parentheses C equals get Char open pen Clos P Clos pin not equal single quote back sln single quote double Ampersand c not equal EF needs no extra parentheses but since the parentheses of not equals is higher than assignment parentheses do need to be added in open pry equals get Char open print close print close print not equal back sln to achieve the desired result let’s take a brief digression one of the great debates of the 1970s was how to use structured programming to avoid any use of go-to statements that lead to completely unreadable spaghetti code structured code was easier to read debug and validate structured code advocated for if then else else if while do loops and do while Loops where the loop exit test was at the top or the bottom of the loops respectively there was a move from flowcharts with lines boxes and arrows to to structur programming techniques like Nashi nerman diagrams that youed used nested boxes to emphasize the structured nature of the code the proponents of each approach tended to approach the problem based on the language they used alal and Pascal programmers were strong Advocates of structured programming and those languages had syntax that encouraged the approach Fortran programs had Decades of flowchart use and style flowchart style thinking intended to avoid full adoption of structured programming Kuran and Richie chose a middle path and made it so that c could support both approaches to avoid angering either side of the structure programming debate one area where the structured code movement kept hitting a snag was implementing a loop that reads a file and processes data until it reaches the end of file the loop must be able to handle an empty file or no data at all there are three ways to construct a read and process until EOS Loop and none of the approaches are ideal the loop constructions that you can do are a top tested loop with prime a priming read before the loop a bottom tested loop with a read is the first statement in the loop and then if then else is the rest of the body of the loop a top tested infinite loop with a priming read and a middle test and exit and a top tested loop with a side effect read in the test of the loop which is the way that kernigan and Richie chose to document in this chapter all of this serves to explain the syntax while open parentheses open parentheses C equals getchar open print Clos print close parentheses not equal eof close parentheses open curly brace body the loop closed curly brace this construct is a topped tested Loop which most programmers prefer and it folds the priming read and puts its value inside the variable C but since getch might also return eof we need to check if we actually receive no data at all and need to avoid executing the body of the loop or exit the loop if eof were defined as zero instead of n minus one the loop could have been written while open parentheses C equals getchar open paren Clos paren Clos parentheses open curly brace body of the loop Clos curly brace now the getar function returns a character or zero and the test itself is looking at the side side effect or residual value of the assignment statement to decide to start and or continue the loop body the problem with using zero is end a file if you are reading a binary file like jpeg data a zero character might make perfect sense and we would not want to incorrectly end the loop because of a zero character in input data that does not end a file so we get the double parentheses syntax the side effect call to get Char and test the return value within the while test I’m quite confident that this is far more detail that you wanted he in Chapter 2 but is it is as good a time as any to understand how much thought goes into a programming language how it is designed and documented by the time we finish chapter 3 and look at the break and continue statements which are in languages like Python and Java you will see that this 50-year-old structured programming debate debate is still unresolved in the minds of many software Developers back to the book The unary negation operator logical negation operator converts a nonzero or true operand into zero and a zero or false operand into one a common use of exclamation which we often call bang is in constructions like if open parentheses exclamation point inward closed parentheses rather than if open parentheses inward equal equal zero it is hard to generalize about which of these two forms is better construction like exclamation inw read quite nicely as if not in word but more complicated ones can be hard to understand section 2.7 type conversions when operands of different types appear in Expressions they are converted to a common type according to a small number of rules in general the only conversions that happen automatically are those that make sense such as converting an integer to a floating point in an expression like f+ I Expressions that don’t make sense like using a float in a subscript are disallowed first chars and ins may be freely intermixed in arithmetic Expressions every chart in an expression is automatically converted to an INT this permits considerable flexibility in certain kinds of character Transformations one is exemplified by the function a toi which converts a string of digits into its numeric equivalent a to Y open parentheses s closed parentheses Char s Open Bracket close bracket semicolon open curly brace int I comma n semicolon n equals z for parentheses I equal 0 semicolon S Sub I greater than or equal to quot 0 quote double Ampersand s subi less than or equal to D quote 9 quote semic Plus+ I closed parentheses n = 10 asterisk n plus s subi minus single quote 0 single quote semicolon return open parentheses n close parentheses semicolon close curly brace to end the function as we discussed in chapter one the expression S Sub I minus quot 0 quote gives the numeric value of the character stored in s subi because of values 0 1 Etc form a continuously increasing positive sequ positive sequence another example of the card chart int conversion is the function lower which mats A Single Character to lowercase for the asky character set only if the character is not an uppercase letter lower is returned unchanged here’s a function lower open parentheses C closed parentheses int c semicolon open curly brace if open parentheses C greater than or equal to quote capital a quote double Amper C less than or equal to quote Z quote uppercase Z parentheses return open parentheses C plus quote lowercase a quote minus quote uppercase a quote Clos parentheses semicolon else return C this works for asky because the corresponding upper and lowercase letters are a fixed distance apart as numeric values and each alphabet is contiguous there is nothing but letters between a and z this later observation is not true of the idct character set on IBM 360 370 architectures so this code fails on such systems it converts more than letters there is one subtle point about the conversion of characters to integer the language does not specify whether character V where the variables of type Char are signed or unsigned quantities when Char is converted to an INT can it ever produce a negative number unfortunately this varies from machine to machine reflecting differences in architecture on some machines pdp1 for instance a Char whose leftmost bit is one will be converted to negative integer using S extension on others a Char is promoted to an INT by adding zeros at the Left End and is thus always positive the definition of c guarantees that any character in The Machine standard character set will never appear to be negative so these characters may be used freely in Expressions as positive quantities but arbitrary bit patterns stored in character variables may appear to be negative on some machines yet positive on others the most common occurrence of this situation is when the value Nega -1 is used for eof consider the code Char c semicolon C equals get Char open PR Clos pren semicolon if open pren couble equals eof Clos PR dot dot dot on a machine which does not do sign extension C is always positive because it returns a Char yet eof is negative as a result this test always fails to avoid this we have been careful to use int instead of char for any variable which holds a value returned by the function getchar the real reason for using int instead of char is not related to any questions of possible sign extensions it is simply that get Char must return all possible characters so that it can be used to read arbitrary input and in addition a distinct eof value thus its value cannot be represented as a car Char but must instead be stored as an INT as an aside since the book was written before the getar function was standardized the text is somewhat vague in this section shortly after the book was published getchar was put into the stdio.h library and declared to return an integer so as to accommodate all possible characters and the integer minus one value to indicate the end file the above code would be better written with C declared as an integer int c semicolon C equals get Char open PR Clos PR semicolon if open PR c equal eoff Clos PR dot dot dot while the conversion from Char to int may or may not have S extension and yes it still depends on the implementation 50 years later the conversion from int to char is predictable with the top bits being simply discarded if you’re using the library function gets to read a file line by line we don’t need to worry about this converion since git s returns a pointer to a character array I.E a string it indicates it reach has reached end of file by returning the null pointer I.E there is no more data to give back to the textbook another useful form of automatic type conversions is that relational expressions like I greater than J and logical Expressions constructed by double Amper sand and double vertical bar and Andor respectively are defined to have the value one if true true and zero if false thus the assignment is digit equals c greater than or equal to quote 0 quote double % C less than or equal to quote 9 quote sets the variable is digit to one if C is a digit and zero if it’s not in the if test of a in a test part of an if while or for True just means non zero implicit arithmetic conversions work much as expected in general if an operator likes C or asterisk for multiplication which takes two operators I.E a binary operator if it has operate operan of different types the lower type is promoted to the higher type before the operation proceeds and the result is the higher type more precisely for each arithmetic operator the following sequence of conversion rules is applied Char and short are converted to int and Float is converted to double then if either operand is double the other is converted to double and the result is double otherwise if either operand is long and the other is converted to Long the result is long otherwise if either operand is UN operand is unsigned the other is converted to unsigned and the result is unsigned otherwise the operand must be int and the result is in note that all float values in an expression are converted to double all floating Point arithmetic in C is done in double precision conversions take place across assignments the value of the right side is converted to the type of the left which is the type of the result a character is converted to an integer either by ass sign extension or not as described above the re reverse operation in Char is well behaved excess high order bits are simply discarded thus in in I semicolon Char c semicolon IAL C Cal I the value of C is unchanged and this is true true whether or not sin extension is involved if x is float and I is int then xal I and ials X both cause conversions float to in causes truncation of any fractional part double is converted to float by rounding longer ins are converted to Shorter ones by or to chars by dropping excess high order bits since a function argument is an expression type conversions also take place when arguments are passed to functions in particular Char and short become int and Float becomes double and that is why we have declared function arguments to be int and double even when the function is called with Char and Float finally explicit type conversions can be forced also we call it coerced in any expression with a construct called the cast in the construction open parentheses type name closed parentheses expression the expression is converted to the named type by the conversion rules above the precise meaning of cast is in fact as if the expression were assigned to a variable of the specified type which is then used in place of the whole construction for example the library square root sqrt expects a double argument and will produce nonsense if inadvertently handed something else so if n is an integer sqr r t open parentheses open parentheses double closed parentheses n closed parentheses converts n to double before passing it to sqrt note that the cast produces the value of n in the proper type the actual content of n is not altered the cast operator has the same pre precedence as other unary operations as is summarized in the table at the end of this chapter section 2.8 increment and decrement operators C provides two unusual operators for incrementing and decrementing variables the increment operator Plus+ adds one to its operand the decrement operator minus minus subtracts one we have frequently used plus plus to increment variables as in if open parentheses C equals equals single quote back sln single quote closed parentheses Plus+ n l semicolon the unusual aspect is that Plus+ and minus minus may be used either as prefix operators I.E before the variable as in Plus+ n or postfix after the variable n++ in both cases the effect is to increment n but the expression the residual value of the expression Plus+ n increments n before using its value while n++ increments n after its value has been used this means that in a context where the value is used not just the effect Plus+ n and n++ are different if n is five then xal n++ semicolon sets X to 5 the old value but x = ++ n semicolon sets X to six the new value in both cases n becomes six the increment and decrement operators can only be applied to variables an expression like x equals open parthey i+ J closed parth parentheses Plus+ is illegal in a context where no value is wanted just incrementing effect as in if open parentheses C double equals single quote back slash n single quote closed parentheses n l++ semicolon choose prefix or postfix according to taste but there are situations where one or the other is specifically called for for example consider the function squeeze s comma C which removes all occurrences of the character C from the string s squeeze open parentheses s comma C closed parentheses Char s Open Bracket close bracket semicolon int c semicolon open curly brace int I comma J semicolon for parentheses i = j = 0 semicolon S Sub I I not equal to single quote back sl0 single quote semicolon i++ closed parentheses if open parentheses S Sub I not equal to C Clos parentheses S Sub j++ Clos parentheses equals S Sub I and outside the for Loop totally s subj equals back slash quote s subj equals quot back0 quot semicolon close curly brace each time a non c a character other than what’s in the variable C occurs is copied into the current J position and only then is J incremented to be ready for the next character this is exactly equivalent to if open parthey S Sub I not equal to C closed parentheses open curly brace s subj equal s subi semicolon j++ semicolon Clos curly brace another example of a similar construction comes from the getline function we wrote in chapter 1 where we can replace if open parentheses C equals quote back slash n quote Clos parentheses open curly brace s subi equals c semicolon Plus+ I semicolon Clos parentheses by the far more compact if parentheses c equal back sln quot close parentheses S Sub i++ equal c semicolon in a third example the function stir cat concatenates the string t to the end of the string s stir cat does assume that there’s enough space in s to hold the combination here’s the code stir cat open parentheses s comma T closed parentheses Char s Open Bracket close bracket comma T Open Bracket close bracket semicolon open curly brace int I comma J semicolon i = j = 0 semicolon while open PR S Sub I not equal single quot back0 single quote Clos pren i++ in this we’d find the end of s while open parentheses open parentheses S Sub I ++ equals T sub j++ close parentheses not equal back sl0 close parentheses semicolon that code copies the rest of T into s Clos curly brace as each characters copied from T to S the postfix Plus+ is applied to both I and J to make sure they are in position for the next pass through the loop section 2.9 bitwise logical operators C provides a number of operators for bit manipulation these may not be applied to float or double Amper sand is bitwise and vertical bar is bitwise inclusive or carrot is bitwise exclusive or less than less than is left shift and greater than greater than is Right shift and till is one complement and it’s a unary operator the bitwise and operator Ampersand is often used to mask off off some set of bits for example c equal n Ampersand 0177 sets to zero all but the lower seven bits of n the bit wise or operator is used to turn bits on xals X vertical bar mask sets to one the X bits that are set to one in mask you should carefully distinguish the bitwise operator Amper sand and vertical bar from The Logical connective giv double Amper sand and double vertical bar which imply left to right evaluation of a truth value for example if x is 1 and Y is two then X single Amper sand Y is zero while X double Amper sand Y is one think about that for a moment the shift operators less than less than and greater than greater than per perform left and right shifts respectively of their left oper End by the number of bit positions given by the right operand thus X less than less than two shifts X left by two positions filling the vacated bits with zero this is the equivalent to multiplication by four right shifting an unsigned quantity fills the vacated bits with zero right shifting a s quantity will fill the sign bits or arithmetic shift on some machines such as pdp1 and with and with zero bits logical shift on other the unary operator till yields the ones complement of an integer that is it converts each one bit into a zero bit and vice versa this operator typically finds use in expressions like X Ampersand till 077 which masks the last six bits of X to Zero note that X Ampersand till 077 is independent of word length and is thus preferable to for example X Ampersand 01777 which assumes that X is a 16bit quantity the portable form involves no extra cause since keld 077 is a constant expression and thus evaluated at compil time to illustrate the use of some of the bit operators consider the function get bits open parentheses x comma P comma n which Returns the right adjusted nbit field of X that b begins at position P we assume that bit position zero is at the right end and that n and p are sensible positive values for example get bits open print X comma 4 comma 3 close print Returns the three bits in bit positions Four 3 and two right adjusted here we go with the code get bits open PR X comma p comma n unsigned X comma P comma n semicolon open curly brace return open parentheses open parentheses x greater than greater than open parentheses p + 1 minus n closed parentheses Clos parentheses and Ampersand till open parentheses till zero less than less than in close parentheses close parentheses semicolon Clos curly brace X greater than greater than parentheses p + 1 minus n Clos parentheses moves the desired field to the right end of the word declaring the argument to be X declaring the argument X to be unsigned ensures that when it is right shifted vacated bits will be filled with zeros not sign bits regardless of the machine the program is run on till zero is all one bits shifting it left in bit positions with till zero left Shi uh till zero less than less and N creates a mask with the zeros in the rightmost end bits and ones everywhere else complimenting that with till makes a masks with ones in the rightmost bits bitwise operators may seem unnecessary for modern computers but if you look at the internal structure of tcpip packet the values are packed very tightly into the headers in order to save space c made it possible to write portable tcpi implementations on a wide range of hardware architectures bitwise operators also play an important role in encryption decryption and check some calculations modern languages like Java and python support bitwise operators following the same patterns that we established in C so that things like TCP IP and encryption algorithms can also be implemented in these languages by defining these operators it kept software developers from needing to write non-portable Assembly Language to implement these low-level features in operating systems in and libraries section 2.10 assignment operators and expressions Expressions such as IAL I + 2 in which the left hand side is repeated on the right can be written in the compressed form I plus equal 2 using an assignment operator like plus equals most binary operators operators like plus that have a left and right operand have a corresponding assignment operator op equals where op is one of Plus plus minus asterisk for multiplication slash for division percent for modulo less than less than left shift greater than greater than right shift ampers sign bitwise and carrot exclusive or vertical bar bitwise or if E1 and E2 are expressions then E1 operand equals E2 is equivalent to E1 equal E1 operand E2 except that E1 is only computed once note the parenthesis around E2 X star = y + 1 is actually x = x * parentheses y +1 Clos parentheses rather than x * y + 1 as an example function bit count counts the number of one bits in its integer argument here’s the code bit count open parentheses and closed parentheses unsigned and semicolon open curly brace int B for open parentheses b equals 0 semicolon n exclamation equals 0 semicolon n greater than greater than equal 1 close parentheses if open parthey n Ampersand 01 Clos parentheses B plus plus semicolon return open print B Clos print semicolon curly brace quite apart from its conciseness assignment operators have the advantage in that they correspond better to way the way people think we said we say add two to I or increment I by two not take I add two and put the result back in I thus I plus equal 2 in addition for a complicated expression like y y L Open Bracket y ypv Open Bracket P3 plus P4 close bracket plus y y PV Open Bracket P1 plus P2 close bracket close bracket plus equals 2 the assignment operator makes it code easier to understand since the reader doesn’t have to check painstakingly that two long expressions are indeed the same or wonder why they’re not an assignment operator may even help the compiler to produce more efficient code we have already used the fact that the assignment statement has a side effect value and can occur in Expressions the most common example is while open parentheses open parentheses C equals get Char open parentheses closed parentheses closed parentheses exclamation equal e closed parentheses and then the rest of the loop assignments using other assignment operators plus equal minus equal can also occur in Expressions although it’s a less frequent occurrence the type of an assignment expression is the type of its left operand section 2.11 conditional Expressions the statements if parentheses a greater than b Clos parentheses Z equals a semicolon else Z equals B semicolon of course compute Z in the maximum of A and B the conditional expression written with a trinary operator which is question mark and colon provides an alternate way to write this and similar constructions in the expression E1 question mark E2 colon E3 the expression E1 is evaluated first if it is non zero true then the expression E2 is evaluated and that is the value of the conditional expression otherwise E3 is evaluated and that is the value only one of E2 and E3 are evaluated thus to set the Z to set Z to the maximum of A and B we say Z equals Pro parentheses a greater than b close parentheses question mark a colon B and this implements Z equals Max of A and B it should be noted that the conditional expression is indeed an expression and can be used just as any other expression if E1 and E if E2 and E3 are different types the type of the result is determined by the conversion rules described earlier in this chapter for example if f is a float and N is an INT then the expression parentheses n greater than zero Clos parentheses question mark F colon n is of type double regardless of whether n is positive or not parentheses are not necessary around the first expression of a conventional expression since the Precedence of question mark colon is very low just above assignment they are advisable anyway however since they make the condition part of the expression easier to see the conditional expression often needs to succinct code for example this Loop print prints n elements of an array 10 per line with each column separated by one blank and with each line including the last terminated by exactly one new line here’s the code four parentheses I equals 0 semicolon I less than n semicolon I ++ Clos parentheses print F open parentheses double quote percent 6D percent C double quote comma a sub I comma open parentheses i% 10 equal 9 or double vertical bar I equal n minus1 Clos parentheses question mark single quote backs slash and single quote colon single quote space single quote close parenthesis semicolon a new line is printed after every 10th element and after the nth and all elements are followed by one blank although this might look tricky it’s instructive to try to write it without the conditional expression section 2.2 precedence in order of evaluation the table below summarizes the rules for precedence and associativity of all operators including those which we have not yet discussed operators on the same line have the same precedence rows are in order of decreasing precedence so for example asterisk slash and percent all have the same precedence Which is higher than that of plus and minus parentheses square brackets the arrow operator and the dot operator are first with the right left to right associativity next precedence is exclamation till plus plus minus minus single minus the cast multiplication bitwise and size of with left with right to left associativity then multiplication division and modulo with left right associativity then plus and minus with left to right associativity then left shift Which is less than less than and right shift which is right greater than greater than with left to right associativity then logical operators less than less than or equal to greater than or greater than or equal to with left to right associativity then comparison double equals not equal exclamation equal left to right then we have some bitwise operators the bitwise and with left to right associativity then the bitwise exclusive or with Left Right associativity which is a carrot then the single vertical bar which is bitwise or with left to right associativity then we have Amper sand s which is and the logical and left to right associativity then double vertical bar which is the logical or with left to right associativity then the ternary operator which is question mark and colon with right to left associativity then the assignments equals plus equals minus equals Etc with right to left associativity and then the comma which we’ll cover in the next chapter with left to right associativity The Operators Dash greater than and Dot are used to access members of structures they’ll be covered in chapter six along with size of in ch and then in chapter five we’ll discuss asterisk in Direction and Ampersand address of note that the Precedence of The bitwise Logical operators Ampersand carrot and vertical bar flws below double equals and exclamation equals that this implies that bit bit testing expressions like if parentheses parentheses X Amper sand Mass closed parentheses equal equal Z closed parentheses must be fully parenthesized to get proper results as mentioned before Expressions evolving one or more of the associative and commutative operators like multiply plus bitwise and bitwise or bit and bitwise exclusive or can be rearranged even when parenthesized in most cases this makes no difference whatsoever in situations where it might explicit temporary variables can use to force a particular order of evaluation C like most languages does not specify in what order operands of an operator are evaluated for example in a statement like xals f open parentheses closed parentheses plus G open parentheses closed parentheses semicolon F may be evaluated before v g or vice versa thus if F or G Alters an external variable that the other depends on x X can depend on the order value of evaluation again intermediate results can be stored in temporary variables to ensure a particular sequence similarly the order which function arguments are evaluated is not specified so the statement print F open parentheses double quote percent d space percent D back sln double quote comma Plus+ n comma power open parentheses 2 comma n Clos parentheses Clos parentheses is wrong it can and often does produce different results on different machines depending on whether or not n is incremented before power is called the solution of course is to write Plus+ n semicolon print F open parentheses double quote percent d space percent D back sln double quote comma n comma power open parentheses 2 comma n close parentheses close parentheses function calls nested assignment statements and increment and decrement operators cause side effects some variable is changed as a byproduct of the EV valuation of an expression in any expression involving side side effects there can be subtle dependencies on the order in which variables taking part in the expression are stored one unhappy situation is typified by the statement a sub I equals i++ the question is whether or not the subscript is the old value of I or the new value the compiler can do this in different ways and generate different answers depending on its interpretation when side effects I.E assignment to actual variables takes place is left to the discretion of the compiler since the best order strongly depends on machine architecture the moral of this discussion is writing code which depends on the order of evaluation is a bad programming practice in any language now naturally it is necessary to know what things to avoid but if you don’t know how they are done on various machines that innocence may help to protect you the C verifier lint will detect most dependencies on order of evaluation I would add that the real moral of the story is to use side effect operators very carefully they are generally only used in idiomatic situations and then use it written using simple code the authors are happy to tell you everything that you can do and see in great detail and they are also suggesting that just because you can do something does not mean that you should do something remember that a key aspect of writing programs is to communicate with future human readers of your code including you reading your own code in the future with modern-day compilers and optimizers you gain little performance by writing DSE or obtuse code write the code describe what you want done and let the compiler find the best way to to do it one of the reasons that a common senior project in many computer science degrees was to write a compiler is to make sure that all computer scientists understand that they can trust the compiler to generate great code this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand Its Right Place in a historical context amidst the major changes of the 1970s and 1980s as computer science evolved from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the idea book to learn SE programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the sea language was evolving as it laid the groundwork for a future with portable applications [Music] hello welcome to chapter 3 I’m Charles Severance and I’m your instructor so here in chapter 3 again I’m just I want you to read the book I’m just going to call your attention to a few of the unique things that uh might help you make more sense of the book so we’re going to talk about semicolon use how it’s uh started in Sea and is used across multiple languages how elsif is a little different across languages the switch statement a bit of motivation the switch statement is even Inc um the comma comma I don’t know operator separator and then sort of this this tendency towards excessive succinctness or brevity that uh is pretty common in uh C programming right it just it’s like it’s there’s such a value in making things really really short and that makes it kind of different so I love semicolon based languages and we have a whole bunch of semicolon based languages that that we’ve learned and are going to learn um certainly 1978 the C programming language with its you know non non syntactically important spacing um the key to C is that c the semicolon is a terminator and every statement must be terminated by a semicolon so we say xal X+1 semicolon and xal x divided two semicolon right and that’s that’s the idea the print F ends in a semicolon so you may or may not know in Python you’re allowed to have semicolons they’re pretty much optional like on the print open print X Clos print that semicolon does not need to be there but it is a separator not a Terminator so you can think of the print open print X Clos PR semicolon as one statement followed by a separator followed by an empty statement which does nothing but the interesting thing is you can put more than one line on one line you can put more than one line of Code by put using a separator so there I say x = x + 1 semicolon x = x over2 semicolon I don’t have to indent that I just it it it’s two two lines in the same block of code and that’s legal most of the time people choose not to use semicolon the other thing about that is that shell scripting which is sort of the Linux automation uh treats it as a separator and so that sort of looks a bit like shell scripting to have multip statements on the same line uh separated by semicolons in Java it tends to follow the C pattern where it’s a Terminator I tend to like it as a Terminator I don’t like the idea that you can leave it off the way JavaScript does and so you see it’s on two assignment statements and the system out print Lin in Java in PHP PHP follows C very closely and so it is um it is a Terminator there as well and so that I I think that’s natural and the good news if it’s a separator like in JavaScript in the next example where it’s separating it and so in this case the xal x / 2 does not need to be terminated because the closed curly brace is going to going to terminate that and um and like even the console.log open print Clos print semicolon that semicolon is optional when I tend to write JavaScript I tend to put semicolons everywhere when I tend to write python I put semicolons nowhere and then in phpc and Java I tend to you know put semicolons everywhere even though sometimes there are things you can leave out another thing that is very very subtle is the notion of else if so C predates Python and um C in this book shows else if has two separate words and there’s an else keyword and an if keyword and so you say else space if and then you have the expression and another statement else space if expression and another statement and then else for the one where none of those expressions are true and if you look at python it looks almost identical it says if expression then L if expression L if expression and else the key is that L if is a separate language construct in Python and I think it’s actually really beautiful and elegant and the key is is that this else if while it is I can think of it in C as like indented incorrectly so you can look at it as the very first if has an if and an else and everything from the second if on down is really part of that else and so if you look to the right you see the curly braces with the entation that’s explicit it’s exactly the same thing but what you’re going to see is you can see that it’s if you were going to truly correctly indent an if else if else if else in C you would indent it the way it’s shown on the right side and it it’s neither here nor there very very it is very rare that you would see anyc programmer you know do all the indentation the technically right way but I just want to call your attention to it that it’s different than LF LF is its own language element that is not a deeper nesting deeper and deeper nesting if you were to Nest it you see on the right hand side you see I’ve got three Cur closed curly braces curly brace curly brace curly brace and it’s just so the LF I think is a really elegant addition that python has added the switch statement I I think that the reason that the authors put the switch statement into C is there was a time where we would write code in Assembly Language using what we call a jump table where where we take sort of the take a number maybe take it mask it so it’s only from 0 through 16 and then look up a series of addresses and jump through a jump table and the computed go-to was the way in Fortran of expressing a jump table but in Fortran it was just a mess you got these you got these labels and columns 1 through six and the continue statement doesn’t work like the Contin in and c and and C like languages and you had to have these go-tos to get out of the the switch statement if you think about it from an Assembly Language perspective it’s not that hard to build the computed goto with a little tiny jump table um and so I I think to some degree whether or not we have to use a jump table in modern C is really it’s really really rare where you have to use a jump table we just would do a few repeating Els and it’s just fine back then a few extra statements might have bothered something if you were going to do it a million times a you know a million times a minute or something the switch statement is much prettier you do have to put The Brak statements in there you can kind of Nest the ca you have the Stacked cases and then there’s a default case so if I at least I compare the C switch statement with the Fortran computed goto I want to say that the C switch statement was pretty much a lot more elegant a lot easier to use a lot easier to understand and because Assembly Language programmers of the time did think in terms of jump tables if a highlevel language didn’t have a way to express a jump table in that language then we would kind of think of it as missing but frankly you know in your programming I I’m not sure I’ve written a switch statement in because Java has a switch statement too I probably haven’t written a switch statement in over 20 years and maybe more so I I like the fact that it improved on Fortran but that doesn’t mean that that you should use it the comma operator or comma separator it’s I like to think of it as like a light version of the semicolon and um most people almost never use it and the only place we use it is uh when it is sort of uh idiomatic where in a four statement because we’re already using semicolon to separate the start before the loop the loop test and then the loop increment per iteration we’re using semicolon for that so if we want to do like two statements we going to like oh I equals 0 J equal sterland s minus1 with a comma in between to say do these two things before the loop starts and then at the end you say i++ comma J minus minus that says do these two things at the end of each Loop so I only see it in idiomatic situations just think of it as like we couldn’t use a semicolon here it functions exactly like a semicolon although the syntax already has a semicolon it so I I think it’s actually a pretty clever um way to say I want to put two statements in here you could maybe you could put curly braces in there or something but I thought the comma was a pretty cool thing another problem is that there was just this notion that we as Assembly Language programmers we could do things like be smart and leave some value in a register and then check the register a couple of different ways and that would lead to really succinct fast code hand tune code where you might have to look at it to figure out what it’s doing but then you realize well I I did got in six statements rather than 12 statements 12 statements might have made more sense but the six statements were really fast and in the early days in the early 70s they were changing their compilers so fast and changing their Hardware so fast that they really didn’t build um super great optimizing compilers so they would look at the source code that came out of the compiler and like I could do better than that so there was a lot of a kind of comparison of the source code um between the what the C compiler generate and whatever and so they found over time that if they would kind of use these tricks that like told the compiler to like take this C equals get charar and leave the C in a register and compare it to double to a space and then compare it again to a new line and compare it again to a tab we would think oh I I can see how that would run in Assembly Language and I can hope that the compiler would generate the Assembly Language that um compiler would generate AEM language that would make me happy and then another pattern you see in this is the number four thing where all the work’s been done in the loop test it’s a y Loop that whole big expression is just a test to know when it’s done but it’s actually reading the data comparing it three times storing it in a variable and when that’s all done there’s nothing to do in the loop and so that’s why you say close pen uh semicolon and you’ll see a lot of those things especially when you’re doing string stuff where you’re sort of zooming through an array and you did it all in the for Loop and you don’t really have anything to do in the for Loop and again we’re thinking in the early days of how this is going to translate into Assembly Language and so you’re trying to make that Loop really really small and again it’s amazing how often they looked at the resulting Assembly Language um in a non-optimizing compiler situation and then wondered if the compiler could have done better so that gets us going in uh this chapter we talked about the semicolon we talked about the switch statement the if subtle syntax difference between Python and C the comma and just get used to the notion that it’s obtuse code please don’t write obtuse code these days the optimizers are so great and uh and so don’t write obtuse code but don’t be too upset as you read the textbook and see obtuse code [Music] welcome to C programming for everybody my name is Charles sance and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter 3 control flow the control flow statements of a language specify the order in which the computations are done we have already met the most common control flow constructions of C in earlier examples here we will complete the set and be more precise about the ones discussed above 3.1 statements and blocks an expression such as xal Z or i++ or printf open pen dot dot dot Clos pen becomes a statement when it is followed by a semicolon as in X = 0 semicolon I ++ semicolon print F open parentheses something closed parentheses semicolon in C the semicolon is a statement Terminator rather than a separator as it is in alol like languages the braces the curly braces open curly brace and closed curly brace are used to group declarations and statements together into a compound statement or block so that they are syntactically equivalent to a single statement the braces that actually surround the statements of a function are one obvious example braces around multiple statements after an if else while or for or another variables can actually be declared inside any block we will talk about this in chapter 4 there is never a semicolon after the right curly brace that ends a block ah see how do I love thee let me count the ways uh quote by Dr Chuck with homage to Elizabeth Barrett Browning The Humble semicolon is why spacing and line ends do not matter in C and SE like languages it means that we as programmers can focus all of our white space and line ends on communicating our intent to humans this freedom is not an excuse to write obtuse code or dense code for example see the obfuscated Pearl contest but instead freedom to describe what we mean or use spacing to help us understand or maintain our code we can take a quick look at how a few other c-like languages that came after C treat the semicolon Java is just like C in that the semicolon terminate statements python treats the semicolon as a separator like algol allowing more than one statement on a single line but since python treats the end of a line as a statement separator you generally never use semicolon in Python but for people like me who automatically add a semicolon when typing code too fast at least python ignores the few semicolon I mistakenly add to my code out of habit JavaScript treats the semicolon as a separator but since JavaScript ignores the end of the line it’s treated as Whit space semic Colones are required when a block of code consists of more than one statement when I write JavaScript I meticulously include semicolons at the end of all statements because any good programmer can write C in any language back to the text 3.2 if else the if else statement is used to make decisions formally the syntax is if parentheses expression parenthesis statement one else statement two where the else part is optional the expression in parentheses is evaluated if it’s evaluates to true that is the expression has a nonzero value statement one is done if it is false the expression is zero and there’s an else part statement two is executed instead since an if simply tests the numeric value of the expression certain coding shortcuts are possible the most obvious is writing if open parenes expression instead of if open parenthesis expression not equal Z zero Clos parentheses sometimes this is natural and clear other times it’s cryptic because the else part of an if else is optional there is an ambiguity when an else is omitted from a nested if sequence this is resolved the usual way the else is associated with the Clos closest previous eless if for example if open parentheses n greater than Z closed parentheses if open parentheses a greater than b closed parentheses zal a semicolon else Z equal B the else with the Z equal B goes with the inner if as we have shown by the indentation in the above example if that’s not what you want braces must be used to force the proper Association if n greater than zero open curly brace if a greater than b z equals a semicolon Clos curly brace else Z equals B this ambiguity is especially pernicious in situations like if open parenes n greater than Z for open parentheses I equal 0 semicolon I less than n semicolon i++ closed parentheses if open parentheses S Sub I greater than Z closed parentheses open curly brace print F string dot dot dot close parentheses semicolon return open parentheses I close parentheses semicolon close curly brace else and this is where it’s wrong print F open parthy eror and is zero closed parentheses semicolon the indentation in the above example shows unequivocally what you want but the compiler does not get the message and Associates the else with the inner F this bug can be very hard to find by the way notice that there is a semicolon after Z equals a in if open parentheses a greater than b closed parentheses Z equal a semicolon else Z equals B semicolon that is because grammatically a statement follows the if and an expression like Z equals a is always terminated by a semicolon section 3.3 else if the construction if open parentheses expression closed parentheses statement else blank if open parentheses expression Clos parentheses statement else if open parentheses expression closed parentheses statement else statement occurs so often that is worth a brief separate discussion the sequence of ifs is the most General way of writing a multi-way decision the expressions are evaluated in order if any expression is true the statement associated with it is executed and this terminates the whole chain the code for each statement is either a single statement or a group of statements in Braes the last else handles the none of the above or default case where none of the other conditions was satisfied sometimes there is no explicit action for the default in that case the trailing else statement can be omitted or it may be used for error checking to catch an impossible condition to illustrate three-way decision here is a binary search function that decides if a particular value X occurs in the sorted array V the elements of V must be in increasing order the function Returns the position a number between 0 and N minus1 if x occurs in v n minus one if not this sample code is on page 54 it is the first example on page 54 in the book binary open parentheses x comma V comma n Clos parentheses int X comma V open square bracket closed square bracket comma n semicolon open curly brace int low comma High comma mid semicolon low equals zero semicolon High equal n-1 semicolon while open parentheses low less than or equal to high closed parentheses open curly brace mid equals open parentheses low plus High closed parentheses slash to semicolon if open parentheses x less than V sub mid closed parentheses High equal midus one semicolon else if open parentheses x greater than V sub mid closed parentheses low equals mid + 1 else return open parentheses mid close parentheses semicolon close curly brace closing the while and then return open parentheses minus one close parentheses semicolon close curly brace to end the function the fundamental decision in this code is whether X is less than greater than or equal to the middle element V submit at each step this is a natural for Els I would note that in the above examples the else and the if in C are two language constructs that are just being used idiomatically to construct a multi-way branch or elsf pattern with indentation that captures the idiom if we are pedantic about the indentation of the of the above sequence we would be separating the else and if and ending each succeeding block further as follows with brackets or added for clarity if open parthey expression close parenthe parentheses open curly brace statement Clos curly brace else open curly brace if open parenthesis expression closed parentheses open curly brace statement Clos curly brace else open curly brace and now we’re quite indented at this point if open parenthesis expression close parentheses open curly brace statement close curly brace else open curly brace statement close curly brace close curly brace close curly brace Java and JavaScript keep the else and if as separate language elements and document their idiomatic usage and indentation just like C but in Python L if is a single keyword and a new language construct that achieves the same name idiom as shown below if open parentheses expression closed parentheses colon block LF open parentheses expression closed parentheses colon block LF if LF parentheses expression parentheses colon block else colon block the C Java JavaScript and python idioms thankfully look the same when the idiomatic indentation is used even fortran77 supports El the elseif construct to implement multi-way logic section 3.4 switch the switch statement is a special multi-way decision maker that tests whether an expression matches one of a number of constant values and branches accordingly in chapter one we wrote a program to count the occurrences of each digit Whit space and all other characters using a sequence of if else if else here’s the same program with a switch this is the first example program on page 55 pound include less than stdio.h main open parentheses closed parentheses open curly brace int C comma I comma n White comma n other comma n digit open square bracket 10 closed square bracket a 10 element array n white equals n other equals 0 for I equal 0 I less than 10 i ++ n digit sub I equals z while parentheses parentheses C equals getar open print close print Clos print not equal EF Clos print switch open parentheses C Clos parentheses open curly brace case quot Zero quote colon case quote 1 quote colon case quote 2 quote colon case quote 3 quote colon case quote 4 quote colon case quote 5 quote colon case quote 6 quote colon case quote 7 quote colon case quote 8 quote colon case quote 9 quote colon igit Sub C minus quot 0 quot close bracket Plus+ break now that that bit of code right there was to take all the of zero through nine and guide it to the line of code that incremented the particular element of the igit array by one continuing after the break semicolon case quote space quote quote case quot sln quot colon case SLT quot colon n white Plus+ semicolon break default colon n other Plus+ colon break semicolon close curly brace print F open parentheses double quote digits equals double quote close parentheses semicolon four open open print I equals 0 I less than 10 I semicolon i++ close parentheses print F open parentheses percent space percent D close double quote comma igit subi Clos parentheses semicon print F quote back sln wh space equals percent D comma other equals percent D back slash N double quote comma n white comma n other closed parentheses semicolon closed querly brace the switch statement evaluates the integer expression in parentheses in this case the character C and Compares its value simultaneously to all the cases each case must be labeled by an integer or character constant or constant expression if a case matches the expression value execution starts at that case the case labeled default is executed if none of the other cases is satisfied default is optional if there isn’t if it isn’t there and none of the cases matches no action at all takes place cases in default can occur in any order cases must all be different the break statement causes an immediate exit from the switch because the cases serve as labels after the code for one case is done and execution falls through to the next unless you take explicit action to escape break and return are the most common Ways to Leave a switch a break statement can be used to force an immediate exit from a while for and du Loops as well as will be discussed later in this chapter falling through the cases is a mixed blessing on the positive side it allows multiple cases for a single action as with blank tab or new line this example but it also implies that normally each case must end with a break to prevent falling through to the next falling through from one case to another is not robust being prone to disintegration when the program is modified with the exception of multiple labels for a single computation fall throughs should be used sparingly as a matter of good form put a break after the last case in this case default although it’s logically unnecessary some when another case gets added at the end this bit of defensive programming will save you uh the switch statement what is there to say I think that the switch statement was added to se C to compete with the earlier Fortran computed go-to statement or just to keep low-level Assembly Language programmers from switching into Assembly Language to implement the concept of a branch table the authors spend most of the previous section apologizing for the switch statement so you you should perhaps take this as a hint and never use it there are very few situations where a branch table outperforms a series of this if then else checks and those are likely deep in a library or operating system code programmers should only use switch if they understand what a branch table is and why a branch table is more efficient for the particular bit of a program they’re writing otherwise just use LF and do the read of your code a favor 3.5 Loops while and for we have already ex countered the while and for Loops in while open parentheses expression closed parentheses statement the expression is evaluated if it is nonzero the statement is executed and the expression is re-evaluated this cycle continues until the expression becomes a zero at which point execution return resumes after the statement the four statement for open parentheses expression one semicolon Expression 2 semicolon Expression 3 closed parentheses statement is equivalent to expression one semicolon while open parentheses Expression 2 Clos parentheses open curly brace statement Expression 3 semicolon Clos curly brace grammatically the three components of the four are expressions most commonly expression one and expression three are assignments or function calls and expression two is a relational expression any of the three parts can be omitted although the semicolons must remain expression if expression one or expression three is left out it is simply dropped from the expansion if the test expression two is not present it is taken as permanently true so the code for open parentheses semicolon semicolon closed parentheses open curly dot dot dot closed curly brace is an infinite Loop presumably to be broken by some other means such as a break or a return whether to use while or for is largely a matter of taste for example in the code while open parentheses open parentheses C equals get chart open paren close paren close parentheses equal equal quote space quote or c equal equal quot back sln quote or or c equal equal quot back SLT quote closed parentheses semicolon skipping White characters there is no initialization or reinitialization so a while seems more natural the four is clearly Superior when there is simple initialization and reinitialization since it keeps the loop control statements close together and visible at the top of the loop this is the most obvious in for open p i equal 0 sum semicolon I less than n semicolon i++ Clos per n which is the C idiom for processing the first n elements of an array the analog of a Fortran or pl1 do Loop the analogy is not perfect however since the limits of a for Loop can be altered within the loop and the controlling variable I retains its value when the loop terminates for any reason because the components of the four are arbitrary expressions for Loops are not restrict red to arithmetic progressions nonetheless is bad style to force unrelated computations into a four it is best reserved for loot control operations as a larger example here is another version of the a2i function for converting a string to its numeric equivalent this one is more General it copes with optional leading white space and an optional plus or minus sign chapter four shows a to F which does the same conversion for floating Point numbers the basic structure of the program reflects the form of the input skip whites space if any get the sign if any get the integer part and convert it each step does its part and leaves a clean slate for the next the whole process terminates on the first character that would not be part of a number this is the first example on page 58 of the textbook a to I open pen s closed pen which is going to convert s to an integer Char s open square bracket closed square bracket semicolon open curly brace int I comma n comma sign semicolon for I equal 0 S Sub I equal equal quote space quote or S Sub I equals equals quote back n quote or S Sub I equals equals back SL quote back SLT quote semicolon i++ semicolon skip white space this is a for loop with an empty Loop body s equal 1 semicolon if S Sub I equal equal plus or S Sub I equal equal quote minus quote close parentheses sign equals and here we use a turn Turner operator open parentheses S Sub i++ equal equal quote plus quote close parentheses question mark 1 colon minus one semicolon for open parentheses n equals 0 semicolon s subi greater than or equal to quot 0 quote and S Sub I less than or equal to quote 9 quote I Plus plus Clos parentheses n = 10 * n + S Sub I minus quot 0 quote semicolon return open parentheses sign time n closed parentheses semicolon Clos curly brace to end the function the advantages of keeping Loop controls centralized are even more obvious when there are sep several nested Loops the following function is a shell sort for sorting an array of integers the basic idea of the shell sort is that in early stages far apart elements are compared rather than adjacent ones as in simple interchange sorts this tends to eliminate large amounts of disorder quickly so later stages have less work to do the interval between the compared elements is gradually decreased to one at which point the sort becomes an effectively adjacent interchange method this sample code is the second example in page 58 of the textbook shell open parentheses V comma n Clos parentheses int V open square bracket closed square bracket comma n semicolon open curly brace int Gap comma I comma J comma temp for open PR Gap equals n / 2 semicolon Gap greater than zero semicolon Gap slash equals to closed parentheses for open parentheses I equals Gap semicolon I less than n i+ Clos parentheses four and now we’re 3D nested in the four Loops for open parentheses Jal IUS Gap semicolon J greater than equal to Zer and V subj greater than V subj plus Gap semicolon J minus equals Gap close parentheses open curly brace temp equals v subj v subj equals V subj plus Gap semicolon V subj plus Gap equals temp semicolon just a swap of V and V V subj plus Gap V subj and V subj plus Gap close curly brace and that Clos the in innermost for Loop and and then the next closed curly brace closes the function there are three nested Loops the outermost Loop controls the gap between the compared elements shrinking it from n/ Two by a factor of to each pass until it becomes zero the middle Loop Compares each pair of elements that is separated by Gap the innermost Loop reverses any elements that are out of order since Gap is eventually reduced to one all elements are eventually ordered correctly note that the generality of the four makes the outer loop fit the same form as the others even though it is is not an arithmetic progression one final C operator is the comma which most often finds use in the force statement a pair of Expressions separated by a comma is evaluated left to right and the type and value of the result are the type and value of the right operand thus in a force statement it is possible to place multiple expressions in the various parts for example to process two parallel indices this is Illustrated in the function reverse which reverses the function string in place this code is from page 59 of the textbook and it is the first example on page 59 pound include less than string.h greater than reverse open pen s closed pen Char s open square bracket closed square bracket semicolon open curly brace int C comma I I comma J for open fenesy I equal 0 comma Jal sterin sub s minus1 semicolon I less than J semicolon i++ comma J minus minus Clos parentheses open curly brace Cal S Sub I S Sub IAL s subj semicolon s subj equals c semicolon close curly brace close curly braas to end the function the commas that F separate the function arguments variables declarations Etc are not comma operators and do not guarantee left to right evaluation section 3.6 Loops do while the while and for Loops share the desirable attribute of testing the termination condition at the top rather than at the bottom as we discussed in chapter one the third Loop in see the do while tests at the bottom after making each pass through the loop body the body is always executed at least once the syntax is as follows do statement while open parentheses expression closed parentheses semicolon the statement is executed then the expression is evaluated if it is true statement is evaluated again and so on if the expression becomes false the loop terminates as might be expected do while is much less used than while and four accounting perhaps 5% of all loops nonetheless it is from time to time valuable as the following as in the fing function I to a which converts a number to a character string the inverse of a to I the job is slightly more complicated than it might be thought at first because the easy methods of generating the digits generate them in the wrong order we’ve chosen to generate the string backwards and then reverse it this is the first sample code on page 61 uh page 60 of the textbook I to a open parentheses n comma s closed parentheses Char s open square bracket Clos square bracket semicolon int n semicolon open curly brace int I comma sin semicolon if open parentheses open parentheses s equals n close parentheses less than zero close parentheses n = minus n SU col that’s a bit of a complex if I would say there uh it has an assignment statement that both copies n into sign um and then evaluates as to whether or not it’s less than Z the N or sign is less than zero because it’s a side effect assignment statement with a residual value but the net result is sign contains n and then it’s negated um uh then n is made positive so continuing I equal 0 semicolon do open curly brace S Sub i++ equals n modulo 10 plus quote 0 quote semicolon close curly brace while parentheses parentheses n/ equal 10 close parentheses greater than zero close parentheses semicolon if open parentheses sign less than zero Clos parentheses S Sub I ++ equals quote- quote or minus sign semicolon s subi equals qu0 quote semicolon in a sense to terminate the string and then we call the function reverse reverse open parentheses s closed parentheses semicolon Clos curly brace the do while is necessary or at least convenient since at least one character must be installed in the array s regardless of the value of n we have also used braces around the single statement that makes up the body of the do while even though they are unnecessary so the Hasty reader will not mistaken mistake the while part for the beginning of a while loop I would note that it’s important for any language to provide top tested loops and bottom tested Loops but don’t feel bad if you write code for years and never feel like a bottom tested Loop is the right way to solve a problem you’re facing it is usually rare to write a loop that you insist will run once regardless of its input data section 3.7 break it is sometimes convenient to be able to control Loop exits other than by testing at the top or the bottom the break statement provides an early exit from a for while or do just as it does from the switch statement a break statement causes the innermost enclosing Loop or switch to be executed immediately the following program removes trailing blanks and tabs from the end of each line of input using a break to exit from a loop when the most character is non-blank non- tab is found this example code is on page 61 of the textbook and it is the first example on that page pound include less than stdio.h pound Define MAX Line 1000 Main open parentheses closed parenthesis open curly brace int n semicolon Char line Open Bracket MAX Line close bracket semicolon while open pren open pren n equals get Line open pren Line comma MAX Line Clos PR Clos pren greater than zero Clos print open curly brakes while open Cur open parentheses minus- n greater than or equal to zero close parentheses if open parentheses lines sub n not equal Z quote space quote and line subn not equal quote backt quote and line subn not equal quote back slend quote close parentheses break line subn +1 equals back0 quote semicolon print F double quot percent s back sln double quot comma line close parentheses semicolon close curly brace to end the while and then close curly brace to end the main get line Returns the length of the line the inner y Loop starts at the last character of line recall that minus minus n decrements n before using the value and scans backwards looking for the first character that is not a blank tab or new line the loop is broken when one is found or when n becomes negative that is when the entire line has been scanned you should verify that this is the correct Behavior even when the line contains only whites space characters an alternative to break is to put the testing in the loop itself while open parentheses open parentheses n equals get Line open parentheses line comma MAX Line closed parentheses closed parentheses greater than zero closed parentheses open curly brace while open PR minus- n greater than equal to zero and open PR line subn equal equal quot subas quot quote or line subn equals quote backt quote or line subn equals quote back slash n quote close per n close per n semicolon dot dot dot close curly brace this is inferior to the previous version because the test is is harder to understand test which require a mixture of and or not and parentheses should generally be avoided 3.8 continue the continu statement is related to break but less often used it causes the next iteration of the enclosing Loop for while or due to begin in the while and do this means that the test part is executed immediately in the four control passes to the reinitialization step contr by the way continue applies only to Loops not to switch a continue inside a switch statement inside of a loop causes the next Loop iteration as an example this fragment processes only positive elements in the array a negative values are skipped for open print I equal 0 semicolon I less than n semicolon i++ closed pen open curly brace if open p a subi less than zero closed P continue this line skips the negative elements and then the rest of the body of the loop dot dot dot is will run only for the positive elements of the loop and the loop finishes with a Clos curly brace the continue statement is often used when part of the loop that follows is complicated so that reversing a test and indenting another level would Nest the program too deeply it’s time for a bit of an aside now that we have seen the break and continue language structures in C that also have made it into C like languages and learned about middle tested Loops it is time to revisit the structured programming debate and the need for priming operations when a program must process all data until it finishes and still handle the there is no data at all situation in the previous chapter the author somewhat skirted the issue by using a top tested while loop and a side effect statement with residual value that was compared to eof to decide when to exit the loop int C colon while open parthey open parentheses C equals get Char open pren close paren close parentheses not equal eoff close parentheses open curly brace process your data close curly brace and just for fun now that we do know about the for Loop let’s rewrite this loop as a for Loop to make sure we really understand how for loops work int C semicolon for open print C equals getchar open print Clos print semicolon c not equal eof semicolon C equals getchar open PR close PR close PR curly brace process your data close curly brace for the for Loop now you will almost never see a read all characters until eof written this way because because it is not the way KR told us KR told us to use a y Loop for this but the four Loop formulation is probably clearer to many than the while formulation especially to a reader who’s not familiar with the assignment side effect idiom commonly used in C in particular the four formulation does not require that the assignment statement has a residual value of the value that was assigned the first part of the four is a priming read the second part of the four is a top text tested exit criteria that works both for no data and after all data has been read and processed and the third part of the four is done at the bottom of the loop to advance to the next character or encounter eof before going back to the top and doing the loop test the call up to get Char is done twice in the four formulation of the read all all available data loop and while we don’t like to repeat ourselves in code it is a if it is a small and obvious bit of code perhaps this code is more clear with a bit of repetition so with all this is background you can take this page of the document and sit down with a friend at a coffee shop and debate as long as you like about which is the better formulation for the read all available data but if at that coffee shop you ask Dr Chuck’s opinion neither of these is ideal because in the real world we build data oriented Loops that usually do a lot more than get one character from standard input my formulation of a data loop will upset the structured programming purists and probably upset kernigan and Richie as well but but I write code in the real world so here is my version int c semicolon while open print one Clos print open curly prce C equals getchar if open print C double equals eof close pen break process your data and then close curly brace to end the loop and if I wanted to skip blanks and new lines I could use both break and continue further angered angering the structure programming purists int c semicolon while open parentheses one closed parentheses open curly bra C equals get charar open parentheses closed parentheses semicolon if open parentheses c equal equal eoff close parentheses break if open parentheses c equal equal quote space quote or c equal equal quot back slash and quote close parentheses continue then process your data close I use this middle tested approach because usually the data I am processing is coming from a more complex Source than the keyboard and I don’t want a function with two to three parameters stuck inside of a sign side effect statement in a while test and also sometimes you want to exit Loop not just based on the return value from the function but instead based on the complex structure that came back from the function itself as these data processing Loops get more complex the middle test Loop is a tried and true pattern even kernigan and Richie point out its benefits above and with that I have now triggered endless coffee shop conversations about the best way to write a data handling Loop section 3.9 Goos and labels C provides the infinitely abusable go-to statement and labels to Branch to form the go-to is never necessary and in practice it is almost always easy to write code without it we have not used goto in this book nevertheless we will suggest a few situations where go-tos might find a place the most common use is to abandon processing in some deeply nested structure such as breaking out of two Loops at once the break statement cannot be used directly since it leaves the only the most inter Loop innermost Loop thus four open parentheses dot dot dot close parentheses four open parentheses dot dot dot close parentheses open curly brace do some stuff if open parentheses disaster close parentheses go to error semicolon close curly brace dot dot dot dot dott dot and then error colon and then clean up the mess this organization is Handy if the error handling code is non-trivial and if errors can occur in several places a label has the same form as a variable name and is followed by a c it can be attached to any statement in the same function as the goto another example consider the possibility of finding the first negative element in a two-dimensional array multi-dimensional arrays are discussed in chapter 5 one possibility is for open parentheses I equals 0 semicolon I less than n semicolon i++ closed parentheses four open parentheses J equals 0 semicolon J less than M semicolon j++ Clos parentheses if open parentheses V sub I subj less than zero close parentheses go to found other and then you handle and you keep going and then found colon include is where it comes to uh jumps to code involving a go-to can always be written without one but though perhaps at the price of somewhat repeated test or an extra variable for example the array search becomes found equals z for open pry I equals z semicolon I less than n Ampersand Ampersand exclamation found semicolon i++ for open parentheses J equal 0 semicolon J less than M Ampersand Ampersand exclamation found semicolon j++ found equals V sub I subj less than than zero if found continue else not found although we are not dogmatic about the matter it does seem that go to goto statements should not should be used sparingly at if at all I would add before we leave control flow I need to say that I agree with structure programming experts as well as kernigan and Richie in that the go-to is universally a bad idea there are a lot of little details that make them a real problem things like how the stack Works in function calls and how code blocks happen and patching the stack up correctly when a go-to happens in the middle of a deeply nested mess you might be tempted to use a go-to when you want to exit multiple nested Loops in a single statement break can continue only exit the innermost Loop the authors use this example above but are quite lukewarm when describing it as a use of go-to usually if your problem is that complex putting things in a function and using return or adding a few if statements is a better choice the Dr Chuck middl tested Loop data processing solves this because the loop is always the innermost Loop also as new languages were built the concept of exceptions became part of language design and was by a by far more elegant solution to a path of some deeply nested code that just needs to get out so most of the time you think the goto might be a good idea you should lean towards a throw catch pattern to make your your intention clear it is one of the reasons why we prefer languages like Java or python over C when writing general purpose code this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand Its Right Place in a historical context amidst the major changes of the 1970s and 1980s as computer science evolved from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the ideal book to learn SE programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the sea language was evolving as it laid the groundwork for a future with portable applications [Music] welcome to chapter four functions and program structure in this chapter we’re going to start digging a little deeper part of the goal of this course is to get you to the point where we can talk about how things really work eventually in the next course we’ll even go down to Hardware hardware and architecture and Gates and so it’s it’s time to start opening things up and looking at how things work and so this is a good time to do so and the big thing we’re going to learn among other things is the concept of a stack how pass by reference works how how pass by value and pass by reference work a little bit about recursion recursion is a a thing that I worry about a lot um well we’ll get there and a pre-processors these are all things where we’re really stting it’s I’m not just it’s not so much about just how functions work but how functions are implemented and how that affects how they work so the first thing I want to talk to you about is a really Nifty computer science concept called a stack a stack is a data structure that we use and it has a couple of attributes the idea of a stack is we we start with an empty stack and we put things on the stack and then we take things off we take them off the last thing we to put on is the first thing we get off and they go up and they go down you can push things onto them and take things off of them we can approximate this with a python list so so we start with an empty list we append the string one to it and the stack has a one on it it’s kind of growing up from the bottom and it’s going to shrink from the top and then we append a two to it and then we our stack is now one and two so the bottom thing in the stack is one and the top one is two and then we append a three to it and we have one two three on the stack at that point we pop pop says give me the most recent pushed thing and then take it off so we pop off three and the stack with one and two again this is also known as a last in first out or lifo q q is like a line of things and so the the last thing in is the first thing you got out so that’s a stack and we’re going to use Stacks in function calls so historically when we talk about call by value and call by reference we basically say that call by value means that somehow this value like in the main program ma with a variable with a value of 42 ends up being copied into the function and the parameter op is got a is got a copy of the 42 it’s not the original ma it’s the copy of 42 so 42 gets passed in the function one and op is a copy of 42 so then inside the function we can subtract 10 from it and then we can see that but then when we get back in the main function we see that Ma is been unchanged and it’s like oh we built a little wall around the function and nothing inside the function happens the outside world is unaffected by it and that’s a great oversimplification of call by value of course call by reference means the stuff un function can affect outside the function but let’s talk a little bit about how a stack is used to accomplish this so just to use some terminology C calls these variables that are allocated inside the function before the function starts as the automatic variables and frankly int Ma = 42 in main is an automatic variable inside the main because main is a function inside a seat program that happens to be the one that starts everything out so if we get to the point where it says int ma equals 42 and then it prints ma being 42 at that point on the stack the C runtime is allocated one integer and we’ve assigned 42 to it so that’s what the stack looks like at that first print statement in Maine then we call the function one and pass m in and this is where the C runtime Library kind of before everything starts out in the function one it allocates what’s called a stack frame and a stack frame includes the parameters op and the automatic variables that are inside of that function and so in this case we’re going to get two variables we’re going to get op as an integer and TN as an integer and before the program starts up the value 42 is copied from ma into op and so the stack frame is the context in which that function operates so when it first starts you see that op has 42 you also see we have two copies of the number 42 and we have a parameter op and then we have the the automatic variable the TN then the next line runs okay and that point op is changed op equals op minus TN and so op becomes 32 but you’ll notice that on the stack out beyond the stack frame the stack frame is our current execution of the function one beyond the stack frame the 42 is still there we can’t see it we’re we’re in the function right now and we’re only seeing the top part of the stack we’re not seeing the part of the stack that belongs to the main program so that’s where it prints out 32 so 32 in the function says op is 32 and that’s fine and then we return and that’s when the C runtime removes the stack frame pops those things off the stack it remembers how much it put on and it pops all the stuff off the stack that it put on and then it basically comes back into Ma and the stack frame for the main program has one variable in it and it’s Ma and it has 42 and that’s because one operated in its stack frame and now the main program is back to operating in the same stack frame you can almost think of to this as like one never happened right from Main’s perspective it had some variables one ran and a stack frame was created some of the main data was copied into the one stack frame one operated in its stack frame and then the stack frame went away right before one or right at the moment that one returned and the return value ends up in the stack frame too I just haven’t shown you that and these don’t send return value the the return value comes back uh from the stack frame but you can see how main started with a stack with one one variable on it and then it one ran and all that stuff happened and then it kind of was undone and that’s where the changed variable just kind of went away and so the stack it’s as if nothing ever happened except it went up and then it went back down now one thing we notice and and in Python we see this too where you say everything is called by value which implies a copy um except for things like certain objects and calling method and objects and if but if you look at say this function zap and we pass in X and X is starts out as original and then it calls the zap function and it passes in and it’s got the original then it gets changed inside the inside the zap function and that change uh prints out but then when it comes back it is back to the original so X is back to the original in the main code and you might say oh that looks right and that that’s actually quite intuitive and that that python has made it so a call by value inside of this ins call by value to the zap function it happened meaning that nothing change nothing changed outside of the zap function and it was a call by value not a call by reference now I’m not going to go into it at least not right now talking about why that really worked and it’s it’s less about call by value and call by reference and more about the fact that Y is really a pointer to an object and when y equals changed executes inside of Zap the object pointer it points to a different object and then but X never changed and so python has a slightly different runtime but it leads to this notion that seems like a string variable in Python is call by value now if we look at the similar but quite different code inside of C we see the main has a a a character array X of unknown length which is original and that just unknown length means that it say it’s uh looks like eight characters plus a back sl0 which is nine characters and it prints out kind of like a string it’s a character array with a terminator and then we Call Zap pass X in and then inside of zap zap takes a character array as its parameter and it can print out the word original when it starts and then it copies changed into it and then it says at the end it’s it’s the why is at the end is changed but then we come back and back in the main program it got changed so does that mean it was called by reference or what and the answer is sort of and this is where it kind of helps so it turns out that when you are passing an array into a function in C you’re not actually passing the contents of the array so most time we think of that 42 being copied if it’s an integer if it’s just like a scaler thing like a float or an INT or a Char or something that’s being copied but when you have an array that could be gigantic so it doesn’t actually copy in the whole array so when X is being passed into zap and being received as y we’re not actually passing the string because that could be a million characters for all we know so it’s not like it makes an extra copy of a million characters what it’s doing is it’s passing in the address of the start of the string not on the stack but somewhere else it actually could be on the stack somewhere but it’s not in the stack frame and the word original is not copied into the stack frame the stack frame only includes a pointer or the address X is the address of this letter O and then Y is also the address of the letter O which means when we’re calling stir copy we are overwriting those characters oh and by the way I carefully made sure that the string changed was shorter than the string original or my program could have blown up because this is C and arrays don’t get bigger python strings get bigger but arrays don’t in a couple more lectures we will build a data structure where it’s like a python string and we can add to it and you’ll see that the code is very complex a character array is very simple okay and so it’s not exactly a pass by reference it is a pass by location and if you happen to misuse that location meaning you write to that location you write to location now this might have been in like readon memory something your program might have blown up so you better be sure what you’re doing when you start messing inside of a function with an array that’s been passed to you now sometimes you’re supposed to sometimes we tell you to write that another thing that you’re going to see in this is the reference to register variables uh this is another rather historical notion and in my opinion it really had to do with uh convincing uh really skilled Assembly Language programmers that they could get the same performance out of sea that they were used to getting inside Assembly Language and so what are registers well when you have a central processing unit and you have memory the data lives in the memory and the registers live in the central processing unit and depending on the speed of things a register might be you know 40 times faster than regular memory and so if you could keep a variable like I in a loop you could keep that in a register that’s faster and so what we can do with saying register int X is say hey by the way next few lines X is a really important variable and I expect to use it a lot so if you can possibly not store this in memory please do so and that’s why the only kind of weird thing about the register is you can’t get the memory address of a register variable now in mon compilers we have runtime optimizers that are miraculous I mean they border on mirac even the simplest of runtime optimizers that speed the code up at runtime are miraculous and saying this is a register or that’s a register might actually confuse things so all the register does is hey I am never going to ask you the address of this variable so don’t bother putting it in memory if you don’t feel like it okay so it’s it’s probably but I also think I think it’s kind of fascinating and fun to think about this think about how early sea developers were so deeply connected to their Assembly Language that is at the runtime uh recursion recursion recursion recursion when a function calls itself it’s called recursion it’s a powerful it’s a beautiful concept there is places when if you’re given a tree like structure like you parse some XML or something and you’re reading through the XML recursion is such a pretty way to write code I’m about to show you a very simple recursion example that are two things first they’re really inefficient and silly uses of recursion and they mislead you as to why you should use recursion and they misleadingly kind of tell you that like recursion is great let’s use it for something it doesn’t e is not well used for so so really in this section I’m not trying to show you what recursion is used for well I’m more interested in giving you a really artificial synthetic example to show how the call stack works and how recursion works with the call stack so here we have I mean some tortured code it is not pretty code this is a I’m I’m writing code that if given a number like uh three adds up 1 plus 2 plus three okay and gives me six there are so many ways to do this there’s even a close form solution that doesn’t even require a loop that’s called algebra but we’re going to use recursion so if you look at the int main I’m going to say sum up three that means sum up things one two three so sum up is being called from Main and then I’ve got the return value and I say Su and you’ll notice in the print out that Su is the very last thing that comes out and so if you walk through sum up you see that there is a parameter called above that’s coming I call that above because it’s coming from whoever’s calling us there’s a parameter below which is we’re going to compute a value and send it down to the next copy of ourselves down and then sum is the sum of the the above value and the sum of the below values and then R Val is I mean actually sum is just coming back from the call to ourselves and then R Val is adding those two things together and I do this in exceedingly slow motion with print statements everywhere that just makes this look ugly because really the only thing that matters is where it says sum equals sum up below and what we’re doing is we’re calling the same function again so if you look at Main and you see the sumup call that is going to create a stack frame and in that stack frame it’s going to have a whatever the three number is we’re going to make an above variable copy three into the above variable and allocate a below sum and R valve so our stack frame is going to have four integers on it and then the function starts working and the way the r recursion works is there’s always got to be a time at which it stops this is kind of like going down down down and it has to work its way back up if it goes down forever that’s called a stack Overflow and then your computer runs out of memory and your application blows up so you know have to have a time at which the stack uh algorithm stops so what we’re saying is if we’re being told to sum up up one or less well we Define the sum of that as one so we just return the sum of everything up to one as one and that’s our way of stopping the recursion at the bottom and then what we do is we take below and we subtract one from it so if we’re being called with three below becomes two and so you see that over in the lower stack frame below is two right below is two and we’re about to go down deeper into the call tree and um so we’re going to we’re going to call sum equals sum up below so what happens now is we’re passing two in to another stack frame and so there’s not really a cop another copy of the code but there’s another stack frame and so now we’re calling sum up with two as the parameter that’s our below but then we see the stack frame and now this is the stack frame that’s kind of on the left hand side there above in this stack frame is two and then execution begins and we subtract one from below well above is not less than one so we subtract one and above below becomes one because it’s 2 – one and we’re going to go down so it says down one which means it’s going to again say sum equals sum up below and below in this case is one and so it makes another stack frame there’s a so we’re actually there there’s a maximum of like three calls here and then it’s going to work its way out so then it calls another stack frame that’s not shown on the right hand side and then it runs runs with one as above and then above is less than or equal to one so it returns one and that’s why it says in one and it doesn’t say anything because then it’s returned and it returned the value one so now the third stack frame comes off and now we’re in the other stack frame and sum is what the return value of the sum up call was so it says back one and then it says above now we’re now we’re in the stack frame that’s on the right hand side so sum is one below is one above is two and so we compute R Val which is 1 + 2 and that’s three and we print that out and that’s kind of where the where we’re indicating and then we return the three right and then it returns R Val and it runs some more it gets three back then it adds the adds the three to it and returns one more time and the stack all pops up and eventually you get six and this is a I mean you can look at this as long as you like I don’t this code is like a foolish way to make this calculation like most artificial recursion examples the key thing here is just think about the stack frame right every time you call in another stack frame happens call in stack frame happens and then when the return value happens it goes back to that stack frame so the stack frame is a way of pausing execution at the moment create a new stack frame execu in that stack frame and if you need to have a yet another stack frame and so this idea of creating stack frame with the parameters and automatic variables each time you call a function copying the parameters into that stack frame and then executing the function in that stack frame we’re not making extra copies of the function we are just creating a new stack frame that’s what the essence of recursion is is the fact that you have a stack and each call makes a stack frame and if you recursively call again you just make another stack frame and so it’s almost easier in my mind to Think Through how stack frames work than it is to think through how recursive code works now I want to talk a little bit about the C preprocessor it’s it’s the last thing of this chapter and it’s in some ways orthogonal to functions and program structure I mean it it is part of program structure and so I’ve talked a lot about how wonderfully the C compiler and eventually Unix solve so many problems of uh software source code portability and things like indianness and character arrays and masking shifting not being necessary that those were awesome but the problem was is that c has always operated in an environment the language has changed uh in the early days it uh it wasn’t standardized by 84 it got standardized ancc came out a lot of people used it outside its original creation and so a lot of things got fixed in the first decade of C’s use the language evolved a lot the language kept kept evolving and a lot of the things that would make it evolve are things like integers went from 32 bits in some situations to 64 bits and then you have to say well what is a long is long 64 long 32 because in some it started with int being 16 bits and long being 32 and then long with 64 well for a while then ins were 32 and Longs were 32 and then ins were 32 and Longs were 64 and what would happen if ins were 64 and it had to do with computer architecture 64 bits right and so sometimes you would have a bit of code and it just what you knew you wanted a 32bit thing and you weren’t sure if an INT or a long or a short was going to give you 32 and so you had to say you know I really need different source code like if I’m working on a pdp1 I got one thing and if I’m working at interd 732 I want another thing CU really I want a 32 a 32-bit integer and now there’s actually int 32 in some of these things because you do need to know sometimes you’re using 32-bit integer then libraries changed there’s calling sequences that changed because again as computers got bigger and bigger and memory got bigger and dis drives got bigger you would be in a certain version of an operating system and and the the calls to reading files might be slightly different and so it’s not really that the source code was portable it’s the the the the calling sequences to library started to change um Hardware evolved operating systems evolved C started running on non-unix because C originally started on Unix but then it quickly went to other operating systems because it was such a powerful concept but sometimes in these other operating systems just things were kind of different because they weren’t working on Unix and so the pre-processor really was a an effective way to patch your source code so that you could say look I I wrote this Source Code 10 years ago and it worked on a pdp1 and now I’m going to run this on an IBM 3 60 architecture and I don’t want to change that there’s a few changes I need to make that have nothing to do with sort of the what what a for Loop looks like but it has to do with like what library I’m calling or what the return type for that Library might be so the pre-processor allowed us to put variations in the source code and the pre-processor it’s really feels weird because it’s it’s syntax syntax is very different because the pre-processor is kind of a line oriented processor and has these pound things right these these um like pound if def pound Define pound else pound end if and pound include that’s even a pre-processor so what the pre-processor is is a not a compiler at all it is a source code to source code translator it expands the include files and then it makes changes so in the top example where you see pound include stdio.h you can actually run GCC minus capital E and says just run on the pre-processor and shows me what comes out you take you know 10 12 lines of code on the left and it puts out hundreds and hundreds of lines of code on the right I’m only showing you a subset of it but the biggest part is the fact that include std. is literally expanded and then that is C code without the pound include okay so that’s the pre-processor but then another example here is I’m creating this use underscore long this is not really a variable this is a compiled time variable so I’m going to create a new string called intore 32 and if Ed long has been defined I’m going to make int 32 be along else I’m going to make intore 32 be an INT and again this could be a thing where I’m compiling for different architectures and I want this variable IP address to be a 32-bit integer and I need it to work on different operating systems so in this case um because use long is not defined int 32 as a string substitution like a macro string substitution before the compiler even does anything turns in32 into int and so that’s what the uh five lines of pound if Def and all that stuff do is it says change this in32 string in my source code into int and so what we see on the right is really C code what we see on the left is kind of c pre-processor plus c code and so the pre-processor transforms source code to source code so I was looking around at some old code that I happen to have grabbed and put into uh GitHub which was some code from 1994 from X Mosaic 1.2 and for those of you took my internet history technology and security you know that X Mosaic was the first web browser that was portable across multiple operating systems which and the more and then eventually Mosaic ended up on uh Unix systems with x windows that’s why it’s called X mosaic and it went to the mac and went to the PC and so it was really many unix’s Mac and PC and what we’re seeing here on the right hand side is actual source code from that which was written in like 1993 1994 and what you see is a bunch of if defs in if and defs and some comments and like there’s a if def Solaris 9 broken um and it has to do with like where do we find the error messages on this across all these weird operating systems because the way they put error sometimes they would use extern which are Global variables defined inside the runtime and we would just look at those variables we would make a function call and it would write into these Global variables but then that Global variable might be different so this is actually from some code that was HTT p and C that was some early network connections now these days you know we just do this stuff in like pound import requests in Python but in those days the C libraries for network connections were really different meaning that they were just you know here comes the network here’s this language C It’s Been Around by you know 89 991 we were the network was there and so we were building libraries but then how each Library worked in each operating system was a little wonky and so they had to write different C code to compensate for the different operating systems that this C program a web browser would be running on and so all these if defs mean that one source code with a few predefined constants compile time constants could then work on a wide range of of operating systems and so yes the C language itself is portability portable but we also want to be portable over time and so sometimes Library Val libraries change operating systems change um and we want to be able to compensate for that and so this is an important part of C these days it’s less important um because a lot of the libraries have stabilized and they don’t change quite so much and so this code here would probably just be a bit of socket code and the errors would come back the same way no matter what version like um VMS is an operating system that doesn’t exist anymore think C it doesn’t exist anymore NEX doesn’t exist anymore Solaris doesn’t exist anymore so these are all operating systems that don’t even exist anymore but this code was portable across all those things things and actually I I compiled all this and you can kind of take a look at it I made a a video where I re resurrected this code oh it’s got to be eight or nine years ago on a Macintosh which is an evolved from next I don’t know if I could get it to work again but back then I got it to work on a Macintosh and I said to find it as next and so I compiled this C code and I there’s there wasn’t there is an x- windows on Macintosh I got the x windows Library I got all this stuff working and I told it you’re next and then I recompiled the C code and eventually something came up and I I made a video about it and so because I knew that it’d be very difficult to keep this thing working over time but to go from 1994 to 2014 um and recompile something in you know 20 years later uh that’s still pretty impressive that that next code would still work uh things like the V VM code VMS code there’s no VMS computers that I know of uh these days so just it just shows that the idea of you know portability is a it it some of it is simple and elegant and was laid down in 1978 but then there are things outside the programming language that were evolving uh and still are evolving to this day and if you are doing uh C coding today or C++ coding today you may be using things that start with pound sign which are compiler directives rather than um C code so with that uh dive into chapter four and uh learn about [Music] functions welcome to C programming for everybody my name is Charles sance and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter four functions in program structure functions break large Computing tasks into smaller ones and enable people to build on what others have done instead of starting over from scratch appropriate functions can often hide details of operation from parts of the program that don’t need to know about them thus clarifying the whole and easing the pain of making changes C has been designed to make functions efficient and easy to use C programs generally consist of numerous small functions rather than a few big ones a program May reside on one or more source files in any convenient way the source files may be compiled separately and loaded together along with previously compiled functions from libraries we will not go into that process here since the details vary according to the local system most programmers are familiar with Library functions for inut and output like get Char and put charart and numerical computations like s cosine and square root in this chapter we will show more about writing new functions 4.1 Basics to begin let us design and write a program to print each line of input that contains a particular pattern or string of characters this is a special function of the Unix utility program grap for example searching for the pattern the’ in the set of lines now is the time for all good men to come to the aid of their party will produce the output now is the time men to come to the aid of their party the basic structure of the task Falls neatly into three pieces while there’s another line if that line contains a pattern print it although it’s certainly possible to put the code for all of this in one main routine a better way is to use the natural structure to Advantage by making each part a separate function three small pieces are easier to deal with than the one big one because irrelevant details can be buried in the functions and the chance of unwanted interactions minimized and the pieces might even be useful later in their own right while there is another line is get line a function we wrote in chapter one and print it is print F which someone has already provided for us this means that we need to only write a routine which which decides if the line contains an occurrence of the pattern we can solve that problem by stealing a design from pl1 the function index s comma T Returns the position or index in the string s where the string T begins or minus one if s doesn’t contain T we use zero rather than one as the starting position in s because C arrays always begin at position zero when we later need more sophisticated pattern matching we only have to replace index the rest of the code can remain the same recall that because the modern stdio.h defines a getline function whenever the book writes this function to teach a feature of functions we reame it to get underscore line given this much design filling in the details of the program is straightforward here’s the whole thing so you can see how the pieces fit together for now the pattern to be searched for is a literal string in the argument of index which is not the most general of mechanisms we will return shortly to a discussion of how to initialize character rais and in chapter five we will show how to make the pattern a parameter that is set when the program is run this is also a new version of getline you might find it instructive to compare it to the one in chapter one pound include stdio.h pound Define MAX Line 1000 Main open parth Pary closed parentheses open curly brace Char Line open square bracket MAX Line closed square bracket semicolon while parentheses get Line open parentheses line comma MAX Line closed parentheses greater than zero Clos parentheses if open parentheses index open parentheses line comma double quote the double quote close parentheses greater than or equal to zero close parentheses print F open parthey double quote percent s double quote comma line Clos parentheses semicolon and a close curly brace to finish the main function next function is getline get Line open parentheses s comma limb closed parentheses Char s open square bracket close square bracket semicolon int limb semicolon open curly brace int C comma I semicolon for I equal 0 semicolon I less than Lim minus1 and Pen C equals get Char open p Clos pen Clos pen not equal EF double Amper sand c not equal double quot back slash N double quote semicolon Plus+ I close parentheses S Sub I equals c that Loop basically read until it found a new line or and Def file if open parentheses cble equals quot back slash and quot close parentheses open curly brace S Sub I equal C plus plus I semicolon Clos curly brace closing the f s subi equals quote back0 quote semicolon to terminate the string properly return open par I Clos PR semicolon to return the length of the line and then close curly brace to finish the getline function and now the new code index open parentheses s comma T close parentheses Char s open square bracket close square bracket comma T open square bracket close square bracket semicolon I would note that when we are declaring a character array and we don’t give the length of the array that means that we’re inside of a function the length of the array exists but it was from the calling calling code so j s open square bracket closed square bracket T open square bracket closed square bracket semic equalent means parameters s and t are strings of some length and we will use back sl0 to know when that length is done beginning the code in index with an open curly brace int I comma J comma k semicolon and then we have two nested for Loops for open print I equals 0 S Sub I not equal to back0 semicolon I ++ open curly brace for JAL I comma K = 0 semicolon t t subk not equal to Back sl0 and Double Amper sand s subj equal T subk semicolon j++ k++ semicolon if open PR t subk double equals quot back sl0 quote Clos PR return open PR I close peren semicolon close curly brace return open pen minus one close peren semicolon curly brace each function has the form name argument list if any in parenthesis argument declarations if any open curly brace declarations and statements if any Clos curly brace as suggested various parts may be absent a minimal function is dummy open pen closed pen open curly brace closed curly brace which does nothing a do nothing function is sometimes useful as a placeholder during program development the function name may also be preceded by a type if the function returns something other than an integer value this is the topic of the next section a program is just a set of individual function definitions communication between the functions is in this case by arguments and values return by the functions it can also be via external variables the functions can occur in any order in the source file and the source program can be split into multiple files so long as no function is split the return statement is the mechanism for returning a residual value from the called function to its caller any expression can follow return return open parentheses expression close parentheses the calling function is free to ignore the return value if it wishes furthermore there need there is no need to have an expression after the return in that case no value is returned to the caller control also returns to the caller with no value when EX ution falls off the end of the function by reaching the right closing brace it is not illegal but probably a sign of trouble if a function returns a value from one place and no value from another place in any case the residual value of a function which does not return one is certain to be garbage the C verifier lint checks for such errors mechanics of how to compile and lot toy program which resides on multiple source files vary from one system to the next on the Unix system for example the CC command mentioned in chapter one does the job suppose that three functions are in three files called main.c getline Doc and index. C then the command CC main.c get line. C index. C compiles the three files and PR places the resulting relocatable object code in files main. o get line. o and index. O and loads them all into an executable file named a do out if there is an error say in main.c that file can be recompiled by itself and the result loaded with the previous object files with the command CC main.c get line. o index. o the CC command uses the C suffix versus Theo suffix naming convention to distinguish source files from object files I would note that this CC example exactly as the authors has wrote it does not quite work as described in modern SE compilers if you want to compile your source code and leave the compiled object code around after the compile you add the minus C option to the compiler call Modern C compilers generally do accept multiple files with either C or. O suffixes and comi combine them into a runnable application section 4.2 functions returning non- integers so far none of our programs has contained any Declaration of the type of a function this is because by default called a function is implicitly declared by its appearance in an expression or statement such as while open print get Line open print line comma MAX Line Clos print greater than zero Clos print if a name which has not been previously declared occurs in an expression and is followed by a left parentheses it is declared by context to be a function name furthermore by default the function is assumed to return an INT since Char promotes to INT in Expressions there is no need to declare functions that return Char these assumptions cover the majority of classes including all of our examples so far I would add that’s not true quite true anymore in modern C languages you are required to provide a type for each function if you leave off the type for a function declaration at a minimum you will give a get a Stern warning message but sometimes functions do not intend to return anything at all and so so the void type was invented to indicate that a function returns nothing the rule of requiring a type on a modern function definition in C even if it’s void allows the compiler check to make sure all of your return values in a function match the expected return type back to the text but what happens if a function must return some other type many numerical function like square root S and cosine return double other specialized function functions return other types to illustrate how to deal with this let us write and use the function a to F which converts its argument string s to its double Precision floating Point equivalent a2f is an extension of a to I which we wrote versions of in chapters 2 and three it handles an optional sign and decimal point and the presence or absence of either the integer or fractional part we note that this is not a high quality input conversion routine takes doing everything takes a bit more space than we care to use here in this book first a to F must declare the type of the value it returns since it’s not int because float is converted to double in Expressions there is no point in saying that a to F returns float we might as well make use of the extra precision and thus declare it to return double the type name precedes the function name like this double A to F open parentheses s closed parentheses char s open square bracket closed square bracket open curly brace double Val comma power int I comma sign semicolon for I equal 0 semicolon s subi double equals quote space quote or SBI double equals quot back slash and quote or SBI double equals quot backt quote semicolon i++ semicolon that’s skips the white space s equal 1 if s subi dou equals quot plus quote or s double equals quote minus quote s equals and now we’re going to use a turn operator here pen S Sub i++ close bracket double equals quote plus quote close Pin question mark one colon minus one semicolon and basically tells us it it makes sign be one or negative 1 based on the presence or absence of a plus or minus for Val equals 0 semicolon s subi greater than or equal to quot 0 quote double Amper s subi less than or equal toble quot 9 quot I ++ close PR Val equals 10 * Val plus s subi minus qu0 quot semicolon what this is doing is multiplying the current value by 10 in effect shifting it left and then adding in that new lower empty spot um the digit that we’re encountering which is somewhere between the character Zero and the character nine continuing if parentheses s subi double equals quote. quote Clos parentheses i++ four open parentheses power equals 1 semicolon S Sub I greater than or equal to qu0 quote double Amper sand S Sub I less than or equal toot 9 quot semicolon I ++ open curly brace Val equals 10 * Val plus S Sub I minus quot 0 quote again Shifting the number to the left as it’s as we encounter characters Power Star equals 10 semicolon close curly brace return open parentheses s times Val over power close parentheses semicolon close curly brace second and just as important the calling routine must state that a to F returns a non-int value the Declaration is shown in the Pro following primitive desk calculator barely adequate for checkbook balancing which reads one number per line optionally preceded by sign and adds them all up printing the sum after each input this example is from page 70 of the textbook pound include stdio.h pound Define MAX Line 100 Main open parentheses close parentheses open curly brace double sum comma a to F open parentheses closed parentheses semicolon Char Line open square bracket MAX Line Clos square bracket semicolon sum equals z while open parentheses get Line open parentheses line comma MAX Line close parentheses greater than zero close parentheses print F quote back SLT percent. 2f back sln comma sum plus equals a to F open parentheses line closed parentheses close parentheses semicolon close curly brace that code use the plus plus side effect operator and merge the called to a to F right into the parameter of the second parameter of print F the Declaration double sum a to F open parentheses closed parentheses says that sum is a double variable and that a to F is a function that returns a double value as a pneumonic it suggests that sum and a to F parentheses dot dot dot are both double Precision floating Point values unless a to F is explicitly declared in both places C assumes it returns an integer and you will get nonsense answers if a to F itself and the call to it in main are typed inconsistently with the with in the same source file it will be detected by the compiler but if as is more likely a to F were compiled separately the mismatch would not be detected and a to F would return a double which main would treat as an end and meaningless answers would result Lind catches this error given a to F we could in principle write a to I to convert a string to an integer in terms of it int a to I open parentheses s closed parentheses Char s open square bracket closed square bracket semicolon open curly brace double A to F open parentheses closed parentheses semicolon return open parentheses a to F close parentheses s close parentheses close parentheses semicolon Clos curly brace note the structure of the Declarations in the return statement the value in the expression and return expression is always converted to the type of the function before the return is taken therefore the value of a to f a double is converted automatically to int when it appears in a return since the function a toi returns an INT the conversion of a floating point value to int truncates any fractional part as we discussed in chapter two more on function arguments in chapter one we discussed the fact that function arguments are passed by value that is the called function receives a private temporary copy of each argument not its address this means that the function cannot affect the original argument in the calling function within a function each argument is in a a local variable initialized to the value with which the function was called when an array name appears as an argument to a function the location of the beginning of the array is passed elements are not copied the function can alter elements of the array by subscripting from this location the effect is that arrays are always passed by reference in chapter five we will discuss the use of pointers to permit functions to affect non- arrays in calling functions a bit of a a digression since including a array as an argument passes the location or memory address of the array into the function the function cannot can change the items in the array using array subscripts in particular the array contents are not copied when an array is passed into a c function when we get to strs in a future chapter we will find that the content of strs also are passed using the address of the entire struct so strs are passed by reference as well when thinking about pass by reference or pass by value remember that a Char variable is a single item similar to int and passed by value I.E it is copied in C strings are arrays of characters so they are passed by reference python follows this design for the same efficiency reason is C normal single variables like int or float are copied before being passed into a function and therefore passed by value collections like list or dict are passed into functions by reference so the contents can be changed within a function python strings are not technically copied when being passed into a function but the way assignments happen in Python make it seem like strings are passed by value since they can never be modified you can learn more with a bit of web research but the easy way is to imagine in Python that strings are passed by value with a clever trick to avoid requiring a copy for every function call PHP follows the same pattern of passing numbers and strings by value and passing arrays as reference PHP passes strings by value without recever without requiring a copy again using clever runtime code because in Java JavaScript and PHP strings are objects of course which we haven’t discussed much yet those languages can make sure that strings act as if they were passed by value and not passed by reference the way they are always passed in C C made decision on its runtime based on getting the maximum performance out of the hardware of the 1970s at the expense of making it too easy to write code that overwrites memory and leads to corrupted programs that have dangerous and undefined Behavior languages like PHP Java and JavaScript add a small amount of runtime overhead to do things like store the length of an array and make sure we programmers don’t over reference the array and overwrite random bits of our programs code or data the creators of C placed more priority on speed and efficient use of memory than safety it is like driving an autom automobile in the rain without ABS automatic braking system it is fast but dangerous and should be reserved by highly skilled and very careful programmers and drivers and those drivers should probably be on a race course by the way back to the text by the way there is no entire L satisfactory way to write a portable function that accepts a variable number of arguments because there is no portable way for the called function to determine how many arguments were actually passed in a given call thus you can’t write a truly portable function that will compute the maximum of an arbitrary number of arguments as well the max functions that are built in to Fortran and pl1 it is generally safe to deal with a variable number of arguments if the called function doesn’t use an argument that was not actually supplied and if the types are consistent print F the most common C function with a variable number of arguments uses information from the first argument which is the formatting string to determine how many other arguments are present and what their types are it fails badly if the caller does not supply enough arguments or if types are not what the first argument says it is also non-portable and therefore must be modified for different programming environments alternatively if arguments are of known types it is possible to Mark the end of the argument list in some agreed upon way such as a special argument value often zero that stands for the end of the arguments interestingly modern languages like python PHP and Java go to Great Links to make variable length argument lists work predictably and portably the Syntax for variable length argument lists in these language can be a bit obtuse at times but at least it’s allowed documented reli iable and portable section four external variables a c program consists of a set of external objects which are either variables or functions the adjective external is used primarily in contrast to internal which describes arguments and automatic variables defined inside functions external variables are defined outside any function and are thus potentially available to many functions functions themselves are always external because C does not allow functions to be defined inside other functions by default external variables are also Global so that all references to such a variable by the same name even from functions that are compiled separately are references to the same thing in this sense external variables are analogous to Fortran common or pl1 external we will later see how to define external variables and functions that are not globally available but but instead only visible within a single source file because external variables are globally accessible they provide an alternative to function arguments and return values for communicating data between function any function May access an external variable by referring it to by name if the name has been declared somehow if a large number of variables must be shared among functions external variables are a more convenient and efficient than long argument list as pointed out in chapter one however this reasoning should be applied with some caution for it can have a bad effect on program structure and lead to programs with many data connections between functions a second reason for using external variables concerns initialization in particular external arrays may be initialized but automatic I.E internal arrays may not we will treat initialization near the end of this chapter the third reason for using external variables is their scope and lifetime automatic variables are internal to a function they come into existence when the routine is entered and disappear when it’s left external variables on the other hand are permanent they do not come and go so they retain values from one function invocation to the next thus if two functions must share some data yet neither calls the other it is often most convenient if the shared data is kept in external variables rather than rather than passed in and out via arguments let’s examine this issue further with a larger example the problem is to write another calculator program better than the previous one this one permits plus minus asterisk and Slash and equals equals will print our answer because it is somewhat easier to implement the calculator will use reverse polish notation instead of infix notation reverse polish notation is the scheme used by for example hulet Packard pocket calculators in Reverse polish notation each operator follows its operators operand an infix expression like open parentheses 1 minus 2 closed parentheses star open parentheses 4 + 5 closed parentheses equals is entered as 1 2 minus 45 + star equals parentheses are not needed in Reverse polish notation the implementation is quite simple each operand is pushed onto a stack when an operator arrives the proper number of operands two for binary operators are popped the operator applied to them and the result is pushed back onto the stack in the example above one and two are pushed then replaced by their difference neg1 next four and five are pushed then replaced by their sum N9 and then the product of -1 and 9 which is9 replaces them on the stack and then the equal sign operator prints the top element without removing it so intermediate steps in a calculation can be checked the operations of pushing and popping a stack are trivial but by the time airor detection and Recovery are added they’re long enough so it’s better to put each in a separate function then to repeat the code throughout the whole program and there should be a separate function for f fetching the next input operator or operant thus the overall structure of the program is while next operator or operand is not end file if it’s a number push it else if it’s an operator pop operands do the oper operation and push the result else error the main design decision that has not yet been discussed is where the stack is that is what routines access it directly one possibility is to keep it in Main and pass the stack and current stack position to the rettin that push and pop it but N Main doesn’t need to know about the variables that control the stack it should only think about pushing and popping so we have decided to make the stack and its Associated information external variables accessible to push and pop but not to main translating this outline to code is easy enough the main program is primarily a big switch on the type of operator or operand this is a more typical use of switch than the one shown in chapter 3 this sample code is from page 74 of the textbook pound include stdio.h pound Define Max op 20 pound toine number quote zero quote this is going to be a single we found a number and pound toine two big quote N quote a signal that the string is too big main open print closed parentheses open curly brace int type semicolon Char s open square bracket Max op Clos square bracket semicolon double op two a to F open parentheses closed parentheses comma pop open parentheses Clos parentheses comma push open parentheses closed parentheses semicolon while open parthey open parentheses type equals get up open parentheses s comma Max op closed parentheses closed parentheses not equal e f closed parentheses switch open parentheses type closed parentheses open curly brace case number colon note that number is a predefined constant above push open parentheses a to F open parentheses s close parentheses Clos parentheses semicolon break case quote plus quote colon push open parentheses pop open pin Clos pin plus pop open pin Clos pin Clos pin semicolon break semicolon case quote asteris quote colon push open pin pop open pen Clos pin asterisk pop open pen Clos pin Clos P semicolon break semicolon that was the multiplication case quote quote colon op two equals pop open Forint close print push open print pop minus op2 Clos print semicolon break semicolon that was subtraction case open pin slash Clos pin colon Op 2 equals pop open pin semicolon if op two not equal 0.0 push open print pop open print Clos print SL Op 2 close print semicolon else print F double quote zero divisor popped back sln double quote close print semicolon break case quote equal quote colon print F open PR double quote backt percent F back sln double quote comma push open pin pop open print close print close print close print semicolon so to print it we pop it and push it and then print the residual value of the push function the next line is break semicolon case quote C quote colon clear open print Clos print semicolon break semicolon case too big colon print F double quot percent. 20s space dot dot dot is too long back sln double quote comma s close Pin semicolon break semicolon default colon print F open print double quote unknown command percent C back sln double quote comma type open print Clos print semicolon break semicolon close P close curly brace to finish the switch statement and then close curly brace to finish the main so now we’re going to have a separate file that has some of these functions defined this file is on page 75 of the textbook this file will be compiled separately but then later linked all together with the main program but we’re going to Define push pop and clear in this file pound include stdio.h pound toine maxv Val 100 maximum value that’ be the maximum value of our stack the maximum size of our stack maximum depth of our stack now we are declaring variables outside of any function these are the external variables int SP equals z double Val open square bracket Max Val closed square bracket semicolon and so those variables are external variables and they’re outside of all of the functions but we can use them in any function and there’s just one copy no matter what function we’re using in so now Define our functions double push open pen F Clos pen double F semicolon open curly brace if open pen SP less than Max Val Clos pen return open pen Val open square bracket SP Plus+ closed square bracket equals F Clos pen semicolon else open curly brace print F double quote air colon stack full back SL N double quote Clos print semicolon clear open print Clos print semicolon return open print zero close PR semicolon close curly brace to finish the else and then close curly brace to finish the double function the push function and now we Define the pop double pop open PR close print open curly brace if open pen SP greater than zero closed pen return open PR Val open square bracket minus minus SP close square bracket Clos curly brace semicolon else open curly brace print F open print double quote air colon stack empty back slash n close quote close double quote close PR semicolon clear open PR close PR semicolon return open pen zero close pen semicolon close curly brace to finish the else and then close curly brace to finish the double and the last function we’re going to Define is the clear function which is quite simple clear open pen Clos pend open curly brace SP equals zero semicolon Clos pend I would note that just read this one carefully um they’re very good at using side effect operators and side effect assignments and to keep this code very simple and succinct um and you really have to understand a lot of the other stuff that you’ve covered in the book up to this point back to the text the command C clears the stack with a function clear which can also be used by push and pop in case of error we’ll return to getop in a moment as discussed in chapter one a variable is external if it is defined outside the body of any function thus the stack and stack pointer which must be shared by push pop and clear are defined outside the three functions but if main itself does not refer to the stack or stack pointer their representation is carefully hidden thus the code for the equal operator must use push open print pop parentheses par closed parentheses closed parentheses semicolon to examine the top of the stack without disturbing it notice also that because plus and multiplication or commutative operators the order in which the popped operands are combined is irrelevant but for the minus and slash operators the left and right operands must be distinguished this example code above shows why it’s important to remember the k&r C arrange rearrangement license as it applies to operators that are associative and commutative if the code for the minus operator were W written push open print pop open print close print minus pop open print Clos print Clos print semicolon there is no guarantee that the left pop will run before the right pop and since these functions access Global variables and have side effects it is important to force the compiler not to rearrange the order of the function calls to force the evaluation order the code is broken into two statements op two equals pop open pen Clos pen semicolon push open open pen pop open pen Clos pen minus op to Clos print semicolon now you might think that the lesson here is that the KRC Arrangement license which was done to allow optimization in performance is a bad idea but the more important lesson is that writing low-level utility functions like push and pop that use Global variables and high side effects is a dangerous pattern in any programming language section 4.5 scope rules the functions and external variables that make up a c program need not all be compiled at the same time the source text of the program may be kept in several files and previously compiled routines may be loaded from libraries the two questions of Interest are how are declarations written so that variables are properly declared during compilation and how are declarations set up so that all the pieces will be properly linked or connected when the program is loaded the scope of a name is the part of the program over which the name is defined for an automatic variable declared at the beginning of a fun function the scope is the function in which the name is declared and variables of the same name in different functions are unrelated the same is true of the arguments of the function the scope of an external variable lasts from the point at which is it is declared in a source file to the end of that file for example if Val SP push pop and clear are defined in one file in the order shown above that is int SP equals 0 double Val open square bracket Max Val close square bracket semicolon double push open pen F Clos pin open curly brace do do da close curly brace double pop open print Clos PR open curly brace dot dot dot close curly brace clear open p close PR open curly brace dot dot dot close curly brace then the variables Val and SP P may be used in push pop and clear simply by naming them and no further declarations are needed on the other hand if an external variable is to be referenced before it is defined or it is defined in a different source file from the one in which it’s being used then an extern declaration is mandatory it is very important to distinguish between the Declaration of an external variable and its definition a declaration announces the property of the variable its type its size Etc a definition also causes storage to be allocated if the lines int SP semicolon double Val open square bracket Max Val closed square bracket semicolon appear outside any function they Define the external variables SPN Val and cause the storage to be allocated and also serve as the Declaration for the rest of that source file on the other hand the lines exter INTP xter double Val open square bracket close square bracket semicolon declare for the rest of the source file that SP is an INT and Val is a double array whose size is determined and allocated elsewhere but they do not create variables or allocate storage for them there must be only one definition of an external variable among all the files that make up the source program other files may contain extern declarations to access it there may also be an extern declaration in the file containing the definition any initialization of an external variable goes only with the definition array sizes must be specified with the definition but are optional with the extern Declaration although it is not a likely Organization for this program Val and SP could be defined and initialized in one file and the functions push pop and clear defined in another then these definitions and declarations would be necessary to tie them together in file one we would see int spals 0 semicolon double Val open square bracket Max Val closed square bracket semicolon and then in file two exter int SP semicolon X turn double Val open square bracket close square bracket semicolon double push open pren F Clos pen open curly brace dot dot dot Clos curly brace double pop open pren close pen open curly brace do dot dot close curly brace clear open pren close pen open curly brace dot dot dot close curly brace because the ex turn declarations in file two lie ahead and outside the three functions they apply to all one set of declarations suffices for all of file to for larger programs the pound include file inclusion facility discussed later later in this chapter allows one to keep only a single copy of the extern Declarations for the program and have that inserted in each source file it’s as it’s being compiled let us now turn to the implementation of getup the function that Fe fetches the next operator or operand the basic task is easy skip blanks tabs and new lines if the character is not a digit or a decimal point return it otherwise collect a string of digits that might include a decimal point and return number a single signal that a number has been collected routine is substantially Complicated by an attempt to handle the situation properly when an input number is too long get up reads digits perhaps with an intervening decimal point and until it doesn’t see anymore but only stores the ones that fit if there was no overflow it returns number in the string of digits if the number was too long however getop discards the rest of the input line so the user can simply retype the line from the point of air it returns too big as the Overflow signal this example code is from page 78 of the textbook and you can view it at http://www.cc.com code page 78 get up open print s comma Lim Clos print Char s open square bracket close square bracket semicolon int limb semicolon open curly brace int i commac c semicolon while open PR open PR C equals get CH open PR close PR close PR double equals quote space quote or C equals quot SLT quote or C equals quot back sln quote close pen semicon skip all the blanks if C is not equal quote. quote and open PR C less than quote 0 quote vertical bar vertical Bar C greater than quote 9 quote Clos PR close P return return open PR C Clos PR S Sub 0al C 4 pen I = 1 semicolon open PR C equals get chart open PR close PR close PR greater than or equal to quote 0o quote and C less than or equal to quote 9 quote semicolon i++ inside the for Loop if I less than limb S Sub I equal C if open for n cou equals quote. quote closed pen open curly brace we begin to collect the fraction if open pen I less than limb Clos pen S Sub I equal C four open PR i++ C equals get Char open p Clos PR close PR greater than or equal to quote 0o quote ersan ersan C less than or equal to quote 9 quote semicolon i++ Clos per if open p i less than limb Clos pen S Sub I equals c close curly brace to close the if statement where we’re collecting the fraction if open pen I less than limb closed PR open curly brace this means the number is good unet to CH open PR C closed pen semicolon S Sub I equals quote back0 quote semicolon return open print number Clos print and recall that number is a predefined constant close Cur curly brace else open curly brace if it’s too big we’re going to skip to the end of the line while open PR c not equal quote back slash and quote and c not equal eof open PR C equals get Char open par closed par semicolon s sublim minus one equals quot back sl0 quote semicolon return too big semicolon close curly brace to finish the if and then close curly brace to finish the function recall that too big is a a constant that indicates that uh We’ve read too much back to the text what are get CH and unget CH well it is often the case that a programming reading input cannot determine that is read enough until it is read too much one instance is collecting characters that make up a number until the first non digit is seen the number is not complete but then the program has read one character too far and that is a character it is not prepared for the problem would be solved if it were possible to unread The Unwanted character then every time the program reads one character too many it could push it back on the input so that the rest of the code would behave as if it never been read fortunately it is easy to simulate UNG getting a character by writing a pair of cooperating functions get CH delivers the next input character to be considered unget CH puts the character back on the input so the next call to get ch will return it again how they work together is simple unget CH puts puts the pushed back characters into a shared buffer a character array get CH reads from the buffer is there’s anything there and then it calls get Char if the buffer is empty there must be an index variable which records the position of the current character in The buffer since the buffer and index are shared by get CH and unget CH and must retain their values between calls they must be external to both routines thus we can write get CH and unget CH and their shared variables as follows this is on page 79 of the textbook we can see the code at http://www.cc.com code and go to page 79 pound include stdio.h pound Define buff size 100 char buff open square bracket buff size close square bracket semicolon int buff P equals 0 semicolon those or the external variables outside any function here’s the first function get CH open pen close pen open curly brace return open parentheses open parentheses buff P greater than zero close parentheses question mark buff open square bracket minus minus buff P close square bracket colon get Char open print close PR close PR semicolon close curly brace to finish the get CH function the unget CH function pushes a character back on input unget CH open PR C Clos PR int c semicolon open curly brace if open print buff P greater than buff size print F open PR double quote unget CH colon too many characters back sln double quote Clos PR semicolon else buff open square bracket buff p++ closed square bracket braet equals c semicolon and then close curly brace to finish the unget CH function we have used an array for push back rather than a single character since the generality may come in handy later section 4.6 static variables static variables are a third class of storage in addition to the X turn and automatic that we’ve already met static variables May either be internal or external internal static variables are local to a particular function just like automatic variables are but unlike automatics they remain in existence rather than coming and going each time the function is activated this means that internal static variables provide private permanent storage in a function character strings that appear within a function such as the arguments of print f are internal static an external static variable is known within the remainder of the source file in which it’s declared but not in any other file external static thus provides a way to hide names like buff and buff p in the get ch unget ch combination which must be external so they can be shared yet which should not be visible to users of get CH and unget CH so there’s no possibility of conflict if the two routines are compiled in one file as in static Char buff open square bracket buff size closed Square Brack ET semicolon static int buff P equals z semicolon get CH open PR Clos PR open curly brace dot dot dot close curly brace unget CH open print C close PR open curly brace dot dot dot close curly brace then no other routine will be able to access buff and buff p in fact they will not conflict with the same names in other files of the same program static storage whether internal or external is specified by pref prefixing the normal declaration with the word static the variable is external if it’s defined outside of any function and internal if defined inside a function normally functions are external objects their names are known globally it is possible for a function however to be declared static this makes its name unknown outside the file in which it’s declared in C static kind otates o not only permanence but also a degree of what might be called privacy internal St static objects are known only inside one function external static objects variables or function are are known only within the source file in which they appear their names do not interfere with variables or functions of the same name in other files external static variables and function s provide a way to conceal data objects and any internal routines that manipulate them so that other routines and data cannot conflict even inadvertently for example get CH and unget CH form a module for character input in push back buff and buff P should be static so they’re inaccessible from the outside in the same way push pop and clear form a module for stack manipulations Val and SP should would also be external static 4.7 register variables the fourth and final storage class is called register a register declaration advises the compiler that the variable in question will be heavily used when possible register variables are placed in machine registers which may result in smaller and faster programs the register declaration looks like register int X semicolon register Char C sumol and so on the in part may be omitted register can only be applied to automatic variables and the formal parameters of a function in this latter case the function declaration looks like f open PR C comma n Clos print register int C comma n semicolon open curly brace register in I semicolon and then dot dot dot close curly brace in practice there are some restrictions on register variables reflecting the realities of the underlying Hardware only a few variables in each function may be kept in registers and only certain types are allowed the word register is ignored for excess or disallowed declarations and it is not possible to take the address of a register variable a topic that will be covered in chapter 5 the specific restrictions vary from machine to machine as an example on the pdp1 only the first three registered declarations in a function are effective and the types must be int Char or pointer as a quick aside the description of the details of the implementation of the register Mo modifier on the pdp1 is a delightful Peak into how the C compiler generated runtime code on that particular system in the 1970s as compilers have become more sophisticated the compiler could decide which variables to keep in registers far better than the programmer could and since how variables would be allocated to registers might be different on different Hardware architectures the register indication is generally ignored by modern C compilers so you should probably never use it in your code as a matter of fact I wrote The Following sample C program and compiled it with the minus capital S option so I can see the generated Assembly Language with and without the register declaration with optimization there was no difference between the code generated with or without the register declaration the reason the generated assembly code was identical once you take a look at it was regardless of the use of the register keyboard was that the C Optimizer on my armm based computer in 2022 realized the best way to implement the code was to keep both of the variables in registers because the loop code was so simple and the CPU in my computer has plenty of registers and optimized any loading and storing of the data for these variables right out of the program in 1978 the authors likely included the register function as a feature to convince the experienced Assembly Language programmers that they should write all but the lowest lowest level code in C so write a little tiny bit in C and then I mean write a little tiny bit in Assembly Language and write everything else in C so here’s an example that’s not in the textbook it’s on page 81 if it were in the textbook you can see this code at http://www.cc.com code page 81 and this is code that I wrote to play with the register keyword to mostly convince myself it was pointless to use it but here we go pound include stdio.h int main open print Clos print open curly brace int compute semicolon register int itter semicolon scan F open print double quote percent D close quote comma Ampersand compute close parentheses semicolon PR F open parentheses double quot compute space percent D back sln double quot comma compute closed parentheses semicolon four open print iter equals z semicolon iter less than 1,000 semicolon iter Plus+ close parentheses open curly brace compute equals open parentheses compute time 22 closed parentheses * 7 if compute greater than 1,000 compute equals compute modulo 1000 close curly brace print F open print double quote compute space percent D back sln close quote comma compute semicolon close curly brace now some of these I wrote this code in a way that tries to convince the the the optimizer that I’m actually going to use these values that’s why I read the value from input as compared to a constant it would actually optim the optimizer so so so smart that it would just eliminate all the constant calculations so but that’s my sample U playing with register section 4.8 block structure C is not a block structured language in the sense of pl1 or alol in that functions may not be defined within other function on the other hand variables can be defined in a block structured fashion Declarations of variables including initializations may follow the left brace that introduces any compound statement not just the one that begins a function variables declared this this way supersede any identically named variables in outer blocks and remain EX in existence until the matching right brace for example if open parentheses n greater than Z closed parentheses open curly brace in I semicolon declare a new I for open parentheses I equal 0 semicolon I less than n semicolon i++ close parentheses and dot dot dot the rest of the for Loop and then a closed curly brace for the if the scope of the variable I is in the true branch of the if this I is unrelated to any other I in the program Blu structure also applies to ex internal variables given the Declarations int X semicolon F open parentheses closed parentheses open curly brace double X semicolon dot dot dot Clos parentheses then within the function f occurrences of X refer to the internal double variable outside of f they refer to the external integer this is same is true of the names of formal parameters for example in Z semicolon outside of any function f open parentheses Z closed parentheses double z semicolon open curly brace dot dot dot Clos curly brace within function f z refers to the formal parameter not the external variable section 4.9 initialization initialization has been mentioned in passing many times so far but always peripherally to some other topic this section summarize some of the rules now that we have discussed the various storage classes in absence of explicit initialization external and static variables are guaranteed to be initialized to zero automatic and register variables have undefined or Garbage values simple variables not arrays or structures may be initialized when they are declared by following the name with an equal sign and a constant expression int x = 1 semicolon j s quot equals single quote back/ single quote single quote semicolon a constant of a single character that is a single quote itself long day equals 60 * 24 semicolon which is the minutes in a day for external and static variables the initialization is done once conceptually at compile time for automatic and register variables it is done each time the function or block is entered for automatic can register variables the initializer is not restricted to being a constant it may in fact be any valid expression involving previously defined values even function calls for example the initializations of the binary search program that we wrote in chapter 3 could be written as binary open parentheses x comma V comma n closed parentheses int X comma V open square bracket close square bracket comma n semicolon open curly brace int low equals z semicolon in high equals nus1 semicolon and in mid followed by the rest of the function and enclosed curly brace instead of initializing these as the first executable statements and we would do this with binary open pen x comma V comma n Clos pen int X comma V open square bracket close square bracket comma n semicolon open curly brace int low comma mid comma High semicolon low equals z semicolon High equals n minus1 semicolon and so forth in effect initializations of automatic variables are just shorthand for assignment statements which form to prefer is largely a matter of taste we have generally used explicit assignments because initializers and declarations are harder to see automatic arrays may not be initialized external and static arrays may be initialized by following the Declaration with a list of initializers enclosed in braces and separated by commas for example the character counting program of chapter one which originally was main open parency closed parency open curly brace int C comma I comma n white comma n other int n open Square braet 10 Close square bracket semicolon n white = n other equal 0 for open parentheses I equal 0 semicolon I less than 10 semicolon I ++ closed parentheses n digit sub I equals z and then the rest of the code followed by a Clos curly brace finishing main this could be written instead using initializers as follows int and white equal 0 semicolon int n other equals z semicolon int n digit open square bracket 10 Close square bracket equals open curly brace 0 comma 0 comma 0 comma 0 comma 0 comma 0 comma 0 comma 0 comma 0 comma Z Clos curly brace 10 zeros in a row in separated by commas and in braces and then the main code is simply main open PR close Pin open curly brace int comma C comma I and then the rest of the main code close curly brace the idea is is that with the initializers with the external variables outside of the main function you do not need to initialize them even with a for Loop in the beginning of the main program these initializations are actually all unnecessary since they’re all zero anyways but it’s a good form to make them explicit anyway if there are fewer initializers than the specialized size the others will be zero it is an error to have too many initializers regrettably there is no way to spe specify the repetition of an initializer nor to initialize an element in the middle of the array without supplying all the intervening intervening values as well character arrays are a special case of initialization a string may be used instead of the braces and comm’s notation as in Char pattern open square bracket closed square bracket equals Double quot T H double quot semicolon this is a shorthand for the longer but equivalent Char pattern open square bracket closed square bracket equals open curly brace single quote T single quote comma single quote H single quote comma single quote e single quote comma single quote back slash zero single quote Clos curly brace semicolon when the size of an array of any type is omitted the compiler will compute the length of the array by counting the initial initializers in this specific case the size of pattern is four three actual characters plus the terminating back sl0 I would note that the primary difference between C and C influence like languages like Java PHP and JavaScript this key is that c strings are character arrays while in the other languages strings are objects these string objects do have inside themselves an array of bytes or characters but they also keep track of things like the length of the string and provide functionality like extract a substring in the methods in these objects in C there is a set of Library functions that perform string operations like compare two strings while string comparison is built into the string objects in each of the other languages strings as character arrays allow programmers to build very fast low-level code in libraries and operating systems but to write the code well you need to understand what is really going on at the low level section 4.10 recursion C functions may be used recursively that is a function may call itself either directly or indirectly one traditional example involves printing of a number as a character string as we mentioned before the digits are generated in the wrong order order low order digits are available before for high order digits but they have to be printed in the other way around there are two solutions to this problem one is to store the digits in an array as they are generated and then print them in reverse order as we did in chapter 3 with I to a the first version of print D follows this pattern this is sample code on page 85 of the textbook you can view the sample code at www. cc4 /c code page 85 example one pound include stdio.h print D open pen n close pen int n open curly brace Char s open square bracket 10 closed square bracket semicolon in I semicolon if parentheses n less than zero parentheses open curly brace put Char open prin single quote Dash single quote Clos peren semicolon n equal minus n semicolon Clos curly brace I equal Z semicolon do open curly brace S Sub i++ equals n modulo 10 plus quot 0 quote which gets the next character while parentheses parentheses n/ equal 10 close parentheses greater than Z closed parentheses semicolon then we reverse the string while open print minus- I greater than equal to zero Clos pen put Char open pen s subi Clos pen semicolon close curly brace to end the print D function the alternative is a recursive solution in which each call of print D first it calls itself to cope with any leading digits then prints the trailer digit after that call returns this is an example on page 85 of the textbook in its example two pound include stdio.h print D open pen n close pen Inn semicolon open curly brace in I semicolon if open for n less than Zer Clos pren open curly brace put chair open pren single quote- sing single quote close pen semicolon Nal minus n semicolon close curly brace to finish the if if open print open print I equal n/ 10 Clos print not equal zero close print print D open print I Clos print semicolon that’s the recursive call and after the recursive call comes back we do put Char open pen in modulo 10 plus single quote 0 single quote close print semicolon close curly brace to end the print D function when a function calls itself recursively each invocation gets a fresh set of all the automatic variables quite independent of the previous set thus in print D 123 the first print D has Nal 123 it passes 12 to a second print D then prints three when that one returns in the same way that second print D passes one to a third which prints it and then prints two recursion generally provides no saving in storage since somewhere a stack of values is being processed or has to be maintained nor will it be faster but recursive code is more Compact and often much easier to write and understand recursion is especially convenient for recursively defined data structures like trees we will see a nice example in chapter six as as an aside uh recursion recursion recursion recursion is a beloved Concept in computer science it is often taught early in most programming courses because it is just so cool most examples are sadly like Computing factorial or the example above converting an integer to a string and they’re not good uses of recursion actually but when you do finally find yourself in need of traversing a tree based structure like an XML document or parsing a mathematical expression with parentheses recursion is the ideal solution so the problem in a sense is not recursion but when it is taught and what examples are used interestingly kernigan and Richie include the correct warning about using recursion when it is not the best solution in the above text and it Bears another read back to the book in cursion generally provides no saving in storage since somewhere a stack of values is being processed or has to be maintained nor will it be faster but recursive code is more Compact and often much easier to write and understand recursion is especially convenient for recursively defined data structures like trees we will see a nice example in chapter six I couldn’t have said it better section 4.11 the c pre-processor c provides certain language Extensions by means of a simple macro pre-processor the pound Define capability which we have used is the most common of these extensions another is the ability to include the entire contents of other files during compilation file inclusion to facilitate handling of pound defines and declarations among other things C provides a file included feature any line that looks like pound include space double quote file name double quote is replaced by the conts of the file name the quotes are indeed mandatory often a line or two of this form appears at the very beginning of each source file to include common pound defined statements and extern declarations for Global variables pound includes may be nested pound include is the preferred way to tie declarations together for a large problem and in a large program it guarante that all the source files will be supplied with the same definitions and variable declarations thus eliminating a particularly nasty kind of bug of course when an include file is changed all the files that depend on it must be recompiled macro substitution a definition of the form pound Define yes one calls for a macro substitution of the simplest kind rep replacing a logical name by a string of characters names and the pound Define have the same forms of as the C identifiers the replacement text is arbitrarily normally the replacement text is the rest of the line a long definition may be continued by pacing a backslash at the end of the line to be continued the scope of the name defined with pound Define is from from its point of definition to the end of the source file names may be redefined and a definition may use previous definitions substitutions do not Place take place within quoted strings so for example if yes is a defined name there would be no substitution in print F open print double quote yes double quote Clos print since implementation of pound Define is a macro prepass not part of the compiler proper there are very few grammatical restrictions on what can be defined for example alcohol fans can say pound Define then and then nothing pound Define begin open curly brace pound Define end semicolon Clos curly brace and then write approximate alol if pen I greater than zero Clos pen then begin a = 1 semicolon b = 2 end it is also possible to Define Mac macros with arguments so the replacement text depends on on the way the macro’s called as an example to find a macro called Max like this pound Define Max open PR a comma B open PR open PR a Clos PR greater than open PR B Clos print question mark open print a Clos print colon open print B Clos print Clos print now the line x equals Max open print p+ Q comma r+ s closed BR semicolon will be replaced in the pre-processor by the line x equals open print open PR p+ Q Clos print greater than open PR R plus s Clos PR question mark open PR p+ Q Clos print colon open pen r+ s Clos pen Clos print semicolon this provides a maximum function that expands into inline code rather than a function call so long as the arguments are treated consistently this macro will serve for any data type there is no need for different kinds of Macs for different data types as there would be with functions of course if you examine the expansion of Max above you will notice some pitfalls the expressions are evaluated twice it is bad if they involve side effects like function calls increment operators or perhaps push and pop like we’ve used before some care has to be taken with parentheses to make sure the OD order of evaluation is preserved consider the macro pound Define Square open print X Clos print equals x * X when it is invoked as Square open print Z + one close print there are even some purely lexical problems there can be no space between the macroon name and left parenthesis that introduces the argument list nevertheless macros are quite valuable one practical example example is the standard IO library to be described in chapter 7 in which get charar and putchar are defined as macros obviously put chart needs an argument thus o avoiding the overhead of a function call per character Pro process other capabilities of the macro processor are described in appendex a as a bit of a long aside in this section we are talking about the pre-processor is probably a good time to talk bit about why we use this terminology for those of you with a computer science degree from back in the day many of you wrote a compiler as a senior project just like I did building a compiler was a great project because part of the goal of computer science is to understand the technologies that make programming proc possible from the language syntax down to the hardware the compiler that translates our source code into machine code is an essential part of the technology stack that we use early compilers for languages like the early Fortran variants tended to be translators they just translated code one line at a time from a high level language to Assembly Language you could think of early Fortran programs in the 1950s and the 1960s as just more convenient ways to write Assembly Language for programmers that knew Assembly Language you always needed to be aware of Assembly Language and the translation that it was going to write fast Fortran programs were small and optimization was done at the for Trend level often leading to some hard to understand code by the mid 1970s programming languages were based on parsing Theory and we used what is called a grammar to define the language kernigan and Richie kept I/O statements out of the C language to keep its formal definition I.E its grammar as simple as possible as these new languages emerged they allowed for more theoretical and Powerful approach to converting source code to machine language the theoretical advances in compiler and language design me that parts of the compiler might be reusable across multiple programming languages each language could have its own syntax and grammar rules and they could be plugged into the compiler and poof you would have a new programming language it got to the point where Unix system Unix systems had a tool called Yak which stood for yet another compiler compiler you would give it a grammar for your new language and it would make a compiler for you as a matter of fact the job JavaScript language that was created in 10 days back in 1995 was possible because Brendan Ike had a lot of experience with compiler generators he defined a grammar for JavaScript and generated his first compiler part of what made a compiler generate generator possible is the idea of a multi-step compiler or the tasks of a compiler were broken down into a series of simpler and more well-defined steps here are the steps of a typical C compiler in the 1970s first a pre-processor step that takes code with syntax like pound Define and P include as its input and produces raw code output with those instructions processed and or expanded the pre-processor processor was a ctoc transformation next a parser step that took the raw C code applied the grammar to the language and created what is called a parse tree think of the tree is a hierarchy of statements grouped into blocks grouped into functions Etc a things like a loop where just one node in a parse tree after that a code generation would turn the parse tree into some kind of simplistic portable internal code that expanded things like loops and if and elf statements into code after that a code optimization that looked at the internal code and moved things around eliminating any redundant computations say don’t compute the same things twice this step is why the authors make such a big Foss about how there are times where C might do things in a slightly different order in an expression even in the presence of parentheses remember the KRC Arrangement license back in Chapter 2 that rule removes constraints on the compiler’s optimization step so it can generate the most efficient code I would note that all the steps up to this point did not depend in any way on the actual machine language of the system that they were running on this meant a pre-processor parser code generator and code Optimizer could literally be written in C and used on any architecture the final step is a code generator that takes the optimized intermediate code and generates the actual assembly and machine language for the processor for fun you can add the minus capital S parameter to your C compiler and see the resulting Assembly Language output for your system if you look at the machine language generated on Intel or AMD processor and compare it to the machine language on an armm processor it will look very different because all but the final compiler steps did not depend on the computer where the program is being run you could actually create a c compiler on a new computer architecture by writing a code generator on the new computer then running all but the last step of the compiler on one computer then copying the internal code generated by the compiler to the new compiler and running the code generation step on the new computer then you actually have a working C compiler on the new computer and the first step is usually to recompile the C compiler itself from source code to produce a fully native C compiler on the new computer that can compile all the rest of the C code you have including possibly the mostly portable elements of the Unix operating system on the new compile yes describing how to cross compile and bootstrap a c compiler onto a new computer hardware architecture can give you a headache if you think about it too much but this notion of bootstrapping a c compiler onto a new architecture was an important technique to move C and Unix to a wide range of very different computer architectures we see this in action as the Unix like Mac OS operating system over the past 20 years was delivered initially on a Motorola 68,000 family processors then on power PC processors and then on Intel processors and most recently on arm-based processors built by Apple using the software portability patterns that come from C and Unix and described by kran and Richie in this book Apple now made makes their own Hardware that can be tuned and evolved over time as their operating system and their applications requirements dictate the use of a grammar by the way is to define a programming language is one of the reasons that syntax errors are so obtuse the compiler is not looking at your code like a human it is following a very set of simple rules to parti your code and it’s stuck with something ilog logical and gives you a message like unexpect unexpect expected statement block or constant on line 17 and the error is nowhere near line 17 modern compilers are more sophisticated of course than the steps above but these steps give you a sense that the compiler does many things to make it so your code can actually run very efficiently and given that kernigan and Richie were building a programming language c a more mostly portable operating system written in C Unix and a mostly portable C compiler written in C some of them their Innovative work and Research into compiler design finds it its way into this book so we have a section in this chapter called the C preprocessor so here we are at the end of chapter 4 and it’s a good time to talk about the word address up to this point in the book if you count them the word address has been used 10 times without a precise definition beyond the notion that data is stored in memory and the address of the data is where the data is stored in memory in the next chapter this notion of the address where the data is stored becomes very real and tangible as we explore pointers as well as the Ampersand and asterisk operators up to now an experienced JavaScript PHP or Java programmer can view c as just another set of similar syntax rules with a few quirky runtime bits but in the next chapter we will deeply explore the concept of data allocation and location it turns out that every programming language pays a lot of attention to data allocation and location but the runtime environments of modern languages work very hard not to expose you to those details just because modern languages hide the difficult bits from us it does not mean that those languages solve the problem using magic eventually the problem needs to be solved and that is why the comp and lowlevel runtime elements of language like PHP JavaScript and Java are usually written in C so the Builders of those languages can solve the difficult data storage and allocation problems for you this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand Its Right Place in a historical context amidst the major changes of the 1970s and 1980s as computer science evolved from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the ideal book to learn SE programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the sea language was evolving as it laid the groundwork for a future with portable applications [Music] hello and welcome to our lecture on kernigan Richie chapter 5 putting some context around it chapter five is functions and program structure so the first thing I want to call your attention to is section 5.1 I actually think that section 5.1 is the most poignant and beautiful section in the book everything you’ve learned up till now everything talked about size of data Etc has led to the point where you can read 5.1 and understand every word of it you should enjoy reading it I think of it as like a love letter from the creators of sea to Future computer scientists so 5.1 is important uh we’ll talk a little bit about Pointer arithmetic uh 5.6 we’ll look at the sort of The Duality between pointers and integers then we’ll hit call by reference and call by value that are Ena B in C by pointers and then look at the biggest security hole that c has caused over the past 40 plus years uh buffer overflow now the the the the chapter gets a little dense um in some of the sections and so I’ll I’ll just have you skim some of those sections this is the essential example of pointers we have two variables int X and Y we have a variable PX which is of type pointer it points to an integer that’s what instar means we store 42 in X and we store the address of X into PX using the Ampersand operator and then we use the address of X which is in PX and then we use a lookup operator or a dfference operator star PX it says go to the memory location pointed to by PX and load me an integer and put that into Y and so we can see when we print out X is 42 and Y is 42 and P X is a long hexadecimal number that is some memory location inside the actual computer and so ERS send and asterisk and in Star the star as as a sort of a modifier for a type are the the important things one of the things that You’ probably never seen in Python is the ID function we’ve used functions like type and dur and there are ways for us to inquire about variables and constants ID is a way to ask ask for the idea of something now in cpython and and just to be clear there are multiple versions of python cpython is the classic one it’s the implementation of python that happens to be written in C uh there are other implementations of python um and so what I’m telling you with this ID function is something that will work for the moment in cpython but not necessarily every other one if you print it out and you say what is X and what is the ID of X it’s kind like the address and if you look at the documentation it says don’t think this is the address right and it says the python ID function is not intended to be dereferenceable meaning we’re not supposed to look up memory from that the fact that it’s based on the memory address is a cpython implementation detail that other python implementations do not follow now if you download the source code k501 py I actually have a completely unauthorized implementation of a lookup a dfference and it has to know the type of the thing that it’s D referencing y equals DF of PX and it can then give me back that integer pointed to by the address but this is not guaranteed to work it’s not supposed to be how it works it just is there is kind there things have addresses and in cpython at least for this particular version of python that I’m using you can use that pointers gives us the ability to do call by reference and so you know if you’ve done python you see that we we we have a I had a slide in an early version of my python class that said uh sorry python doesn’t do call by reference it only it only does call by value and that means that within a function you change the parameters and nothing happens but some languages do have call by reference which means the parameters that come into a function are somehow handles that allow us to actually change the values in the main programmer or where where we’ve been calling from so the language Pascal and c and C++ PHP and C have this notion a formal notion of call by reference and languages that don’t have it are like Python and Java and JavaScript now these there is a notion the fact that I said this is for simple types like integers objects are passed in but then if you call methods in objects you can actually change the data that the object has but it’s not like you’re changing the object you’re changing the object’s data so let’s take a look at a bit of code now the first example is actually Pascal now Pascal is a programming language that was written by uh Nicholas verit and in Switzerland in 1970 and it had a call by reference and it had this notion of VAR and so you’re creating a function name Funk takes two parameters one is a call by value which is a and then the other one’s call by reference which is a b and we set a and b to two new numbers and then in the main program we set x = 42 yal 43 and then we call the function and you’ll notice there’s no extra like syntax in the function and then we come back and you will see that uh the Y variable is changed and the X variable is not and then the C version of this we have you know x = 42 y = y = 43 and then when we call Funk we say we’re going to pass in x and then Ampersand Y which is the address of Y and if you go back to the very first example in section 5.1 we’re passing in a number which we’re actually passing in by value but the value is the address and then inside the function we take a and then a pointer to B PB and we say that a is just an integer and PB is an address of an integer by adding the little asterisk there so the address where it’s at has been passed by value but using that value we can dreference it and get to the thing so we say a equal 1 and we say star PB equals 2 that says store two as an integer into the location pointed to by PB and then when you come back the second parameter will have been changed y will have been changed and X will not be changed if we take a look at a few other languages so here we have the C code again um python uh 1989 doesn’t have the notion of pass by reference and so one of the things that I think is a an excellent compromise uh that is the case in Python is the notion of returning a tupple not just a single value but a topple return and so that way we could if we really wanted to get back a value more than one value um we could return a tupple and then in the main program we assign the tupple so if we really wanted X and Y to change from uh inside the function we could do so by just explicitly saying function is going to return two values and we’re going to change them both and if we look at PHP which is 1994 um we see a very elegant I think now whenever you look at PHP you got to realize the dollar sign is just part of the variable name that’s just the first character of all variables in PHP so what we do inside a function is we say Ampersand dollar B which is the second parameter is B dollar B and we’re expecting to change it and you’ll note that we don’t change the syntax inside the function dollar Bal 2 dollar AAL 1 the syntax doesn’t change and when we make the call Funk dollar X comma dollar y we don’t change that either and yet call by reference works so if you look at all these examples other than the weird dollar sign convention I would say that the simplest and most elegant is probably the PHP implementation right because we don’t have to do anything inside the function except I’m planning on changing this now C sh which is much later 2000 um has this notion of ref which is somewhat a call a throwback to um Pascal but also you know it’s the Amper sand thing and um but the one thing I like about it is inside the C defunk you have to kind of agree the calling code by saying refx is in a sense agreeing that it is aware that X is likely to be changed by that function and so that’s that’s called by reference now you know we’re in a cclass and so Amper sand and asterisk are how we do it so again that’s just it’s it’s really quite straight forward inside a c code as long as you are very good at understanding what the asterisk and Ampersand do in C another important thing that’s easily understood with a very simple bit of code is pointer arithmetic the key to pointer arithmetic is that a pointer to an integer is different than a pointer to a character now both these point pointers are the same size because they are an address and addresses are all the same size but if you add one to a character pointer that actually adds one to the address and if you add one to an integer pointer then it adds four and that’s because on each integer takes four characters and so when you’re doing increments and subtracts Etc you are when they’re pointers it it increments based on the type of the thing that’s pointed to so a pointer is not just a pointer it’s a pointer to a thing with a type and when you’re incrementing and decrementing the type that’s being pointed to is more important than the fact that it’s a pointer it goes up and goes down but it doesn’t always just go up and down by one pointers are not integers so if you go back to chapter 2 there was from the book a table of the sizes of things and so if you look in the PDP 11 integers are 16 bits and Honeywell 6000 there’re 36 bits and IBM 370 there 32 bits and inata 832 there’s 32 bits now I’ve added a line to this that tells the number of bits in addresses in these systems and you can see if you compare the int numbers to the address numbers that in all the cases except the pdp1 the the integer is larger than the address which means that there is extra space in the address and we can almost treat addresses as unsigned integers now the pdp11 is a little weird in that 16 to 32 is a range of delivered computers over over the years and uh not all computers had full memory and not all applications use the entire memory of the entire computer so um most of the time you can conveniently put an address into an integer and then get that address back out and not have truncated um that address or messed it up so treating pointers as integers almost works and the long longer in longer ago in history it was the more likely it did work addresses are generally positive numbers that often start from zero sometimes Heap numbers come down and sometimes stack numbers go up or whatever but most computers did not come with a maximum memory installed and and if you’re a multi-user computer you didn’t give all the systems memory to every application and we tended to use very little memory in applications we’re very careful about it so it just never ran into the problem of our memory address is not fitting into integers so in the early 70s applications could get away with having a function that returned an address return it as an integer and then copy it into a pointer without conversion and so by like the early 80s the notion of a void pointer gave us a way to have a generic address that is a pointer to something we don’t know what type it is cuz all addresses are addresses but what they point to is different and so uh if you take a look at the Alec function which we’ll play a lot more in the next chapter the Alec says oh give me 42 bytes and give it back to me as a pointer give me a pointer to 42 new bytes that you just allocated so if you go in the early 70s Alec returned an INT but then we would cast it to whatever type we wanted so we would say Alec 42 would give us an address that’d be an integer but then we cast it to an integer star which is a no loss C pass and then we would store it by the time in the 1978 CNR book we tended to call it a charar cuz the 42 is how many characters we’re going to allocate and then you would take the pointer to a character and cast it to a pointer to an integer and so Alec of 42 would give us 14 integers actually I think if I got my multiplication right but in modern C we have this pointer void pointer which basically says look Alec is going to return an address and you have to cast it to something so Alec 42 returns a void star which is cast it to an instar which is a lossless cast and not something that’s going to confuse the compiler and then we store it in our inar variable and so void you’ll everything you’ll ever touch will be using void um but I just wanted to give you a little bit of the history of it and why void’s kind of not mentioned in this 1978 book every time in the class I’m like hey it’s time to learn about security and everybody got kind of groans like oh no back when I taught HTML injection and SQL injection and cross-site scripting in all my previous classes and here’s the classic XKCD where um the mom has named their child with a bit of SQL and some single quotes and some comments and um that’s all fun it’s important that we as software developers are aware of how the things that we build could be corrupted by those with uh those with uh in evil intent right so it has come time to talk about that for C probably the single worst security hole in all of computing history from 1950 to today even before c was a thing is what’s called buffer overflow and it has to do with the fact that the there is no sense that a string of characters has a length it’s has an allocated length but it doesn’t have a runtime length and so when we put more data into a string than can hold the string it just keeps on storing beyond the end of the string it doesn’t like push make a little more space and so this is from the Wikipedia page where you have an eight character um string followed by a two character integer or something and we copy the string excessive which is a nine character which includes nine characters and the sl0 the zero and that completely overwrites by just trying to write into the a string it overwrites the B variable as well and so that’s buffer overflow it’s sort of like somehow we’re going to push too much into this variable so that it extends where it’s been allocated and that never is detected and then it keeps going on and it means that you can do all kinds of things with buffer overflow you can change variables you can like turn on super user permission who knows you got to look at the source code you got to carefully construct a sort of nasty attack but the attack Vector is the fact that string arrays bounds are not checked when we’re copying stuff in and if you write bad code or if the system writes bad code it’s just going to go wiping out memory so it turns out that the probably the the the worst offender of this is the gets function and this was part of standard C for a long time and so here what I’m doing is I’m I’m creating a 15 character uh string array a character array which is 15 elements and I’m calling get S and the problem with get S is like somebody’s going to give us that data and it’s not us and then I print it out so the first first thing you see is when I compile a pit of code that has gets the compiler is upset I have greatly uh simplified the errors it just it comes up with three errors and this is a subset of one of the errors the compiler is telling you don’t use gets if you didn’t hear what I said the first time don’t use gets and so so the compiler is not happy but it it’s like you know people write that so we’re going to run it okay a. out which starts the code as soon as that line gets runs the runtime of the C standard sd. says before it prompts us for the data it actually adds a print statement it’s not our print statement it’s the library saying you really really should not be using gets and if you think this program is trustworthy you’re probably wrong so I Type Hello World which is 11 characters hello space world yeah it’s 11 characters hello world’s 11 characters I type 11 characters in that includes the 12th character which is the back SL zero and that fits into s S15 a 15 15 element string uh character array in the variable s so the program works just fine then I type a. out again and it once again tells me please don’t use gets you’re going to be in so much trouble and now I type in dead a bunch of a hello and a bunch of spaces and then world and it prints out hello bunch of spaces and world but has overwritten all kinds of unknown data after the S15 so that’s you know that’s like 30 or 25 or 30 characters and it the first 15 are in s but then the next 15 are somewhere else and S is on the stack because it’s an automatic variable in Main and it goes wiping out the rest of the stack now it turns out that the cun time puts things on the stack to kind of Mark or to catch this overflow and so what happens is as soon as that code finishes it says abort trap six which is basically the C runtime saying you know what I’m not going to let this program proceed any further because there has been an array that got messed up and it’s not that it caught it’s not that it caught the array messing up it didn’t know how long it was it just put characters in but what it did is I put something after the array and then it checked for it later and that got wiped out and it’s like okay you wiped out my magic little secret and so I’m going to not let you continue and so we don’t you want you to use get S um and this is a buffer overflow and I I can give you eventually maybe we will look at some much more complex examples of this where we try to like use something like get us to manipulate what the program does rather than just blow the program up but this is a very simple example of buffer overflow so in summary pointers are the beautiful most beautiful part of SE they’re complex but basically pointers make it so that a high level language can function like a low-level language if we don’t have pointers and I mean not even kind of crappy python ones I mean pointers that we can look up and then D reference officially and formally and not have it be a sneaky way that we’re doing it that means means that you can do the things that operating systems need to do the kinds of things that we used to write Assembly Language for meaning we’re going to here’s a buffer of memory we’re going to copy this buffer we’re going to do another thing and there there’s another buffer and there’s a link list of all the different buffers so understanding pointers leads you to the path of Assembly Language machine language and then ultimately Hardware so you should not rush through this material pointers are really really important everything we’re going to do from now on pointer is just I’m just going to say pointer pointer pointer just like I say object oriented over all the time I’m going to say pointer all the time sections 57 and 510 through 5 52 are a little dense so what I really want you to do is understand the stuff I just talked about and the corresponding sections and chapter six will be more fun because we’ll be doing much more with the pointers rather than just what is a pointer [Music] welcome to C programming for everybody my name is Charles S and this is my reading of the 1978c programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter five pointers and arrays before we start chapter 5 a quick note from your narrator from time to time I have been adding some of my interpretation to this book but I won’t be adding anything to this chapter I think that sections 5.1 through 5.6 contain some of the most elegantly written text in the book concepts are clearly stated and the example quote is short direct and easy to understand pointers are the essential difference between C and any other modern programming language so pay close attention to this chapter and make sure that you understand it before continuing this chapter is as strong now as it was in 1978 and so without further Ado we read and listen as kernigan and Richie teach us about pointers and arrays a pointer is a variable that contains the address of another variable pointers are very much used in C partly because they are sometimes the only way to express a computation and partly because they usually lead to more Compact and efficient code than can be obtained in other ways pointers have been lumped with a go-to statement as a marvelous way to create impossible to understand programs this is certainly true when they are used carelessly and it is easy to create pointers that point somewhere unexpected with discipline however pointers can can also be used to achieve Clarity and simplicity this is the a aspect that we will try to illustrate section 5.1 pointers and addresses since a pointer contains the address of an object it is possible to access the object indirectly through the pointer suppose that X is a variable say int and that PX is a pointer created in some as yet unspecified way the unary operator Ampersand gives the address of an object so the statement PX equals Ampersand X semicolon assigns the address of x to the variable PX PX is now said to point to X the Ampersand operator can be applied only to variables and array elements construct like Amper sand open pren X+1 Clos pren and ersan 3 are illegal is also illegal to take the address of a register variable the UN the unary operator asterisk treats its operand as the address of the ultimate Target and accesses that address to fetch the contents thus if Y is also an INT y equals star PX semicolon assigns to Y the contents of whatever p PX points to so the sequence PX = Ampersand X semicolon yal star PX semicolon assigns the same value to Y as does y = x it is also necessary to declare the variables that participate in all of this int X comma y semicolon int star PX semicolon the Declaration of X and Y is what we have seen All Along The Declaration of the pointer PX is new int star PX semicolon is intended as a pneumonic it says that the combination star PX is an INT that is if PX occurs in the context star PX it is equivalent to a variable of type INT in effect the syntax of the Declaration for a variable mimics the syntax of expressions in which the variable might appear this reasoning is useful in all cases involving complicated declarations for example double A to F open parentheses closed parentheses comma star DP semicon says that in a particular expression a to F open PR Clos print and star DP have values of type double you should also note the implication in the direction declaration that a pointer is constrained to point to a part particular kind of objects pointers can occur in expressions for example if PX points to the integer X Then star PX can occur in any context where X could y equal star PX + 1 sets y to one more than x print F open parentheses double quote percent D back sln double quote comma star PX close perin prints the current value of x and D equal Square OT open pin open p double Clos pen star PX closed per n produces in D the square root of x which is coerced into a double before being passed to square root expressions like y equals star PX + one The unary Operators star and Ampersand bind more tightly than arithmetic operators so this expression takes whatever PX points at adds one and assigns it to Y we will return shortly to what y equal star open print PX + one Clos print might mean pointer references can also occur on the left side of assignments if PX points to X Then star PX equals 0 sets X to Zero and star PX plus equals 1 increments it as does open p star PX Clos pen plus plus the parentheses are necessary in this last example without them the in expression would increment PX instead of what it points to because unary operators like star and Plus+ are evaluated right to left finally since pointers are variables they can be manipulated as other variables can if py is another pointer to int then py equals PX copies the contents of PX into py thus making py point to whatever PX points to section 5.2 pointers and function arguments since C passes arguments to functions by call by value there is no direct way for the called function to alter the variable in the calling function what do you do if you really have to change an ordinary argument for example a sorting routine might exchange two outof order elements with a function called swap it’s not enough to write swap open parentheses a comma B closed parentheses semicolon where the swap function is defined as and this is sample source code on page 91 of the textbook and you can see it at ww w. cc4 e.com code this is a wrong swap by the way this this is showing you the code that you’re not supposed to do swap open PR X comma y Clos print int X comma y semicolon open curly brace in temp semicolon temp equals X xal Y semicolon y equals temp semicolon Clos curly brace because of call by value swap can’t affect the arguments A and B in the routine that called it fortunately there is a way to obtain the desired effect the calling Point program passes pointers to the values to be changed the call is swap open parentheses Amper sand a comma Ampersand B closed parentheses semicolon since the operator Ampersand gives the address of a variable Ampersand a is a pointer to a in swap itself the arguments are declared to be pointers and the actual operands are accessed through them so the correct code is on page 92 swap open pin PX comma py Clos pen int star PX comma star py semicolon open curly brace int temp semicolon temp equals star PX semicolon star PX equals star py semicolon star py equals temp semicolon and close curly brace one common use of pointer arguments is in functions that must return more than a single value you might say that swap actually returns two values the new values of its arguments as an example consider a function get int which performs a free format input conversion by breaking a stream of characters into integer values one integer birth call it int has to return the value that it found or an Ile signal when there is no more input these values have to be returned as separate objects for no matter what value is used for eof that could also be a value of the integer one solution which is based on the input function scanf that we will describe in chapter 7 is to have get int return eof as its function value at finds end of file and other any other returned value signals a normal integer the numeric value of the integer it found is returned through an argument which then must be a pointer to an integer this organization separates the end of file status from The Returned numeric value the following Loop fills an array with integers by calls to get in int comma n comma array open pin size Clos pen semicolon for n equals 0 n less than size double Amper sand get int open print Ampersand V Clos print not equal eof semicolon n plus plus close parentheses array subn equals V each call sets V to the next integer found in the input notice it is essential to write Ampersand V instead of v as the argument to get int using plain V is likely to cause an addressing error since gettin believes that it’s been handed a valid pointer get in is an obvious modification to a toi which we wrote earlier the sample code is on page 93 of the textbook and you can see this sample code at http://www.cc.com code pound include stdio.h get int open print PN close print int star PN semicolon open PR open curly brace int C comma sign while open print open print C equals get CH open print close print close print double equals quote space quote or C equals quot sln quote or C equals back SLT quot close paren semicolon this Loop we’ve done before and it skips the white space s equals 1 semicolon if open pen c equal quot plus quote or C equals quote minus quote Clos pen open cly brace sign equals open pen couble equals quote plus quote close pen question mark 1 colon minus one semicolon C equals get CH to advance the character semicolon and then close curly brace that those four lines record the sign now for Star PN equals z c greater than or equal to quote 0 quote and C less than or equal to quote 9 quote colon semicolon C equals get C open pen closed pin close curly brace star PN equal 10 * star PN plus C minus quot 0 quote star PN star equals sign if open PR c not equal to EF Clos print on get CH open print C Clos print semicolon return C throughout get int star PN is used as an ordinary int variable we have also used get CH and unget CH as described in chapter 4 so the one extra character that must be read can be pushed back down to the input section 5.3 pointers and arrays and see there is a strong relationship between pointers and arrays strong enough that pointers and arrays should really be treated simultaneously any operation which can be achieved by array subscripting can also be done with pointers the pointer version will in general be faster but at least to the uninitiated somewhat harder to grasp immediately the Declaration int a sub 10 finds an array a of size 10 that is a block of 10 consecutive objects named a sub z a sub one dot dot dot a sub n the notation a subi means the element of the array I positions from the beginning if PA is a pointer to an integer declared as int star PA then the assignment PA equals Ampersand a sub Zer sets PA to point to the zeroth element of a that is PA contains the address of a Subzero now the assignment x equals star PA will copy the contents of a sub Z into X if PA points to a particular element of array a then by definition PA points to the next Element no if PA points to a particular element of an array a then by definition PA plus one points to the next element and in general PA minus i points to I elements before PA and Pa plus I points to I elements after thus if PA points to a sub Zer star parentheses PA + one Clos parentheses refers to the contents of a sub one PA plus I is the address of a subi and star P print and star openr PA plus I is the contents of a subi these remarks are true regardless of the type of the variables in the array a the definition of adding one to a pointer and by extension all pointer arithmetic is that the increment is scaled by the size of the storage of the object that is pointed to thus in PA plus I I is multiplied by the size of the objects that PA points to before being added to PA the correspondence between indexing and pointer arithmetic is evidently very close in fact a reference to an array is converted by the compiler to a pointer to the beginning of the array the effect is that the array name is a pointer expression this has quite a few useful implications since the name of an array is a synonym for the location of the zeroth element the assignment PA equals Ampersand a subz can also be written as PA equals a rather more surprising at least at First Sight is the fact that a reference to a subi can also be written as star open PR A+ I Clos PR in evaluating a subi c converts it to Star open pren A+ I close pren immediately the two forms are completely equivalent applying the operator Ampersand to both parts of this equivalence it follows that Ampersand a sub I and A+ I are also identical a plus I is the address of the I element Beyond a as on the other side of this coin if PA is a pointer Expressions may use it with a subscript PA a subi is identical to Star open print PA plus I Clos print in short any array and index expression can be Rewritten as a pointer and an offset and vice versa even in the same statement there is one difference between an array name and a pointer that must be kept in mind a pointer is a variable so PA equal a and Pa A++ are sensible operations but an array name is a constant not a variable constructions like a equals PA or A++ or P equals Ampersand a are illegal when an array name is passed to a function what is passed is the location of the beginning of the array within the called function this argument is a variable just like any other variable and so an array name argument is truly a pointer that is a variable containing an address we can use this fact to write a new version of sterlin which computes the length of the string the sample code is on page 95 of the book and you can see it in http://www.cc.com code page 95 in sterin open PR s Clos PR Char star s semicolon open curly brace int and semicolon four open parentheses n equals 0 semicolon star s not equal back0 quot semicolon s++ close per n n++ return open print and Clos print semicolon Clos curly brace incrementing s is perfectly legal since it’s a pointer variable s++ has no effect on the character string in function that called sterland but merely increments the sterland private copy of the address as the formal parameters in a function definition Char s open square bracket closed square bracket semicolon and and Char star s semicolon are exactly equivalent which one should be written is determined largely by how Expressions will be written in the function when an array name is passed to a function the function can its convenience believe that has been handed either an array or a pointer and manipulated accordingly it can even use both kinds of operations if it seems appropriate and clear it is possible to pass part of an array to a function by passing a pointer to the beginning of the subarray for example if a is an array F open PR Ampersand a sub 2 Clos PR and F open print A+ 2 Clos print both pass to the function f the address of the element a sub 2 because Ampersand a sub 2 and a + 2 are both pointer expressions that refer to the third element of a within F the argument declaration can read F open print array Clos print int array Open Bracket close bracket semicolon dot dot dot or F open print array Clos print in Star array semicolon dot dot dot so far as f is concerned the fact that the argument really refers to a part of a larger array is really of no consequence section 5.4 address arithmetic if p is a pointer then p++ increments P to point to the next element of whatever kind of object P points to and P plus equals I increments P to the point I elements Beyond where it currently does these and similar constructions are the simplest and most common form forms of pointer or address arithmetic C is consistent and regular in its approach to address arithmetic its integration of pointers arrays and address arithmetic is one of the major strengths of the language Let Us illustrate some of the properties by writing a rudimentary storage allocator but useful in spite of its Simplicity there are two routines Alec open pren and closed PR returns a pointer P to n consecutive character positions which can be used by the caller of Alec for storing characters free open print P closed print releases the storage thus acquired so it can later be reused these routines are rudimentary because the calls to free must be made in the opposite order to the calls on Alec that is storage managed by Alec and free is a stack or last in first out the standard seed Library provides analogous functions which have no such restrictions and in chapter 8 we’ll show how improved versions as well in the meantime however many applications really only need a trivial alet to dispense little pieces of storage of unpredictable sizes at unpredictable times the simplest implementation is to have Alec hand out pieces of a large character array which we will call Alec buff this array is private to Alec and free since they deal in pointers and not array indices no other routine need know the name of the array which can be declared as external static that is local to the source file containing alakin free and invisible outside it in Practical implementations the array May well not even have a name it might be obtained by asking the operating system for a pointer to some unnamed block of storage the other information needed is how much Alec buff has been used we use a pointer to the next free element called Alec CP when Alec is asked for n characters it checks to see if there is enough room left in Alec buff if so Alec Returns the current value of Alec P I.E the beginning of the free boach and then increments it by n to point to the next free area free P merely sets Alec P to P if p is inside Alec buff this next code example is on page 97 of the textbook you can you can see the code at http://www.cc.com code pound include stdio.h pound toine null Zer it’s a pointer value for in the error report pound toine Alex size 1000 the size of the available space static Char Alec buff open square bracket Alex size closed square bracket semicolon static chair Char star Alec P equals Alec buff next free position initialized to the start of the array Char star Alec open print and Clos print return a pointer to nend characters int and semicolon open curly brace if Alec CP plus n less than or equal to Alec buff plus Alec size Clos pen open curly brace meaning we have space Alex CP plus equals n return Alex CP minus n Clos parentheses semicolon close curly brace else if there’s not enough room return open pin null Clos pin semicolon close curly brace free open PR P Clos print this function will free the storage point2 by P Char star P open curly brace if open PR P greater than equal to Alec buff and P less than Alec buff plus Alex size Alex CP equals P close curly brace some exclamations in general a pointer can be initialized just as any other variable can though normally only meaningful values are null discussed below or an expression involving the address of a previously defined data of the appropriate type the Declaration static Char star Alex CP equals Alec buff defines Alex CP to be a character pointer and initializes it to point to Alec buff which is the next free position when the program starts this could also have been written static Char St star Alex CP equals ENT Alec buff Subzero semicolon since the array name is the address of the zeroth element whichever is more natural the test if open foren Alec p plus n less than or equal to Alec buff plus Alex size checks if there’s enough room to satisfy a request for n characters if there is the new value of Alec P would be at most one beyond the end of Alec buff if the request can be satisfied Alec returns a normal pointer notice the Declaration of the function itself if not Alec must return some kind of signal that there’s no space left C guarantees that no pointer that validly points to data will ever contain a zero so a return value of zero can be used to signal in an abnormal event in this case no space we write null instead of zero however to indicate more clearly that this is a special value for a pointer in general integers cannot be meaningfully assigned to pointers but zero is a special case tests like if open for n Alec P plus n less than or equal to Alec buff plus Alex size and if open print P greater than or equal to Alec buff and P less than Alec buff plus Alex size shows several important facets of pointer arithmetic first pointers may be paired on certain circumstances if p and Q point to members of the same array then relations like less than greater than equal Etc work properly P greater than Q is true for example if P points to an earlier member of the array than Q the relations double equals and not equals exclamation equals also work any pointer can be meaningfully compared for equality or inequality with null but all bets are off if you do arithmetic or comp comparisons with pointers that point to different arrays if you’re lucky you get obvious nonsense on all machines if you’re lucky your code will work on one machine but collapse mysteriously on another second we’ve already observed that a pointer and an integer can be added or subtracted the construction p+ N means the nth object beyond the one p currently points to this is true regardless of the kind of object p is declared to point at the compiler Scales N according to the size of the objects P points to which is determined by the Declaration of P for example on the PDP 11 the factors are one for Char two for INT and short and four for long float and d and float and eight for double pointer subtraction is also valid if p and Q point to members of the same array P minus Q is the number of elements between p and Q This fact can be used to write yet another version of sterland sterl open pin s closed pin Char star s semicolon open curly brace Char star P equals s semicolon while star P not equal back slash single quote back sl0 single quote Clos pen p++ semicolon return open pen P minus s Clos pen semicolon Clos curly brace in its declaration p is a initialized s that is to point to the first character in the Y Loop each character in turn is examined until back sl0 at the end of scene since back sl0 is zero and since while tests only whether the expression is zero it is possible to emit the explicit test and such Loops are often written as while open pen star P close Brin p++ semicolon because P points to characters p p++ advances P up to the next character each time and P minus FS gives the number of characters Advanced over that is the string length pointer arithmetic is consistent if we’d been dealing with floats which OCC occupy more storage than chars and if P were a pointer to a float p++ would advance to the next float thus we could write another version of Alec which maintains say floats instead of chars merely by changing Char to float throughout Alec and free all the pointer manipulations automatically take into the account the size of the object pointed to so nothing else has to be altered other than the operations mentioned here adding or subtracting a pointer in an integer subtracting or comparing two pointers all other pointer arithmetic is illegal it is not permitted to add two pointers or to multiply or divide or shift or mass them or add float or double to them Section 5 .5 character pointers and functions a string constant written as double quote I am a string double quote is an array of characters in the internal representation the compiler terminates the array with a character back sl0 so programs can find the end the length in storage is thus one more than the number of characters between the double quotes perhaps the most common occurrence of a string constant is arguments to functions as in print F open PR double quot quot hello comma world back sln double quot when a character string appears like this in a program access to it is through a character pointer what print F receives is a pointer to the character array character arrays of course need not be function arguments if message is declared as Char star message then the statement message equals double quote now is the time double quot semicolon assigns message to a pointer to the actual characters this is not a string copy only pointers are involved C does not provide any operators for processing an entire string of characters as a unit in the language we will illustrate more aspects of pointers and arrays by studying two useful functions from the standard IO library to be discussed in chapter 7 the first function is Stir copy open print s comma T which copies the string t to the string s s the arguments are written in this order by analogy to assignment where one would say s equals T to assign T to S the array version is first stir copy open print s comma T Clos print Char s open square bracket close square bracket comma T open square bracket close square bracket semicolon open curly brace in I semicolon I equals z semicolon while open PR open pren S Sub I equals T sub I Clos pren not equal quote back sl0 quote close parentheses i++ semicolon close curly brace you’ll note in that while statement that there is a copying of the actual characters as an assignment and then the side effect of the result of that assignment is compared to the new line to the end of string which terminates the while loop for contrast here is a version of stir copy with pointers and this is on page 100 of the textbook and you can see all the code in the textbook at http://www.cc.com codee and again this is example number two on page 100 stir copy open pren S comma T close pren Char star s comma star T semicolon open curly brace while open par open Print Star s equals star T Clos print not equal single quote back sl0 single quote close print open curly brace s++ comma uh semicolon t++ semicolon close curly brace close curly brace to end the function because the arguments are passed by value stir copy can use SNT in any way it pleases here they are conveniently initialized pointers which are marched along arrays a character at a time until the backslash terminates then T has been copied to s in practice stir copy would not be written as we showed above a second possibility might be and this is the third example on page 100 of the textbook stir copy open BR s comma T Clos PR Char star s comma star T semicolon open curly brace while pen pen star S Plus plus equals star t++ Clos print not equal quot back sl0 quote close print semicolon curly brace this moves the increment and S&T into the test part the value of star t++ is the character that t pointed to before T was incremented the post fix Plus+ doesn’t change T until after this character has been fetched in the same way the character is stored in the old position of s before s is incremented the character is also the value that is compared against back sl0 to control the loop the net effect is that the characters are copied from T to S up to and including the terminating back sl0 as the final abbreviation of this solving this problem we can observe that the comparison against back x0 is redundant so the function is often written as and now this is the first sample code on page 101 of the textbook stir copy open print s comma T Clos print Char star s comma star T semicolon open curly brace while open Print Star s++ equals star t++ Clos print semicolon Cur brace although this may seem cryptic at first the notational convenience is considerable and the idiom should be mastered if for no other reason than you will see it frequently in C programs the second routine is Stir comp open PR s comma T which compares the character strings s and t and returns negative zero or positive according to as s is lexographic less than equal to or greater than T the value returned is obtained by subtracting the characters at the first position where s& disagree this is the second example on page 101 of the textbook which you can see at http://www.cc.com code stirm open print s comma T Clos print Char s open square bracket close square square bracket comma T open square bracket close square bracket semicolon open curly brace in I semicolon I equals z semicolon while S Sub I double equals T subi Clos PR open print S Sub I ++ double equals single quote back slash 0 single quote Clos print return zero return open print S Sub I minus t sub I Clos print semicolon close curly brace the pointer version of stir comp is the first example on page 102 of the textbook stir comp open p s comma T Clos pen Char star s comma star T open curly brace four open prin semicolon star s equal star T semicolon s++ comma t++ Clos pint if open PR star s equal equal single quote back sl0 single quote close pren return open pren Z close print return open Print Star s minus star T Clos print semicolon close curly brace since plus plus and minus minus are either prefix or postfix operators the combination of star and Plus+ and minus minus occur although less frequently for example star r++ P increments P before fetching the character that P points to Star minus minus p decrements p first section 5.6 pointers are not integers you may notice in older C programs a rather Cavalier attitude towards copying pointers it has generally been true that on most machines a pointer may be assigned to an integer and back again without changing it no scaling or conversion takes place and no bits are lost regrettably this has led to the taking of liberties with routines that return pointers which are then merely passed to other routines the requisite pointer declarations are often left out for example consider the function stir Save open print s Clos print which copies the string s into a safe place obtained by a call to Alec and returns a pointer to it properly this should be written as this this is the first example on page 103 of the textbook you can see the sample code at http://www.cc for.com code pound include STD live. charar Ser stir Save open print s Clos pin save a string somewhere Char star s semicolon open curly brace Char star P star Alec open PR Clos PR semicolon if open PR open PR p equals Alec open PR sterland open PR s Clos PR plus one Clos PR Clos PR not equal null Clos PR stir copy open PR P comma s close PR semicolon return open PR P Clos print semicolon curly brace in practice there would be a strong tendency mistaken tendency that is to emit declarations this is the example two on page 103 pound include stdlib.h stir Save open print s Clos print open curly brace Char star P semicolon if parentheses parentheses p equals Alec open p sterlin open p s Clos PR plus one close print close print not equal null Clos PR stir copy open print P comma s Clos print semicolon return open print P close print semicolon this will work on many machines since the default type for functions and arguments is int and int and pointer can usually be safely assigned back and forth nonetheless this kind of code is inherently risky for it depends on the details of the implementation and machine architecture which may not hold for the particular compiler you use it is wiser to be complete in all declarations the program lint will warn of such constructions in case they creep in inadvertently section 5.7 multi-dimensional arrays in general rectangular multi-dimensional arrays are used in computational programs like a weather simulation and were a way back in the day to write C code that could accept Fortran multi-dimensional arrays as parameters so that computational or statistical libraries could be written in C arrays of pointers are a mapping to the typical operating system and string manipulation use cases that are more the core of C applications we also call these ragged arrays because each row can be a different length this also works well as data is dynamically allocated in C as compared to the more static allocation approach that’s typical in forr multi-dimensional arrays uh now to the textbook C provides for rectangular multi-dimensional arrays although in practice they tend to be much less used than the arrays of pointers in this section we will show some of their properties consider the problem of date conversion from the day of the month to the day of the year and vice versa for example March 1st is the 60th day of a non-leap year and 61st day of a leap year let us Define two functions to do the conversions day of year converts month and day to the day of the year and month day converts the day of the year into the month and the day since this latter function returns to two values the month and day arguments will be pointers month day open parentheses 1977 comma 60 Ampersand M comma Ampersand D Clos parentheses sets m to3 and d to one which is March 1st these functions both need the same information a table of the number of days in each month 30 days half September Etc since the number of days per month differs for leap years and non-leap years it’s easier to separate them into two rows of a two-dimensional array rather than try to keep track of what happens in February during computation the array and the functions performing the Transformations are as follows this is example number one on page 104 of the textbook and you can see the code at http://www.cc.com code static int d a tab open PR to close PR open PR 13 close PR equals open curly brace open curly brace 0 comma 31 and then a number of numbers close curly brace comma open curly brace 0 comma 31 29 and then a bunch of numbers close curly brace close curly brace semicolon day of the year open print year comma month comma day int year comma month comma day semicolon open curly brace int I comma leap semicolon leap equals z year modulo 4 equals 0 and year modulo 100 not equals z or year modulo 400 equals equals z semicolon for open PR I equal 1 I less than month I ++ Clos print day plus equals Day tab open square bracket leap close square bracket open square bracket I close square bracket semicolon return open pen day close pen semicolon close curly brace then the month day function month day open pen year comma Year Day comma P Monon comma pday close pen int year comma Year Day star P month comma star p day semicolon open curly brace in I comma leap semicolon leap equals year percent 4 Double equals z and year percent 100 not equals z or year percent 1400 double equals z for I equal 1 Year Day greater than date tab open square bracket leap close square bracket open square bracket I close square bracket semicolon I ++ close parentheses Year Day minus equal Day tab open Square parenthe open square bracket leap closed square bracket open square bracket I closed square bracket semicolon star P month equals I star pday equals Year Day semicolon Clos parent the array Day tab has to be external to both day of year and month day so they can both use it dat tab is the first two-dimensional array we’ve dealt with in C by definition a two-dimensional array is really a one-dimensional array Each of which elements is also an array hence subscripts are written as Day tab open square bracket I closed square bracket open square bracket J closed square bracket rather than Day tab open square bracket I comma J close square bracket as in most languages other than this a two-dimensional array can be treated much the same in the same way as other languages elements are stored by rows that is the rightmost subscript varies fastest as elements are accessed in storage order an array is initialized by ini list of initializers and braces each row of a two-dimensional array is initialized by a corresponding sublist we started the array datab with a column of zero so that month numbers can run from the natural 1 to 12 instead of 0 to 11 since space is is not a premium here this is easier than adjusting indices if a two-dimensional array is to be passed to a function the argument definition declaration in the function must include the column Dimension the row Dimension is irrelevant since what is passed in as before it is a pointer this is in this particular case it’s a pointer to objects which are arrays of 13 ins thus the array Day tab if it’s to be passed to a function f the Declaration would be F open PR Day tab Clos pren int Day tab open square bracket 2 close square bracket open square bracket 13 close square bracket semicolon open curly brace dot dot dot Clos curly brace the argument declaration in F could also be int dat tab open square bracket close square bracket open square bracket 13 close square bracket semicolon since the number of rows is actually irrelevant it could also be SE as int open prin star Day tab Clos prin Open Bracket 13 close bracket semicolon which says that the argument is a pointer to an array of 13 integers the parentheses are necessary since the brackets have higher precedence than asterisk without parenthesis the Declaration int star datab sub3 Clos square bracket semicolon is an array of 13 pointers to integers as we shall see in the next section section 5.8 pointer arrays pointers to pointers since pointers are variables themselves you might expect that there would be uses for arrays of pointers this is indeed the case let us illustrate by writing a program that will sort a set of text lines into alphabetic order than a stripped down version of the Unix utility sort in chapter 3 we presented a shell sort function that would sort an array of integers this same algorithm will work except that now we have to deal with lines of text which are of different lengths and which unlike integers can’t be compared or moved in a single operation we will need a data representation data structure that will cope efficiently and conveniently with variable length text lines this is where an a array of pointers enters if the lines to be sorted are stored end to end in one long character Ray maintained by Alec perhaps then each line can be accessed by a pointer to its first character the pointers themselves can be stored in an array two lines can be compared by passing their pointers to stirum when two outof order lines have to be swapped or exchanged the pointers in the pointer array are exchanged not the text lines themselves this eliminates the twin problems of complex storage management and high overhead that would go with moving the text of the actual lines the Sorting process involves three steps read all the lines of input sort them and then print them in order as usual it’s best to divide the program into functions that match this natural division with the main routine controlling things let us defer the Sorting step for a moment and concentrate on the data structures and the input and output the input routine has to collect and save the characters in each line and build an array of pointers to the lines it will also have have to count the number of input lines since that information is also needed for sorting and printing since the input function can only count cope with a finite number of input lines it can return some illegal line count like negative one if too much input is presented the output routine only has to print the lines in order in the order in which they appear in the array of pointers this next code segment uh is actually a combination of three successive sample code segments uh starting on page one 6 of the textbook and it’s pretty complex so you might be uh best it might be best for you to see them on http://www.cc.com code line 106 example one okay pound include stda o.h pound include string.h pound Define lines 100 the maximum lines of support to be sorted main open PR close PR Char line PT TR open bra open square bracket lines closed square bracket semicolon int n lines which is the number of lines red if open print open print end lines equals read lines open print line PTR comma lines close PR close PR greater than or equal to zero Clos PR open curly brace sort open PR line PTR comma end lines Clos pen right lines open pen line PTR comma end lines Clos pen Su colon close curly brace else print F open PR double quote input too big to sort back sln close double quote close pen semicolon and close curly brace to end the main program this next routine is actually from page 107 of the textbook but we combined them into one pound to find maxan 1000 read lines open pren Line PTR comma Max lines Clos per in Char Star Line PTR open square bracket Clos square square bracket sum Co this is an array of pointers to characters an array of pointers pointers being you know long like four bytes characters being generally one bite int MAX Line semicolon open curly brace int Len comma end lines semicolon Char star P star Alec open PR Clos PR comma line open square bracket max length closed square bracket semicolon so just to recall Alec is a function we we did later I mean did earlier that allows us to allocate uh uh some text of uh a varying length and then lines so max Len is a place that we’re going to uh read each line into beginning the code of read lines end lines equal zero while open pen open pen Len equals get Line open print line comma MAX Line Clos print Clos print greater than or equal to zero Clos print if open print end lines greater than or equal to Max lines Clos print return open print minus one Clos print semicolon else if open print open print P equals Alec open print Len close print close print double equals null Clos print return minus one so those two tests basically make sure that we don’t get too many lines and that we have enough space in our Al Dynamic data area that Alec is managing for us so continuing with the if we’re at the else opens curly brace line sub Len minus one equals quot back0 quote semicolon stir copy P comma line Clos print semicolon line PTR sub n lines Plus+ equals P semicolon Clos curly brace that finishes the else segment return n lines semicolon and close curly brace to finish the read lines function now at a high level we’re reading a line into a allocated automatic variable line and then we are calling Alec to get another cop place a copy that line then we’re making a copy of that line and then we are remembering the pointer to the beginning of that line in line PTR and that’s the essence of it okay right lines open pren Line PTR comma end lines Clos pren Char Star Line PTR open square bracket closed square bracket semicolon again an array of point characters int n lines semicolon which is the number of character pointers in line PTR open curly brace in I semicolon four pen I equal 0 semicolon I less than n lines semicolon i+ plus Clos print print F open print double quote percent s back sln double quote comma line PTR subi Clos pin semicolon Clos curly brace a simple Loop that goes through the the array of character pointers and then prints each one out using print F the main new thing is the Declaration for line PTR Char Star Line PTR sub open square bracket lines closed square bracket semicolon says that line PTR is an array of lines elements each element of which is a pointer to a Char that is line PTR sub I is a character pointer and star line PR PTR subi accesses a character since line PTR itself is an array that was passed to right lines it can be treated as a pointer exactly in the same manner as our earlier examples and the function can be written instead as right lines open pen line PTR comma end lines closed pen Char Star Line PTR open square bracket closed square bracket semicolon int and line semicolon open curly bra Cas while open PR minus minus end lines greater than or equal to zero close PR print F open prin double quot percent s back sln double quot comma Star Line PTR ++ Clos PR semicolon that code by the way was on page 108 example one of the textbook Star Line PTR points initially to the first line but each in increment of line PTR advances it to the next line while in lines is counted down with input and output under control we can proceed to sorting the shell sort from chapter 3 needs minor changes the Declarations have to be modified and the comparison operation must be moved into a function but the basic algorithm is Remains the Same which gives us some confidence that it will still work and this is the second example on page 108 of the textbook and you can see this example at http://www.cc.com code sort sort open PR V comma n Clos PR Char starv open square bracket Clos square bracket semicolon in and semicolon open curly brace so we’re getting an array of pointers to the beginnings of lines and how many of those pointers matter and the rest of it is shell sort with the stir comp being used um to do the string comparison so it’s a three nested for loop with a simple if test in it so here we go open curly brace for the sort function int Gap comma I comma J semicolon Char star temp semicolon and that’s a pointer to a character for open print Gap equals n / 2 slash I mean semicolon Gap greater than zero semicolon Gap slash equals 2 close parentheses four I equal Gap semicolon I less than n semicolon I ++ close parentheses four open print Jal IUS Gap semicolon J greater than equal to Zer semicolon J minus equals Gap Clos pren open curly brace so that’s sort of the shell part of the shell sort and now we have to do our comparison if open pin stir comp open pin V subj comma V subj plus Gap Clos pin less than or equal to zero Clos pin break and note that that’s only breaking the third deep for Loop which it just goes and then runs the next iteration of the second for Loop now we do the swapping temp equals V subj semicolon V subj equal a V subj plus Gap semicolon V subj plus Gap equal temp now that’s just swapping pointer values so the the strings that are pointed to by these two pointers V subj and V subj plus Gap if they’re out of order we’re going to swap the pointers in the array and move them so that if you then go through like we did in right lines earlier then um they come out in order but we literally read the data once we copy it once into the its final destination using Alec Alec and stir copy but Al once we sort it which is the most complex part of the calculation we’re only moving the pointers back and forth so this sort is very efficient and requires no extra uh memory than uh what we had before the sort so that’s really nice and it sorts in place so back to the text since any individual element of V which is an is to line pointer PTR is a character pointer temp could also should also be one so one can be copied to the other we wrote the program about as straightforwardly as possible so as to get it working quickly it might be faster for instance to copy the incoming lines directly into an array made by read lines rather than copying them into line and then into a hidden Place maintained by Alec but it’s wiser to make the first draft of something easy to understand and worry about efficiency later the way to make this program significantly faster is probably not by avoiding an unnecessary copy of the input Lines Just instead replacing the shell St sort by something quicker and better like quick sort is much more likely to make a real difference that matters in chapter one we pointed out that because while and for Loops test the termination condition before executing the loop body even once they help to ensure that the programs will work at their boundaries in particular with no input it’s Illuminating to walk through the functions of the Sorting program checking what happens if there is no input text at all section 5.9 initialization of pointer arrays consider the problem of writing a function month name open pren and Clos pren which returns a pointer to a character string containing the name of the MTH month this is an ideal application for an internal static array month name contains a private array of characters strings and returns a pointer to the proper one when called the topic of this section is how that array of names is initialized the syntax is quite similar to the previous initializations this is sample code from page 109 of the textbook which you can see at http://www.cc.com code charar month name open print Clos print so the return value for this function is a character pointer int n semicolon open curly brace static Char star name open square bracket close square bracket equals open curly brace quote illegal month quote comma double quote January double quote comma double quote February double quot comma and so forth down to double quote December double quote Clos curly brace semicolon the body of the function function is one line return open pen open pen n less than one or n greater than 12 Clos pen question mark name Sub Zero colon name subn close pen semicolon Clos curly brace the Declaration of name which is an array of character pointers is the same as line PTR in the Sorting example the initializer is simply a list of character strings each assigned to the Corr responding position in the array more precisely the characters of the E string are placed somewhere else and a pointer to them is stored in name subi since the name size of the array name is not specify the compiler itself counts the initializers and fills in the correct number section 5.10 pointers versus multi-dimensional arrays newcomers to see are sometimes confused about the difference between a two-dimensional array and an array of pointers such as name in the example above given the Declarations int a open square bracket 10 Close square bracket open square bracket 10 Close square bracket semicolon and int star B open square bracket 10 Close square bracket semicolon the usage of A and B may be similar in that a sub 55 and B sub 55 are both legal references to a single integer but a is a true array all 100 storage cells have been allocated and the conventional rectangular subrip calculation is done to find any given element for B however the Declaration only allocates 10 pointers each must be set to point to an array of integers assuming that each does point to a 10 element array then there will be 100 storage cells set aside plus the 10 cells for the pointers thus the array of pointer uses slightly more space and may require an explicit initialization step but it has two advantages accessing an element is done by IND direction through a pointer rather than by a multiplication and an addition and the rows of the array may be of different lengths that is each element of B need not point to a 10 element Vector some may point to two elements Others May point to 20 and some to none at all although we have phrased this discussion in terms of integers by far the most frequent use of arrays of pointers is like that shown in month name to store character strings of diverse lengths section 5.11 command line arguments in environments that support C there is a way to pass commandline arguments or parameters to a program when it begins executing when main is called to begin execution it is called with two arguments the first conventionally called argc is the number of command line arguments the program was in invoked with the second argv is a pointer to an array of character strings that contain the arguments one per string manipulating these character strings is a common use of multiple levels of pointers I would note that back in 1978 the two largest bodies of code were likely the AT&T Unix kernel itself and Unix utilities like grep LS or the login shell so writing an operating system was fresh on the mind of the authors while writing this book these topics find their way into the text of this book in a sense a likely second order goal of the book was to train programs that might learn C and then might help build and maintain Unix the 1978 edition of this textbook fits nicely into a series of AT&T Bell Labs technical reports like the portability of C programs in the Unix system written by Stephen C Johnson and Dennis M Richie published in the bell’s system technical Journal volume 57 number six part two July through August 1978 Pages 2021 through 2048 you can see this one online if you search for it back to the textbook the simplest illustration of the ne necessary declarations and use is in the program echo which simply Echoes its command line arguments in a single line separated by blanks that is if the command Echo hello comma world is given the output is hello comma World by convention arv subz is the name by which the program was invok so AR C is at least one in the above example AR C is three and AR arv subz arv sub1 and r v sub 2 are Echo hello comma and World respectively the first real argument is argv sub one and the last is argv sub sub Arc minus one and if Arc is one there are no command line arguments after the program name this is shown in the source code to Echo and this source code is on page 111 of the textbook and you can see this source code at http://www.cc.com codee pound include stdio.h pound include string.h main open pen Arc comma AR Fe Clos pen int Arc semicolon Char star arv open square bracket close square bracket semicolon open curly brace in I semicolon for open p i equal 1 semicolon I less than RX c semicolon I ++ close pen print F open pen double quote percent s percent C double quote comma arv subi comma open pen I less than r z minus one closed P question mark single quote space single quote colon single quot back slash n single quote close parentheses semicolon close curly brace to end it since argv is a pointer to an array of pointers there are several ways to write this program that involve manipulating the pointer rather than indexing an array let us show two variations and this is the example number two on page 111 of the textbook pound include stdio.h pound include string.h main open pen Arc comma arv Clos pen int argc semicolon Char star arv open square bracket close square bracket semicolon open curly brace while open pen minus minus r c greater than zero Clos print print F open PR double quote percent s percent C double quote comma star Plus+ arv comma open print ARG C greater than one Clos peren question mark single quote space single quote colon single quote back slash NN single quote close PR semicolon Clos curly brace since arcv is a pointer to the beginning of an array of argument strings incrementing it by one plus plus RV makes it point to the at the original array argv sub1 instead of arv Sub 0 each successive increment moves it along to the next argument star argv is then the pointer to that argument at the same time argc is decremented and when it becomes zero there are no arguments left to print another version the third version on page 111 of the textbook pound include stdi Doh pound include string.h m open p Arc comma arv Clos pin int Arc semicolon Char star arv open square bracket closed square bracket semicolon open curly brace while open pin minus minus r c greater than zero close pen print F open pen open pen RC greater than one close pen question mark double quot percent s blank double quote colon double quot percent s back sln double quote comma star Plus+ argv Clos PR semicolon Clos curly brace this version so shows that the format argument of print F can be an expression just like any of the others this usage is not very frequent but worth remembering as a second example let’s make some example uh enhancements to the pattern finding program from chapter 4 if you recall we wired the search pattern deep into the programing and this is an obviously unsatisfactory arrangement for flexible code following the lead of the Unix utility GP which stands for the generalized regular expression parser let us change the program so that the pattern to be matched is specified by the first argument on the command line This is example one on page 112 of the book which you can see at http://www.cc.com code pounding clude stdio.h pound include string.h pound toine MAX Line 1000 Main open pren Arc comma arv Clos P int Arc semicolon charar arv open square bracket close square bracket semicolon open curly brace Char Line open open square bracket MAX Line closed square bracket semicolon if open PR Argy not equal to closed PR print F double quote usage colon find pattern back sln double quote Clos pin semicolon else while open pen get Line open pen line comma MAX Line Clos pen greater than zero Clos pen if index open pen line comma RV sub one Clos pen greater than or equal to zero Clos pen print F open pen double quot percent s double quot comma line Clos PR semicolon close curly brace the basic model can now be elaborated to illustrate further pointer constructions suppose we want to allow two optional arguments one says print all the lines except those that match the pattern the second says preced each print each printed line with its line number a common convention for C programs is that an argument beginning with A minus sign introduces an optional flag or parameter if we choose minus X for except to Signal the inversion and minus n number to request line numbering then the command find Space minus X space minus n the with the input now is the time for all good men to come to the aid of their party should produce two comma for all good men optional arguments should be permitted in any order and the rest of the program should be insensitive to the number of arguments which were actually present in particular the call to index should not refer to RV sub 2 where a single flag argument and to argv sub one when there was no single flag furthermore it’s convenient for users if option arguments can be concatenated and as in find space- NX space the here is the program and this program is on page 113 of the textbook and it is complex enough that I suggest that you take a look at it at http://www.cc.com SLC code it’s it’s about 35 lines long the commentary on the program hopefully now you’re watching looking at it argv is incremented before each optional argument and argc is decremented if there are no errors at the end of the loop argc should be one and star argv should point to the point to the pattern note that star ++ arv is a pointer to an argument string open pin star Plus+ arv Clos print open square bracket 0o square square bracket is its first character a parentheses are necessary for without them the expression would be star Plus+ open paren arv subz close print which is quite different and wrong an alternate valid form would be star star Plus+ arv section 5.12 pointers to functions in C a function itself is not a variable but it is possible to define a pointer to a function which can be manipulated past to functions placed in arrays and so on we will illustrate this by modifying the Sorting procedure written earlier in this chapter so that if the optional argument minus n is given it will sort the input lines numerically instead of lexographic graphically a sort often consists of three parts a comparison which determines the ordering of any pair of objects an exchange which reverses their order and a sorting algorithm which which makes comparisons and exchanges until the objects are in order the Sorting algorithm is independent of the comparison and exchange operations so by passing different comparison and exchange functions to it we can arrange to sort by different criteria this approach is taken in our new sour the lexographic comparison of the two lines is done by stir comp and swapping by swap as before we’ll also need a routine num comp which Compares two lines on the basis of numeric value and Returns the same kind of condition indication as stir comp does these three functions are declared in Main and pointers to them are passed to sort sort in turn calls the functions via pointers we have skimped on error processing processing for arguments so as to concentrate on the main issues this sample code is from page 115 of the textbook which you can view at http://www.cc for.com slode pound include stdio.h pound include string.h pound Define lines 100 Main open paren Arc comma arv Clos parent int argc semicolon Char star Ary open square bracket close square bracket sumon open curly brace jar Star Line PTR open Open Bracket lines close square bracket semicolon this is the pointers to the text lines so we’re going to be reading in the lines saving them and keeping an array of the pointer and then we’re going to sort that way int end lines of semicolon int stir comp open print Clos print comma num comp open print Clos print which are comparison functions int swap open print close print semicolon int numeric equals z and this is going to be one if it’s a numeric sort first we par the arguments if open print AR C greater than one % % arv sub 1 Sub 0 equal equal quote minus quote and RV opens bracket one close bracket Open Bracket 1 close bracket double equals quote and quote close perin numeric equals 1 if open pen open pren end lines equals read lines open pen line PTR comma lines Clos print Clos print greater than or equal to zero Clos print open curly brace if openr numeric Clos PR sort open pren Line PTR end lines num comp comma swap Clos PR semicolon else sort open print line PTR comma n lines comma stir comp comma swap Clos pen right Lines line PR PTR comma end lines Clos pen close curly brace else print F open PR double quote input too big to sort back slash N double quote Clos pin semicolon stir comp num comp and swap are addresses of functions since they’re known to be functions the Ampersand operator is not necessary in the same way that it is not needed before an array name the compiler arranges for the address of the function to be passed the second step is to modify our sort function and this is the first example on page 116 of the textbook sort open pen V comma n comma comp comma ex C Exchange close pen Char star V open square bracket closed square square bracket semicolon that’s our pointer array of pointers int and semicolon int open pren star comp Clos PR open pren close PR comma open pren Star Exchange Clos pen open pen Clos pen semicolon that declared the type and the fact that these are Pointers to functions it’s a little more complex here in the called code open curly brace int Gap comma I comma J semicolon and now we’re going to do the three nested for Loops for the uh quick sort no shell sort um and then the only really change is in the code checking to see if the uh two items pair of items are out of order and then what we do so for open print Gap equals n over 2 semicolon Gap greater than zero semicolon gra Gap slash equals 2 close PR four open pren I equals Gap semicolon I less than n semicolon I ++ Clos pren four open PR Jal IUS Gap semicolon J greater than or equal to Z semicolon J minus equals Gap Clos PR open curly brace and now here starts the different code if open print open Print Star comp Clos print open print V subj comma V subj plus Gap Clos print less than or equal to zero Clos print break open Print Star ex exchange Clos print open print Amper V subj comma Amper V subj plus Gap Clos print semicolon close curly brace for the for Loop and then close curly braas for the sort function and so really all we’re doing is we’re checking the the order of the two items B subj and B subj plus Gap and if they’re out of order IE less than or equal Zer I mean greater than or equal to U greater than zero then we just exchange them with the provided exchange function and so the key thing here is it looks exactly like the previous time we wrote this code except we’re calling the pointer to the comparison function and the pointer to The Exchange function which is makes this flexible um so it can handle different kinds of data back to the textbook The Declaration should be studied with some care int open print start comp close print open print close print says that comp is a pointer to a function that returns an INT the first set of parentheses are necessary without them int star comp open print Clos print would say that comp is a function returning a pointer to an INT which is a quite different thing the use of comp in the line if open PR open print start comp Clos print open print V subj comma V subj plus Gap close print less than or equal to zero Clos PR is consistent with a declaration comp is a pointer to the function and star comp is the function and open Print Star comp Clos print open print V subj comma V subj plus Gap close print is the call to it the parentheses are needed so the components are correctly Associated we’ve only we’ve already shown stir comp which Compares two strings here is num comp which Compares two strings on a leading numeric value this is sample code from page 117 of the textbook which you can see at http://www.cc.com code numc open print S1 com S2 Clos print Char star S1 comma star S2 semicolon open curly brace double A to F open print Clos print comma V1 comma V2 V1 equal a to F open print S1 Clos print semicolon V2 equal a to F open print S2 Clos print semicolon if open print V1 less than V2 Clos print return open print minus one else if open PR V1 greater than V2 closed P return open PR one closed P semicolon else return open pin zero Clos pin semicolon Clos curly brace the final step is to add the function swap which exchanges the two pointers this is adapted directly from what we presented earlier in the chapter swap open print PX comma py Clos print Char star p PX open square bracket close square bracket comma star py open square bracket close square bracket semicolon open curly brace Char star temp semicolon temp equals star PX semicolon star PX equal star py semicolon star py equals temp semicolon close curly brace there are a variety of other options that can be added to the Sorting program some make challenging exercises [Music] this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand Its Right Place in a historical context amidst the major changes of the 19 7s and 1980s as computer science evolved from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the ideal book to learn C programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the sea language was evolving as it laid the groundwork for a future with portable [Music] applications so hello welcome to chapter 6 in this chapter we talk about structures but so much more there is a mid chapter surpris in this book and I’m sure that it’s so surprising that it’s caused a few too many people to drop out a a computer science first computer science course and that’s because in section 6.1 through 6.4 we’re learning the C language and we’re learning just what a structure is it’s a simple beautiful elegant concept it’s a sort of a wrapper for a whole bunch of types it groups them together so that you can create a new type and it really at this point is the last foundational component of the cor C languages cor C language and then in section 6.5 they the authors pivot to talking about data structures and that is the applications of C structures and it’s the foundational notion in computer science it’s the kind of thing where how do you build a python dictionary and C um and and so this this is a a pattern we call the knee of the curve where things are going along just fine up to 6.4 like oh here’s a for Loop and here’s a string and here’s an array and here’s even a pointer that that’s not that hard and structures are not that hard but then when we start talking about applications of structures what we call data structures and structures was named because data structures was a concept but how we use structures is a quite a Next Level thing we’re kind of leveling up so I want you starting from here chapter six is the last real chapter that I’m going to cover but it is expanding because chapter 6 is the beginning of a whole additional course a course on data structures so I want you if you’re rushing I want you to slow down I want you to take your time and understand because if you understand this you can literally you have a doorway into a lot of computer science we’ll talk about recursion even by the end and so just don’t rush work on Mastery these are complex Concepts they are not natural to understand and so before we start I want to do something different I want to read you a poem one of my favorite poems from Robert Frost uh I was lucky enough fortunate enough to be a good friend of Bob Frost who was a grandson of Robert Frost Bob Frost had a connection to the University of Michigan Robert Frost has a Michigan and University of Michigan uh connection and um I loved this poem that I’m about to read you uh long before I met Bob Frost the grandson of Robert Frost so the poem that I talk a lot about and really it’s one line miles to go before I sleep this is the poem called stopping by the Woods on a Snowy Evening and to me it it speaks of the notion that Journeys are not short nor easy and it’s okay accept that so here we go Dr Chuck in poetry whose woods these are I think I know his house is in the village though he will not see me stopping here to watch his Woods fill up with snow my little horse must think it queer to stop without a farmhouse near between the woods and frozen lake the darkest evening of the year he gives his harness bells a shake to ask if there is is some mistake the only other sounds The Sweep of easy wind and dowy Flake the woods are lovely dark and deep but I have promises to keep and miles to go before I sleep and miles to go before I sleep so the essence of this is that you have come a long way to get to 6.4 in this book and it may feel like you’ve gone long enough and you should just pat yourself on the back but after 6.4 there are miles to go before I sleep but the good news is when you’re done you can relax so what I want you to do is take your time things get much more complex really fast going forward and I don’t want to lose [Music] you structures structures is the mo one of the most beautiful parts of SE like pointers it’s a userdefined type that contains sort of one or more types within it we call things like X and Y in this case uh members of the structure X is a member of the struct point and Y is a member of the struct point the dot operator allows us to take a variable that is a structure variable that has all these members within it and then access the members of the structure so an example kr601 doc we have struct Point open curly brace double X semicolon Double Y semicolon closed curly brace semicolon and this defines a new type it doesn’t allocate any data and then we say Point P1 comma P2 semicolon and that actually allocates two points which is four doubles named P1 and and two of each point is P1 and P2 then I say p1.x equal 3.0 and I say p1y = 4.0 and then I say P2 = P1 which copies all the fields into the corresponding locations in P2 and then I print them out and I get three and four and so that’s BAS basic structures simple clean elegant understand every line of this memorize it when you do a in a sense call by value with a structure the entire structure is placed on the stack and so you don’t want to make structures too gigantically big you know if they’re like 10 to 40 bytes of characters they’re not all that bad but when we make struct Point pm and set X and Y to three and four and then we call Funk with funk open print PM Clos print PM is a structure that is in the scope of the main program and then we’re calling Funk and passing it in and then we’re accepting it as a structure inside of funk and the key thing there is at this point it’s a sort of copy call by value where the entire structure is allocated on the stack and then passed into Funk so if we change it inside Funk PF dox = 9.0 and pfy = 8.0 it changes locally and can print it out and then when it Returns the PM that’s in the main program is unchanged and that’s because the entire structure PM is duplicated into the stack frame for function Funk operating inside function Funk we’re only messing with the copy that’s in our stack frame and then when we sort of undo that it restores PM back to the way it was so those are just plain structures but pointers to structures are where we get a lot more powerful so here we have another same struct with a double X and A Double Y and now we say struct Point PT which is a regular old variable and Then star PP which is a pointer to a structure an address of a structure and you can take the address of a structure just like you can take the address of an integer a structure is a very fundamental type so PP equals Ampersand PT copies the address of the actual structure PT into the variable PP PT dox equal 3.0 0 or open Print Star PP Clos print doy equals 4.0 so if we have a pointer to a structure we have to use the asteris to sort of look up the actual structure and then we can do structure things with it like set the doy value there’s a shortcut take an address dreference it with the asterisk and then use the dot they’re combined into kind of what we call the arrow operator which is pp-h greater than Y which is the same as open paren star PP Clos par n.x and so this we call it the arrow operator and so it’s kind of a shorthand and it’s used all the time and you’ll see when we look later at things like PHP they adopted this Arrow operator most other object oriented languages tend to use the dot operator but others use the arrow operator so if we’re going to pass a structure by reference you use the Amper sand in the call and the asterisk inside the function so we create stru Point PM set X and Y within that to three and four respectively then we print it out and then we call Funk but now we call it with Ampersand PM which says pass in the address of PM and then in the function we take in PP and we declare its type as struct point star PP which means we are getting as a parameter an address not the value and then we use the arrow op operator PP Arrow X = 9 PP Arrow yal 8 we print that in the function but because PP just points to PM it’s also changed in the copy that’s in the main so PM is being changed at the moment that PP is being changed and so when it comes back you see that the value is 9 and 8 in outside of the function so this is simply passing by reference it almost be better call it pass by address so if you take a look at the stack frame what you see is when we’re calling Funk open pren Ampersand PM Clos PR we are making a copy of the address and putting that into the stack frame and then passing that stack frame into Funk and so now Funk has an address of something it happens to not be in its domain meaning that PM is still in main but we can work with the arrow operator and actually make changes in the underlying object and so the key there is that you could change PP but PP Arrow X you’re actually changing the single copy that is in pm at that point storage allocation now pretty soon we’re going to be dynamically allocating things we’ve always said that oh you create a Char array of char with Open Bracket 10 there’s 10 things in that what if we want more and we’ve said you can’t reallocate this stuff but now we have this thing we’re going to start allocating so it turns out when you’re allocating things you have to know how big they are okay and so there’s this size of operator so size of so if we take struct Point PT and star PP which means we have a a structure with two doubles in it and then a pointer to a structure with two doubles of it and we simply say what is the size of the structure and it’s 16 because each double is eight and then what is the size of a pointer to a structure and that is eight because eight is how big addresses are the fact that doubles and addresses happen to both be the same thing is not relevant here addresses are on most C systems eight characters you can also because it’s an operator not just give it a variable but also give it a type so we can say size of open per N struct Point close per n and that also will be 16 because the size of a struct if we were going to allocate it is 16 characters so size of returns the size of something in characters and so we have this function called m and Malik you have to include stdlib.h to do it and so now what we’re going to do is create a the structure Point again and we’re going to create a pointer we’re going to not actually allocate it so that struct point star PP allocates an8 character address not the actual double two doubles now what we do is we say PP equals first and we’re casting this we’re casting The Returned address from Malik pen struct point star pen Clos pren that is casting it to a pointer to a struct a pointer to a point and then we say Malo open PR size of struct Point Clos print Clos print and so that says Malik 16 because a struct point is 16 characters so Malik goes and finds some free memory for us in its pool of free memory and gives us back an address which we then convert to a pointer to a point and then we store that in PP and at that point we have data we have a a working structure and we can set the x and the Y value just as the normal way whether we use the arrow operator or the star and Dot operators we can access that information the next thing we’re going to talk about is combining all these things dynamic memory and structures to create lists and this is a simple Python program lines equals list Hand equals open open pren romeo. txt then Loop through and then append each line after stripping the new lines and then printing them out so lines is a list object now underneath it there is a data structure which by the end of this course you’re going to get to know really well but this will print out the four lines from romeo. txt and this is kr67 py now we’re going to build this list structure and then we can store some data in it the entries of the list are going to be stored in dynamically allocated memory and each list contains some data and then links to other members and so we’re going to create a thing called struct L node open PR Char star text which is a pointer to a list an array of characters of of unknown length struct L node star next semicolon colos curly brace semicon and so if you construct a real live uh link list you need also to have two variables struct L node star head and struct L node star tail and if we end up with a link list of three things head points to the first item in the list and then within that there is the text the text points to some string in this case it’s the letter c and then the next is an address of the second thing in the list in that second thing text points to is and next points to the third thing in the list and then next in the third thing in the list points to a value called null which is our indication that it’s an address to Nowhere null and zero are pretty much the same thing all addresses are nonzero so we look for an address of zero and that tells us that we’ve got to the end and then in order to append to this list we have another value which is a pointer called tail which points to the last element in the list when we start the list head and tail both point to null and so ultimately what we’ve done is we’ve created a dynamically allcable structure where we can put put sort of any number of lines in it and so it’s kind of like a python list so the first line of this the while statement reads a value into line a string value into line the next line from the file right and so we have a pointer to a character that we pre-allocated Above This and That points to the variable fun uh three characters plus an end of string and then the next thing we’re going to do is allocate a new string that is the same length plus one so we’re going to allocate four characters using Malik sterland line plus one which is going to give us four then we’re going to get that address back and we’re going to cast that to a Char star and then we are going to assign that to save so that’s the the place we’re going to save this new item the next thing we’re going to do is allocate a brand new L node a brand new node in our list and we’re going to maloc size of struct L node and then we’re going to cast it to a struct l node star and then we’re going to sign that into a struct l node star variable named new we we saved our string and we’ve got a pointer to that save string and a pointer to a empty at this point uh L node then what we do is we connect with um if tail is not equal to null tail next equals new so we take the not the about to be second to last item and we connect it to the last item and then what we do is we take the text pointer inside of our newly allocated list node and point it at the saved copy of our string in dynamic memory and then we point the next to be null and then we simply Advance tail so that next time we do this tail is pointing to the new end of the string now we’ve got one more thing that we’ve got to do and that is if head is null we have to set head to new this is only that’s only going to happen on the very first one and so at this point our list has three entries it went from two entries to three entries and so we can go back up and read the next line and this sequence of statements will figure it out so I would just say take your time on this one thing that we learn when we’re working on linked data structures inside of C is you got to draw a picture I I literally can’t do this for from memory I just draw the picture and then it’s really easy to do so sometimes you want to walk through a link list so we tend to call this we make a variable called Cur current which is a struct l node star a pointer to an L node and so this is the same as looping through a python list We Set current to head because that’s where we’re going to start going through the list and then we print out current text which prints the print C out and then we go to the bottom of the loop and then we advance current to current next it’s kind of like adding plus one but we just went from the first item in the list to the second item in the list and then we do it again and we are printing out the third item of the list and then we current equals current next gets to null and so then the list is over and we have printed all of them out so in addition to creating link lists we’re going to do many different things with link lists we’re going to delete things we’re going to sort things we’re going to find things we’re going to look things up we’re going to change things so one of the things that will save you a lot of craziness when working with link lists is always draw pictures and arrows it’s just it’s just necessary and frankly those programming exams all they ever tell you is to draw these pictures sometimes draw a picture of a hashmap as as a good example so I’m just going to show you some pictures rather than showing you a bunch of code and then I think you can produce the code um uh later so I want to show you how you delete an item from a singly linked list so first you got to find it you got to do the walking of the link list which I just showed you you got to walk through and you got to find the item that you want to delete now if you walk through and you don’t find it there’s nothing to delete so our goal is is to delete the line is is and so but you got to handle three cases there’s the easy one which is where the thing you found is in the middle of the list or if the thing that you found is at the start of the list or if the thing you found is the last item in the list and again you got to draw pictures and you may have to draw them separately because we we’re going to be adjusting head and tail in addition to the next values now it turns out when you’re going to do a delete you want to not only track the current item in the list you want to track the previous item in the list so as you’re walking down the list you look you current moves ahead and preve moves right behind it so preve Trails current by one item you can see that current the the is line is the one we’re going to delete and it’s pretty simple the only real thing that you’ve got to change is you take PR next and you point it at ker next right so you can see on the right hand side that the the little link from the C to the fun has just B P pass the is now you do have to deallocate the struct L node and the string but that’s pretty much all you need to do and so the middle is really easy you find it you keep track of prieve you have current and then you just kind of bypass it by moving next so that’s the easy one the next thing that you got to do is what if it’s the first node and in this case prieve will point at null because we have not really seen more than one PR only goes non-null when we’ve passed the first one so current is pointing itead let’s say we want to delete the line that says C and so we notice that preve is null and so what we do is we actually just move the head to Kern next all right you can see in the on the right hand the head just points now the head has now bypassed that first line and that’s all we’ve got to do except clean up the memory of the first entry uh both the string and the struct L node so that’s pretty easy you detect by noticing that preve is null because you you’re catching it in the first time through the loop and preve trails current by one and if you have not seen the second one preve is still null so that’s a pretty easy one but you got to check it you got to check all so this one is if preve is null you’re sitting at the front so you mess with head and that’s all you’ve got to do other than get rid of the data and free it up the last note is perhaps a little bit trickier and so at if you look and how you know you’re on the last node is C next is null right because if you’re pointing at the very last node in the list then the next is null so if C next is null then what you’re doing is you know you’re deleting the last one and so you first set pre next to be null because that’s the new last one and then you have to update tail to point to preve so tail was pointing at cerr at the current and then tail at the end points to proeve and then you got to clean up your data of that formerly last item in the list so now we’re going to talk about doubly link lists and the main purpose to have doubly link lists is to be able to reverse a list python is easy there’s a method in the list object called reverse what we’re about to see is exactly how reverse works so you just read the lines in and you say lines. reverse and then you print them out and they come out and backwards order now somebody probably G van rossom who wrote this in the first place in 1991 he is writing a doubly link list to make reverse easy so if you remember how we did the um deleting where we kept track of prieve well in a doubly link list we actually just have preve in the L node and so in addition to the text we’re going to store we’re going to have a pre pointer and a next pointer and um at the beginning of the list the pre will be null and at the end of the list next will be null it’s called a doubly link list because it has both reverse and forward chains of pointers and we keep them working all the time so it turns out that making a doubly link list in terms of code is not that different we have another thing in the L node we now have three things Str struct L node star preve and as we’re linking a new thing onto the end of the list we basically take new preve the new new item we’re adding and we copy tail into that because tail points to the last one we’re adding a new one to the last one and the previous one is tail and then we do that before we set tail to new so we add a new one and then we set tail to new so it’s not that hard so this is an example of the three item list with all of the previous and nexts properly uh properly shown and so you it it just links together once you draw these things in a picture and you get the understanding of what they’re talking about they’re not too hard and section 6.5.1 in the book which I added actually um walks through this W link list in some details so I won’t replicate that here now let’s just say that you have a doubly link list and you want to now reverse it well it’s pretty simple you set current to tail same as long as current stays n not null and then say current equals current prieve so you’re you’re sort of popping back up one at a time so the second time through the loop current has followed the preve from the last item and now it’s on the second to last item and then it does it again and then it goes to the top and then the last time it goes up to the preve of the top one and finds null and then the uh loop finishes because current has become null and you printed out the three lines cool is C backwards so this is just an example in k69 Doc and I won’t walk through it in this lecture I’ll let you take a look at that that um it’s quite common to encode all this stuff in uh some functions rather than just in straight line code it’s not all that hard you don’t want to pass in uh the the list structure and the line um a list is passed in by reference and so you have to say Ampersand my list on this list add function and inside the function you do uh you have the list be a pointer to that structure and then you have to use the arrow syntax inside of the function the next thing I want to talk about is unions a union is like a structure but it it reallocates the same memory over and over whereas a structure allocates more memory this says I’m going to take this same piece of memory and I’m going to view it different ways and so it’s the same area and you can assign multiple types to it this this is useful in like Network protocols and pulling bits out of uh memory Etc and so in my current sample I’ve got my union sample open curly brace in I semicolon Char CA bracket 4 bracket semicolon float F semicolon Clos curly brace semicolon what I have done here is allocated in a sense four bytes integers in this case are 32 bits ca4 is four bytes which is 4 * 8 is 32 and floats are 32-bit floating Point numbers so that’s the same amount of memor so instead of being 4 * 3 or 12 bytes this is actually Four bytes that I can see it I can I can view it either as an integer or as a character array of four characters or float and I’ve carefully lined them up so that they’re the same width allocate Union sample U and then I set the integer version of that that 4 bytes to 42 and then I print it out and you can see the hex floating Point that’s a complete failure is 0. z is like it’s not a very good big floating Point number and then the as a character string it is an asterisk and then I take you.ca which is viewing that same area of memory as a character array and I copy quote capital a BC into it and you’ll see that it prints out as a string as ABC the floating Point number is still zeros it’s still kind of a bad floating Point number um but then I see the hex as 00 63 6241 now this is a little Indian computer that I’m running on it so the a is the 41 the B is the 62 and the C is the 63 and the zero is the end of string indicator and so that’s why I picked very carefully only copying a three character string into a four character array so I could copy that end of end of string indicator then I take u.f which is taking that exact same memory and perceiving it as a floating point and I put 1/3 into it so now when I print that out it’s 0.33 lovely when I print it out as a string it is pretty bad and so it turns out that uh the first three characters are the string but there’s no zero at the end of the string so that greater than is there and it just keeps on going it goes into memory and it’s it you know that all that stuff that’s greater than at sign question mark HK that’s just random garbage on the stack somewhere that because the percent s is wandering randomly through memory at this point and then if I print that out as hex and if if we wanted to we could learn something about the I floating Point format but 3E AA aaab is 1/3 and that is a base two repeating 1/3 with a exponent and uh floating Point Internal formats are not the sub object for this course I’ve accomplished everything I wanted you to know about C so the next topic is going to be object orent programming but not just how to use object-oriented programming in python or whatever C doesn’t have it what I want to do is look at if we were writing python itself in C which is what C python is how would we have to build things like a list structure a a list object a string object and a dictionary object how would we build them and we’ll take a look at other programming languages that have objectoriented features like C++ and Java and Etc and so really the next bit is going to be about the implementation details for objectoriented programming [Music] welcome to C programming for everybody my name is Charles S and this is my reading of the 1978 C programming book written by Brian kernigan and Dennis Richie at times I add my own interpretation of the material from a historical perspective chapter six structures a structure is a collection of one or more variables possibly of different types grouped together under a single name for convenient handling while we talk about data structures and how to use them in every language this section is about understanding how software developers carefully control the low-level shape of their data items to solve their problems when you first learn about the C struct keyword you might think it’s equivalent to a python dict a dynamic key Value Store like a PHP array Java my apppp or JavaScript object but nothing is further from the truth these other languages provide us with easy to usee data structures where all the challenging problems are solved this chapter tells or or told the creators of python PHP Java and JavaScript how to solve the complex problems and build convenient and flexible data structures which we now all use in those objectoriented languages one way to look at this code in this chapter is to think of it as a lesson on how one might build Python’s list and dict data structures if the code in the chapter takes you a little while to figure out mentally make a note of thanks for all the hard work that mod languages invest to make their highlevel data structures flexible and easy to use back to the textbook the traditional example of a structure is a payroll record an employee is described as a set of attributes such as name address social security number salary Etc some of these in turn could be structures a name has several components as does an address and even a salary structures help organize complicated data particularly in large programs because in many situations they permit a group of related variables to be treated as a unit instead of separate entities in this chapter we’ll try to illustrate how structures are used the programs that we will use are bigger than many others in the book but are still of modest size section 6.1 Basics let us revisit the date conversion routines of chapter 5 a date consists of several parts such as the day month and year and perhaps the day of the year and the month name these five variables can all be placed in a single structure like this struct date open curly brace in day semicolon int month semicolon in in year semicolon int Year Day semicolon Char M name open square bracket 4 closed square bracket semicolon curly brace semicolon the keyword struct introduces a structure decoration which is a list of decorations enclosed in braces an option name called the structure tag may follow the word struct as with date here the tag names this kind of a structure and can subsequently be used as shorthand for the detailed declaration the elements or variables mentioned in a structure are called its members a structure member or tag and ordinary I.E non-member variable can have the same name without conflict since they are always distinguished by context of course as a matter of style one would normally use the same names only for closely related objects the right brace that terminates the list of members may be followed by a list of variables just as for any basic type that is struct open curly brace dot dot dot closed curly brace X comma y comma Z semicon is syntactically analogous to int X comma y comma Z semicon in the sense that each statement declares X Y and Z to be variables of the named type and causes space to be allocated for them a structured declaration that is not followed by a list of variables allocates no storage it merely describes a template or the shape of the structure if the Declaration is tagged however the tag can be used in later definitions of the actual instances of the structure for example given the Declaration of date above struct date D defines a variable D which is a structure of type date and external or static structure can be initialized by the following by following its definition with a list of initializers for the components struct date D equals open curly brace 14 comma 7 comma 1776 comma 186 comma Double quot jul L double quot Clos curly brace semicolon a member of a particular structure is referred to in an expression by construction of the form structure name do member the structure member operator dot connects the structure name and the member name to set leap from the date in structure D for example leap equals D.E modulo 4 equal 0 and D.E modulo 100 not equal to zero or D.E modulo 400 equal 0 semicolon or to check the month name if open PR stir comp open PR d.m name comma double qu Aug double quot close pren equals 0 close PR dot dot dot or to convert the first character of the month name to lowercase d.m name subz equals lower open pin d.m name Subzero closed pen semicolon structures may be nested a payroll record might actually look like struct person open curly bra Char name open square bracket name size close square bracket semicolon Char address open square bracket Adder size Clos square bracket semicolon long zip code semicolon long SS number semicolon double salary struct date birth date semicolon struct date hire date semicolon close curly bra semicolon the person structure contains two dates if we declare M as struct person M semicolon then. birthd dat. Monon refers to the month of birth the structure member operator dot associates left to right section 6.2 structures and functions there are a number of restrictions on C structures the essential rules are that only operations you can perform on a structure are to take its address with Amber sand and access one of its members this implies that structures may not be assigned or copied to as a unit and that they cannot be passed or returned from functions these restrictions will be removed in forthcoming versions porista structures do not suffer these limitations however so structures and functions do work together comfortably finally automatic structures like automatic arrays cannot be initialized only external or static structures can this prediction was indeed accurate modern C compilers do support the copying of a structure with a single assignment statement given that a c structure is just a fixed length block of memory it’s easy easy to generate machine code to copy it a key bit to remember that when the C structure is copied it is done as a shallow copy a shallow copy copies the values of the variables and the pointers in the structure but does not make copies of any data which the pointers point to a structure that contains other structures I.E not pointers to structures then those structures are shallow copied as well back to the text let us investigate some of these points by rewriting the date conversion functions in the last chapter to use structures since the rules prohibit passing of a structure to a function directly we must must either pass the component separately or pass a pointer to the whole thing the first alternative uses of day of year which as we wrote in chapter five D.E day equals day of year open print D.E comma d. Monon comma d. day Clos print semicolon the other way is to pass a pointer if we’ve declared higher date as struct date higher date semicolon and Rewritten day of year we could then say higher date. Year Day equals day of year open print % higher date Clos print semicolon to pass a pointer to higher date to day of year the function has to be modified because its argument is now a pointer rather than a list of variables this example code is on page 122 of the textbook and you can see it at http://www.cc.com code struct date open curly brace int day semicolon int month semicolon int year semicolon int Year Day semicolon int M name open square bracket 4 Clos square square bracket semicolon closed curly brace semicolon static int Day tab open square bracket 2 close square bracket open square bracket 13 close square bracket equals open curly brace open curly brace 0 comma 31 comma 28 comma 31 comma 30 comma 31 comma 30 comma 31 31 comma 30 comma 31 comma 30 31 Clos curly brace comma and then another list just as long as that Co with a closed curly brace and a semicolon that just initialized the lookup table for the days in each month now on to the function day of year open pin PD close perin struct date star PD semicolon open curly braks in I comma day comma leap semicolon day equals PD minus greater than day semicolon leap equals PD minus greater than year percent 4 equals 0 and and PD minus greater than year per 100 not equal to zero or PD minus greater than year per 400 equal 0 semicolon four open print I equal 1 semicolon I less than PD minus greater than month semicolon I plus plus close print day plus equals Day tab open square bracket leap close square bracket open square bracket I close square bracket semicolon return open pen day closed pren semicolon close curly brace the d The Declaration struct date star PD says that PD is a pointer to a structure of type date the notion exemplified by PD minus greater than year I think I’ll call that at this point PD right arrow because that’s really what it is it’s the minus greater than looks like an arrow to the right so I’m going to call it right arrow but it’s really two characters PD right arrow year is new if p is a pointer to a structure then PD right arrow member of structure refers to the particular me member the operator right arrow is a minus sign followed by a greater than since PD points to the structure the year member could also be referenced as open Print Star PD Clos print doe but pointers to structures are so frequently used that the right arrow notation is provided both as a convenient shorthand the parentheses are necessary in open penar PD Clos P.E because the Precedence of the structure member operator dot is higher than the pointer lookup operator asterisk both right arrow and Dot associate to left from left to right so P right arrow Q right AR M and .b birthdate Doon are open print P WR Arrow Q Clos print right arrow M and open print. birthdate close print. Monon for completeness here is the other function month day Rewritten to use the structure this is the first example on page 123 of the text which you can look at the source code at http://www.cc.com codee I won’t read the struct and the date the struct date definition and the struct int static int dat tab definition we’ll just go month day month day open pen PD Clos pen struct date star PD semicolon open curly brace in I comma leap semicolon leap equals PD right arrow year percent 4 equals 0 and PD right arrow year percent 100 not equal to zero or PD right arrow year perent 400 equal 0 semicolon PD right arrow day equals PD right arrow year day four open print I equal 1 semicolon PD right arrow day greater than Day tab sub leap sub I semicolon i++ Clos print PD right arrow day minus equals Day tab sub leap sub I semicolon PD right arrow month equals I semicolon close curly brace the structure operators right arrow and Dot together with parentheses for argument lists and square brackets for subscripts are the top of the precedent hierarchy and then thus bind very tightly for example given the Declaration struct open curly brace int X int star y semicolon close curly brace star P semicolon then plus plus P right arrow X increments X not P because the implied parenthesis is Plus+ open PR P right arrow X Clos print parentheses can be used after The Binding open print Plus+ P right arrow X increments P before accessing X and open print p++ Clos PR right Arrow X increments P afterward the last set of parentheses is unnecessary in the same way star P right arrow y fetches whatever y points to Star P right arrow y ++ increments y after what after accessing whatever it points to just like Star s++ open PR star P right arrow Y close print Plus+ increments whatever y points to to and star p++ right arrow y increments P after accessing whatever y points to section 6.3 arrays of structures structures are especially suitable for man managing arrays of related variables for instance consider a program to count the occurrences of each C keyword we need an array of character strings to hold the names and an array of integers to hold the counts one Poss possibility is to use two parallel arrays keyword and key count as in Char star keyword open square bracket n Keys close square bracket semicolon int key count open square bracket n Keys close square bracket semicolon but the very fact that the arrays are parallel indicates a different organization is possible each keyword entry is really a pair Char star keyword semicolon int key count semicolon and there’s an array of the pairs the structure declaration struct key open curly brace Char star keyword semicolon int key count semicolon closed curly brace key tab open square bracket n Keys close square bracket semicolon defs an array key tab of structures of this type and allocates storage to them each element of the array is a structure this could also be written struct key open curly brace Char star keyword semicolon int key count semicolon Co closed curly brace semicolon struct key key tab open square bracket n Keys close square bracket semicolon since the structure key tab actually contains a constant set of names it’s easiest to initialize it once and for all when it’s defined the structural initialization is quite analgous to the earlier ones the definition is followed by a list of initializers enclosed in braces struct key open curly brace Char stock R keyword semicolon int key count semicolon close curly brace key tab open square bracket close square bracket equals open curly brace double quote break comma 0 comma double quote case comma 0 comma double quote Char comma zero comma and so forth down to double quote unsign double quote comma Z comma double quote while double quot comma 0er close curly brace semicolon these initializers are listed in pairs corresponding to the structure members it would be more precise to enclose initializers for each row or structure in the braces as in open curly brace double quote break double quote comma zero closed curly brace comma open curly brace double quote case double quot comma zero Clos curly brace comma and so forth but the inter braces are not necessary when the initializers are simple variables or character strings and when all are present as usual the compiler will compute the number of entries in the array key tab if the initializers present and the open square bracket closed square bracket is left empty the keyword counting program which begins with a definition of key tab the main routine reads the input repeatedly by calling a function get word that fetches input one word at a time each word is looked up in key tab with a version of binary the binary search function we wrote in Chapter 3 of course the list of keywords has to be given in increasing order for this to work here is the first example on page 125 of the textbook you can see this at http://www.cc.com code pound include stdio.h pound toine maxw 20 pound toine letter quote a quote main open PR Clos PR open curly brace int n Comm T semicolon Char word open square bracket Max word close square bracket semicolon while open print open PR T equals get word open PR word comma Max word close PR close PR not equal eoff close PR if open PR t equal letter Clos PR if double open PR open PR n equals binary open print word comma key tab comma n Keys close print close print greater than or equal to zero close print key tab subn dokey count Plus+ four open pen n equals z semicolon n less than n Keys semicolon n++ if open open PR key tab sub n. key count greater than zero close PR print f double quote percent 4D space percent s back sln double quote comma key tab subn dokey count comma key tab sub n. keyword close pren semicolon and then a close curly brace to finish main binary to find the word in the in the table binary open PR word comma tab comma n close print charar word semicolon ruct key tab open square bracket close square bracket semicolon int n open curly brace int low comma High comma mid comma cond low equals z semicolon High equal n minus one semicolon while open pren low less than or equal to high closed pen open curly brace mid equals pren low plus High Clos print over two semicolon if open PR open PR cond equals stir comp open PR word comma tab comma open square bracket mid close Square bracket. keyword close print close print less than zero close print high equals mid minus one semicolon else if open pren Con greater than zero Clos pren low equals mid plus one semicolon else return open print mid Clos PR semicolon close curly brace to finish finish the while and then return open print minus one Clos print semicolon close curly brace so that’s really a rewrite of the binary function from the earlier part where we’re just taking the keyword and the count and uh and look and looking up in the array but then using the dot keyword to find the actual keyword back to the text we’ll show function get word in a moment for now it suffices to say it returns letter each time it finds a word and copies the word into its first argument the quantity n Keys is the number of keywords in key tab although we could count this by hand it’s a lot easier and safer to do it by Machine especially if the list is subject to change one possibility would be to terminate the list of initializers with a null pointer and then the loop along key tab just runs until the end is found but this is more than is needed since the size of the array is completely determined at compile time the number number of entries is just the size of key tab divided by the size of the struct Key C provides a compile time op unary operator called size of which can be used to compute the size of any object the expression size of open pen object closed pen yields an integer equal to the size of the specified object the size is given in unspecified units called bytes which are the same size as a Char closed pen the object can be an actual variable or an array or structure or the name of a basic type like int or double or the name of a derived type like a structure in our case the number of keywords is the array size divided by the size of one array element and this computation is used in a p pound define statement to set the value of n Keys pound Define n Keys open print size of open print key tab Clos print divided by size of open print struct key Clos print Clos print now for the function get word we have actually written a more General get word than is necessary for this program but is not really much more complicated get word Returns the next word from the input where a word is either a string or of letters or digits beginning with a letter or a single character the type of the object that is is the returned function as a function value it is the letter if the token is a word eof Rend of file or the character itself if it’s non-alphabetic this sample code is on page 127 of the textbook which you can see at http://www.cc.com code pound toine letter quote a quote pound toine digit quote zero quote get word open paren w comma Lim close Pin Char starw colon semicolon int limb semicolon open curly brace int C comma T semicolon if open pen type open print C equals star w++ equals get CH open print close print close print not equal letter Clos print open curly brace start W equals quot back sl0 quote semicolon return open for C close for semicolon close curly brace that if statement has got some stuff going on in it you might want to look at it very closely while open print minus minus limb greater than zero closed print open curly brace T equals type open print C equals star w++ equals get CH open print Clos print Clos print semicolon if if open print T not equal letter and T not equal digit Clos print open curly brace unget CH open PR C Clos print semicolon break semicolon close curly brace star open pin wus one closed pin equals quote back0 quote semicolon return open pin letter close Pin semicolon close curly brace close curly brace that that example code has a lot of stuff about pointers and incrementing pointers and dereferencing pointers ET ET so take a good look at that code back to the text get word uses the routines get CH and unget CH which we wrote in chapter 4 when the collection of alphabetic of an alphabetic token stops get word has gone one character too far the call to unget CH pushes that character back on the input for the next call get word calls another function called type to determine the type of each individual character for input here is a version that’s only for asky this code is the second example on page 127 of the textbook at http://www.cc.com code Type open paren C Clos paren int c semicolon H C open curly brace if open paren C greater than or equal to quote a quote and C less than or equal to quote Z quote or C greater than or equal to quote uppercase a quote and C less than or equal to quote uppercase Z quote Clos PR return letter semicolon else if open p c greater than or equal to quote 0 quote and C less than or equal to quote 9 quote close pen return open pen digit close Pin semicolon else return open pen C Clos pin semicolon close curly brace the symbolic constants letter and digits can have any values that do not conflict with nom non-alpha numeric values and eof the obvious choices are quote a quote and quote zero quote get word can be faster if calls to the function type are replaced by references to the appropriate array type the standard C library provides macros like is Alpha and is digit which operate in this manner section 6.4 pointers to structures to illustrate some of the considerations involved with pointers and arrays of structures let us write a keyword in program again this time using pointers instead of array Industries as an aside I would note that it’s a classic early assignment in any programming language to do a word frequency program here is a Python program from my python for everybody course to count words from an input stream handle equ equals open open parentheses single quote romeo. txt close single quote comma quote R quote close parentheses words equals handle do read open print Clos print.it openr close PR counts equals dict open PR close PR for word inword colon counts subword equals counts. getet open print word comma 0er Clos Print Plus One print open print counts close print this section in this book implements a less General word counting program in C the code depends on several functions from earlier in the book and the codee below is pretty complex where the programmer only has access to low-l language without powerful and easy to use data types like Python’s list or dict it is likely that GTO van rossom read this book took a long look at this code and designed the dict data structure in Python so the rest of us could write a data parsing and word frequency programming program in the above six lines of code without worrying about dynamic memory allocation pointer management string length and a myriad of other Det details that must be solved when you’re solving this program in C since python is open source you can actually look at the C code that implements the dict object in a file called dict object. C it is almost 6,000 lines of code and includes other files or utility code there thankfully we only have to write one line of python to use it counts equals dict open friend close PR we will leave the complex bits to the C programmers that build and maintain this section is not showing us how to use the python dict object rather it is showing how one would build a dict like structure using C so continuing with Section 6.4 pointers to structures the external definition of key tab do not need a change but Main and binary do need modification this is example on page 129 of the textbook and that is available at www . cc4 e.com code pointer version of Counting C keywords main open print Clos print open curly brace int T semicolon Char word open square bracket Max word close square bracket semicolon struct key star binary open print Clos print comma star P semicolon while open PR open PR T equals get word open print word comma Ma word close print Clos print not equal e close PR if open PR t equal equal letter Clos print if open print open print b equals binary open print word comma key tab comma in Keys Clos print Clos print not equal null Clos print P right arrow key count Plus+ for p equals key tab P less than key tab plus n Keys semicolon P plus Plus close parentheses if open print P right arrow key count greater than zero close print print F open print double quote percent 4D space percent s back slash N double quote comma P right arrow key count comma P right arrow key word and now we look at the binary search struct key star binary open pin word comma tab comma n close Pin Char star word struct key tab open square bracket close spur bracket semicolon int n open curly brace int cond semicolon struct key star low equals ersan tab Subzero semicolon struct key Star High equals Ampersand tab subn minus1 semicolon struct key equals mid while open pen low less than or equal to high closed pen open curly brace mid equals low plus High minus low / two if open p open pin cond equals stir comp word comma mid right arrow key word close print close print less than zero Clos PR High equals midus one semicolon else if Clos PR con greater than zero Clos PR low equals mid + 1 semicolon else return open pen mid Clos pen semicolon close curly brace to finish the while and then return open pen null close Pin close curly brace there are several things worthy of note here first the Declaration of binary must indicate that it returns a pointer to the structure type key instead of of an integer this is declared both in Main and in binary if binary finds the word it returns a pointer to it if it fails it returns null second all the accessing elements of keydb is done by pointers this causes one very significant change in binary the computation of the middle element can no longer be simply mid equals pen low plus High Clos pin divided by two because the addition of two pointers will will not produce any kind of useful answer even when divided by two and is fact illegal this must be changed to Mid equals low Plus open pen High minus low closed peren / two which sets mid to the point point to the element halfway between low and high you should also study the initializers for low and high it is possible to initialize a pointer to the address of a previously defined object and that is precisely what we have done here in main we wrote for open print P equals key tab semicolon P less than key tab plus n Keys semicolon p++ Clos print if p is a pointer to a structure any arithmetic on P takes into the account the actual size of the structure so p++ increments P by the correct amount to get to the next element in the array of structures but don’t assume that the size of a structure is the sum of the sizes of its members because alignment requirements for different objects C potentially may cause holes in the structure finally an aside on program format when a function returns a complicated type as instruct key star binary open print word comma tab comma n Clos print the function name can kind of be hard to see and or find with a text editor alternately another style is sometimes used on two lines now struct key star on the first line in binary open pen word comma tab comma n close PR the spacing is mostly a matter of personal taste pick the form you like and hold to it section 6.5 self-referential structures before we start this section a slightly longer aside from your narrator up to now I’ve resisted the temptation to augment the book with my own bits of code but we have reached the single point the book where I feel that there is too big of a conceptual leap between two sections so I’m going to add some of my own narrative between section 6.4 and 6.5 the rest of this chapter talks very nicely about binary trees and hash tables both essential low-level data structures in computer science and both excellent ways to understand pointers and how C can be used to build data structures like the python dictionary however the author skipped separately describing the structure of of a dynamic Dynam dynamically constructed link list which is the first and foundational collection data structure in computer science and should be understand understood before moving to tree and hashmap structures link lists form the foundation of the Python list object Java array object PHP numeric key arrays and JavaScript arrays the link list can be dynamically extended and items can be added in the middle efficiently as well as being pushed or popped on or off the front or back of the list link lists are used also to implement cues as well as other aspects of operating system I will attempt to mimic the authors’s writing style in this new section of the book I’ll write some sample code using a more modern dialect of C so it’s easier to run on a modern compiler section 6.5.1 linked lists bonus content suppose we want to read a file and print the file in reverse order we don’t know how many lines will be in the file before read the file so we can’t simply use an array of pointers to Strings and character Rays like lines in a sense we need a dynamic array that grows as we encounter new lines when we reach the end of the file we then just Loop through our stored lines from the end to the beginning so we can print them out in reverse order one solution is to make a data structure called a doubly link list of character strings in addition to each line of data we will store a pointer to the previous line and the next line as well as well as a pointer to the first item the add to the list and then we’ll call this the head of the list and then the most recent item we’ve added to the list which we will call the tail of the list we will see a singly link list as part of the hashmap data structure in a following section a single link list can only be traversed in a forward Direction a doubly link list can be traversed either forwards or backwards given that our link list of strings will keep expanding as we get new lines we avoid hardcoding array sizes like pound to find Max Len 1000 in the previous chapter we were building a program to sort a file going back to the description of a line in our doubly linked list it is clearly a structure with three components struct L node open curly brace Char star text semicolon struct L node star preve semicolon struct L node star next semicolon Clos curly brace this recursive definition of l node might look chancy but it’s actually quite correct it is illegal for a structure contain to contain an instance of itself but struct L node star preve declares prieve to be a pointer to an L node not an l- node itself we’ll write this code in a more modern seed dialect using modern memory allocation and IO routines provided by the standard seed Library this code is on page 130 of the textbook available at http://www.cc.com code pound include stdio.h pound include STD live. pound include string.h pound toine MAX Line 1,000 this is the length of the line not the number of lines struct L node open curly brace Char star text semicolon struct L node star preve semicolon struct L node star next semicolon Clos curly brace semicolon now we have our main program to print the lines in reverse and we will use int main open print Clos PR because we’re coding in a modern dialect of C open curly brace struct L node star head equals null semicolon struct L node star tail equals null semicolon Charline submax line semicolon while open print fgs open print line comma MAX Line comma STD in Clos print not equal null Clos print open curly brace Char star save equals open print Char star Clos print Malik open print sterlin open print line Clos Print Plus One Clos print suic colon stir copy save comma line struct L node Star new equals open print struct L node star Clos print Malik open pen size of struct L node close pen close pen semicolon new right arrow text equals save new right arrow next equals null new right arrow preve equals tail and tail equals new if head equals equals null close pen head equals new semicolon close curly brace to finish the while now we’ll print it all out four open PR instruct L node star current equals tail semicolon current not equal to null semicolon current equals current right arrow prev close parentheses open curly brace print F open print double quote s close uh double quote comma current right arrow text close pen semicolon close curly brace to finish the four and then close curly brace to finish the main interestingly if we wanted to print the list in for forward order or if we did have only a singly link list our Loop would look as follows four open pen struct L node star current equals head semicolon current not equal to null semicolon current equals current right arrow next close PR open curly brace print F open print double quote percent s double quote comma current right arrow text Clos pen semicolon Clos curly brace in general we use the variable names head tail and current as well as next and preve or similar names when writing code that builds or uses a link list so other programs will quickly understand what we are talking about after a while reading a for Loop to Traverse a linked list becomes As Natural as reading a for Loop that progresses through a sequence of numbers section 6.5.2 binary trees suppose we want to handle the more General problem of counting the occurrences of all the words in some input since the list of words isn’t known in advance we can’t conveniently sort it and use a binary search yet we can’t do a linear search for each word that is arrived to see if it’s already been seen the program would take forever more precisely what is the expected running time and it would grow quadratically with a number of input words how can we organize the data to cope efficiently with a list of arbitrary words our solution is to keep the set of words seen so far sorted at all times by placing each word into its proper position in the order as it arrives this should this shouldn’t be done by Shifting the words in a lineary array though that takes too long instead we will use a data structure called a binary tree the tree contains one node per distinct word each node contains a pointer to the text of the word a count of the number of occurrences of the word a pointer to the left child node and pointer to the bride child of node no node may have more than one more than two children it might have only zero or one the nodes are maintained so that any node in the left tree contains only words that are less than the words at the node and the right tree only contains words that are gr to find out whether a new word is already in the tree one starts at the root and compares the new word to the word starting into that node if they match we found it if the new word is less than the tree word the search continues down the left otherwise the right child is searched if there’s no child in the required Direction then the word is not in the tree and in fact in fact the proper place for it to be is the missing child this search process is inherently recursive since the search from any node uses a search from one of its children accordingly recursive routines for inserting and printing will be the most natural going back to the description of a node is clearly a structure with four components struct t- Noe open curly brace Char star word in count semicolon struct t- node star left semicolon struct t- node Star right semicolon Clos curly brace this recursive Declaration of a node might look chancy but actually it’s quite correct it’s eal illegal for a structure to contain an instance of itself but struct te node star left semicolon declares left to be a pointer to a node not a node itself the code for the whole program is surprisingly small given the handful of supporting routines that we’ve already written these are get word to fetch input and Alec to provide space for squirreling the words away the main routine simply reads words with get word installs them in the tree with tree this is the first example on page 131 of the textbook which you can see at http://www.cc.com code pound include stdio.h pound toine maxw 20 pound toine letter single quote a single quote main open pen Clos pen open curly brace struct t- Noe star root comma star Tree open print Clos print semicolon Char word open square bracket Max word close square bracket semicolon int T semicolon root equals null while open pen open pen T equals get word open pen word comma Max word close Pin close Pin not equal eoff close Pin if open pin t equal letter close Pin root equals Tree open pin root comma word Clos pin semicolon tree print open pen root Clos print semicolon close curly brace tree it’s itself is straightforward a word is presented by main to the top level root of the tree at each stage that word is compared to the word already stored at the node and is percolated down either to the left or right subtree by a recursive called a tree eventually the word either matches something already in the tree in which case the count simply is incremented or a null poter pointer is encountered indicating the node must be created and added to the tree if a new node is created tree returns a pointer to it which is installed in the parent node this is the example on page 132 of the textbook at http://www.cc.com code pound includes string.h struct t- Noe open curly brace Char star word semicolon int count semicolon struct T node star left semicolon struct T node Star right right semicolon closed curly brace semicolon struct t- node star Tree open pen P comma W close print we’re going to install w at or below P struck T node star P semicolon Char star W open curly brace struct t- node star T Alec open pin Clos pin semicolon Char star stir St stir Save open p close p semicolon int cond semicolon if open print pble equal null Clos print open curly brace we’ve got a new word p equals T Alec open print Clos print to make a new note P right arrow word equals stir Save open print W Clos print semicolon P right arrow count equals 1 P right arrow left equals P right arrow right equals null close curly brace else if open print open print cond equals stir comp W comma P right arrow word close print close print double equals z close print P right arrow count Plus+ indicate that we’ve seen the word one more time else if open print cond less than zero Clos print lower will go into the left part of the tree P right arrow left equals tree P right arrow left comma W Clos PR semicolon else P right arrow right equals Tree open PR P right arrow right comma W Clos print semicolon return open print P Clos print semicolon close curly brace and that’s a bit of code it’s not much and it’s beautiful recursion is happening the return P at the very end is really really important because we’re kind of always overriding it but we’re okay so um The overriding Works its way back up to the recursion because it’s recursive it’s using pointers where we go back to the text storage for the new node is fixed by a routine called tallic which is an adaptation of the Alec we wrote earlier it rep turns a pointer to a free space suitable for holding a tree Noe we’ll discuss this more in a moment the new word is copied to a hidden place by stir say the count is initialized and the two children are made null this part of the code is executed only at the edge of the tree when a new node is being added we have unwisely for a production program omitted error checking on the values returned by stir save and T Alec tree print prints the tree in left sub tree order at each note Prince its left subtree all the words less than this word then the word itself then the right sub tree all the words greater if you feel shaky about recursion draw yourself a tree and print it with tree print it’s one of the cleanest recursive routines you can find this example code is on page 133 of the textbook which you can see at http://www.cc.com code I won’t read The Struck T node code just tree print tree print open pen P Clos pen struct T node star P semicolon open curly brace if open pen P not equal to null Clos pen curly brace open curly brace tree print open pen P right arrow left close pen semicolon print F percent 4D space percent s back slash N double quote comma P right arrow count comma P right arrow word some close parentheses semicolon tree print open PR P right arrow right Clos PR semicolon close curly brace for the if and then close curly brace for the tree print function again I agree with the authors and that is one of the cleanest and most beautiful and most applicable uses of recursion that you will probably ever see in all your I’m not a fan of recursion in all uses cases but you really can’t do this any other way well back to the text pract as a practical note if the pre tree becomes unbalanced because the words don’t arrive in random order the running time of the program can grow too fast as a worst case if the fors are already in order this program does an expensive simulation of linear search there are generalizations of the binary tree notably two three trees AVL trees and I would add balanced binary trees which do not suffer from this worst case Behavior but we will not describe them here before we leave this example it’s also worth a brief digression on a problem related to storage allocators clearly it’s desirable that there only be one storage allocator in a program even though it allocates different kinds of objects but if one allocator is to process requests for say pointers to chars and pointers to struck T noes two questions arise first does it meet the requirement of most real machines that objects of a certain types must satisfy alignment restrictions for example integers must often be located uneven addresses second what declarations can cope with the fact that Alec necessarily returns different kinds of pointers alignment requirements can generally be satisfied easily at the cost of some wasted space merely by assuring ensuring the allocator always returns a pointer that meets all alignment restri restrictions for an example on the pdp1 it is sufficient that Alec always returns an even pointer since any type of object may be stored at an even address the only C cost is a wasted character on the odd length requests similar actions are taken on other machines thus the implementation of Alec may not be portable but its usage is the Alec of chapter 5 does not guarantee any particular alignment in chapter 8 we’ll show how to do the job right as an aside by now you know that when the authors mentioned the pdp1 they are sharing some aspects of the challenge of making cwork on previous generation computers with short memory words and small amounts of memory and at the same time making them work well on the incoming generation of computers with larger words and more memory the research thought and care that went into making sure the C code was portable across multiple generations of computer hardare Ware is on display in the previous paragraph the question of the type declaration for Alec is a vexing one for any language that takes its type checking seriously in C the best procedure is to declare that Alec returns a pointer to char and then explicitly coers the pointer into the desired type with a cast therefore if p is declared as Char star P semicolon then open peren struct t-e star Clos print P converts it into a t- node pointer expression thus tallic is written as struct t- node star T Alec open pren Clos pren open curly brace Char star Alec return open pren open print struct t- node star Clos print Alec open print size of open print struct t- node Clos print Clos print close print this is more than is needed for current compounds but represents the the safest course for the future I would add that these concerns that the author’s mention in this section are also nicely resolved in modern C compilers in the NC version of C they introduce the notion of the Void type the void type indicates the lack of a type much like null is used to indicate not a valid pointer or not a flying toy in 1978 because the charart type was generally the most native type on any system it was often used as the generic pointer needed to return memory from an allocation function in modern C we use pointers to void and then cast The Returning pointer to be a pointer to whatever struct or other data we just allocated if we were writing Alec the Alec routine in this book using modern C it would return a pointer to void the 1978 version is Char star Alec open pin Clos PR and the modern version is void star Alec open PR close Pin we’ve left the book alone we haven’t used void throughout the book but it is a testament to the foresight of the authors that all the pointer casting code in this book still works today the same regardless of whether the memory allocation functions return Char or void pointers to the allocated data section 6.6 table lookup as an aside in this section we finish our quick tour of the implement M ment ation of the Three core data structures in computer science one the link list two the tree and three the hashmap as described in this section A singly Link list is also part of a hashmap implementation so you can compare it to the doubly link list code introduced in the earlier bonus section 6.5.1 this section is worth understanding well because not only is it an excellent review of pointers and structures but also because one of the most common questions on a face-to-face programming interview is draw a hashmap on the Whiteboard and explain how it works this is an easy question if you study and understand this section of the book and almost impossible if you have not in some ways this section is the most intricate data structure that’s described in the book it is why it is so popular in coding interviews chapters is seven and eight talk about lots of practical things like input output of the Unix operating system elegant data structures and their use are Core Concepts in computer science understanding them highlights the difference between a good programmer and a computer scientist in a sense understanding how a hashmap is the secret handshake of computer science and it is the secret handshake because of this book and this section of this book written back in 1978 and used in a course that the person interviewing you may have took when they were in college hashmaps were difficult for them to understand back then and so if you understand the concept then you must be solid so I hope you pay close attention to this section and remember the handshake back to the text in this section we will write the innards of a table lookup package as an illustration of more aspects of structures this code is typical of what might be found in the symbol table management routines of a macro processor or a compiler for example consider the C pound defined statement when a line like pound Define yes one is encountered the name replacement Tech the name yes and the replacement text one are stored in a table later when the name yes appears in a statement like inw equals yes semicolon it must be replaced by one there are two major routines that manipulate the names and replacement texts install open pin s comma T close Pin records the name s and the replacement T in the table s and t are just character strings look up open print s Clos print searches for s in the table and returns a pointer to the place where it was found or null if it wasn’t there the algorithm used is a hash search the incoming name is converted to a small positive integer which is then used to index into an array of pointers an array element points to the beginning of a chain of blocks describing the names that have the hash value and if it is null then no names have hashed to that value a block in the a block in the chain is a structure containing pointers to the name the replacement text and the next block in the chain a null next pointer marks marks the end of the chain struct and list open pen Char star name semicolon Char stard def semicolon struct end list star next semicolon close curly brace semicolon the pointer array is just pound toine hash size 100 static struct end list star hashtab open square bracket hash size Clos square bracket semicolon the hashing function which is used by both lookup and install simply adds up the character values in the string and forms the remainder modulo the array size this is not the best possible algorithm but it has the Merit of extreme Simplicity hash open pen s Clos pin Char star s semicolon open curly brace int hash Val four open curly brace hash valal equals zero star s not equal quote single quot back sl0 single quote semicolon Clos pen hash Val plus equals star s++ semicolon return open pen hash Val modulo percent hash size Clos prin semicolon closed curly brace as an aside hashing functions are one of the foundational Notions in computer science hashing functions are used for every from high performance in memory structures organizing databases data digital signing Network packet check sums security algorithms and much more the above text is a really great example of a really simple hashing function you should understand this simple presentation well so that when you encounter a more complex implementation or use of hashing you can fall back on this text to understand that at its core hashing is a very simple concept so much of this chapter is a succinct example of some of the most powerful Concepts in computer science please don’t look at the eight code lines of code above and think I got that and just jump to the next bit this chapter is showing you the way of the master programmer wax on wax off be patient slow down and enjoy your time time here back to the text the hashing process produces a starting index in the array hashtab if the string is to be found anywhere it will be in the chain of blocks beginning there the search is performed by lookup if lookup finds the entry already present it just returns a pointer to it if not it returns null here’s the code struct end list star lookup open pin s Clos pin Char star s semicolon open curly brace struct and list star NP semicolon four open pin NP equals hashtab sub hash open pen s Clos pen close square bracket semicolon NP not equal null semicolon NP equals an NP right arrow next close parentheses if stir comp open print s NP right arrow name close print double equals 0 return open print NP close print semicolon return open print null Clos print semicolon close curly brace install uses lookup to determine whether the name installed is already present if so the new definition must supersede the old one otherwise a completely new entry is created install returns null if for any reason there’s no room for a new entry struct and list star install open pin name common def close Pin jar star name comma stard def semicolon open curly brace struct end list star NP comma star lookup open PR Clos PR semicolon Char stir save comma star Alec open PR close PR semicolon int hash file semicolon if open print open print NP equals lookup open PR name close print close print double equal null close Pin open curly brace I.E it’s not found NP equals open pin struct end list star Clos pin Alec open print size of open Print Star NP Clos print Clos print semicolon if NP equals null return null that means the allocation failed if open pen open print NP right arrow name equals stir Save open print name close print close print double equals null Clos print return open p null Clos pint semicolon hash Val equals hash open PR NP right arrow name closed print semicolon and P next equals hashtab open square bracket hash Val close square bracket second semicolon hashtab open square bracket hash Val close s bracket equals NP semicolon we’re actually pushing these new ones to the head of this singly link list and so those last two statements push the the most recent top of the list forward and then replace with a new one at the top of the list the list does not stay in any order so we have a Clos curly brace to end all that if for the not found code closed curly brace else this is the already code already there code free open pin NP WR Arrow defa Clos pin semicolon free the previous definition that’s the string part of the the uh the pound Define if open print NP right arrow def equal stir Save open print defa close print close print equals no close print return open print null Clos print semicolon return open print NP Clos print semicolon Clos curly brace so that last bit there was to if you have a pound Define with the same keyw and a different later you have a later a different uh definition you can replace the definition and so that last bit was replacing the definition again this code is pretty intricate it’s really both the hash table and a singly link list going on at the same time so take a close look at this on page 136 of the book stir save merely copies the string given its argument to a safe space obtained by a call to Alec we’ve showed this code in chapter five since calls to Alec and free may occur in any order and since alignment matters the simple version of alic is just not adequate here see more in chapters 7 and 8 as an aside one of the reasons that the authors make vague forward-looking statements when they talk about dynamic memory is that large-scale memory management in a programming language is still a subject of active research 40 years later back in 1978 it was absolutely not a settled topic you can see this when the authors build a simple non-production memory allocation scheme with their own Alec and free routines backed by a fixed length static extern array of characters Dynamic allocation is essential to writing competency programs but it is likely that the production grade dynamic memory support was still somewhat non-portable when the book was written so they use Simple self-contained implementations in this book modern dynamic memory support is through the Malak C alic and free functions in the standard Library these functions request dynamic memory blocks from the operating system and manage those areas on behalf of your C code on Unix and Unix like systems the memory allocation layer asks the underlying operating systems for blocks of memory through the sbrk interface even with virtual memory programmers must carefully manage their use of dynamically allocated memory because memory is never unlimited section 6.7 Fields when storage space is at a premium it may be necessary to pack several objects into a single machine word one especially common use is a set of single bit at flags and applications like compiler symbol tables externally imposed data formats such as interfaces to Hardware devices also often require the ability to get at pieces of a word as an aside we are going to go now from lowlevel programming to even lower level programming the Unix operating system is written in C and Unix needs to have for example an implementation of the internet Pro protocol so it can be connected to the internet one of the most important internet protocols is the transmission control protocol TCP in order to implement TCP you need to send very precisely formatted data across the network the data is very tightly packed in order to save precious Network bandwidth.

    the exact format of a TCP header is described in the TCP Wikipedia page if you look at the header you will find that it bits 96 through 99 TCP expects a 4-bit integer that defines the data offset exactly what this data means is less relevant unless you’re actually writing the TCP implementation but it does demonstrate that we need to control our data layout at times on a bit bybit basis this section covers how we can use struct to build up a TCP header in C which can be parsed and set without using masking and shifting operations with hard-coded numbers the section below is simpler than constructing a valid TCP header using a carefully pack struct but it does lay the groundwork for these more complex situations now back to the text imagine a fragment of a compiler that manipulates a symbol table each identifier in a program has certain information associated with it for example whether or not it’s a keyword whether or not it’s external Andor static and so on the most compact way to encode such information is a set of one bit Flags in a single Char or int the usual way this is done is Define a set of masks corresponding to the relevant bit positions as in pound Define keyword 01 pound Define external 02 and pound define static 04 the numbers of course must be powers of two so that the shifting works then accessing the bits become a matter of bit fiddling with shifting masking and complimenting operators which were described in Chapter 2 certain idioms a appear frequently Flags vertical bar equals external vertical bar static turns on the external and static bits in Flags while flags and percent equal till open pen external or static closed pen semicolon turns them off and if open pen open pen Flags Amper sand pen external vertical bar static Clos pen Clos pren equal equals z dot dot dot is true if both bits are off although these iums are readily mastered as an alternative C offers the capability of defining and accessing Fields Within A Word directly rather than by bitwise logical operators a field is a set of adjacent bits within a single int the syntax of field definition and access is based on structures for example the symbol table pound defines above could be replaced by the definition of three Fields struct unsigned is keyword colon one semicolon unsigned is extern colon one semicolon unsigned is static colon one semicolon closed curly brace Flags this defines a variable called flags that contains three onebit Fields the number following the colon represents the field width in bits the fields are declared unsigned to emphasize that they are really unsigned quantities individual fields are referenced as flags. is keyword flags. is extern ETC just like other structure members Fields behave like small unsigned integers and may part participate in arithmetic Expressions just like the other integers thus the previous examples may be written much more naturally as Flags is underscore extern equals Flags is static equals 1 semicolon turn the bits on flags is exter equals Flags is static equals 1 semicolon to turn the bits on flags. is xtern equals flags. is static equals z turns them off and if open prin flags. is extern double equals 0 and flags. is static double equals z close print dot dot dot to test them a field may not overlap an INT boundary if the width would cause this to happen the field is aligned to the next int boundary Fields need not be named unnamed Co Fields with a colon in width only are used for padding the special width zero may be used to force alignment to the next int boundary there are a number of caveats that apply to Fields perhaps the most significant fields are assigned left to right on some machines and right to left on others reflecting the nature of different Hardware this means that although fields are quite useful for maintaining internally defined data structures the question of which end comes first have to have has to be carefully considered when picking apart externally defined data other restrictions to bear in mind fields are unsigned they may only be stored in ins or equivalently unsigned they are not arrays and they do not have addresses so the Ampersand operator cannot be applied to them section 6.8 unions a union is a variable which may hold at different times object objects of different types and sizes with the compiler keeping track of the size and alignment requirements unions provide a way to manipulate different kinds of data in a single area of storage without embedding any machine dependent information in the program for example again from a compiler symbol table suppose constants may be in Floats or character pointers the value of a particular constant must be stored in a variable of the proper type yet it is most convenient for table management if the value occupies the same amount of storage and is stored in the same place regardless of its type this is the purpose of a union to provide a single variable which can legitimately hold one of several types as with Fields the syntax is based on structures Union UT tag open curly brace int IAL semicolon float F Val semicolon Char star P valal semicolon Clos curly brace U Val the variable U Val will be large enough to hold the largest of the these three types regardless of the machine it is compiled of compiled on the code is independent of Hardware characteristics any one of these types may be assigned to U Val and then used in Expressions so long as the usage is consistent the type retrieved must be the type most recently stored it is the responsibility of the programmer to keep track of what type is currently stored in Union the results are machine defend dependent if something is stored as one type and extracted as another type syntactically members of a union are accessed as Union name. member or Union pointer right arrow member Justice for structures if the variable U type is used to keep track of the current type start in U Val then one might see code as if open pin you type double equals int Clos pen print F pen double quot percent d/n double quot comma U IAL close paren semicolon else if open paren UT type double equal float close paren print F open PR double quote percent F sln double quot comma U val. fval close pen semicolon else if open pen U type double equal string close pen print F double quote percent s back sln double quote comma U val. pval close PR semicolon else print F open print double quote bad type percent D and U type back sln double quot comma U type Clos pren semicolon unions may occur in structures and arrays and vice versa the notion for accessing a member of a union in a structure or vice versa is identical that to that for nested structures for example in the structure array defined by struct open curly brace Char star name semicolon int Flags semicolon int utype semicolon Union open curly brace int IAL semicolon float F Val semicolon Char star P Val semicolon Clos curly brace U Val semicolon Clos curly brace Sim tab open square bracket n Sim close square bracket semicolon the variable IAL is referred to as simab sub. val. IAL and the first character of the string P Val by star simab sub. U.P in effect a union is a structure in which all the members have offset zero the structure is big enough to hold the widest member and the alignment is appropriate for all types in the Union as with structures the only operations currently permitted on unions are access accessing a member and taking the address unions may not be assigned to passed to functions or returned by functions pointers to unions can be used in a manner identical to pointers to structures as an aside the above limitations on unions are just no longer accurate like structures modern C compilers can assign the contents of the Union to another Union variable you can also pass unions into functions by value and receive a union as the return type of a function the storage allocator in chapter 8 shows a union can be used to force a variable to be aligned on a particular kind of storage boundary section 6.9 typ def C provides a facility called type def for creating new data type names for example the Declaration typed def space int space length semicolon makes the name length a synonym for INT the the type length can be used in declarations casts Etc in exactly the same ways int can be length Len comma Max Len semicolon length star lengths open square bracket close square bracket semicolon similar the Declaration type def Char star string semicolon makes string a synonym for Char star or a character pointer which then may be used in declarations like string P comma line PTR open square bracket lines closed square bracket comma Alec open pen closed pen semicolon note that the type being declared in a type def appears in the position of a variable name not right after the word type def syntactically type def is like the storage class extern static Etc we’ve used uppercase letters in these examples to emphasize the names a more complicated example we could make type deps for the tree no shown earlier in the tra chapter type def struct T node open curly brace Char star word semicolon int count semicolon struct T node star left semicolon struct T node Star right semicolon close curly brace tree node comma star tree PTR this creates three two new type keywords called tree node which is a structure and tree PTR which is a pointer to the structure then the routine tallic could become tree PTR T alic open PR Clos print open curly brace Char star Alec open print Clos PR semicolon return open print open print tree PTR Clos print Alec open print size of open print tree node Clos print close print Clos print semicolon close curly brace it should be emphasized that a type def declaration does not exactly create a new type in any sense it merely adds a new name for some existing types nor are there any new semantics variables declared this way have exactly the same property as variables who whose declarations are spelled out explicitly in effect type def is like toine except that since it’s interpreted by the compiler it can cope with textual substitutions that are beyond the capabilities of the C Macro preprocessor for example typ def int open PR star PFI Clos print open print Clos print semicolon creates the type PFI to mean pointer to a function returning integer which can be used in contexts like PFI stir comp comma num comp comma swap in the sort program in chapter 5 there are two main reasons for using type def declaration the first is to parameterize a program against portability problems if type defs are used for the data types which may be machine dependent only type deps need to change when the program is moved one common situation is to use type def names for various integer quantities and then make an appropriate set of choices of short int and Lawn for each host machine the second purpose of type defs is to provide better document mentation for a program a type called tree PTR may be easier to understand than one declared only as a pointer to a complicated structure finally there’s always the possibility that in the future a compiler or some other program such as Lind may make use of the information contained in typed def declaration to perform some extra checking on the program this work is based on the 1978 C programming book written by Brian W kernigan and Dennis M Richie their book is copyright All Rights Reserved by AT&T but is used in this work under fair use because of the book’s historical and scholarly significance its lack of availability and the lack of an accessible version of the book the book is augmented in places to help understand Its Right Place in a historical context amidst the major changes of the 1970s and 1980s as computer science evolved from a hardware first vendor centered approach to a software centered approach where portable operating systems and applications written in C could run on any hardware this is not the ideal book to learn C programming because the 1978 Edition does not reflect the modern sea language using an obsolete book gives us an opportunity to take students back in time and understand how the SE language was evolving as it laid the groundwork for a future with portable applications [Music] hello and welcome to objectoriented patterns a historical perspective we’re going to cover a number of different things in this lecture first we’re going to do a bit of review of object orientation from previous courses that we’re going to take a look at historical perspective across a bunch across time and a bunch of different programming languages important the important part about that is that object orientation is a concept it’s not just a syntax and so by looking at different syntaxes we’ll have a better understanding of the underlying concept then what we’re going to do is we’ll look at how one might have used C to build object Orient support into a language like say python for example or C++ and then we’re going to look at building a python string class in C a python list class in C and then a python dictionary class in C sort of showing how C is also the foundation of most modern object-oriented languages so if you take a look at the other courses that I’ve taught I have been teaching objectoriented if you taken my courses I have been teaching you object orientation for a long time one of the things you’ll notice is that um I just keep coming back to it if you look at python for everybody chapter 14 is about object orientation I I claim that Django for everybody is is really a class and object orientation because D Jango itself is a a collection of cooperating objects you you create Jango applications by creating objects that are being sent messages which is very much a purely objectoriented concept I cover object oriented JavaScript particularly because JavaScript is a little bit different I cover that in both Django for everybody and in web applications for everybody and so we’re going to take a look at all these different uh syntaxes of object orientation and then we’re going to try to build our own objects but in a non-ob Orient language IE C I am not going to teach you object orientation in this lecture I am going to do a very very brief review on my other lectures mostly what I wanted you to know was terminology so the most important terminology is a class A Class is not an object it’s a template to make objects it’s like the cookie cutter in the cookie methodology an attribute is some data that you can contain in each instance of the class and a method is some code like a function that operates within the context of the instance of the class the object is a particular instance of the class Stamped Out from the class when a new instance of the class is requested so you have one class then you have many many instances so if you do a user defined class in Python you see that we have a special keyword class which is different than defa and within it we have attributes and we have methods so the methods look like functions but in particular the methods inside of a class always have this first parameter which by convention we call Self you could call literally anything else but if you did people would be confused because the convention is so strong that SF is always the first parameter of every method inside a python so in it is the instance and then two parameters and then we can look at attributes like self.x and self.y and then assign them in this case to the X and Y from the call so we have a couple of methods like def dump and again a dump itself is a zero parameter method but it always has the instance and then we look within it we can say self.x and self.y and look at all the attributes and we can use the ID function which we learned in the last chapter which is kind of like an address lookup function in Python and so what we have here is we have a little method called origin which takes the distance for our point from the origin to our point and takes the square root of the the two sides of the triangle squared so if we then get out of the the class definition and move into the actual code we call PT equals 4050 that is how we call the Constructor point is the class name and then the parameters to the Constructor are four and five in that example point. dump that’s the dump method inside a point and you can pass the parameter PT which is the instance so PT ends up being the instance of this point object but the more common syntax is to not use the class name and the method name and explicitly pass self in but instead in the next line we see print origin and then pt. origin well pt. origin is expanded to point. origin and then the first first parameter is kind of added on which is PT which is the instance now I’ve got a Dell Dell parentheses PT closed parentheses and that is the destructor now in Python the destructor would get run automatically at the end of the program so in this case that Destructor is a little bit redundant so now I want to take a bit of a historical look at object orientation so if you’ve seen any of my other classes I try to put the programming languages that were learning in context and these are the common programming languages like Python and PHP and JavaScript and now we’re teaching C and so if you look at this the idea is is you can see that the language C has been the inspiration for virtually all of the modern languages that we we use today and that I’ve taught you um python inspired is INS while the syntax of python doesn’t look like C python has been inspired we see things like there’s formatted printing that talks directly to the underlying C implementation because cpython not every python but the C python that we normally use is written in C so c as we’ve said many times in this class already is profoundly influential in the syntactical evolution of procedural programming language so we’ve seen this before but if we think about object orientation object orientation the inspiration and evolution of object orientation really took sort of a different path through a bunch of languages that you may or may not have seen or heard so the oldest language on this is Fortran in 1955 and alal 60 UH alol 60 I don’t have it marked as like that alol 60 was inspired by Fortran uh Fortran um but probably the better thing to say was that alol 60 was created in spite of Fortran so Fortran was loved by some and not loved by others and alol 60 is more what the computer scientist of the day in 1960 decided so there’s a a series of languages that were popular in computer science but not necessarily popular in general purpose programming like uh simulus 67 which took a lot of the objectoriented ideas from um elal 60 and um Pascal which is a procedural language which is another language that uh I learned in the in the 70s when I was going to school and um if you look for so so algol and simula were languages that were mostly procedural but had objectoriented Concepts in them I always think of the most objectoriented languages as small talk it it you know it’s not necessarily the first one but it feels like it’s the one that developed the notion of object orientation the most but it it really took inspiration from an earlier language which was lisp and so lisp was an early early 1960 interpreted language uh lisp was often thought of as the foundations of artificial intelligence now scheme in 1975 was a direct derivative of lisp inspired by Lis kind of the next generation of lisp 15 years later and it had a bunch of objectoriented Concepts in it as well and so you can kind of see where where the object-oriented notation the object-oriented Notions were evolving kind of independently from the preferred syntax and in the’ 70s when C came along it really changed the way we think of a syntax and so it inspired C++ inspired Java JavaScript C and PHP but then what happened is each of these things kind of took different inspiration from different object orientation so there’s a there’s really almost independent inheritance of where the inspiration for the language came from versus where the inspiration for the objectoriented pattern and probably the biggest thing that you see is C++ which is early 80s took its inspiration both from simula and from C so it it it was the a hybrid language that tried to take the object-oriented notations from simula and layer them on top of the procedural syntax of C now another interesting thing here is is that python in 1991 um was quite aware of C++ and so if you look at a PHP which in 1995 was not at all objectoriented it wasn’t object oriented till 2000 python was objectoriented in sort of almost 1991 92 because the computer scientist of the day were quite aware of these kinds of things and so python sort of implemented object orientation almost as soon as python was implemented and so like I said python 1991 implemented object orientation and I I really like the object orientation in Python PHP implemented non-ob oriented ’95 but then added objects in 2000 Java took a lot of inspiration from C++ Java was trying to be the next C and so it’s got a lot from C it’s got a lot from C++ and then C Shar was inspired by C++ and Java but then JavaScript is kind of like the outlier JavaScript even though it came out in 1995 and was very much informed by Java it took its object-oriented pattern more from scheme which is a more pure object orientation rather than an objectoriented layer and so JavaScript among all of these things that we’ll look at JavaScript is sort of the outlier in terms of its object and approach and if you’ve taken classes for me in the past I’ve mentioned that before because JavaScript has first class functions and the way you create things etc etc etc so we’re going to take a look at some of these object Jo implementations over over time I’ve already talked about the python inspiration I flip Python and C++ Plus in the early days because at least python we kind of know um C++ is 1980 Java ‘ 95 JavaScript in 95 PHP in 2000 and then C in 2001 [Music] n [Music] it was highly collaborative in the sense that this was a group of you make up a number 30-ish people who were all interested in much the same kinds of things although with tentacles off into you know theoretical computer science math and so on uh physical sciences kind of thing but mostly a lot of us at least we’re we’re basically software people BNA came to uh B Labs I think in 1979 after getting his PhD at Cambridge um and he was interested in simulation you know he known uh simula in particular which was an object probably one of the very first object-oriented languages and he wanted to do simulation but C was kind of the language that people used at Bell labs and so what he did was to try and take some of the good ideas from SIM in particular class ideas and put that on top of c and for a long time the implementation of C++ was B basically translate C++ into C and then you could run it anywhere so it’s one of many pragmatic engineering decisions that BNA made that if you want it’s hard to get people to buy into a new language if they have to carry an enormous amount of infrastructure and support and other baggage with it whereas if it’s one more program that then fits perfectly into your existing environment as a language as libraries and all the rest of it much easier and so C went through a period of evolu well it’s still evolving uh but starting there in the very early you 1980 81 something like that the two languages were very much together because we’re all in this one group and Babs would fit comfortably in this Corridor this building um and be which certainly new see inside out and then was developing this new language that ran on top of it that stressed C compilers so that was useful because the code that that his pre-processor generated was astonishing and I think some of the ideas in C++ then retrofitted back into C in particular the obvious one of how you declare the arguments for a function I mean that’s just that was better and a handful of other things so for a while the two languages you could say that c was a pretty close perfect subset of C++ uh I think that’s evolved in both directions and so it’s less true now than it was but for a long time you could take a seek program and just run it through a C++ compiler and it would work there’s a general observation that people write code differently than computers write code and so machine generated code tends to stress in particular the compiler or the language for which you’re generating and and so in the C++ to C example were you know incredibly deeply nested constructs of one sort or another you know parentheses that made lisp look tame um and then very convoluted pointer kinds of computations as well function pointers all kinds of and so it was definitely a stress test and also generating things that had odd sizes and so on that were not expected or at least paths that had maybe not been thoroughly tested in a given compiler I think a lot of people did not think that C+ plus was right in some sense it had various warts blemishes and so on many of those were again direct result of be’s engineering judgment if you want this thing to take off the more culturally compatible it is the more likely it will do that if you make something that’s wildly different people are going to kind of ignore you and so um and so some of the syntactic problems of C++ that are still with us are you know the same syntactic problems that usually can see for quite a while when I was trying to teach C++ to people I would show them the translation that goes from a C+ plus object into C and you know it’s basically just pointers into structures with the compiler kind of keeping the names apart so you don’t have to think about them and and seeing that translation you could see how objectoriented programming could be done at essentially no overhead because it’s just structure pointers and um and funny function name and you can pass function pointers around and so it was all pretty well behaved and I think that understand I mean it helped me understand what was going on in C++ and objectoriented programming and so on I think in modern languages and python a fine example of that there’s an incredible amount of magic going on there and I don’t quite know how it’s done as well as it is I mean I can sort of Imagine but but the mechanisms to make some of those things list comprehensions with lambdas in them and so on I how the heck does that work [Music] I was trying to characterize what is C++ particularly useful for what did I actually build it for and what is its strength today after almost 30 years of evolution and and so and and also where’s the limits to where it is so the way I see it is there’s a core domain for C++ and uh that’s what you would call traditional uh um systems programming but that’s not the right term because it’s just a style of language and a style of programming so I go a little bit further I said what is it that that that requires the kind of services that C++ has what is the sum of all these applications I’ve been dealing with where did it work and where was it essential and I came up with the phrase infrastructure and I I roughly Define it as if it breaks uh somebody gets hurt or somebody gets ruined these are the kind of foundational uh things in our systems that must work for the system for the societ to work the the the the question I’m trying to phrase is what matters in those areas and I’ve come up with some Notions of compact data structures um very strongly typed interfaces for maintaining ability and for minimizing errors um a heavier emphasis on algorithms or uh random code because we we need reliability we need the stuff to be comprehensive ible analyzable we want to make sure that it’s actually correct and so the paper I was writing come from from that kind of of thinking what is the right Style and what are the supports for that style we need for infrastructure software for for for software that must be dependable and we can get real examples um sort of the the keys of some of the modern operating system the the basics of our phone system the brakes in my car um how do we make that dependable how do we uh make sure that the space probes don’t uh get the logical equivalent of the blue screen of death halfway to Mars where we can’t send a a repair man how do we make sure that they actually go into the right orbits and JPL lost a um a probe of Mars because two groups um had communicated nicely they thought but in fact one of them spoke Imperial measures and the other one spoke uh the SI system the MKS system and the result was uh a misn navigation that sent U more than 500 million worth of equipment into the wrong orbit not not a good idea it was the work of 200 good Engineers lifetimes work down the drain uh and that could have been avoided by an ever so slightly Improvement in the interfaces uh between the parts of that program so things like that I’m interested in so there’s a core area where I think the the facilities for C++ the kind of they’re not perfect the kind of things I would like the kind of things I work on are essential and then there’s a uh huge gray area where uh you have choices they can help in my opinion but they’re not essential then you have areas where it uh probably is unsuitable to apply that kind of uh of stringency and technique I mean I I want to essentially get 100% reliability if I’m putting up a small application for my own use or or if somebody is trying to push out a a little cute uh web app they don’t need that kind of reliability and maybe what I’m talking about in terms of programming is not for them but I think the really important thing here is that realize that there are different techniques different languages that apply to different areas and we have to recognize this we can’t have a single language for everybody a single technique of using that language for everybody um we can’t have a single tool chain or single kind of of system um and from there we can go a little bit further we probably don’t need the same kind of training for uh education for for everybody the engineer software develop or whatever that is building infrastructure um say the mechanism that automatically updates the software on uh on a cell phone uh has to have a different education different knowledge different training from the one that makes a little game um because the one can actually destroy um a whole day or um or a whole week for millions of people by a little slip um maybe even somebody gets hurt if the 911 calls don’t get through bad things happen and it’s not just the software that runs on it it’s the update software it’s anything in the chain of of safety critical uh issues that has to be dealt with but somebody doing that has to think differently from somebody who writes a little application uh maybe to make a couple of of of bucks uh uh quickly uh there’s nothing wrong with that but they have to think different as a matter of fact if you apply this very stringent engineering oriented thinking to to little commercial apps you’ll probably be a year late to Market and uh it will be irrelevant on the other hand if you took the attitude of of first to Market is the only thing that happens and apply them to uh the steering wheel of my car uh no that’s not a good idea these people have to think different and the way you get people to think differently is to is to give them different educations we we don’t have an ANC standard programmer and and we shouldn’t have if it was we should have several and I think the field has to in some sense clean its up its act before somebody else comes in and try and cleans it up for us this notion that you can sort of make your own constants and have the seconds after the constants is that is that a feature that you added at some intermediate stage or is that simple sort of operator overloading we were observing that we’re getting a whole zoo of little suffixes out of uh the various fundamental types so the U suffix is for unsigned and L is for long I think and I can’t remember them all anymore and we thought you know you can do anything in C++ but you can’t make your own little Ro and then I had observed separately that there was techniques that were effective except that people would not used them because no notation was too ugly uh the Unix example is one of units example is one of those uh you’ve been able to do everything in the Unix example I showed not quite as elegant but you can do everything showed for the last 10 years libraries have been available uh there was a nice one from firmy Labs back to nice places and nice people again uh but it wasn’t used as much as it should because the users didn’t believe in the notation they they didn’t like it and so we were looking at how can you basically clean up People’s Source Code how can we make code look the way it would look in an ideal language how can we make code look much as it does in the textbooks so the units sample is simply a way of getting your code to look uh the way the equations look in your physics textbook I mean we know how to avoid that Mars climate o a problem everybody had been taught it in physics in high school first make sure your units match then do the detail calculation so why didn’t people do it it was too combersome and it was too ugly when they did it or too costly if they used um runtime techniques so I uh together with with friends we we thought this problem was worth addressing try to figure out what Solutions we had went through several Evolutions I I think the the last finishing touches was done by David um and it’s it’s now standard um this is one of the features that is not shipping widely today but wait a year and that that example will probably run your computer too is are there other kind of examples where you’ve let people um from within a class create their own literals Beyond sort of suffixes when I started out the C++ I provided conr structors which allows you to to construct objects of a certain type from arguments and and that has been very effective and people have used Constructors as um as if they were literals but they weren’t there was a runtime cost so the first thing we did with C++ uh Ox C+ plus 11 was we introduced uh constant Expressions as a more fundamental unit this was work between me and my colleague Gabriel d r and we have con exper functions that can be evaluated at compile time and we have conext for types so that you can use type Rd programming at compile time this is very important in sort of the high performance Computing and in the embedded systems world that was what we did to address that constant expression evaluation is much more General much much easier to use and yes more more pretty uh in C++ 11 at an earlier versions so that just strengthens what the direction we’ve gone before uh so you could write complex one comma uh two to make a complex number in C++ in 1984 um today you can write the same thing and have the complex number uh created at compile sign and therefore say put in ROM I don’t know why you would want a complex number on ROM but you might want a point which is the same thing point of what two now you still have to write point or complex and the other uh thread in uh of thinking in C++ work was to generalize and make safer the initialization and so it happens that if you know the type you need like you have a function returning uh a complex number you can simply write open curly 1 comma 2 and it says oh 1 comma 2 is supposed to make you a complex number and it will make a complex number and return it and if you happen to be a compil time you’ll do that at compile time so things work together you get better notation you get better performance and anything you can do at compile time works even better in a concurrent system because you can’t get a race condition on a constant if it’s been calculated before the program starts you can’t get the threading problems so open curly means find a Constructor for the thing that I’m about to put this in yes it looks at where the destination is and it says is there a two two parameter Constructor or a three parameter Constructor or whatever or if it’s just a struct it’ll take the first element and put in the first element and second it does it for a struct as well oh yeah see I should I haven’t played in C++ in a while that’s a great idea refers to say uniform and uh uniform initialization it’s little little initialize if it can and if there’s any ambiguity of course finds the ambiguity if you’re in a context where the like you’re calling a function and the target could be a point or a complex number it’s a tough luck go or tell me so the the the error checking has actually been improved C++ 11 is slightly better at finding bugs than C++ uh 98 was I mean I come from the the school of philosophy that says that the compiler is your best friend when you generate um Cod when you build programs and uh to make it your best friend you actually have to have more types if everything is an integer well what can the type system help you you there no it can’t if everything is a floating Point number it can’t tell you whether it’s Imperial or or SI units and you get books so you need type brid interfaces and for that you need to be able to build U cheap types basically and flexible types that’s easy to use uh simple and so we worked from complex of 1 comma Z One comma 2 or something like that so curly is is 1 comma 2 and the type is optional only needed when it’s needed and then finally we can now write uh if we wanted to uh 1 + 2 I Define I as the uh unit for the um imaginary parts and you get complex arithmetic without ever saying complex it’s down in the definition of the ey suffix [Music] so we’re going to take a look at some of these objectoriented implementations over over time I’ve already talked about the python inspiration I flip Python and C++ in the early days because at least python we kind of know um C++ is 1980 Java in ’95 JavaScript in ‘ 95 PHP in 200 and then C in 2001 so here’s the example that I uh showed you before uh talked about it before you have a Constructor double underscore andit double underscore with self as the first parameter um self.x the again the key thing is self is by convention self is not a language construct um it just so happens that the first parameter of method calls is to the instance and we almost exclusively use the word self for that that is a very early 1991 implementation of an objectoriented syntax on top of a mostly procedural language now if we take a look at C++ C++ was initially implemented as a pre-processing past and it sort of did sort of one for one textual Transformations and so class was not a keyword in the language public that’s not a keyword in the C language there was syntactic transformation that kind of transformed it into C and then run it through the C compiler and so we say I mean and this is this is pretty elegant and you can absolutely see how python was inspired by C++ so class Point open curly brace uh double X and Y are the attributes and the Constructor by convention is the exact it’s a function that has no type the Constructor is the exact same name as the class so in this case I’ve got point with an uppercase p and then the Constructor parameters um come in now the interesting thing is as you have to declare as double X and Y as the attribute variables and then within the function you can think of the double XY as almost like extern scope means they’re Global across all functions so you have this weird thing where you can’t have AE parameter like you could in Python you can’t have a parameter the same name as an instance variable or you’ll be confused and so you’ll notice I called the XC and YC as my parameter variables so that I know that those are um parameters in the Constructor and so I can copy XC into X and YC into Y and um it also means if you look at the dump code you see like you don’t have to say self.x you don’t you just say X and Y because X and Y are doubles they’re instance y extern variables as it were and the same is true in the the origin function that’s returning the otk of x^2 + y^2 you don’t have to have self or this or anything else so if we take a look at the main program on that first line Point PT open pin 4.0 comma 5.0 we are both allocating uh a point instance and uh calling the Constructor and setting it up then we use the dot syntax pt. dump open PR close close print semicolon uh to dump it out and then we can call pt. origin and then that will return us a uh double and so you’ll see this sort of dot syntax um that that is becomes pretty common in every every language that comes afterwards so let’s take a look at Java now recall that Java was inspired both by C and C++ and really wanted to be like the super language and you see that it looks a lot like like C++ but it does introduce the concept of this so that it Scopes the external variables that are the instance variables you access an instance variable by saying this.x and this.y rather than just X and Y and I I think it’s actually more elegant this way so we say public class point and then double X comma Y which are the instance variables and then the the Constructor is using the C++ Convention of point with no type uh double x and double y are the two parameters this dox equals X and thisy equals y close close curly brace now I I like this better because the this using this does not uh keeps me from having to make weird function parameter variable names I can make them what I want to be and this is the way using this is the way that we contextualize that so if we look at the dump method we see um the use of this uh and and this is not just by convention this is a language element so this is the pointer uh you’ll see you can see from the output um it actually prints out the class that it is and some kind of uh reference like ID like thing and so Java actually if you start printing objects out it tells you what its type and what instance it is it’s not necessarily an address but it probably is related to the address somehow but then we print out this.x and this doy and then if we look at the Double origin method we see it’s this.x time this.x plus this.y * this.y so you see the sort of use of of this throughout then if we look at the main program we see Point PT equals new point 4.0 comma 5.0 this is where we see the use of this new operator where you’re saying look call The Constructor and I like this I I like the sense that you’re you’re calling the Constructor on purpose you’re not calling it implicitly and then you end with PT as the instance of this object and so for me uh this feels pretty good pt. dump is a good example of calling a method within the instance and pt. origin uh is uh similar if we take a look at JavaScript and recall that JavaScript is the weird one JavaScript did not take its inspiration from C++ c++’s syntax was kind of influenced by the fact that it was initially a pre-processor to the language would see and it some would some computer scientists would think that that’s a rather impure way to think about object orientation and so the JavaScript when it was created the idea was is to be more pure in object orientation and so the concept of first class functions there is because it has first class functions there is no class keyword the class keyword was really useful when it was a pre-processor the thing that uh JavaScript does take is the concept of this now the interesting thing is if you look at everything on the screen from function point to the closed curly brace this is the Constructor The Constructor constructs everything it constructs the attribute variables and it actually constructs all the methods as well so if we look at the line this.p party equals function open print Clos print open curly brace we are setting in a sense a attribute variable to source code this is an anonymous function there’s no name to the function so most functions are named but this function has no name that’s a JavaScript thing it’s a first class function thing we are basically not running that function with the two lines of this.x equals this.x plus1 and console.log blah blah blah those lines aren’t running they’re being compiled and then they’re being the code to execute that is being assigned into the attribute variable party so so it doesn’t run it it reads it and stores it in party you can literally later print out this. party and you will see the source code to that function and the same is true for this. dump it’s an assignment statement and then similarly this. origin and you see within those methods you see this.x and this.y which is taken directly from uh job we also see the concept of new in PT equals new. 4.0 5.0 we’re explicit and I like this I like the idea of saying please call the Constructor from the point class and pass these two variables in and then we see the C++ inspired syntax of pt. dump to call a method in the PT instance and pt. origin to call a method in uh instance if we look at PHP now the key to PHP was is PHP is a procedural language uh when it was created in uh in ’94 and it became an objectoriented language in PHP 4 and then five it was late to the party so it could be inspired by everything by JavaScript by Java by by um by C++ by simula by scheme all of those things and so the PHP object orientation is is kind of pretty as a result of that now one of the things that happens in PHP is it’s got some weird language syntax things in that variables have have to start with a dollar sign thank you Pearl for that um and the dot operator is used for concatenation in PHP so we couldn’t use the dot operator to look up instance variable or a method inside of an instance PHP borrowed the C Arrow operator which is minus sign greater than now the interesting thing is is if you go back to pointers the the arrow operator is what you do when you have a pointer to a structure and so in some ways that is a throwback to see in a beautiful way because I think kind of under the covers and as we shall C when we are starting to implement object orientation in C ourselves we’re going to see that pretty much we get pointers to an instance is a pointer to something rather than a thing and so we we see this this Arrow x equals dollar X and the Constructor we see the Constructor is a double underscore construct so the um uh PHP kind of use the single underscore and double underscore as sort of metadata about the meaning of things and double underscore are things you’re not supposed to call they’re supposed to be private and then we have a function dump and you see the concepts of this inside of dump and origin you see this in the main code you see dollar PT equals new 4050 well it’s following the new from java and others and then we call PT Arrow dump dump and then dollar PT Arrow origin it pretty much works like most of the other ones except that you never use dot because dot is concatenation in PHP and I’ll be honest I love dot for concatenation except for the fact that PHP is different than every other language that I use every other language us as Plus for concatenation of strings now C is a 2001 so C was inspired kind of by everything and so you see that c is uh clearly very C++ oriented but with some javess to it so you see the double XY in the class which is the uh two instance variables you also see that not there’s no use of this and so you see that we have to name the parameters differently because X and Y are in effect Global across the entire class and then we have you know void dump there and then we see that it’s just using X and Y no need to use this it’s it’s tough for me to decide which of these two ways I like better um I guess that this is this feels more EXP to me um so I like Java and JavaScript in that respect self and the I like self also if we look at the origin function we see um X starx and plus Yar Y and so we don’t need to use this we again see a very uh Java oriented Point PT equals new point openr 4.0 comma 5.0 point. dump we’re using the dot operator to look at instance variables and methods within the uh within the class and then point. origin so now that we’ve looked at sort of a survey of the different kinds of object-oriented languages that are that are today and we can sort of see how they derived ideas from one another now we’re going to actually try to build an object in a non-object oriented language so we’re going to build like a python object in [Music] C so now what we’re going to do is we’re going to try to build objects in C C doesn’t have obor support so in a sense we’re going to do it by writing functions and using structures and pointers Etc so we’re kind of answering the question about how was Python’s object-oriented layer layered on top of a c structure so we can kind of put ourselves in the position of uh G van rosom as he was building python in 1991 and say how are we going to make this syntax work how are going to um in C which is underneath all of this how can we make this syntax work and so this is just review you know we got class point we got a Constructor takes two parameters self is our instance pointer and we got dump and we got origin and then if we look at the main program we create a new Point call The Constructor we can we can see that point. dump that is the function name dump inside a point but then we’ve also got to pass the instance in or the shortcut syntax and so the pt. origin open print Clos print that is kind of paying more homage to the way C++ would have called Methods and then of course the Dell operator at the end so let’s build ourselves some code in C we are building in effect a point object in C so we’re going to just start with a structure and the structure is going to be point and there’s some instance VAR Ables we’re going to just allocate a double X and A Double Y inside of it but then the methods are kind of weird we are going to take the Dell method the dump method and the origin method and we’re going to Define them as pointers to functions so void open PR star Dell Clos print open print construct point star self Clos print semicolon the void is the return type of this function star Dell means a function named Dell that code is not here but this points to a function somewhere else and then the construct point star self that’s the first parameter right and so construct point star self is the fact we’re going to have one parameter it’s going to be named self and it is a pointer to a structure and we’ve got something similar to in dump um the origin is pretty much the same except it’s got a return value okay and so that now is a structure this is C so the structure is going to allocate one double two doubles which is uh should be eight bytes each and then three pointers which is8 bytes each so we got 8 * 5 that’s going to be 40 bytes it’s a it’s not a dynamic structure it is exactly 40 bytes of allocation because C structures are just memory and so it’s not like you can sort of throw more stuff in there you got to Define it you got to Define what type it is and it’s going to allocate space we are going to use a naming convention for now and we’re going to create the dump function and the dump function is going to take a self parameter and we’re going to name it pointcore dump that’s just a naming convention and we’re going to name the first parameter as it comes into our function self just like python we’re going to print out object point at and then percent P which is the way we print a pointer out so self is a pointer xals percent F yal percent F and then we’re going to print out self and self Arrow X and self Arrow y now remember that kind of looks like uh uh PHP uh because self is a pointer to a structure not a structure itself so we use the arrow operator to both dreference self and then look up the attribute uh the uh attribute variable X so if you look at the output you see it’s object point at big long HEX number for the address and xal 4 y = 5 and then we have the void Point Dell which is very similar construct point star cell so the first parameter to Dell is self and you’re all of the first parameters are always going to be self when we create these functions that we’re going to treat as methods and then we’re going to free that’s all that’s going to do is call free on the pointer where we pre originally allocated it then we’re going to create the origin method and again take a single parameter self and we’re going to return the square root of self x * self X Plus self y * self Y and that’s going to have return value and then we’re going to go and do the Constructor and the Constructor structor is going to return a pointer to a point and it’s called Point new we’re going to sort of follow the new convention and it’s going to take two parameters an X and A Y so the first thing we’ve got to do is we got to allocate the 40 bytes size of star P which is a double a double two doubles and two pointers to functions which I think I’ve got it right is 40 characters and then we’re going to set the we’ll get that address of 40 characters back we’re going to set the x value to be X from The Constructor y-value to Y from The Constructor call and then we’re going to set the dump pointer to Amper Sand Point dump now this is done on purpose where Point dump is defined earlier in the file and then P origin is the same thing point aend point origin so in each object that we’re creating we are going to record the address of three in global functions right they’re named Point underscore but these are just regular old functions in the global function namespace right now you know we don’t we don’t have namespaces we’re in C folks we can’t sort of do that fancy stuff so we just use a naming convention to accomplish it and then when we’re done with the Constructor we do return P so that whatever is calling us gets their instance back so p is the instance but we are in the Constructor allocating and filling the instance up with data and it’s just a struct it’s just 40 bytes of memory with some labels so in the main code we say struct point star PT equals pointcore new and then PR 4.0 comma 5.0 and this looks a lot like oo code except it’s not we’re using a struct a pointer to a structure and we’re calling a global function called Point new we just happen to have named it in a way that looks a lot like object orientation and so now what we can do is we can say PT Arrow dump which means go look up the dump variable inside the point object that’s pointed to by PT and then call it but we still have to pass in PT as that first parameter because that is self that is the instance so all these functions dump Dell origin all need to have as their first parameter self and so PT dump looks up dump but then we still have to put PT in as a parameter and that syntax we’re going to do the same thing for PT Arrow origin open print PT Clos print and then to clean things up and in this case we need to well the F the program is done but you know you need to free up allocated memory so the memory is allocated in the Constructor 40 bytes is allocated in the Constructor and then those same 40 bytes are deallocated with by calling free in the destructor and so we we fall intents of purposes there is other than conceptually there is no objects involved in this there’s strs there’s pointers and there’s functions the fact that you can get a pointer to a function means that we’ve kind of imitated it and again I look at this as how GTO van rossom actually was like facing this and thought to himself how am I going to figure this out how am I going to make it look like this is object orientation so this is this is kind of probably some of the code looked a lot like this in the early days of python and then there was kind of a simple syntactic transformation layer in the in the python sort of parsing to call the things with naming conventions so you can do a lot of object orientation with naming conventions and if you recall C++ started as a language pre-processor and so again you could almost look at this as how did C++ get built right C++ had some oo syntax that then transformed the oo syntax into C code that looks a lot like this which is oh we got some functions the functions have name and conventions and we create a struct and that struct has data in it but it also has pointers to function in it and we’ll call the data the attributes and we’ll call the pointers to the functions the methods and voila we have objectoriented programming so up next we’re going to actually implement the python string class or at least a little bit of the Python string class [Music] so now we’re going to switch from my little point class which is just two doubles to an actual string class so what’s interesting about the python string class is that you can extend it and so we’ve been talking a lot about pointers and arrays and even when you call Malo you can’t just keep extending things whereas in Python thankfully we can just extend things we create a string we can append H to it and we can print it append L world and print it and then assign it to some other string and then print that and get get its length and we never had to allocate or deallocate any memory during this time when you get done looking at the code what we’re going to have to do to allocate and deallocate memory what you should be thinking is wow I’m glad I’m programming in Python I’m glad that GTO van rasum gave me a string class rather than a character array of fixed length an expandable string class rather than a character array of fixed length so we’re going to create in C using our little Convention of naming a string class and so if we look at the code what we’re try going to try to do here is we’re going to basically emulate the python syntax but in C so we’re going to start by making a structure pyer structure we’re going to get a pointer back we’re going to name that X we’re going to call the Constructor pyer new we’re going to dump it we’re going to have a little dump we’re going to append an H to it we’re going to dump it again then we’re going to pend a whole string now H in C is a character and lo world is a multicar string and so we’re appending many characters we’re going to dump that then we’re going to assign it to a completely new string and then we’re going to print it out like Pi give me the string version of this object or the length of it and then we’re going to delete it throw it away so you can see all of the Python operations are sort of mimicked but with naming conventions in C now the one thing you’ll notice here is in this main code we never allocated any memory and we never deallocated any any memory that is within the object now within the object we have a responsibility to properly allocate and deallocate but one of the interesting things here is is I haven’t shown you the code to do any of that and so you don’t know that but that’s cool because we can use this as long as we do a new play with it and then do a Dell we can do stuff with it it underneath pyer it does all of that memory management for us and that’s one of the beautiful things about an object-oriented approach again the syntax on the one side if in C is pretty heavy but and the syntax on the on the other side which is the U the python is pretty light but the idea is is that in Python we never had to worry about o making a string too long or Too Short or having buffer overrun or anything like that so as we dive in we have to realize that part of the job of this pyer object is to handle all memory allocation on our behalf so we as programmers can write much simpler code okay so now we are going to build the pyer class we’re going to create a structure called pyer and in that we’re going to have three things the length of the string we have how much data we’ve got allocated in the string and then Char data is the actual character array and so we have to have a character array inside of it we’re not we’re not going to let the outside code touch this character array directly we’re going to completely manage it inside this object we got draw a little bubble around us and it’s like you can do stuff you can use my object but I’m going to deal with everything for you so don’t mess around with my internal stuff so what we would think of is all of this instruct pyer is sort of private and see we don’t have a good way to force it to be private um but in the concept of object orientation length Alec and data would be something we’d think of it as private in our Constructor we are being asked to create a new python string and we’re going to return a pointer to that structure when it’s done so the first thing we do is we alloc alloc it now int int is usually 32 bits so that’s four uh Alec there’s 48 there’s probably 16 characters in pyer um when we do Malik size of p is 16 that’s the number 16 and so it’s going give me 16 characters now the the key thing is is that that is not allocating the actual string data it’s just allocated eight bytes for a pointer to the string star data is a pointer and that first Malo is only giving us the pointer not the actual data so then we just sort of set it up we say our length of the string is zero there’s nothing in it our allocated length of the underlying data string is 10 and then we immediately call Malo to get 10 characters so now data is a 10 character character array and Alec tells us how much we’ve allocated because it’s our job inside this thing to keep track of that stuff and then just to be good we throw back sl0 uh at the zero position in that allocated character we don’t know what the rest of them are we just know that the first one is zero and then we return the pointer to the structure not the pointer to the data the pointer to the structure and this gets called inside the main as TR struct pyer star x equals pister new and when we’re done we get back this cool little two pieces of data that have been dynamically allocated and it’s all it’s all ready for us to do cool stuff with we got the struct we’ve got the Constructor and then we’ve got the destructor which is pyell and that again passes in s now calling free now if you recall there are two allocated things one is the data which is the character array that we’ve got we’ve got to get rid of that and then we got to get rid of the object itself and so at the end of Dell we have given back all of the data that we’ve alled now one thing important here is the order of these two statements matters a lot so when we free self we’re not supposed to access self anymore after that point I’m I’m sure there could be some data just laying in there that’s not been ruined but you just don’t know and so that’s why we have to free self Arrow Data before we free self just because it’s just wrong to do that in the other order and so we do a piser dump and in that we dump out the length we dump out how much we’ve allocated so far and what the data is in it so far.

    and then pyer Len pyer Len returns an integer and it takes self as a parameter the key to this is it returns self length and you might ask why it is that we don’t just let our are calling code access self length and this again is encapsulation we don’t want to refal the fact that we’re keeping track of length in this variable because we don’t want the calling code to be messing with it remember that length data and Alec are kind of private and so instead of saying just go look at self length no I would like you to call my function and I will give you the thing you want so you just call the Lend function and pass in the instance and that allows me to change the name of length it allows me to interpret length differently allows me to do all kinds of things but at least the object writer is in control of the contract with the outside world so by hiding all the data and giving methods to a we call these accessors to access this data is a good idea now the underscore stir if you think of python it’s like you can say stir open print close print anything inside the parentheses and it converts it to a string well it just so happens that we’re going to maintain self. dat as a valid string So when you say take this string object and convert it to a string ready for printing I’m just going to return the pointer to the string we’ve been maintaining all along internally we have some other methods that we’ve got to add we’ve got to add an append to add a single character you can see that it’s got two parameters it’s got self and a single character CH you got a pend s which is a got two parameters the self the instance and a whole character string which is a pointer to a character then we have a sign which is uh got two parameters one is self and one is a pointer to a character string now I’m not going to give you these lines of code I’m going to give you an assignment to write these lines of code I’m going to show you how they’re supposed to work but I’m not going to give you the code so I’m telling you that pyer append is about 10 lines of code pyer append s is just one line of code it’s a for Loop pyer a sign is about three lines of code so pyer append s calls pyer append and pyer assign calls pyer append s and so we do a lot of reuse here so let’s take a look at how these are going to be used in our main program we say struck pyer starx equals pyer new which is give me a new string object and then we’re going to append A Single Character H to it and then we’re going to append s a multi character string and we’re going to dump it each time and then we’re going to overwrite our object with a completely new string and so the key thing is you have got to build this this is what you’re going to build okay but I’m talk a little bit about how to do it so let’s walk through what you might need to do in pster append now recall that when we set this thing up we created length we allocated 10 characters and a 10 character array and had data point to that 10 character array and we remembered that we had 10 characters so the first thing that a pen does is it checks if the the the length is greater than what we’ve allocated meaning that you know if we’re going to put in character Zero like the letter H we can just depend it and then update length we still have 10 characters allocated and we’ve used one of them um and so we can just start appending into data right and we have to put a a zero at the after it so that the data is a valid string all the time and so if you kind of imagine that we create the new object we have a new object that has a length of zero and it has 10 character array and it has a a string and character in the first character we’re good we have 10 allocated and we know we have 10 allocated then if we add an H character A Single Character H all we have to do is add H into that array data Subzero in that case and then update length to be one and then say data sub one is back sl0 so that we terminate it correctly so after that first line the data is H it’s a valid H string so we’ve appended a single character we’ve updated the length and then we have terminated the string and then we go to the next line in C where we just in this case we’re going to append the letter e and we look at the length of the of it because it tells us where to put it the length is one so we put it in sub one and add back sl0 and then we check to make sure that we have space for it because we’ve got 10 but we’ve only used two we’ve really used three because h e end of character string so we really use three but the length of the string we’ve got is three so as long as no one asks us to append more than 10 characters aend is a pretty simple operation you just add to the the character array that we’ve already got allocated okay but of course it gets interesting you can pen h e l l o space w r and at that point we have uh nine characters in our length of the string that’s in data is nine we’ve got it properly terminated so we have used the 10th character to terminate the string so we’re really good things are great but now the problem is we have got to append the L after the R so we have to append the L after the R so what we have to do is we have to call a function we called Malo in the Constructor and now in a pen we’re going to have to call Alec to say ooh I asked for 10 characters but now I want to extend that from 10 to 20 characters and realic does that realic says here’s a pointer and it knows how many characters it is please reallocate this pointer take this date in this pointer and give me make it 20 long instead of 10 long it might have to copy it so let’s take a look at what realic does so we can extend the size of a dynamically allocated area by calling realic with the current pointer to the area and the new size so in the Constructor you see that we Malik 10 and then we’re in the pend and we say if the length is greater than self alic minus 2 we don’t have space for two characters left then we going to have to reall so what we’re going to do is we’re going to change this from 10 to 20 characters so we’re going to take self aloc which is 10 and add 10 to it so now self aloc is 20 and then we’re going to set self data to a to realic the old self data 20 characters so this this realic takes a pointer and a new size and gives us back a new pointer now it actually may have to move it in memory so you can’t assume that self data is the same before and after but you can assume that if it had to move the data to find you a 20 character slot in its free space that it will have copied all the first 10 characters will be copied and then you’ll get a new parameter and that’s why you see self data on both sides both in the call to realic and as the assignment statement so we go back here and we can see that oh yeah now we have 20 and it’s got plenty of space for the L and the D and the back sl0 so now we’re going to show the code that’s going to basically test our class we’re going to create a new we’re going to dump it we’re going to append A Single Character H we’re going to dump it we’re going to append a string one way to make this simple is just have append s call append repeatedly for nine characters because appending nine character string is the same as appending nine characters not appending one character time nine times then a sign assigning a completely new string which means that you got to you got to take length back and you got to set some things and you got to check the size and do a whole bunch of stuff and then we’re going to ask the pcore stir to give us back a printable string and then we’re going to ask the p stercore l Len to tell us how long this thing is and so you get to write some code not too much code probably 15 lines of code um but it is code that you will need to think deeply about and you’re going to need to understand the structures you’re going to need to understand the pointers etc etc etc up next we are going to make a list [Music] class so the next class that we’re going to build in C is an emulation of what you would do if you were building the python list class in C so let’s just start start by taking a look at sort of a python and uh C version of this thing in Python we created a new list then we append a whole string then we print it then we then we have another string then we print it we have another string we print that we ask how long is the list we do an index which is a positional lookup saying where is the string Brian then we say if Bob’s in the list where’s it or we say we can’t find Bob so we have to do an if then else and use in because otherwise we’d have to use a TR catch because if you do an index to a with a string that’s not there in Python it’s going to blow up so we can either do an if then else or we can do a TR catch it’s sort of six and one half a dozen and the other but in C we’re going to effectively call py list new to create a new list we’re going to call py list append and again remember all the time we’re calling these things that are like methods we’re always putting the instance as the first parameter in this case LST is the instance so we’re going to append hello work we’re going to print it we’re going to append catchphrase we’re going to print it we’re going to append Brian we’re going to print it then we’re going to look at the list length of the list then we’re going to look up Brian and we’re going to look up Bob and in this case I made it so that the index just gives us back negative one to say I didn’t find Bob so that I didn’t have to try catch because it’s like a little bit more SE like and then we do a py listor Dell to clear up the memory we are about to switch from being the consumer of the list object to the the builder of the list object and our job as the Builder of list object is to dynamically allocate all the data that we need to make this thing work and so we don’t get to see the details of that all we know is there these functions that we can call and this structure that we can use and if we call the functions right somebody else is going to deal with all of the dynamic memory that makes this work and you’ve done linked lists in previous assignments so link list should not be completely foreign to you but now we’re taking an object-oriented approach to implementing a link list and hiding the implementation detail within the object which is an important part of objectoriented programming so here’s like some basic stuff and some of this should start looking pretty familiar we got a l node which is short for list node we got a pointer to a character string um and then we have a pointer to the next one so we call that one next by convention next is not a keyword next is just a really common convention when we’re making link lists and then we and that’s just the node so link list is a list of nodes but then there’s kind of the list itself and that’s what the struct py list is and it’s got a pointer to the head and a pointer to the tail and just a counter and so if we create the new list P list new we are going to allocate the the py list object which is a pointer which is 8 2.6 and four should be 20 bytes and then we’re going to that’s what star p is going to be then we’re going to set the head to null and the tail to null to indicate that we have an empty list we’re just we’re not creating a list with things in it and set the count to zero and we’re done so it’s it’s pretty straightforward in some ways it is this list is easier in some ways than the the python uh string was now the destructor is a little trickier because we actually have to go through the list and we have to free up all of the text areas not just the um not just the the struct L nodes but we’ve also got the charar text that we’ve got to get rid of so what we’ll see here is we’re going to in the pyus Dell we’re going to carefully start at the head and then Loop through and remember that I free Cur has got to be the last thing we do with Cur once we say free CER for the that’s the L nodes we got to do the free CER we’re not supposed to touch CER ever again so you’ll see I say free Cur text which is the string that’s pointed to in the current node then I look up next and I I’m looking up next before I call free C because I’m not supposed to use C afterwards so I say next equals KR next give me the next pointer before I wipe out cerr I wipe out cerr and then I say C equals next and so I just I I created that next variable inside that function just to kind of get past the free Cur so I didn’t have to say C equals KR next after I called free Cur and then Loop goes through and it slowly but surely cleans up all of the L noes might be zero there might be no hell nodes and head head will be null at that point and W won’t even run but you got to free the text and you got to know where the next pointer is then you free the the current one and then you advance to the next pointer and jump up to the while loop and then do the rest and then and only then afterwards do you free the self which is the actual py list object these structures tend to point to structures that tend to point to structures and you got to when you’re ding them when you’re freeing them you got to free them from the outside the think of it as a tree you got the leaves and the branches and then the trunk and then The Roots You Got to you got to free them from the leaves inwards and so just be real careful about this that’s part of the reason that I give you so much sample code where I do the Dell for you because I just don’t want it to mess up if we take a look at the step of freeing the dynamic memory you’re going to see that it’s going to if we have a head and we have a tail here um the first thing it’s going to do is it’s going to the L node that is the head and then it’s going to the first thing that’s actually going to be freed is the text and then it’s going to free the L node then it’s going to advance to the next L node which has is it’s going to free the is then it’s going to free the fourth thing which is the second L node and then it’s going to advance to the third L node and then it’s going to free the fun which is the fifth thing freed and then it’s going to free the last L node and it’ll notice that next is is is null and so we’re done with there was a three node list and then the last thing we do is we free the the py list itself so that the order in which we free these things is really really important and you think of it as the leaves outwards right the C is fun those are three strings that have been allocated those have to be freed first before we free the L node that happens to point to them so every little bit of order matters the one thing I want you to do in this one is I want you to make the list output instead of it being dump I you’ll notice I called this one print not dump and I want it to look exactly like Python’s list output which means it’s got to open Square brace it’s got the strings in double qu single quotes comma space in between them Etc and don’t try to use string concatenation to do this because you’re in C you’re not in Python you don’t even know how long these strings are going to be what you need to do is you need to cleverly write a loop that uses print out so think of this as you can only use print F don’t use a string because you don’t have strings just use print F and remember that print F doesn’t add a new line unless you actually put the new line in so it’s pretty easy to do print F Open Bracket then print F single quote print F the string print F single quote print F comma etc etc so you got to it’s about 10 lines of code and and you know enjoy yourself I think you’ll do a pretty good job of this and you’ll be impressed when you’re all done and then you think oh I’m walking down the path of GTO van rosom because GTO van rosom had to write exactly these lines of code now he actually was probably using a string class which I just told you not to use because he didn’t want to uh he didn’t want to call Print F directly so he wanted to make it so you can convert to a string but whatever you’re walking theth path that GTO van rossom walked while he was building the list object that’s what I want you to do here’s some more methods some are easier some are hard um Len is really easy uh index is not too bad it’s a for Loop that you Loop through you look for a value and then you’re just return negative 1 if you don’t find it you just return the position you got to kind of add to go 0 1 2 3 4 5 6 7even and return the seven if you find it aend is a bit tricky but hey that was chapter six you should know how to do that you’ve actually by this point in chapter 6 you would have written one of these things so go consult your own code at that point and so here is the ultimate test case of our list class you were just going to mimic that python code we’re going to append a hello world string append a catchphrase string append a Brian string print them all the time we’re going to print the length and we’re going to do a index lookup for Brian and Bob and then we’re going to delete it we always delete it because we’re not in Python so we’re carefully deleting it and other than the negative one for Bob being 404 in the python cuz that was kind of a joke um it is identical right we’re really starting to build what looks like a python list so up next it’s pretty much you guessed it we did a string we did a list yep it’s a dictionary we’re going to actually build a dictionary in our next bit [Music] so now we’re going to build a python dictionary class and here is the code that we would put in our dictionary I I kept the strings really short because of of of all the uh I want the examples to be pretty short and easy um so what do we do we create a dictionary and we use the you know bracket square bracket operator to create a key it’s a key value pair the key Z match it goes to catchphrase we print it out the dictionary Z goes to W which is replacing catchphrase with W because if you overwrite the same key you have to put the same Val the the you have to replace the value and then we’re going to throw three more things y maps to b c maps to Capital C and A maps to D that’s just so that it’s not sorted too badly and then I print it out and then I um print the length of it I do a get and with a default value of 404 so sometimes I get the for z i get the W and then for X is not there so I get the 404 again kind of an homage to the HTTP error code 404 not found and then I use it write a little for Loop for key indict uh Etc I can print the key value pairs out we’ll do the same thing in C and again this is almost a perfect transformation literally we first create the dictionary with calling a new then we uh put the word catchphrase in the Z key then we print it then we put a w in the Z key which should overwrite it we print that and then we set the y key to be B the C to be Capital C the a to be capital D and then we print that and then we ask how long is it and then we do a get to look up under the Z key and the X key one of which is there one of which is not there and I get a null back in that situation I guess I was a little SE like in my get code and then I dump it out and I do a struct d Noe Loop go from the head until it’s null and I print out the key and the value from each of those uh dictionary nodes and then I delete it at the end so this is the code now again notice we don’t know much about looking things up we don’t know how the length is maintained we don’t know how the static and dynamic allocation is going to happen we now have a contract with a bunch of Library code that is going to implement ment this dictionary object for us and do all of them memory manipulation on our behalf again we start with the basic stuff the big thing we’re going to do is we’re going to not just have a value it looks a lot like a link list we’re going to have a key value pair the pi dict has a head and a tail and a count just like the py list and if you look at the the the Constructor it’s pretty much like the Constructor for the list we allocate the uh dict Pi dict um uh structure and we set the head and tail to null to indicate empty and we set the count to zero and we’re done and the same with the dell the Dell is very much like the link list Dell we are have to because we’ve allocated the key the key is also going to be a dynamically allocated pointer to a character array so we got a free curve key along with curve value but then everything else is the same we we we pre preload the next value then we free Cur then we move to the next value and then when it’s all said and done we free self which is the pi dict value when it’s all said and done we can call the new and then we can uh set a key like catch froze and the key thing there is the key and value are both Malik uh bits of memory just like you know before we had the text which was a Mal bit of memory and copied and we had to free it but now we just have two things and so the key and the value are two things that are that are going to be Mal and then copied into the Malik area so some methods for you to build the lens should be pretty easy similarly that we have a print that’s going to be pretty and I want you to match exactly the output of the Python and so it turns out that we can make a method called find which returns a d node rather than get returns a string D and P find returns a d Noe and then we can use find both in get and in put now we use it pretty much in get to go find it and then return um the the value cuz we have the key we look up find it by key and then return the value so that’s pretty pretty easy to do the get once you have find so the find is find is a for Loop where you’re going to go and you’re going to find it and if you find it you’re going to send it back okay and if you’re not you’re going to send a null back now you better check if it’s null right including in the get you got to you got to check if it’s null um but then in the put what you do is you look up the old one with pictor find and if you get one if old is not equal to null then you’re updating the key updating the value for the key and if not you’re adding it now the thing about the else Clause here is it looks a lot like a link list because really if you if you look at this thing it is a linked list it’s just there’s two values in each one we’re not doing anything magical now more Advanced Dictionary implementations might use hashmaps or binary trees or other things like that like that were in chapter six that we didn’t talk too much about but for now we’re just going to make our dictionary be a linked list but instead of just a value it’s a key and a value so we can look it up by key and so we’re not doing too much tricky stuff to make our dictionary really by just adding a bit to a list so let’s just take a look at how this is going to work in sort of the real world as it runs so remember we have kind of the dictionary itself which is a head and a tail and a count and then we have the dictionary nodes which is our key and value and the next one now the key and the value are not the actual strings they’re just pointers to Strings which means we’re going to have to use Malik to when we get a key and we get a value we’re going to have to Malik and copy both of those things um so if we start and we see Pi diore new we’re going to get a a dictionary with head and tail that point to null and then if we add catchphrase well we’ve we we allocate the Z we allocate and copy the key Z and we allocate and copy the value and put those in key and then next is null and head and tail point to this thing so we’ve allocated three things we’ve allocated a a d node and we’ve allocated a character two character arrays using Malik okay so then let’s say we’re going to run the next line of code which is setting the key Z to W now when you’re in the put code you go and you call F mind and you see that there is a thing there is already a z in there so what you’ve got to do is you’ve got to replace catchphrase so you actually before you go and make a new value you have and copy W into it you want to free the old stuff and so you tend to free the catch free the value that was in there before and then you Malo and copy in for the new value so if you’re done at the end of this you will have catchphrase somewhere in Magic free space we don’t know where how C does magic free space but it does do it so at the end of the second put you still have one entry but the value has been changed from pointing at catchphrase to pointing at w then we add y equals B well you do a find and there is no y key so now it’s more like a link list you create a new D Noe and you pend it to the end just like in a link list and then you save the key and Point Key at it and then you save the value into new Malo space and then point value at that and then we go to the next one where we point C that we we don’t find c in there so we create a new uh uh D node and then we we do a Malik of the the key and a Malik of the value and we point to those and then copy the data into those two Malik areas and then Point Key and value at those Malik areas and you can kind of see that this is really at this point it’s unless we find the key uh in there already it’s just link list that happens to have two character arrays that are dynamically allocated and copied one for key one for Value that was a bunch of object orientation it was kind of a walk down the path that gido van rosom took probably in the first few weeks of him building the string class list class and dictionary class chances are good he built something very very similar and then he’s like okay now I got to make this better but uh you know if I was just writing this thing he’d probably just type this out it’s kind of pretty for computer scientists who’ve been doing algorithms data structures their whole lives it’s like well why don’t I just make a class that does this you know now that I now that I’ve got sort of an object-oriented Universe let me hide all of the dynamic memory and that’s really what we’re doing we’re hiding the dynamic memory and the implementation details and all the for loops and while Loops they’re being hidden they’re important and if you were to look at the source code to stir list and dict in Python you’d see they’re allocating and reallocating they’re doing it a lot more clever than what we did um you don’t want to call realc too many times but for for now it works we’re doing small stuff um there is an infinite number there’s an infinite array of optimizations to make all of this way faster and more impressive um but that’s that’s really for another time so we’ve kind of got the idea of the the Baby Steps From A procedural language with pointers structures and dynamic memory allocation how you would take the step using those underlying things in a procedural language to build basic objects and support those objects perhaps as you’re building a new language like [Music] python hello and welcome to our continuing series of lectures on improving our implementation of a python object so what we’ve been doing is we have been building a series of of implementations of approximate implementations of some of the things that we find in Python like the python dictionary and so we the last thing we worked on with this python dictionary class and in the previous implementation was just a link list with a key now we’re going to eventually have to build all kinds of different implementations and so the part of what we’re doing is we’re working toward abstraction where we’re separating what the object is that we’re interacting with from how we build it underneath and so we’re going to do things like move our methods into the structure instead of just using prefix style naming conventions and just reduce the need to look inside the class or inside the structure that is holding our class for code that’s in our calling code so we don’t want to have to look at the class uh the class values inside the class so this is just continuing along understanding object or principles the three implement the three principles of object orientations are encapsulation abstraction inheritance and polymorphism and so for now we’re bundling more things together that’s encapsulation and we’re working on abstraction and that is thinking about separately how we are going to use this object from how we’re going to build the object we’re going to reveal less and less of our implementation details to the caller okay and so for a while we just said well we’ll just take the class and add like an underscore and name it etc etc and it seems absolutely simple enough and in some ways you see that C++ does exactly that when it’s um compiling C++ to C code um but it just it seems like it’s simple enough and it seems like you would keep it straight but it turns out to be a bad idea in practice so python strings which I can write python code and not have to look up documentation are real objects that follow the principle of encapsulation everything that you touch is inside of the object like uppercase searching for something PHP strings are kind of more archaic in that PHP p is more of a SE likee way of thinking about things and they’re a type and then there’s a bunch of libraries that know how to use this type and so I’m going to show you some ickiness in PHP but I do love phps so don’t I’m not just criticizing PHP PHP has a lot going for it but the in the language and the library there are some annoyances so let’s take a look at a little bit of python and some equivalent PHP and so you sort of see this this notion that name of convention seems tempting but it’s not necessarily a great idea so in Python we say x equals a string we call x. find and has the first parameter the thing we’re looking for and then we have yals x. replace old new and so the the first parameter is the old string and the second parameter is the new string and then we say how long this thing is and so everything’s very consistent but if we look at PHP it’s almost identical except it’s calling libraries right so dollar X a string with old in it and then we’re going to use Stir pose that is the position in a string and the first parameter is the what they call the Hy stack and then the second parameter is with which we call the needle but then we look at the replacement which is equivalent of x. replace and Python and it’s not stir replace it’s stir underscore replace so do we use underscores or we not use underscores and then the the thing that just drives me crazy is what is the what would you expect the first second and third parameter of PHP stirl well if I was writing it it would be the The Source string the old the old search string and the new thing to replace it with but that’s not what it is the stir replace says old string new string and then the string we’re doing the searching in you you can go look this up but PHP talks about how there were generations of things like stirp I think is one of the earlier ones um sterland basically is that’s one of the new that’s one of the older ones and so it’s consistent with stir pose but not consistent with stir replace and so the naming conventions is just less than ideal and and you can just see from a programmer understanding is just really simple that if we look at the python says yals x. replace old new I can remember that calling sequence and I can never remember a stir uncore replace in PHP so the thing we’re going to do here is we’re going to put the methods in the structure and so we see some of our C code before and after and so we create a pi dict and then you’ll notice that just like what PHP did I called those pictor put PCT underscore Len and pict underscore get I was consistent because I always used underscores and pict is the name of the structure pictor Dell and so I was pretty consistent with that but now what we’re going to do in the name of encapsulation is we are going to take all those methods make them be part of the structure we’re going to find that they’re just pointers to the methods but we are going to have Global methods we’re just not going to access them through their Global names so we’re going to create a new new pict saying pictor new but then we’re going to call to put something in we’re going to call DCT Arrow put and remember we have to make this first parameter like the self parameter C that’s just always going to be that first parameter because we’re sort of doing it python style and then you kind of know that Z is the key and catchphrase is the value and so that’s the that’s the calling sequence and again that DCT comma is just because we’re not an objectoriented language and so we put self in there again homage back to exactly the way that python did it and why they did it the way they did it because they were creating an object-oriented framework on top of a non-ob oriented environment just like we are and then you look at DCT arol Len and of course putting DCT in is the first parameter is redundant but necessary and we can do a DCT get and we in effect other than the first parameter which is DCT we are putting the key in and away it goes and then we could call the Dell method but now you’ll notice that every single method that is associated with a pi dict is in the pi dick structure so let’s talk about how we’re going to do do that and why and so this all kind of falls under um leaky abstractions meaning that when we’re in the main calling code and we sneak in and Peak at the data attributes inside the class we call this leaking and later we’ll talk about iterators and why we iterators seem inconvenient and clunky but what they their whole job really is is to hide uh implementation details to make a cleaner abstraction when the calling code depends on this the internal implementation names and coaches that’s what it is to be leaky so we need to define a contract between the class and its calling code from above that we won’t change and we’re going to call this contract on interface AB another kind of word for that is abstraction and so if we look at all the code in our earlier implementation the whole thing is leaky right um especially if you look at that for Loop where it says for struct D node C equals DCT arrowead c not equal null C equals c next print c key and C value and and so what happens is that should trigger a little like that says don’t look inside these things and this is we later we’ll talk about uh iterators how far we go and how we actually what we looking this code that we’re looking at right here I think it’s pretty but it kind of violates the abstraction boundary because we’re looking too deeply into what the fact that this is even a link list we don’t know there’s a link list it may may not be a link list it may be some other kind of a structure it may be a tree or whatever and we will later get to the point where we will make these things different implementations not just a link list and so that’s that’s this idea that like you you should be like oh no I’m there’s this little wall but now I’m looking inside and then when you’re looking inside that’s when you kind of violating the abstraction boundary or we call it a leaky abstraction what this leads to is the notion of not all object attributes are the same and so we have when we’re going to build an object we are going to decide what parts of these things are the contract and what parts are leave us alone we’re going to hide this stuff and so the the concepts in object rning programming are that things that the calling code is allowed to see whether they be data or methods are called public things that are like reserved for class use only are private and then when we start talking about inheritance which we won’t talk about too much there’s this middle class called protected and that is stuff that classes and derived classes can look at but um but not the calling code so protected is sort of more like private from the point of view of the calling code so if you look at the abstraction boundary that we have here we see that the place where the abstraction boundary is sort of failing is that if that is that head and tail we want to make an abstraction boundary and um and say that look that the motion of head and the tail that’s going to be all ours and that’s going to be all inside um and that’s inside the abstraction boundary and you’re not supposed to mess with it so if we look at how we do this in Java there is a keyword called private and so Java we’re making a point class and we’re making it two double values that we’re saying X and Y are private which means you can’t access it outside of this class the Constructor is public and the dump is public and so you see that the that that just means that you can’t access X and Y outside of the class but you can access dump and the Constructor in C++ you see a private and a public and so private says this double X and Y are things that can only be used inside the class and public is the Constructor can be used outside the class and the dump can be used outside the class and this is just syntax that they put in now interestingly access control and python is a little sort of wonkier because python doesn’t really put things like public and private so what python is doing and you’ve seen these across all the python you’ve done where you see these double underscores dunders as it were like the Constructor you’re not supposed to call the under underscore underscore and nit underscore underscore that’s just when you create an object that’s what happens um and so that in the init is an internal method it’s a private method underscore uncore X andore uncore Y are totally valid variable names except we’re marking to the outside world hey you’re not supposed to act access these and then deaf dump the fact that we didn’t put double underscore in front of it means that it’s public and so double underscore are is the signal inside of python to do access control and we look at some of the stuff that C++ really does this was borrowed in many ways from how C++ does things internally so up next we’re going to talk about this map and the abstraction and the kinds of things that we do uh under the covers of the implementation details of the abstraction [Music] so now we’re going to dive into the notion of abstractions we’re going to take an interface and kind of compare it across a number of different languages we’re going to call this abstraction a map a map is a common term that we use kind of abstractly to describe key value Collections and each different language tends to have on a different name for that C++ they actually call it a map python calls it a dictionary Java also calls it a map but with an uppercase and in PHP we call it arrays and in JavaScript are they’re actually objects and then we’re going to look at the iterator pattern as an abstraction for looping across multiple implementations so let’s take a look at some samp example um python code that’s playing with a dictionary class so we created dictionary at the very beginning then we fill it up with some uh key value Pairs and so you’ll notice that like d subz equals 8 and D subz equals 1 that’s got to be a replacement so so there’s no eight in there after that second uh replacement we then print it then we do a get of Z to see if it’s there and then we do a get of X and it’s not there so we see x equals 42 when it executes then we say give me an iterator of the items in this dictionary and so what that basically is going to do is an is the iterator itself is not a list in earlier version like python 2 when you ask for the items you tended to get a fully filled out list but that’s a waste of memory so the iterator is simply a data structure that is keeping track of where in the list we are and then we call it next over and over and over to advance through the iterator so we don’t have to make complete copy of all the data we just have a little pointer that advances through so items is a relatively small data structure I mean it doesn’t include all the data in the dictionary it just is itself a pointer to something it’s all internal remember abstraction is like hey I can give you the next thing internally there’s pointers and all kinds of crazy things inside these iterators which we shall soon see so if you print out items you will see that it’s like an item iter Ator for dictionaries that’s what that class dict item iterator is telling us but then we can call the next function which is built into Python and say hey iterator do your job and hand me back the next thing or if we’ve let reach the end of of the dictionary false now come in any order these have any ordered dictionaries of course um but we get back the entry or we get back false so we say while entry then we print the entry and then we say hey give me the next one and then Loop up to the top and when it becomes false we’re all done and so what you see because this is an order dictionary as you see Z1 X9 B3 A4 and then it finishes so this we’ve not we don’t know about next Arrow next we don’t know even the in this case we’re just getting a tuple back so we do know that but if we take a look at the same kind of concept in PHP uh we make an array and we fill it up Z gets to be eight Z gets to be one and that’s an overwrite and then we put three more things in and we can print them out and we see that it’s kind of an ordered dictionary as it were X zy ba and then we do a get and we’re using the null coals operator which is the double question mark so we say give me a subz and if that doesn’t exist then give me back 42 so it’s kind of like a get but that’s a that’s a PHP 7 and later so we look up uh X and we don’t get it so we see x equal 42 and then we run through an iterator and again there again there’s structures inside of arrays but we know nothing about how PHP implemented the arrays we just know that if we say for each a as key is assigned value we can print out K and V and so this is a very abstract way of saying I want to go through all of them I want the keys and values give those back to me but I don’t care how you do it whether you make extra copies of the data Etc so that’s another iterator pattern now in C the data structure we created is a map and if you read this you’ll see that talks about how the implementations work etc etc etc but this C++ equivalent of a dictionary is in effect a map and so this is some C++ code the first thing we see is we’re going to create a map and in this l than greater than syntax you’re seeing that the map is mapping a string to an integer so the key in this case is a string and the value is an integer the previous two languages didn’t care so much about types and so that’s that’s why they but now we’re in C++ which cares greatly about types and so now we say MP subz equals 8 then MP subz equals 1 which again is a replace operator then y b and a are set to 2 three and for respectively and um and then we do like a get operation and this one is a little funky and see why they didn’t give us a get operation I do not know but what this is using is a Turner operation and saying MP count how many Z keys are inside this thing and if it’s greater than zero we print out MP subz and if it’s if it’s not greater than zero or zero then we print out 42 which functions like a python get on a dictionary so this syntax is funky you can go like Google it there’s just no that it’s like there’s two ways you can do it and neither of them makes me particularly happy because I think that for a map-like object a get a get with a default is uh pretty valuable um the notion of running through and Counting means you found it or didn’t find it and if you found it why don’t you give it back to me but they just don’t have a get but now we see an iteration so it says for auto auto is a type but it’s an automatic type and it knows um that this um MP is a map string int and so it creates this current pointer which is a pointer to not exactly a m map string it’s a map entry but we don’t have to care about that there’s a there’s actually a type cerr the variable cerr has a type whatever the MP begin is going to give us back as a type and it knows that based on map string int and it makes Cur the right type so this is like whatever type you want but it is not any type it’s a very precise type and that’s a that’s a sort of a Hallmark of C++ is all the types are very very precise so it’s a for Loop you see the three semicolons the initial initialization Clause Auto Cur equals MP begin says Hey we’ve got our iterator get me started begin go to the beginning of it and give me the first one and as long as is not equal to MPN the the the the N there are no more that’s kind of like their null um and then plus plus Cur so we’re incrementing Cur and then there’s a key and a value and they don’t call them key and value they call them first and second that’s the thing coming back from MP begin has a attribute first and attribute second and we call the ccore St to convert that to a C string so I can use print F so I don’t have to use C out just because I don’t know why I didn’t want to see out in this one but you see an abstraction where the first and the second are known but because this is a key in a value that’s not such a big deal okay and so that’s doing the same thing in C++ in Java they have a interface you see the word interface here an interface that named map less than greater than K comma V and and just like in C++ this is saying a map is a key and a value but what we’re putting in here is the type of the key and the type of the value so we’re going to make a map that has a string key and an integer value you might say why didn’t I do string string and that’s because it makes it just easier when I’m writing so much C code um it it also will be fun when we actually count things if you remember from a long time ago we did counting but map is the class and string integer there’s that um this is kind of polymorphism where it can be a map that Maps strings to integer or integers to Strings or strings to Strings or who knows what to who knows what else meaning this map is exceedingly flexible and it doesn’t care what kind of type it’s it’s using as long as the type meets some basic criteria so here’s a bit of java code that does the same thing that we’ve been doing and so we see that we’re going to make this variable map lowercase is of type map map of strings to integers and we’re going to create a new tree map of strings to integers and the new creates a new object now the difference between a map and a tree map is a map is an interface and a tree map is an implementation the tree map says we’re going to build this key value store but we’re going to store our data in a tree and that says to a computer scientist that it’s going to have a certain performance and memory footprint trees are a great way to store key value data um but they they’re they take a little bit more memory than a link list as we will later see um um and so we’re we’re choosing an implementation the other thing where it says tree map that you might use is what’s called a hashmap which is a simpler map implementation but doesn’t keep things in order so you can choose the map doesn’t change but you can say I’d like this to be a tree map or a hashmap they’re both key value stores one is an ordered key value store and a hashmap is a unordered key value store and they both have different performance behaviors and internal implementation details but it doesn’t matter because they’re both maps and this code that we write we could literally change tree map to hashmap and the code would work exactly the same but the order of the key value payers might be a little bit different now you’ll notice that when we’re putting stuff in We call we call a method map. put so everything we’ve seen so far says like map Open Bracket quot Z quote close bracket equals 8 Java chose not to do what’s called operator overloading and so it really does everything in a method so the kind of things that you think are going to be done with an assignment statement or uh some other syntax tend to be done it’s like okay we’re going to do everything with methods and parameters Now map is the object instance that’s being worked on and Z where that’s basically saying map subz equals 8 and we’ll do an aut of Z1 which is going to overwrite you’ll see I’m doing the same thing in each one of these things and then put in YB and a with two three and four respectively I can print it out and if you look at the print out it looks a lot like what it looks like in Python there’s this thing called get or default map. getet or default which is you know if the key Z is in there give it to the value or just give me 42 as a default and in the first case z is there and the second case X is not there so you see X is 42 that’s not a bad name for it it’s a little more verose than get it’s pry pretty much the same as what we do in Python and then we have an iterator and now you see in this for Loop you see kind of the notion of the fact that the iteration variable is has a type so we don’t have this Auto later versions of java may have an auto but now I’m explicitly showing you it’s not a map string integer it’s a map. entry which is an entry inside of a map it’s an abstract interface to the entry inside of a map each entry that’s got to match the string integer that’s in the map and so there’s a map string integer which is the whole map and then there’s a map entry which is one of the entries but this map entry is also kind of an iterator right so we’re going to iterate and move forward so it’s not just the key and the value it’s really the key and the value and the position but we don’t see the position all we know is we keep we use this four syntax which is kind of like a four in in Python and we call map. entry set which is I want a set of all the entries and that map entry set does not construct a giant in memory list and then go through it that actually creates a single map entry with the key in the value of the first one and then you hit it again and it gives you the second one you hit again it gives the third one and pretty soon it gives you null which means that the loop is going to stop and the entry itself does have a key and a value now key and value are known in the map entry interface so you say entry. getet key and entry. getet value now that they’re using um methods to give us back the key and the value versus in the previous things you saw attributes being used in the iterators and that’s because Java is obsessed with preferring to use access accessor methods like Getters and Setters versus just grabbing attributes and the key thing is is they can add just a little bit of business logic if they want rather than having to do something and then have the key and the value already completely computed sitting in an attribute for you to use entry get key sometimes it just grab something that’s already got computed or it might actually go do something or do some work and so by putting these things in what they what Java calls Getters and Setters in this case we’re not seeing a we’re not seeing a Setter so much um but making it so that instead of it being entry. key it’s entry. getet key open print close print that’s a very Java way of thinking about this so we started by talking about a simple python dictionary where we fill it up we use get then we create an iterator and then we abstractly Loop through that iterator and that’s what we wanted to accomplish in this section just to see how that is done in a wide range of different languages because the map abstraction is kind of like this thing that we use as software developers and then it’s a kind of a sealed thing and then under Underneath It All the magic [Music] happens so I want to talk about the C++ programming language for just a bit because C++ plays a really really important role in the development of object-oriented programming C of course came out like 72 through 78 and then C++ came out in 80 and then both C++ and C co-evolved uh through the early 1980s and then you see things like C and Java and Python and PHP all informed heavily by C++ if we look at how object oriented was happening kind of before C++ it there was there was it was like C++ wasn’t really appreciated by the typical mainstream procedural programmer of the day and so things like algol and simula they it was kind of like there were tribes that liked procedural and tribes that liked uh uh objectoriented but then C++ came along and sort of pretty much unified it which meant that you know you probably learned python as your first programming language and you were using object or programming from the time that you started and C++ is what sort of unified that and it was the C++ as the quickly number one procedural programming language and then C++ as the number one um object Orient programming language that kind of made brought order to the notion of procedural objectoriented hybrid Etc and sort of everything that kind of came after 1980 was really strongly influenced and informed by C and C++ so let’s take a look at how this sort of changed over time by looking at some syntactical influence so C++ which was the earliest which is a pre-processor plus a compiler it turned into a compiler on its own eventually but it has this concept of a map that has uh a separately selectable uh type of the key type of the value and it uses the square brackets map open square bracket Z close square bracket equals 8 and that is in effect a put right that’s like a insert into the map um or update of the key and it’s a pretty Su synct syntax and so python came up with a way python really didn’t want to make a more complex syntax than C++ so python worked on its language to make it so that you could just say d equals di I and it was a typeless language and so we don’t care the fact that it’s going to be strings mapping to integers because you can map lots of things to lots of things in Python but it did follow the D subz equals 8 and again you you use this from the beginning when you first started programming in Python and you thought that was just natural but what’s really going on is more like what Java did in 1995 we’re not going to use the square bracket to do put stuff into a map we’re going to be more pure here and we’re going to create methods now if you look in under the covers in Python you see that that is really a method that does that insert of the The Key Of Z and the value of eight but if you look at Java it says map string integers so we again have this notion of a generic class capital map map string integer map which is our object variable equals new tree map string integer which of course is choosing the underlying implementation and then they have the syntax of a Setter style map. put and then they’re giving the key and the value as two different parameters there’s choices that each of these languages are making and I’ll try to highlight them as we go through it I want to talk a little bit about how C++ and its object approach and design made it so that a class like the map works almost the same as like a sort of a low-level class like a float or an in and it has access in particular to kind of the special characters or operators like square brackets or plus or minus how that happens and it is that you can create a specially named method inside of a C++ class that the compiler will consult and call when it encounters certain what you think of as language syntax meaning that as it’s parsing the language syntax like square brackets it’s like oh I’ve got some code to do some work here this concept is called operator overloading meaning that the operator the behavior of the operator is controlled by the writer of the class you are writing a class so in this bit of code here I’ve created for no particular reason a a class that I call 10 integers in a row and I have a array of 10 integer values but that’s private so that’s something that the outer class can’t talk to right so you can’t say 10 in 10 like in the main you 10 dot values is like no you’re not allowed to touch that because it’s private but then what I do is I create a public method which is the square brackets operator method the method to be called when the comp compiler encounters square brackets my class name my object name followed by square brackets call me now the first thing we see is the return type of this operator square bracket operator code is an integer reference an integer that can either be read or written which means it can be on the left or right hand side of an assignment statement and the parameter that it’s being given is an integer index which is the thing inside of the square brackets now it is a reference because of the Amper sand but it is a constant reference meaning we are not allowed to change it inside of this function okay so const means we’re leaving it alone which means we’re not allowed to say index equals 42 inside the operator the square bracket operator method and so what we’re returning is that private variable values sub index but we returning a reference to it so wherever it appears in the original C++ code in the main what happens is that reference can be like I said on the left or right side of an assignment state so let’s take a look at how this works in the main code I am going to create a variable called 10 of type 10 int and then I say 10 sub 1 equals 40 which means I’m storing 40 in position one but when it sees that 10 sub one it says oh oh this little class has an operator square bracket operator so I better call that little method pass the one in then that returns a reference to values sub one and then into that reference the 40 is assigned now python doesn’t have return a reference and it doesn’t have a caller reference C kind of does but it’s very they’re pointers and so references and pointers are different references you’ll notice there’s no special syntax to dreference a re a reference whereas you have when you get a pointer you got to have special syntax to D reference a pointer so this notion of call by reference and return by reference is like impressive in C++ and allows it to do a lot of things and allows us to have this seemingly native line of Code 10 sub 1 equals 40 which is really just a bunch of method calls amazing and then we immediately say print t sub1 contains and then 10 sub one and again when this is kind of a right hand side of an assignment statement it’s looking it up it calls the method the operator the square bracket operator method passes one into it and then we return value sub one and then that’s what gets printed out and so then we say 10 sub5 = 10 sub 1 + 2 and now we see 10 sub one on the right hand side of an assignment statement which calls that same code in the operator brackets method within the class passes in the one returning the reference to Value sub one but then that reference is just 40 and then we add two to it and then we assign it into 10 sub five which is again calling the in operator method to get a reference to values sub five and that assignment happens all I really did was kind of faked it but I I used it to show you this like lovely ability to do operator overloading when I first found my way into Java my greatest disappointment in because I taught a C++ class and then I learned Java I wasn’t a wiiz at C++ but I really thought it was pretty elegant so for me my brain was so I didn’t Learn Python first I learn C++ first and I’m like hey that’s what object Orient ought to be and then I’m likeing go on Java Java didn’t do that Java basically does not want and did not want as a choice to take values by reference in in method calls and even more it did not want to return references in the return values of method calls that those two things the Ampersand in the return type and the Ampersand in the call parameter call those are essential for C++ to accomplish this and Java did not want to return references in particular because it has to do with garbage collection and variables going out of scope etc etc and if you return a reference you don’t know when it’s out of scope Etc um these are powerful complex and potentially quite dangerous things right but the C++ design was hey you are a samurai warrior and you are going to you are going to use these very wisely and we don’t want to take power away from you we want to give you all the power that you might want and just trust that you’re not going to make mistakes right and so ches that Java make and python make are like no no no we don’t want you to make mistakes so we’re not even going to give you this kind of thing there are other ways to do everything U things like topple returns in C is a good example of um kind of an homage to this notion of returning things is not always just a single thing so um but C++ is kind of unique now again um python emulated the C syntax that was quite beautiful that was a result of C’s support for operator overloading and here’s the here’s the thing where like it all comes together so python saw the beautiful syntax that C++ when you did the right things the compiler would give you this let you use this beautiful syntax and still call your methods inside the object but they didn’t want to do the call by reference and return by return reference that the C++ did and so what they did is they did basically a syntax transformation if you look python is in this sense very Java likee in that everything has to happen through methods but then there’s these hidden methods okay let’s take a look at the code so I’ll create a dictionary named X and then we say x sub 1 equal 40 and again we know what this means that means somewhere in the key the key under the key one there’s 40 now I can print this out by saying X doore get item Dore open print one close print that’s taking the index inside of the square brackets and passing it to a predefined python understood rule for or what get item the the the square brackets turn into double underscore get item double underscore or X is the object and the parameter is the syntax so if we think about it on the right hand side of an assignment statement where we’re just reading it it’s just doing a get right it’s kind of doing a getter like thing give me item one and then out comes the 40 and that’s how the print of x sub one is a 40 that’s really what happens under the covers is there is a class which hasore uncore get item underscore uncore defined in it as a method and that’s how it loads x sub one so if we go down another line and we say x sub 5al x sub 1 + 2 seems simple enough and and literally for years python software developers don’t even need to know that this is miraculously and beautifully complex but what this translates into at runtime by compiler syntax transformation is the x sub one on the right hand side turns into a x.g get item pren one which pulls up the 40 and then plus two gets added to it but then that expression is passed into x. set item in position five so the the left hand side of the assignment statement is the x of five equals part and that’s calling set item so if it’s doing a square bracket look up on the right hand side it’s calling get item and if it’s doing a square bracket on the left hand side an assignment statement it’s doing a set item so this means that there was no need to return references no need to process references none of the Hoops that C++ went through and so you see that python did not did not choose to implement the way C++

    did but they supported the very elegant syntax now and then you’ll see that Java in 1995 takes it uh or 94 takes it one step further in that they’re not not even going to give you that cool syntax they’re like no we’re going to say just do x.p put and x.g get and call it good if you if you know that X is an object and you need to do a get in the put do the get in the put we’re not going to do this little syntax transformation that makes it pretty and we’re also not going to give you uh operator overloading because again operator overloading requires references because it allows the class to return a thing that can be used on either the left or right hand side and again Java did that because they did not want to make their memory management more complex um so it it’s a hard to argue but what this kind of shows you is like the amazing interplay between these languages um JN strrip went to school in Denmark and started working on C++ in Denmark but then was hired to go to Bell labs in New Jersey where he met and worked with for a number of years uh bejn strrip and Dennis Richie and all the folks at Bell Labs that gave us Unix and C over the decades and so C++ kind of came to the world from Bell Labs from Murray Hill and and G van rasum who was in Netherlands at the time really was just looking at all this stuff and using all this stuff and an expert in C and C++ and back in those days we tended to look a lot like the code that C++ generated and G’s like I’m just going to I’m going to borrow these are really good patterns and so that’s how we see so much influence of not just the syntax but the actual runtime conventions and and like if if you look at some of the generated C++ code the concept of private is often done with underscores they use underscores a lot Python’s like yeah I’ll just borrow that I’ll just use double underscore as my signal of this private and a way you go so to show the influence that C++ and C had over python both in the syntax and in the runtime we can take a quick look at some internal details of how python works and python turns out to have almost identically implemented operator overloading in as as C++ but we don’t see it it’s all internal you have to kind of look so so on on the left hand side that’s the code that I just got done going through that’s the C++ code that has the private values and then the public uh operator overload and now if we look on the right hand side we see a class 10in and I’m creating a double underscore values which is values private as a dictionary and then I’m going to define the set item this this is like a private method called set item and then a private method called get item python basically has the left side and right side assignment of of uh of bracket lookup operators different and the set item is the left-and side and the get item is the right hand side uh you’ll see that in the set item I’m just taking self values sub index equals value and I’m in the in the getter I’m returning self underscore value sub index so that’s the right hand side so if we look at the code I see let’s make a 10 int on the variable 10 10 sub 1 equals 40 now python transforms that 10 sub one syntax into a set item of 10 comma the number one comma 40 and then call set item and you can see of course it worked right the three values are self index and value well self is 10 which is the object instance the index is the thing inside the square brackets and the value is the result of the expression on the right hand side it’s not just 40 but it’s the expression on the right hand side and so that goes in right we see the print 10 sub one well that is a right- hand side reference to 10 sub one so that’s going to called get item self is 10 and then index is the one and we’re going to just return it and that’s going to print out a nice little happy little integer which is exactly the variable 40 so it says 10 sub one contains 40 and at this point it should be obvious what’s going on when I say 10 sub 5 equals 10 sub 1 plus 2 well the 10 sub one on the right hand side turns into a get item that gives us back the 40 Value then the 40 and the two are added together to finish the right hand side of the expression then we’re going to sign that into T sub five which then turns into a set item of 10 comma 5 comma 42 and then that stores 42 in position five in our private variable values private values variable and then I print it out which is the left hand side lookup of 10 sub five which calls get item again with uh self is 10 and index is five and so we get the 42 and so you see how they’re so similar inside I mean again like if you look at generated C++ code from early C++ code compilers you’ll see these dual underscores used in various places which means that python in its internal implementation used the same patterns as C++ did in its internal implementation Pon chose not to do call by reference and return by reference Java chose not to be not to do call by reference and return by reference and Java chose not to do the S the fancy syntax transformation but you know who knows maybe maybe one of these days Java could do that syntax transformation and be like whoa Java has everything and then to some degree python has shown the way about how you do this without doing um without doing call by reference and again that Amper sand operator and Ampersand index on the left hand side that’s the like scary part where language designers are like I’m not sure I want to go do that because C++ is not a a garbage collected language but Python and Java are garbage collected languages and that’s not the only reason that’s that Python and Java didn’t want to do call by reference but it is one of the reasons that you kind of it just simplifies to know that there when a function is done it’s done there’s not like sneaky little pointers inside that function that need to stay alive so it allows you to throw stuff away when functions are finished okay enough of that just again I’m just trying to show you in the simplest possible examples the kinds of design decisions that all these language and Library designers were doing as they built the languages that we know love and use today [Music] so it’s time to stop deep diving into objector Theory and get to writing some code so we’re going to start with something simple going to do encapsulation the second thing we’re going to do is iteration but for now we’re just going to do encapsulation and then in the next section we’ll do iteration and really most of this code you’ve already done we’re just kind of refactoring it and moving things around and taking these you know functions that we named by convention and we allowed the Callin code to use and uh and moving them into the class using some pointers so a real accomplishment here is the map Arrow put the map Arrow get and the map Arrow Dell these things are now named and accessed in such a way that they are attributes the the functions we’re calling are attributes in the class itself and so other than that it’s not that different we and so it’s not that big of a deal the other thing we’re going to do is be a little more explicit about what things in these classes are public and what things in this class that we’re building are private so we’ll start with the map entry this is the structure that makes up the nodes of the link lists the key is a character string and the actual value is an integer that we we’re just going to make it simple to gotta we got to dynamically allocate the key like we’ve been doing um and then we have a PR and a next the key there is the pre and the next are double underscore so that means they’re private but we are going to decide that key and value are public and we just indicate that much like python would do by not putting double underscores in front of it and remembering in our mind that they’re allowed to be used in in calling code the map structure uh most of it looks pretty simple we have a head we have a tail and we have a count you’ve been maintaining those for some time now those are private attributes so we’ve renamed them in such a way that they have double underscores in front of them and then we have a series of public methods we have five of them the key thing is these are Pointers to functions and that’s what void starp put that’s parentheses starp put that means that there is a we’re allocating a variable in the structure named put and it is a function pointer that will return a void it’s a pointer to a function that returns a void so not only are we defining the attributes that’s we’re going to use to access the function we’re also defining the calling sequence it returns a void and it takes three parameters a struck map pointer itself Char star key and int value so when it’s all said and done this is not putting the code in here as it might say in JavaScript for example what is is a single 64-bit number which is a pointer to the beginning of a function now the function method signature has to match so we’re defining the method signature but in terms of allocating we’re really allocating one pointer for put one pointer for get one pointer for size one pointer for dump and one pointer for Dell and again you know you look at get well get takes as its first parameter a pointer to the map which is self a key that we’re going to use to do the lookup and then a default value to return and then get returns and int and so that that’s pretty straightforward it took me a little while to get the pattern right about because the parentheses here are really really important because we’re both defining the attribute name and the rules of its use and the method signature of the function that we’re eventually going to point to okay but that’s pretty much it right we we’re just going to put these things in and so the Constructor is pretty straight forward it’s not that different than the Constructor that you did we got to build these functions double uncore map put double M get map size they’re they’re outside of this they’re above us in the source code somewhere and we’re just saying P Arrow put which is an attribute put public attribute put is equal to Ampersand the address of the double _ mput function super simple a Ampersand is address of address of that function get is address of that function size is address of that function dump is address of the function and we’re done and and this is kind of showing you that the this is let’s see head is a 64-bit pointer tail is a 64-bit pointer count is probably a 64-bit integer or a 32-bit integer put get size dump and Dell are all 64-bit so the size of the map itself the map structure is about you know 10 words or less and that again has to do with uh efficiency right but you probably have most of the code you need for map put map get map size map dump and map Dell so map dump is pretty simple you know the if we look at this the you know it’s a the self is the pointer to the map so it has a head and a next and we’re going to just go through it until Cur is equal to null we got a map entry which is the type now we don’t double underscore the C because that’s really just an automatic variable inside this function that has nothing to do with the outside world and you’ll notice that we’re just as access UND double uncore head we’re accessing double uncore next because we’re in the class right and so that those are private but they’re totally legit to access them when we’re building a dump tool inside the class so private things are accessed in the methods in the class that’s normal right we don’t have to hide those I’ll tell you when I’m building something like this the first thing I want to get to work is some kind of a dumper because how I mean when I write this code before I hand parts of it over to you I have like map dump map dump map dump map dump every line I put a map dump and eventually when stuff starts working I start taking the map dumps out so just debug debug debug debug always so that’s that’s why I’m just like I couldn’t write this code if I didn’t have a map dump and so I’m going to make you guys do it as well so the destructor like most destructors the key thing is to draw the picture and figure out what parts were dynamically allocated and then call free or which parts came from Malak and then make sure you free them and so we’re just going to Loop through and again we’re in the class so we’re happily using double underscore attributes we’re going to Loop through we’re going to and the order this is always important but by now it should make sense we’re going to free the key because remember that’s a string point that we miked we do not need to free the value that’s just actually part of the map entry struct and when we’re going to get rid of that in a second we’re going to we’re going to advance to the next one first and then we’re going to free the current map entry and then we’re say current next and we’re going to Loop up and So eventually we’re just going to go through the link list and free the key and then free the entry itself and we’ve given back all of our data and then we’re all done with that we actually free the 10 words or so that is the map structure again this should start to look familiar to you so get is pretty simple as long as you have some code that like is map find um you know map find is going to do all the hard work but it but map fine can look at underscore head and and um and all that stuff and next and look at all that write some for Loops should be not too hard um and again underscore underscore map find is private but we’re in the class and so just have fun talking to the private stuff matap put is something you’re going to have to write but if you think about it if you get map find and it returns you that it will and you’ve done this before you’ve used a findik method to find the thing in the link list and you update it if you found it it’s really simple you just change the value in return and if not you add it to the end of the L you construct a new map entry and you add it to the end of the list and so again I just hope by now you can knock these things out and so that’s basically it I mean if you really think this is was a very simple section where all we’re doing is changing from globally named functions we’re enforcing the rules of private double underscore and then we’re taking those pointers we’ve declared pointers to functions in our map and then our Constructor sets them up and the rest is really just refactoring code that you pretty much already [Music] have so now we come to the last section of this module and that is iterators it’s it’s all been building up to iterators and this is a situation where you might say wow I don’t like iterators iterators seem like a more complex way to write Loops than just looking at like head and next and sneaking in and violating the abstraction boundary but as you’ll see in the overall next module you’re going to have to have very different underlying data structures and we want to be able to write the same code over over and over again so at at some level what we’re doing here is we’re building a map implementation that can be a link list a hashmap list I mean a hash based map a list based map or a tree based map and what we want is this code right here this code should not change we should say hey give me a map we got a map entry we got a map iterator those are all part of the contract that we have with the object be it a link list tree or map or hash we’re going to do a put put put put dump get get now we’re going to iterate the hash won’t even have like a it doesn’t have a head and the next it’s not going to work right so we’re going to have to say hey there’s this abstraction give me an iterator for your map okay and we don’t know what’s in the iterator we don’t need to know what’s in the iterator the only thing we need to know is it has a method called Next that’s it so we’re basically saying let’s get started give me an iterator from the map call the iterator method passing the map instance as a parameter and give me back iterator and then we write a while loop and we say hey iterator give me the next thing it is up to the iterator to start at the beginning and then adance advance and move down and when we get null we break if not we print key and value from the CER now CER is of type map entry there’s a map iter iter next and then CER is what we get back from iterator so we get from iter iter next we get back a map entry and so if you recall key and value are public in the map entry so we we could have I could have had you hide those behind sort of Getters and have a get key and whatever and name those underscore but we’re just going to leave them public attributes for now if we really going to be the if we were implementing Java I mean right now we’re kind of hardcoding this string key integer throughout so it’s going to be okay and then of course we call the destructor on the iterator once we’re kind of done with that Loop and then we call the destructor on the overall map and this code should be roughly the same when we go from link list hashes to trees this is the moment and it’s this iteration pattern so I’m going to do a bunch of pictures and so I just want to we I’ve been drawing some pretty complex pictures on these things but by now the whole pattern of what next means and preve and these things being null a doubly link list and the key pointing to another little uh you know a Char star key which points to another little stat Ally allocated thing and the head points to the tail and head and the tail and all that stuff I’m just going to for this section really simplify these pictures to say look there’s a variable called Head somewhere and it points to a zal 22 then it points to a w equals 42 and then that’s the last one and that points to next there points to null and so I’m going to really use a suin representation of Link list uh going far forward uh if we re review what we don’t want to do right we do not want our call and code to know about count we do not want it to know about head we don’t even want it to know about next within the entries right we don’t want to know that we do want to know about key and value and so the calling code where Map arrow number underscore head current underscore next no no no no no that’s not allowed right those are private so in our calling code if we’re if we’re looking at things have underscores technically we could do it because there’s nothing in C that’s stopping us right we create those things right so we don’t want to call head or count because then if we change when we’re doing a map head’s not there anymore I mean a hash head’s not there next doesn’t work I mean we got to hide that we got to like wrap it we got to create a strong abstraction around this notion of starting a loop and then iterating one iteration of a loop Loop and then ending the loop we have to abstract that away this is the concept of separation of concerns our calling code does not need to be concerned about how the object can lo be looped through right so we need a generic notion of looping so you can think of the iterator object itself as thing you create and it sort of starts at the beginning and then you hit it Boop next give me another one give me another one give me another one and inside the iterator the state is changing it’s like advancing and it just gives them to you one at a time you can’t ask it for the same one once you it’s been given to you it’s sort of like ratcheted down to the next one so if we look at this python code we uh well we start with a dictionary a maps to one B to two c to three and we print it and there’s the dictionary and we say oh let’s convert that to a list and that list is the keys which is ABC and then say give me an iterator from that dictionary we print that out and we print the type of it it is of type dictor key iterator object and so the iterator itself is not the entire dictionary it is not a list of all the keys it is an internal structure that python is going to maintain and then we’re going to poke it by calling next next next now the whole next thing that’s probably calling an internal method like double _ next Double underscore so next is part is is is part of the Python language so if you look at the while loop it’s a while true Loop we say item equals next so that means give me the next available item in the iterator and then Advance it and if we’re past the end return me false and I say if item is false break and otherwise I print the item and so I’m getting the items a b and c the key thing here in Python just we’re using python to keep it as simple as possible is we the the iterator is something that’s created the iterator doesn’t contain all the data the iterator contains pointers inside of it so that it knows what what to do next and we repeatedly probe the iterator with the next call to get the next thing and that both advances returns and indicates when we have run out of things so it’s weird because we’re so used to say like for blah in blah or for this that but that’s that’s not how iterators work iterators want this next thing to happen the C code to do the iterator you create it you Loop next through and the C1 is going to look pretty much the same as the python one so if we look at the map it structure it is going to have the kind of things that we we’ve needed we just are going to pull them in so the concept of current like we’ve used the variable Curr in the past for these Loops is in the map iter structure and it’s private so we’ve moved that from a sort of a variable that was in the main scope to inside this and made it private the only public things we have are a next method and a d method and so now what we have is a simple contract you can see our our kind of outside contract for this class is it’s not cre it’s created by the map class but once it’s constructed next and Dell are the only thing that you can do with this and that’s that and then we get to decide inside this class and so when we construct it we’re basically going to start it we’re going to allocate the right size we’re going to take the current and point it at the first item pulling from the head of the link list and then we’re going to set the two methods next and Dell based on the address of the implementations of the functions that implemented and then we’re done right and so because we’re inside of the map and that’s map iter so this is what you get when you go Map arrow itter you get this code um and so we’re totally allowed to do everything private with map because again the developer of the map class is the same person or team that’s develop developing map itter and if we wanted to change head to you know X we could because we would just go inside all our code and change it but head is not exposed to the calling code so they wouldn’t notice that change again that’s that’s the key at the moment the Constructor is called before the first call to next this is what the map bter looks like current is pointing to the first item in our length list then the Y Loop starts and it calls head now you’ll notice that it’s kind of got this weird thing where it grabs the current and that’s because current starts at we could have implemented this differently but the way I did it was current is pointing at head and I have to for the return it’s got to return at the first call to next I grab current and then I Advance current so that at the moment that it Returns the return value is b equal 14 and current now points at 21 d equal 21 preparing for the next call to the next function okay so then it comes in and R Val grabs 21 and that’s what we return and then we advance to 19 and you can kind of see Val and current Chase each other down this link list so the we return f equals 19 and then current points to null and then we notice that current is null and then we return null to tell our calling code that we are finished so to start the iteration to Prime the iteration we call the map object and say hey give me an iterator for the map and we get that back and we’re going to store that in our variable iterator then we’re going to start an infinite Loop that says while one or while true uh C equals it or next give me the next one which the first time two is going to give me the first one then if I got a null I’m done with a loop otherwise I print the key and the value of the one I got and then I go up and I iterate to the next one print it up print up print up print oop I got a null and then I delete the iterator and this is super equivalent to what we do in Python where we say x equal give me the iterator for the dictionary X and the variable it then while true we advance to the the advanc next of it otherwise give me false if we got a false we’re done and otherwise we printed it so these two are very very parallel and you’ll notice that Java and C++ don’t do iterators the same thing but I wrote this code to mimic Python’s way of doing this so it’s been quite a long uh Journey we really focused on AB exraction and encapsulation and we’ve done it with iterators and all we’ve done now is we’ve laid the groundwork for multiple implementations of the map we shouldn’t have to change our main code anymore we should be able to put a we we build a list map a list map and then we’re going to build a hash map and we’re going to build a tree map those have increasing complexity and improved performance characteristics and now you really you’re going to start start seeing why we say have abstraction so that we can fool around underneath the abstraction and accomplish really cool things and get closer to what python really does underneath of a dictionary [Music] implementation hello and welcome to the last lecture in this course we’re going to talk about tree maps and hash Maps up till now we’ve built a map abstraction we’ve looked at how iterators work we’ve created a link list implementation of the hash abstraction and now we’re going to go and build a hash version and a tree version of that same thing if you recall some lectures ago I read a Robert Frost poem you know miles to go before I sleep well that’s where we’re at now we’re coming to the end of this miles to go although as you’ll see the end is really just the beginning of the next phase and with a little foreshadowing if you have been with me for a very long time all the way since python for everybody which for me was recorded a number of years ago already this is the first complete piece of code that I showed you and that was the code to count the number of words in a file by splitting them then creating a dictionary and then counting them and we’re going to finish this lecture by implementing this in C but I’m getting ahead of myself so the idea here is we’re exploring you know different key value implementation Alternatives we we built a unordered Java based hashmap which is like a python 2 dictionary if you recall python 2 had unordered hashmaps which meant you sort of ended up with your stuff coming out in a random order it was the same order but every time you inserted something the order might change now Python 3 they tend to later versions of Python 3 they tend to be ordered which are more like the list map that we did we’re going to have a a map that is sorted that’s more like Java’s tree map with an iterator and it is sort of chapter 6.5 or section 6.5 of the book um and it is a combination of a tree map and a link list map um but uh Java doesn’t have such thing which really kind of surprises me they got a tree map and they got a hashmap but they don’t have a linked tree map or a linked map so here we go now these these the two abstractions were I mean two implementations we’re going to build uh kind of you see them in Python you see them in C++ and you pretty much see them in um jva as well but we’re going to do our own thing so I would say to you when you’re writing this code um I I don’t want you to think that when I wrote this code that I gave you with samples or when I wrote These slides that it was easy for me um the concept of trees and hashes are pretty straightforward but then you got to solve the little problems of how to take the previous and hook it to the current and hook the next to the to the next the current next to the next from the pre and so you you got to draw pictures and this is this is actual picture that I drew I really wrote all this code from scratch I mean I didn’t come up with the idea of a tree from scratch but I wrote this code from scratch and you can see that the like when I was building the the tree map um my goal was to find the right place in the tree to insert the next item and so you see I’ve got this 1 three five 7 9 11 13 so I kind of constructed this tree that was right it was in order um and then I was trying to figure out where I might put four and where I might put eight and where I might put 14 and then um I kind of had this notion when I was writing the picture that I you’ll see I had the words lowest node greater than and I cross them all out because that wasn’t enough and you’ll see when we get there that I have the lowest node greater than and the greatest node less than and I’ve got to get both of those things and so as we work our way down the tree we got to keep track of this I’m I’m getting way ahead of myself like many data structure programming tasks they if you you can draw the picture and it makes a lot of sense you see the hash map which is the first one we’re going to do that’s really just nothing more than a bunch of Link lists a hash function picking the the head instead of one head it has in this case four heads um so that one turns out to be easy and that’s the first one that we’re going to do but when I wrote this I mean I knew what I was doing I knew what a tree was I knew what a hash was that that’s the easy part the hard part’s writing the code now taking the code from someone else like if you’re taking it from python or C++ or Java that’s easy thank heaven they wrote it and they tested it and we have nice tested working implementations so you shouldn’t have to write this stuff in most languages and so we’re just understanding how to write it but if you do it right you’re going to make mistakes and you’re gonna you’re going to be 80% right but then it’s going to be real hard to debug this stuff so part of what you need to figure you need to accept the fact that you will un you’re not likely to write it perfect the first time and debugging is difficult you’re going to print out a bunch of like percent PS and hex values and stuff and you’re going to just go through it slowly like what did I do wrong because the main programs for the programming assignments that I give you are really kind of like unit tests they’re sort of pushing your implementation to see if it’s cap AP of handling all of the common situations and so don’t don’t stress if it doesn’t work right away they my my implementations didn’t work right away they they failed you you can you know if you can go to some website and get the solution I mean if you’re going to do that just go to Python and make a dictionary if that’s your goal your goal is to struggle with doing something that you understand you know how to do it you know what a tree is you kind of know that you got preves and nexts and lefts and rights but you still got to write the code in making one or two mistakes and then fixing those one or two mistakes is essential to understanding so with that up next we’re going to talk about the [Music] hashmap so now we’re going to talk about a hash based implementation of our map and this is the answer to the world’s most common programming interview question but we’re going to do hashmaps and then tree Maps tree maps are harder so hashmaps turn out to be beautifully simple and that’s kind of the reason that um Everyone likes these is interview questions because the interviewer can remember the answer a tree map they might have trouble remembering and so it’s the perfect thing in an interview to say draw me a hashm because they know the they still remember the answer from when they went to school they’ have to do a little review to get the tree map right so here we go so let’s talk a little bit about our hash map implementation it’s got a weird order and once you see the data structure internally it’ll be clear why there’s a weird order it is like a python 2 dictionary and it’s like a Java hashmap it’s very similar to both of these things I’m guessing the code we’re going to write is very similar to when when GTO made his first dictionary it’s going to have extremely fast insert looked up just like python 2 dictionaries and Java hashmaps it’s going to be iterable like Java’s python 2’s dictionaries and Java’s hashmaps and it builds on link lists surprisingly it’s really easy to build a hash list hashmap if you understand link lists and so it’s it’s covered in chapter 6.5.1 and 6.6 in kernigan and Richie 6.5.2 is literally the hardest part of the book and that’s why we kind of start with 6.6 and then kind of go back to 6.5 okay so let’s take a look at our data structures and how we’re going to go from the list map to the hash map so our our our list map is pretty simple we’ve got the entries in the map which are key value which we’ve decided are going to stay public we’ve got the pre and the next for the map entry which is just you know we’re going to link these things together and then list map itself it’s got a head and it’s got a tail and maybe a count and a few other things and then the methods Etc because we’ve done encapsulation so the hash map entry if you look at it it’s pretty much identical and that’s because the entries in a hashmap are just part of a link list the key to the hashmap is there’s multiple link lists and we see that in struct hashmap andore buckets says how many buckets we have in a in a more sophisticated hashmap implementation we would have the number buckets grow as size grew and the the list got too long but we’re going to keep that so that’s called rehashing and we’re going to keep that out of our conversation so but we’re going to have a number of buckets and in this case it’s going to be eight so those are called hash buckets and then we’re going to have heads plural we’re going have eight of them and Tails eight of them but within a particular head and a tail it really is a hashmap so as you’re writing the code for the hashmap go back to the list map I mean literally copy the list map code and then change the singular to plural and you’ll see some of the things I show you in the actual code so if we look at how a list map looks it’s got a head and it’s got a bunch of entries that have preves and necks I’m not even showing the preves and the arrows I’m just showing the next but assume there’s always preves there because it’s a way for us to link things in but if you look at the hashmap so you take the actual key you run it through a hash function which creates some big number no matter how but it is just a number no matter how long the key is it can be one character or 2,000 characters eventually the hash runs a calculation that gives us back a number sort of a pseudo random number that has you know equally likely and there’s a whole science of hashing and then we take a modulo and in this case we have four buckets so we take this hash calculation modulo four and that gives us a number from 0 through three and with that number we picked the linked list and then we add it to the link list just as if we were doing this with a link list so the M once we’ve done the hash and we picked a bucket it really is exactly the same as a link list so a hashmap with four buckets is the same as four link lists and you pick the linked list by the hash computation and has computation is deterministic and predictable so wherever we put D it’s going to be in bucket one one and we can look it up in bucket one we can store it in bucket one Etc and so for inserting m equals 90 that’s going to Hash into into bucket two and we’re going to put it in that that link list okay so it is beautifully simple now what is a hash calculation this is actually from my uh postgress for everybody course basically the hash Maps large data items to a single a single number basically and these are called hash Val values so the whole concept of a hash function when used with a modulo in this case I’ve got 16 modulo 16 in this picture it Maps a big string into some fixed number of buckets and often the buckets are power of two but they don’t have to be it’s really a modulo operation and so there’s a whole um there’s a whole science of hashing and hash functions and it turns out the hashing and hash functions are a big part of security and digital signatures and all that stuff and so there is there are people who spend their whole lives researching how to build good hash functions and so there’s this this sha 256 compression function you can go look it up you can see what’s going on here is like the arrows are shifting and the plus with a circle is exclusive ores and they sort of both show you um the shifting and the exclusive or and they give you a diagram of how these things and they shift an exclusive or yada and they’re taking the pieces of a a value it’s computed in a loop and updated and what they’re showing you is what happens each iteration through the loop and so um the idea is is we are going to take a string string array and we’re going to take a number of buckets and the idea of a hash is it is just some integer number and we’re going to go through each of the items each the characters in The String that’s the four star stir star stir plus plus and we’re going to take the current value of hash in this case we’re going to shift it three to the left and then we’re going to exclusive or it with the character we’re looking at so you can say shift three exclusive or shift three exclusive or so you could think of it as like an accumulation but the exclusive or is a nice form of accumulation in that it it increases the randomness the pseudo randomness of this thing and so exclusive or just turns out to be a super valuable calculation and so this is this Loop is going to run so many times and so we’re going to print it out you’re going to see the hex if we’re just taking the letters Hi you can see kind of the internal hash value growing and changing and you can kind of see it going from uh right to left as it sort of grows um and there’s new data being put in bitwise it’s a bit you know bit exclusive or but at the very end it says return hash percent buckets which takes the modulo operator of the number of buckets and in this case I’m going to be using eight buckets just to run the hash function right give me the bucket for this string so you can see me running different things on the right hand side and getting back the ultimate final buckets so hi goes in bucket one hello goes in bucket seven and World goes into bucket four this is this is really inspired by you know the the the shifting and the masking but I’ve simplified it so you can kind of see what’s going on and in our particular hash it’s it’s good enough for our purposes but it’s probably going to have collisions when treated against a whole series of random data it’s not going to be as good and that’s where a fancy hash like shot 256 would be helpful so now that we understand the basic data structures and how hashing functions work let’s up next we’re going to take a look at actually building a hashmap or at least adapting our list map and turning it into a [Music] hashmap so now that we understand what a hash function is we’re going to actually build our hashmap implementation but what we’re really going to do is make a copy of our list map code and change as few things as possible possible you’ll be impressed with how easy this really is if you have a bit of working list map code this is the new Constructor and I can call your attention to the changes right remember we have a number of buckets we have a however many head however many buckets we have we have eight heads and eight tails so we’re going to look in the Constructor so we’re going to allocate a hashmap it’s not that big right you still got it’s still got the functions for our encapsulation to put get size dump and it that’s not changed at all except it’s called hashmap instead of list map the buckets is set to eight we’re going to initialize all eight buckets to had a head of null and a tail of null cuz remember this is just eight link lists and count we set to zero pretty straightforward especially if you understand the hash list and if you don’t go back and watch that lecture don’t just like go oh I didn’t understand what hash list was I’ll just keep on not understanding and and use Chad GP it’s like well I I don’t know what to do if that’s how you’re going to go through this assignment but if you have and understand a working hash list this is easy easy easy we’ve been using list map find before and all it does is it finds a hashmap entry if it’s already there and so we send in the whole hash map self which is very you know python object oriented pattern where the first parameter is always self we have a key we’re looking up and then we’re telling it to start in a particular bucket and that’s the real change if you have hash list find it doesn’t have a bucket hashmap findind has a bucket and so this code is exactly the same as hash list find except instead of starting at head we’re have an array of heads and we use bucket to figure out the thing and then we Loop through it we’re in the right bucket something above us figured out what bucket it go through and so if we look at hashmap get which is taking a key and having a default and having a self we say hey compute the bucket from the key and however many buckets we have which in this case might be and then we do a struct hashmap star rvel go find it passing in the bucket if the if the return is null from find we return the default otherwise return the value so again there’s one line changed between the code from list map get to hashmap get so let’s do a quick review of what we do in map put now this is not the hashmap put this is maput this is our list mput so we call find if we find it then we’re just going to update the value and we’re done if we don’t find it we allocate the new entry we set it’s next to null and we link it into the list and this is the place where you should be drawing a picture if the head is null that means we have an empty list then self head is this new thing if the self tail is not equal to null we’ve linked it at the end then we’re going to update the tail Etc so draw these pictures and these are the parts where you’ll mess it up you you will get these wrong and it’s okay to get these wrong put like a print statement in every line here if you’re having trouble right and you got all the cases in this this nice nice little four lines of code captures the cases okay so remember we’re inserting at the end so what do we do for hashmap put we have a bucket we’re going to run a a hash computation to figure out which bucket it is then we’re going to call hashmap find and we just tell it to find it in the bucket so in the linked list sub three or sub four or whatever and if we found it we update the value and return otherwise it’s time to insert so we allocate a new one we set it’s next to null and then we know which bucket it is so in this we looked at the previous code it was for one link list and for this current code there’s eight link lists but we already know which link list we’re dealing with and so literally you can take the word head and change it to head sub bucket everywhere you see head here you can change it to head sub bucket tail subet and literally when I wrote this code that is exactly what I did I did it slowly not to mess up and of course the compiler help me if I forgot something but that’s as simple as it is to transform the put from a list map to a hashmap of course the dump we have to do a little bit differently we want to show all the buckets and so we’re showing what bucket it is the key value pair but other than that it’s a it’s really a pretty straightforward stuff to do the hashmap dump remember I told you that writing a debug tool is essential so you can change your main code to dump dump dump dump dump because you’ll mess it up right you will not write this code perfectly and you need to be able to debug it so now let’s take a bit of a REV view of the list map iterator so recall that the iterator is its own object we’ve got the entry we’ve got the iterator and we got the map itself and the map iterator is allowed to do all the internal stuff because the whoever is writing these things writing them at a group so we could think of it as like a protected value and so um really the essence of the map iteration iterator is a current so we’re going to call the public part of it is next and Dell and the private part is what the current thing is because we’re going to we don’t get to see the current but we can use next to get the current back and so the idea is as we can call next next next next next rather than looking at current recall that the way the iterator works is you ask for the iterator and then you hit the iterator with the next and you go until you you’re done and when you find something you print it out and we can do the same thing in C C and as well as python if we think about how to do the iterator for a hashmap it’s a little little different we must move we must start at generally we start the first bucket and we must move through all the buckets eventually we got to get to because we got you know eight or four link lists we got to go through all of them and we got to go down each of them but if we’re looking for the next item and we got to skip empty buckets so we kind of got a bit of a complex while operation and so one of the things we’re going to do is when we create the map Eder we are going to store a reference to the hashmap so when we construct the map hashmap iter we’re going to know which which bucket is an internal value current is an internal value and map is an internal value which we’re going to use to remember that map that we’re an iterator for and then we’re going to have an next anadell this is the Constructor and we’re saying make an iterator given a hashmap we make the iter structure we remember a pointer to the map in case we’re going to need it later the current bucket we’re going to look at is zero and the current map entry is the head of the zero bucket and then next and Dell are just capsulated methods basically and then we return it now that first bucket may or may not be an empty list right so that first B you know there might be just one bucket the third bucket might have a list in it and 0 one and two won’t have anything in it so remember but so we starting at the top bucket and our current is pointing to the head of the the first bucket which may be null the tricky bit is the itter next and we remember we given the map itter we don’t get map but we’ve stashed map in underscore map if self current equals null in the old days in a list map we knew we were done and we could just return null but now we have to go down a bucket so self this is the iterator bucket goes from like 0 to one so we increment it and if the self the current bucket we’re looking at in the iterator is greater than or equal to the maximum number of buckets we have now got to the last bucket and we return null and then what we do is we say okay that must mean we have more buckets so we say self current is equals self map that’s our little stashed version of the map and we’re going to go we’ve already incremented self bucket and so we’re going to grab the next head and then we’re going to Loop up to the top now at this point if that bucket is empty we’re going to do it again and we’re either going to go through this y Loop enough times until we either have exhausted the buckets or we have found a bucket that has an entry in it then we got to do a little trick grab the current so the only way we’re coming out of this Loop is if self current is not null because if self current was null we would have wilded our way through and then return null eventually after we exhausted the buckets in the while loop above so the r Val is self Curren if self current is not equal to no we’re going to go to the next and then return rep Val I’ve given you the code go through it carefully It’s tricky to write what I would do is I would like print these Co this code out and draw the picture Okay draw the picture so let’s take a look at a hashmap iterator in action so this is what it looks like when we’ve just got constructed and we’re in the first call to next current is pointing at the first item in the first link list the link head Subzero we’ll fall through we look at this self- current value and it’s not equal to null which is great which means we have something to return so that so we don’t have to go through the sort of scanning across null entries so we skip the while loop and we simply set R Val to self current and if it’s not equal to n we advance that and then we return R Val and so at the end it looks like this the current has been Advanced to the to the next thing we’re going to return on the second so the first call returns FAL 19 that’s the r Val and the next thing is going to be H equal 17 but now we give it back to the calling code and away we go so now we come in in the second call it’s going to do kind of the same thing current is going to have pointed to H equals 17 it’s not going to it’s not null and so we simply take Rett Val andb self. current and then we advance it as long as current is not equal to null and because it was pointing to H equal 17 it is we’re going to advance but now as we exit this second call current is going to be null but we’re going to take care of that on the third call so don’t worry about that R Val is H equal 17 and current equals null so now we’re done with the second call so now we come into the third call and in this situation we are pointing at the zero bucket and current is null so the Y Loop is going to take over so while self current equals null which is true right now we are going to run the code say self bucket plus plus which is the bucket number in the iterator and we’re going to ask is the bucket number in the iterator greater than or equal to the number of buckets in the map if we are we’re done we we’re at the last one but we’re not so we’re not going to return null we’re going to say self current equals self map head self sub bucket so we’re going to go down to bucket sub one now and we are going to make current point at bucket whatever the head of bucket one is and that’s okay we found an empty bucket because remember I said you got to skip empty buckets but we’re still in the while loop while goes up says oh self current is still null I mean I just moved to the next bucket but self current is still null so I add one to the bucket the bucket becomes two we check to see if we’re done right if it’s greater than or equal map buckets return no which it’s not because we are we’re at bucket one and self current is equal to self map Remember map is our remembered version of the whole map so we can see all the heads because we got to work through the heads so now self current points to b equals 14 and now the Y Loop goes back up and now self current is not null because it’s pointing to the b equals 14 item so it pops out of that while loop and drops down and says R Val equals self current which was b equal 14 and then it advances is self current and self Curren becomes null again but that’s okay because we’re going to return Bal 14 on the third call so just to review we returned f equals 19 on the first call we returned H equal 17 on the second call and return b equal 14 on the third call and now it’s going to loop back up and we’re going to see the fourth call and so the fourth call is going to come in and um current was D equal 21 and so it’s pretty simple we’re we’re we’re not going to run the Y loop at this point um we’re going to return D equal 21 we’re advaned current so current is now pointing to null and now in the fifth call current is null but now that’s going to trigger us working in the Y loop we’re going to add one to the bucket the bucket is going to become four and we say if this bucket inside this iterator is greater than the total buckets in the map return null and we’re now done the fifth call returns null that tells the calling code that we are at the end of the list so if you keep yourself straight and you draw pictures like this and you think it through this is a surprisingly small amount of code to build a complete iterator for a hashmap I I kind of mentioned this in passing but we still have more work to do a thing called rehashing it’s not that hard and feel free to feel free to try it um at some point if these link lists get too long our performance starts to suffer and so one of the things that hashes do is in the middle of an insert they’ll have something we call a load factor and it’s like whoop this these buckets we have each bucket would have a length and we might check all the bucket lengths and if it got to be like over 10 or 15 or something we would go from we would have to rehash these things you don’t have to reallocate you just have to make go from four buckets to eight buckets and then you recalculate the hash modulo 8 and figure out which bucket it belongs in and reconstruct all these things and so it’s not impossible to do a rehash doubling the bucket and reducing the average chain length but we are not going to do that in this particular thing because we’re going to keep it simple so the hashmap iterator while complex is surprisingly simple it’s really very simil similar to the list iterator the the the key thing is that we’ve got to have that y Loop that sort of Skips if we’re at the end of one list it’s got to get to the beginning of the next list and it’s got to skip empty buckets now this is why you can see because that the things in the list are in somewhat random order the the buckets the the mapping of any key to any bucket is in random order and this is why when you think of python 2 we we can look in Python 2 and we say oh if if you iterate through a map they come out in the same order but there is no predictable order but if you do it twice you’re going to get the same order and the fact that the order might change if you do inserts or deletes that has to do with the rehashing so we’re we’re kind of at the point where we have built the two foundational types of python 2.0 we’ve built a list and we built a dictionary python 2.0 but next we’re going to move like to python 3.0 and start creating a link list that maintains sorted order and can be iterated in key order uh and so that’s going to be our [Music] tree so up to now we’ve done all the easy stuff so it’s time to do the linked tree map which really is kind of a modern flexible key Value Store um this is a nice key value store that you would want to use if you were a software developer um our linked tree map is ordered like python order dictionaries it stays sorted meaning that not only does it stay in order it stays in sorted order we insert things and they go in in order like a Java tree map you can be iterated like a C++ map or an ordered dictionary but not a Java tree map this just boggles my mind while you can’t well we’ll talk about actually why they didn’t do it but it’s not that hard why why they so um and we’re going to have fast lookup so the problem with a A list map is it’s got a lot of nice features and we can make a sorted list map and we’re going to in this section um but the problem with the list map is lookup is slow and so we’re going to actually pretty much use the tree part to do fast lookup and you can see this in 6.5.2 of the textbook so we are going to do something that’s pretty common in data structures and that is we’re going to maintain two whatever the entries and they’re going to maintain simultaneously a sorted link list through the entries and a binary tree and so we’re going to look at them separately and then we’re ultimately going to find them together we’re going to put them together so let’s talk about what a tree is a tree is a structure that the tree map you see has a left and a right so the things to the left are things where the key is lower than the current right so H equals 42 the question is where would a go well a goes to the left where would T go well T goes to the right so the idea of the tree is that whatever entry you’re in there’s a key in that in the entry and then you can either go left or right based on the comparison of the key and instead of having a head and a tail there is just a root so the root is the top entry of this tree and then there’s a series of left and right choices that you make and each entry has a left and a right and the tree map entry has a key value pair and we’re going to keep key and value as um public because it’s just an entry but now there is no next right this is why we are using abstraction because we’re not even going to give them next we’re going to have a left and a right okay and that’s we’re not going to show that we’re not going to let people see that we’re just going to give them a set of methods to mess with our tree map and we’re going to deal with all this stuff and we need a left and a right to do it so just taking a look at how it works is let’s just say we’re going to in this current tree that I’ve sort of built they’re not always balanced I happen to balance it just because it looks better on PowerPoint slides but let’s just say we’re going to insert in this tree a a g equals 25 so it’s got a a key of G and a value of 25 so what you do is you start at the root and you compare it and you say oh G is less than H so we’re going to go down the left hand side so you can think of it as you’re walking down the left hand side then you are encountering D equals 8 and then you’re like Okay g is greater than D so we got to take the it’s like driving a car turn right at intersection D and so we do and we’re working our way down and now we have we’re looking at intersection F and we’ve either got to go left or right and so FG G is greater than F and so we’re going to go to the right not the left and so we do and so that basically is the path that we took and so to insert g into the tree we find the greatest value less than which is f and you’re kind of inserting it if you think about it between F and H right so it’s it the next Higher One in the tree is H and the next lower one in the tree is f and that was the trip we did I like to think of this sort of sort of trickling down the tree and making these decisions as almost like a Pachinko machine um where you you you hit the balls they go dinging it’s not random of course it’s uh it’s very precise but it is kind of like you stop at the top and you make a bunch of you know binary left right decisions and eventually you find yourself somewhere at the bottom and so if we kind of look at tree matap put and we are going to start at the root and then we’re going to do a comparison and we’re um and if we find it the comparison is going to be zero we update the value and if we don’t find it and it’s less than we’re going to go left and if it’s greater than we’re going to go right and so this is basically the idea this y Loop will trickle down the tree going left and going right and it will either find the value if it there’s a match like if we’re looking for f we’d have found it and we’ have stopped and we would have returned if we’re looking for G we won’t find it but we will find where we’re supposed to insert it okay so the last thing that we talk to which G will find its way down to the right of f we will find where to put it so as long as the tree is correctly maintained you will either find a match or you will find the right place to insert it and the tree will it’s not guaranteed it’s not guaranteed to be balanced there’s further algorithms that can make the tree Balan but the the key thing is is that the order will be right okay so so by inserting following these rules following this algorithm the order will be right and you will always find the right place to put it or you will find a matching place and think about how dictionaries work right you say x sub hello equals something well there’s either going to be a hello key in there or not if there’s not we’re going to put it in if there is we’re going to update it and that’s what this code does we’re going to create a new tree map we’re going to put H equal 22 and then we’re going to do H equal 42 which replaces H right then we’re going to do D equal 8 then we do Bal 1 2 3 and then we’re going to do FAL 6 it turns out I’m kind of doing this in order so it doesn’t get too long on the page and then I’m going to do a dump and remember how important a debug is when I first wrote this code you can daral bet you that I had map dump it was map put map dump matap put map dump matap put mat dump so I could like see what it does and so the ma the dump if you look at the dump um then we put in K and M and J and then we dump it again and so what I’ve done is I if you look at the map output you see that the map output has these H equals 42 and then it’s kind of trying to give you some sense of the treeness of it okay meaning that the Bal 123 um FAL 6 and D equal 8 we’re the number of vertical bars tell you how deep in the tree you are and so you can see that the immediate child nodes of H in the second dump are D and K and the child nodes of K are J and M so you can draw this all up and so the idea of my dump code is I’m trying to sort of draw you a tree so here is the dump code now this is very very different and literally this is the first time well I talked about recursions and functions talked about stack frames and stuff like that but if you go all the way back to python for everybody I delay talking about recursion until there’s a real value for it and it turns out this is a beautiful use of recursion and if you didn’t write this recursively you’d probably have to write your own stack and that would be like a bummer is we we’re going to recursively go down the tree and we’re going to keep track of the depth and the idea of the depth is it tells me how many vertical bars to print so we come in and we’re pointed at a particular place in the tree maybe the root maybe the top one and depth is going to be zero and so if Cur is null we’re done a key thing to recursion is you’ve got to have a way to get out so if we if we get to the end of some tree sub tree and we get to a null we go left or right that it’s a null don’t print anything out just you’re done you’ve gone one Beyond The Leaf of the tree and Cur is null so just return then what we do is we have a for Loop depending on depth that prints vertical bar space that spaces it over and we’re going to go down the left tree and then we’re going to come back and we’re going to down the right tree and this is what’s called a depth first search for those computer science nerds right and and so we’re going to go down the left and you’ll notice that when we go down the left if the left is not equal to null we are going to dump the tree on the left with depth equals depth plus one and so if we start with a depth of zero that’s going to become one and then if we recursively go down further then it’s going to be two and then if

    and and then that when that recursion comes back if curve right is not equal to no we’re going to dump the tree on the right so what you see is dump the tree on the left recursively which means go all the way down the left then come back up then dump the right node then come back up go up again and dump the right node and so you see this like how the order this is a depth first search of H we’re going we’re going down past um D then we’re going even further past B and then we’re coming up from B and we’re going back down from D to F coming up from F then we come up from D then we go across H and then we go down to K but then we go to the left of K which is J we go back up and then we go to the right of K which is M and then we go back up we go back up and we’re done so the calling sequence to this is tree map dump tree self root with a depth of zero I will say this when I wrote this code the first time I had print FS all over the place now I pretty much know how to do a depth first search of a tree but still you in a debugging sometimes sometimes you make your tree incorrectly and your debugging is like huh that doesn’t look like what I thought it was GNA be and uh and so I don’t be ashamed if you have to put print statements in all over the place first get your dump working just make sure your dump works because then you can debug everything else with the dump gets pretty simple and we’ve got the default we got the key and we’ve got the tree so we’re going to start a y Loop where we’re going to go down left right left right left right right so we’re going to start at the root we’re going to compare the key to the key we’re searching for the current key if they’re the same then return the value we could do this recursively but that you don’t do recursion if you don’t need to if the current key if the key we’re looking for is less than the then the key we found we’re going to go down the left and if the current key otherwise we’re going to go down the right and so you can see this thing is just going to Pinko its way down Tink tin Tink Tink Tink to the right spot and if it gets to null then we return the default right remember this is like a diary if the key is not there on a get we return the default you can see why GTO van rossom in Christmas 1987 created a function called get which looked for a key and took a default value because this code is what what you you write what I’m going to return null and then I have an if statement heck no just passing a default if you get to the bottom of the tree and you haven’t found it return the default if I want it to be null I can make the default null right away we go so this is beautiful this is beautiful so from that beauty both the dump are beautiful and the get is beautiful iterator is a pain you just can’t easily build an iterator for a pure tree if you have nothing more than that tree so a list map can support an ordered iterator we saw before a hashmap can support an unordered iterator but a tree map cannot support an iterator without building some kind of a stack and the the problem is is that the concept of current is just so complex when we’re doing recursion the concept of current is just so implicit it’s actually in the call stack the notion of current because there’s really when you’re doing the M the the dump you have a call stack of currents and then when you go back up the call stack back you’re getting a different current so you’re switching back and so you either have to make your own stack of currents you could build an iterator for a tree but you’d have to build a stack so a lot of folks sort of don’t want to do that we could build a stack but we’re not going to so what we’re going to do is we’re going to do a technique for our iterator that is a common technique when you have a data structure that almost does what you want and then you have another data structure that does what you want you combine them so if you look at this tree there’s a lot of nice things for searching for replacing for inserting and it does all that very fast because it’s it’s actually log in because the height of the tree is log base two of the width of the tree right the number of items in the tree so it’s it log base 2ish so it’s super fast all my trees are small but if these trees get big they’re super fast goes down the pinkos sit way down to the bottom really fast but I can’t easily build an iterator so what I’m going to do is I’m going to add to this a linked list but I’m going to have the link list simultaneously working with the tree so each of these items is going to have a next and a prieve and a left and a right and we’re going to almost write the code mentally independently for the tree code and the link list code okay so we’re ultimately going to combine these things together there’s not a separate link list and a separate tree it looks like this in a link tree man so think of each one of these things having a next and a prieve and a left and a right and we maintain them in such a way when we’re doing inserts that everything works perfectly so we’re going to simultaneously maintain with the same entries a tree and a liist but we’re only going to use the list to build the iterator and we’re going to make this a sorted list because these things AR in order the tree is helping us quickly find the place to put it but also where to put it in order so let’s take advantage of that so this is a sorted ordered dictionary in Python lingo okay so just remember that these entries these list tree map entries are simultaneously participating in a tree and at the same time in another layer as it were participating in a link list the tree map which is the tree map structure has a head and a root because at the same time tree map is both a tree and a link list and the map entry is going to have a next and a left and a right and again you just almost keep these things sep separate right in your mind when we’re doing tree things we’re going to use left and right and root and when we’re doing list things we’re going to use head and next and these are things now by now that should be sort of familiar to you so this is the structure that we’re going to build and maintain and up next we’re going to build the put code or this combined two layer data structure that has a tree and a sorted link list all at the same [Music] time so this is an entire lecture on the put method of our tree matat and the essence of this is we’re going to be simultaneously updating two data structures at the same time I guess that’s the definition of simultaneously so just before we start this is not easy I think it’s pretty much impossible to do exactly what I’m asking you to do just use a bunch of Google searches or asking your AI bot maybe maybe you can you need to really understand what you’re doing and this is where a picture is so valuable once you understand it the code should look very clean and very simple to you my put code as I was writing it was like broken and like like I tried to fix it and then it was broken again and I threw it away and I wrote it again and I drew a new picture and I wrote it and it was broken and I threw it away again and then like poof it was perfect so as you’re writing data structure code the notion of like it’s broken just accept that it’s broken it’s going to be broken you’re going to throw it away that’s the point because you know that this algorithm is eventually going to work the algorithm is not the problem it’s your implementation that’s the problem okay so if we take a quick look at the performance of put and I’ve mentioned this the binary search is log in while a sorted list search is order in meaning that if you have a search list of 500,000 or a million it takes on average 500,000 lookups to find it whereas a million entry tree search it take the log two of a million and you get about 20 so the key thing is we’re going to use the tree anytime we’re searching and we’re going to only use the list when we’re iterating but we’re going to while we’re doing put we’ve got to maintain both the tree and the list okay so we are going to have to be real careful to keep in our mind and this is where I drew all those pictures we got to be able to insert into an empty list which is easy because root is null and you just put the thing in then you got to find a right Gap a gap to the to the right of something and then find a left Gap and insert at the beginning after you go down a bunch of lefts and go down a bunch of Rights and then replacing is the easy part as we’ve seen in put you just that they you say if it’s equal change the value okay so let’s just take a look at our data structures and then we talked about these before we have simultaneously in the entry we have a left and a right and we have a next because we are simultaneously maintaining a sorted link list and a sorted tree the tree map has a head and it has a root that’s pretty much it so in our in our Constructor we set the head to null we set the root to null we’re empty we don’t have anything in the tree we don’t have anything in the link list so the empty list is easy right and so we you have to scan to see if it’s in the list right and you know if you know first we can just say hey if self head is null and it be the same as saying if self root is null well we just point head and root to the new item okay because we’re inserting H equals 22 I’m going to insert these in order so the list so I I don’t run out of space on my PowerPoint slides and so when we’re done with this rud is going to point to H equal 22 the left is going to point to null the right is going to point to null the next is going to point to null and head is going to point to the item so we have a valid linked list and we have a valid tree at the same time okay so again this is not the whole put code this is just the first part where we there’s some dot dot dots in there where you’re putting all the data in putting the key in and setting next to n and left and all Etc so that’s that’s in there but the first one is pretty easy from The Head and the root okay so we we keep doing that for a while we let’s just take our we put some things in there and we’ve got our our link list going correctly you can just verify that you run through they’re all in order you can take your your lefts and your rights and all the things that are less than H are to the left of H and all the things that are to the right of H are greater than H away we go so we’re going to write some code and what we’re really going to look for and this is the tricky part is to find the item or the Gap where the item belongs now the problem is is we’re going to have to link these things back up when we are just doing a tree it was easier because you would either find the item or find the place to link it okay so trees are easier to easy to maintain the link list is hard to maintain because you’ve got to keep track of the item that is the largest item less and the smallest item greater and that’s what I call the Gap so this left and this right are to as we’re walking down the list we’re going to keep track of the the greatest the smallest greater item and the the largest less item okay and that’s what this left so we got CER we got left and we got right and you can think of left and right as like breadcrumbs like we’re going to throw breadcrumbs when we turn when we’re going to turn to the left we’re going to remember the right when we turn to the right we’re going to remember the left and you’ll see it in action so here we go here we go so we got this tree g equals 29 we’re going to insert it so then what we do is we compare it to H equal 42 and then we say oh that’s a turn to the left so now we know at least at this point the greatest value the smallest greatest value is H and so we point right at H as we are moving down the tree and you see that you do the stir comp you see what it says if comp is less than zero we’re going to turn left and then right is going to point at Cur where we were and now the next time when we’re going to turn right which is what we’re going to do next it’s going going to remember where left so we’re now comparing G to D and G is greater than D so now we’re going to turn right but now we’re going to update left so D at this point in our search D is the largest number less than or the largest key less than G and H is the smallest key greater than G so you see how left and right are like breadcrumbs as we’re sort of pinking our way down uh this tree so then we compare G to f and g is greater than F and so we’re going to take a right turn and whenever we take a right turn we update left so now we have actually found the place that g belongs and if you look left and right are perfect for the link list because now we know that that left next is going to point to G and G next is going to point to H so so left next won’t point at H anymore it’s going to point at G and G new next is going to point at H okay so when we do this because we’ve got left and we’ve got right we just link them in and then we inserted into the tree and away we go and so now you look what we have done is we have now left and right just temporary variables that we had during this tree map put code um but if you look at this and look it carefully we have a correctly formed link list that’s sorted in order and we have a correctly formed tree and we use the tree to get to F fast and we use left and right so that once we got to the right place which was to the right of f we could just hook it into that link list with no additional cost okay see how pretty it is so now let’s take a look at some other of these things so let’s take a look at inserting J well J is going to go right when it sees H because it’s greater than it’s going to go left when it sees K because it’s less than I mean I I’m inserting I not J it’s going to go left when it sees K and it’s going to go left when it sees J and when it’s done you got left is H and right the right value and the the I shouldn’t even name these left I should call them the smallest wait a second the largest value less than and the smallest value greater than that would prob be a more pneumonic name is largest value less than and smallest value greater than instead of left and right I’m thinking of it as the thing it’s like a bracket you got a gap and what’s your immediate left and what’s your immediate right and so now we know exactly where this belongs and we know how to update both the link list and the tree so boink update the link list using left and right and then update the tree um using cerr right and so away we go and we’ve got ourselves in that Gap and so we can insert to the left we can insert to the right now remember remember remember that if we if if our key was J we’d have found it and then all we’d have done is updated the value so remember I I and my brain does this a lot when I’m looking at this code I’m like but will I find it and will I find the right one what if it’s already there well already there’s the easy part okay so there we go so let’s take a look at inserting a equal 17 and how this works remember the use cases got to do the beginning the end left Gap right Gap empty list and then pretty much we’ll have it so a equal 17 that’s going to end up all the way down so we are going to compare it and we’re going to we’re to turn left to the left to the left I think there’s a song and a dance about that um and so we remain remember right which is the smallest number greater than and it’s not going to be right is not going to stay H equals 42 because we’re going to compare A and D and then we’re going to go left again and now right is going to follow us and then we’re going to compare A and B and we’re going to go left again and right is going to follow us now the interesting thing is left is now null we have found the place we’re going to insert to the left of B but we’re also going to insert through the head because we know that left is null which means that we just found the lowest thing in the current something lower than anything in the link list so then we just hook the hook a in before B right after head and then we hook it in to the the left of the B going with a larger than anything else that’s in there we’re going to end up with this at the end of the link list we’re going to compare X to H and going to go right and remember left the largest value less than for now we’re going to look at K we’re going to go left again and left is going to be updated to be K the largest value less than then we’re going to compare X to M and X is still greater than M so we’re going to go I right again and left is going to be m equal 67 and you’ll note that the thing we detect here is Right equals zero which means we have no value greater than x in this list so we just say x next the X current current thing next is null and the Cur next is you know points to the X entry and then we hook it in on the right side of the m equal 67 and then we are done so if we’re going to do a replacement remember I told you this was the easy one so and again in my brain when I was writing his code I’m like but what if it’s already there calm down that’s the easy one okay so we’re comparing F to H well it’s to the left we’re going to keep track of right but we’re not going to use them because we’re going to find it and then we have a match and then we just see it and go like oh fine f is 16 we’re done life is simple if they’re equal we found it you know we don’t have to keep looking we found it we just change it and again think of how fast now how fast this works when it’s the keys already there it’s like nothing to allocate no links to make you just change the value and you’re done so it’s important to test all of these cases and I just went through every single one of the cases and showed you what they’re supposed to look like and I I will tell you that you will make mistakes and I will tell you that asking Google for help as long as you read what they say will inform you but but I doubt that Google’s going to just give you the whole code of something that is as intricate as list I would say a simultaneous sorted link list and a tree at the same time maybe it can do that because that’s what you’re really doing so up next we are going to go back to the beginning and go back to python for everybody to wrap things [Music] up well it’s been quite a journey we have built in C a whole objectoriented pattern reviewed all of objectoriented programming implemented a number of different python objects in c as a way to understand how C++ Works how Java Works how python Works how they all work under the covers so we come to the end of this sort of walk through all these amazing data structures and I hope you’ve had fun but one of the things I like to do at the end is I like to go back to the beginning so some of you have been with me from the very beginning python for everybody may be the first programming class that you ever took and I want to now finish by reviewing the very first program that I ever showed you in Python for everybody it is from chapter one I love this example and this is counting the most common word in a file so it’s in Python we read a file name we create a dictionary we read all the lines we split it I think we we don’t do conversion to lowercase but um then we’re going through all the word and words and we’re we’re we’re saying we’re going to set the counts to counts. getet word comma zero remember if when you first saw that zero is the default then we’re going to add one and that’s the way when we see the first word we we sort of bootstrap whatever the word is that we’re looking at then we have a Max Loop so we’re going to iterate with items we’re going to look for word comma count items and we’re going to do a simple Max Loop and then when it’s all done we’re going to print out the largest word and the count of the number of times that large word was shown so fast forward here we go now you by now have built a tree map hopefully so now what we’re going to do is we are going to use your tree map code and we’re going to implement this count so we’re going to have a tree map call The Constructor for it that’s our dictionary we’re going to have the tree map entry that we’re going to need to use to go through the iterator we’re going to have a tree map iterator we’re going to create because we don’t have strings we’re going to create a 100 item 100 item array name Char array and word and yes it’s dangerous we’re just not going to be too mean to our code and blow it up but we could and then variables like I and J and count max value and Char Max key that’s all of our setup stuff so we’re going to open the file name using scan F now we’re in C it’s not python anymore but you can see the similarity so then we’re going to do an F open of the file using read and again you see the similarity we’re going to do a scan F through fcan f with a file pointer and we’re we’re going to do a percent s which gives us a word and and word there is a pass by reference because it’s remember words in Array if we don’t get an end of file we’re going to then we’re going to write a for Loop to go through word and call to lower which is in ctype.h and then we are going to carefully put a new line at the end of word and then we’re going to get the current count with map get ask for map which is like self word is the key and zero is the default and then we’re going to do a map put into the word position with count + one and then we’re going to f close it or close the thing and we’re going to dump the map then what we’re going to do is write a Max Loop Max Key equals null max value equals negative 1 it’s a count so I guess we can assume that ne1 works here because there’s only positive integers in our dictionary SL treap we’re ask for an iterator we’re going to create an infinite loop we’re going to ask for the next item from the iterator if it’s no we’re done and if Max key is null or the curve value is greater than or equal to max value the one we’re looking at is greater than our current Max we retrieve we return We retain Max Key and max value and when we’re done we give back the iterator and we print out the max key and the max value and then we delete the ma and so that’s the miles to go before I sleep in a long time but the end is really the beginning these are the most basic data structures these are the classic data structures these are the data structures from chapter six of kernigan and Richie these are the data structures for 40 plus years that people have been learning about once you get good and I hope you have taken the time to get really good at these data structures because what these are is they’re like the omelet of cooking they’re easy and it seems like everyone knows how to do them but until you know how to do the easy stuff you can’t understand the large fancy stuff in a recipe you need foundational Notions and you can create something amazing if you have done all the work in this course and you’ve done it well your journey can continue with many great cookbooks the one I’m showing you now is what we called CLR um because of the the authors when I did it back in grad school there was only three authors not four authors CLR and this is a thick book a very thick book and um what you’re going to find is this is a very well written book and if you know everything in this course you should be able to open this book up to war Shell’s algorithm and write an implementation of C hell’s algorithm because you know how to allocate things you know how to create structures with pointers in them and you know how to deallocate them and if you learned every lesson in this course you can start you could almost open anywhere Alpha Beta pruning all kinds of things you just open it up and go four or five pages look at how they describe the algorithm and then Implement so I’m not going to teach you every one of the algorithms in this book what I’ve taught you is what an algorithm is and what the foundational pieces of all algorithms are okay so I wish you luck and I encourage you to keep going on your journey your journey is not ending It’s Beginning [Music] hello and welcome to the lecture in C programming for everybody that I call the epilogue and that’s because this lecture happened after the course was completely finished I have a saying in my life that basically says that when you think you are finished with a journey often that’s when you finally know where the journey actually begins and that applies in C programming for everybody because C programming for everybody for me was 4 and half year project to create the book create the autog graders create the lectures get it up on corera get it out on the internet Etc and so I just was going through the class and at some point I ran into chapter six of kigan and Richie and I’m like uh what will some good examples to use what what are some good examples that I can use that will be relevant to the students who perhaps have taken python for everybody and I’m like well why don’t we just Implement some python classes we’ll see how complex they get and if they get if it works out well it talks about the concept of interfaces and implementations you know and so so I think it worked out really really well and so as we were going through chapter six of kigan and Richie I built us a python string class and you can go back and you can watch those other ones as an extend double car character Ray with some chunking where it would allocate some space and then fill that space up and as that space filled up it would extend it and I made a list class and I used the link list from cigan Richie chapter 6 if you recall I made an extra little bonus section 6.5.1 where I talked about link list explicitly because in the original kigan enriching 1978 book and I believe it’s the same in the 84 and but I’m like I’m going to show you link list first and so I added this little piece to the the Canon the kernigan Richie Canon I added that I implemented the python dictionary using the technique of kernigan Richie 6.6 pretty much straight on when I built the python string class you’ll notice that there’s a structure that has a length and an Alec and the alic is how many characters we allocated and the length is how many of those we’ve used and we’re putting automatically a zero BTE at the end of it as you add things together eventually you get the length to be nine with a zero byte and the Alec is 10 which means we can’t add the letter d and so we real use realic to extend it and make it be 20 and then we have space to put both the letter D and the end of string we built a python list class it was it was so natural to just make it be a link list and Link list has two structs one is the link list itself that has a head pointer and a tail pointer and a number of items that like lets us give back Len when we need to give Len back but then every node we’re going to just have a list of of character strings or character arrays and so we have a pointer to some to a character array and then we have a pointer to the next and so when we sort of do our Constructor we allocate the object and then we set the head and the tail to null to indicate that the the list is currently empty and set the count to zero and we’re done and then as we add things to the list right we have these pointers and we point to the head to the beginning of the list the tail to the the last item that we added and we store using Malo the strings so that we get a pointer to a string that the list owns rather than the the parameter which doesn’t belong to us and then we hook the next up and there’s a little tricky stuff right if the string is empty which means head is null then we just point head at the newly allocated node if the Tail’s not null we take the last thing and point it to the one we just made and set tail to new and then we allocate the string and then copy the text from the parameter into text and then we store that as a pointer and then we update our count like if we add another one you have to kind of graph the new one in beyond the tail so the tail in instead of being null now points to the one we just created the fun and then we update tail to point to that and then the next on that one is zero cuz that’s our way of ending the list and if we’re going to iterate through this list we start at the head look at the item then we go to next and we look at that item then go to next and look at that item and go to next and it’s null and we’re done again we were able to build a quite competent python list object from that and as you might expect uh when we switch to building the dictionary class we just go into section 6.6 and go in and make a hash table with buckets and it’s uh literally the the hash the bucket based hashmap is probably the most common programming interview question perhaps it’s less common now because every know everyone knows that it’s a programming interview question right and so you know I I just figured of course the dictionary is going to be a set of buckets that are a set of pointers to lists you know recall that hashes are some function that takes the key and creates a large pseudo random number which means it’s deterministic but it’s widely distributed with the idea of to limit collisions so John Smith and Joe Smith hopefully will hash differently even though they’re very close right and so the way we did this again following kernigan and Richie is we use the key computed a hash which is a large integer generally but then we modulo it based on the number of buckets and so the buckets are in a sense for link lists and if we wanted to write this code in a way we could have kind of used the list object and said here and and and and be a little bit less repetitive but we just implemented the whole thing so if you look we start with a struct KR dict which has a number of buckets it has four heads and four tails and account and so it’s just heads and tails of the way you do link lists and if you look at the node we’re going to do key and value and I’m going to make it be a string key and an integer value again to simplify right um and and the and the Char star key is a pointer to a key that we’re going to save and if we look at the new operation we allocate the actual dictionary object we decide how many buckets we’re going to have the way I Define struct car dict it’s just a Four Element array then we set them all to null so that we know that they’re empty because it’s important to know if the heads and tails are each of the link lists are are empty now one thing is this is doesn’t have any expansion mechanism and so I just wanted to keep it really simple to show you the data structure so I kind of like punted on rehashing an expansion and then we set the count to zero and then we we return it as we’re inserting things in right we use the hash to figure it out and then we simply have four link lists so if you were to compare the KR list code to the KR dict code you would see that a lot of it looks the same except we’re starting with a head that has been chosen by a hash computation along with modulo based on the number of buckets as I finished all that up and I finished the class up I wondered I began to really wonder I looked I started looking at it less from a c and k&r kigan Richie perspective and more from a python perspective and I’m like did I just inadvertently do exactly what GTO van rossom did did GTO van rossom read this book like most of us did in in the 70s and 80s and did he just say you know what I’m going to make a list object and it’s going to be a link list and I’m going to make a hash object and it’s going to be a set of buckets link lists and buckets like everybody would do so I decided I would ask gido if I could come out to him see him and talk to him about the influence that kernigan and Richie chapter six had on his design of python and in particular was my guess cuz I didn’t look at the python code to do this I was really teaching kigan en Richie chapter 6 and so up next we have the first of two interviews with Kido asking about how he built his structures and whether or not my structures that I had just guessed and assumed were even close and so we started the interview with me handing him a copy of the kernigan and Richie c book which was signed and I left it with him and saying you know skim through chapter 6 and tell me how chapter 6 affected how you built the original version of python [Music] where in the python 001 did you start building the objects and where where did the objects come first and then a syntax came or did you build a syntax and then the objects I think in my head I had both okay because I I was building a stripped down version of ABC and I had sort of I was very familiar with how ABC implemented its data structures and I had pretty welldeveloped ideas about how how I would do it instead of the ABC way both for the syntax and for the data structures so for the syntax actually my main gripe about ABC was that uh it used uppercase letters for the keywords of the language they had a reason for that but uh I didn’t think it was a good reason and it just looked horrible to a unic hacker like myself so that’s what I wanted to change for the syntax but I knew that I wanted to do the indentation and I I had already participated in the parser for ABC so I knew how to do that stuff I had some some of my own ideas but I I knew what I wanted I I literally actually started with a parer and the the I started with a lexer and a parzer those were actually the first bits of the language that I wrote but before I started I knew I had very specific ideas on how the primitive data types would be implemented I would use the same reference count mechanism that I knew well from ABC Uh I would implement integers in a similar way because I want I wanted that would be easy would be an easy choice not to put in the object field yeah no I sort of I wanted everything to be an object that that was also a thing I approved of about ABC and I think I I have to take it back about the arbitrary Precision integers those came quickly but I don’t don’t think that they came immediately there was there was an integer type which was 32 bits there was a separate long type which survived until the end of python 2 which was arbitrary position and there was a flow type uh then for the the sort of more complex data structures uh and and and sort of the the the in the numeric types were not all that different or interesting from not that different from ABC uh but for the the rest I I sort of had seen what ABC did which was that everything was implemented as a tree even strings and I did not like that because I wanted to interface with system calls and C libraries and I said I I want strings to be arbitrary length but I want them to be a linear buffer and so too bad if a long string sort of uh requires allocating a large buffer at once uh most strings aren’t that long I’ll make sure that it works for any size but uh I’ll optimize for the short strings that that are the bread and butter of so many programs I imagined would be written in Python that that is a brilliant choice but not automatic or intuitive that that would be the right answer having having sort of written a lot of C code and and knowing that I wanted python to be extensible with C that was also one of the the very early choices I I wanted to to sort of Link back to code in a natural way so the sort of the the import system was part of that so when when python was a month old or maybe two months old if you were appending to a string in a loop was it basically extending reallocating and copying no strings were always immutable so so yes it was it was allocate it was calculating the size of the result allocating a new string object and then copying the two Originals into that there there there is a string resize internal operation that is sort of intended to be only used when you’re building up a string before you’ve shown it to anyone else right and I I needed that because I was envisioning an IO system where you say oh I’m going to read a line and I don’t know how long that line is going to be or maybe I’m going to slurp an entire file into a single string and I don’t know how long that file is so I’m allocating a large enough buffer I’m reading into that buffer and then if it turns out that I allocated 1,000 bytes but what I read was only 15 bytes I reallocated to give the sort of remaining 85 or whatever 900 byes talking about your thinking Before You released the very first version of Python Meaning you didn’t like at some point you came back from vacation and you handed it to somebody at work this is your thinking when there’s only one person before even the 0.01 oh yeah yeah I I sort of I wanted strings to be done that way including like the the little detail that if you have a string of say 10 bytes you allocate 11 bytes and you put a no bite at the end just so that if you happen to want to pass that string to C library function that expected zero terminated strings no by terminated strings you wouldn’t have to copy it there might be a nobite in the middle so you might the things might still go wrong but if you youve sort of knew or trusted that that wasn’t the case you wouldn’t have to make a copy with one extra bite just to make sure that that no bite was there the no bite is part of the data structure only of course visible on the seaside so for lists I had a similar idea again lists in in ABC uh were a twee structure that was sort of super efficient even if you grew a very large list from small ones and I thought the three structure was way too complicated so I said okay a list just a list is a mutable data structure that was sort of a concept that didn’t really exist in in ABC in ABC everything was immutable I I thought well pragmatically speaking I prefer my larger data structures meaning lists and dictionaries to be mutable and so the list was the implementation was always just a poin or two a buffer that that could be reallocated we call it list in Python it really is an array that that is just is an array of pointers and each pointer points to an object we know how long that array is that’s in the object header and so if there’s no room we reallocate it and if we throw something away from the middle then we shift everything over and we also reallocate the only the only Improvement that happened to that data structure in the last well let’s say 34 years is that the original implementation did not have over allocation I was relying on realloc doing some kind of chunking so if you realloc something from a th000 bytes to 1,4 bytes I imagine well internally realloc probably aligns everything in in chunks of 16 bytes or more and so it’s not going to move that that memory in that sort of eventually that was shown to be either false or just inefficient uh and Al would do it as well as you would have done it but eventually it didn’t it didn’t yeah and and so uh eventually there there sort of internally there are two sizes that are held in the list object header one tells you what the length of the array is for of the list is to the python user and the one tells you how much space there is in the array which and the second is always larger than the first and then I’m shocked that it wasn’t the link list oh really I’m shocked oh I’m sorry name list uh but okay yeah I know it it I get what you’re doing so then talk through as you built the earliest dictionary structure what what’s different between that uh so again in in ABC dictionaries were trees and in the case of dictionaries uh they were kept in sorted order by the key the key was always some orderable object well I think in ABC everything was comparable yeah at least two things of the same type trees so ABC p and and again I thought that was was too complex and and I I had skimmed at least K volume 3 which explains the co concept of hash tables and I was familiar with hash tables in Pearl I where I think they’re cold hashes and so I just sort of I leave through the table of contents of can volume 3 and I picked a hashing algorithm and then and and sort of a hash table organiz ation that that felt right and so I I sort of I chose open hashing instead of uh sort of having separate linked lists for buckets uh and the original hash algorithm for strings at least was something I don’t know if I picked the the the hash function out of K also but I probably did between Python 37 and python 3.8 dictionaries kept their order ah ah like what happened was it the Revenge of ABC you know meaning that the trees they so the the it’s a different kind of order in in ABC the keys were sorted so uh if you if you have numeric keys if you have key the 112 and 500 in your dictionary in ABC at least the keys are ordered 11 12 500 or 1 two 3 or whatever and if you insert 11 it gets inserted between 1 and 12 on the other hand in the the newer python dictionaries that preserve order uh it is insertion order right so it is not me because that sort of python dictionaries don’t require that the key type is sortable is comparable it only needs to be hashable and so we can well and it it and of course it needs to be com you need to have an equality comparison uh is this string equal to that string but you don’t need you you never need to look at is this string less than that string so what did you do to make it keep insertion order uh so that was in a time when I had long relinquished or delegated development of most of the basic data types uh I think we had a developer in Japan who sort of for years had been improving the efficiency of the dictionary type and sort of one one of the problems of the original design with open hashing that I picked from K is that it’s pretty space inefficient because if you have uh I let’s let’s see if I can reconstruct for each key value pair you have to have pointer to the key let’s be oldfashioned and say that’s four bytes you have a pointer to the value that’s another four bytes then you have the hash which is another four bytes so so now the the hash table is an array of structs that are each 12 bytes long and for the hashtable algorithm to the lookup and insertion and deletion algorithm to work at all uh you can’t have the table be more than 2/3 full so that means that if you have an array of a thousand entries you can store at most six or 700 key value Pairs and so you have three or 400 uh times 24 bytes wasted space and so our Japanese uh cev figured out a way to have Separate Tables where the the sort of the hash table only contained one thing I and uh the actual key value Pairs and hashes were kept in a a table that had no holes in it so they were basically like kind of growing filling remembering everything is remembering where things are La out and so first he stumbled upon sort of I think he he refined the algorithm a few times having these separate AR days and then he stumbled upon the property that oh hey it it happens to preserve insertion order in the second table for sure right exactly in in in the second table because the the the sort of the table in which you jump around based on the hash value now just has in an index in into the other table and so there is an additional space save in because if you if your hash table has less than 256 elements uh that array only needs needs to have one bite for the index and so there there there there’s like all kinds of cleverness there it comes as a surprise to me that you don’t do link lists really I could have told you that 10 years ago that it doesn’t do link list you you I mean I guess that has probably to do with your your desire to interoperate the Sea kind of just percolates throughout that uh blocks blocks of things that can be extended and then filled in seem to be better than generic n lists what I didn’t know at the time that that’s also a a good architecture for Modern Hardware because you have you have better cach locality exactly I I would have thought which is not a concept that that I think I I even knew existed in in ’89 so I I I think I just avoided link lists because because I didn’t like them for some other reason that’s cool that’s exactly it’s not exactly what I hope you say I hope list over and over and over again because I just have assumed all my life that link lists were the you know link list and hashmaps and Link lists on top of hashmaps and Link list link list link list cuz computer science thinks about link list all the time there are plenty of pointers in Python yeah but but sort of the classic linked list is not used [Music] much so I hope you watch that interview carefully one of the things that I do when I edit the interviews that I have with luminaries is that um it’s not uncommon that the questions that I ask them are not perfect questions and then you kind of what I do at that point is I’m like whoops my assumptions were Incorrect and and so one of the things I did in the editing of the interview that you just watched and you’ll see it in the interview the next one is that I didn’t cut out all of my confusion and that the reason for that is is that I wanted you to see the moments where I had an assumption that turned out to be wrong and then I’m kind of mentally scrambling to ask a a good question and I’m and I’m asking for clarifications and so during that video you can see me learning from gido the summary of this is that gido really didn’t use the link list much at all he didn’t use the link list for the list object and didn’t use the linked list for the string object and didn’t use the list L linked list for the dictionary object surprise surp surprise I was completely wrong the python 1.0 list in dictionary objects were extendable arrays of pointers and not linked list at all while gido was an expert in k&r chapter 6 like most of us were his much more recent work was um in ABC and C++ and so he really wasn’t looking at k&r for his data structure implementation and more importantly he was looking at ABC for his data structure implementation or more specifically he was looking at ABC and saying I don’t like the way ABC did its data structure implementation but he didn’t then go back to chapter six of kernigan and Richie and say well I’ll just do it this way which is again I’m a computer scientist and my instinct is like chapter six of keran Richie is just the ground truth why wouldn’t you do that so I think he started with lists as simple extendable ARR which makes a lot of sense because you’re either linearly looking them up which is not the fastest way or you’re looking them up by position like sub five and why not use array so that just you know once you talk to him and he walks you through it you’re like oh yeah I get it I get it but then the other thing is is he didn’t even use Link list and dictionaries and you can see me as I’m asking that question like incredulously saying like please tell me that you’re that you use linklist and dictionary and buckets like like all the interview questions for the last 35 years and the answer is no so he looked at a an earlier document and this was the truth of algorithms for all of us in the 70s um and that is Donald new volumes 1 two and three and here’s here right here is Donald newth volume 3 the one that I scan to to get what’s in there and and here in where are we yeah Collision resolution by open hashing so what he was doing was what good computer scientists did of the day and that is read through this kind of a book and found inspiration for how to build a hashmap because he knew he wanted to do hashing so we we we did hashing in Kar chapter 6 and he wanted to do hashing but he did it a very different way and it has to do with the Collision resolution and and the linear probing and so again there were no real link lists in the core data structures um it turned out that and we talk about this a little bit in the video that um there are performance advantages to not using link lists and and the interesting thing is if you look at when G was actually building um python we were all using computers that didn’t depend heavily on cached memory architectures meaning that the CPUs that we were using and the memory that we’re using had a speed match much better and that’s because all of it was in refrigerator size computers and things were just slow enough that the CPU was not that much faster than the memory but when this CPU became a single chip CPU in sort of in the late 1980s and early 1990s when the floating Point fast floating Point even ended up on a single very large very hot chip um the memory could never keep up because what happened inside the chip which is you know maybe 3/4 of an inch to an inch or more likely more like a half inch um that was so fast inside the CPUs that the memory just couldn’t keep up and so they put caches inside the CPUs that could keep up with the CPUs but linkless caused this bouncing bounce a bounce bounce bounce a bounce bouncing through memory that would that blew the cash and so if if you were to you know try to run a pure link list based operation with you know a 10,000 long list it would perform terribly on a 1992 93 94 computer but gido wrote this thing in 19 like 89 and 90 and the so the so he wasn’t like thinking I got to make an cash efficient data structure he’s just like I like arrays but they turn out to be really good for cash architectures and so to some degree if you were to go back and look at it and say well let’s go back and add link list you’d say no because link list would have a really bad performance impact if we did them in a sense the way I did them when I was teaching you chapter six of kernigan and Richie and so that’s why it was you see the Delight I mean I’m wrong when I’m talking to guo I’m wrong the whole time but I’m learning and I’m like oh that’s so cool so let’s let’s do a little bit of a review and this sample code is available to you so let’s take a look at my re-implementation of a python 1.0 list not the kernigan Richie way but the gido way and what you find as you look at this code and and and I I’ll get some code walkthroughs and you can look at those later but if you really spend some time and compare the link list implementation to the extendable array implementation you’ll realize it’s simp so for one thing we only have one structure it’s the list we have again how many allocated spaces are in the list much like the string that we did I did the string pretty close to how gido did the string but the list I got wrong so you have an allocation in length which is very much like the string that I did and then a an array of pointers okay so that’s what the Char star star says that’s a an array the first star is an array the second star is an AR array of what it’s a pointers to items okay and that is an array of pointers to characters that’s what that’s saying and so if you look at what we do we allocate the the thing we we set the Alec to zero and I mean alect two and the length is zero and then we allocate an a two item array of pointers we know that length is zero so we know that none of them are used and so that’s the data structure in a sense it’s already simpler than a linked list and if you append first you got to see if it’s you’ve got space to append right and if you’ve got space to append well that’s okay you just allocate the new string you copy the parameter into that string and it and wherever the end is and length tells you where the end is you put it in that position and add one to the length and so at the end of the first one you’ve got a half full link list now uh with a zeroth item pointing at the character array that you just saved and then if you put the second one in you do the same thing and we don’t have to do anything right now because the length is two and the alic is two we’ve got a completely full array because our list has two items in it but then the next time you come in self length is greater than or equal to self Alec so we’re just going to extend it so I just added two entries for Simplicity and then I do a realic and what realic does is for the things that were in it before we reic they get copied if we get a new pointer back sometimes you get the same pointer back with a little more space allowed at the end sometimes you get a new pointer you can’t tell with reality computer scientists like myself who were trained on link lists really tried to avoid realic and maybe that was a good idea and maybe that was because realic wasn’t such a great implementation and gido and I talk a little bit about like ah real realic let gido down as python you know progressed and became more and more significant so he tended to start doing his own memory management and not depending on realic which is a combination of the C runtime and potentially the operating system but the key to realic is if you got two items in there you might get a new pointer back and that’s why I’ve got to reassign it a new pointer back but it’ll copy the ones that are there but you’re responsible for setting up the ones that are new now for us because length is all we need we don’t even have to set like two and three to zero we don’t have to do that so we just now have four spaces and we save the Malo we maloc it again and we copy the save thing in and we put it in at the end now we have space and then we add one to the length and I I have some code walkr that goes into this more in more detail but let’s just take a quick look at the shapes of these two approaches right and again I just assumed link list but I’ll tell you that I apologize to you I’m like well some of these for Loops in link lists are not the greatest thing blah blah blah blah blah blah right and if you just look you can kind of see how the python in the lower right that just has an array of pointers is simpler than the link list on the left and again we computer scientists have always like taking pride in the fact that we understand link lists but that doesn’t mean that just because it’s something we know how to use that it’s the right thing in all situations and G gido chose to go elsewhere and then if we look at the uh the code in the upper left we’re dynamically extending the pointers there was no reallocation in my KR list of pen because I didn’t need to because it would always Alec a new node so there’s two malaks in here and the the kernigan Richi one you Malik the node and then you Malik the string whereas in the in the G one you just maloc the string and every once in a while you realloc the items the part of Link list that always gets me and I just have to draw a picture every time I do it is that part in the middle of the KR list uncore append and that’s if self head equals null self head equals new if self tail not equal null self tail next equals new and then self tail equals new I get it every time right but those don’t roll off the tongue nearly as easily as saying self item self length equals saved self length plus plus for all of the years since 197 72 we just use Link list almost in some ways as a badge of honor and gido felt no real urge to do that and inadvertently his approach to extendable arrays is great for caching and it’s great for fast lookup because you can never look up a link list by sub 27 whereas if you do a gidos way sub 27 is a very cheap operation so up next we’re going to dive into what gido did as he implemented the python 1.0 [Music] dictionary hello and welcome to a Code walkthrough for C programming for everybody the code we’re walking through is some of the epilog code um where we’re comparing kind of what I did in my chapter six kernigan or Richie stuff to what gido tells us uh was the python one and then later the python 3.7 approach to dictionaries lists and strings so what I’m going to go through right in this one is the string so let’s take a look at that code the this is basically the code that is the string code now the pattern that I’m using here is a chunked array of characters and so like like if you look at it the string has some data but what we’re adding for this particular one was something that g was very obsessed with uh in the early python version again from ABC and the idea is is that we use this thing called reference counting and it means that if you sort of assign something you don’t always have to copy all the data you can kind of copy a pointer instead but then you have to be careful that reference count because you got to because the Dell operation has to know when the reference count goes to zero so this pretty much looks like the code that I wrote uh sort of based on the k for the k&r book to implement it with some reference counting and the easiest thing to do is uh look at Main code here and so we create a new string we dump it we add an H character we dump it we add L world as a string and we dump it and and then we’re going to set it to a new value um but then here’s the new part right here um we’re going to create this assignment and so this we’re creating a we have a variable called X which is a pointer to a P1 s TR and we have a variable called Y which is also a pointer to a p1st so what this is is this is P1 store assign and we’re passing in a pointer and so what’s going to happen here is this is like going to increment the reference count you’re going to see this it’s going to increment the reference count because now we’re going to have two variables X and Y that are literally pointing to the same string so let’s let’s even run this code okay and so I’ve got I’ve got it run here um and so what we see in that last bit when we make a all all the top bit here is all on the string X but the interesting part here is where we say string x equals a completely new string and we’re pointing out the location in memory that that is and then after the assignment statement we see string y equals a completely new string and it’s at the same location but what we’ve done is we have incre mented the reference count then if you look at the main code we d x which was the original P1 Dell X which is the original one and all we do is we decrement the reference count but don’t we don’t actually deallocate the data and then we still have the string y we shouldn’t have the string X but then what happens when we delete Y at the very end here P1 store Dell open print y Clos print then it actually free fre the data okay and so the idea is we can copy a reference without copying all the data have X pointing to it y pointing to it with a reference count of two and then we can free either X or Y that’ll instead of throwing away the data that decrements the reference count so let’s just sort of take a bit of a look now most of this is the same as what we covered um like if we look at uh let’s look at sort of the The Constructor p1st new we allocate a a buffer we allocate the object and then we allocate 10 bytes and we tell it that it’s 10 long and we we put a new line an end of string in there and we set the reference count to one so as soon as we create it we assume that this new is going to be assigned into a variable and then we make the reference count be one and so let if you look at the Len and the dump and the the ETC you and you look at the append we see the append is pretty much a clone of what I did where you know if we don’t have enough space we allocate another block of 10 this GTO calls this chunking in the video and then we reallocate it and then we’ve got 10 more and so we can stick our character in to the end of it and add one to it and then we we null terminate the string so that code is identic IAL to what I did uh in the kernig en Richie book um and and so let’s look at the assign code so this is the interesting thing where P1 store aign we have one pointer and we’re going to return this pointer so we have two variables pointing to the same block of dynamically allocated memory so when we’re doing this assignment statement in effect yal X inside the object we don’t need to worry too much about y or X but we do need to know that we are now referenced two places so every time we reference at a second or third reference we just add one to the reference count so self Arrow refs plus plus and then we return it so then if we look at the code in the main program where we’re saying struct p1st y equals P1 St strore assign X we could have said y equal x but we wanted to record the fact that we’ve added a reference so that we know that that has reference count of two so we don’t inadvertently free the wrong thing and then the only other place that this gets interesting is in the Dell method so if we go into the Dell method what’s cool about this and this is where reference counts and so we we in our main code we just if we’re we de we delete y with underscore Del method we delete X we can do all that stuff and it’s inside the object where these reference counts are being resolved and so what’s cool about this is we’re saying okay we’re going to Dell X which was the original thing that we assigned it into and if the reference are greater than one we don’t actually free any data we just decrement the reference count and we’re done and so that’s where we see in the output we see decrementing reference and you see all these addresses are the same 0 6 0x 60 blah blah blah 91 c0 okay and so they’re they’re being decrement and so the first free decrements it and that goes from 2 to one in this case because we the underscore assign incremented it and then the underscore Dell decremented it but then when we get the ref count to one that means we’re in effect freeing the last reference so it prints out freeing reference and you can see it says freeing we’re actually freeing the data and so that’s where we do the free of self data and then we free the the self to get rid of it which is the code we did before and so the real e essence of this code is the uh uh the obsession this this code is the obsession with reference counting and that has to do with the fact that you want to be able to point multiple places to the same string without wasting extra memory just to make a bunch of copies for no real purpose so when you’re when you’re kind of making a copy that points to the original then you have to increment the reference count and decrement it and so in the rest of these uh sample code I will not add reference counting to it because we’re just going to look at the underlying data structures but it’s really important to understand that reference counting was essential to the ABC implementation and gido’s C++ implementation and python 1.0 implementation it was all about reference counting to save very scarce memory so that you could point to the same string many times and the reference counts could get very high especially strings that were constants so reference counting is important and this is just you can take a look at this code and compare it to the KR code that I I built um reference counting is an important part of of python [Music] welcome to another Code walkthrough for C programming for everybody in this code walkthr we are going to compare how uh gido implemented list in the earliest versions of python versus how I implemented list while teaching chapter six of kernigan and Richie and uh and so this was if you watch the video of my interview with GTO van rasum this was like my greatest like Revelation like what and so the the big Revelation is is that um Python’s Python’s list object in you know python 0.01 was an array of pointers and

    if we look at the kernigan and Richie list item this was a linked list I did a l link list and so the actual KR list struct has a pointer To The Head and the tail of its link list and a count and again this is Classic Link list and to some degree while I was teaching this in kernigan Richie chapter 6 I was really teaching you link lists and using the python list abstraction to teach it and so we have two data structures we have this node which just has a pointer to a uh text saved and a pointer to the next one so this is like Classic Link list I’m not going to I’m not going to go through that again so you just go back and watch the chapter six stuff and I talk about link list all the time but that’s not how python does it did it or does it and it’s not clear to me exactly why but he I think he was just trying to build the simplest possible data structure and we’ll look at some code and you’ll see that there is a certain Simplicity like already in the just the struck definition we see the struct P1 list there’s only one of them if it’s a link list you have sort of a struct for the node and a struct for the list itself the The Constructor P1 list new well we’re just going to Malik the the object and then we’re going to say okay let’s allocate let’s allocate to a a charact an array of pointers to characters and so so if we look at the struct P1 list and we see Char star star items that is syntax for a array of pointers okay and so you think of each pointer is either 32 bits in the old days or 64 bits in the modern days so that’s an array and so so what I’m doing in this P items equals Malik open print P Al time size of char star that means I’m allocating two elements that are Pointers which means again 2 * 64 bits in the modern world and noting that I have two in there and length which is the python view of the number of items is zero so we we’ got space for two and we have zero and that’s an array that we know Alec tells us how long the array is and length tells us how much of the array we’ve used and just to go back I’ll try not to compare and contrast too much but just think about the complexity of Link lists the way I I did them in kernigan and Rich my kernigan Richie chapter 6 you have this thing called Head you have this thing called tail which is null and count is zero and again for those of us who know link list this is obvious it’s what you do but an array is simpler than a link list and so you know there we go okay okay okay okay so that’s what we’re what we’ve got when we’re done with our Constructor we’ve got an array of two pointers two characters allocated two and length one so let’s go take a look at let’s take a look at the main code right now and so the the key to this main code is that in a sense here’s the kernigan Richie main code because this is like an interface and an abstraction the main code should be pretty much the same and the main code pretty much is the same meaning that we create a link list we append some stuff to it we print the list we check the length we look something up and then we delete it and we do both things because below the abstraction below the interface both of these implementations both the KR list and the P1 list are supposed to provide to us the CER the same abstraction we can append we can print we can check the length we can check the index and we can delete it and it does not matter what the implementation is and that so that’s more the Builders of the Python runtime get to decide how to do this because we’ve got a contract with them again an interface so let’s just take a look at the code we’re going to add hello world to our list and print it then we’re going to add catchphrase and print it then we’re going to add Brian and print it and then we’re going to say how big is it and then we’re going to ask where is Brian in there and where is Bob in there and then we’re going to delete it and if you look at the run you see you know the list starts out as hello world and the list is Hello World catchphrase and we’ll see what is extending because we started with two slots in our array and for the first two you didn’t have to get bigger but then we’re like oh wow we’re running out of space so we got to like extend this array we’ll show that code in a bit but then we end up with three things in the list again that’s not our job as the caller three things in the list and Brian is in position two which 012 hello world is zero catchphrase is one and Brian is two and Bob is not there so we get back at Nega one one pretty stuff okay so let’s take a look at the appen code because this is where the fun happens go so here’s the append code so let’s take a look at the I let’s go back how I taught you aend you know a month or so ago and so so again you got this uh lecture has pictures of all this right so if you’re app pending um if it’s empty your self head is new if the self tail is not equal null then self tail next equals new and then self tail new equals new so that’s just like you got to draw the picture and add the little arrows and Away you go and then you allocate save the string itself but now we look at the P1 list and we ex we have to extend it if necessary right so if self length I.E is greater than self allo so we allocated two in the first in the in the Constructor and then if the length is two we don’t have enough space because our our next one would be sub two and that you can’t you can have Subzero and sub one in a two long array and so all we’re going to do then is we’re going to have chunking and gido mentioned chunking in the video we’re going to chunk it to add 10 and so we’re going to basically extend from two to 10 so we’re going to add 10 we’re going to increase the Alec size and then we’re going to call realic and realic is going to take the array of items and say however big that was free it move it whatever extend it depending on what realic is how realic is working and we’re going to say okay we want to have TW uh 12 of these things now 12 and and that becomes our new items now realic will also so there’s two things in it and we extended 12 realic will copy the two things so we don’t have to do any copying because realic copies the first two things because it knows that items is too long and so it copies the first two things and then gives us 10 more so we there’s no copy code here and so I think you know GTO really liked the realic and a lot of C programmers don’t like realic and he he did he’s like look realic says it’s going to do this and I want to do this so re realic do your job and so I I I think back to my own time as a software developer I just felt because again we were taught link list link list link list I just didn’t think about realic as a useful thing and gido clearly felt like real is the answer and it lets him have this simple array array mentality so you just reallocate and say look here’s an array of this two I want it to be 12 help me and we’re done and so that’s really simple code I think very easy to understand and then we make a a a save string and then we just add at the end of the array self length which in this case is sub two is that string and then we add one to the length so this code is really simple and if you were doing debug print you don’t really need any addresses because if you recall when I’m printing in all my link list stuff so that you can debug it and redraw your your lines and figure everything out I’m I’m printing addresses out all the time but no this is just a position so this is the zero the one and now the two in this case and so that’s where you see when it says extending from 2 to 12 that’s as a side effect of adding the third item to a list that was pre-allocated with two slots okay and that’s it but then let’s take a look at the print code right let’s look at the print code for both of them this is KR list print let’s take a look at the print code in GTO van rossum’s version okay so the key to this is the for Loop in P1 uncore P1 listor print the for Loop is 4 I equal 0 semicolon I less than self length take that blank out I less than self length i++ that is like really basic chapter 4 chapter five stuff in kernigan and Richie so it’s just an array so you write a simple incremented for loop it’s fast cash efficient it’s it’s beautifully simple right so in this print this is obvious now when I showed you this same same thing in kernigan and Richie chapter 6 I was I I this four in KR listor print it says for CER equals self Arro head ker not equal null ker equals ker next and I apologize for this line and I’m like you will eventually write this because it’s an idiom you will write this quite naturally and it’ll make a lot of sense to you right but in Python 1 we didn’t do that it was an array and the only place that we have to worry about its Dynamic nature the only place we have to worry about its Dynamic nature is in the append right where we reallocate it so everything we’re doing here is a simple for Loop so like even the Dell command here the Dell basically says let’s free all those little items let’s free those character strings with a for Loop for I equal 0 I less than self length i++ again a beginning c programmer can understand this code and if we look at the C code in KR listor Dell we just see a while loop and remember you had to or you had to do these in a certain order and so the whole free and I talked about all this stuff the fact that you got to do it in certain order ah well this is pretty simple right so it frees each of the items it’s 4 equal Z in in P1 list Dell you free each of the characters strings that we point to then we free the array that’s got those pointers which are now valid because we got rid of them and then you free the object itself and so to some degree one can appreciate the Simplicity of of what gido did in this by going with arrays and again the the key thing that like misled me or that gido just took a different approach it really came down to realic and so he believed in I was trained to not think about realic as plan a and so I thought link list were plan a because then you don’t have to do so many realex and and G’s like I want an array and realic says it’s going to do this for me and away we go so I encourage you uh to take a look at uh P1 list and KR list and put them in two windows next to each other and sort of compare and contrast and what I really want you to do as you’re comparing and contrasting is I want you to think about the complexity of writing debugging and then later the complexity of understanding and how much knowledge a programmer has to understand to be able to make sense of these two uh bits of code and again for those of us computer scientists for whom link lists are very natural we just write this stuff I can write it pretty fast but that doesn’t mean that it’s the easiest to learn so way we go and so I hope you found this comparison interesting cheers [Music] so now I want to talk to you about the python 1.0 dictionary as built by gido back in 1989 1991 and this sample code is available under SLC code and it’s the epilog code and it’s p1d I.C so the key thing is is that instead of instead of reading the SE programming book and KR in chapter 6 G van aome was reading page 518 of a much earlier document which is more about pure data structures and algorithms and so this was this was kind of like our Bible on how to write good fast code and this was our Bible on how to write sophisticated algorithms so gido found this and he decided he didn’t want to make link lists and that’s partly because of his experience in ABC and so this is open hashing using an array so this is an array based hash hash concept and in the bucket Styles it’s there’s an array of hash hash link lists and so this is an array that actually everything is stored in the array rather than a pointer to things that are outside the array the key in open addressing is how you probe and find open slots when your initial hash leads to a collision and hashes we try to make hashes not Collide but they can Collide and so this is basically it us as a circular iteration and it actually if you look at there at L3 it’s subtracting one and if it’s less than zero set I to i+ M go back to step L2 it’s probably just easier to show you a picture of what’s going on so let’s imagine that we’ve got an array of eight key value Pairs and this is literally an array in our case these will become pointers key key be pointer value be po pointer but canth is not thinking about that as far as kth is concerned everything is just a variable so it’s an array of key value Pairs and the the key thing to the hash it’s the same hash computation and the same modulo operated ration that looks at the number of buckets but when it picks a slot in the the array that slot is just where we hope to store it but if that’s already occupied we got to find another place and we presuppose that there’s always space and we’ll talk about how that ends up getting solved later with rehashing but the key is is we got to figure out where we want to put it assuming that there’s space and linear probing algorithm is you start going backwards so you go from three to two and is that available great use it if two is not available go to one go to zero and if you get to zero you got to go all the way to the end this is kind of a circular list eventually it’s going to visit all eight entries but it’s going to start at whatever entry the hash indicated it’s supposed to start and the whole purpose of the hash is to get to the entry that has the key and value in question more rapidly or to know that it’s not there and the way you know that it’s not there is you run this Loop and when you find a key in a value of zero which means it’s empty then you know that it’s not there and you also know where you’re supposed to put it so if we look at the data structures that I wrote to implement this python one dictionary we have a d Noe which is just a pointer to a key and a pointer to a value because we’re going to do strings key value pairs to simplify this the dictionary itself has the the size of the array the alic which we’ve been using all along count or length I switch back and forth in some of this code and then an array of D noes now remember that that’s a struct so we look at the Constructor we allocate the dictionary we set its length which is the number of things in it to zero and we set the Alec which is the size of the space we can store things to two and then we allocate our two item array of struct D noes and then we have to mark them we can’t just assume there’s zeros when we get it back from Malik uh some malaks give us zeros some malaks don’t but in this case we need to no matter what ensure that we have them marked as null because our null is an indication of emptiness so that later when we’re looking around we can find which areas are empty and so if we take a look at the put the hash tells us where to look and we put this all in P1 dict find which does the hash computation and does the modulo of the number of ETS and gives us back a pointer to the D node in question now this pointer is either where that key belongs and already exists or it’s where that key belongs and it’s empty now if we found an empty slot we don’t have to allocate the D node because it’s already the array we just have to set up the key with a Malo and a copy set up the value with a Malo and a copy and then record the fact that we now have one key value pair in our array we’re going to use this this not only to return like Len but also to know when we filled it up because when Len gets to be the size of Alec it’s full and we’ll talk more about that in a second so that’s what it looks like after we’ve inserted one key value pair now let’s say we’re getting a put request for a key that’s already in there so we’re going to say Z equals W instead of Catchphrase so we run predictor find and it comes back and it says here’s your thing but the difference is you look in the key the one it’s pointing to the one it gave us back the one it found already has a key now you might think that’s bad news no it’s great news it means Z already has a slot and then all we have to do is update the value because dictionaries function like assignment statements if you have Z that has catchphrase and then we get Z equals W you just you’re supposed to store W and then throw catchphrase away and so that’s you see it do that right it it frees old value which was catchphrase and then Malo the new one and then stir copies into it and now at the end of this one we still have a length of one and Z maps to W in our hashmap so now let’s add let’s do another put let’s say y equal B we’re going to do PCT underscore find and it’s going to Hash the value y it’s going to give us back position one now that could be because it hashed to position zero and linear probing found its way to position one or maybe it hash to position one it just doesn’t matter predict fine says look this is the best possible place to store way Y in this particular array so now at the end of that we will have z and y and we have an Alec of Two and a length of two but now let’s say we want to insert C so the problem is is that we’re full which means that predictor find is not going to find one it’s whatever it hashes to it’s going to look through all the rest of them but there’s no space there’s no space in the array so what we have to do is if it’s not there and we’re out of space we have to expand items that is the code what we call rehashing so let’s take a look at the rehashing code we’ll look at this in some detail at the high level we store the size and the array of items in Old Alec and old items respectively then we double the size that’s just how we do it and then we allocate a brand new array of ddes in this case four D noes get allocated and that’s in items and then we do some code that pretty much looks like it came from the Constructor we’re going to take those four nodes four D nodes and we’re going to set their key and Valu to null because at this point we’re kind of like halfway through reorganizing this thing our old items are are available to us but new items are empty that means that we can use find and do inserting into the new one and so that’s what we’re going to do before we throw old Alec away we’re just going to write a simple for Loop to go through them now we got to check to see if old item subi is null because when we’re done with this we’re not just going to wait till it’s 100% full we’re going to actually reallocate when it’s 70% full if old item sub is null. key is null that means it’s empty we don’t have to reinsert it that’s that’s all we’re KN is we don’t have to reinsert it but if we find one then we go and ask the P1 dictor find where to put it and in this case we’re only going to always get a new slot because keys are unique which means we can go through all the old item keys and never hit the same one twice and there will always be space because we just alled a thing that’s twice as big as the thing it’s coming from so there was two and we’ve allocated it to for it we will always find a place to put it because the keys are unique think about it for just a minute and then we just say key equal and value equals copy them we don’t have to reallocate them or anything they’re just pointers to the save strings that are key in value and then the only thing we throw away is old items and so you know it’s it’s it’s it’s kind of pretty now the last thing where we say old equals P1 dick fine self key um we used old before to figure out that oh wait a sec we need to make some more space um so we have to then find where the incoming key because we’re in the middle of an insert right now so we have to know in the new items where that belongs and so that’s why we say that so if we take a look at the moment where we’re inserting the c key we’ve got we’re full up we’ve got two all ocated right and we’re looking we’re saying where should we put C and the answer is you can’t so now we drop in to the reallocation code so the first thing the reallocation code does is make a copy of old items and old Alec so there’s the two items z and y are there and then what we do is we double the size and make an empty array of four D noes and set their key and value to null and so we kind of have the old array and the new array sitting around right now so then what we do is we start looping through the old array and we see oh Z equals W so we just run a simple hash calculation and say where does Z belong in the new items and then we put it in there now we don’t have to deallocate or reallocate the actual Z or the actual w we just have to change the pointers now you’ll notice at this moment we’ve got a pointer in the top one and the bottom one that’s pointing to the same allocated memory that’s a reference count problem but we’re going to throw old items away in just a bit so we Loop through that right so we find the Z and we put the Z in the right spot remember we’re still in the middle of trying to insert C we’ve kind of temporarily paused and clean we cleaning up our hash map to give us space to insert so then we go through the loop again and now we find that the Y belongs in position three yals B goes into position three and now we’re at the point where what we have done we’re still again trying to insert C but we have to first make space now we’re kind of done with old items we’ve got pointers in the new items that point to the key value Pairs and we can actually just throw that away not only when we throw that away it not only throws away the array itself but it really kind of resolves our problem that we had two pointers pointing to the same thing which leads us to like memory leaks potential but now we’ve cleaned our mess up we’ve freed the old items we’re still in the middle of inserting C and this is one of the like downsides to hashing is this cleanup phase can take a little while I just moved everything around so it looks like what we had before and now that we’ve got this thing rehashed and we’ve got our zal W and yals B in an array that is four long rather than two long um we are ready to continue with the insertion of C so we say okay where does c belong We Run The Hash again with the predictor find of the c key and it says that belongs in two and again it might be in two because it’s empty it might be in two because something was not empty and we did Collision resolution but it doesn’t matter when it comes back from find remember it’s bigger so there’s always going to be space so we don’t have to worry too much about there not being space but now we got an empty slot and we can put put that value in and put the key in and and update it so that there are three items uh the length becomes three so that’s how they did it how gido did it in Python 1.0 but up next we’re going to talk with G we we already talked with gido about how things changed between Python 3.6 and python 3.7 the same implementation was like python 0.1 through python 3.6 roughly this same shape I just covered but things changed in Python [Music] 3.7 so welcome to another code walkthr for C programming for everybody this is another in our epilog code where we’re comparing and contrasting the way I taught uh dictionaries lists and strings in the kerning and and Richie chapter 6 with how gido van rossom actually implemented di dick dictionaries list and strings and we’re going to look at dictionaries here so I’ve got two tabs open in my text editor I’ve got one that’s P1 dick. C which is the python 1 implementation which is my approximation of gido’s approach and my simplification of gido’s approach and then I have the KR dict which is the version that I wrote kind of cleaned up and adapted for this um the version that I wrote uh as we covered it in uh kig breny chapter 6 and if we look at the very allocation and I mean the structures at the top um we have a a d node a dictionary node and and and we have in the dictionary node in my implementation is got a next pointer and so it’s got a key and a value we’re going to have character we’re going to have uh string keys and integer values just to keep our malx down but the difference between the dictionary node in my code is that I am going to every one is going to be part of a link list because if you recall in my code in kernigan and Richie as it’s described it is an array of Link lists and so in this case I just have four heads and four tails that point to the head of a link list and so that means that every D Noe has got to be the either the beginning middle or end of a link list and so it’s got to have the D noes have to have a star next in them so let’s go compare and contrast that with how gido did it so gido still has a d node because now we’re in dictionaries and so you need a key and a value um and and so I so in my KR dict I made the value be integers just to simplify it but I’m going to make the keys be the value Be Strings in my python code to be a little closer to you know what what gido did but then the change happens when we start allocating the actual dictionary object itself so if we look at what I allocated I have a number of buckets and I have a count for my struct KR dict but then I have an array of four heads an array of Four Tails which is basically a way to make four link lists that I will select among the link lists based on the hash function but that’s not what gido did in P1 dict we got an allocation in a length but then we also just have an array seriously an array of pointers to dnes that we’ll call items now the fun thing is if you look at this let me go ahead and show you it’s a little bit different if I look the P1 list and I compare and contrast a P1 list has an allocation a length and a pointer to it an array of pointers to strings in my P1 dictionary it’s an array of pointers to key value pairs but the Alec length and then an array of pointers to something is a very similar approach and you’ll see when we get to the Python 3 stuff that the there’s almost a duality in in gido’s mind between the dictionary and the list the dictionary is like just a slightly improved list having to do with indexing and and again it was a surprise to me and um but the similarity again when we get to python the three python python 37 version of the dictionary is going to be like oh I see what you’re going on but so just for now remember the approximate Duality between dictionary and lists in Python 1.0 okay so again we have our link list nodes that have a pointer to a key pointer to a Val that’ll be a dynamically allocated uh pointer uh pointer to a dynamically allocated in save string and then we have a dictionary which is then a one-dimensional array of pointer those pointers to those D nodes um and if we um if we look so so the key thing here is we need to know which entries in um this array of D noes are empty and available and which ones are used so the Constructor is a little more complex if we look at uh P1 dictor new of course we allocate the kind of object itself we set the length because there’s nothing in it and we’re going to allocate two slots just like we did in the P1 list that that forces us to reallocate um so that we don’t have to write too big of a code to cause reallocation and we can debug our reallocation and then we basically create an array of D noes right so we’re like two times the size of struck D node and the size of struck D node is um 2 64-bit pointers and then what we’re going to do is we’re going to mark them as empty we need to know that these items are empty and so we’re going to set the key which is a pointer in the value for each of them to null so you’ve created an a two long array of D noes with keys and values of null and again we need to we need to remember which ones are empty and are not and so uh so then let’s look at the main code so that’s the Constructor that’s the data that’s the that’s the data structures and the Constructor so so what we’re going to do is we’re um oh man I didn’t I thought I deleted that line that um yeah let’s delete this line because we’re printing it we’ve added some stuff in the print that makes it a little simpler okay let’s hope it still runs that would be cool let’s run it keep might change the code yay it works okay okay it’s simpler I like simple so we create a dictionary calling P1 dict new we print it it’s going to be empty then we put under the key of Z the string catchphrase and print it then we put the key we we put W in that should be a replacement and then we put the string sakay in Sakai equals B basically Sally equals c basically and then a equals d and then we say how how many things do we have in there and then we do a get like a do getet in a python dictionary we’re looking for the the key Z and we looking for the key X well the key X isn’t going to be in there and then we delete it so let’s go ahead and run this code which we just did and um and so what this print does I’ve added some stuff to it so you see the first print is just curly break open enclos curly brace empty and it’s also printing out the length and Alec and so basically what it’s saying is there is a length of zero and and we what we have two spaces Alec so then what we do is we put Z in and that Z ends up in Z equals catchphrase and that ends up in position zero in the array and then we have a length of two a length of one because we’ve got one thing in there an Alec of two then if you recall we replace Z equals W now because Z hashes to the same spot we’ll talk about how that happens in a second that hashes to position zero in the array and then it just replaces it and so it just replaced the value in that case and so we still have only one item in there and an allocation of two okay and so then what we’re doing is we’re inserting a new like Sakai equals B I should proba put some more print statements in there uh Let’s do let’s do that let’s do the underscore put and let’s put a print statement in here print F insert percent s equals percent s back sln comma key comma value oops it’ll be just easy for us to debug this okay okay so we insert Z equals catchphrase that goes in hashed slot zero we have one item and a length of two we insert Z equals uh no I want to call that put I want to call that put because it’s not insert so then we put Z equals W and then it uses the hashing and the lookup and all that stuff to find that that’s in position zero and so we simply replac the value so we didn’t we don’t we didn’t extend it at all and now it’s trying to put Sakai equals B in there and with the hashing hashing of Sakai Finds Its way to position one in our two item array and when we’re done we’ve got our two item array um happens to be insert order but that doesn’t necessarily mean because this it’s just my hash function is terrible um and then we have two items in and and two items two items in there and two items allocated now we’re trying to insert Sally equals c and now the hashing algorithm which I’ll show you in a bit looks through and says wait a sec there’s no space here usually it that hashing algorithm says if it’s above 60% full then we declare it no space so we’re going to do what’s called rehashing so we reallocate and then we read add the thing so we’re making the space so it doubles it in size so when it’s all said and done um Sakai ends up in position one and Z ends up in position two and Sally ends up in position three and we have three items in a four long array now here’s an interesting thing you will see here when we go through the rehashing Z in the two two long array Z was in position zero but in the four long array Z is in position two because this is rehashing now what what happens is that’s because whatever the hash value for Z was modulo 2 is zero but modulo 4 is two and that’s be and so the positions don’t change right it wasn’t it wasn’t going to end up in position one but modulo 2 and modulo 4 are are multiples of each other but you’ll see you see in this case here Sakai Z Sally the position of Z moved and so again if you’re writing an iterator that’s going through this and you just inserted one and it reallocated in that that’s why python 1 dictionaries and literally any hash based dictionary that’s truly using hash we’ll see how it worked in Python 3 in a second but when we reallocate at things stuff gets shuffled around so the order is different so we made space for Sally and then we put a equals D in now the thing we’re triggering is if it’s greater than 60% full one when you have one and you got two that’s 50% full and that’s why the Sakai equals B did not trigger a reallocation but if we have three items in a four slots that’s above 60% and so we’re going to to reallocate so even though we could have snuck it in that last spot that’s not good for hashing so we’re going to say you know what it’s time to make this bigger again so we’re going to make so a equals D we’re going to make space for a and then we’re going to double the size of the array to be eight and let’s see we got Sakai equals B in position one we got Z equals W in position two we got Sally equals c in position three and a equals D in position four and we’re half full at this point so we’re done now we have a length of four and we say hey let’s look up Z and yes we get W and let’s look up X and the answer is there is no X and so our code is working doing you know our little unit test our little unit test is kind of doing dictionary things so let’s take a look at uh put okay let’s take a look at print because print’s easier let’s take a look at print because print teaches us a little bit about the data structure okay so oh come back come back come back so in P1 dictor print the whole little first equals one that’s just there so that we put the comma out but the nice thing is it’s a for Loop for I equal z i less than self Alec now if we look at the P1 list let’s go look at P1 list the the P1 list the array the it’s I equals z i less than self length and that’s because in the list we just append in the beginning of the array Sub Zero sub one sub two sub three that’s how this work but because we’re using hashing our array is like sparse and that it starts out empty and we start using slots but don’t use every slot in order so we got to go through all the slots to iterate through a dictionary array and if it’s null remember in the remember if self item sub i. key equal equal null continue which means skip empty slots skip empty slots so this this array could have 100 things in it and if we only put one where where where the thing is inserted which we’re going to see in a second with insert is dependent on the hash function because we’re not just inserting them linearly we’re inserting them based on hash function using open hashing and so we have to skip the empty items but at after that it’s okay we just print them and so we’re iterating through this array of pointers skipping empty empty entries and printing out the entries that exist every time we’re doing an underscore print and so we’re seeing them in the order that they got spread out using the hashing function okay and so you can see that it it prints the key and it prints the value and then it prints the I the position um and so that leads to you know very very pretty stuff and then we print the length and the Alec and so this is great for debugging great for debugging for us okay so that kind of reviews that the items is a sparse array with nulls being our way of marking emptiness okay so and again if you go back to the the underscore new we allocated it and we set everything to null okay so let’s go look at the underscore put because that’s where all the good stuff happens it’s it’s a bit of work can I get it all on one screen no no I can’t get it all on one screen okay so we’ll just work through it um so the the first thing we have to do is we have to figure out which of the slots in this array the key belongs in which of the slots in the array does the key belong in so we’re going to use a a utility thing we write we we wrote called P1 dictor find to say find me the entry in the array that is the right entry for this particular key okay so now I got to look at that P1 dict find okay so this is pretty straightforward and so that this is open hashing and so the way open hashing works is it starts by doing a hash computation to figure out a position in this array of items and get bucket you’ve seen this in other code that I wrote get bucket is just a crappy little hash function that does a shift and an exclusive ore repeatedly going through the entire string with the idea of creating a pseudo random number that is deterministic based on the string that I can then take the modulo of the number of buckets so this ends up with a relatively large integer that in Long strings might even overflow and again hashing Computing hash functions is a uh is is is is a research area unto itself this is a terrible hassing function but I’ve used it over and over and over again because it’s short and gives me some random some pseudo Randomness but it’s probably highly Collision resistance so the whole idea is if I have two buckets this gives me a deterministic number between zero and and two but not including two okay so let’s go back to uh the find um um operation so we we get the bucket and that bucket might be let’s say it’s bigger let’s say we’ve got uh 16 slots and they’re all empty the way it works is bucket will say okay you’re you’re you’re hopefully you’re slot five the problem is is then there’s what’s called Collision resolution and if slot five is already filled slot you got to find another slot and but you got to find another slot in a way that later after it’s in there you can find it again find the key again and so we do linear hashing uh we we do linear Collision resolution which means if we find oursel hashing to position five and position five is full we say oh well let’s just linearly go forward let’s look at six let’s look at seven then 8 n whatever and then when we get to the end we go 0 1 2 3 4 5 and if we get to the point where we have checked all the slots and they’re all full then we kind of have to blow up and that’s where it says print F could not fly slot for key that would be like throwing an exception we’ll just print it out here because but that’d be like uh something went wrong because you’re never supposed to 100% allocate a hash about 60 or 70% is when you’re supposed to quit and double it or extend it in some other way so let’s look at the code that hunts for a starting at position five hunts for a free position and so we say offset equals zero offset less than self Alec offset plus plus so that’s going to go if we have like eight entries that’s going to go from 0 to seven but we really want to start that iterator in five and then wrap around when we get to eight okay and so I just I call it off set but then I calculate the position in the in the um array as offset plus the number of buckets I mean offset plus the bucket which is five and then modulo self alic so if we got eight offset’s going to go from 0o through 7 and if off and the bucket is five that’s going to go from 5 through 7 and then zero through four okay so I is the circular look so we’re we’re doing a circular lookup in an array starting at five we’re going to look through every if necessary every single position in that Ray array is going to be checked so we’re starting at like five where the hash function told us to go and if self item sub five. key is null it’s a great spot that means that the hash function pointed us to a available entry and we’re done so we return the address ersan self Arrow items sub OD otherwise we might have found something that’s full and we don’t know right now if we’re going to replace this value or not but if the key matches what we’re looking for we actually found the right one and so we return self the address of self items I and if we didn’t find an empty one and and we didn’t find one that was full with a matching key then what we’ve got to do is go back up into the for Loop and go down one so if we were at five and we it was full but the key didn’t match then we would go to six and if six was full and the key didn’t match we’d go to seven if seven was empty then we’re done so we say oh Seven’s the where we’re going to go and so you can see if you think about this for a little while and you can go read the the lecture uh slide on open hashing you can see that as long as there’s space in this array and it’s it’s not completely full eventually we’re going to find a place okay we’re either going to find a place that matches the key or we’re going to find an empty place and that’s what Fine’s job is to do and again as long as resize is working and we never let it get to be above 70% we can always find a slot for the key okay so this again when we say print F could not find slot for key that’s really traceback time because that means that the thing above us which we’re going to look at now is going to be um going to blow up okay so let’s look at underscore put again so come underscore put so a lot of work get done in underscore find where we hash the key and then we do the linear we do the linear look up if it um we we do the L we we do the linear lookup for cl Collision resolution and we either have an empty entry or we have the actual entry and so the first if statement we have afterwards is if old is not null and the key is not null that means we just found it which means all we got to do is replace the value we don’t have to add any entries the index is great the array is great so we just free the old value and we alloc the new value and then we just string copy it in and away we go so that’s that’s when we did the uh that’s when we did the Z equals W that was the code that ran to basically say oh well we found Z so we just have to CH we have to free the original string and the original string is catchphrase and the second string is W so we’re replacing catchphrase with w and this little bit of code right after the underscore find is the thing that does here we found it okay but so that’s that’s the second one let’s go back to Z equals catchphrase because Z equals catchphrase is not found because we’re starting with an empty array so that means that old key we’re going to get an old because the the hash will find a slot and that slot will be empty and it’ll give us back to us but old key is going to be null which means this one is available which is cool okay now this to-do is no Todo not a to-do anymore right now it’s going to be an ignore so this is the bit okay I’ll come back to this okay this is the tricky bit now I never did this in kernigan and Richie I don’t think I have to check but this is called rehashing and this is when our length is greater than or equal to 70% of our allocation which means this array is more than 70% full that’s when we’re going to do this reallocation okay but I’m going to ignore that whole if statement for now I’ll come back so we’re processing Z equals catchphrase here and Z ends up we can even look ends up in subzero of the array and so if if it’s time to insert this part is really easy so it’s time to insert we’re going to allocate the key the value Malo the value and Malik the key and string copy them in Old already exists old is a pointer into an entry into an array that’s got a key and a value okay so there’s an array of key value Pairs and so we don’t have to allocate the old itself because the old is already in the array but we do have to allocate the strings that we’ve been passed as parameters and then we add one to the length and so that’s basically how it ran when we’re doing Z equals catchphrase at the end we had Z in position zero we had a length of one and an Alec of two okay so now we’re going to look at we’re we’ve got a and you’ll notice my 7 let’s go back to that now because we’re going to look at at that this is kind of tricky okay so this whole self length greater than or equal to al7 I kind of it it allowed me because it was only two items it allowed me to fill it up completely because one item is only 0.5 and so when I put Sakai equals B in I didn’t trigger the reallocation so it just put it in position one I don’t know if oh Sakai did go into position one so um but now we’re doing C and it’s like I could not find a slot for key Sally and so um that means could not find slot for key Sally so that means that it searched let’s go back to find I guess this is not really a traceback this is just a fact so it it went and looked it hashed this the what’s the key on that again Sally that key is Sally it hashed the Sally found a a a starting point with bucket that that hash just found a bucket and where did Sally want to go Sally ends up well in three but it would probably have been a One S would have been bucket one before it got expanded and then it looked through the whole thing which in this case was only two and it couldn’t find either an empty one or one that matched Sally and so we say ah can’t find it return null okay and so now we get back to put so we’re doing Sally now and we find old is actually null so this code doesn’t run so we didn’t find an entry old key is not even allowed we’re not even allowed to say old Arrow key because old is no and now fine didn’t find it which could be bad but we’re going to fix it come back come back we’re going to fix it so we’re coming through here and we’re saying if self length is to full greater than 70% full then we’re going to make space so you can see here in the output it says we are making space for Sally we’re still in the middle of the put of Sally equals c right and so we’re going to grab a copy of the old allocation number and the old items those are just integers and then what we’re going to do is we’re going to make a brand new empty items and so we are going to double the size of our array and then we’re going to set the new items that’s why I had to store old items here we’re going to set the new items to be four D noes it’s an array of four D noes now we we got to be really careful this is kind of like a Constructor for that items we’re going to set the key and the value of the newly allocated four items in that array to null because they start empty you’ll see in a sec that we got to read them so we’re kind of creating an empty array that’s twice as big and now what we got to do this is why we call this rehashing is we got to go through the old array and find all those items and then we got to add them in the right spot and this is where you’ll notice that um Z was in position zero and Z ends up in this the reallocated rehashed array in position two so you really have to rehash it because all the rules in the new one have to be followed the initial hash the linear resolution of conflicts of collisions Etc so you really think of this items as a brand new one and we got the old items sitting there not much longer but we’re going to go through them all and we’re going to just add them again okay now yeah so so we’re going through all of the old items if the key is null that’s one of the empty slots in Old items continue then we’re going to call find again and the key thing there is that’s why we made self items be the new thing and so we could call find so that’s the first time it’s being called in this Loop Loop the the new items is completely empty but old item I sub key is the key and then um and so let’s see what we got here yeah so new item if new item is null that means it didn’t find Space now we just doubled the space so that shouldn’t happen and given that the keys in Old items are already unique because this is a dictionary we should never find in the new empty the key twice so that basically that basically says oh it’s already in there and the answer is wait wait wait we started with an empty one so new item key not equals null is a bad thing but it should never happen because we’re going we have a unique each key is unique there are no duplicates and so as we’re inserting them again into a new hashmap array that we should never get it so that’s why it says very bad news that means that we either couldn’t find Space because I don’t know why or it’s already in there which I don’t know why either that means that this is like traceback time this is like uh the runtime library is not well formed and we made a bug in our runtime Library so then that means that new item should be non-null and it should be empty which means we can just like copy now this is just a pointer copy it’s not actually the stuff because we’re take the key is the pointer to the key the string array and the value is the pointer to the string array so we say new item key equals old item soy. key and the same thing for value and so now what we’ve done is we’ve copied all of the old items and we’ve positioned them correctly in the new items so at this point we’re done and the free here is simpler because we’re not freeing the strings because we just copied those we are freeing the array okay so we’re freeing the old array free old underscore items frees the old array now what we need to do is we need to search for the position because we’re going back to put Sally equals c and so Sally is the key that we’re putting in so we just made space for Sally now again if Sally was already in there this code would have run and we’d be done and so we have to relook in the new the newly expanded array we got to find the right spot and again if Sally was already in there this code would have been run and we’d never be down here so we have to redo this and say okay where is Sally in this case we really we should Sally be long because we just made more space and so old equals null would mean we don’t have we still don’t have space for Sally even though we doubled the darn thing or yeah we doubled it and old key not equal no that’s means that we s Sally’s already in there well wait a second if Sally was in there we’d not even come down here so again the sallying old key not equal again you put out these kind of Trace backy very very bad news that is like somebody our code our code the LI we’re the library writer our code is messing up so old is is really supposed to find no matter what we’re adding Sally to the dictionary old’s got to find a slot for us or we just or our code is broken so this is me debugging and leaving this in you know just to make sure like oh man that is impossible should never happen but I’m going to say very bad news so it finds a slot and then we just copy the key and the value and increment the length and so this whole realic thing is kind of new I don’t think I did this when I did the kernigan and Richie because the way kernigan and Richie does it you can just ex keep extending those link lists like if you look so if we look at the umore put in the kernigan en Richie code you’ll see I do a get bucket right and I find a bucket and and if I if it matches there’s always a bucket in this one because it’s the buckets are Pointers to link list so there’s always a bucket there’s no resolution by linear Collision resolution so old is if we find it we just copy the value in this I had integer values and then otherwise you just append to the end of the tail of the bucket using you know self head sub bucket equal all new then it’s just at that point this is just SM in in P in KR dict we don’t have to reallocate now you would want to reallocate at some point because then these chains uh get too long and that’s and so it’s not like you don’t have to reallocate with these chains I didn’t write it so the reallocation would be sort of in the middle of put and it’d be very complex code and it would be actually probably about the same complexity maybe a little bit more complex than what the python one uh implementation was and so uh with that I think I pretty much have covered the essential differences between the kernigan and Richie dictionary code that I wrote and the basic approach you know the basic approach using an array of den Noe items and if we look at find a linear Collision resolution ution and the linear Collision resolution let’s do this I’ll put a comment in here linear andore find H can’t um I got to figure out how to spell Collision well the version you see will have uh how many s’s no how many L’s okay I’ll fix that for you and so this is linear Collision resolution and that that’s tricky stuff and so you want to take a look at that and understand that uh very carefully so I hope that you found uh this lecture uh useful I think the next thing we’re going to talk about is how dictionaries changed from python 1 through 3.6 all the way up through python 37 cuz the dictionaries did change and got a lot better so we’ll talk about that soon [Music] cheers hello and welcome to another programming walkthrough for C programming for everybody this is uh one of the last walkthroughs for the epilog code and in this walkthrough we are going to look at how dictionary the internal data structures in Python for dictionary changed between the first version and the 3.7 version and so the we we talked previously P1 dict doc about in effect python 0.01 through python 3.6 and then python 3.7 and later has a new dictionary that maintains uh insert order um but it also saves a lot in terms of efficiency so here is our approximation and simplification of the Python 3.7 dictionary um and so let’s talk a little bit about the problem that the python 3.7 dictionary solved by looking at the python uh 0.01 dictionary now if you listen to the Ido van rasum video that I’ve got these key value pairs in the real version of the dictionary it stores the poter to a key pointer to the value and the hash value so it doesn’t have to recompute the hash now I I kept it simple and all my stuff was going to be small so I didn’t didn’t do this optimization to recompute the hash I could have but I just kind of want to keep the code as small as possible so I just recompute the hash in the few places I need it but this means that in a 64-bit system this is uh three 8 or 24 bytes and the problem is let me delete this line so I don’t break my code uh the load Factor now we never let the load Factor get above 0.7 which means that by definition in the larger the structure gets the larger the wastage is 30% of the entries have to be empty in the key value pair array and again that’s 30% of 24 bytes wasted 34 20 uh 30% of the size of the array times 24 bytes that’s always wasted you cannot not waste it and so what happened is is that in the python 37 version in effect items started was treated more like a simple linear array of pointers to key value pairs so now you got your key value pair and in in Python is key value hash and a few other things so this is a larger data structure D Noe is a larger data structure um and then we have a separate simple integer array that is the index index because items is an array and index is the offset into that array but that’s just one integer and so we’re going to do all the hash indexing and re reev resolution and conflict resolution and collision resolution in this index array which itself is a much smaller item and I’m going to just make it and I don’t know if if uh python does this I’m just going to let index be twice as long as items which means from an indexing perspective we never get a load Factor above 50% and we’re only going to extend the array when we run out of space in items and we’re going to store the key value pairs linearly 0 1 2 3 4 5 in items and then we’re going to just reallocate so in many ways all of a sudden the kind of realing let me open a new tab here P1 list. C the realin code if we go back to the P1 list extend if necessary you’re going to see that in in P1 list append and P3 list append we’re going to see that it looks a lot like the realic pattern in the python list because it is an array okay the the actual key value pairs are stored linearly in an array and that’s also how you end up with maintaining insert order wasn’t they tried to maintain insert order but at some point if you’re just using a linear list 0 1 through 3 4 insert order is going to be maintained and if you delete one you shift them all up and it just treats so I would guess that ultimately inside of uh python itself after 3.7 there might be some overlap in the code between dictionary and list because they pulled out the hashing lookup in this separate data structure which is an array of integers okay so so then if we look at the the get bucket is the same it allows a hash function I make did it as small as I could just so it didn’t take up a lot of screen space if we look at the Constructor P3 dictor new we see we’re allocating the actual dictionary object and then we’re allocating two key value pairs two struck D noes and then we’re allocating four two times the Alex size of integers and so our index is four and our d Noe list our D node array is um DDE array is two and we don’t have to initialize the key value pair array the items array because we know with length which ones are valid and which ones aren’t valid but we do have to take this new index and put negative one in there we did this a little differently in Python 1 dictionary we use nulls but right now I’m just it’s an array of integers and the negative one is going to be my marker that’s going to be my marker to say this is an available index slot okay so that’s what the data structures look like let’s go ahead and run the code now you’ll note that this code is in effect exactly the same as the P1 dict code that we went through before and so we’ll run it and it will look stunningly familiar meaning that you know we’re putting we have an empty empty dictionary we’re putting uh Z equals catchphrase and putting Z equals W soai equals B Sally equals c a equals D and we’re printing it out so now we’re printing it out this is like an iterator so Z catchphrase and then zero is is the position in the index not the position in the items it’s the position in the index so this is in index position zero and when we get and so we see Z maps to W Sakai maps to B and they’re in index positions zero and one it’s kind of hard to hash and we didn’t and be because we we don’t have to rehash until it’s completely full because and we have two items the Alec is two so we can put zal W and soai equals B remember that index is four when Alec is two so index has four integers so we still have a load factor of 50% but now what happens we’re going to put Sally equals c in and now we have to extend the items and we automatically extend the index so we have a 50% load average before the extend and then we have a 50% load average after the extend well actually less than 50% load average but the point is is because I just by definition had my hash index be double the length I never get to a load average of 0.5 above 0.5 and again you can make this more complex and let the load average get to 7 but I’m I’m keeping it really simple the other thing that you’ll notice is in the rehash again thinking back to the python 1 so you’ll notice that the hash position of Z just like in the previous one after it went from two to four went from position Zer to position two and I talked about how it’s not going to completely move randomly but it it hopped in this case because whatever the hash value um modulo two was zero and modulo 4 was two and that’s because two you know zero is modulo 2 so these things kind of go by powers of two like and so but b equals 1 stayed in the same place etc etc etc and so but here’s the thing notice the order of the things printing out these zeros and ones Etc that’s the hash position but it’s not the position in items so Z equals catchphrase is item Sub Zero Z equals W is in item Sub Zero Sakai is B that’s in item sub one hash position so Z equals W in in this output is in hash position two but items position zero and so that you’ll notice that insert order is maintained in this unlike the P1 again this wasn’t to make insert order work it was a side effect of changing the data structures to make items be just a an indexed array starting at zero and again pulling the hash computation not oh sorry yeah items is an array that’s linear and index is an array that is looked up by hash okay so let’s take a look so let’s take a look at put and of course the first thing we see is P3 find and uh just underscore find let’s so recall from the previous one that the goal of find is to find a bucket position that’s free and available okay and so um remember that get bucket is just the hash computation for that particular key we’re looking for and we have the same kind of circular this will give us a number between you know zero and eight like 0 through seven if there’s eight entries or zero through three if there’s four or zero through zero or one if there’s two and then we have to go with the circular look okay but you’ll notice now when I say four offset equals z offset less than self Alec times 2 I am now looping through the index array not the items not the items array and I do the same little trick to do the modulos so that it goes like 56701 2 3 4 so so I goes 56701 2 3 4 which is exactly what you need to do to do uh Collision resolution using linear probing which is the way we do it and it’s very simple if we find an empty spot in the index now the data is not an index the data is still an items right so if we find an empty spot in index meaning it’s a negative one that’s a free one and that’s what we’re going to return notice that in this one I’m returning an integer rather than a pointer I probably should go back and change all those others to return integers instead a pointers because it I think makes the code easier looks a little more complex in some places but easier to understand in other places if it’s negative 1 we’re done if we care we look at the key and we find in items now now this one’s a little trickier we’re comparing the key to self items which is the key value pairs right but it’s self index sub I self index sub I is the position within items of a particular key value pair so we have to look up using self- index to find the right spot because self items is like a linear list it’s not really a d it’s not really a hash map the only thing that’s hashing here is the index and then we go grab the key out of the thing and if we match it we’re like oh this is the position oh by the way I found it so in our calling code we’ll check to see if it’s empty or not but right now if if it’s empty we turn I and if it’s if it matches we return I otherwise we keep incrementing now the key thing is because the the load factor is only 0.5 this is always going to succeed that’s another nice thing about this it always is going to succeed because when we increase the size of items we also increase the size of index so that index is always two times the size of items so we never get a load Factor above 0.5 which means this feels to me like a lot more reliable code and if we get if we don’t find an empty slot which in the other one we that was a trigger for reallocation but in this one we reallocate uh differently so returning negative one that’s just like not a good sign okay so let’s take a look again at at at find I mean at the put so this code here when we do the find position equals P3 dict find of the inserted key we basically say if the position is not equal to negative-1 that means this is a valid entry which means we’re replacing the value and again that’s the that’s the scenario where we have Z equals catchphrase and then we say Z equal W we’re just going to replace the value we’re not going to change the key the key is already in the right position the key is already hashed properly the index is correct the items is correct and all we need to do is grab the value and get rid of it and then alloc the new value and stir copy it in

    and we’re done so we’re done so if we find it that’s great okay so we don’t find it we have to insert it but we know where to insert it right here but now what we do is we simply say if sell self length is greater than or equal to self Alec that’s when we’re going to expand it so here we’re saying if self length is greater than or equal to self Alec 0.7 now the Alec here is the number of I things in the items which we’re using linearly which means we can fill it up 100% before we have to extend it so we’re looking to see if the length is greater than or equal to self aloc here we were looking as is the length greater than or equal to self Al times the load Factor 0.7 that’s when we triggered in Python 1 dictionaries but if we look this again this aen says if self and now we’re in P1 list this is again that Duality between Python one lists and python 37 dictionaries because in a sense the items is just a list right so if self length which means now it’s full we’ve it’s 100% full it’s 100% utilized there are no spaces in items if self length is great than self alic we’re going to extend it so that means that this code here self length self aloc is really quite simple right so we just realloc the items and realloc twice and realloc whatever we’re going to do twice as big in this case and so that is like exactly copied from the list we just re okay so but now we got a little bit more work to do in Python 3 because the items was easy we just reallo it we did exactly what lists would do in this situation but now we got to fix the index okay and so uh so self items at this point is right okay so self items is right because realic did all the work for us you know we doubled the size of it but then it copied all that stuff okay and the other thing we don’t have to do here which we did have to do in Python 1 is we didn’t have to set all these new new items that have been allocated because in items because it’s like a list alic and length all is all that matters and we haven’t changed length yet we have changed Alec so the fact there might be garbage in all that new data it might be zeros might be garbage is okay now what we’re going to do is rebuild the index items hasn’t moved and so we don’t need it we just free Index right now remember index is that integer array that’s that’s twice aloc right so now we just allocate another integer array that’s twice the size of whatever we’ve got allocated in the in items an integer array so self Arrow Alec time 2 * size of int boom and then we just have a little for Loop for IAL less than or equal to self Alec 2 I ++ set it to 1 CU what we’re doing is we’re creating a new completely empty index the key value pairs are just sitting there happy as a clam in items but now we got to make a new index okay so we’re going to refill this index but it’s really simple so now we’re going not to Alec for I equals 0 I less than self length now we’re going to go through the items and that’s length and then we’re going to call the find operation based on the key of each of the items and that’s going to give us a position and it’s going to do conflict resolution uh Collision resolution using linear probing and so at that point all the index at that position is the position is where in this array should it go and that means that you know if it’s in the third position in the hash map and we’re looking at the Z zeroth position in in items I is zero and position is three and so this code if you compare this code again it’s better memory-wise if you compare this code to the code inside if you compare this real code between the python 1 code and the Python 3 code oh and oh and I don’t even do it in KR because it was going to be so ugly I didn’t want to show it to you right so it’s ugly in Python 1 it is pretty in Python 2 I’m seriously this you look at this for look at this code in undor put for a while and you’ll be like why didn’t they think of that back in 1989 why did it take them until whatever 2018 or something to to see this it’s a beautiful data structure right it is a it is a beautiful data structure okay so here we are in this code where we have refilled the index and again self index is changing right and because that’s how the conflict resolution works and positions in the index might be different before and after so after that we’re done extending we’re going to have to do the actual insert because the reason we extended is we’re were going to insert a new thing in this case if we look at we’re we’re trying to put Sally equals c in then we extend from 2 through 4 and now we’re like done extending and so we got to put Sally in right so Sally’s going to go in and this is the insert code that we’ve already looked at right but we do have to go find its the position of Sally because we found it before in the pre-expanded index SL items and now we’re finding it in the post expanded index items but then we just allocate the key and the value copy them in um and then add the key value pair at the end of length which is not Alec but length is like the next position in that linear array of items so we’re do items we set the new key the new value and then we set the index to be pointing at this entry in self items because index is an integer so it’s like if we’re putting it in so if we’re expanding from two to four and we’re going to now use three uh position two actually um self index whatever the has the position is computed by hashing in linear Collision cleanup and then we set it to length and we add one to the length so if you watch kind of all this stuff it it just of of these four lines of code only one of those lines has to do with hashing and that is the self index position equals self length we’re we’re recording it’s kind of like recording a a a a cookie crumb in the Hansel grle so so we’re just remembering in the index where that is so we we can jump to the right position in index quickly using hashing rather than doing a linear scan of the key value pairs but literally if you took this index away you have just a list and so again let’s look at python list yeah this is simpler because I’m not um yeah but all it does is it it extends the extends this was a list of strings so it’s actually a little simpler but all it does is it copies the string and then puts it at the end and then adds one to the length and it’s done and so the Python 3 dictionary uh does that it’s kind of cool so as we put Sally C it extends it it recomputes the index and that’s why the hash position of Z moved but not the position in items the position in index moved because this sub 2 Z Maps W in position two that’s the index position not the items position the items position is just like a link list Z is in zero Sakai is in sub one and Sally is in sub two and so that’s insert order and uh everything works pretty well and so for me as I think about like the Python 3 dictionary and compare that to uh classic kernigan and Richie diction AR where I didn’t where the classic kernigan and Richie dictionary was so complex on rehashing uh that I didn’t even write code for it I’m like now let’s pretend that’s not a problem okay and and now I can tell you in the Python 3 code I can tell you I can go all the way through the rehashing and tell you that it’s some of the more beautiful code that I’ve seen so I hope this you found this valuable uh cheers and hope to see you online [Music] so now let’s talk about what happened between Python 3.6 and python 3.7 where dictionaries began to maintain insert order not key order but insert order so it really what the the basic idea here is is that the hashing is a quick way to find a starting position in an array but it doesn’t necessarily mean that everything has to be stored in hash list so so now what happens and you you saw this the code we wrote with trees the tree map exercises you can have sort of more than one data structure that you’re maintaining at the same time and so that’s what’s happening in Python 3.7 now python 3.6 we made a big fuss about how there was no order and when you when I go when you go through the code walkthroughs you’ll see see that sometimes the order changes at the moment of rehashing so the order is pseudo random as it were but the order can then change at any moment because of rehashing and um but the pseudo Randomness is because of hashing and the it’s not even consistent from insert to insert because rehashing and datab and not database hashmap reorganization so like I said python 3.7 separated the notion of the hash index from the key value store and so this leads to the fact that iterators that go through python 3.7 dictionaries function much more like python lists which are iterated in Key order now you don’t have a Subzero or sub one because that dictionaries don’t want to give you that semantic um but it basically is a python list plus a hash index for quick lookup and quick for inserts and gets and iterating through the dictionary is just like the python 1.0 list and key insert key look up by key and insert by key is still very quick now I have a whole long walkthr that goes through all this and I’ll just kind of give you the high level picture and that will help you when you go through the walkthr so if you look at struct P dict it’s got an allocation and it’s got a length and it’s got a struct D Noe that is an array of items okay but now we have an integer array that’s index and in the code that I wrote I just made index be twice as big as the the number of items in index was twice as big as the number of items and items and that basically meant that I always had space and so I ended up with a load factor of 0.5 and so if you look at items it’s a list meaning that we insert Z equals catchphrase zal w yal b and Cal 42 and they maintain insert order and a new insert is just done at the end so what we’re seeing here is a list that’s 3/4 full but we don’t care about that in the same way as we did in the python 1 because the load factor of the items is irrelevant it’s the load factor of the index that matters and because I’m making the index twice as large as items it never reaches a load Factor above 50 meaning we we reallocate when we need to make the list bigger but then we also make index bigger too and so we never exceed a load factor of 50% which makes things really smooth and really easy now the key thing is the index is an array of integers and what’s stored in each integer as you can see with these arrows is simply the index that the key value pair lives in the item so again this is kind of two simultaneous data structures the index is a hash items is a list and index points to the offset within the list now I didn’t do it but gido could easily have they could easily have shared some of the code between and some of the optimizations between list and the the items in addict so I’m not going to go into it I do have a Code walkthrough that takes a good bit of time that goes through all this code just remember this picture but it’s really kind of extracting the hash index into its own table so in summary we learned from gido surprisingly that he loved realic and expandable arrays of strs with pointers to his objects link list is not hardly used in Python’s core data structures and it turns out to be a really really good choice in retrospect the code is surprisingly simple once you start taking a look at it and you’re kind of glad I was kind of glad to leave link list behind even though I’m pretty good at link list and moving memory management into python from realic was something that happened like 10 years later that Kido mentioned um because the realic wasn’t as predictable as he wanted it to be and eventually there’s this concept of garbage collection which is underneath realic and and it was too difficult to hope that realic was going to do the things that python wanted done so the places in the code that you’ve looked at here that use realic now use a python allocator and realic is it what happens is realic is gives us bigger chunks of memory and then python manages those and garbage collects them and cleans them up Etc um and so that’s you know that’s the modern era of python really depended a lot less on the cleverness of realic cuz it just turned out to not always be as clever as we [Music] thought but there’s more G and I didn’t stop talking after we talked about the data structure shape the whole surprise link list thing I’m like oh and so if you recall I had this picture which was kind of like not just how things worked I was placing in this picture I’m placing C in the context of all the languages that influence C and all the languages that influenced that c influenced right and so this is the you’ve seen this picture before but what I wanted to talk to GTO about is I wanted to talk to him about what were the influences on python see C++ ABC and as you will see in the video modula I wasn’t expecting that but I was expect I don’t know what I was well I do know what I was expecting I I was expecting that he didn’t like C++ and he loves C and I forgotten I didn’t know as much how AB how strongly uh ABC had influenced him so there was in ABC there was much to like and for him much to dislike so C++ something gido used he wrote code in it he wrote A series sounds like a series of experimentations to like to some degree I guess maybe his question was should I is C++ so awesome that I can get done what I want to get done in Python in C++ and so he he did some C++ experiments that he found somewhat disappointing and so that’s why he used C instead of C++ cuz he had to he could get done what he wanted to get done and um and so G chose c as a language to build python but gido learned a lot about how to layer object-oriented Concepts on top of an otherwise procedural uh programming language and so C++ had a big influence and I bet at some point he thought C++ was the answer and then said no I got to use uh C and and of course ABC if you look at the Wikipedia entries like ABC influenced uh python and the answer is yes but it influenced it more than you might think and that is that there were things that gido liked and things that Kido didn’t like about ABC places he wanted to improve so it had a lot of ABC had a lot of cool types ABC handled allocation and deallocation using reference counting gido liked all that stuff but it used be trees internally and be trees are not binary trees be trees are a thing that’s most commonly done on databases the other thing is that it had no mechanism for user defin classes all the concept of object orientation was in the language itself and in the language implementation itself and there was no chance for users to Define their own objects in ABC and so I mean ABC did what it did well and and gido knew ABC well and worked on ABC and and knew what he wanted to take from ABC and knew what he wanted to build Beyond ABC I mean I think that in some ways the the language ABC is kind of pretty I mean I can read that and you can see things like split and in and other Concepts the for Loop the sort of implicit iteration in the for Loop for line in document you can see that that just came straight to python except he made it all lower case of course ABC was kind of cobal like where would wanted you wanted how to return words do how to return words document is parameter that that first line is a little bit tricky right he also want wanted uh real object orientation and he wanted to stay much closer to the C libraries cuz ABC didn’t really care about being able to call like C string libraries or C socket libraries or anything like that and he wanted lowercase keywords another thing that surprised me was the fact that modula 3 was a significant influence so modula 3 was a rather European centered language it kind of came from Pascal which came from Zurich aaha and Zurich and so this was the kind of thing where folks like myself in the United States really didn’t think too much of modula but Gita was clearly investigating how to do things and there were some really good ideas in modula 3 and he went and talked to the folks at modula 3 and the concept of self as the first parameter is a way to layer an object-oriented mechanism on top of a procedural language really the concept of self that was inspired by uh gido’s interaction with Mod 3 I’m going to give gido the last word here so I’m going to put the second half of my interview and just let gido talk about what inspired him as he was designing object orientation in Python [Music] can you walk us up to The Inspirations and the history of how perhaps ABC got so good at oo H so uh a ABC was actually not objectoriented okay ABC had a fixed set of data types the while the data types were composable like you could have say a list of integers or a list of strings and those would share the the operations on lists but sort of there was no concept of class there was no concept of users defining classes there was no concept of subclassing either in the implementation or for the buil-in types it was like ABC had a bunch of really convenient to use Primitives yeah did a lot work for you they weren’t really oh that’s correct and and and they even they insisted that there was only a single numeric type so in part so that they could could sort of not deal with the complicated hierarchy of integers and floats and rationals and sort of so so then but when you started pip you had like object orientation very front of mind not just a convenient set of IES but aeni set of object based Primitives where where did you did you read that in did you read that somewhere else uh I was familiar with C++ okay yeah and I think that might have been the only objectoriented language that I knew at the time at least I can’t think of any well I I I a big book about simula which is the sort of the granddaddy of all object oriented languages I don’t think I ever managed to get my hands on a simula compiler and I have to admit I also only skimmed the book because it was was actually sort of had you written C++ before you yes like what kind of how much have you written C+ uh enough to invent automatic or what I forget what they’re called the pointers that are like automatically ref counted so yeah I I forget C there a stand counting on top of C++ so that you would not lose your sanity while working in C++ uh no because I was very familiar with ref count because ABC’s implementation is written in C and all everything uses reference counting and it works out better in ABC because there are no Cycles in possible in the data types because there are no mutable data types you you you can’t have an object that contains itself or references itself directly or indirectly in ABC I don’t think that I sort of realized all the details of why that is important and I didn’t care because pragmatically uh those things aren’t always as important as they seem to be theoretically but anyway I was very familiar with reference counting in C sort of for how it was used for ABC I think that that’s where i’ learned about it and I didn’t sort of hear much about it elsewhere then at some point when I was teaching myself C++ this must have been in the mid 80s one of the things I tried was I mean my experience with ABC and reference counts in the implementation was that there was very error prone we regularly had to sort of deal with bugs in the implementation where we either leaked memory or uh sort of crashed because we had had freed things early and it was always like oh there’s a missing incraft or decra and of course the the Mi the missing decra is much harder to debug because you leak a bite here and you leak a bite there and nobody notices because people didn’t write large applications in ABC uh so so anyway I I I someone probably put me on the idea of uh in C++ you can overwrite primitive operations to the extent that you can build automatic reference counting and I built that for some toy application and played with it and realized that it didn’t work right the problem was that it was was like and I I probably didn’t know enough C++ at the time or possibly C++ hadn’t developed certain subtle mechanisms like move operations uh it was very crude like over overloading assignment that was basically what I did and so I found that where if I had handwritten reference count operations I would sort of know okay this object is owned here so we pass it to some function that function doesn’t have to increment the reference count just because it’s using that that object because it’s not going anywhere as long as the color of that function has a reference to it on the other hand the automatic reference counting as I had implemented it using C++ uh would say oh we’re passing this thing as an argument to a function so increment the reference count oh that function Returns decrement the reference count so there was much much much more reference counting activity and sort of that part I didn’t like and so python still does it does it manually and is written in C not in C++ but somehow I picked up the idea of VTS or at least arrays of pointers to functions as a handy way to implement objects and actually initially for the first probably six months python was not objectoriented the Implement and so very few people saw that like a handful of my co-workers saw that and the sort of the implementation had this notion of you can Implement an object type by putting a bunch of function pointers and a bit of other information in a standard structure that describes the type I called it a type not an object so so in a way that you were you you were emulating C++ as way of kind of like creating a perception of object ored programming without truly being an object yeah oh and wait a second I there is another step that I just missed uh I so in around 88 I spent a summer as an intern at Dex cir and I talked to the designers and inventors of a language named modula 3 and they were like putting the last proof raing reading efforts for the modula 3 report but they had built a modula 2 and a half compiler they called it modula 2+ uh and in their documentation either the the draft of the modula 3 manual or the the internal modula 2+ manual I learned this concept of how modula 2+ and three do kind of not quite object orientation and I think they meant it as as sort of a reaction to how it was done in C++ they said modula 3 is not actually an objectoriented language but the sort of the key part of of objectoriented use where you you define a class through a bunch of function and the notation uh where you say object do method and then the arguments instead of function and then the object and then the rest of the arguments they they they said if you use that notation object dot or thing do do method pen and then arguments thing had to be something that that had a type I I think it was a Structure type that had a bunch of pointers function pointers in it and so the method names were simply uh fields or members of that structure in in modular 3 and so to create the equivalent of a class you defined a structure you defined a structure that had a bunch of function pointers they were all typed so you could say this is a function that takes one argument of this type and it returns blah blah and then a bunch of those with names and the trick was if the compiler sort of noticed that you were using that and then you were calling it it would say oh we’re going to insert the thing whose method you just used as the the very first parameter to the function this is where Python’s explicit self comes from exactly and so that is all all modular 3’s design that I copied and so originally in Python I didn’t have a user level notation to even do that I only the the type system was only extensible by writing a c extension oh and so the the author of class keyword what we think it was the class keyword was not there that was month and a half that in the first probably five or six months it wasn’t there and uh we I think we had an intern who who knew C++ better or or who somehow had the right liked it better who knows he he was younger than me uh and he said hey if you if you want to give users the ability to Define their own class proc here’s a heck how you could do it you add this little bit of syntax uh and then you map it to this structure at the implementation time and it all works and that’s five months in and and and yeah and so everything else was working we we we had like a working interpreter with the reppel and integers and floats and strings and tupal and lists and dictionaries and fun s and types that were were sort of internal things I think even even then you could ask for the type of an object did you at the time in these first six months of python did you feel like you were doing core research on what object orientation was going to mean in the future no were you just no I was I was just hacking together an implementation of a language that I didn’t know where it was going I I obviously spent enough time on it that I I was hoping it would go somewhere uh but you didn’t think of yourself as like a that you were going to someday like write a paper about like how object orientation should be done you weren’t thinking like a researcher would think definitely not that you’re just soling I I was not a researcher I was a programmer I I do not have a PhD uh I was employed by CWI as a programmer do do you do you now even think maybe that you made a profound contribution you’re the first person to tell me that and I’m not sure that I I totally believe it I would I would say that the modula 3 inventors sort of made that contribution because they were they were much more sort of researchy types Theory types they they thought long and deep about all the the sort of theoretical and eventual repercussions of designs like that and I I was happy to implement something even even if there were edge cases where it would just not do the right thing at all like until we we finally after about a decade or so added a sickly garbage collector to the language python would leak memory irretrievably in many situations where you had created a cycle and then lost the last pointer into the cycle from outside it and it took a very long time before our users convinced us that there were some edge cases where that was actually a real problem and there was no good existing solution [Music]

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Flutter UI: Building Dynamic App Screens and Reusable Widgets

    Flutter UI: Building Dynamic App Screens and Reusable Widgets

    The source is a transcript detailing the step-by-step construction of a Flutter application’s user interface (UI). It explains the usage of widgets such as ScaffoldRowColumn, and Container to structure the layout. The transcript demonstrates how to add functionality, style text, create reusable UI components, and handle user interactions. It further addresses navigation between screens, dynamic data passing, and incorporating visual effects like shadows. The ultimate aim is to achieve a visually appealing and fully functional app interface.

    Flutter Ticket App Study Guide

    Quiz

    Instructions: Answer the following questions in 2-3 sentences each.

    1. Why is main.dart considered the most important file in a Flutter project?
    2. Describe the purpose of an emulator or virtual device in Flutter development.
    3. Explain why using snake case naming with underscores is recommended for Flutter project names.
    4. Explain the naming convention for the organization name in Flutter projects, and why it differs from typical domain names.
    5. What is the role of the children property in Flutter widgets like Column and Row?
    6. Explain the difference between horizontal and vertical alignment in Flutter using the main axis alignment property, with examples of when to use each.
    7. What is a Flutter widget that allows items to overlap?
    8. Explain what LayoutBuilder is and how to use it in a Flutter project.
    9. Explain the concept of ‘Copy With’ methods and provide a brief example of how they can be used in Dart.
    10. Explain the concept of immutability and how it affects the way objects are created and used.

    Quiz Answer Key

    1. The main.dart file is the entry point of the Flutter application. It contains the main() function that starts the app and defines the initial widget tree to be rendered on the screen.
    2. An emulator or virtual device simulates a real mobile device environment on your computer. This allows developers to test their Flutter applications on different devices and operating systems without needing physical devices.
    3. Snake case naming with underscores is recommended for Flutter project names because it improves readability and adheres to the commonly accepted naming conventions. It makes the code more professional and easier for other developers to understand.
    4. The organization name in Flutter projects follows a reverse domain name convention (e.g., com.devicetag). This ensures uniqueness, especially in larger applications, and helps prevent naming conflicts when publishing to app stores.
    5. The children property is used to specify the widgets that will be displayed inside the Column or Row widget. It accepts a list of widgets, allowing you to arrange multiple widgets in a vertical (Column) or horizontal (Row) layout.
    6. Main axis alignment controls how widgets are positioned along the main axis. In a Row widget, it controls horizontal alignment (e.g., spaceEvenly), while in a Column widget, it controls vertical alignment (e.g., start).
    7. The stack widget allows you to overlay two items on top of each other.
    8. LayoutBuilder is a Flutter widget that provides information about the available space and constraints in the parent widget. It allows you to dynamically adjust the layout of its children based on the available space, useful for creating responsive designs.
    9. “Copy With” methods in Dart allow you to create a new instance of an object with some of its properties modified while keeping the others the same. The original object remains unchanged. For example, you can clone a class, but change the color.
    10. Immutability is a concept where an object’s state cannot be modified after it is created. In Dart and Flutter, immutability is achieved by using the final keyword for class fields and making the class const. It is safe and more sustainable for object-oriented design.

    Essay Questions

    1. Discuss the importance of state management in Flutter applications. Compare and contrast different state management solutions, such as Provider, BLoC, and Riverpod, highlighting their advantages and disadvantages.
    2. Explain the role of widgets in Flutter’s architecture and how they are used to build user interfaces. Describe the difference between stateless and stateful widgets, providing examples of when to use each.
    3. Discuss the principles of responsive design in Flutter and how to create applications that adapt to different screen sizes and orientations. Explain the use of widgets like LayoutBuilder, Flexible, and Expanded in achieving responsive layouts.
    4. Explain the process of creating reusable widgets in Flutter. Discuss the benefits of using reusable components and provide examples of how to design and implement them effectively.
    5. Explain the main differences between functional and object-oriented programming and provide examples of when to use each.

    Glossary of Key Terms

    • Dart: The programming language used to build Flutter applications.
    • Flutter: A UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase.
    • Widget: The basic building block of Flutter UIs, representing an element of the user interface.
    • StatelessWidget: A widget that does not have any mutable state; its properties are final and cannot change after the widget is created.
    • StatefulWidget: A widget that has mutable state that can change during the lifetime of the widget, triggering UI updates.
    • main.dart: The file that contains the entry point (main() function) of a Flutter application.
    • Emulator/Virtual Device: A software simulation of a mobile device used for testing Flutter applications.
    • Snake Case: A naming convention where words are separated by underscores (e.g., ticket_app).
    • Organization Name: A unique identifier for a Flutter project, typically following a reverse domain name structure.
    • Children: A property of many Flutter widgets that specifies a list of child widgets to be displayed within the parent widget.
    • Main Axis Alignment: A property used to control the alignment of widgets along the main axis of a Row or Column layout.
    • Stack: A widget that allows you to overlay children on top of each other.
    • LayoutBuilder: A widget that provides information about the available space and constraints in the parent widget.
    • Copy With Method: A method in Dart that allows you to create a new instance of an object with some of its properties modified while keeping the others the same.
    • Final: A keyword in Dart that indicates that a variable can only be assigned a value once.
    • Const: A keyword in Dart that indicates that a variable’s value is known at compile time and cannot be changed during runtime.
    • Immutable Object: An object whose state cannot be modified after it is created.
    • TickerList: A list of tickets.
    • Ternary Operator: A concise way to write conditional expressions in Dart using the condition ? valueIfTrue : valueIfFalse syntax.
    • Positioned Widget: A Flutter Widget used to change an object’s position.
    • SizedBox Widget: A Flutter Widget used to manage the size of a widget.

    Flutter Ticket App Development: A UI-Focused Tutorial

    Okay, here’s a detailed briefing document summarizing the key themes and ideas from the provided source, with quotes. This document focuses on the user interface elements and the coding concepts being implemented.

    Briefing Document: Flutter Ticket App Development

    I. Overview

    The source material is a tutorial or demonstration focused on building a Flutter mobile application, specifically a “ticket app.” It walks through the process of setting up the development environment, creating basic UI elements, implementing reusable widgets, applying styles, and incorporating dynamic data. A key focus is on achieving a visually appealing user interface through the use of various Flutter widgets and styling techniques. The tutorial uses a step-by-step approach, guiding the user through the creation of specific components.

    II. Key Themes and Concepts

    • Project Setup and Environment:
    • Creating a new Flutter project in VS Code.
    • “type in flutter now once you type in flutter choose the first one and then over here once again choose the first one application and then it would give you a popup window and from the popup window select flutter projects the one that we created and click this button over here and now give it a name give it a name ticket app and this is our actual project name ticket app”
    • Setting up an Android emulator (virtual device) via Android Studio.
    • “but now our project will not run yet because we need to go ahead and create an emulator or virtual device to do that you need to open your Android Studio from Android studio will go ahead and create emulator or virtual device”
    • Understanding the importance of main.dart file.
    • “and this is our main. Dart and main. dart is the most important for running flutter project”
    • Ensuring the Flutter SDK path is correctly configured.
    • “in general the SDK path should be selected automatically this also means the folder where you have installed flatter so that path so you need to make sure that that path has been install sorry that path has been correctly given over here”
    • UI Layout and Widgets:
    • Using Column and Row widgets to structure the layout. The tutorial emphasizes understanding how children are laid out within these widgets.
    • “so so far we have exactly followed this layout column and inside this we have put row widgets”
    • “why we say children of course there is a generic name children right but each of the children could be using a different widget name”
    • Employing Container widgets for styling (borders, colors, padding).
    • “If you do put a container you need to remove most probably this one not it’s not related to container itself uh which we’ll talk later actually so let’s go ahead and change based on this”
    • Using SizedBox for specifying width and height constraints.
    • “why we are choosing sized box instead of container because here you see that sized box has only this three of this uh it takes arguments over here key with height and child most importantly three because key in general we don’t really care most of the time but if you do have a container over here and here you’ll see that it has a tons of arguments that it needs to take now of course this is not optimized because it’s much bigger than the file is much bigger than sced box so the place where you just need WID or height and child so you want to limit yourself within sized box because it makes more sense and makes your app faster so that’s the first thing you want to do”
    • Utilizing Expanded widgets for proportional spacing.
    • “the beautiful beauty of this expanded widget with the expanded widget actually you can uh proportionally put a lot of the items and then it’s the idea is if you I mean right after each child you have to have a expanded widget and then it just going to work”
    • Implementing overlapping UI elements using Stack widgets.
    • “we have a special widget when two items they overlap the special widget is called stack widget”
    • Dynamically generating widgets using LayoutBuilder, Flex, and List.generate. This section provides a detailed explanation of how to dynamically create UI elements based on available space.
    • “layout Builder would give us this space available space and list to generate would help us to First to know how many items we want and then it would generate and then actually the size of this widgets generated would be given by sized box or any other widget like container that’s also okay”
    • “layout Builder inside it will have flx inside flax will have list to generate and inside list to generate will have sized box and eventual output would be a dynamically generated widget like this based on your layout Builder”
    • Using SingleChildScrollView to create scrollable views.
    • “Now when you wrap ticket view inside single child scroll view it’s just going to scroll this ticket view it’s not going to scroll others because you just one scrollable item”
    • Implementing Transform Widget to rotate an icon to get an icon direction like from departure to destination
    • “we can use transform and and within it there is a special class that or method actually rotate this one you can call this and it’s going to work”
    • Employing Positioned widget for precisely placing UI elements.
    • “then then over here inside this we also want to apply a little bit of box Shadow outside of this one okay and how to do that actually we are going to apply Shadow so it’s called box Shadow and box Shadow actually takes a list if you hover over on this you say it’s a list so we have to have this list thing over here so it takes list of Shadows the Shadows themselves are given through box Shadow this class and here color and here we could do colors. gray and then shade”
    • Box decoration is used to apply shadow to the container.
    • “well in that case we don’t have to do this all manually we could say here position and the position is left say 75 if you do that it might go up and then say 65 okay like this”
    • CircleAvatar and BoxShape is used to draw border around image.
    • “the first thing to mention is to draw a picture in a shape of circle then CircleAvatar is the best one to go forward with and then the next is how about I want to make sure there is a border around CircleAvatar then you don’t need CircleAvatar you can draw a circle inside a container and that would be called you want to draw it inside a box with a circle or ellipse then you have to put a box shape okay”
    • Styling and Theming:
    • Creating a centralized AppStyles class to manage text styles and colors.
    • “static const Color white = Colors.white;”
    • “static TextStyle textStyle = TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w500);”
    • Using TextStyle to customize text appearance (font size, color, weight).
    • “You’ll see that okay we don’t have text Styles so we need to actually uh create a new variable that’s going to call text style so Let’s go ahead and create this so this would be our new variable what refer to as text style now this would be also working as our base text style the default one”
    • Applying colors consistently using ThemeData.
    • Implementing dynamic color changes throughout the application.
    • Reusable Widgets:
    • Creating custom widgets for repeated UI elements (e.g., ticket views, tab buttons, text-icon combinations).
    • “so this ticket itself we are going to build it as a global widget”
    • Passing data to widgets using constructors.
    • Utilizing conditional logic within widgets to customize appearance.
    • Data Handling:
    • Using a JSON file (app_json.dart) to store data for ticket information.
    • “inside this I’m going to put this information now this would be given in the resources section you can go ahead and grab that”
    • Parsing and accessing data from the JSON structure (list of maps).
    • “from this visual analysis we see that we have a list and inside list we have map now that’s what exactly we wrote over here we have a list and inside list we have a map the map itself we also said the type okay so the map here value is string and then the sorry the key is string and the the value is dynamic so if this is a map over here if this is a map then what do we say”
    • Code Optimization and Best Practices:
    • Using const modifiers where appropriate for improved performance.
    • “We are going to try to put const wherever possible because putting const means okay I’m I I’m telling flatter that this is just a static widget it’s not going to be created again”
    • Choosing the right widgets for the task (e.g., SizedBox vs. Container).
    • Organizing code into separate files and folders for better maintainability.
    • Making the widget to be stateless or mutable.
    • “So try to do this whenever possible”
    • Ternary Operators
    • Using ternary operators for conditional checks and the concise code expression.
    • “in general uh here this question mark and Dot is called tary operator okay this question mark and this I think it’s not DOT actually it’s called colon so that’s called tary operator so we are going to use this tary operator now how it works”
    • Data passing from object of a class by constructor
    • Create the object by constructor to get or pass object’s value.
    • “This method eventually returns a class Constructor so whenever you return a class Constructor you are always returning uh new object”
    • Copy with Method
    • Copy with method lets you create a new object based on the old object’s value.
    • “copy with method based on whatever the object you give them it takes value from that object”
    • Static Keyword
    • Static keyword is used for sharing data across the program’s run time.
    • “static const Color white = Colors.white;”
    • Final, Const and required keyword
    • There will be only one object to be assigned with the const keyword.
    • “Whenever you return a class Constructor you are always returning uh new object”

    III. Notable Code Snippets and Techniques

    • Dynamic Widget Generation: The section on using LayoutBuilder, Flex, and List.generate is particularly noteworthy. It demonstrates a powerful technique for creating responsive layouts where the number and size of UI elements are determined at runtime. This is essential for handling different screen sizes and data sets.
    • The copywith Method In Dart this keyword plays an important role. If you want to use copy with method.”you just want to pass in that case if you have too many variables you have to pass all the variables at one time right and this is not efficient and what if you just want to change x value but you don’t want to change y value you still want to take this y value and you want to take a new x value from here and how to do that okay now this is where actually the full power of copy with method comes”

    IV. Potential Issues and Considerations

    • Complexity: The tutorial introduces a lot of concepts in a short space. Beginners might find it overwhelming.
    • Code Organization: While the tutorial covers separating code into files, the structure could be improved. For example, the AppStyles class could be further broken down into more specific theme files.
    • State Management: The tutorial focuses primarily on UI and doesn’t address more advanced state management solutions.
    • Navigation Implementation: Navigation is missing and needs to be implemented.
    • Screen detail implementation: Need to implement to see all details and it’s missing.

    V. Overall Assessment

    The source provides a valuable introduction to Flutter development through the creation of a ticket app. It covers essential UI concepts, styling techniques, and data handling. The tutorial emphasizes building reusable widgets and achieving a visually appealing user interface. While it touches on some best practices, further exploration of code organization, state management, and testability would be beneficial for building more robust and maintainable Flutter applications.

    Flutter Ticket App: Development FAQs

    FAQs on Building a Flutter Ticket App

    1. How do I create a new Flutter project in VS Code and Android Studio?

    To start, open VS Code and create a new Flutter project. Choose the first option after typing “flutter”. In the popup window, select “Flutter Project” and give your project a name (e.g., “ticket_app”). VS Code will generate the basic Flutter project structure. You will then need to open Android Studio to create an emulator to run the application on.

    2. How do I create and run an emulator or virtual device in Android Studio?

    Ensure Android Studio is open. Drag and drop your Flutter project into the Android Studio Window. Select “project” at the top left of the window. Click on “Device Manager”. Click “+ Create Device”. Select the virtual device configuration you want (e.g. Pixel 8 Pro) and click “Next”. Download any necessary components. Once the download is complete, select the downloaded image and click “Next”. Finish the virtual device setup. Start the emulator by clicking the play button next to the virtual device name in the Device Manager. Return to VS Code and run the Flutter project using “Run > Start Without Debugging”. Make sure that your emulator is selected in the bottom menu of VS Code.

    3. What is the significance of main.dart and the project folder structure in Flutter?

    The main.dart file is the entry point of your Flutter application. It contains the code that will be executed when your app starts. The project folder structure organizes your code and assets, making it easier to manage your project as it grows in complexity. Files starting with a dot are configuration files and can generally be ignored for basic projects. The Android and iOS folders contain platform-specific code if you need to customize native functionality.

    4. What is snake case naming, and why is it recommended for Flutter project names?

    Snake case naming refers to using lowercase letters and underscores to separate words in a name (e.g., ticket_app). This is a recommended convention in Flutter because it improves readability. While other naming styles might be technically possible, snake case is generally preferred for its clarity.

    5. What are widgets in Flutter, and how are Column, Row, Container, and Text widgets used?

    In Flutter, widgets are the fundamental building blocks of the user interface.

    • Column: Arranges widgets vertically.
    • Row: Arranges widgets horizontally.
    • Container: A versatile widget that can hold other widgets and apply styling such as background color, padding, margins, width, height, and borders.
    • Text: Displays text.

    Widgets are nested within each other to create complex layouts. For example, a Column might contain multiple Row widgets, each with its own set of Text and Container widgets.

    6. What is the copy with method, and why is it useful in Dart/Flutter development?

    The copy with method is a powerful way to create a modified copy of an object without directly changing the original object. It allows you to specify which properties you want to change, while keeping the rest of the properties the same as the original. This is useful when you have objects with many properties and only need to change a few of them. copy with can make code more readable and maintainable because you don’t have to manually copy all the properties of an object. To utilize the method, class variables must be set using named parameters and marked with required.

    7. What are StatelessWidgets and StatefulWidgets, and when should I use each?

    • StatelessWidget: Widgets that do not have mutable state. Their appearance and behavior are determined by the information they receive when they are created. They are immutable and cannot be changed after they are built.
    • StatefulWidget: Widgets that have mutable state. Their appearance and behavior can change over time in response to user interaction or other events. They have a State object that stores the widget’s state.

    Use StatelessWidget when the widget’s appearance and behavior are static. Use StatefulWidget when the widget needs to change dynamically.

    8. What is the difference between “final” and “const” variables in Dart, and how does immutability play a role in Flutter development?

    • final: A final variable can only be assigned a value once. The value is determined at runtime.
    • const: A const variable must be assigned a value at compile time. The value cannot be changed during runtime.

    Immutability, achieved through final and const, is a core principle in Flutter development. Immutable objects are safer, less prone to bugs, and contribute to better performance. When possible, prefer using final and const to create immutable widgets and data structures. The fields of a const constructor must also be final. Mutable objects are changeable. In general, immutable code is preferred.

    Flutter Widget Reusability: App Tabs, Text Icons, and Layouts

    Widget Reusability in Flutter:

    • Definition: A widget is a part of the screen or UI that you can see. In Flutter, pretty much everything is a widget.
    • Core Classes: Every class to be a widget has to extend the StatelessWidget class or StatefulWidget class. If extending these, the build method must be overridden.
    • App Tabs: App Tabs can be constructed as a reusable widget to display tickets and hotels. To do this, a stateless class is created with the name AppTabs. Two conditions that are subject to change should be declared as strings: tabString and tabBorder. The default value can be assigned, so it is not a required parameter. Then, copy the code and paste it, edit and reformat, and the reusable widget should be built. The tab text can be sent so that it can be directly used.
    • App Text Icon: This Widget may be built as a reusable text widget, so a stateless class is created. Inside this class, a container is used for the borders, so, the box decoration is used, and the border radius is set to 10. The color is set to white. A row is added as a child, with children being an icon and text. This widget is then styled.
    • App Column Text Layout: An app column text layout can be made a reusable widget by creating a widget and naming it app_column_text_layout.dart. The code for this widget is then copied, the dependencies are imported, and the text is added. To make the text dynamic, final String topText and final String bottomText are used.
    • Ticket Position Circle: This can be made a reusable widget by creating a new file called ticket_position_circle.dart. Inside this file, the code is pasted. This makes the widget reusable.

    Flutter Ticket Screen UI Design and Dynamic Data Loading

    In Flutter, the creation of a ticket screen involves several key steps, from installation to UI design and making the screen dynamic.

    Installation and Setup

    • To begin, the installation of VS Code, Flutter SDK, and Android Studio is required.
    • The Flutter SDK can be downloaded from the Flutter archive.
    • During VS Code installation, creating a desktop icon is an option.
    • After installing VS Code, the Flutter and Dart extensions should be installed.
    • A new folder for Flutter projects should be created.
    • The setup is verified by running flutter doctor in the new terminal of VS Code.

    Basic UI and Navigation

    • A basic template for a class can be created using St in Android Studio.
    • Libraries need to be imported for the code to work, and hovering over the code will display which libraries are needed.
    • A black screen may appear if there is no scaffold, but it will still work.
    • A colorful UI can be created using a scaffold.
    • Navigation or routing is covered to allow moving between different parts of the app.
    • The starting point includes step-by-step installation of VS Code, Flutter SDK, and Android Studio, including setting environment variables.

    Layout Design

    • Vertical layouts, where elements are stacked on top of each other, are represented by the Column widget.
    • Horizontal layouts, where elements are placed side by side, are represented by the Row widget.
    • These Row and Column widgets can be nested within each other to create complex layouts.
    • The outer layer of a layout determines how elements are aligned.
    • When designing a UI, consider how to arrange elements and which widgets to use.

    Creating the Ticket UI

    • The ticket is represented by a Dart file, and the class within represents a section of the screen.
    • The width of the screen can be accessed using MediaQuery to dynamically adjust the layout.
    • Using MediaQuery allows the ticket to take up a percentage of the screen, making it dynamic across different screen sizes.
    • A SizedBox is used to define the dimensions of the ticket.
    • Margins can be applied to the container to adjust its position.
    • The ticket layout is structured with a container, a column, and two rows.
    • The container wraps the entire ticket, the column organizes the rows vertically, and the rows arrange items horizontally.

    Dynamic Data Loading

    • The use of Dart lists and maps allows for building more complex and dynamic UIs.
    • A new directory called “utils” can be created to hold a file named “app_json.dart”.
    • This file contains ticket information in JSON format.
    • The JSON data is structured as a list of maps, where each map represents a ticket.
    • The keys in the map represent ticket properties, and the values are the corresponding data.
    • The data can then be loaded from the JSON file.
    • The SingleChildScrollView widget is used to enable horizontal scrolling of ticket views.

    Navigation and Routing

    • Clicking “View All” navigates to a new screen displaying all tickets.
    • A new Dart file called “all_tickets.dart” is created for this screen.
    • The Navigator object is used to manage screen transitions.
    • The push method adds a new screen to the stack.
    • The Scaffold widget allows for easy navigation back to the previous page.
    • The Navigator.push method pushes a new UI onto the screen.
    • Mobile apps use full-screen elements called screens or pages to display content.
    • In Flutter, these elements are called routes and are managed by a navigator object.
    • The Navigator widget manages a set of child widgets in a stack.
    • Routes can be defined using MaterialPageRoute.
    • Named routes can be used for cleaner navigation.
    • Mapping can help with routes.
    • The Navigator.pushNamed method is used for navigation with named routes.

    Reusable Text and Dynamic Function Passing

    • A reusable text widget can be created for displaying titles or headings.
    • Functions can be passed as parameters to widgets, making them more dynamic.
    • A variable of function type can be declared in the widget.
    • A callback function can be used to handle events.

    Hotel Display and UI Components

    • A new widget can be created for displaying hotels.
    • This widget can be placed inside the “widgets” directory within the screen’s folder.
    • The hotel widget returns a container with specific dimensions and styling.
    • Images can be added to the container using the decoration property.
    • The MediaQuery is used to get the screen size and dynamically adjust the hotel widget’s width.
    • A column widget is used to stack the image and text vertically.

    Dynamic Hotel Information

    • Hotel information is loaded from a list of maps, similar to the ticket data.
    • The hotel name, destination, and price are dynamically displayed using variables.
    • String interpolation is used to combine text and variables.
    • The take method is used to limit the number of hotels displayed.

    Search Screen

    • A new Dart file called “search_screen.dart” is created for the search screen.
    • The search screen is made scrollable using the ListView widget.
    • Padding is added to the ListView to create spacing around the elements.
    • A SizedBox is used to add spacing between the top of the screen and the search bar.

    App Ticket Tabs

    • A new widget called “app_ticket_tabs.dart” is created for the tabs.
    • The tabs are implemented using a Row widget.
    • Containers are used to create the border styling for the tabs.
    • The MediaQuery is used to get the screen size and dynamically adjust the tab widths.
    • Box decoration is used to style the tabs with border radius and color.

    Dynamic Styling and Reusability

    • The color can be defined in the “app_styles.dart” file.
    • The tab styling is made dynamic by using variables and passing them as parameters.

    App Icon Text Widget

    • A new widget called “app_icon_text.dart” is created for displaying icons and text.
    • The icon and text are aligned using a Row widget.
    • Padding is added to the widget for better spacing.
    • The icon and text are made dynamic by passing them as parameters.
    • The MainAxisAlignment.spaceBetween property is used to distribute space evenly between the icon and text.

    Find Tickets Widget

    • A new widget called “find_tickets.dart” is created for the “Find Tickets” button.
    • The button is styled using a container with a border radius and color.
    • Padding is added to the button for better spacing.

    Upcoming Flights Section

    • The “Upcoming Flights” section is implemented using a Row widget.
    • The SizedBox is used to add spacing above the section.
    • The section contains two containers, each with a column inside.
    • The image and text are placed inside the columns.
    • Box shadows are applied to the containers for a better visual effect.

    All Tickets Screen

    • A new Dart file called “all_tickets.dart” is created for the all tickets screen.
    • The screen is made scrollable using the ListView widget.
    • Padding is added to the ListView for better spacing.
    • The ticket tabs are added to the screen.
    • Parameters are passed to the ticket tabs for dynamic styling.
    • A TicketView widget is added to display a ticket.
    • The AppLayoutBuilderWidget is used to create a dashed line.
    • The ticket details are displayed using text widgets.
    • The GestureDetector widget is used to make the tickets clickable.
    • The Navigator.pushNamed method is used to navigate to the ticket screen when a ticket is clicked.
    • The ChangeDependencies method is used to pass arguments between screens.

    Hotel Details Screen

    • A new Dart file called “hotel_detail.dart” is created for the hotel details screen.
    • The screen is implemented using a CustomScrollView widget.

    Flutter Navigation Implementation Guide

    Navigation implementation in Flutter, as explained in the sources, involves several approaches utilizing widgets and methods to transition between different parts of an application.

    Key aspects of navigation implementation:

    • Basic Navigation and Routing:
    • Navigation, also known as routing, enables movement between different parts of an app.
    • This is achieved through the Navigator object in Flutter.
    • Full-screen elements like screens or pages are called routes and are managed by the navigator object.
    • The push method of the Navigator object adds a new screen to the stack, visually transitioning to it.
    • The Scaffold widget facilitates easy navigation back to the previous page.
    • Navigator.push pushes a new UI onto the screen.
    • Utilizing MaterialPageRoute:
    • Routes can be defined using MaterialPageRoute.
    • To push a new route on the stack, create an instance of MaterialPageRoute with a builder function to define the screen’s content.
    • Named Routes for Cleaner Navigation:
    • Named routes provide a cleaner approach to navigation.
    • Mapping can further aid in organizing routes.
    • Navigator.pushNamed is used for navigation with named routes.
    • A route’s name is looked up in a map, and its associated widget builder constructs a MaterialPageRoute.
    • Dynamic Function Passing:
    • Functions can be passed as parameters to widgets, which makes them more dynamic.
    • A variable of function type can be declared in the widget and used as a callback function to handle navigation events.
    • Passing Arguments Between Screens:
    • The ChangeDependencies method is used to pass arguments between screens.
    • The arguments can be accessed using settings.arguments.
    • Gesture Detection for Navigation:

    *GestureDetector` widget detects the tap event for navigation.

    • Custom Scrolling:
    • Custom scrolling effects can be achieved using the CustomScrollView widget.
    • SliverAppBar and SliverList can be used within the CustomScrollView for custom animations and layouts.

    Flutter Dynamic Data Implementation with JSON

    Dynamic data implementation in Flutter, as described in the sources, revolves around using Dart lists and maps to create adaptable and data-driven user interfaces. This involves loading data from sources like JSON files and utilizing it to populate UI elements dynamically.

    Key aspects of dynamic data implementation:

    • Dart Lists and Maps:
    • Dart lists and maps facilitate the creation of complex and dynamic user interfaces.
    • These data structures are used to hold and manipulate data that populates the UI.
    • JSON Data Loading:
    • Data can be loaded from JSON files, commonly structured as a list of maps.
    • Each map within the list represents a data entry, such as ticket or hotel information.
    • The keys in the map correspond to data properties, while the values hold the corresponding data.
    • Dynamic UI Population:
    • UI elements, such as text fields and images, are populated with data extracted from the loaded JSON.
    • String interpolation is employed to combine text with dynamic variables, enabling the display of data like names, prices, and descriptions.
    • Adapting UI with MediaQuery:
    • MediaQuery is used to access screen size, enabling dynamic adjustment of layout components based on the device’s dimensions.
    • Data Iteration with ListView and GridView:
    • ListView and GridView widgets are employed to iterate through lists of data and generate corresponding UI elements dynamically.
    • These widgets efficiently render large datasets and support scrolling functionality.
    • Reusable Widgets with Dynamic Parameters:
    • Reusable widgets are created to encapsulate UI components and accept dynamic parameters.
    • By passing data as parameters to widgets, the UI can be customized and updated dynamically.
    • State Management for Data Updates:
    • Stateful widgets and state management techniques, such as setState, are used to handle changes in data and trigger UI updates.
    • When data is modified, setState is called to rebuild the UI with the updated values.
    • Conditional Logic with the Ternary Operator:
    • The ternary operator is used to implement conditional logic within UI layouts.
    • It allows for concisely determining which UI elements or properties to display based on data conditions.

    By using these techniques, Flutter applications can efficiently load, manipulate, and present data, resulting in dynamic and interactive user experiences.

    Flutter Text Styling Guide

    Styling text in Flutter involves using various properties and widgets to customize the appearance of text elements within an application. Here are key methods and concepts for styling text in Flutter, according to the sources:

    • TextStyle Widget
    • The TextStyle widget is central to styling text. It is applied to the style property of the Text widget to define various visual characteristics.
    • It accepts a class or widget.
    • The TextStyle widget can be assigned to the style property.
    • Key Properties in TextStyle :
    • color: Specifies the color of the text.
    • fontSize: Defines the size of the text.
    • fontWeight: Sets the weight (boldness) of the text.
    • fontStyle: Choose between normal and italic styles.
    • Applying Styles to Text Widgets:
    • A Text widget can be colorized, changed, or have a style assigned to it.
    • If no style is applied, the default style is used.
    • Multiple styles can be applied to the same Text widget to achieve the desired appearance.
    • Reusing Styles:
    • To avoid manual and repetitive styling, styles can be saved in a separate file for direct reuse throughout the application.
    • This approach helps maintain consistency and simplifies updates to the text styles.
    • Copying and Modifying Existing Styles with “Copy with” Method:
    • The copy with method allows you to copy an existing style and modify only the properties you want to change.
    • This is useful for creating variations of a base style without redefining all the properties.
    • Base Text Style
    • A base text style with exact color, font color, and font weight can be created.
    • It is possible to change one of the ways to work with the base text style by copying it and giving it a different name.
    • Text Alignment:
    • The textAlign property is used to align text within its container.
    • It can be set to TextAlign.start, TextAlign.center, TextAlign.end, etc., to control the horizontal alignment of the text.
    • Text Shadows:
    • The shadows property in TextStyle allows adding shadow effects to the text.
    • It takes a list of Shadow objects, each defining the blur radius, color, and offset of the shadow.
    • Specific Styling Example:
    • To style the ‘NYC’ text a specific headline3 style is applied and the color is set to white using the copy with method.
    • Global Styling and Themes
    • Define styles as constants in a separate file for reuse.
    • Use these constants in TextStyle properties.

    By using these methods and properties, Flutter developers can create visually appealing and consistent text styles throughout their applications.

    Flutter Course for Absolute Beginners

    The Original Text

    hello everyone assalam alaikum this is a flutter absolute beginners course and this is a course for flutter 2024 and in this course will cover flutter and dart using flutter and dart will cover complex UI the complex topics would include class Concepts Constructor inheritance stateful class stateless class widgets reusable widgets and then more on the Dart side will cover more about list and map different iterations map and Json and how to process map data and many more at the end of the course You’ be able to build something beautiful you’d be able to build a homepage UI like this which is complex and then over here you will have your search screen and then after that here you will have ticket screen which is very Advanced and complex UI and then eventually you will have your own profile page and in the course we’ll also see how to do navigation or routing that means that if you click on different part of the screen it will take to other places or other part of the screen or other part of the app so that would be very exciting apart from that we have also covered three main State management system getex block and River pod but by the time now if you don’t know about them it’s okay so take it easy I’ll cover everything step by step we have also covered routing and navigation which I have talked before at the very beginning of this tutorial we have started with installation that means we’ll cover installation how to install so we have done a step by-step installation of vs code flut SDK and Android studio and not only that we have covered how to set all the complex environment variables and how to get them up and running anyway throughout the course you will see we have covered a lot of quizzes and assignments to solidify your flatter learning and then along with this along with this of images to solidify your further learning because if your beginner to flutter sometimes it could be scary the ideas the concepts but as you can see we have used so many different types of images to give you better understanding of the visualization of flutter application and how everything works together So eventually end of this course you’ll Master flatter learning okay so this is our app when you start it up you’ll see like this and you can scroll you’d be scroll left to right from here and the same you’d be able to do for hotel screen or hotel sections and at the same time if you click any of this over here it will take you to the detail ticket screen page now the same for here for example if you’re moving from Daka to Shanghai so here you’ll see from dhha to Shang and all the related information not only that You’ be able to view all the tickets okay so these are a lot of tickets and once again if you click anywhere you’d go to the related screen on the detail page and the same for hotels so here you will have hotels and then you can also click on this you could view more images like this and then over here you’d be able to scroll up and down and you’ll see there is a beautiful animation you can do less you can go back all right now you’d be also able to view over here so here you’ll have more hotels or related information and once again you can click any of them and the same effect goes and a beautiful animation eventually so we have covered everything in depth and of course you will have your search screen over here and then your ticket detail screen and your profile okay so the very first thing we’ll do we’ll go ahead and install vs code so let’s go ahead and type in vs code and click on the very first one and then over here go ahead and click on this download it somewhere I have already downloaded it so I’m not going to download it again and then the next thing we want to do is flutter SDK SDK and then I’m going to come over here this second line where it says that flatter archive SDK archive and then from here I’m going to download the latest version and once again I have already downloaded it so I’m not going to do that again so go ahead and download it and after that over here we are going to download Android Studio let’s go ahead and do that Android studio hit enter and wait for it to be loaded and then click on the first link that you have and let’s pop up and click download and then all you have to do accept the agreement go down click yes I have read it and click download and then wait for it to be downloaded and after that you’ll see you have three of them in downloaded folder and this time we’re going to first start with vs code we’ll install it and then we’ll move ahead with others so now let’s click on this vs code dual time or twice and then it’s going to start installation let’s accept it click next next and next with this we’re going to continue but I think I have forgotten to mention or click on the start as a desktop icon or create a desktop icon let’s go ahead and select it now click next next and next so now it’s actually installing and it may take a bit of time depending on your system and we are done so now it’s going to pop out with the vs code UI so let’s wait for it so here we go this is our vs code well in next section we’re going to install flut SDK open up your V code and go to new terminal and then over here we’re going to run flutter doctor once again we’re going to make sure that our setup is correct and once we see the setup is correct we’ll go ahead and install two extensions one is a flter and another is Dart we need those extensions to create flutter project in vs code now you see that everything is fine now click over here on this button and we’ll inst stall this two extensions so first come over here and type in flatter make sure that you type it correctly and then go ahead and install this one the very first one here you will see an install button click on that and install I have already done it and then type in Dart and once again select the first one and over here you will have an install button go ahead and click on that I have already done it so once these two in extensions are done installation we’ll go ahead and create a folder named flutter project so come over here and create a new folder called flutter projects and within this folder we’ll store or save our flut projects now this will hold many apps in future anyway so once this is done our job is to go ahead and open it to open it come over here view command pallette and type in flutter now once you type in flutter choose the first one and then over here once again choose the first one application and then it would give you a popup window and from the popup window select flutter projects the one that we created and click this button over here and now give it a name give it a name ticket app and this is our actual project name ticket app now over here it will go ahead and create this flutter project for us and as you can see that it’s running over here and then on the left side we see that project has been created and this is our main. Dart and main. dart is the most important for running flutter project but now our project will not run yet because we need to go ahead and create an emulator or virtual device to do that you need to open your Android Studio from Android studio will go ahead and create emulator or virtual device to create an emulator or virtual device first make sure that your Android Studio is open and then open your project which is ticket app let’s go ahead and open it from our flutter projects folder ticket app this one drag and drop on Android Studio drag and drop it on Android studio and once you have done it will open and make sure that on the left top side you select project project and you will see your ticket app and within it you will see the live folder and select main. Dart and from here we’ll create a virtual device to create a virtual device click on device manager and here at the top you will see that create virtual device the plus icon and select over here any of them you want in my case I’m going to select pixel 8 Pro and this would be our virtual device click next and over here if you see any message like that you can ignore this and then click this download button you make sure you you’re downloading it and now the downloading may take a bit of time and you have to wait once the downloading is done we’ll be able to start our emulator so wait until the downloading is done now it’s done and once again over here make sure you select the downloaded one this one and and click next and you may change the name if you want but anyway so let’s go ahead and finish and here you will see your virtual device or emulator I have created a few in your case you will see only one whatever you have created go ahead and click on this button and then it will start your emulator and once the emulator is started you may go ahead your vs code and over here Run start without debugging it will start and make sure the bottom you select over here that button and based on that you’ll see that your emulator is start and your flatter project is starting and after that over here you see that our emulator is here and click on the button and it’s going to continue to increase the number as you see so that’s how you run your first app go ahead and get started make sure that your Android Studio is open like that and then over here we’re going to go ahead and create a new flutter project so I’m going to click on this and then over here in general the SDK path should be selected automatically this also means the folder where you have installed flatter so that path so you need to make sure that that path has been install sorry that path has been correctly given over here once again so this would be somewhere here so I’m going to come over here and then we’ll see that this is flut dab and flutter like this so we are referring to this folder over here okay so I’m going to click next and over here I’m going to give it a name okay here I’m going to say ticket app all right so make sure that you give the same of course you can name it anything all right so at the same time you make sure that you have underscore that’s the recommended way to do it but I believe you can also do like this but this is not recommended and it looks ugly so you should have underscore and whatever the name you want to have uh in front and end okay all right and this where your project would be located all right okay so make sure that one anyway so this kind of naming is called snake case naming because it’s like a snake all right okay and after that over here we don’t need to do this because uh and flatter is multicross platform app but here we’re just going to focus on working on Android and iOS mobile apps not really for Linux Mac and web or Windows and uh one more important stuff here in general because this is a very starter course or app this should be okay but if you want to use it in real world app real world production app or in the real world this name has to be unique in general it would be using your domain name so this is our domain name or my domain name device tag and then com so when it comes to organization name it starts from the end so when you type on the browser you might do the best.com but for creating flutter project organization name Comm or or or CN or whatever the end suffix is that goes or comes first all right so that’s it so now after that we’re going to go ahead and click finish so it’s going to create our app all right okay all right so the app is uh the project has been created actually and I’m going to make sure that I create I select the project folder so make sure that you select this one all right and after that that I’m going to make sure that I have an iOS simulator selected all right if it’s not selected first you go ahead and create one from here and then select it and then it’s going to show up over here but at the same time if you want to run on Android just pick one of your simulators Android emulator from here and it would show up here somewhere then you select this and you are good to go so let’s go ahead and restart our app now this may take a bit of time so here we go so this is our default app and actually this is our app from our default project we just created it and nothing has changed so far project has been created I’m going to continue over here and give you basic introduction of this project folders now at the top these two files uh the files that starts with DOT we can ignore them and then we have this Android folder we can open it up and here we see app folder and then also other folders now in general when our app becomes complicated and if we are going to connect with many third party services for Android phone or for Android apps we need to make a lot of changes within this files mostly this file and this file and at the same time we also make changes in our Android XML file which is actually called Android manifest XML this file okay now for now we don’t need to touch them so we’ll keep them aside once again the changes you make in this folder they reflect on Android apps now similarly we one we’ll have one for iOS apps so most of the time the iOS apps if we we want to make changes on iOS version now over here we have to make changes or add new files and in future we’ll also see that there would be pods folder p o DS pods we don’t have it now so these are some Advanced steps we don’t need to touch this for now now in between these two folders we see build folder actually build folder is generated when you run your app compile it for example I can go ahead and delete it okay so let’s go ahead and delete now the build folder is gone and now if you go ahead and run your app here we’ll see that soon a bill folder would be created let’s see if our app is running or not okay okay right now it’s restarted and the build folder has been created so in general we don’t do anything so this is autogenerated most of the time when you move your code around you want to skip this build folder because it’s too heavy and it’s too big and after that we do see that our lip folder now lip folder sits at the heart part of flutter project Li folder is the folder that would contain every source code all the code that or the source files that ends with DOT doart all of them would be inside this live folder and as our project grows we’ll see that there are many more folders inside this live folders and we will make changes and entry point of our flutter project is this main. Dart file now this is the entry file and entry point and among them this is the most important or core function main is a function and this is actually entry function we’ll see this things later tutorials and then test folder now test folder is is for flutter test driven development which means that if you build an app if you build functionalities it’s better you go ahead and test those things but since we are not going to test any of these things in our application so we can also go ahead and remove this and it’s not going to create any problems okay you can keep it you can delete it now I have other tutorials how to do test so once you’re done with this tutorial you may go ahead and take that one now there are a few other files and among them the most important is this pope. yml file now this file has your project configuration settings like your project name basic description and Publishers name and your project version and most importantly flutter SDK version and this is the latest SDK that we are going to use okay all right and then there are dependencies that our flutter project depends on so here are the dependencies files now very soon we’re going to install a lot of plugins so that our app we can build fast and those plugins most of them would be under this dependencies section and we’ll see them later and these are Dev dependencies which means that during development time we need some plugins plugins that would help us to develop faster we’ll keep under this section c s and over here we also see flatter and now inside under this Mark we can add our resources and assets so this file we’re going to come back later again and add more stuff to it all right and then there is another one which is pop speec do lock now this file in general we don’t touch but if there are some dependencies mismatching if sometimes we delete this and it’s generated later but most of the time you don’t want to touch this all right so that’s our basic flutter project introduction and later we’ll talk about this whole main do Dot and some of the concepts and the code is here we’re going to go ahead and take a look and try to understand okay well in this part first we are going to save our project in get repo CU every time we make changes we want to save the repo so that in future we can use it easily okay so I have already created uh get repo from here as you can see so if you have a git account you can go ahead and do that but this is not my mandatory but recommended if you have a repo where you save your code it’s great and you can always go back and see the changes and the differences anyway so I have created it now I’m going to upload my code to the Rost so I’m going to follow this command all right so I’m going to open up my terminal and uh after that I’ll just make sure that I’m in the root directory of this project okay so first I would do get in it all right and then I would do get add the whole project everything has been added and then over here I’ll have this command where it says that get Comet uh first comet so let’s go ahead and do that okay and our next one is this one okay let’s go ahead and uh add to our uh remote origin so with this would be connected to this rle link okay and then the last one is this one okay right so the benefit of doing this one is that now every time we make changes somewhere in our code we’ll see that there are this blue lines at least in Android Studio okay so I highly recommend follow Android Studio because it’s very flutter friendly so with this you’d be able to see the code that you have changes okay for example if I go ahead and remove this I know that over here I have removed something now if I go ahead and hit enter the blue lines the green line means I have added something this Orange Line means I have removed something and I like it it’s very user friendly and it helps you to keep track of the changes easily seeing is that we are going to clean up this Sol code because here we do see that there are a lot of comments and how to do that well there is a trick to do it definitely you can go ahead and remove them manually but there is a trick so I’m going to use controlr or command R if you are on Windows use controlr if you’re on Mac you can use command R so let’s go ahead and do command R and we should make sure that the file is selected and now we have this and after that over here at the top we could do this one so you see each of the commands just starts with double slash so slash okay and then Dot and Then star and after that new line n okay so when you do that after that you just click replace all but we need to make sure that we select this one and then replace all and here it is it’s so beautiful okay so now it’s cleaned now of course over here it messed up with the format and how to work with this one well actually it’s easy so you might have it like reformat the code with dot d formator so all you need to do select the file right click and click on the this okay now it looks more beautiful okay so yeah that’s how this reformatting works so if you want to remove code so anyway if you want to remove something you have to have this uh removing thing in our case we are removing double slash and then dot star means all the comments or all the double slash and the slash N means everything after this comment everything after this double slash it means if you have some empty space Also remove that one okay and here we are saying that whatever is there has been selected remove everything okay with this emptiness all right so that’s how it works and make sure that you select this one as well okay and that’s how it works okay so now we are going to go ahead and start coding and understanding so next hour or like so would be pretty much understanding about how flutter works and definitely actually how Dart works okay because flutter is written based on Dart language and the entry point of Dart language is main function this one just like any other uh programming language out there like Java or PHP you have an entry point so this is our entry point and everything starts from here okay and now this app is alive for example if you go ahead and click on them it would work actually but of course if you go ahead and remove or restart it actually it’ be gone okay all right now one thing let’s go ahead and do that remove this and anyway rest your app and you will see that you click on this it’s gone okay in a sense because it’s not reactive it doesn’t work anymore because inside the main function run app is our entry point actually main is entry point and another entry point is this one now this one is for flutter framework to work in our case if we go ahead and print here we say hello Dart all right and then if you do it actually you need to restart it so here we do see that hello Dart okay so main function is the entry point for our Dart language not and at the same time this is an entry point for a flutter framework okay well of course uh even though it’s not there the UI is still visible even if you restart and even if it’s not there the UI is still there the reason is because we are inside flatter ecosystem right now so there’s always a default value okay so everything is default right now this one even if you don’t give anything it’ll still show you okay so that’s how it works now our main function Works without this so next we’ll understand what is called class and extending classes now if you’re very new to programming or flatter this may look scary so next 10 minutes I’ll give you an idea what is class and what is uh extending now before that I do actually I’m going to uh comment that out so I’m on Mac I’m going to hit command option and slash so it’s going to do or comment like this so if you are on Windows you have to do control alter slash when I say slash this slash so you have to hit control alter slash anyway so now let’s go ahead and uh learn a bit of idea and from here actually our actual programming starts and one thing though in this tutorial you’d be actually building flut as well as a dart skill a lot of B beginners they skip the dart part and end up learning a little so would heavily focus on Dart and flutter and every time a new flutter concept comes up like this we will cover the dart concept first and then we’ll learn the flatter one more important concept before we start editing our code is understanding this uh Constructor thing and what is it well a lot of you might already know it but I’m going to cover it briefly but if you have more questions you can always leave questions now we do see that here we have two classes they this one extend the other one okay now there is something called abstract class okay like this now when you define an abstract class you can have same properties but in general you shouldn’t have the body of a method okay so when you have abstract class this abstract classes just work like you know blueprint for child classes one more one thing though like abstract class itself still works as a parent class or Bas class so similarly it will have a child class so this is a child class so car class extends the vehicle class okay all right and then this class itself has its own properties now all these properties once again would be would be able to extend or override actually in our child class okay all right and one of the properties of this uh abstract class is that if you try to instantiate it you’ll get error for example ver V call let’s see so as you see here we have an error abstruct class cannot be instantiated try creating an instance of a concrete subtype so it’s telling you over here go ahead and make this class a parent class of a child class and use that child class to create an instance like we did early so you cannot work like this then someone may ask why do you have this abstract class once again I said that in abstract class abstract class the work as blueprint okay which means that there are some given criterias properties and uh child class can use them and child class can also add more on the top of it so abstract class works as the base it’s the base and on the top of it you add more and more stuff okay so that’s why we call it abstract class because it’s a blueprint okay but it doesn’t really do anything like when you create a building the building will have Foundation underground right without that building without that Foundation your building will not stand right that Foundation defines how tall that building should be and how strong that building should be right so that’s what the abstract classes do at the same time just like Foundation this also works as a parent class like when you create a building on the top of foundation we create more and more layers so we have abstract class on the top of this we may add more functions in our child class for example here you can have a class sorry you can have a method okay you can say car type okay that’s it and here you say uh land Runner whatever it is okay so it’s just a type type of the car okay but this one is not defined over here okay it just defined within this one so we have WNAM and at the same time we have car type okay so this is not going to work so what you have to do here you have to save our car and car and then we’ll not have any problems so here we could say car dot car type as you can see we can say car. wols type or Wes num okay it’s still going to work as you see over here it’s printed so one of the basic idea of uh programming in a lot of other places to work like this like Java PHP C that you will have an abstract class and it’s it’s something that you should be doing like this this is a common convention and programming rules okay so most of the time if you app back app becomes bigger complex so you will have blueprint in your app so rest of the app has to follow the blueprint and work on that all right anyway now back to this idea how the Constructor works so this is something called Constructor okay so now you have a class name and you define a method without the body and the same as the class name that’s called Constructor so this is our Constructor okay so over here this vehicle itself is the Constructor okay why because over here you do see that this is the class name and the method name is also vehicle so when the class name and Method name becomes the same the method name is called The Constructor of that class so we do have a Constructor but why do we need this thing in fact everything works without this Constructor right now see in this vehicle I said that whose’s number is 10 right what if you don’t want to Define this value over here okay of course now it’s going to say well this value must be initialized now over here you’ll see that okay null non eval instance field WS must be initialized okay so when we assign a value like this any value is called initialization but now over here uh this one it says okay this variable value has to be initialized so one of the ways we can do it over here okay we like this and this is still work but now this would cause problem in our child class now it would say okay in child class you need a Constructor like this this exactly the same thing that one we see we have over here okay now of course with this this is a problem that it created a new problem what is the problem the problem is that well this child class itself uh has a Constructor as well as you can see there’s also a Constructor just like this one but this Constructor actually takes values okay takes values parameters when it gets initialized or when we we actually instantiate it when we create an object using this child class it needs something so now you do see that when we actually create an object we call the Constructor you can understand it like this okay now this Constructor has this parameter that we need to pass to it otherwise it’s going to throw an error so here we can say four all right now let’s go ahead and run it so we see that number is four so if you have a a Constructor in your abstruct class and that Constructor takes uh parameters and then at the same time your child class has to have that Constructor the same way the parameter should be there otherwise it’s going to create an error now the benefit of having a Constructor is this that you can pass value the way you want okay why say for example you want to create another class so let me go ahead and copy this okay all right say over here you might say that plane okay okay plane type all right now what about this planes over here okay how many cars how many walls should it have so here I’ll say ver plane and plane so now a lot of planes they might have only three wheels small planes okay so here would say plane. WS Nom now go ahead and print that okay now of course we need to change it to planes Wheels number okay planes Wheels number so this is what we see over here so once you have an abstract class this could be blueprint for all of your other classes and at the same time you can customize each of your child class based on this blueprint so we are still using WS number of WS but for each child classes they are different now how it is possible it’s possible because our child class has a Constructor and our child class has a Constructor why the reason is because over here our abstract class as a Constructor and that Constructor takes something all right so that’s how things work over here so with this we see that the similar idea is implemented over here so well this is a child class child class is extending this stateless widget class the stateless widget Constructor takes something like this and that’s how and that’s why we have to pass super. key something like that just exactly same over here we have passed all right now with this I think we have good understanding of basic classes and inheritance as well as abstraction and concrete classes these are called con concrete classes concrete means solid okay and this is called abstract classes and extending on abstract classes is called inheritance so car class inherited vehicle class plane class inherited vehicle class and at the same time we have better understanding of how Constructor works so in next section we’re going to dive into this section and start editing so now by this time we already have a very good understanding of what is class abstract class what is inheritance so we don’t need this now so we can go ahead and remove them so let’s do that okay and as well everything from here let’s clean it and now let’s run our original app and let’s do something exciting and let’s look look at something exciting okay all right so everything is back with this life you might not have the same but anyway so earlier we learned that this run app run app actually if you see so it takes something in its argument so what is it now it takes widget okay it says that this is a widget so whatever you have to pass to it has to be a widget now what is widget in flut actually every class is a widget when you write flutter code like this is a flutter code and then in general every class is a widget okay but of course uh to meet the condition every class to be a widget you have to either extend this stateless class or stateful widget class this stateless widget or stateful widget when you extend them then every class becomes a widget okay widget means part of the screen or UI that you can see like this is a widget okay so if you have more of this there would be more widgets if you see a text over here like this is this text is a widget this is a widget of course this section is very different this doesn’t called widget this is called abar okay so remember in flut pretty much everything is widget every class is a widget and a class to be widget that class has to extend the stateless widget class or stateful widget class by saying that one of course if you extend this stateless widget or stateful widget you have to override this build method okay in both cases you have to override this build method so that’s what we might see over here so here we do have this build method method okay so this homepage is uh extending stateful class and over here we override another method which is called create State and this method eventually actually takes a class so as you can see this is a class and then this class eventually has this build method which we override so the idea is as soon as your class extend stateless widget class or stateful widget class you have to have a build method okay so this two thing I mean this thing is compulsory all right the build method itself so that’s uh the thing that we need to understand there are more things that we have here and we’ll cover them later otherwise it’ be too theoretical now then what is the difference between stateless class and a stateful class all right okay so so from the meaning from the word itself stateless widget class you have to know that you have to understand it doesn’t have any state what is a state state means that where things changes a lot of things happens you get to see State means condition status situation so which also means that it doesn’t have any living condition which means that it’s not alive you can feel like it’s dead okay on the other hand stateful which where a lot of activities happens okay so whenever your class is uh extending a stateful widget class your widget also becomes stateful remember now this class is also a widget right whenever you extend stateful widget class your class itself becomes stateful so I can say this class is stateful and this class over here my app is stateless okay okay all right so that’s what you have to understand so that also means that right now if I say have a variable somewhere here or say somehow I declare a variable ver X here Z and I want to change the variable on the UI and show it um it won’t be responsive which means that if I change the variable in run time and I want to show it here the changed value we will not see here okay that’s one thing now with this we’ll see more examples in future uh we’ll have more live examples where it’ll make more sense okay so with stateless widget class the idea is if you have a variable or UI you want to change and redraw the UI with the stateless class itself within the declared variable you cannot do that okay you might need other mechanism but whenever your class is a stateful class in this case this one and you somehow change the variable their value and you get to see the value the changed value immediately now here actually flutter official uh site has given us an example so this is our counter variable value zero and then somehow now we change this value so when we click on this button this methods get called and as this gets called this line gets executed and then this value it changes and we see it immediately over here okay so let’s go ahead and click on this so as you see the value changes and we say it now the value changes is actually we can also show them on our terminal let’s go ahead and do that um over here let’s come over here inside this print inside this set State method this set State over here so we say the changed value is okay here counter we are printing it to our V uh terminal over here okay all right so now let’s go ahead and change it remember when I click on this this button we’ll talk about this button everything later but let’s get excited about it so here you’ll see so the value changes we say it here but of course if I put it down actually You’ see the changed value live let me go ahead and do that okay all right let’s try it one more time now it’s currently 0 0 and if I click on this this value would increase and then over here will print it so as you see it changed immediately like this okay so the point I’m trying to make over here if you have a stateful class then you can if you make this kind of changes in general you’d be able to see it on the UI on the screen but if you do the same inside a stateless class you’ll not be able to see that even though you’re able to see the value printed over here but you’ll not see it that it works on the UI which means that we will not be able to see it over here on our screen so that’s the biggest difference okay so earlier I said that stateful class like this one my homepage is a stateful class then it makes our screen scen live active with stateless class it looks like our screen is dead nothing is happening okay like that so that’s how it works okay and another big difference is that when you have a stateless class inside the stateless class you cannot use set State function okay set State function could only be used a class that is stateful like in in our case my homepage is a stateful widget class so that’s why actually we are able to see the changes I mean and as well as we can use this one okay set state so set State we won’t be able to use inside a class that has stateless widget only within this okay so this is the biggest difference between a stateful class and stateless class okay now we’ll have more examples on stateful class like this okay so right now we already see that we have this button so where is this button now I know there are a lot of other things we’ll be talking about them later okay so let’s see that how stateful class works over here there are tons of other things that we need to learn so we be learning step by step don’t worry okay so now over here you see that uh we have something called this one Floating Action button so we can just cut this one I’m going to select this and then here I’m going to put something like something you call as a row don’t worry if you don’t know what it is just type in with me because I’m going to explain them soon all right and then I’m going to write here children and then after that I’m going to put this one one more time and I’m going to put it another time okay one more time so to Total two times so we have this one and then this one and this things okay all right now let’s go ahead and click on this hopefully it would be able to help us solve it I mean save it actually when you click on this one so it says hot reload you don’t have to always restart when you have UI change you can just click on this and it would update the UI of course these two things are together don’t worry once again in later tutorials I’m going to explain everything right now come over here and then right over here you could write something like this called main access alignment main access alignment write again main access alignment remember it’s capital letter then do Dot and then here we say space between and then do it like this so we see that they went too far from each other okay like that now it we could do more styling but it’s not important right now okay and uh over here instead of add I think we could do remove uh it would still work okay and instead of writing increment here we could say decrement decrement and over here we can also say decrement all right now of course this doesn’t exist this is going to throw us error now to solve this error we can just go at the top and then we’re going to come over here and just exactly down there the way we wrote we can write here decree INR and the arror should be gone in both places so earlier this one was referred by this and then this one is referred by that okay all right and then over here I’m going to do minus minus okay so when we click on this button is going to increase the value when we going to click on this button it’s going going to decrease the value before we do that let’s do hot reload and you see the icon changed okay so we’re going to click on this this method would get called we’re going to click on this this method would get called and both of these methods are actually over here inside something called Floating Action button widget this is also a widget okay all right and it’s inside a row and which is assigned to this Floating Action button Floating Action button refers to this kind of buttons that you see comes uh ready made from flatter framework anyway so let’s go ahead and do this so our value increases click on this the value increases awesome okay so so that means that it’s actually already working okay what I mean by that so now we have two buttons right each of the button is doing different thing and we do see the changes on the UI like over here whatever the way you change and want to change everything should be working all right all right so that’s actually a stateful class so our class this one my homepage is a stateful class CL now this class has been called from here okay all right now when a class I mean of course you can call a stateful class from a stateless class and that’s okay all right so it just they’re connecting with a glue okay they’re sticking with each other but the changes happens over here and this changes we see over here the same changes if you try to make over here you will not see on the screen okay so this one is getting cold and which represents over here actually this class so that’s how about that’s how our stateless class they work and that’s how they update the UI that’s very important so in next section actually we’ll learn a little more about our screen structure and how flutter uh put the layout so we’ll take a look at the basic screen structure of our uh flutter WRA Okay cool so one thing you could do we can go ahead and actually remove this things we don’t need this and of course we’ll get error over here I mean over here so we can also remove this let’s put something called text uh let’s put something called CH uh sorry we don’t need child over here actually I think we can just simply say hello flatter let’s go ahead and restart our app and we see things like this and then to be able to view it carefully so let’s put something called Center okay Center widget now once again I’m on Mac so I’m putting my car server here and I’m clicking on option okay option and hit enter so on Windows it should be alter enter and it should be working and then I select this all right and then let’s go ahead and put const modifier and over here we do see that hello flutter of course this is very different than what we have seen before we had a colorful background but everything has gone okay all right now one thing that now we are learning and you should be remembering that to make a colorful background you always have to have a widget that’s called scaffold remember text this is a widget Center this is a widget so widget inside widget that’s how things work in flatter so widget’s a nest they put one inside another like just now we had only text wet and we saw it was on the top so we wrapped the text widget using this Center widget now we see it in the middle but now we want to have a colorful background but to do that one more time we need to wrap this around another widget called scaffold so let’s go ahead and do that scaffold okay now scaffold is very special over here actually here we have this body and inside the body we can put this now here we see at least it’s not black it’s white it takes other widget okay scaffold is more like you know the skeleton it holds everything together that you see on this UI okay like it makes your UI colorful otherwise you will end up as um black background so that’s what you don’t want to see now scaffold actually as I said that it holds everything to together and it takes an abber as you can see it takes a body now body is a widget and E is not a widget or maybe it is a widget but special type of widget okay all right it also takes Floating Action buttons it takes a lot of different things okay all these things are the properties that we can twe to make make it more beautiful and interesting okay all right so now we understand that to make our app colorful we need uh this scaffold okay with scaffold you would end up having black screen the scaffold takes body body actually is a widget so if you all if you forget if you ever forget what does a special property do you can always put your carser on it and at the top you will see what kind of thing it is so most of the time it would be a widget most of the time okay all right now it does have other things as well now here it will have abar here we can also do abar and uh here it’s saying that if you put abar you can’t use const Constructor so let’s remove this okay now it wants you to use const at the top all right let’s go ahead and do that okay so now we are over here even though we are supposed to have an AB but we don’t say it over you don’t see anything over here even if you restart it and it’s fine now abar actually has a few properties so we can assign these properties to it there are a lot of them and one of the important one is most probably there a title and then we might also have a background color Okay so we’re going to do that one say let’s go ahead and give it a background color colors. red all right okay now let’s do hot reload and here we go so this is called abar okay all right and then over here you also give it a title name actually so title okay and if you forget what it is you can always take a look look it’s a widget now of course we cannot just put a string like this this is called string when you have um double quotation and put something something inside it this is called string so string is not going to work it’s saying that you need a widget one of the most common type of widget is text widget so here we can say text widget we can use a text wiet and here we say flotter title okay all right and once again it’s recommended put a const modifier and hotr load and here you see the flutter title but of course you can give it uh color and that’s fine we don’t worry about this on now we’ll be looking at this later okay so step by step we are progressing and understanding how whole things work so that this is it so you will have scaffold in at scaffold you will have most probably abar and most of the time you also have to have a body you may not have abber and that’s okay some screens you might just have complete height in that case you might not need a bur but body is something that you always need so now we understand scaffold and then what is this uh material app what does it do now in fact you may think of like this so why don’t we just uh put this one this one over here all right and let’s go ahead and do it and here we get error now if you read the error carefully you can try to make sense of it it says that no directionality weet found Rich Text weet require directionality widget ancestor so it’s saying that okay well this kind of text widget and it needs an ancestor but you don’t have an ancestor okay that’s what it’s saying and then it says that typically directionality widget is introduced by material app or widget app at the top of your application widget tree okay well all this means that you should have a met matal app in your application and it’s saying that you don’t have this so that’s why you are getting this error okay so now we can have material app let’s go ahead and do material app material app okay and then if you hover over on it you will see some properties one of the properties is home okay and home itself takes a wiget so here we could do home like this remember text is a widget Center is a widget now we can put it over here now we see that hello flutter like earlier what we have seen so the idea is every flutter app has to have one material app so material app gives it’s like the life to your application scaold holds everything but before even if you hold everything but we don’t see anything on the screen if we don’t have material app so we need to have scaffold okay sorry we need to have material app first and then scaffold okay so here we could do scaffold and then here we say body let’s put it there and then we’ll see that our screen is beautiful okay and that’s how it works so the idea is your whole app at least have one material app in general actually only one material app and then your screen should have scaffold if you want to make your screen colorful okay and then if you want to make your uh abar you should also use abar over here okay otherwise you’ll see that nothing appears on the screen and of course at the same time you can give it a background color here colors. red all right okay so metal app refers everything that you see the you can also see that it holds everything okay and since that moment on you will have your scaffold so scaffold is something that you already see on the screen okay so material app is something that lies out of the screen holding the whole screen and scaffold is more like the screen that you see everything and inside the scaffold you will have abur which stays at the top you’ll have body which stays in the middle okay now let’s take a look from another picture so that we understand how things work so here we see you might have your main app which is the entry point then your run up and runup takes a widget material app is a widget and then and just now we learned that this material app actually holds in the outer level stays in the outer level exactly completely outside okay and then over here scaffold this orange line is the scaffold the one that you see the screen with so scaffold extends until the edge of your screen edge of this page or mobile phone device okay and everything until this Edge is visible that’s called scaffold and then as usual you will have abber of the top that’s what we see and then your different kind of widgets which could stay inside your body over here so hopefully it gave you better idea how uh your main function your materal app scaffold and body there all tied together so let’s go ahead and continue to work on on this now this time actually we are going to build our Bottom bar just like we have AB bar we also need to work on our Bottom bar now to be able to do that let’s come over here inside this lip folder and then over here we are going to create a new directory and here we can say base or you can also call it core it doesn’t really matter now inside this we’re going to put everything that most important as well as the one that we’re going to use throughout our app some things like the one that we would be sharing everywhere okay the whole app would be sharing some of the code and that code we’re going to put inside this now inside this we’re going to create a new DOT file and we’re going to call it bottom navbar do Dart so in flut every file you create it has to end with Dart and if you have more than one word in your in your name then you should use uncore all right we’re going to hit enter okay and I’m going to add it because I’m connected to get so that’s why it’s asking you to uh make sure that whether you want to connect it with G or not but anyway let’s continue now let’s go ahead and do an important stop over here so I’m going to create a stateful class so I’m going to end Android Studio so I’m going to hit St so St would be for stateful or stateless so I’m going to S the first one okay all right now this is a basic template for our class and all we need to do we need to go ahead and give it a name bottom nav bar and that’s it but of course we do see that lot of Wiggly red lines it means that uh like these are errors or it’s missing some of the items that’s why it has now like this Widget the container and the class actually they depend on other libraries libraries means other code but we call it Library so we need to import the other code path which means that like this one depends on certain code and we need to tell it where it is the code so that we can use it here now in general both Android studio and iOS if you hover over on them you’ll get like this okay so you just go ahead and simply click and your error should be gone all right now this one actually we can assign it over here so currently we have the scaffold right so we can just replace the scaffold so we can come over here and then we can do bottom nav bottom NAB bar this one and let’s go ahead and import it okay so there are a few options that which one you want to use so we are going to import it as Library okay and let’s come over here and we do have things like that now let’s go ahead and uh restart it now we do see a black screen the reason is based on our previous knowledge you’ll see that we don’t have any scaffold even though we have material app so if you don’t have scaffold it’s always black okay but it’s still going to work for example if you have child text and here you say hello and go ahead and do this you’ll see that okay it’s still there but we want a more of a colorful UI so we’re going to do scaffold over here okay and then here we’ll say Eber Eber and here we’ll have Eber okay so let’s hot reload okay cool we are back and then here we can have say say title now one more time you’ll see that title takes widget so it could be any kind of widget so here we’re going to do text to Jet it would say my tickets okay hot reload and this is what we see over here at the top cool now we can also give it a body sorry body and and we going to first put a center widget and then inside this we’ll have child and then here we can say ticket info now if you save it you will see that ticket info you can also save it by using command s and on Windows most of it’s control s all right so but the given name is bottom nebar so where is our bottom NE here we’re going to do bottom navigation bar and if you hover over on this you’ll see that it takes bottom navigation bar okay it takes a widget okay so we’re going to put a widget over here now it could be actually any kind of widget it doesn’t really matter so for example you could do container and here you could do child and text is a bottom now let’s hot reload and here we do see that we do see we see something okay so that means that it’s working so in this widget section actually you can put any kind of widget but this is not going to work right this is not what we want because it won’t look like our original app our original app has four icons over here now we can use container this one to do that but that would be a lot of Hassle and we need to create our own widget but we don’t want to do that as flutter has already given us some widgets that’s already in flutter framework we can go ahead and use them so one of the widgets that we use for bottom navigation bar is called bottom navigation bar so the widget name itself is this one okay all right now here it’s going to throw arror you can always put your cursor on it and it will tell you that what’s is missing here it’s saying that and it’s add required argument and it says this okay add an AR argument and it should be items so that’s what it’s saying so you can add it manually or click on it it should automatically give you this hints okay and the code all right okay cool now we do see some Wiggly lines let’s fix them okay now here we do see this kind of of uh braces and what is it supposed to mean in Dart this means a list okay so if you have list you can put items one by one we can do it here actually so that we understand what’s going on so you can declare a list okay so here is a VAR my list so to declare a list you can just have this things this braces and you can say flatter Lal PHP like that so list contains items like this items could be any kind of variable custom type or the type that’s already given in flatter like int string or any kind of object okay here you can even print okay like this my list. two string if you go ahead and run it and you’ll see that they’re printed over here but of course we have some issues and we’ll take care of that later don’t worry okay so it gives you the idea of a list that how list works so remember list are inside braces like this and you can put items using this comma if you add more items you need to have more commas like this and we already see that that’s been printed over here now you can also access them using this operator here say we want to access this uh first item so let’s hotload and we should be seeing the first item not here so yeah we printed first item is a flatter so zero refers to the first one and if you put here one is going to refer to the second one so we will see laral as you see okay anyway I’m going to remove this it gives you the basic idea what is list okay now yes we have an issue because it’s empty it must not be empty okay now you can quickly put anything in it if you see the arror it says that okay bottom navigation bar this source file the items which refers to this one it should be at least two or more than two so it’s doing a conditional check internally and it found the item the list this items list is not two or less okay so that’s why it’s returning false and it’s returning error or Crush like if you come over here we can print the length of a list so you can just simply do your list name do length and then let’s run it and here we’ll say three it means we have three items now here it has zero items okay and that’s why we see the crash over here now if you hover over on this you’ll see that it takes list items okay so we can put list inside this now interestingly it also tells you the list items type okay so here it’s telling you the type has to be bottom navigation bar item if you see over here this type is a string but here it’s telling you that this item has to be bottom navigation bar item okay it’s already telling you you cannot put string over here okay anyway so then we can go ahead and put it like this now we see another error and if you hover over on it The Element type cannot be assigned to the list type like this now it doesn’t give us enough uh idea that okay what it is and then you hover over on this it tells you that okay it needs an icon Okay add required so every time you see add you need to add something okay so go ahead and do that so let’s put icon now if you hover over on this it says that okay this is also a widget and typically the icon widget is an icon or image icon widget so you cannot really put uh like text widget or anything like that it’s telling you it you should have either this icon or image icon so it gave us some hint okay now let’s go ahead and put icon because that’s what it says now because this is a class right so we can always use this curly braces so just like this one this is also a class and that’s why we put curly braces like as you can see over here first braces actually and then then well of course it cannot be empty yeah it says that it it is expecting something new it’s expecting one positional argument we’ll talk about what is positional but here we say that it says it expecting argument so let’s go ahead and add all right now I’m going to add icons. home okay the arrow is gone and then it’s asking us to add const modifier to remember over here it was saying that we should have at least two items so let’s go ahead and copy this and put it here and for now just say over here settings I hope the icon exist yes it does now let’s restart our app and we will see most probably another error okay now once again it’s saying something about the error this items that every okay this item and it says whatever inside this items list bottom navigation bar item this one it’s referring to this one okay should have item. label which means that item. label cannot be null so this one should have item. label if you hover over on this you’ll see that label okay so we need to have this label thing and it’s a string so let’s go ahead and put it over here we can say label and here we can say home and then here we can do label and settings okay there’s a Temple let’s go ahead and fix that now let’s restart cool now this is the first time actually we have really something going on and this is the thing that we created on our own okay so now we have two of this we can actually have more of this and let me change it correctly so instead instead of settings actually we want to do have here search so let’s go ahead and do search search button and then here we can also write search and if you do see that over here we have four of these items so we need four of these in our list so let’s go ahead and do that so here we can just simply go ahead and copy two times let’s go ahead and do that okay now if we do hot reload and uh we see like this okay now of course they are gone but if you have two of them and you do hot reload we see that now this is actually flatter they do it when you have more items just hide it because too many items or NAB bars could collide with each other so in that case we require some basic settings anyway so here let me change it to so we’re going to take the first one airplane ticket and then here we’ll say tickets and at the same time right now here here we’ll have person because we might not have profile icon so we’re going to use person and there should be a person icon inside this as you can see it’s there now here we’re going to do profile we’re going to write profile okay all right now let’s save it now it’s gone actually but if you click on them you would see that that they’re still there so in next lecture we are going to style them okay so the current problem is we don’t see them unless we go ahead and click on them hard so to get rid of this problem we need to style them and actually the style properties are already given here and we might have background color selected item color un selected item color font size and tons of those things these are all for styling so the first thing we could do over here is selected item color selected item color and we’re going to use colors class and it has a property called blue gray so let’s go ahead and work on this okay now let’s hit reload or hot reload actually and over here you see that we already see our home icon so the first one actually okay by default it’s going to show you the first one because the first one is a selected one okay by default the first one is selected one but the rest of these things are still not visible okay now that means our unvisible or unselected items how to make them visible so that’s what we want to do so over here we could do show unselected label or unselected item color first actually unselected item color this one and for this one we’re going to use const color and then over here we’re going to do o x FF 526 4 all right so these are our color code and this is actually int value hexa code let’s go ahead and out load and here we go so this is the first time we see all of our items together remember this is only selected these are unselected okay now here the problem is this uh selected one still showing its name or label remember this is the label name okay so we can also set up this one over here here we could say that show selected label fals this one false okay and save it you’ll see that it’s gone and it’s beautiful okay and uh yeah that’s pretty much it so with this actually we can see that it’s already working so now let’s go ahead and compare two of this icons so our icons are very different than the icon that we see over here so you want to be able to use this kind of icon and there’s also a benefit of that because we have some extra features that we can use but to be able to do that first we need to go ahead and install this icons uh to install icons let’s come to the terminal and do a clear and over here we could do flutter Hub add fluent UI icons and then flutter pob add uh sorry flutter PP get so it’s going to add this and then over here at the same time it’s going to install it install in a sense that I mean getting all the files that we need and get ready for our project let’s hit enter okay cool now it should be added now let’s come over here and check our Pops spec actually this one pops. yml file and here we do see that we have uh green section which means this code has been added and we also see that fluent UI icons okay so this has been added so now let’s uh come to our class class over here so since that’s been added now we can come over here and remove we don’t want to use uh this thing over here the icons that’s shipped out of flut automatically here we want to use fluent fluent system icons this one and then you can do dot operator okay so here I fluent fluent so we looking for our icons and home okay and we’re going to use the second one okay so it should be fine and after that over here we are going to use uh another property now if you come over here and click on bottom navigation bar there is an active icon property so we can toggle between the icons okay so let’s go ahead and do that over here we’re going to do active icon and then here I would do icon and fluent system icons fluent system icons do IC fluent home fi this one okay cool now I’m going to actually go ahead and copy this and put it uh three more times Okay cool so second one was I think search and what else so I think we also need to change over here like that okay so make sure that icons are corresponding home home search search uh okay so here we do see that we we have an issue here it should be search uh sorry ticket and then person person all right now I guess we’re going to have to restart our app because we made a big changes and looks like uh uh let’s compare with this yes they already took the effect okay so now if we are on the homepage we do see that just like this icon or this icon is homepage icon but now when we go to other Pages like this uh so this one should change to like this okay so this is our this is the difference between active icon and nonactive icon okay so the idea is when you are selected so it’s filled which is actually when you’re selected it’s showing this one when when you are not selected or like you went to a different different one like this one over here so we clicked on this so this one you will see that that uh it’s uh home regular so the idea is selected icons are filled so that’s why filled filled filled non-selected items are not filled okay like uh over here you see this is filled okay but we cannot switch between the icons right so that’s a problem so in next lecture we’ll see how to go ahead and switch between them all right to be able to switch between the icons uh we need to do a little more advanced step and we need to do it step by step okay so we want to be dynamic so as we click on each of them we want to change the icon that means that uh we have to there could be many other ways one of the ways we could do keeping the track of index for example say for example we can assign zero to it one to it two to it and three to it so they will have index and as they have index we can actually change the index easily because indexes are numbers right so then it becomes easy of course uh to be able to do that we need to declare some stuff at the top so here we are going to actually declare a list over here so here we would say ver or we could do actually final over here and then here we’ll say my screens or here we say app screens and then here we have a list just like last time I told you like this okay and then as I told you the list could include anything any object as well as custom object and Primitives so here we’ll have custom object like text okay now text is a widget which means it’s also an object so here first I could say home so and then I think we need to put const well soon we would learn the difference between final const things like that because they’re going to show up again and again and it’s very important to learn the difference okay so here we’re going to change over here and we can say search and then I think that was uh tiets and then profile okay now let’s go ahead and I’m on Mac so I’m going to actually do command option L to reformat the code it looks a little more organized even over here okay now if you’re on vs code you can right click and definitely you might see something like reformat the code with dart it should work the same okay all right anyway it’s been that so this is our list okay the list for changing between this icons which also means that changing between the screens okay so as we click on them we want to go to new screens actually okay so that’s what we want to do now where to change actually as we click on this not only the this should change the icon should change screen should change screen I mean this section over here now this this is called body right this is Bottom bar and this is app bar okay so we want to be able to change between this sections so keep this one as it is keep this one as it is pretty much and keep changing from here so that means that over here we need to change and how do we change so let’s replace this and let’s come over here app screens app screens okay this one and we can put zero over here okay so we are using this index zero to have a property from this list or item actually there’s a list list could be uh uh visited using index or they call it iterate okay visited is not the correct word I mean not professional but they call it iterate okay so we are iterating using index okay list is iterated using Index this is our index and now you have to understand another reason why we put text or anything like that because body you will see that only takes widget if you just put here string like when you put anything between this curly braces uh sorry this uh double coats that’s called string and you will get error so you have to have what is it uh widgets inside this string so what’s going to happen this is a list and this this list contains a lot of objects and these objects are all widgets okay and uh then we are getting objects or widgets out of this string sorry out of this list using index okay so let’s go ahead and restart okay now we do see that it’s over here that’s fine but what I’m going to do to be able to work better actually I’m going to to uh wrap this around using Center widget so I’m on Mac I’m going to select this and option enter Center widget and if you’re on vs code you can just select it and then right click you will see wrap around different kind of widgets so you can select Center widget okay and let me see we need to do a bit of change Okay cool so pretty much like this so I’m going to do the same for rest of them Center widget and it looks like this so I’m going to reformat the code so that it looks good so every time you want to wrap things around on vs code in general you have to select the widget and then right clicking should show you that uh wrap around certain things okay all right now we are actually successfully able to show a widget now first time we are able to successfully show a widget from a list okay now since this is index based we can change it so here let’s say one restart it we should be able to go there as you see that over here this is search but looks like it’s still not selected and because there are steps to do that but now here you see that search has been shown and what if we go to the last index okay okay that’s profile which is referring to this widget from our list so right now just now we learned that we can actually go ahead and uh change this indexes and show them but what we did we did them using indexes and manually but of course you don’t want to do like this we have to be somehow Dynamic so when we click on them we need to be able to change the indexes right I mean that’s our understanding right now we are changing manually and we see that it changes so we need to find a way as we click they change automatically so in next lecture that’s what we’ll see so now we have a very good understanding that changing index can help us to changing the icons and these things so let’s go ahead and do that well first we need to Define uh function over here or method so we’ll call it void and we’ll have this underscore and underscore means private private means the function that we are going to use only accessible within this class this class is bottom nabar so here we’re going to call it on item tapped and then here we’ll pass an index index would be int and we’ll call it index you can call it anything it doesn’t matter now the thing we are going to pass to it the indexes of this list remember zero refers to home one refers to search two refers to tickets profile three refers to uh this um profile right so we need to be able to pass the index okay so as we pass the index uh we need to somehow reflect the changes as here as well and how we are going to do that now to be able to do that we can declare a variable at the top okay so here we can say that change our index uh for bottom NE bar or I would say bottom NE okay so declare a variable okay so here we say ver and it’ll be a private variable actually we can do in is specific about it and then selected index so now here we do selected index equal index okay okay so we’re going to grab this index and give this index to this variable which is this one at the top okay all right now how to actually send this index to this function right we need to send this index to this function over here how to do that we don’t have any direct mechanism do we well actually yes we have now if you come over here and you’ll see that there is a function which is called ontap okay there a call back function which means that when you call it does something back for you you call it and in return it does something for you that’s why it’s called call back so this is a function and as you see that this function also takes in integer and its argument okay so we have to create something that’s related to this callback function which means they would work similar actually we already did this one so this would be our represented callback function and it also takes INT in its parameter this is called parameter and things like that this is called argument things like that this is called argument okay all right now our parameter is in so what we could do come over here and we can use the ontap property and simply call this callback function let’s go ahead and do that okay cool so now what’s going to happen over here this on tap is connected with this ont item function or on item tapped okay you can name it anything it doesn’t really matter so these two are connected so what’s going to happen each time you click on them click on them then this function is going to get called because remember right now as we did like this this two function or this and this they’re connected and how they are connected flutter already takes care of this thing so you don’t need to worry about it okay it takes care of everything so every time you do things like this as you can see over here so flut automatically takes care of everything like even over here right and over here all of this things flut does it for you all you have to do follow the steps okay all right so yes that’s how it works I mean now we have connected them which means that if I click on that means each time you click on them this would get cold and as this get called the index from this each of them they have index okay this index would be passed on to this function and then we assign this index value to this variable now this is the variable that we can directly use and control on our own let’s go ahead and print okay so here I would do print and then here I would say tapped index is Select index all right okay so let’s go ahead and restart the app and hopefully we’ll see the changes okay so let’s click on this okay zero all right and uh I think we have something wrong over here okay we don’t need this let’s do it one more time and and click on this we see 0 1 2 3 0 2 3 all right okay of course so it’s already being printed which means that each time we click on this now we are able to grab the index from bottom navigation bar item remember indexes are automatically created based on the items over here okay because we have four items so we’ll have total four indexes these are automatically created and all we are doing over here grabbing the indexes and passing to this call function and assigning it to this variable so with this we have the freedom which means we are able to grab right grab the index cool now let’s come over here and also assign the variable so now this way we become more Dynamic okay let’s go ahead and click on this okay and uh okay right my computer was a bit slow so it’s already reflected over here right okay but the problem is we don’t see the changes okay so let’s go ahead and click now let’s hot load now we do see right so we are progressing step by step if you don’t know what I’m saying let’s see this so let’s click on this or it’s already actually selected because zero refers to the first one which is this one okay all right and then if I click on this we know that that’s been clicked but we don’t see it over here all right the screen should be changing but it is not but if we hot reload we do see that it’s changed we are still progressing step by step right click on this index 2 is tapped but out reload and we see the changes click on this index 2 to0 here we see and now we see like that so we are almost putting everything together but still there is this problem first that we have to hot to see the changes right which means like pretty much restarting quick restoring and then we still don’t see the icon changes okay well in next section this is what we’ll take here we’ll see how to change the icon finally dynamically okay so to be able to change the icon as you click as you click as soon as as you click to change the icon we need to use something called set State and that’s also called State Management So currently our app state has been changing but we only see them if we restore okay so the state changes we need to reflect immediately to be able to do that we need to use uh function which is called set State Okay so so here this is called set State as you can see over here this one all we need to do put this inside over here let me remove this we don’t need this anymore okay so now let’s restart everything from the beginning all right now let’s click on this and we do see this search automatically okay that’s fine let’s click on this we do see the tickets automatically let’s click on this we see the profile automatically now because of this uh changes over here using set State partially we can update the UI right now every time you have a stateful class this one a stateful widget class you can use a set state to update the UI so set State helps you to update the UI but our icon still not changing the reason is there is another property in bottom navigation bar that we need to have so that’s called current index item I think yeah current index okay all right so over here we are going to actually assign the selected index remember this index is being changed as soon as this on item tapped get called we call this on T on item tapped this index has been already changed but we didn’t assign the index what we did early actually we grab the index what we did early using this we grabbed the index and put it over here and after putting it you also need to tell the current index okay so every time you grab the index that becomes a current index now you need to tell bottom navigation bar explicitly what is the current index okay because current index could be anyone so that’s why you need to tell it explicitly and then the magic will happen so now let’s go ahead and click on this beautiful we see that it already changed click on this beautiful it already changed click on this it already changed so we have done a big progress so far so the idea is you need to use both on item and selected index to actually work on the bottom navigation bar dynamically well in this section we are going to create our home screen module now home screen module would be complex and actually there’s a lot of artwork as well as design going on now what we are going to build eventually this is going to give you a highlight so over here definitely this is the screen that we are going to build and eventually our home screen class will look like this now inside each of them there are complex code but to give you the idea so home screen would be built on the top of using tons of different widgets over here we just see container single child scroll view container single child scroll view but we’ll see that actually there are more nested widget inside this so the first one would be over here using this uh container over here second one this one would be single child scroll view as you can see and this section we will put inside another container and then this one on once again uh single child scroll view we’ll remember that single child scroll view actually would help us to move left and right like this one again we would be moving this one left and right so this part would be very exciting and long so get started okay so now our job is to create a home screen like this and learn all the related knowledge regarding it okay now to be able to create home scen screen the first thing we need to do over here uh come to our project make sure that entire project is open and then this Le folder okay right now inside this Li folder I’m going to create another folder and we’re going to call it screens so all of our screens would be here in this folder okay all right now the first thing we want to do create a DOT class for this or file actually home screen. Dart like this hit enter and I’m going to add it to my git okay and I’m going to say ignore all right and then over here I’m going to do s then I’ll have the option for choosing stateless or stateful class in vs code you need to do state full like this okay all right now I’m going to do state L actually this one and over here I’m going to name it home screen all right errors and let’s go ahead and import our library the arrow should be gone and now make sure that our screen home screen the one that we created is bound within this uh app screen lists okay so over here I’m going to remove this and then I’m going to call home screen now let’s go ahead and import uh this is as a library over here and uh let’s go ahead and restart our app okay so nothing is there because uh this is an empty container so that’s why nothing is there but if you go and check others we’ll see that uh they’re still there okay cool I’m going to close this well in our next section or next lecture we are going to start drawing our home screen okay now to be able to draw our home screen um we have to go ahead with a certain layout you’ll see that over here our home screen has uh like uh a layout over here like this one good morning book tickets this one and text and image text an image like that and this is also scrollable actually kind of now in flatter to achieve this kind of scrollable effect as well as as well as putting things on the top of each other you can use different kind of widgets which means different kind of classes that’s already in flut WRA now what are those classes well you can actually use uh column widget most probably column you can use list View you can use list view list view. Builder and you can also do a lot of others uh in fact uh there are different ways of doing that also to expand widget things like that okay all right now for now we’re going to take a look at the easiest one the easiest one would be using list view now what’s list view a list view is same as actually list but previously we have seen in list you can put 1 2 3 4 or any kind of custom object okay all right within list view actually you can do pretty much same but it expects more like widgets rather than a custom type okay well as we work on this we’ll learn more which I’ll show you later now here first go ahead and do scaold and then over here we’re going to have body just like we learned before that it will have body not like this body and inside the body we’re going to have list view so if you write list View and then write children and if you hover over on that one you’ll see that it takes widgets okay over here once again you see list widget so list view is also a list but it takes widgets as you can see over here you can really put string like this okay it’s going to throw an error as you see over here okay or something that it doesn’t work with Okay so it has to be a widget flutter widget like a flutter class now if you see over here here this is also a list which is like list view but in this case this is just a string or custom object so in the list you can actually put string custom object or widgets like for example we have seen over here so here we have you see this is also a list and here we have widgets these are all widgets and over here these are all text screens but list view only takes over here as you can see widget okay so that’s the difference between list and list View and there are a lot of other differences but most important difference so that’s what we understand because over here we want to put uh a lot of widgets okay so that’s why we are going to work with this and this would be scrollable remember if you put things like this you even though you can put all kind of things but you cannot really make it scrollable so let’s move over here now inside this uh we can put container okay and container is one of the most common type of Widget the container as it tells you that it’s like a container it contain things for example over here this UI you can think of it as a container so it contain contains a lot of other things okay like this UI over here it’s a container container contains things well then what about this actually this could also be a container but we just don’t see any extra colors over here and it is also true for container container can contain other containers like this okay containers could be nested into each other for example if this is a container then this could be another container and this could be a container and this could be a container as well so that’s how it works so right after text container is one of the most common wiget in flatter so remember now why we use a container why not a text over here the reason is as containers you get to color them you see if it just a text wiget well it is just a text you can only color the text but if you put container and use container and if you use text inside container or container inside a container then you can color them you can decorate them which we will see very soon okay so this is the reason that why we use container a lot of time rather than text text is plain and boring but containers are colorful and you can style them like for example this kind of complex style has been achieved through containers okay all right so this gives you an idea what is a container widget all right so I’m going to move this as I don’t need a container inside container one container is going to do the track all right okay but here I could do this one say hello home screen so now let’s go ahead and check our uh design over here okay so that’s what we see over here it says hello screen okay now one of the other things that we can learn immediately over here is this one we can have another container and we could do child and then over here and say hello how are you all right okay now let’s do hot reload okay so you see we are putting stuff onto each other and this is possible because of using list View and remember as I said early we can also do this using other widgets like column okay remember in flatter a lot of time this widgets like list view is also a widget container is also a widget text is also a widget and earlier I said that column is also a widget there’s another one row is also a widget now this things this most of the widgets could be like like this they could be nested inside each other and they always work it depends on your UI and style okay so now let’s go ahead and take a look and understand that how we are going to uh style our UI now over here we put list view because we want to make it scrollable we want we want scrollable effect so that’s we put it the list view now let’s dive into the actual design so here let’s understand it like this so we are going to put everything inside a container first okay because with container I can color the background that’s one thing okay and inside container I’m going to have uh column the column is more like list view or list view is more like column that you can put stuff inside each other especially you can put things onto each other like for example over here we can divide this screen into many different sections okay all right so in next lecture we’ll see and try to understand another important concept which is called row and column okay so here we’re going to understand what is called column widget row widget and how they’re related to Vertical layout and horizontal layout as you can see well in flatter anything or a direction if it stretches from top to bottom this is called vertical layout now this vertical layout represented by column wet and then anything that stretches from left to right we call them horizontal direction or horizontal layout and that is represented by row widget now both row widget and column widget could be nested into each other which we will see later so like for example over here we see good morning book tickets in the search bar they are on the top of each other so this kind of layout are putting things together together is called vertical layout which would be represented by column wiget now over here we see for example upcoming flights and view all these are two text they are horizontal so we could use row widget to represent them now let’s move on to more complex structure where we’ll take this section out and understand step by step how how row and column widget plays a vital role in designing your layout so here I took this section of this screen and then divided into various sections and then I have shown the related widgets remember row and column and container they are all widgets okay now over here this boxed area is represented by this one okay the outer layer and the outer layer would be our column widget now why as I said earlyer when we put things on the top of each other we call or use column widget for that purpose now here internally you see inside this column widget this one over here we have this big box and this little box these two are on the top of each other now to put this two together on the top of each other we used column widget because when you use column widget you can put things on the top of each other the way we did over here as you can see so that’s why the big one over here it’ be represented by column widget and then we have divided this one and this one into two different sections which are represented by this box and this box hopefully it makes sense that why we are using column widget and why the layout is like this all right now moving into further over here if we take this section of the screen we also see that we have um so now this section of the screen actually could also be inside row widget so that’s why we have this row widget over here now do see that actually we have two row widgets inside this column widget that’s what we have said early that if you have widgets you can Nest them into each other and that’s what we have done over here first The Columns this one we have divided into two and each of them are represented by row now of course this totally depends on your UI layout how you think it’s not the exact form that you have to follow anyway so the big one we have divided into this two sections and each of the sections are represented by this row widget okay now why we did row widget for this one the reason is because this section of the screen actually we can also divide into two sections like this one over here and it be this one over here so that’s what we did so this is our row widget and then inside this we have this section which is represented by this area and this section which should be over here this area so we are putting two things horizontally next to each other so that’s why the outer layer or the outer widget has to be a row widget hopefully it makes sense right now the same for this one now this is a row widget which is represented over here now why this is a row Widget the reason is because over here actually you see we have this um icon and search and we actually also have a empty space empty space could be also a widget so this two over here are next to each other so that’s why the outer layer has to be a row widget so that’s what we did the outer layer is r wiet and then we’ll have over here the search icon and search and over here we’ll have this uh empty area as you can see so that’s how the whole layout works okay now inside this row wiget we also see this one over here and we Tagg it or named it as a column Widget the reason is once again we want to put this two on the top of each other so that’s why the outer layer for this two has to be a column widget so over here it would be good morning and over here this would be book tickets like this okay and so that’s how the whole things work so when you design a UI first you need to look at the UI and you need to think how you are going to put them and which kind of widgets should you be using for representation once again this is not hard and faster rules to work like this there are other ways to do that as well so you can just practice different ways of doing your layout okay so from now on we’ll be using this kind of picture a lot to understand how things work and then we’ll eventually start coding now understanding this so actually we are going to go ahead and implement this step by step so let’s go ahead and check our code over here now first thing we have seen that we need to have a column widget exactly the one that we have seen in the layout we are going to implement that so here we’ll have column widget once again column widget represents horizontal layout H sorry vertical layout now inside this earlier we have seen that we need um well we can put this two row this one and this one inside the column one right let’s go ahead and do that now one thing though column is a widget so if you want to put more widgets inside it you need a list okay so widgets list inside widgets list inside widgets are represented by children just like over here we have list view list view take a lot of items those items are put into a list and then you have to represent the list using children and this kind of braces the same over here column column takt items you have to put the items in a list so that’s why you have to first write children and then this braces children means the one that would follow this one okay that’s why we call it children and that also means that we’ll have more than one child okay so those those items each of the items are treated as a child like for example over here so this is a column inside this we’re going to put this two now the each of these two are also called children child one child two so we have two Childs so that’s why we say children of course there is a generic name children right but each of the children could be using a different widget name so in our case we are using row widget but of of course in this case both of the uh child they have uh they are represented by row widget okay once again children is a generic name okay so exactly what kind of children you have to Define it over here now just now we have seen that we could do like over here text widget okay or like uh row widget over here we have seen that okay we can put two row widgets so let’s go ahead and look at that so here we going to do row and then now once again row also takes children now over here we are going to put children over here let’s go ahead and do that and then we’re going to copy this and put this let’s go ahead and copy and put it here we need to put comma all right now we have this uh yellow Wiggly lines so we need to put const modifier hopefully it would work and it’s gone okay so so far we have exactly followed this layout column and inside this we have put row widgets okay now what else we could do we also see that within this um first row within this first row over here we can put uh column and container this one so remember first row is our first child inside this column and we can put over here let’s go ahead and do that over here column and then of course we need to every time you write column you need to have children and then we have seen that we have a container so let’s go ahead and put a container okay all right now if you do put a container you need to remove most probably this one not it’s not related to container itself uh which we’ll talk later actually so let’s go ahead and change based on this okay so now inside this row widget over here let’s take a look that what we are going to put inside this row widget we’ll have two widgets but of course these two widgets could be anything for now and we are going to put uh text widget okay so let’s go ahead and put text widget over here okay here we could say text one it doesn’t really matter and text text two all right so this is what we have seen in our layout and we have exactly follow this so one more time let’s go ahead and confirm this so this was our original design over here so this is the column which is this one and inside this we have uh two row just this one and this one so so that’s what we did over here this and this row and inside the first row we have another column so that’s what we had and inside column we’ll have children okay so we can put two children over here but I didn’t do that but you can put it it doesn’t really matter and then next to it we had a container as you can see over here so this is our container this is the container and then the other row over here is this one and we have this two wigets okay now to be able to work better on this actually let me go ahead and put this two text wiget okay inside the column over here okay so now we are all aligning with our design okay now this time let’s go ahead and restart our app and see how things look like okay so this is the result we have of course this doesn’t look like no nowhere near this one but don’t worry we going to step by step work on this so the first well this two over here this two pretty much looks like this too so we are going to change them first we are going to go ahead and change it the first one is good morning so let’s go ahead and do that good morning good morning and then second one we have book tickets so let’s go ahead and do that so over here we’re going to put book tickets book tickets all right and let’s go ahead and hot reload Okay cool so now they almost started to looking alike and there are a lot of other things that we’re going to take care and now how about this one now this one should be an image right now we are not going to put image yet but we could be clever and do something over here so here we could put width and height say withd uh 100 and then say height 70 okay now if this is a container container has a lot of properties if you hover over on this you’ll see that one of them is width and height okay now they are not compulsory so if it’s not compulsory in flatter it’s represented by question mark so question mark means you may put it you may not put it okay so if I remove this I don’t have any error right if I put this I might see something different let’s go ahead and see well we don’t see anything yet there is a reason what’s the reason okay now we need to put a color over here let’s go ahead and put a color so here we’re going to do color colors. red now let’s go ahead and hoto this is what we see so now once again slowly we are starting to look like this guy guy over here step by step changes so what is the next change you want to make the next change you want to make like you want to put them separated just like this okay not so close to each other now you have to remember that okay this and this inside this rowet and these are the two children we need to separate them to separate them we need to apply some styles to this rjet so let’s go ahead and do that now of course main access alignment is horizontal alignment for row widget okay if it’s for column widget it would be still main AIS alignment but that would be a vertical one so which means that inside row widget if you write main AIS alignment that would be horizontal alignment okay remember that now over here we can use dot operator and let’s use space between so which means that create some space between this and this hot reload and here we go wonderful so it started to look alike very good now how about this one okay now for now we can just say all right search icon okay and uh say empty space for now we’ll see what we use later but it doesn’t really matter okay all right so let’s do hot reload okay now we also want to do the same over here we want to separate to them let’s go ahead and do that so here main access alignment main access alignment dot space between and hotr load beautiful so the more we do the more we are looking like this but once again we need to continue to style this thing okay so let’s go ahead and style them now first we need to style this text and this one the outer layer okay so let’s go ahead and do that now of course we don’t have the this in our original have this in our original design original design we had this column this is the column right now that’s what we see over here so this is the column just taking the whole space left and right but actually we need to extend the design over here a little bit so we need to wrap this one around a container so let’s go ahead and do that so I’m going to select this and then on Mac uh option enter on vs code it should be if you click right click you should be able to see this so now I’m going to wrap it around container widget as you can see let’s hot reload of course nothing will happen now there is a reason so there is something called padding okay so let’s go ahead and create this padding and here we do const Edge inserts here we would do symmetric and horizontal is uh 20 now I know it’s a lot of information to grasp but we’ll fix that now as you see that things looking a little better the first thing when you apply padding padding happens inside container remember container takes a SP like a box like for example we can give it a color over here let’s go ahead and do that colors do say blue okay all right so this is what we see so definitely our container is extending from left to the right completely to this screen but because we have applied padding so padding creates space inside within the container and these are the extra space that’s been created now you may ask why the space is created left and right the reason is because here we say symetric symmetric means the same which means same amount and in which direction horizontal direction we said that horizontally create 20 space in inside this container from the container border so this is container border this is container border and horizontally create 20 pixel space so that’s it has done over here now in our design we don’t have a background color so we don’t need this so we can save it now just that was to visualize that one that we need some extra space okay all right so now while this part is great but of course this text themselves they don’t look great okay they’re not looking good and over here we also see that there is some discrepancy like good morning starts from here but book tickets they start from a little bit to the right we can fix that so this is an alignment issue now remember this part of the this this two sections over here they are a column right so this is by column wiget over here now within this space over here so we have vertical Direction which is like this and vertical Direction inside a column called main axis so this would be the main axis now over here this one for a column horizont Al direction is cross AIS okay so here we’re going to write cross AIS alignment and a cross access alignment so which means that horizontally remember for a column cross AIS means horizontal for a row cross AIS means vertical so they are the opposite idea so over here we’re going to say start and let’s let’s put a Comm over here and do like this now you see it got fixed so it’s already looking better all right and this two text over here we need to go ahead and uh create some space they are too close to each other now here we could do sized box say sized box over here we want to create Horizon vertical space between these two lines so over here we’re going to do height now over here we can say okay we want to create a little bit of space of five pixels so let’s go ahead and do that and now there is a little more space Okay cool so that part is working right now how about the coloring if you do see that their colors text size they’re all different okay now I’m going to come over here and so this is a text actually this text could be colorized or change or we can assign style to it okay so let’s go ahead and do that now if you hover over on this this text itself you will see that there are properties one of the properties is style so you’re going to take that one style and if you hover over on this style now you see it takes text style class or text style widget so I’m going to write here text style now every widget is a class since we are invoking a class we need to have this bracket over here right so let’s go ahead and hotr load nothing changes because we are not assigning any style to it okay so by default no style is applied as you see this is are all these are all optional this question marks everything over here they are optional so that’s why even you put this one and if you don’t put this one they are the same all right so no change in style okay so I’m missing the come over here okay anyway so there is no change in style so the idea is you may have your text wiget but you still need to assign style to it so let’s go ahead and do that now over here there are few properties that we can use so in our case we are going to use one of the property called font size so here we’re going to do 12 okay and then uh um well 12 would be too small so let’s go ahead and apply the 17 and font weight okay so here we do font weight this one okay font weight. w500 okay this is the one that we are going to assign all right now let’s go ahead and Hot Load and it’s already looking beautiful wonderful so now we can go ahead and copy this section and we can put it over here as well okay now let’s go ahead and save it and we see that it gets bigger but in our original design it’s much bigger and the font weight is also different so let’s go ahead and apply to it so here we are going to apply font size as 26 okay and then font weight okay let’s keep it as it is all right and then the color should be different so let’s go ahead and apply a color so here we do color and we’re going to call the color class and pass it a color code so that is o x and let me take a look so here o x and FF 3B 3B 3B and let’s hot reload now it’s looking much similar like this one in fact these two are exactly the same beautiful so with this we have just learned how to have this color and how to text and style actually how to style our text over here so I’m going to reformat it so with this it’s going to look beautiful so now we just saw that we can style our text the thing is that as our app grows bigger we will have a lot of styles like this and every time we have to write them manually but this is not what we want we want to reuse them in fact all of the Styles actually we can save them in a separate file so that we can just directly use them whenever we need them just can call them okay all right now to be able to do that inside this base over here I’m going to create another directory and I’m going to call it res which means rest over here actually rest of them and then inside this I’m going to create a directory and here I’m going to call it the directory Styles and inside this I’m going to go ahead and create a file and here you can say file name app Styles Dart okay so now inside this we are going to save everything and how to save them the convention is go ahead and create a class and over here we can call it app Styles now of course you can go ahead and create Global variables and access them but which is not a good practice so you can go ahead and create a class and using the class name you can access everything from this class from outside so inside this here the first thing uh well one thing you could do you can create a variable and the variable name would be color and we call it primary color and let’s go ahead and do that and inside this here we’ll have const color and then this would be used as our primary color for our app so which will have FF 68 7 DF so this would be our primary color now over here inside this we need to import this color Library looks like it’s not recognizing let’s click on more actually going go ahead and import it from this material library or package actually now let’s come over here and then let’s create a static variable and the static variable would be color type and we’ll call it primary color and then primary color primary this one okay and uh now about static const and final we’ll have a dedicated section and there we’ll be talking about them now let’s go ahead and create more of them now you see that over here we have created this text color so in fact we can copy this we can come over here and create a variables static color and here would say text color and const put the color name okay now you’ll see that first we can try to change from here actually so here we could do app Styles okay dot text color okay and let’s go ahead and see now it says that invalid const actually it’s referring to this const over here let’s remove that and arrow should be gone now it’s telling you okay you can put const in other places because inside this widget if there are Dynamic things you cannot put con before this because it becomes apparent because just now the whole parent was static so that’s why you were able to put const here but now this this part is static but this is dynamic that’s why you have to remove that and you need to put const partially over here okay cool so that’s what we learned now over here let’s go ahead and create more static variable so another static variable here we could create of text style because we are going to use this text Style over here and here so in fact we can go ahead and create variable for them so here the first one we can say headline style and one so headline style one which means big letter now for this one actually in fact we can copy everything from here so let’s go ahead and put here cool now we created this we can copy this and uh we can just simply go ahead and remove this okay so here we can say F Styles dot headline one beautiful so you see this file become much more simple right now cool but of course in this case we don’t need this this one because it’s in the same file over here it can access directly we don’t need dot operator okay so now we can just simply go ahead and copy this and then for now we’re going to put headline three and text size is 17 and we don’t have any text color for this for this one we are going to use default color so it’s not Dynamic so over here we can put const because it’s static when a widget is static this is in front of that widget you can put const but like this widget this is also a widget this is not static why not this widget depends on this one so this one is coming from outside source so that’s why it’s not static we call it dynamic because it could be changed anytime theoretically so that’s why it’s Dynamic you can’t put const over here now let’s come over here and also remove this here we can say app styles. headline three okay so now more and more our app is looking great and professional let’s go ahead and work on this okay cool so which means that this part is already working and exactly like this so now we just separated part of our code and uh then we’ be able to actually work efficiently on this okay so now we’ll go ahead and uh work on this one this a container and we already have a basic structure for it so remember that container has WID and height and of course you can design it now right now we’re going to design it so that it looks like this well let me put up our app from here okay so we’ be getting ready for putting an image over here okay and uh how to do that at the same time notice that we will have border for it okay okay the image itself all right now we can put an image border but at the same time we can put an image inside a container okay image itself is also used with image widget which means that image widget we can put inside a container and how to do that but of course to put it inside a container we have some conditions or code to use you cannot just write here image okay you see that if you work on container you will not see something called image over here so we can put that but we need to use a mechanism for that okay so first go ahead and work over here so we want a rectangle so here we’re going to do 50/50 so 50/50 would give us a rectangle and uh let’s save it and we see it’s already become smaller the next thing you want to do use borders okay now how to use borders over here well to use borders of course once again you also cannot find Border over here but what you find is called decoration so it’s a plain English decoration means decorating making it beautiful styling it right so that’s what we are going to use decoration okay looks like we are not getting that so let’s put it here and um then I can just uh type it in all right and if you do see hover over on this it takes a it’s a type of decoration class widget okay decoration class widget now what property to use for it let’s see what class to invoke well here it did say decoration but actually you cannot we in general we don’t go ahead and use decoration class for it the one that we use is called box decoration this one okay and while it wants con modifier we can ignore that okay let’s go ahead and check the other properties so one of the properties over here we do see that called border radius so we can go ahead and assign border radius border radius okay all right and then within the Border radius we can use border R sure why my flatter lter is not giving me hints okay circular we’ll check that later and here we can use 10 okay now let’s go ahead and hot reload and we see a crash and let’s go ahead and read the crash again so it says it cannot provide both a color and decoration so you cannot have color and decoration at the same time this color and this decoration you cannot have at the same time that’s what it’s saying so we can only use one of them that’s the first thing it’s saying that but we have both of them right so of course earlier we have used this one for uh debugging of course here it says that to provide both use decoration box decoration so it’s telling you that okay so if you do want to use this color okay now you can just pass in the argument of this box decoration widget class over here you can pass it from here but not really from here okay so it’s telling us we can pass color inside from this class okay so let’s go ahead and put it here and now you’ll see that if you hotra load it’s gone the error is gone so that’s how you go ahead and read errors and fix them okay so most of the time reading the error carefully helps you anyway so now it’s looking more and more beautiful I mean as you can see over here we are looking more alike and what’s next well now this time actually we want to show the actual image right now for images first we need to do a bit of setup and how to work with the setup first you need to come over here and then inside this over here we need to put inside the root folder over here we need to put our assets assets means our images or related stuff to it okay so now if you go to the resources section of this lecture you’ll file a folder where it says that assets so you need to unzip that file and inside this of course you will see assets folder and then you need to drag and drop and put inside over here and then it will show up over here so make sure that you drag and drop inside your root folder okay and then you’ll see images like this and these are the images that we are going to use throughout our app okay so all the images are there they’re already given in your uh assets folder okay cool now we have to do a next setup over here so we need to come to our Pops spc. yml file over here and then we need to go ahead and unlock this place now there should be a section where it says assets actually this one now we need to make sure that we are aligning with the structure over here so let’s go ahead and uncomment this all right now of course this destroys the alignment but over here let’s do it on your space bar or the one that create space empty space in your keyboard let’s hit one two so this one you need to press twice okay the space bar of your keyboard okay and now do the same from here okay 1 2 3 4 so you have to do that all right so you have to have four spaces over here all right and then it says that images dot blow okay now we don’t want this so we want to remove this and now we’re going to come over here and we see that our assets are inside assets and images folder so here we’re going to write assets and images like this okay so assets and images so we are telling flatter okay so our images and assets are found inside this assets and images folder okay so make sure that you have this one set up correctly and the space has to be important one more time here two spaces and here four spaces okay all right let’s go ahead and close this okay so now we are ready of course we don’t want to use the color because we don’t need that so let’s go ahead and remove that and after that over here if you do see decoration inside this there is a property image property so we’re going to use this one image okay and then over here we are going going to use box DEC decoration image okay decoration image now inser this let’s go ahead and set up the other properties let’s hover over on this and here it says that you must have image argument so let’s go ahead and add this we did this so and remove this now and hover over on this here it says that you need an image provider so what are image provider image providers are different classes in flatter one of them is Network image Network image okay so this is an image provider uh if you hover over on this you will see mostly that Network image Network image and well it didn’t specifically say this is an image provider but we know this is an image provider because it provides an image for you now Network image loads images is from Network we can also do asset image over here now asset image loads images from your local storage okay so this is also an image provider so particularly there are two basic image providers one is the asset image other one is the network image so we are going to use this asset image over here all right so now let’s go ahead and uh find our image Imes so our images are in assets folder images and the first image that we want to use is called logo.png remember now this could be a little bit of confusing because you are saying the path name over here mentioning it over here and at the same time you also have to mention it over here okay otherwise uh you’ll get error now this tells flatter to know about your resources where they are and this tells flatter code to find your images okay so both of them has to be mentioned look like they are not connected but they are because flatter still needs to locate your images for optimization and this one also for showing it over here so both have both of them have to be correct if one of them is wrong it’s not going to work okay so let’s hot reload and we see that image is already showed up over here and it’s beautiful okay now in your case if it did not showed up you need to do make sure you go ahead and uh read the error message if it doesn’t show up there would be an error message read that try to fix that the other one you could also do go ahead and stop the app using this one stop the app and then run it again hopefully it would show up and if you still don’t see the image you can send me messages I’ll try to help you so now with this we basically see that our layout is getting more and more like the one that we have seen our previous app over here okay so let’s go ahead and put this uh const modifier over here well this is so far so good but now this is not very good practice to put uh your image path directly putting over here it may create a big problem in future what problem because one day you might want to change the folder’s name okay now if you have say 100 images in your app 100 different images and initially if they were same in the same path but now somehow you want to change because your app is growing you want to restructure your app and resources and images you might want to put them in a different path so you have to find those 100 path and then change one by one so definitely this is not good so we want to optimize this so let’s learn this how to do that so previously we have seen our lip folder here we have base resources folder now Styles folder now inside now inside resources folder we are going to to create a new file and we’re going to call it media. Dart okay so let’s go ahead and add it over here media. Dart and over here we are going to create a new class and here we’ll call it app media okay now inside this we can go ahead and create a static variable static actually we could do static const and then here we’ll call it base image and over here actually we can go ahead and uh put our images folders name or path name which is like assets images okay like this and uh let’s put it here and we should be good to go now okay so this is the correct image path right okay so this is the beig image base image path now let’s put underscore over here so two things we are putting static const now static means that this variable over here it’s not part of the class instance but it’s part of the class itself okay which means that we can directly use the class class name to access it we don’t need to use an instance or create an instance to do this okay all right and const means that okay once you assign the value you cannot change it okay so that’s what so we are assigning it and we don’t want to change it when the app runs during the run time we don’t want to change it so that’s why we put const and static and underscore means that this is a private variable okay so private variable means that you can only access this within this class you cannot access this out of this class okay so that’s why here we put uh underscore whenever you put underscore in Dart that becomes a private variable private variable are only used within this class now regarding this and now here we’re going to create another variable and we could call it study const and the logo and then over here we are going to do this one base image and then we can mention our image name what’s our image name Logo logo.png well in this case I think we can remove this slash because one slash is already here now what beauty you see in this it’s beautiful why and it’s optimized so next time you want to change your image path actually you just change here and everywhere else they would be changed automatically okay so that’s why you should separate them in a dedicated class okay always separate your colors and media files in a separate class because it’s good for optimization and future maintainance another example like over here we Chang the primary color now because we all put over here so we just need to put in we just need to change in one place and everywhere else it’ll change automatically okay so you don’t have to check one by one and make changes all right so every time we put images we are going to follow this pattern so next time we can just go ahead and add a new image over here and we would use the base image path and then the image name itself okay whenever we need that we do step by step now let’s come over here and we’re going to come we’re going to be here and inside this okay so this is the time we access our app media class so so here we would say app media so app media let’s go ahead and check if we can import that Library so app media dot here we’ll have logo okay so that’s it so that’s how because now logo is a static variable you can just go ahead and access set using the class name this is our class name so that’s the beauty with static variables because you don’t need to create something like you know like this say for example app media logo app media like that you don’t need to do like this okay so it’s very convenient all right so let’s let’s go ahead and restart our app and looks like everything is good we see that we have this uh row over here and this row is showing this uh two text over here now of course this is supposed to be our Search widget or search layout over here now we can continue to work from here and we will see that how the work now let me go ahead and remove this okay and let’s do hot reload okay so it’s still going to work so we don’t have to always use two widgets over here so we can just simply put something like this now this thing is not really good because uh here we can’t apply any decoration uh let me show you our original app in our original app we’ll have the decoration decoration I mean style as you can see so there’s a lot of things that that’s going on over here now once again when you have a main widget or like this icon would be our main widget and this text itself now around it we have uh this style now this kind of style around menu yet mostly given by a container so that’s what we want to do we want to give it a container okay all right so that’s what we need of course we understand that part but I think there is another thing is missing at the same time actually even though we can write search over here but we don’t have the search icon so we need to go ahead and show the icon now for that one we can have an icon over here so to use an icon simply we can use our icon class okay so this is our icon class and once again since this is a class we always need to pass something otherwise uh it might end up as an error or showing nothing but in this case this is an error because we need something okay now at least we need this icon over here okay so let’s go ahead and pass uh this icon to it so how are we going to pass but this time we are going to use fluent system icon okay system icons this one now let’s go ahead and import it we already have it installed and from there actually we could do IC fluent search regular so this is the icon that we want to use okay and then over here we are going to use color so icon takes color so we’re going to do that and here color and instead there’s o x ffbf c205 so that would be our color code so let’s go ahead and hotr load and beautiful so it already showed up over here here but one thing I do see that at the top over here we can assign sized box actually and then here we could do height h e i g HT height 25 okay and most probably we can also use const with this okay now it’s coming down okay so so far so good now this row is showing this one right okay cool but now the problem is uh we need to assign style to it so we cannot assign extra style like color and everything to a row so we’re going to wrap it around a widget so that would be our container widget and if we have container widget we have learned before that we can always assign decoration okay so I’m going to copy this so that it becomes quick so let’s go ahead and put it here okay so now let’s hot reload but of course we have some of this one which we don’t need like this image right so let’s go ahead and remove that we don’t need this one and one thing we could do over here assign color to it so let’s go ahead and do that so here we do const and then color o x FF 4f 6f uh actually it should be 6fd so this is the color that we want to assign let’s go ahead how to reload okay that’s gone right and then actually we also want to assign a bit of uh padding uh hor actually vertically so how to do that over here we’re going to have padding and then we would say const Edge Edge insets do symmetric horizontal 12 vertical 12 okay cool now let’s hot reload now it’s looking more beautiful but now we do see that we don’t really exact ly look like this so we have some other issues that we need to take care so one of the first issues should be actually the background itself the whole background okay so we still need to work on this so that it looks exactly like this now let’s come over here and change this color code actually it has a typo so now it looks like more white okay and then we can also remove this one we don’t need this because this one pushes this two item to far end but in fact we want them to stay close to each other so that’s why we are doing this and we also don’t need the word search icon we just need search right so now it looks more similar okay and then if you come over here the Bottom bar this AB bar we also don’t need this let’s do hot reload okay and then if we come down over here container over here actually we can add a new child that child would be for creating some space as sized box okay so now here we could do h e i GD height 40 okay and then in front of it we can add const okay okay now let’s do hot reload cool as you see right now they’re looking very alike the more and more we are doing the more they look very alike all right and uh one of the other thing you could do you could also set a background color over here like this one if you remove this background color it won’t be like this so it gets a different look feel and look but we don’t want to have we want to have it but at the same time we can actually Define this color over here so let’s go ahead and do static color BJ color and then now let’s come over here we completely copy this thing and then we are here and let’s put a con modifier and over here here we can simply call app Styles app Styles Dot and over here BJ color I guess it should work houd okay now they look very similar exactly similar okay all right and one of the other things you could do over here actually okay so first thing I think think we can add a con modifier here but there’s another property that we want to use now that property would be this one so debug show Checker mode Banner which refers to this one if you hot reload it’ be gone beautiful so this is the first time our UI look exactly what we looked into before now I think there is another part missing over here like this book tickets okay okay now the book tickets this section is coming from here our style uh headline style and let’s put it to 700 and uh let’s see whether they look similar or not okay right hopefully we still have a little bit of differences so for that reason over here actually we can directly put bold b o l d bold and let’s outload and now we should be seeing that they’re similar okay cool no they’re exactly similar each and every pixel they’re similar okay so now we can move on to other sections okay so here we go and in this part we are going to going to continue with this uh text over here now here we’ll have a special learning like uh how to make a reusable widget because you’ll see that this text and similar text they show up and they may show up a lot later in future like this so whenever you see code like this I mean a layout actually like this which appears quite often then and you can use them as reusable widgets okay now the name may sound scary or fancy but it is not at all it’s just creating a widget and reuse it and that’s how it works now there are no hard and faster rules but there are some conventions and then uh how to do that because this reusable widgets actually would be used throughout in our app in many different places so we want to make them actually part of core widgets which means part of Base widgets so over here we are going to create another new [Music] folder and let’s go ahead and do that so here the folder name is widgets okay all right and inside this we are going to create a file all right so over here we can say Weg just name app double text. Dart okay now I named it like this the reason is because we’ll have text one text here and another text here so that’s the only personal way of doing thing you can name it anything but it’s better it makes sense but the naming of this widgets folder like over here because in this folder we are just going to put widgets and why we put in base class or base file once again the reason is because whatever is here defined is used throughout our app not only specific to certain screen okay or certain area so that’s why we do that okay so over here I’m going to create a stateless class and I’m going to name it over here as is app double okay app double text okay all right and it may want us to import some of the packages let’s go ahead and do that and now the arrow should be gone okay now I’m going to close others out we don’t need this now we’ll need this one we also don’t need this we’ll need this okay cool okay so we created a class and this class is stateless class because it’s extending stateless okay all right and now this class actually we want to reusable okay which means that we want to call it from different places so that uh it looks like this and this now well uh take a look at our app over here this one so we want to put the text here now to be able to do that first we want to go to our homepage over here home screen actually so that’s what we have currently and previously we have this list view right now instead over here we can have another const over here and we going to call it sized box and height 40 okay let’s go ahead and do that and then uh of course if you save it nothing’s going to show up over here yet and then here we’re going to say app double text like this but we need to UT the path so let’s go ahead and do that okay all right uh and let’s hot reload once again nothing appears over here but one thing we could do just give it height and color so that we know what’s going on okay height say 40 uh with say 40 and color say colors. red okay and we got to import stuff for that okay just skip coino we don’t need this uh let’s restart and we see that it’s showed up over here beautiful so it means that we can use a class that’s defined in another file or another place okay now of course we want to pass this text okay all right so how to pass this now if we want to pass we want to pass it over here okay as an argument and how to do that so we going to pass two Tex one is Big text and there is small text Big text would refer to this one small text would refer to this one okay all right so we can come to our class over here and then over here we can declare the variables that we are going to get as argument so here we’re going to declare a variable type string and here we can say big text and then then here and one so string small text okay now since this is a class and you defined uh Define variables and there is already a Constructor it wants this value to be initialized at least it should get a value before it gets this uh Constructor now for this reason over here we could do required requir this do big text required this do small text like that now you see the error is gone which means that right now we can get this two variables value as in the parameter so this is called parameters right now of course over here we’ll get issue okay it’s saying that okay you have defined two parameters but you are not getting them you have to get them as argument so that’s one and I think we have another one small text okay now here we can say upcoming flights [Music] upcoming flights and here we can just simply say view all okay just like that’s upcoming flights and view all okay looks like we need to capitalize okay so it should be capital F and then it should be capital V all right and then it wants us to put a con modifier so let’s go ahead and do that okay hot reload but of course nothing is going to show up over here now we have the value we received the value the value has been initialized when you say required you must pass the value okay we said require we must pass the value that’s why earlier we have seen error okay but now we pass the values and the error is gone Okay Okay cool so now we can show this value right so for example over here um we can actually let’s go ahead and remove this we don’t need this okay and what kind of layout we are talking about we are talking about a row layout like earlier we learned that this is going to be a row right horizontally so that’s why it’s a row now if it is row then we can actually should apply a lot of properties to it so one of the properties is children and uh which means that it will take a lot of child over here one of them is text let’s go ahead and assign big text to it okay and um let’s go ahead and assign styles to it we know we can assign assign style so Styles dot we think we have head headline Styles style I think we have had line style three I think that should be app Styles or class name okay hard load and we already see it here and which is looking like this okay all right but now in this case uh we need to change this one which will change very soon don’t worry and the other one and over here we want to use inkw well now inkw well is a special type of widget which has a property called ontap on tap means if you click on this it’s going to get response okay so here we’ say well before we say that so let me assign a child to it child and for child itself over here we can use the big the text itself and then here we’re going to say small text okay and and then that’s hot reload and beautiful now they’re too close to each other we’re going to use any the property at the top which we learned because this is a row so for a row horizontal access is the main AIS so here we’re going to say main access alignment this one and then here we’re going to do main access align I think I have a typo now my flatter uh Auto completion is not working it has to do with kind of version so I’m trying to fix that once that’s done then it would work all right so that’s why you see I’m typing in everything of course this is a slow process but you get the idea okay so here we do see that okay we have styles to it already Okay which almost looks like this but now we need to assign the exact style to them okay now to do that here we’re going to do our app Styles class and uh okay let’s go ahead and copy any of this it doesn’t really matter and then we can call it headline two so we have headline one headline two so have for headline two we can assign text size as 21 and text color so let’s go ahead and assign color to it do have color early so this one let’s copy this and put it here so what’s going on text color let’s see did I copy it correctly yes I did and invalid const okay right this one to remove this okay so text color has been assigned and then over here we also want to do bold okay now let’s come over here so instead of three we’re going to assign two so it’s looking more like this right beautiful exactly the same now the view all this one we have to assign a different color to it let’s go ahead and remove this one and here we have text style this one okay if you do come over here you’ll see that okay we don’t have text Styles so we need to actually uh create a new variable that’s going to call text style so let’s go ahead and create this so this would be our new variable where what refer to as text style now this would be also working as our base text style the default one okay now let’s go ahead and use this and hot reload and we see that okay uh it’s almost looking similar but there’s still a bit of problem remember this one is going to work as our base style okay this one this is going to be as our base style because it has exact color exact font color and font weight but what if we want to change one way to work with this is that you go ahead and copy this and you give it a different name like this okay but there is another approach that we can use we don’t need to recreate many variables like this this is possible but let’s learn something new this called copy with okay let’s go ahead and do copy with so copy with is a method actually that’s pretty much applied to flut objects or widgets which means that uh whatever the properties it has keep some of them and and remove others if you want that’s how it works copy so copy some of the properties what does it mean it means okay you can keep some of them if you want and change others okay it’s it’s more like okay this is working as a parent class and you want to change the parent to be a child okay and then keep some of the parents properties and adding something new or removing something new removing something from the parent and create a new copy okay this is one way to understand all right so this is called copy with method now here we could apply Color and here we can say app Styles app Styles dot [Music] primary color this one now we already have this color now let’s go ahead and save it now we do see that the exactly look similar thing is this style over here so it doesn’t look like this because we do see that we have bit of spacing right but we don’t see the spacing now it’s too much to the edges we can fix that now if you come here early you’ll see that this one um we have applied out of this container in fact we can also copy this we can if you want we can actually put it right inside this column over here and it would work exactly the same okay and let’s hotr load okay so you see that now they’re aligning very much that’s what I was talking now another thing I said earlier that this is reusable so you can say upcoming meetings okay and hotra load you see beautiful so you don’t need to go ahead and create everything from the scratch again we don’t need to do that so that’s why this is reusable but we don’t need this now so this would suffice now one important concept is this copy with method in next lecture we’re going to cover copy with method okay so in this section we’re going to learn about uh a concept which is called copy with method because this is a method is very useful common and it used a lot in Dart so let’s come over here and we will see how to do that now I think we need to find our main main main Dart class this one and definitely we can remove this we don’t need this okay now we’re going to create a new class and do some examples here now remember this is nothing to do with directly our app we are trying to understand the concept okay now here we’re going to create a class and we’re going to call it test class you can name it anything and then we are going to declare two variables int y int X and int y so these are two variables and as you can see that there’s wigly lines so either you have to use a light over here when you say light that means that you’re going to give it some value before you use it this is one way to go and use it but we don’t want to do that we want to use a Constructor remember Constructor is the class name like over here this one we have but it’s also like a method it could have a body or it might not have a body it depends on many things but the same as a class name that’s called Constructor and if you have value like variables actually not value if you have variables you need to pass the variables inside the Constructor so this is what we are going to do over here and then here we’ll say required this.x required this.y okay so it means that when you create an object of this class you’re going to pass value and when you say required that means you must pass okay so that’s why we tag them using required there are other properties that we’ll learn later for now let’s focus on copy with method now what I’m going to do over here so here I’m going to create a variable we’re going to call it VAR and here we can call it test and then here we’re going to call it test class and then over here we’re going to pass x 2 Y3 that’s how it’s going to work now this required thing we are going to talk about later okay for now let’s SK it as it is now we have a class and it is two variables and we have a Constructor and if we want to create a new instance of this class we have to call the Constructor and as we call the Constructor we need to pass the value of this variables and that’s what we have done over here and then here we can say print dot print test dot X now if you hover over on this well I guess we need to restart let’s go ahead and do that and here we see two if you change to Y then you will say that here it’s a three so now so for it’s normal class in Dart the only difference is this time actually we have used required okay now what if you don’t use required and that’s okay but if you don’t use required you need to skip this variables uh sorry the braces over here that’s still going to work but in that case you can’t really have named okay so we need to remove the name like that XY and if you run it then it’s still going to work the same okay all right but so the difference is if you want to mention the name then over here you need to use required and that’s what we have done over here okay and let’s remove this let’s see what happens it will give you wiggly line and it says that named parameter X is required okay so this kind of uh parameter that you pass that’s called named the parameter why because you’ll have name like X Y you can name anything okay so you’re going to do X4 y10 so we gave the variable’s name over here all right and exactly the same name as there here otherwise it’s not going to work okay okay all right so Y is 10 now that’s all about understanding our Constructor and named variable know this place required this keyword plays an important role in a class and the Constructor most importantly if you want to use copy with method now in general you can name it anything but we’re going to call a method it name is a copy with and then over here we’re going to have int X you can name them anything but we can also keep the name as they are over here and this is the convention like this okay now I want this method to return an object so here I’m going to say test class okay well now this method is going to return something and that would be of test Class Type and over here we need to say test class otherwise we’ll get error now over here once again you can you need to give it a name say 20 all right and then it’s going to work okay all right so we just said the method name is copy with and then when you call the method you may pass variables you may not pass variables okay and whatever it is it doesn’t matter so let’s go ahead and here call it copy with now remember over here so hover over on this two positional arguments are expected with copy with method but zero found okay so it wants you to pass over here as you see that uh arguments so you need to pass two of them but let’s do x uh 30 y [Music] y40 we created this and what if we want to save it in a variable ver new test why we are doing that because we know that copy with method is going to return us another object of test class type because we are returning from this method as you can see there’s a method it has a return type and it returns something from here so now here we can do print New test. Y so what’s the value you think you would be would it be four would it be 30 or it be five well in fact it’ be five let’s go ahead and check sorry y value it should be 20 not not really x value I’m talking about y value so it shouldn’t be 10 it shouldn’t be 40 in fact it bit 20 let’s go ahead and check and that’s what we see so this is the first Y and this is the second y so what I’m trying to tell tell you over here even though we have POS we are passing value from here but this value is not being taken okay it’s still using this old uh the value that’s been here so of course it makes sense right whatever the value you pass from here directly that’s going to take this place right it would be overridden even if you pass value from here uh we are grabbing it right and then we are not assigning to it so the value actually is taken directly from here so it’s 20 so this value doesn’t take effect but what if I want this value to take take effect the 40 y value is 40 over here right now definitely I can do like this but now there’s this problem as you see there’s this error okay so this is this Y is optional right because when you have a question mark it could be null but this y over here is not null right so that’s one issue and then if you do put this one it’s gone right so we are saying that okay it’s not going to be null now let’s go ahead and try this okay now we see that 40 is taking place for y value why so here we are calling copy with so we are passing 30 and 40 and we are using whatever the value we are passing of course we are passing both of this 30 and 40 so Y is 40 now if we print X we will see X is 30 and seems like this is nothing special right this is okay now the problem is what if you have 20 variables what if you have 100 variables so each time you just want to pass in that case if you have too many variables you have to pass all the variables at one time right and this is not efficient and what if you just want to change x value but you don’t want to change y value you still want to take this y value and you want to take a new x value from here and how to do that okay now this is where actually the full power of copy with method comes so what do we need to do first we need to have this thing over here just like this one over here we have this curly braces we can also put curly braces like this and to the end then what’s the benefit of this the benefit of this is that right now first here you need to put like x30 right but what if you don’t put Y and it’s still going to work why whenever you wrap your variables like this kind of curly braces and then you also have optional you may not pass all of them you can just choose which one you want to pass all right and then what about the rest of the values over here and it’s easy to do how to do that here is the thing so here you check like this this do X and then here is the same thing this doy so what is it doing over here well once again first we WRA it on curly basis and the benefit of this is that I can just pass one value any value if I want pass y that’s okay if I want pass that’s okay if I want just pass XY both and that’s okay if you have 100 variables and but you just want to pass two of them and that’s okay that’s the first benefit and we can see it over here we have two but we are just passing one and why how it is possible because over here we have this as you can see the curly braces and we also have the question mark question mark always makes it optional okay so that’s the first thing and then over here here what we are doing we are saying over here okay remember this copy with method is getting called from here right so that means it tells you okay you’re passing value so it’s first check whether there is a value it would first check for the X because it’s the first one it will see if x is coming from here so what’s going to do it over here it’s checking the x value that this x whether is coming from here and giving it here right whether it has value or not if it has value use this value which means that if it has new value use that value but if it doesn’t have any value use the old value so this dox is actually getting the old value and where is the old value it would be four but of course if this doesn’t exist but in our case we are passing 30 so it will just be executed this one and then assign the value to this it doesn’t need to come over here but what about why now you’ll see that here we are not passing y okay so copy with method gets cool and Y is here and now here we check the Y value so y value is not given it’s not given over here so this means this part doesn’t execute now what happens it comes over here okay and it finds okay this do y refers to this this one this refers to the original value but originally there is already a value when we created the first time an object we created there is already a value okay so then it would take the original old value original Last value so our original Last value is what is that this 10 so y value would be 10 over here now anyway so after this changes let’s go ahead and copy this I mean sorry execute this well as usual we see first y value is 10 all right and then of course we can change it to X actually so that we know compare directly so X was four we see four and over here well we pass 3 for x and and we print the value that we passed and we say it’s 30 but remember over here we didn’t pass any y value let’s print the Y value for this object and here we see 10 where is this 10 coming from even though I didn’t pass anything it’s coming from here because as I told you if there is no value then it’s going to check the value if it doesn’t exist it takes from the original old value okay and that’s how it works works and that’s the beauty of copy with method that’s like a lot of knowledge so what’s the beauty over here copy with method lets you create a new object remember actually in fact over here we are creating a new object even though it looks like a method but the method eventually returns a class Constructor so whenever you return a class Constructor you are always returning uh new object so this returns us a new object and the new object object is saved over here and then we can reuse the value from the old object actually this y value is a 10 which was passing from here okay so the old value is still saved okay so that’s how it works now let’s go ahead and create another variable okay so here we’re going to say ver say new Test new test two and then here what you going to do so here we’re going to say copy with method and now x 100 okay now this time actually let’s say we don’t pass X we pass y all right now let’s print new test two and Y value so let’s go ahead and print this and definitely we see 10 for y okay earlier it was 10 over here because you didn’t pass anything it took this one but now this time you passed 100 so this time we just taking 100 over here now what about X let’s go ahead and print that now this x value is four where is this coming from it’s coming from here okay because originally this one over here was four but what if you put this one over here now let’s try so here you see 30 so copy with method based on whatever the object you give them it takes value from that object so this is the object or this is the object right here we are calling copy with method based on this object and here we are calling copy with method based on this object so it’s going to take values like in oure it’s going to take X values based on this object whatever was there whatever was there it was 30 why it took 30 because we are not passing anything anything over here as you see we just pass y so that’s the beauty of copy with method it means that you can always pass less value and then you can create new object based on the old object’s value and this is exactly what we have done over here so here you see that we have this text Style Now text style has font size text color font weight so what we have done over here we just change the color but then that also means that our older value font size 16 was still in our object and font weight also was in our object now this copy with method we use a lot in our Dart so once you understand how it works it should be very clear but anyway so if you still didn’t get it I would suggest go ahead and replay the video and it’s going to work for you okay okay so now we want to build this one and how to build this but before we go ahead and build this we have to understand this is going to be our Global widget why because this available here and this also available here as you can see and at the same time this is also available here so this ticket itself we are going to build it as a global widget now to be able to do that need to come over here inside this base and widgets folder and here we are going to create a new file okay so we’re going to call it ticket view ticket ticket view do Dart this one and I’m going to add it to my G all right and over here for now we are going to start it as a stateless class the last one if you’re on um vs code is the same thing so here we’re going to say ticket view just like this and it needs some imports let’s go ahead and do that okay cool so now with this we do see that okay our stuffs are ready now this would be our ticket view okay so the first thing you want to do over here okay let’s uh come inside this view over here here we have this column so let’s collapse this this row and then we have this container over here so we’re going to collapsing all of them and then here for now we can just simply go ahead and call T kit view this class okay all right and make sure that it’s imported at the top as a package all right and then we’re going to do save h load and we do see it that it’s available over here directly now this is our placeholder this placeholder is being coming from here now of course definitely this is not what we want so we are going to replace this we don’t need this placeholder we’re going to replace this with a sized box now why we are choosing sized box instead of container because here you see that sized box has only this three of this uh it takes arguments over here key with height and child most importantly three because key in general we don’t really care most of the time but if you do have a container over here and here you’ll see that it has a tons of arguments that it needs to take now of course this is not optimized because it’s much bigger than the file is much bigger than sced box so the place where you just need WID or height and child so you want to limit yourself within sized box because it makes more sense and makes your app faster so that’s the first thing you want to do all right and now at the same time uh let’s look at our app over here uh okay so here this is our ticket right now this ticket would be represented by this file and this file or this class actually this class class is going to represent this section and if you do see that over here it doesn’t take the complete screen with it just takes uh part of it and another part it shows up like that okay so one thing we want to do over here we want to access the width of this screen so here we’ll have final size we’re going to call it size and then we are going to have something called media Cy now media quy I think we’re going to get this one and then off context and after that size okay now this is going to give us the size of this uh screen with okay or the whole screen actually in fact if you go ahead and try to print over here we will say size dot here you can say height okay so if we want we can go ahead and print it and down bottom you see that okay this is 932 932 so the size object itself has other properties that we can use and so this is the width 430 so that’s why we can have it and now beautiful thing is after that we can control this with over here okay so here we can size do uh size do with and then over here we’re going to just take 85% of it okay now with this um uh let’s see what’s going on so here we do have const let’s remove that so the whole uh the sized box this is going to be in terms of width we just going to take 85% of it okay and the rest we will take care of that later okay so this is the reason that why we have it uh I mean now it’s going to be dynamic right because um whenever you have uh different screen size it’s still going to take 85% so you don’t want to hardcode it by saying 400 or 380 because in every screen it would be different okay so that’s why here you don’t want to hardcode it by saying 48 uh 380 than we are taking a percentage of it and this is how it becomes more Dynamic okay all right and at the same time here’s another thing that we want to take this called height now this height is going to be interesting well now for height what we could do now height is the problem in many different places both on Android and iOS so over here for now we can just go ahead and say for example um 178 or 79 and this is going to suit us but why we do like this uh we can of course do 80 but in my original design with the design layout we have used 179 that’s why we are doing that okay now this one regardless whatever the screen it is we’re going to keep it pretty much the same height okay so that’s why this one is pretty much fixed all right now over here we’re going to have this child and and uh uh child itself we can say container and then we can say color and here color is say for example colors. red and looks like we need to import something okay and we don’t need this okay and then here we can have a child and then we’ll do text and say hello let’s go ahead and save it and we do see that this is what we actually we looking for and this is what we got let us take a look so this guy was here okay so that’s uh kind of the thing that we are looking for okay now of course we’re going to work on this more okay looks like it’s taking more but don’t worry uh we’ll work on that more and so let me put it behind it okay right so you get the idea okay and then over here I think we can apply a margin so what kind of margin margin would be applied outer side from this container so here we’re going to do Edge inser do only and then we just want to apply on the right side so let’s go ahead and do and here we’re going to do 16 pixel and see now it becomes smaller and in this case this and this are looking similar in terms of width and height so this is the basic layout in next section actually we’ll start to make it looking more like this okay so here we’re going to do one thing before we dive into this complexi first take a look that what we are going to do and how we are going to work on the layout and we’ll also see the layout in structure grid so that it makes more sense to us so over here this is what it looks like so the ticket itself would be wrapped inside a container and then over here inside this we’ll have a column actually column would contain the whole ticket okay well I haven’t drawn the column yet because it’s uh too many lines here it won’t be visible but you get the idea this column would be actually the whole ticket and then inside the ticket we will have uh two rows this one and this one and this two would be inside the column column n column needs children so it could be any children in our case we’re going to put this two different colors item there so that it uh can stay on the top of each other so that’s the first view of our ticket now here this is a better view of our ticket layout over here as you can see one second as I said that this part would be a container that’s our container like this one okay and after that the ti itself would be a column so over here this one the second box or rectangle represents the column itself and inside this as I said earlier we will have two rows so these are the two rows as you can see Row one and row two and inside each of rows we will have different items okay so we would put them together uh uh next to each other okay so that’s the basic understanding of how we are going to work on this layout here I have this Center widget right uh container widget actually and then I’m going to wrap it around using uh widget so here I’m going to do Center so if you’re on vs code on Windows you need to do control and Dot button control and Dot would help you if you WRA if you want to wrap this so all you need to do control and uh dot okay like this okay if you’re on Mac for vs code you need to do command and Dot anyway so I’m back to Android Studio over here so I’m going to save this and then okay me run it okay so now here we go so the first thing we want to focus is styling this one so to be able to style this over here I’m going to have uh decoration okay so so we’re going to do decoration and then box decoration okay and we’re going to use it from our material package and then over here inside this the first first thing we want to do is color so here we do colors. white now as soon as you do this and you’ll get error because we also have colors here so let’s go ahead and save it and here we go all right so this is the white color we want to give it and then over here we’re going to declare our or assign our radius okay so because we have radius in our original design so here we’re going to do border radius this one and then here we would do border radius dot only over here and uh we want to only assign one border not everywhere so that’s why we do only and over here we want to do top left okay top left now here we’re going to call Radius do circular and then our radius should be 21 now let’s go ahead and save it and here we go and here we do see that over here it already changed okay now we are just doing one right actually we can do a lot more so here we can say top right and once again here we can do radius. circular and 21 let’s save it so now it looks more alike what we wanted and uh like this both of this so now it’s getting more and beautiful now this color over here white makes it very visible but this is not the color we want so we want a different color now to be able to do that let’s see if we have our color file over here looks like the color file is not open so I’m going to C over here in our resources folder Styles and app Styles over here and here actually we can define color so let’s go ahead and do that so here at the top let’s define a color static color Okay ticket color now look at this over here we’ll have this kind of blue and orange okay so now over here we can say ticket blue and then const color and here the color we want to Define is o x FF 5 526 799 so that’s the color that we want to Define and as you see over here we already see the color now let’s come over here in our ticket view so over here we’re going to call app Styles I think this one okay but we want to get it as a package and then EP styles. tiet blue now let let save it and beautiful so we already see the blue color cool of course there is other color as well but we’ll take care of that later so keep it is as it is so now after this we are going to work on our app so this one we want to make it look like this right so the first thing we want to do right now having a child inside this uh uh container and we already have one as we can see that okay but this one we want to replace by column as we said early so we want to have column widget just like we have explained over here so inside container we’ll have a column okay now inside the column what do we need we need two children okay row and a row so both of them are children over here we are going to have a row okay and row will have children as we know once again this is what we learned from here so if this is zow there would be many children so that’s what we’re going to do now instead the children over here first we are going to have a text over here now the text itself should say we are going to show ncy okay this one ncy so let’s go ahead and do that n or NYC actually and then over here um we want to style it okay so that’s why we’ll have Style and within it we’ll have like this so we’ll have app Styles so we have this one and then here we can address headline three now after doing it here we can use copy with method because we know that there is something called a copy with method and then here the color here would say colors. white so we want to assign white color to it okay and uh for now that seems okay so let’s go ahead and do that okay so that’s the first part and now let’s save it and let’s see how it looks like now okay this is fine but it doesn’t look really that good so over here we’re going to do a padding and add inserts all so here we’re going to do 16 as our padding let’s save it so now it came down so now there is is padding everywhere okay so it came down within this container itself from everywhere so it’s pushing inward from all the sides okay all right so this part is fine okay so the next thing we want to show is this two right and as well as this one and now luckily what happens over here that this text itself actually you can go ahead and copy and we can put here okay so let’s go ahead and do that and let’s save it and if we save it now we’re going to see the result where is it okay here of course they’re too close to each other and we don’t need to worry about this thing one thing we could do over here something’s called expanded okay and then we going use container widget okay and now let’s save it and you see they go to the far end of each other this is expanded widget but say for example you don’t want to use expanded widget then how to achieve the same result here you can do main AIS alignment for Row the main AIS alignment is horizontal alignment main access alignment do space between so this is still going to work okay so it would work anyway but our um alignment is bit complex so this is not going to work for a long time so we want to control everything on our own so and this gives us better control okay so that’s why we are doing this thing okay so now this dots then we are now we need to show this dots okay so now you’re going to do this now to be able to do this they would be Global right because these two are showing over here and uh over here as you can see on all the tickets and as well as over here so we want to make it part of our Global widget now to be able to do that let’s come over here insert widgets so here we are going to go ahead and create a new file and we’re going to call call it U big dot dot Dart okay so let’s go ahead and do that and then over here we are going to create a stateless class so here let’s go ahead and do St stess and Big Dot like this and let’s go ahead and import this guy over here now definitely we don’t need this let’s remove this here this would be a container and let’s go ahead and return stuff okay so let’s remove this and now let’s come inside our um app over here so here simply we can just go ahead and call Big Dot this one okay so you’re going to import it as a package let’s go ahead and do that Big Dot actually this one and uh we’re going to do the same over here actually uh okay it should be here between this two Big Dot okay fine and it looks like there’s a bit of issue and it looks like we need okay little a little bit of refractor otherwise it’s being cranky and for now put const modifier and say do the same over here now let’s go to our Big Dot over here and as we make changes we will see them okay all right so here we want to do decoration box decoration because we just want to draw something round okay so that’s why we need that now with box decoration you could do pretty much any kind of shape you want uh it gives you a lot of flexibilities Border radius do circular and 20 now this is not obvious from the beginning so here we are going to give it a color and now we could directly give it a color or actually we can give it border and within the the Border itself we can do more stuff so here inside this here let’s give it a width and we’re going to give it a width of 2.5 and then over here let’s go ahead and assign color to it so here we say color and colors. white and I think we have a typo White okay let’s go ahead and import it material package and it’s done now we’re going to save this thing and we do see that okay so there are two small dots but they are actually really small now let’s come inside this container and over here let’s assign padding to it so here with the add ins sets do all three now let’s save it now now we do see that they got much bigger just like uh the one that we were seeing over here okay all right so they’re exactly the same size okay so let’s continue now we do see that they’re on the very far two sides now it’s easy to solve and how to do that right now we see that we have only one container widget right uh expanded widget actually so not container so we can put two more one here and one here and if you do hot reload okay now we see that they’re at correct place okay so that’s the beautiful beauty of this expanded widget with the expanded widget actually you can uh proportionally put a lot of the items and then it’s the idea is if you I mean right after each child you have to have a expanded widget and then it just going to work okay so like here you see one 2 three 4 so we have four uh children so we have to have three expended Widget the idea is if you have five children then you have to have four expanded widget so number of expanded widget in a row if you want to put proportionally should be be one less than the actual child so that’s what we have to remember now the progress is good so what to do next now earlier we said that we also want to put stuff in it okay now this part is going to be a bit complex now before we put stuff in it so right over here inside the expanded widget we can actually put kind of say a child like T text and we can say hello let’s save it and we do see that hello actually showed up over there now how do we go ahead and put other stuff in it to be able to do that first we need to look at our original design over here and a few things you had to see over here the first thing is that well there are this number of dots over here as you can see okay so that’s one thing so first we have to have dots and then actually we also have this uh arop plane icon now this arop plane icon is actually on the dots so it’s overlapping this uh theplan icon is over overlapping the DS dots now here it gets a little bit tricky and complex in two sense first we see the dots but actually the dots are not fixed the dots are counted based on the space given okay so it’s more like if you have more space you’ll have more dots if you have less space you’ll have less dots something like that and then we also have to have this overlapping section over here okay this aop plane itself so this is what that we are going to work next now as we talked about earlyer that these two are going to overlap now how to work with this the first thing we need to remove this container itself okay we can’t have container for overlapping so we have a special widget when two items they overlap the special widget is called stack widget okay and stack widget actually takes children instead of child so here I to have children okay now the theory is that because they’re going to overlap so that’s why you will have children so stack wiget would put the children on overlapping manner okay so because it is children and because they have to overlap each other so that’s why we are stacking things things onto each other okay so stack widget means where you will have stuffs onto each other on the top of each other okay and then that’s why you need a a lot of children to do that okay now let’s go ahead and continue so first let’s go ahead and make sure we have a widget and we can give it sized box and within it we’ll have child and the child itself will have say for example text and here for now we want to give it dot dot dot because we want to for now follow this dot dot dot or actually Dash they’re not really Dot and then over here we are going to have a text for them now let’s go ahead and save and we already see this right and then after this sized box over here we can have say another widget Center widget and then we’ll have child and then we could do text and then we can say plane okay and let’s save it and here we see so here we do we do see that this dot dot dot or the dashes and the word itself the text itself has overlapped but here it’s empty right so what we could do then here we can increase more actually now the layout out breaks okay now that’s where actually I was saying that this part is pretty uh complex because now we need to find a way to dynamically calculate the space between these two widgets okay dynamically calculate the space between these two widgets and then based on that we can actually go ahead and find that how many dots we want because it would be easy that would be basic math okay so here we are going to broaden our understanding how to get this Dynamic space or width and then generate widgets like as you can see over here this dots are actually widgets okay so any kind of thing on on the pixel or as pixel you see that would be a widget in flatter anyway so layout Builder would give us this space available space and list to generate would help us to First to know how many items we want and then it would generate and then actually the size of this widgets generated would be given by sized box or any other widget like container that’s also okay so the basic math over here is so we’ll have this available space which is the most important one and we’ll get it through layout Builder and then we’ll have a random number you have to divide this available space using this random number to actually generate a certain amount ount of number over here and that number would be given to list. generate and then it would generate certain number of widgets for us now take another look so that we understand it better okay so here there’s another picture that would help us to know for example we have two widgets over here widget one and widget two and we want to get the available space or width between these two widgets so what do we need to do between these two widgets actually we need to insert layout Builder so as I said earlier layout Builder would get us width okay and then here of course we see a new widget which is called flx why we need that before we need that and why we need that let me tell you about list generate widget as I said that earlyer list. generate would help us to generate widgets so how it’s going to do that it would take this width and earlier picture I told you that we also need a random number so this is the random number and this is the width So based on that the input would be given to list. generate widget and then it would actually generate widgets for us but at the same time it would take this sized box because you actually want certain widget okay not a random widget so either you want container or sized box or anything like that okay so now where’s this Flex coming over here say for example it generated 10 widgets okay now this 10 widgets actually would be sitting together not spaced like here as you can see there are spaces between these two widgets so to create this kind of space between the widgets that’s why we need this okay so that’s why we need this Flex widget So eventually we’d be able to generate widgets and that widgets would look like this so this one I put it here so that you understand better now why do we put in steps like this because you know flutter all the widgets are nested so layout Builder inside it will have flx inside flax will have list to generate and inside list to generate will have sized box and eventual output would be a dynamically generated widget like this based on your layout Builder okay so now since we have the basic understanding of how this works so now we’re going to go ahead and actually start implementing on this and this is where we want to Focus well so inside this uh sized box widget this one we don’t want to have it while even before that let’s go ahead and create actually a new widget in it okay right so here I’m going to create a new file and here we’re going to call it app layout Builder wiget dot dot so let’s go ahead and add it and then over here we’re going to create a status class and we’re going to call it app playout builder wiget okay now let’s go ahead and import the necessary things okay cool and then over here we can just simply go ahead and call here app layout build widget okay so this is what we’re going to import and we’re going to keep as it is now few things that we have to know that earlier we learned that so earlier we learned that we also need to pass a random number so that’s what we are going to do now if we going to pass a random number we need to grab it over here okay so here we can say final int random d divider I think that your divider this one is what we want to do and we also want to pass okay I think regarding this I’m going to talk back later now here this is something that we would say this is required required uh this dot random divider so this is what that we want whenever we call this class pass we want that you have to pass this one so that’s why we said this is required all right and from this moment on now over here here we can also say random divider and we’re going to pass Six you can actually pretty much uh pass any number and we’ll also talk about the later okay now let’s come over here and remove all of it and here we’re going to pass layout Builder widget this is what we said early that the first thing we want to pass is layout Builder widget and inside this we can pass build context context and then box con straints [Music] con straint like this and then inside this uh we going to return over here okay let’s go ahead and return and the arrow should be gone okay so now inside this it does want you to return something so return flax like this okay and of course instead of flax you need to set up some arguments like directions this and that okay so let’s go ahead and set up the directions first and access. horizontal okay right so we want to put things horizontally so that’s why we put that here okay so now this is fine few things to know that now earlier we learned that we need to pass layout Builder let me find my file okay must R this one right so here we learn that we need to pass layout Builder and that’s what exactly we are doing and after that we also said Flex withget right and that’s also exactly we are doing so Le Builder flex but of course these are the some arguments that we need to pass now I didn’t mention that but you need to do that and most importantly box constraint and in fact this is the one that actually gives you a lot of information and uh it is so interesting that over here actually we can go ahead and print so let’s go ahead and do like this constraints. constraint uh this one we can use this so this is right away will give us some interesting information so let’s go ahead and open up our terminal uh well we don’t need to open up terminal so we can actually we also say it over here here okay now uh let me go ahead and run it okay so here you do see that we do see 74 and what is the 74 74 is the space between these two widgets okay so that’s what has been printed over here and that’s how actually the layout uh Builder widgets work okay so so they are always between two widgets and the space so we already know that we already have this one and that’s what we wanted okay so I said earlier that layout Builder gives you like um the space between two widgets and that’s what it’s giving us of course here we have flax and uh of course we need to use the flax we are not there yet okay so there are other properties that we use from flax okay so now over here there’s the property called children and inside this we want to put a a list of widgets now over here this means list of widgets okay this kind of thing but here we have a widget or class list of generate actually this widget list to generate we can use this one now the important part is over here length so how many to generate well interestingly enough the first thing we could do over here we can take this one okay so let’s go ahead and take this and after that we can pass a random divider okay now this random divider may actually return us float or decimal number so over here we want to wrap it to floor so which means uh integer number okay like for example if you do here up it to uh floor you’ll see that this just 74 let’s go ahead and run it and okay here we have uh error so now let’s go ahead and run it you see just 74 because when we use uh dot floor on a certain number what happens is that it gives you complete integer the closest integer now of course what’s going to happen over here you can also do like this random number and based on that let’s see what we get okay you can do Hot Load and 12 because we had 74 and looks like we are dividing by um what is it we are dividing by a number which is random number and uh what is this random number though but this random number is coming from here six so we are dividing it by six and then we see it here 12 okay but if you do remove it this floor. floor and we’ll see that okay well it’s not close to 12.5 so it takes the closest biggest integer which is which is 12 okay and so that’s how it works so now we know that over here it’s telling you that okay it’s going to generate 12 of the um widgets because remember if you hover over on this the first one is length that tells you how many widgets to generate so here actually we are generating 12 of them now the main two important factor is this for this constraint with and random number but of course if your random number is bigger then it’ll generate a fewer widgets remember the smaller it is more widgets uh the bigger it is fewer widgets okay so here we know that now it’s going to return us uh 12 of them because we are doing floor right and then later on earlier we Al sorry we earlier we also said that we need sized box so so far far we have layout Builder flax and list widgets and now sized box now the equal spacing thing I’m going to come back soon uh let me go ahead and do this sized box first because the order is bit weird though the way we’re doing it anyway so now here we are inside the size box and then here we could do width say for example three oh let’s save it okay well nothing is visible here here yet but how about we’re going to put a color over here okay so let’s go ahead and uh put color but in fact the problem is inside this Siz box you can’t really put a color but here we can first put a child and there is a another widget which is called decorated box we can put that one and then we can do decoration and then here box decoration okay box decoration and inser this here we can put color and we can do colors. white and looks like we also need to import the package all right so this one right so now let’s go ahead and save it okay so looks like it’s still not visible now the reason is here we do have width but we don’t have height so let’s give it a height and height say one and then now let’s save it and here we go there it’s already uh up there but it’s too small okay so that’s the first thing now here is this thing the one that I was telling you that this one the flex comes in what does this Flex do well this Flex actually helps you to spread them equally but you need to tell it to do that explicitly though so here we can do main access alignment so once again main access alignment do space between this one let’s go ahead and do that and uh let’s go ahead and run it and as you can see here it already spread them separately okay and now they’re extending from the left to the right and this is beautiful and that’s exactly what we wanted and this is working and then over here uh let’s see what’s happening you can also put a const modifier okay so it’s going to work so so far this was the most complex part and we just dat that so as we said early that we need all these things so what are the things that we need we need a layout Builder layout Builder we needed a flax we needed a flax let’s generate let’s generate and then sized box and then we had eventually size box but regarding sized box in fact you can also replace this with a container then you’d be also able to actually decorate it so it doesn’t really matter and here this part plays an important role now before I wrap up this one here we need to make some changes let’s go ahead and put con modifier so that our code looks beautiful now here this is not at the top so there is this problem now to be able to do that over here here we can put say height because size box takes height right and then here let’s put 24 let’s save now it came down now as it came down over here we also have this this one now we are going to actually comment it out so now it it looks beautiful so with this we are pretty much done with this section the one that we are doing with uh layout Builder now we have this and another thing you have noticed is I have increased the screen font size over here so it looks much better and more readable all right so now what do you want to do next this is the thing we want to do showing this icon over here and how we going to do that let’s come over here inside this ticket View and previously we had this one and let’s uh let us save it okay and we see over here whatever it is most probably plain okay but now here the first thing we want to show is an icon actually we don’t want to show this thing we want to show an icon so here icon and icons dot loal local Air plane rounded this one let’s save it and we already set there beautiful and at the same time we can do color to it and [Music] then over here um we can do colors. white okay beautiful now at the same time you’ll see that this is not the direction we want we want a direction like this so from this is from departure to Des destion so how to do that now this part is tricky while actually there’s an easy way even though it looks tricky so I’m going to wrap it around using another widget so I’m going to say a widget and then we’re going to give the widget a name and what is the widget name so in flut there is a widget called transform and and uh within it there is a special class that or method actually rotate this one you can call this and it’s going to work but at the same time it’s going to say it needs an argument angle so add that one so here we’re going to do 1.5 and it should work and let’s see we do have uh issues so over here let’s remove the const over here and then put const over here and then if you save it now as you see that it already changes Direction and beautiful and at the same time over here looks like we can also put a const modifier and that would be our new widget which is transform rotate so what whatever you do over here uh icon or image whatever is that if you want to rotate it all you need to do over here you need to rotate by calling transform. rotate and as you see over here and there is a basic formula that how the rotation works so it’s given over here math. pi and divided by 12 okay so now this is going to rotate in clockwise you can also rotate in anticlockwise so let’s go ahead and save it anticlockwise is like this direction and this is clockwise Direction okay so with this we are done with this section how to show this but even before we finish this over here actually we want to do L DN London so here we see 1.5 and we see that this is an angle but no way this is an angle right because earlier it was vertical now it’s horizontal that means that it’s not 1.5 angle so if you look at the documentation over here here it will say that okay uh this example rotates an orange box containing around it by 15° so it’s not a 15° is 1.5 radian okay the unit is different even though the documentation said that it is degrees but there is a relationship between degrees and radians okay so let’s go ahead and take a look so here I have this simple uh presentation where you’ll see the simple math and how they are connected so we know that if this is a circle the circle is total 360° one rotation is 360° so Pi is 180 and then if Pi is 180 of course we can say that 180 = 3.1416 and that’s in terms of radian so that’s why I wrote the unit here and this is in degrees right so 180° equal to this then 90° should be 1.57 radians so the question is why we have 90° and why not 45 or 60 the reason is because you want to go from vertical to horizontal so you want to have a 90° change so that’s why you do 90 = 1.57 radians so this is the basic math over here that if you want to understand that’s good because programmer should understand a bit of math and how things work all right so yeah this is the basic relationship between uh degrees and radians and that’s how actually it works over here then the other thing is okay well actually why it’s 1.5 because if it’s 1.5 it’s a little bit til Ed so just now we learned that we can do actually 1.57 so let’s go ahead and do 1.57 all right so now if you save it you’ll see that okay it is exactly vertical so let’s take another look that how it works so if it’s 0 Dee let’s save it so it’s vertical like this and if it’s one sorry not 0 degree once again it’s 0o radian and then 1.57 then it makes it 100% uh what is it uh horizontal then of course we can also do negative rotation let’s go ahead and do that okay so it’s negative right now this way so in general if we have plus sign over here positive that means it’s rotating clockwise like this okay so you can imagine this is a clock and then it’s rotating the hands of the uh clock is rotating like this and that’s the positive direction if you put minus over here then it would be negative directions okay so that’s how it works anyway so after this hopefully it makes sense the how rotation work well hopefully in future we’ll see that if we can rotate it and animate it which means that just changing this one dynamically and updating the UI we are not ready for that yet okay so the next part is pretty easy in next part actually we want to show this one one this line over there but interestingly we already laid out the foundation for the first part so let’s go ahead and create a comment over here here we say show departure departure and destination with icons with icons first line okay all right and then we are going to copy this I’m going to put it here and then over here I’m going to make another commment show departure and destination names uh with time with time okay now let’s go ahead and save it and then we’ll see that it’s already there so we’ll fix it don’t worry now before we go ahead and fix this few other things that we need to change over here so this part is New York so let’s go ahead and do that and New York and now looks like everything is hardcoded don’t worry we’ll fix them very soon and then over here soon we’ll be loading them dynamically so so you can just follow along with me it’s not going to temper anything with us now the only problem is this one over here now this part is uh uh look at this right here expanded wiget so here we have uh big dots so we don’t need any of these things okay now in fact we can just co go ahead and copy one of this and put it here and in this case the only thing we want to change is this one 8 H 30 which means that 8 hour 30 minute okay so that’s what we are doing now now let’s go ahead and save it and this is what we see beautiful so right now actually we are looking more like this and we are getting closer to it but I think there is a space between these two rows so we’re going to do that and then here we do sized box and here we’re going to do height and three and that’s all we want to do so you’re going to push it down a little bit and most probably we need a con modifier now let’s go ahead and save it and that’s what we see and this is Beau beautiful okay all right so then apart from this there’s also a top part that where we need to put a little bit of spacing otherwise it doesn’t look good where here so we need a little bit of spacing this is in ticket view while over here we have this one so we are going to copy this we’re going to come over here and the end and put it here and let’s save it now it came down too much we don’t need all of this so we’re going to just do 20 and we would be happy so just like this we did 20 okay all right so now we are looking more alike wonderful okay so right now we have an issue what is the issue the issue is that it’s taking the whole Space over here right it should be a different color we don’t want it to take the whole Space over here cuz over here we’ll have this orange color so that’s what we want to do now for this reason we need to refractor the code and how to do that now over here we are going to actually uh wrap this around this section around a container another widget let’s go ahead and do that so here we’ll have container okay looks say we don’t have container so I’m going to go ahead with Widget and then and then and replace this with container okay all right and let’s go ahead and save it and uh if you restart it nothing’s going to change it’s same as before and this one we can actually move out of it over here all right and let’s save it and okay let’s restart no changes and one more change over here okay so we want to wrap this around another widget and that should be a column okay now let’s go ahead and save it and that’s how it works and you see that this way we see half of it and that’s exactly what you wanted all right now the design doesn’t change much but if you go ahead okay and let’s save it we see the other one but of course we don’t want to have it like this but the gives you the idea for example if you wrap this around okay so we can have say colors. blue all right let me go ahead and do that just say for example colors. blue or actually colors. orange colors. orange okay let’s go ahead and save it and we see it like this but this is not exact color that we’re looking for but we are going going to change it but now over here it’s top left so you can change it to bottom left okay then that would be a quick change and over here bottom right okay and let’s go ahead and save it beautiful so with this we actually looking very close to this wonderful okay so now this one looks like uh this one over here here and we do see that we have an extra space over here this this dots and this two circles over here actually it may look scary but in fact we can draw them easily now we already have this two containers right so between these two containers actually we can get another container and uh we can give it say for example give it kind of height say give it height 20 okay now let’s save it and you see that it came down and uh it’s like it’s going to work but yes we do have a problem over here so what we could do say change it to eight all right now uh the Overflow issue is gone so looks like we are able to separate this to container using a different color Mark right uh that’s what we have seen over here let’s save that this is gone and now if we put it back we say there so in fact this is the same exact logic has been used over here so what we could do now we can go to our file let’s see F Styles this one and then you can create a new static color let’s go ahead and do that ticket orange so you’re going to create orange color orange and then const I think I have the color here let’s put that so this would be our new color now let’s come over here inside this container and over here we use this kind of color but actually we want to use app Styles app Style do we have this okay I’m going to copy this and put it here type cannot be okay actually we were supposed to get that orange to get orange okay most we need to remove this save it and we see that the color is exactly the same now let’s put a con modifier over here it’s gone now in fact over here if you do assign color then you can do app Styles dot not primary but we can do ticket orange and you’ll see that okay we have this one right now it looks like same as this right which means that it’s working so let’s go ahead and keep working on them and after that over here actually all we need to do we need to create uh some items over here and how we are going to do that now if you see and look at this layout so we have this and then we will have layout Builder and then this one so let’s go ahead and build that so now here we understand that so this is going to be a row layout right so here we could do child and row and in the row of course we need children otherwise we’ll get issues sized box this one sized box and uh keep it as it is for now and then give it a height so here actually move the height to inside the sized box we don’t need this and then okay what else here we could also do width WID is 10 now let’s save it and what’s going on on over here because actually here we are going to create a circle right so we have the sized box and then here we could do child and inside the child we can use decorated box so once we have this widget decorated box and we can color them all right let’s see what’s going on so it says you need decoration okay so first we go ahead with decoration and the issue should be solved and over here we are going to to assign decoration so let’s go ahead and do that box decoration and inside box decoration we do so let’s go ahead and check the color first okay so here we want to do a color so what I’m going to do here first for now I’m going to use colors. white okay now let’s save it and here we already see that so now our sized box is working but our point or Target is to make it a turn it into a circle now box decoration over here actually has a properties where it says border radius so here instead this we are going to use border radius so let’s go ahead and do that now here we can do border radius and that we can do only over here because we just want to apply Border in two places so top right over here at the right and here we could do radius do circular and then let’s assign 10 and you see it already changed and at the same time over here top we can say bottom right bottom right this one and radius do circular and then here we can also do 10 again now let’s put a const modifier and put it here and we see that this is almost look like it’s working as you can see over here right so looks like that okay the it took effect and I know there are some tiny differences so we’re going to fix them later no problem now this is our sized box for now and uh I do believe that we can turn it into a reusable widget okay so I’m going to copy this thing over here let’s go ahead and copy and find it here and insert this widgets over here we can create a new file and uh before we had Big Dot so here I can have big circle dot Dart let’s go ahead and add that and then here we can create a stess class and we can say big circle clle now let’s go ahead and import the library and we can just simply go ahead and remove that and put whatever we had already and go ahead and import for this one remove this package we don’t need this one all right now we’re going to come over here uh let’s go ahead and put a const modifier so so what I’m going to do I’m going to actually delete this and then here I can just say big circle and save it you’ll say there and and if you have two of them okay you can save it and we’ll see that they’re together but now you may try to use expanded widget expanded and then here you can use a empty container let’s go ahead and check that and we’ll see that it should work I’ll remove the const let’s save it and here we are but now this circle has a problem because the decoration itself the Border you see that the border is not showing here correctly so what do we need to do we need to set up them differently the Border over here we need to work on a different kind of setup so what setup we could do we can come over here actually we can attach some condition over here okay so we can just simply talk about left and right okay and if this is new to you don’t worry I’m going to make it easy final here we can say is you can name it anything so I can say is right okay I’m going to say it’s is it on the right side or left side this is the meaning so it’s like a flag now here we’re going to add this one but we are going to have it as required we must have it okay and and looks like uh what is it uninitialized okay we can ignore that one now over here actually we can check so we going to send a value to it okay so we’ll say is right is right if this is true okay maybe I can do like this this is It’s called tary operator if this is true then we use this okay otherwi wise then here we can copy it again we going to put it here and uh let’s see what’s what’s going on inv valid const so we need to remot the con itself and then we can also change it here is write true then it would be shown over here okay is left true it would be shown over here here but how to do that if it is right true then actually you don’t want to have border uh outside you want to have border inside okay so this is where we are coming so is right true then over here instead of top right we’ll have top left okay top left and instead of bottom right we’ll have bottom left okay hope you understand the thing that I’m trying to say okay now we have an issue what is the issue we need to pass it from here as well okay so here we’re going to say is right so is right so the first one is this the right one or left one so this is the left one so we’re going to send false now over here it’s the same thing is right the second one should be the one on the right over here right now let’s go ahead and save it okay and we already see that it changed all right so now over here actually we have used Turner operator to work on this now more on Turner operator and this thing in next lecture okay so now we are going to learn about turn oper this one that we talked about early before that let’s go ahead and do a little fix over here like over it says that and uninitialized field should have an explicit type annotation so here this field is not initialized what what do you mean by that that means that it doesn’t have any Direct Value over here like say anything like that so this kind of situation it says go ahead and do a type so we assign a type to it and that’s called bull okay and now you see the arrow is gone so that’s the correct way to go ahead and work on this thing all right and then and we also talked about that we’re going to see tary operator now to work on tary operator let’s come come to our main uh main function over here and then let’s re clean this things so we don’t need this all right so in general uh here this question mark and Dot is called tary operator okay this question mark and this I think it’s not DOT actually it’s called colon so that’s called tary operator so we are going to use this tary operator now how it works okay now it is used for conditional statement for example you can say int x equal 10 okay all right now I declare a variable and then I can do over here if x = 10 print he is a kid all right and then over here else we could say that print he is not a kid just an example okay now let’s go ahead and run this so here we’ll see that um is going on so let’s go ahead and print it okay so he’s a kid right that’s what it shown over here now what if I don’t pass 10 or what if I pass 12 okay well he’s not a kid this one gets executed right now of course this is a basic uh else if or if else statement but now there’s a easy way to work on this we can do like this x = 10 then here we say print a is a k and then we could do like this print he is not a kid now for now I’m going to comment this out and we’ll see that exactly the same result is not a kid but if I do this here we’ll say he’s a kid so this if else you change it to this question mark and this colon so here is your question mark and here is your colon so you can use you have to use them separately actually so this is called tary operator okay well even though it looks like uh it’s very simple and yes it is simple but it could be very powerful and that’s what we have seen over here now inside this over here we have set up a condition so this is the condition actually if is right is true then we show this border radius otherwise we show this one this is just exactly same as this okay so hopefully it makes sense that how Turner operator works now using tary operator not only you can print or do some conditional check you can also return widgets okay which we’ll see a lot more very soon that we have a lot of conditional uh variables then we can use this Turner operator which means this question mark and this column together to make sense out of it okay cool so hopefully with this your idea about Turner operator should be clear now let’s go ahead and move on so this time we going to come over here one more time so that’s what we had and I guess we can add a const modifier and same over here all right and at the same time let’s format the code all right now with this it looks good okay so now of course we need to change this one over here this doesn’t exactly have to be the same um as you can see but so the next thing is that we are going to show this dot over here right remember we already have an app l Builder if you see come over here app layout Builder so this one we can pass this one for now right and how do we go ahead and pass this thing okay cool uh let’s come over here we can close this ticket View and then we have this container right and then we have the other one for the bottom part so here here we go we have this row right and and then inside this we have this one so this is creating the space between these two right so we just simply go ahead and remove this and then here we can call app out Builder widget and then here I think we have a variable which is called random divider okay now I’m going to put as 10 over here all right and let’s go ahead and have it okay have this const I think over here and now let’s run it and here we already see that we have this uh dots they showed up right okay now let’s C here this app layout Builder now anyway so what it does so this gets the space between these two dots right and I mean this two circles and then divided by this one remember this constraints do constraints width this one gets the space between this and this then whatever we pass gets divided and that’s the number of wiet right so here this value the larger it is the smaller this value so fewer the generated list hopefully you understand so this value the more or the larger this is the eventual result would be smaller right so it means that list to generate over here value would be small over here with the 10 we see like this so how about double it go ahead and do 20 okay now we do see that okay here we have well few of this dots but now there’s this problem that what is the problem you see this width is actually hardcoded right we don’t want to do it so how do you want to do that okay so here here we could do final int okay here we could say with just go ahead and do that and then over here we can say this dot width now we don’t want to make it required as you can see already it says here you make it require but we don’t want to do that we can actually give it a default value value default value is three okay once you make it required you have to pass it but then if you don’t want to put required then of course you remove that at the same time you give it a default value and what does it means it means when we call this class if we don’t pass value for this it’s going to use three and this is exactly what it is doing over here now we are just passing random divider this value value which is this one but we are not passing anything so it’s taking as a three over here but here actually we want to have it a different style so one thing the other one actually you have to also assign to it with okay and let’s see what’s going on okay so we need to remove uh value so this one right and let’s see what else we have in cannot be okay so here it say this double then what do we do we assign it as double and then we are good to go and then here we go so whatever the value you pass that would take effect and if you don’t pass any value this value over here three would take effect over here okay and that’s how it works okay cool and let’s restart and of course we’ll see no changes because that’s expected let me go ahead and reformat my code so that you guys know actually what I’m talking about okay okay so just like this now over here we want to pass withd so here let’s pass withd and this time for this one we want to pass Six okay and then let’s save it and we do see that they got much bigger right so that’s how it works and then how about say eight okay so that’s how it works now one thing you could do here we can do 15 or say 16 and then let’s keep it six okay which is much better well so this part so far so good and this exactly looking like this one over here and we are happy about this one okay okay so now let’s go ahead and continue to work on this so what’s the next step Next Step would be doing something like well uh this but looks like our app is not running so now we want to change this text over here okay so that they look similar okay by the way now you may look like that um here it’s small here it’s big that has to do with the screen and resolutions okay uh if you run for example I’m running at iPhone 14 this app we run here it would look small and if I run this app over here the screen would look bigger so you can always ignore that okay all right so now let’s go ahead and move so we need to be here inside our ticket View and so far will have three containers on our ticket view so let’s go ahead and locate them um okay so that’s the first container second container third container so let’s uh put some comments otherwise it’d be confusing okay blue part of the ticket and then circles then over here we’ll have orange part of the ticket beautiful so this is the place that we want to change all right make sure that once again you find the correct one and then how you want to change now I’m going to put it here so that I know what I’m changing so the first one is the day so it should be uh first of May all right and then over here uh second one now second one here we do see that we have this big dots expanded widget L and that but in fact we don’t need any of this so I’m going to keep them as it is uh I’m going to change them later so let’s go ahead and change one by one okay so that’s the uh text that we have changed all right and then this one should be date so let’s go ahead and change to date they right and then this this one should be here like 0800 am okay and what else after that so now this one over here should be uh let me see am I doing it correctly so this is the first row May okay so I missed that so this one should be here okay so there’s a bit of um mismanagement sorry about that so this one should be uh okay this is date this is correct and then this is correct as well and then this one is uh number okay okay hopefully I’m correct now let’s go ahead and save it and let’s take a look and compare yes we are correct apart from this one okay well there are some problems we’ll fix them don’t worry and we also have issues with the text some of them are big some of them are small we we’ll fix them no worries okay all right so now how to fix this one now for this one actually uh here okay what are we going to do we can remove this too we don’t need them and then I can copy this text any of this and then I can put it here and uh here we do see that 08 am right so we need to I I think we have a bit of mistake so let me go ahead and fix that so here actually it should be O8 sorry about that uh am and then over here this one should be departure time de departure time let’s go ahead and save this and now we see that okay now the text are all correct right so we have two problems one is first the layout problem and then we also have the size problem let’s go ahead and fix them okay so currently we are having some issues with the style and layout so let’s go ahead and fix that the first problem is this this text would be actually smaller than this right now they’re all headline three as you can see so that’s what is causing the issue so we need to change that now to able to do that first let’s come over here app Styles file and we create a new text okay so let’s go ahead and do that and we’re going to keep it here and we going to call it headline four and then over here we’re going to have 14 okay so now let’s come over here make sure that you change correctly so here instead of uh not this one over here instead of three we’re going to have four here is the same four and here is same now let’s go ahead and restart and we do see that they have actually uh become smaller but there is this alignment issue right now what’s the alignment issue you see here it’s a little over to the right but it’s not centered now making it centered is possible for example say over here you have a a now here BB and say where here you have CC now they are centered perfectly well but the problem with the earlier situation is that they don’t have enough they don’t have fixed width like this text the spaces takes is different than this and this they’re kind of all different okay so that’s why it’s difficult to center now we can use a trick to do it we can give them a fixed width especially the last two middle one is okay because it’s still it will stay in the middle so if the first one and the last one we can actually give fixed with this would autoc centered okay we don’t understand say for example here we say a a a and here we do BBB let’s go ahead and save it and here see that they’re all currently aligned and centered right so the important thing is the first one and the last one we need to give fixed width and how can we do that now over here we can wrap it around the widget and we’re going to wrap it around sized box widget and then here we can give it width say 100 and the last one is the same over here sized box weet and we give it 100 actually we need to do width and then we do 100 let’s go ahead and save it okay right all right but now this’s this other issue okay it’s it’s really not looking like that it’s centered like this one right this one is at the beginning of this uh widget right this a size box widget this is at the beginning and this is also at the beginning so what we want to do with this this one want to put it to the right side now inside this text widget over here we can use text alignment and here we can use a text alignment this one and then here we could do end we put we’re going to put it to the end now it’s perfectly aligned and this is what I Wasing talking about so when you see you have text in one row and the text themselves They Don’t Really uh get align and if you want to align them so you need to go ahead and give them fixed width and the middle one doesn’t really matter because as long as they have fixed width they can align themselves perfectly hopefully it makes sense all right so now let’s continue to work on this and in this lecture we’ll see how to restructure refractor our code a lot of the refractor would also help us to work on this now the first refactoring or restructure we want to do with this text because we do see that this text is actually being used in so we see that the text is being used in a lot of places so let’s go ahead and create uh different widget classes for this so we’re going to be here and inser the Base Class inside this widgets we are going to go ahead and create a new uh class over here let’s go ahead and do that and here we’re going to call it text style third now actually this could be anything so I’m just going to go ahead and name it like this so here I’m going to go ahead and do stateless and text style third like that okay now there is no hard and fast rule as long as it makes sense so you can go ahead and do that now how you’re going to restyle this thing so let’s go ahead and see now I’m going to copy this one first and then I’m want to put it here and then I’m going to replace this and that’s all and over here we going to go ahead and import it as a library package and the same over here let’s go ahead and import and with this opportun is not needed let’s go ahead and clean that now let’s come over here and we want to remove this and then here we’re going to say Tex style third so over here I’m going to have it as a package well we’re going to choose this one all right and then let’s put a Comm over here now well we want this to be dynamic so this is something that we want to pass now if we want to pass it we need to declare the variable so that we can go ahead and grab it in the Constructor so here we can say text and then this is something that that we also want to say requir which means you must pass this so here this do text and with this uh the arrow should be gone and then over here we’re going to go ahead and uh like uh just pass it down text so whatever the text value you pass over here uh you’d be able to go ahead and uh show it okay now now over here we’ll have an error so we can pass anything so here we’ll say ncy and YC actually so let’s go ahead and put a con modifier and restart it and nothing changes now with this it becomes simple as you can see so what we did here we created a class and in this class we can pass the text dynamically because we must pass the text and then uh that’s why we said required and now this is within this curly braces something with it curly braces this is called named parameters okay now if you do how over on this you will see that or if you remove that you’ll see the hints so let’s go ahead and see it so okay the named parameter text is required because it has a name so that’s why you have to give the name whatever the name is given here so if here is given text you cannot write here say string or you cannot write here as name say for example my computer so whatever the name is this this has to match this one or whatever the name is this it has to match over here all right now I’m going to collapse this so that it looks great now the same over here so I’m going to copy this and put put it here okay and now instead of this we are going to have L DN rester nothing changes but the code becomes more readable and clean okay and the same goes over here so I’m going to take this but now there’s this problem over here you see that uh the text headline is a little bit different right so I’m going to go ahead and uh one thing definitely I’m going to do I’m going to copy the whole thing over here okay in fact actually I’m copying the whole file and then I’m going to go ahead and create a new class here a text style fourth now the way I’m naming it based on the headline text okay so instead of third we’re going to change it to Fourth fourth okay let let me come over here and put it and that’s it now let’s go ahead and close this and over here ticket view so let me copy this thing and let me put it here now instead of third we say fourth okay that’s the only thing we need to change okay so this Things become quickly reusable okay this one I think we have one more comma and then instead of this here you want to say New York New York okay now of course we need to come over here and instead of three we need to say four otherwise we’ll still get an error and that’s it let me go ahead and close this uh let’s restart and nothing changes at all and over here uh put a con modifier so yeah that’s how things become very simple now luckily we can also take this one from here and then we are going to change it right and okay so here what are you going to say uh what was that early though I think it was uh 08 0 am and let’s put con modifier in front of it and it should be fine okay right now over here as you see we have this one but it got a new style over here which they don’t have first two right so if you just focus on this one but what we could do we can actually assign a style to it okay so here we could say uh final text align okay this one okay and then here we could name it anything align and then over here we could say required or even we don’t need to do required now this time it’s align and then let’s give it a default value so here text align do start so if you don’t pass any value this is going to take default value and when you put a default value you don’t need to say required keyword over here because well it’s already given a value default value so if you don’t pass anything it’s going to take this one now all we need to do pass this value over here align so here we’re going to say align and then let’s see what’s going on okay I think we need to do text align okay now it would be good so the property so the idea is we may pass the Align property if we don’t pass we’re going to use start okay and whatever you pass that would also take effect okay so let’s go ahead and restart and definitely we’ll see no changes at all no changes at all okay so uh that’s it by the way I think um let me go ahead and copy this just let me make sure whether I made a mistake in terms of text over here I don’t know what text was there oh there was 8 hour 30 minutes so that’s the one that we want to pass 8 8 hour 30 mean so 8 hour 30 mean all right let’s go ahead and restart okay so back to it or 30 m all right but nothing else changes and regarding this one once again uh we can copy this and then we put it here okay let us remove one of them and then over here it should be London right let’s go ahead and put London let’s hit it okay now we see the problem because right now it’s taking the default value over here start but then we can pass a value so you can have the uh parameter name which is align and then here we can pass text align this one dot end okay so let’s go ahead and restart and we’ll see it would fall back to our original design and then over here we’re going to put a con modifier now with this the code looks much simpler right as you can see so whatever we are passing uh it just does look more simpler than anyone else now one could go ahead and also put uh new or create new widget using this someone could do that but I just keep as it is okay all right so with this this part has been done so in our next lecture we’re going to go ahead and work on this one all right so now this time we need to go ahead and work on this and of course this looks like a mess now earlier we have given fixed size to work on them now the problem is these three text are very different so giving fixed size could overlap each other so that solution might not work here so we’ll take another approach actually which is also a way to learn about layout okay that how we can in different situations we can design different kind of layout now over here this layout we are going to change and we are going to do it in a very special way and and how we are going to do that so let’s first come over here and over here okay right now what I’m going to do I’m going to go ahead and comment this out okay that’s the first thing I’m going to do and let’s keep it is as it is and then at the same time I’m also going to actually comment all this out and of course that’s very weird where we are doing all these things right okay so now this two text actually I can wrap around another widget well okay just think of column first so I’m insert column and then I can create another one and then over here I can go ahead and save it and before saving we can go ahead and change the name to date let’s go ahead and save this and that’s what we see and exactly what we had early with our other app well looks like I closed that simulator but anyway so you get the idea and then inside this we can actually create size box and give it a height five and this is exactly what’s going to work work and all it needs a con modifier let’s let’s put this let’s save this and this is exactly what we wanted just like earlier and then of course here I think we had date okay and at the same time this one 1 of May could be replaced by text uh I think text style third this one and then the text was first I think that was may just like this and let’s put it like this and it’s going to work so it’s working right and it looks simpler with this so I’m going to put it here and then over here we are going to say date date okay right so yeah now it became much simpler right and let’s get a con modifier now that also means for rest of them we actually want to repeat this thing and so that means that we can just copy put three of them and done but it rises a more questions about I mean it it it does create a bit of problem let me go ahead and put and you know what I’m talking about so the first thing of course they’re very close to each other okay now if I have a layout like this over here of course I could go ahead and change it to main access alignment main access alignment dot space between all right okay but the earlier problem was as you see that if it’s the beginning that’s okay they’re all aligned but when it’s at the end over here they it’s look it’s not aligning it’s still aligning from the top right so for this one over here actually we can use uh alignment uh that should be horizont uh vertical actually uh sorry horizontal alignment in that case that would be cross access alignment and cross access alignment do end and you see now it align just like this right okay cool and how about this one so this one this two should be centered over here we could do cross access alignment and uh cross access alignment Dot Center we can do this and uh let’s restart okay so they are already centered but it doesn’t look like but if you do have a big text over here big text and you’ll know that it’s a center and that’s what I was talking to perfect alignment so this is a better approach and going to work with like Advanced concept where you want to align different kind of stuff okay with different kind of text and this works this always works okay now here one thing we have found that this process is repetitive so what we could do we can go ahead and create a widget over here and here we can just simply go ahead and call it uh app column uh text layout do do okay and then over here we can do app column text layout the name could be as long as it Mak sense to you all right okay so now copy this and we’re going to put it here and then let’s go ahead and import the dependencies and most probably we can put a then here we can say app column L text layout okay but of course the the problem is we we still need to pass the text right so right now it’s hardcoded but we want to make it Dynamic then here we do final string top text final string uh bottom text like this and we want to make them required so here would say required let. top text required this do bottom text it’s going to work and then over here this would be replaced by top text top top text XT it should work let’s see what’s going on so here we have this const thing remove that and it’s going to work and here we say bottom text and it’s going to work as well okay now of course here we’ll get an issue because now it’s saying okay you have named parameter or I mean it the Constructor needs parameter over here but you don’t have so you need to assign that here I need to say top text first May and then over here bottom text is it should be what was it date okay now this is going to work and which means that over here I’m going to just replace them but now this may cause the earlier issue alignment but we’ll fix it but you see how we work step by step let’s save it okay now if the text is Big it’s still going to cause alignment issue if you see okay now if we have alignment issue it may cause alignment issue so here we can also do final cross access alignment and align me this one and we pass it here with this we can actually pass uh required you can make it optional if you want alignment okay and then push the alignment here so here we’re going to do cross AIS alignment to alignment so whatever alignment you pass it will take that one so the first one over here we are passing alignment and here we’re going to pass cross AIS alignment. start so let’s go ahead and copy this put it here second one we know that we are going to do Center and the third one we are going to do to the end all right let’s save it and now they’re all perfectly aligned so then in that case what’s our job our job would be to go ahead and copy them just uh pass uh I I think uh what was it so this is I guess one of the text over here I’m going to pass it down and I think that was uh what is the text let me go ahead and check that from here departure time so I think that was the other text and it should be here departure time let’s go ahead and save it beautiful and and over here there was 23 so it should be 23 what is the last text number so that is actually most probably the sit number so let’s go ahead and put it and beautiful okay now you see how they Auto align everything automatically and this is the result that actually we are looking for and that just works perfectly okay okay anyway so now after this that means that uh we can just simply go ahead and remove this things we don’t need this our code is clean and readable so over here this this all the things we don’t need okay so with this actually we are pretty much done drawing our widget and uh working on this clean beautiful layout okay now if you do want actually go ahead and further separate this and this to a different kind of classes and just call that class with the given arguments if you do that make sure that you are passing this things anyway so uh after that we are going to go ahead and focus on Dart concept so far it has been front end a little bit of Dart concept so next section actually we are going to learn more about our Dart concept and how to load this thing from Json file which would be more like API response so this is where we are going to focus and then of course that Focus would be step by step first we’ll learn what is Dart list and map we’ll give a lot of good examples and then we’ll dive into loading them from our local storage I’m going to do this thing in this browser over here so just go to D pad. Tab and there’s this browser and and it’s a DOT language pad where you can practice your dot you don’t have to install any compiler to work on this all right so first over here we are going to create a class and we’re going to call it test the class name and over here I’ll have variables so here I’ll say int x z and int y say minus one it doesn’t really matter and then here I’ll have uh Constructor and then I’ll say this.x this. y so which means that well um when we call the Constructor this one we have to pass this X and Y value even though there’s already one but when you create an object of this we have to pass now how how do you do that so here we’ll say test T equ call test well Z and 10 it doesn’t really matter now I want to print the T T.Y value so that’s what we want to do and now if you see and come over here hopefully it would work well looks like it’s a bit slow over here so uh I’m not sure why it is slow though it is supposed to yes it printed the value which is 10 even though the earlier initial value was minus one and then but we were able to change the value okay and after that like for example you could also do like this T 100 okay T.Y so we are we are creating an object first and later on we decided to change the value and uh actually changing the value takes effect as you can see over here right so this is the basic and general way of creating a Constructor first you create a class and use the Constructor to create an object and if you want to change the value you could do that now there’s another way of doing like this working like this I wouldn’t say doing like this okay all right okay so over here first we had this test now I can create a class called result it doesn’t matter you can call it anything here I would do a little bit different one so here I say final x = z or just final final int X X final int y all right and then over here I would do result this dox this doy all right just like this now here you see there is a difference so over here we are saying we are using this final modifier and of course at the same time we are not assigning any value over here so all right so this is what we have over here now what’s going to happen is like this so let’s go ahead and create a result R I’m going to say and result and then pass zero or like say 10 okay let’s do something different 20 like this and then print r.x doesn’t matter okay now let’s go ahead and print it well definitely at first to will see t y500 and RX which is this one now what I’m trying to prove over here well you see okay the first thing over here we created an object well at the beginning for test itself with this value right X and Y and when we created this value actually when we created this object we changed the value well the first one we didn’t change but if you want you can second one we change to 100 and then later on we again changed it right if you want actually you can also print it here print T.Y so with this we’ll first see tal 1 uh y y = 10 and then over here we’ll see that y equal 100 because the first time as we are creating the object whatever the object we created and we can print that object field value which is this one and later on we change the value and then we print it again and we this is what we see this is 100 right but now let’s go ahead and see what happens in terms of this result now so far looks like everything is same so over here we created a result instance and we get this x value what is x value x value is 15 and that’s what we see over here now you do see that um here if you try to do like this r.x equal say 300 or any value and you will get a compile time error which means over here we have an error why because this FS uh you see over here X and Y we have assigned them as a final now what does that mean that means that well you can use this value to create an object that’s fine but this fills X and Y you can only assign once per object so here we created this object called R and as we are creating actually we assigned a value and uh we can print that but once you assign value you reassign value you can’t do that so what happens with final modifier if you have have a final this keyword in front of a variable in Dart or in many other languages actually it means that you can only have the value once you cannot change it again you can only assign the value whenever you create the object which is very different from this so over here we don’t have any final or anything like that and as you see for this reason you can can change the value anytime anywhere you want and that’s what we have seen we have changed the value over here but this one we can’t because we actually have SN value and we say it’s final which said which means that we are not going to change the value once we create an object so you cannot do that but of course you could create another object so here result say RT result now here say 33 or 400 doesn’t matter of course you can create new object again and print RT do X so this time we’ll see that it’s printing 30 so yes because there is this Constructor because of this you can always create more objects but as you create you assign the value and after once you assign the value actually you won’t be able to change it again so that’s what here final means and if you have final Fields actually you can also put const in in in front of this Constructor but so which says that actually even if you don’t put I think it works the same saying that okay I’ll create this object but once I create I won’t be able to add it or modify or nobody’s is allowed to edit or modify so this way creating object is called immutable object so over here whatever we are creating from result it’s becoming immutable immutable means not changeable the fancy name the name is very fancy it says immutable but it just means not changeable but this way we create an object this is called mutable which means which is changeable now over here let’s see you try to put a const over here and here you will have a problem here it says that can’t Define a con contractor for a class with non-final Fields right this fields are not final if it’s not final that means that they are changeable so if you can change them that means you can’t have const here so in Dart and flatter if you put a const before a Constructor you have to make sure that these fields are all final otherwise it’s just not going to work which means that you have to have final keyword in front of them that’s what it says that now in general most of the time this is more welcomed and more convention because this is safe it’s really safe because once you create an object you can’t change anything or any value that becomes less buggy less error prone which is really good so try to do this whenever possible all right so yeah that’s how the immutability final const uh modifier Works in Dart all right so since we have this basic understanding how this final const modifier works so we’ll go back to our flut wrap and we’ll see okay so after learning Dart list and map a little more now we can go ahead and build something better and stronger this time we are going to go ahead and uh create a new well I say that over here inside this base over here I’m going to create a new directory and I’m going to call it you tails and inside this I’m going to create a new file and then here I’m going to call it app Json dot Dart just like this okay and okay so that’s the first thing and inside this I’m going to put this information now this would be given in the resources section you can go ahead and grab that all right so what’s happening here uh first Analyze This things we see that this is we have a bracket like this so we know that this is a list okay now inside the list we see that we have curly braces as I told you if once you have curly braces that corresponds to a map so from this visual analysis we see that we have a list and inside list we have map now that’s what exactly we wrote over here we have a list and inside list we have a map the map itself we also said the type okay so the map here value is string and then the sorry the key is string and the the value is dynamic so if this is a map over here if this is a map then what do we say well actually even before I go there let me show you a little more that what I’m talking about okay so this is a list and inside list we have many Maps so we say that this is uh list of maps hope you understand so there are many Maps here so if there are many Maps we want to put it in a list okay so that’s how you go ahead and process them so we say that a list of maps Okay the curly braces are all maps right okay cool now if we see each map now this is one of the maps and if we see each map we’ll see that here we have keys so [Music] two uh fight time date departure time number so these are all the keys and then for each Keys we have values now for Value itself we see that there is another map but here we wrote a dynamic so it could be anything now here there is also another map okay but here we don’t have map for each key we have values values a string okay now the same goes over here for other maps and then how they’re structured inside they’re all same so now this is available in our app right now so the whole thing list of maps we call at ticket okay ticket list it is a list right once again it is a list so we call it ticket list so remember this is a list of maps just general English learning okay hopefully it makes sense and since we are ready with this now we can come over here in our uh home screen and if we if we see in home screen we have ticket view okay for now we have only one ticket okay well then if we want to more ticket horizontally how to do that well we can wrap this around a widget so let’s go ahead and do that we’re going to wrap this around the widget and we’re going to call it single child scroll view single child scroll view this one now what is a single child scroll View if you have too many children like over here this one we have uh lot of children right let me show you what I’m talking about so this is a column and inside the column we have a lot of children one of the children is zow sized box container and app double taxt things like that and then we see that we also have ticket View now when you wrap ticket view inside single child scroll view it’s just going to scroll this ticket view it’s not going to scroll others okay because you just one scrollable item okay so that’s why you say that okay go ahead and just scroll this child okay and leave the rest as they are so that’s the first first thing and then over here uh we can do scroll Direction okay we want to scroll horizontally so here we do access. horizontal okay all right of course so far we have only one child so you I mean you won’t be able to really scroll it because nothing to scroll here you see actually there is literally nothing to scroll I think my app is running okay so since there is only one child uh we cannot scroll it what I’m going to do I’m going to have another child over here and that would be row wiget and inside this I can have things like this okay so now here actually I want to scroll this row so that’s what I’m trying to say so now go ahead and put say for example another one so have two of them and here we see that we can scroll already isn’t it beautiful okay now if you have just one you cannot scroll them okay so you need something where you can put more children so what I’m trying to say whatever you put inside this single child scroll view as long as the children inside or the child inside there’s a longer more than the width of the screen then it’s going to scroll okay now of course right now there is nothing on the left and right no point of scrolling why we put row because we want to put a lot of them next to each other and now one might say why you just don’t directly go ahead and put the row over here all right someone can say that but then you see that we have overflow issue because row widget is not supposed to scroll to make a row widget scrollable you need to wrap it around single child scroll view okay so that’s how it works remember again to make a row widget scrollable you need to wrap it inside single child scroll view actually the same goes for column if you want a column to be scrollable you need to go ahead and uh uh wrap it around single shell scroll view now we can actually go ahead and oh we have this one already but of course we don’t want to rate it like this we want to rate it from our list okay we don’t want to have two tickets of with the same information these two tickets they have same information so what do we want to do now to go ahead and load this information and okay so for this one we actually need to remove the list over here here so here we are going to introduce the list variable the one that we declared which is ticket list this one and this is a list so we can take some part from it so we can we just going to take two of it and then we access the map of it so remember we have a map right and we give it a name as a single ticket and inside this we’re going to return ticket view okay so let’s go ahead and do that here we say [Music] return ticket view this one and that’s it and of course it will show an error because row needs a list remember children is a list but what happened over here remember this one just became a map earlier we have seen in our other example that whenever use this map function it becomes a map so that’s why it causing issue and what to do then well in that case you need to go ahead and convert it to tool list okay remember earlier we had this and let’s see what else we have we invoked okay so we have a const expression let’s go ahead and remove that okay right so that’s what’s happening over here and I do believe that it shouldn’t be here okay right like this and then we need to remove that and actually we also don’t need return because this arrow means return okay so that’s how it works but if you don’t understand the arrow sign and everything else so here you could also do like this so here return and it’s still going to work okay um a lot of people prefer this because this is more readable and with this uh lot of the programming concept might not be very clear okay so what I’m going to do over here I said that okay I’m going to take the whole list and I’m just going to take 12 it convert it to map and from each of the map we take each of the from the list we take each of the map so remember we are taking each of the map so this is a map right what do we do we take the map so the map name is single ticket and then we’re going to do actually we’ll pass it over here now let’s go ahead and save it but of course we don’t see any changes but so far we have two items but now things can be more Dynamic here we can have three so we’ll see that we’ll have three items uh okay as you see we have three items but if you remove that most probably we’ll have all of the items uh let’s go ahead and reload and here I think we’ll have five or six items as you can see and the screen become beautifully scrollable and in fact it does look beautiful okay with everything uh sitting together so that’s what we wanted to do of course now the problem is once again this information all are same but if you see the Json the Json information inside they’re different okay uh so like here New York DK Daka New York like that you got my point so that’s why we take each of the map once again each of the map is the map here each of them and we are passing so in fact we need to pass it over here okay here we can say t K single ticket now this is going to throw an error so let’s go ahead our tiet view class over here and then here we could do final map uh string Dynamic and we’re going to call it uh what is it ticket we can just call it ticket all right and then of course then we’ll have issues over here so here we’ll see this the required required this do ticket okay I think we have a type over here dyamic okay now if you come over here of course the error is gone now what we did over here we are P passing each of the map to this ticket view that means we are passing each of them each of them and we are doing that in a loop okay so row is also like a loop actually you have to understand okay now okay so we can grab that information and not only that this time um we can access the ticket itself and where to access them so this is the first place that we want to access so we want to access this one okay ncy now remember in our place we have to access code from and then code and then we’ be able to access this okay so how to do that let’s go ahead and try it ticket view so here I’m going to remove this and then here I’ll say ticket and here you’ll say from then here you will say code and uh let’s remove the coner here and let’s start beautiful now you’ll see that immediately this one changed everywhere remember this is ncy this is DK and this is another DK and ncy I mean now they’re a little bit different right because I’m loading the data dynamically from here but of course some data is are repetitive and that’s okay you but you get the idea right so that’s the first thing that we changed over here and that’s the beauty of loading from Json file okay now this one over here this one okay uh let’s see what what code we have so it’s called two code two code so we need to have that one once again I went to the wrong place so here ticket to code I need to remove this okay and what else okay so New York right so I do remember that should be uh ticket [Music] from let me see the Json file over here it’s called a name from name name so here we’re going to say name all right and I do believe we need to remove const one more time error should be gone okay and the this one so I’m going to copy this and put it [Music] here and then from a should be two name let me remove this okay right but of course we don’t have any changes but we’ll see that Dynamic changes are here on this ticket we know that there isn’t much change but here things are changed as you can see DK Dhaka aset Shanghai right now by saying that one which also means that actually we can change flying time date departure time number and that means that actually we need to come back to this one so we have this uh okay so this this part is just for Ticket icon let me put a comment over here ticket flying icon all right and then from name okay so this one right so let’s see what is it flying time so we call it flying time I’m going to copy this and come over here and remove this and ticket flying time let’s remove const it’s gone beautiful and so that was this one but okay the flying time I put the same over here but I can change it let me go and change the second one okay I think the second one has already been changed so let’s restart the T our uh app yes now here we see that 4 hours is 20 minut so it’s working cool so we are loading them dynamically and what else so over here the same thing uh and what is okay it’s a date and departure time so I’m going to copy this I’m going to come over here so so the first one should be there’s a date let me go ahead and check yes date and uh we do have an issue to remove the cons from here okay right and then this should be departure time ticket departure time it should work and and the last one number so I’m going to come over here indexes ticket remember how we accessed early in our example so if you have a list a map you can always use the keys to access the values and it looks like we have a bit of issue ticket number okay right so this is an INT and here it says the int cannot be subtype of string so we are passing int but this one accept strings over here this top text if you go and check top text is a string but we are passing int so this is an INT so how to solve this to solve this issue over here we can convert it to string and then the arrow should be gone and beautiful and right now all these things are all dynamic as you can see and beautiful so with this actually our ticket part and dynamic loading from Json is done but of course this is still dummy Json data in future we’ll see how to load this even from server okay so these are step by step and the way we work okay so but we are making progress all right now we’ll go ahead and uh work on our view all sections okay because earlier we just showed two items from the ticket but now we want to show all of them and we want to do them in sense of by clicking here okay now if you do remember where is this coming from this is uh coming from here app double text and uh we see that here we have this on tap function here we could go ahead and print something like this tapped all right and if we do see our terminal okay let’s go ahead and uh see the terminal and click on this and we see that here it shows untapped so that’s okay as well now what are we going to do we are going to actually create a new screen over here okay all right so inste the screens over here we are going to create something called all tickets dot Dart so let’s go ahead and add that and uh I’m going to hide it looks like it’s not hiding okay dead and then here we’re going to do state class class we’re going to call it old tickets and let’s import the necessary dependencies so this is what actually we want to call okay now let’s uh come to this class over here this one and we have this app double text so the thing we want to do we want to actually call from here right we want to call from here and how we are going to do that I mean when we click this button then this should go ahead and call this one right and how we going to do that now there a this would be a stepbystep process so first here we can use something called navigator navigator navigator dot well just go ahead and push that thing all right now I wrote this one because actually I wanted to pop up me a snippet of code over here and that code actually we are going to use let’s see what part we have now here you do see that Navigator push context material page route Builder build context and you pass your uh page of screen so here I’m going to copy this but it’s not always easy to remember and I’m going to push it here all right and you’ll see that we’re almost good uh let me go ahead and uh here we can call all tickets this one and the arrow should be gone and let’s go ahead and run our app okay let’s click on this and we have this uh screen over here uh so this is actually officially we did our first routing now the problem with this we cannot go back unless we restart our app so now let’s come over here the first thing we want to do remove this and use a scaold scaold fold because we are we need to go ahead and uh go back to the earlier page when we click on this okay so that’s why the skaffold comes in because we can get the app bar property from it all right and uh let’s save it okay and then we can easily go back so if you want to go back and forth e scaold e can definitely help you otherwise it’s difficult but of course there are other ways to do that all right now let’s focus on this thing so what we did over here now this Navigator is an object actually this object has to do with navigation navigation means going from one place to another right and then here we are using this uh push method now this push method what it does it pushes a new screen on the stack so as you can see this is the new one actually it had this one the idea is when you click on this it’s going to push something new this is the new this is the new UI so that’s what it did over here so it pushed the new UI on our uh screen over here this is where navigation do or Navigator do push comes and play so here we are going to broaden our understanding of this Navigator and push and how they work together now let’s hover over on this and see what it says that it’s a widget that manages a set of child widgets with a stack discipline so it’s saying that okay there’s a widget and it manages a set of child widgets okay so and that those widgets are like in a stack that’s what it says that and at the same same time it says that many maps have Navigator near the top of their widget hierarchy in order to display The Logical history using an overlay with the most recently visited Pages visually on top of the older Pages now how do understand this thing so here it’s saying that while many apps they have a navigator near the top of their widget route hierarchy so many app will have a navigator object or a navigator widget near the widget route now how to understand this one okay we’ll take a step and see how it works okay now here it says that using this pattern let’s Navigator visually transition from one page to another by moving the widgets around the overlay so it’s trying to say that well so you might have things like this where this is the root and at the root you will have routes like this and somehow they would be connected they would be in a back and here we’ll have the Navigator object and Navigator object would move them around on a overlay so there would be an overlay so you can think of like overlay is like the screen over here okay so Navigator object would move them around now that’s the basic understanding so let’s go ahead and learn more about it now let’s hover over on this and here there are different kind of API so our focus is right now here it says that mobile app typically reveal their contents bya full screen elements called screens or pages so we might have screens and pages and those are the ones that shows the content on the screen in flutter these elements are called routes and they are managed by a navigator object now this is where it’s happening over here you see so this is our Navigator object and here we have routes okay now this routes are screens actually in flut they call them routes but in many other places they might call it just like say screens or pages so that’s what it’s saying it says that when your user interface fits this Paradigm of Stack where the user should be able to navigate back to an earlier element in the stack the use of routes and Navigator is appropriate so here what you’re going to have like if you click on somewhere and go to a new page and then come back like this go back and come back in this situation using Navigator and stack makes more sense so that’s what it’s saying and of course here it says that on certain platforms such as Android the system UI will provide a back button and that will take the user to the earlier routes in your application stack so what is trying to say that so if this is your application if this is your Navigator and if you’re here then from here you want to go to route two so route two will have a back button over here if you click the back button it going to come back to Route One or Route One or in root situation but then in some systems like iOS they don’t have back button okay now in that case if you don’t have back button we can use abar to do that and let’s go ahead and see that it exactly says the same thing so on other platforms that don’t have this Bolding navigation mechanism M that use of an abber which we have seen before so we can use that one now here let’s continue to learn more although you create a navigator directly it’s most common to use Navigator created by the router so we can create a navigator which is this one we can create this and how do we get this here it says that actually it’s created automatically by router which itself is created on config fed by Widgets app or material app so the understanding here is well we can have a navigator object Navigator object would be created by router object or widget and then this router itself would be created and configured by material app now this is exactly what I’m trying to show over here so this is our we are in the root of our application and over there we will have material app and material will have route or route object or widget and then that will have Navigator object or widget and then this Navigator would help us to manage our stack so that’s what it’s saying now let’s continue to read the document so here it says that a material if is the simplest way to set things up the material apps home screen become the route at the bottom of the Navigator stack now let’s go ahead and see so here it says that home it becomes the route or default route so that’s why actually you see I wrote here home because home is actually automatically assigned to each material app and that’s stays at the bottom of the Navigator stack that’s what it says so this is our navigator navigator is a stack where things are on the top of each other and home stays at the root at the bottom so the root could be the bottom thing okay of course remember this roote and this roote they’re different this roote I’m referring over here the entry point point of our application and this route over here is our uh routes or screens the one that stays at the bottom now this one is automatically attached to this home property now of course here they have given an example and here it says that to push a new route on the stack you can create an instance of material page route with a builder function that creates whatever you want to appear on the screen so the idea is well we’ll have Navigator object now the Navigator object will hold a lot of routes like a stack but then when you want to show a certain route screen on the AP on the screen on the user screen or app screen then actually that’s need to be built that’s need to be that needs to be done that’s need to be worked out before we show on the screen so how does it happen here it’s saying that it happens through material pag rout all right now let’s go ahead and read it one more time so that it makes sense so here that’s what it says that okay to push a new route on the stack you can create an instance of material page route with a builder function that creates whatever you want to appear on the screen so we want to appear say for example something like this and then this needs to appear on the screen and to appear in the screen we need to pass the screen or whatever it is to this Builder function okay and then it will build the screen build whatever is there whatever element is there and it would show us on the screen so actually that’s how it works now hopefully after everything over here learning this it going to make sense to us and of course you can find this in the resources section all right so now after having a good understanding on this we can go ahead and actually code this all tickets this one over here and we already know that we have this e and within it over here we going to give it a title so let’s go ahead and give it a title and then we’re going to call it all tickets so here we say text toet all tickets and let’s go Ahad and put const all right and and after that over here we are going to have body so let’s go ahead and do body and um here we want list View and within list view we want children and then here we’ll have single child scroll view then would be our child that would be our column let’s go ahead and do that now if you see earlier one home screen over here you’ll find interesting matches okay so let me go ahead and collapse this so that you know what I’m talking about so that’s the container and there should be the first row container all right so just like this one we also have list View and single shell scroll view inside that we have row that’s because we want to horizontal scrolling but actually over here we want vertical scrolling so that’s why we are going to use column widget and that’s what we have seen over here so we have column and then inside the column we’ll have children go ahead and try children and then and we can directly access ticket list. map and then we can just simply passes by saying single ticket single ticket and just like last time here we can just simply pass ticket view this one and then single ticket and after that here we’re going to convert it to to list and we are good to go now let’s go ahead and save it and click on this and here we go so here we already see that our tickets are all available which we see and then of course the spacing the spacing doesn’t look like that it’s working well now how to work with this uh let me reformat the code so each of the T it over here is this one and we want to wrap this around something so let’s go ahead and wrap around a container Widget the reason we are doing container widget because we would be able to apply certain constraint with it for example like uh say margin so we can assign margin into it and add insets do only and then bottom say 20 now let’s save it and here we go so that part’s working and then now we do see that there’s this spacing issue right left and right is not working now if you do come over here and over here we do see that we are supposed to take 85% and then the contain itself on the right we are supposed to have 16 space over here okay now if you remove it to zero let’s see let’s go ahead and save it and now we see that it’s much better and they’re equal right now left and right but with this the problem would be here the to close and they connected so how can we work with this now luckily we can set condition over here so let’s uh come over here and then here we can say final bow whole screen whole screen and then here this is what we’ll have and then here we can also Define a value this do whole screen here is false okay okay so this is the default value and then how to work on this one so here we can check like this we can use a turnar operator whole screen okay if whole screen true than zero otherwise here we can use 16 and here we do have const let’s remove that and it’s going to work okay so the default value we gave it false right so it’s going to use 16 let’s go ahead and save it okay and if you go to homepage you’ll see that okay homepage is fine but now here it’s still uh not as we expected but what we could do this time here we can pass the value whole screen and here we can say true and it’s beautiful as you can see over here and everything is aligning perfectly so once again over here we didn’t do any kind of value passing for whole screen now for that reason over here it’s using the false value if it is false then we use 16 otherwise we go ahead with zero and it’s a beautiful match as you can see over here and the screen is completely scrollable so hopefully with this you understand how navigation works and how to work with this kind of layout all right so here we have this understanding of Navigator do push and we also learned that here we have this material page route which helps us to build a screen but now problem with this is that maral page route you always have to use every time everywhere if you want to go to and navigate to a new page which means you have to write this and you have to pass the screen there are two problem s with this the first problem is every time you have to write material pager out and second you also have to mention the screen now mentioning the screen is a problem because what if you want to change the screen then wherever you have used this one you have to go and everywhere this is what creates a problem now since it creates a problem actually there’s a better way to do this thing now if we go and look our earlier example like here we said that okay here we have this home route right and then Navigator actually maintains a lot of them lot of the routes in a stack now this Home Route actually we know that this has been defined in our main. Dart class over here and if you do come over here you see that we already have this one okay now to avoid this kind of situation the situation that already has arised look at this one avoiding writing this and this everywhere actually we can Define over here so we have this routes property over here actually and routes property takes a map and this is what I was saying early that we can put our routes in a map and of course we have learned what is called map right map has to be in curly braces and that’s what we see over here let’s go ahead and hover over on this and of course here we do see that okay so this is a map and here it says when a named route is post to navigator that post name the route name is looked up in this map so it is trying to say that while earlier we are over here have used Navigator do push to push a route on on our stack but of course now we can go ahead and use Navigator do push named go ahead and say this Navigator push named so instead of Navigator push we are going to use Navigator push named now with this we’ be looking them up from our map over here we’ll look the routes map routes name from this map using the name once again we going to look up the route’s name from this map using the name and that’s what it says it the route name is looked up in this map if the name is present the associated widget Builder is used to construct a materal page route that performs an appropriate transition including hero animations to the new route so it it means that it can do uh lots of other different things so here it says that well if you do use push named material page route is going to be called automatically okay it’s going to be called by widget Builder widget Builder will call it and build this material page out so we don’t need to pass it explicitly so this is what we are going to do over here now one thing you could do over here look at this so here we can assign a name and what would be the name well earlier we have said all tickets right so here actually we could do all tickets just like this and then over here we can pass the context actually we need to pass the context so it’s more like your calling a function okay in this case actually we are calling the widget itself or the class itself so all tickets okay and that should do the job and it looks like we have a bit of issues so here we need to remove this const over here here and it looks good let’s go ahead and Define it and let’s come over here and put a const in front of it and it’s going to work okay so of course one may say what does it look like why it’s like this if you do want actually here you could also do like this return and it’s still going to work okay so even before you call this class using this route name if you want you can do data pre uh data preprocessing preprocessing if we need to do anything but in our case we not going to do any of this so we’re just going to use this uh Arrow function to do it okay it’s called fat Arrow now we already defined a route over here and then so over here inside the this double text actually we don’t need this anymore okay we don’t need this and actually we don’t need any of this so here we can say push named this one we need to pass the context and then here we need to pass this one now if you do come over here you’ll see that we need to pass con context and a route name and the route name itself what is it going to be the rout name itself is going to be a string as you can see over here so that’s what we are going to do and then what do you pass you pass actually all tickets that’s what you pass and now with this it looks clean simple and that’s it okay so it looks very simpler with this right in fact if you want you can go ahead and take this and remove this from here and then we can just use Arrow function okay and look at this okay right it’s still going to work but since it’s an arrow function we don’t need this semicolon all right now let’s go ahead and restart our app from the beginning okay and remember our changes are here let me close others we don’t need the other files okay so our changes are here and over here right so we already restarted our app of course we don’t see any changes if we do go ahead and click on this looks like nothing is happening and let’s look it up so here we have an issue here it says that okay couldn’t find a generator for Route settings all tickets so the thing it’s saying that it can’t find all tickets this one the string over here now let’s see what’s going on here we have all tickets actually I think I have a typo CK ETS all tickets and now let’s go ahead and run it and then here okay it’s beautiful it works so the route is working and at the same time actually I want to remove part of this things over here we don’t need this still printing the log all right okay cool so now let’s go ahead and run it one more time and click on this and we do see that it works okay cool now let’s come back over here again now what about this one home properties actually so this is our initial property right so one one thing we could do here we could do like this slash this slash actually is equivalent to home and then we can take this from here take this and then we can pass context put a comma and let’s remove this let me go ahead and remove this and it’s still going to work okay and of course we don’t have any issue with this and we see that it works but of course you can’t have home and slash at the same time you’ll have error I mean you can go ahead and try you’ll have error so you can either only use the slash or home property and the rest of the routes could be defined over here so now here we also see that earlier we have learned map and this is where exactly actually we are using map to work on our routes okay now of course I think by convention you can also put a slash over here and if you do if you do that you also need to I believe need to put it here as well let’s go ahead and run and let’s click on this and we see that it works so it’s beautiful well with this we have deepen our understanding about route navigation and how mapping can help us okay now let’s uh come to the homepage remember earlier we said that this is a reusable text and we want to reuse it so now let’s come over here and put this uh and I think we can also put a little bit of distance so let’s go ahead and use it here and save it and here we see this one right okay so here we are able to see all the tickets right and let’s go ahead and change it change it to hotels that’s what we are supposed to use it but now of course if you click over here it still takes you to the ticket page what’s the reason the reason is over here you see that we have um this ontap event this is also called event and this is a hard coder right so whatever we call wherever we call this class from it’s the same event is getting called so what we could do instead of passing it uh making it hardcoded here actually we can pass it through our and now here we can declare something like this so here it’s saying that okay we are going to have a variable and the variable would be a function type of course that means that we have to pass a function and here we say that we may pass function we may not pass function I think it would also work without this now we of course need to have it here actually required uh let’s come over here uh required required uh this. funk all right okay now the idea is because you see early that we can pass a string right we mention the string type and we pass the string itself so we could similarly we could also pass function okay so here we are saying that we are going to pass function and then uh we’re going to call it funk okay like this as you can see over here we function Funk now in general the convention is uh over here you mention it as void call back like that okay now how to work with this so the first thing I’m going to do is I’m going to copy this actually I’m not going to delete the yes I’m going to copy this and of course here you see that we have issues because it wants more argument and what’s the argument it should be Funk and you can pass this one and let’s see what’s going on invalid con so const could be a problem so remove that and here it wants you to import this Library as a package and arrow should be gone and here the same thing we remove const and then we do Funk and we pass what we had okay and of course the thing is that over here um we are passing the same function right okay so even before we change or do anything else so make sure the changes take effects so we are already passing function from here so this is our function and that’s what we are passing and as we are passing this we can use the past one whatever we are passing so we passed the function and we are using that function remember this is already a function okay this already has a function body so you don’t have to go ahead and do like this okay and it’s not going to work right so you have to pass uh because I mean you have to use it like this because it’s already the function that you are passing from here now let’s go ahead and restart our app and let’s click on this and we see it works right we don’t have any issues so the first thing what we did over here that it became Dynamic I mean whatever you pass down to it it’s going to work for example now we don’t want to pass the same one we want to pass something different what do you want to pass uh an empty body that’s all so let’s go ahead and restart so this is a callback function we are passing we are passing this would work if you click on it so this function would get called so that’s why we call it callback function and this is also a callback function work on this it works and you click on that nothing because it is nothing to do if you want you can print it so here it’s a print hello there all right so let’s go ahead and run and click on this and here we see hello there you see that right so it’s it’s working and it’s being printed so hello there right and if you come over here we see our tickets and you can still go back so that’s how it works actually so this part has been pretty Dynamic and beautiful so definitely we are progressing and improving this time we’re going to go ahead and work on this section and and as you can see this would be also scrollable left and right and at the same time of course this is going to scroll with the whole app itself as you can see over here now from this You’ understand that once again we’ll have a container and inside the container we will have this image and container itself will have background color as you can see over here and then uh the size of this container would be a little more than 50% of the whole screen WID over here so these are the things that we need to remember now let’s come over here and see how we can arrange the next part so as usual we’re going to put it here actually and then here uh we going to put our text text or actually I wouldn’t say text actually our widget now this is going to be here so we had this home screen so this is a screen and uh part of it over here would be uh widget actually so here I’m going to go ahead and create a directory and here we’re going to call it widgets and inside this we are going to go ahead and create a file and then we’re going to call it hotel. Dart okay like that okay now why I didn’t put it somewhere else globally because this hotel itself just going to be used in this screen over here that’s it over here it’s not going to be used anywhere else so you can put it inside the screens widgets and hotel like this so let’s go ahead and create a status class for now and we’re going to call it hotel and let’s go ahead and import the things that we need and since we have this one now over here we can simply go ahead and call hotel and let’s import the things that we need okay cool and of course nothing will change over here I mean apart from this thing this box over here all right so here one thing we do first as I said that we’re going to return a container because we are going to do a design like this and one of the thing you do understand from it here we’re going to give it a width okay now say you’re going to give it width uh 300 let’s go ahead and do that and say then you’re going to give it a height 350 and then let’s go ahead and do uh color actually so here we can say colors. gray. shade uh 200 and most we also need the this one let’s go ahead and save it okay so look like we don’t see it here yet and what if we actually change the color so actually this is close to White so colors. red and let’s save it and this is what we see so for now we’re going to Cave it as it is and we’re going to change it very soon and you see that we can already scroll up so that’s the first part and of course we don’t want the color like this the reason is because over here you see we have border right so we want to have decoration and box decoration and inside box decoration we can assign color and for now it would look like nothing has changed but instead of using this color we can here use our app Styles I think do primary color let’s go ahead and save it this is what we want and then after that over here we’re going to do border radius and Border radius do circular dot here say 2 4 let’s save it and now it’s more like looking like this one over here as you can see now of course this whole width looks like a little too much so we don’t want to show it like this in that case we need to go ahead and create a variable so here final uh say size equal here we’re going to do media quy media query media query. of context do size now here let’s go ahead and take size do width and then we’re going to take six or 6% of it so it become much smaller and in that case it will look like this one over here right so now over here you’ll see that we have this and this and this and this so looks like all of them we can put in a column luckily right here we could do a child and inside child we can have column then we’ll have children and let’s put it everything like this and save this and of course no changes there and then over here we want to show the image now for the image itself we can do a container now the reason why we are going to do a container once again we’ll have border over here as you can see so if you have container you can always assign border like that so I’m going to copy this and put it here now in this case instead of having border radius uh 24 we can have it as 12 and color is still primary color and if we save it of course nothing is visible over here and then here is this property which is called image and then we could do decoration image and then here we can do image and at the same time then we do asset image and then over here we can say image uh well let me me look at our resources folder and here we actually have media not as image so here so let’s come over here and we would say well app media app media this one and app media while then we could actually say for example go ahead with logo and we might be able to see that but looks like we don’t see it yet then in that case give it a height and give it a height of 180 and we see it here and of course it looks ugly this is not what we want to show remember earlier we had assets and I think uh this is the one that we want to show yeah this one okay this name is Hotel Rome so let’s come over here and then you can just go ahead and copy this over here and we can we’re going to call it hotel [Music] room and then let’s see hotel room this is the image name let’s save it let’s remove this and then over here we’ll have hotel room let’s go ahead and save it well not sure we have an issue okay let’s go ahead and reload it okay we already see that it’s there but then it it’s looking little weird so over here there are other properties that we can set so that property is called fit property fit fit so here we’re going to fit something called box fit do cover so not cover or contain it should be cover let’s go ahead and save it so now it is better so cover like cover letter or you know cover on a page or on an album okay so it looks better with this now this one over here we do see that it’s not like this I mean here we do have this kind of extra background which it doesn’t have now I do feel like uh keeping like this maybe better than this so I’m going to keep it as like this okay but if you do want you can also change it like this it’s going to work anyway okay so now this part is so far so good and ready now in terms of this box with. cover and contain and fill you can try different of them and you’ll see that uh whichever which one ever or which one fits your need okay it doesn’t have to be just one single criteria so it could be any of them based on your needs okay so we’re going to keep it as it is now we see so that part is all right working and then over here we could do say sized sized box height 10 all right and then over here we’re going to show our text so this is the text that we want to show over here now how we going to do that so let’s go ahead and put our text text and inside this what you want to say you want to say open space so let’s go ahead and say open space all right and after that let’s put styles to it and I guess we have app styles do headline 2 we’re going to get headline two from it then copy with all right uh looks like copy with this one and inside this we want to actually set a different color remember whatever headline has already we can keep that color and all the properties of this but we just want to change the color of it okay now say colors. red let’s go ahead and save it so we already see the color over here all right so so far so good and uh it’s fine but this is not the color that we want to show so for this one let’s go there and we set up a color over here we call it cocki color which actually matches with the design so we remove this and then here we can say uh I think that’s the app star F Styles dot Kaki color let’s save it and this is this matches better now let’s go ahead and put it here now we do see that we have a bit of issues okay uh so the text itself the children they are like this text there should be a bit of spacing actually they should be on the on this side on the left on the left side but we don’t see that they’re on the left side so here we could set up property which is called uh cross access alignment cross access alignment Dost start now this looks fine so remember for column the cross AIS is horizontal AIS now of course this doesn’t look like this one over here so that’s also a problem now around wrap this around another widget so let’s go ahead and wrap this around padding widget and then if you save it you’ll already see that you’re getting result but in this case we just going to do left so we’re going to do only left 15 okay so which is much better looking right now all right so so far so good and then here what I’m going to do I’m going to copy this and put it here okay and if I do that you’ll see now let’s go ahead and check so all I need to do change this one so here 25 and uh what was it let me go ahead and check night now if you’re going to show this dollar sign we need to have this erson I not erson this slash actually then you can only show the dollar and after that over here we can do sized box and height say five let’s save it and we see it as it is is here okay and what about this text itself we also have another text over here I think we are putting the text itself should be three actually this should be three a little big okay let me go ahead and put one and see how things go okay actually this is what I was talking and then uh we can actually copy one of the other in fact not like this and go ahead and copy and put it here okay and let me have it as it is and then instead of this here we can sell London so here you see London but the color actually we can say colors. white so far we are okay with white color and I like this so here you can have three style three let’s save it so yeah so that’s pretty much it for now okay so this is what we have now and the first first thing you want to do is moving it to the left side over here now how to do that of course there is no mechanism over here that we can do it so we need to do it here now as you see that we are inside a column right so in general we could actually set up the property cross access alignment and cross access alignment do start remember for column cross access is uh this horizontal property how you align something horizontally and then you see that yeah it aligned up and then there is also a problem with this double text over here so looks like previously we are using uh this one as 20 so let’s go ahead and use this so that we are pretty much same and save it okay cool of course this part is scrollable and then I also want to make a bit of change in the design because here the theme color is this bluish and this orange so we want to have a little bit of U bluish color now for this reason over here actually this is the container right we know that this container itself has this color okay this is the primary color right which is this one so this container is all of it right so inside this we want to create some empty space so we can always create empty space inside a container using padding so here we can use Ed inser St all and then over here save for now 0.8 sorry 8.0 let’s save it and that’s what we see now this border is a little too much okay so we don’t want any border like that I mean it’s a little too curved so we don’t want that one we want a little bit sharp edge okay and this one actually I think I would be happy with 18 okay and this is perfect now with this it looks much better okay all right so let’s go ahead and add a const modifier over it okay now let’s come over here this is our hotel and right now currently we we just have only one hotel so what you want to do you want to do it like this the single child scroll view okay now uh as we saw earli that we also want to be able to scroll left and right so we need to wrap this around single child scroll view so let’s go ahead and do that here we’re going to do single child single child scroll view like this all right and with this the only problem is that we can only put one child so we might have many of them so over here this hotel actually we want to wrap it around another widget actually we want to wrap it around the row wiget and then here we might have 12 of this so let’s go ahead and put two hotels I mean Hotel widget actually and this’s the other one that we see okay now of course there is this horizontal issue over here okay so let’s go ahead and uh I think we can assign the scroll Direction and here we do access do horizontal let’s go ahead and save it and now it’s gone we see that we are able to scroll it right but now the problem is there are too much close to each other so here for the first one we can wrap it around the container and then here we can actually assign a bit of margin to it so let’s go ahead and do that here margin this one and then here Ed inserts uh let me go ahead and find Edge inserts oh let’s see okay like this let me go ahead and copy this and let’s put it here okay okay we don’t have any conditions here like this so we’re going to just put 16 and now it’s separated just like this one and it looks beautiful but if you do see that over here ticket view we put this margin inside a container not really inside the scroll view so this hotel screen actually I think we can do the same over here so here we can do margin and you can have it and we can remove this condition let’s save it but of course we see now more distance in that case we can just simply go ahead and remove all of this actually in fact we don’t need uh like that we can just have to of [Music] this let’s save it and then we see that it works in fact you can have a lot of of them and then it’s still going to work okay all right so that’s how you go ahead and scroll so we are scrolling all of them and beautiful so it’s already looking very nice and that’s what we wanted to see all right so in next section actually we’re going to see how to load this data dynamically from our map okay so this time we’re going to go ahead and work on our map data now as usual we need to come to our all Json over here now the name once again could be confusing because once you get your data from server side actually it’ be already in Json format okay but if you do want you can change it to all map anyway so let me go ahead and put the data here so this is our hotel list and once again there is a list of map okay so that’s why we have list and inside we have map okay so list of map so that’s what we have now here everything is pretty much just set the only thing that we need to change I believe this uh this names actually the naming over here is not very correct so here we can change it to save for example well it says open space and I don’t think we have one open space over here so let me go ahead and see so this is the City View and uh we might have hotel room this one so let me go ahead and change it to hotel room hotel room okay so this one is fine and then I think we need to have another one over here okay let me go ahead with CTV the second one [Music] CTV all right and the third one over here we can go ahead and do pull view pull view okay but looks like they are not going to be the same though here we have tallest building so here we can say best pool best pool in the city like that okay all right so this is what we’ll have and let me save the data and that’s fine okay and of course we don’t need like this so we can remove all of this and we’ll end up having one okay cool so it it would be just like this so what I’m going to do I’m going to copy this row over here okay and then let me just put it here and instead of ticket list we’ll have hotel list H H hotel list okay and what do we have uh cannot be invoked on a constant expression so let me remove that and here we can say single Hotel you get the idea uh but in general the photos we are loading there might not be Hotel all of them but related to Hotel okay all right see single hotel and here we’ll have hotel and rest of the things stays the same and uh now of course Hotel over here um doesn’t match in a sense of course we didn’t declare it so let me change it to hotel which is more readable and now let’s come over here and declare it here final map okay and then string and D [Music] damic Dynamic and then here we’re going to call it Hotel okay and dyamic we have an issue and then here Hotel require uh this do hotel okay all right so now let’s go ahead and save it and we do see okay we already have two over here and the reason is because if you come over here we are taking two of them that’s why it’s showing two but in fact we are not changing any data but this is the time that we’re going to go ahead and change our data so let’s go ahead and do that and if we if you were to come over here inside this I believe so okay over here we’re going to change our image first right and and uh how to change the image itself so now the image should be coming from our the actual image link is over here right this is the image link actually this is where the images are I believe they’re uh sorted over here okay but we don’t have those images we can’t use any of this so we have to forget so for now in this case all we have to do we have to assume that we know the image path so in fact we know the image path here assets images all right like this and then here we’ll have this uh dollar sign and then this one because we’re going to put a variable which is hotel and inside this we’ll have image okay and with this I think everything is going to work fine uh let’s see so we have a con here let me go ahead and remove this so let’s understand this one so over here this would be actually image path from server but of course in that case in future we have to replace asset image with network image okay and currently we know that our images are also stored over here inside assets images folder that’s what we did right and the exact image name whatever the image itself the name is coming from this hotel image which eventually refers to to this image uh key over here so this is an image key okay so that’s what I said and uh then all we need to do let’s go ahead and save it and we’ll see that if we can view new images let’s restart it okay cool now here we already see that we have two new images and then we also have this text available over here uh but we need to change them but images have changed dynamically and if you want you can also remove that and try to load three of them and you will see it’s there three of them are here okay all this images beautiful all right okay so our next job should be changing the text now over here we already have a text and but this is also hardcoded this is not what we want so we’ll have Hotel here and then here we can just get this place variable which is this one place okay all right and then over here uh I think uh I have a typo sorry so this one should be here I think this is the first one and um the second one should be destination I believe destination we should be coming from here so Place destination and next one we’re going to show prize over here now the price itself we are going to show a dollar sign remember so this one uh so this is for showing the dollar sign right and at the same time we’ll have variable so to show show variable inside string we have to use another dollar sign and then this curly braces so this is the basic Dart thing you should know by this time and then here we’ll say price and after that over here we can do this slash and here night okay now this part may be confusing to some of you so what I said over here is that okay okay so this dollar sign to show this dollar sign we using the first slash the first slash and then dollar sign which means that we’ be able to see this one and then because hotel is a variable and we want to take value inside out of from it so that’s why we have used and the dollar sign with curly braces okay that’s how it works all right so let me go ahead and restart and then of course I believe that we have overflow issue like over here because some of this the um text is too long so in that case what we could do for now uh we can change the name to best City Pool let me go ahead and change it let’s restart okay now we don’t have any overflow issue and beautiful okay cool now after this over here if we come to home screen in fact we can actually here do take. two we just want to show two of them for example take two all right and then restart it and we’ll see that we are only showing two of all right so that’s working pretty cool and then next we might be working on this one where we’re going to show all the hotels okay so next once we done with the which we have already done over here then we are going to work on the search page so this is the page that we want to work now as we are going to work on this uh so here instead of screens folder here we are going to create a new file over here well actually what we could do here we could do like this we can do a little bit of refractor search okay and then inside there we can create a new file and search screen dot dot like this but of course with this it looks like we also have to refractor okay and then over here this one we also want to put inside a new directory and actually we’re going to call it home and we’re going to move this one over here and we need to to refractor everything alongside this and here the same thing and I think all tickets should go there as well for now okay and let’s see if we have issues or not and looks like we don’t okay we have an issue so let’s remove that and then we see where we need to import reimport so here we need to reimport everything okay all right now let’s go ahead and run W one more time from scratch and okay it’s working fine we don’t have any issues we don’t have any issues over here as well okay now over here we are going to uh work on this search screen this one over here now here we are going to create a stat list class and here we can say search screen okay let’s go ahead and import the placeholder and related libraries okay now over here if we do come to this bottom tab uh instead of search like this we can use search screen search screen have it and we’ll see that we might not have any changes but let’s go ahead and restart it [Music] okay cool well after that actually we going to continue to work on this so the first thing we can do is remove this the const as well all right now and then let’s go ahead and take a look at this one so this is once again scrollable so definitely we can use list view since this is going to be scrollable okay but before that we need to use SC F but otherwise we might not be able to color it all right and then here we’ll have body color and then inside this all sorry body not body color list view so list view would help us to scroll it let’s just save it let’s come over here so it’s this and everything else is gone and then we the first thing we need is setting the background color itself okay and let’s go ahead and see the background color I don’t think they look same so over here we need to use background color and app styles. BJ color let’s go ahead and save it okay right this is the correct color that we are looking for Okay cool so the next thing we want is showing this text over here now while we learned that over here if it’s a list view we’ll have have children so inside children we want to show a text and the text itself is what what are you looking for this one okay let’s go ahead and save it and we do say it here now we have this sln which means it’s a new line and then we want to color it or style it so here style do F styles okay dot headline so we are going to use headline one let’s go ahead and save it and we say it’s pretty big and then here we’re going to do copy with copy with and we want to change the color and the color itself uh we can use font size okay font size uh not sorry color font size actually 35 and it’ be pretty big as you can see and that’s what we have seen over here okay all right so now there is a little bit of space here so let’s remove that and now with this they’re very similar okay all right so now once again take a look at this and they do look a little bit different the way we see over here there is this padding right so but we don’t have the padding over here but inside list view actually we can apply padding so Ed inserts do symmetric this one horizontal padding say 20 and vertical padding say 20 all right okay so symmetric puts a padding or margin on the left and right side at the same time but amount of padding and margin you want you can mention them separately but in this case just we are just putting padding now it’s too close to the top section so here we could do size box and then in the side box we could do height and 40 and let’s save it okay cool and with this we are looking very similar to this one we don’t have any issues as you can see they’re exactly the same thing now the tabs are not clickable but in future we’ll make them clickable so we want to work on the tabs now for the tab self actually we want to put them over here just like this home widget so here we’ll have directory and here we’re going to call it uh widgets right and then file here we can call it app ticket tabs. Dart okay right then here we’re going to make a stess class we’re going to call it app ticket tabs all right so the first thing we want to do is go ahead and import library and as well as we also want to put it here so here we’re going to call it app ticket tabs let’s go ahead and import well looks like we are missing a semicolon over here okay right for now we’re going to put const modifier and you save it you’ll see like this and at the top of that actually we can give it a little bit of spacing over here so sized box here say height 20 and then I guess it’s fine okay right okay so now we’re going to focus on working on this beautiful uh UI section over here where it says airline tickets and hotel so definitely from here you understand that this is going to be a row wiget and then at the same time uh we going to have container so container container and then child row well the reason having container is that you see the Border style over here so every time you have to decorate or give border to a box it’s better you go ahead and use container because within container you’ll have decoration and then box decoration just like this border radius border radius do circular and then here we’re going to have 50 go ahead and do color colors do red and we need material library in that case we might not need this one at all okay so let’s go ahead and save it nothing is visible because our child we don’t have this child is empty okay if you put a text over here insert children and the text high or H as you can see it’s visible but this is something not that we want to put so over here we going to have a color so here we’ll have color and we’re going to call it o x ff4 f uh I think six FD this one so that’s the color that we want uh let me see are we doing it correctly yes we are doing it correctly L but looks like it’s still not visible is it visible I think it is visible but not that obvious though let’s put another F okay so now it’s visible and then we are fine well after this inside this actually we want to work with our first uh container so we remove that and then you may ask why container again because you see that part of it would be straight and the part would be like this border over here like radius so so we need container again so here we’ll have container and inside the container now we need to give it a WID and size and how to get that so here we’ll have final size media quy of context do size now if we do come over here inside this uh we could do okay I think we need to do like this all right and insert this over here we’re going to have width and what would be our width so here size dot width and then whatever it is we are going to take 44% out of it okay right now once again nothing is there because nothing is visible okay right and then then over here inside this let’s uh put a child over here for now a text and inside the text itself we can say airline tickets okay Air Line tickets let’s go ahead and save it and we see that is already visible now over here all it doesn’t look good so here we we could do padding so here as in sets only are actually symmetric and we’re going to do it vertical top and bottom so let’s give it seven and as you see that it already uh looking better the reason is because um in the top and bottom we have this uh padding over here okay cool and then inside this we can have a text where it’s going to Center itself of course it’s going to it’s not going to come over here because as you see that this container may actually taking all of it within the Row the first container just takes 44% of the whole thing so that’s why we see that it’s um uh just coming over here not really inside the whole container and being over here so it’s a row but the first element so it has to so row is like splitting like half and it’s putting inside the midle hopefully it makes sense and then the other thing we could do we can just go ahead and copy this and let’s put it here and let’s save it and we do see that this is what we have and right now we can put hotels instead of this one so let’s go ahead and do hotels just like this now if you do come over here inside this so let’s go ahead and apply decoration and then we could do box decoration so now here we’ll have border radius border radius do horizontal this one and then we want to apply the border to the left side so let’s go ahead and do border to the left side so here we do left and then radius. circular R radius do circular and here we’re going to do 50 now it looks like no changes at all over here one thing remember this color uh well for color itself we are going to change it very soon so let’s go ahead and do colors so here we do colors. white now see H yes it’s different and now if you don’t give it border radius you will see that it becomes like this so that’s why you also need to give another border radius okay hopefully it makes sense because this border radius now becoming same as the parent border radius okay so with this it should make more sense and I think let’s put con wherever possible okay and I think we should also do it here okay now of course with all of this actually in fact I can copy this and come over here now this this one over here instead of white we could do transparent so whatever the background color it has we keep as it is otherwise if you put it white of course it doesn’t make sense right so you want to have transparent now over here instead of having it on the left have it on the right even though they look like same is better you do it on the right even though this even transparent so it’s just taking the background color of this container itself over here which is this one okay all right so these are the few things that we need to know and then over here we can have hotels okay so airline tickets and hotels so that’s that’s what pretty much we have and uh okay so hopefully you are able to make the reusable widget which was given as an assignment but anyway if you are not able to do that I’m going to do it and show you here how to do it well we can close this now as I said early in the instructions that we can create a new widget over here in this widgets folder we can create a new file that’s one way to go and actually there’s another way in fact we can create a new stateless class over here St class and we’re going to call it we’re going to call it app tabs okay now remember what we need over here if you open up which things are changing we see that uh pretty much uh left and right condition is changing okay so we have to know whether we are applying to the left or whether we are applying to the right okay so that one and as well as this um uh text itself so these two things are actually changing so now for them we can apply as we can declare them as a string the first one string okay tab string all right and then we can also do final uh bull and a tab border okay now of course it’s uh creating noise over here it’s saying that okay you need to give me values so all right tab string now okay actually we can also give it a default value over here and let’s see remove okay if we give default value then we don’t need required that’s true and what else over here AA cannot be a b type okay I should do it tab string this one uh instead of calling it string let’s call it text because string is too technical text makes more sense all right and then over here uh this Dot tab border and uh here by default is false okay these are the two conditions that we are going to use now what I’m going to do I’m going to copy this one over here and definitely put it here okay and looks like we also need to get this guy so I’m going to copy this and of course with this we’ll have error and that’s fine I’m going to put it here okay and after that so tab text so this is the text would be sent so here I can directly use this one tab text and uh we have const so we got to remove that part and what else now this one so whether we are applying to the left and right side we need to be careful okay so by default uh it’s false so here we can say tab border border equal false okay if it is false then we are going to apply it to the left side which is already this one over here okay so it wants a const over here otherwise otherwise here we can uh actually copy this whole thing now once again we are using tary operator over here and then here we can say right okay so this is the only difference that we’ll have let me reformat the code so that it’s more readable okay so now by default is false if it is false that means we are going to apply to the left side if we send a value as by saying true then we’re going to apply it to the right side which is over here everything else stays the same so now we can be smart and remove this too we don’t need so in that case we can say app tab okay all right and you’ll see that we can also do app tabs this one if you save it uh everything is gone and it’s falling into default one right and it’s ugly so here the first thing you can say app text what’s the value of it uh the value of it is all I think all that was all tickets and that’s what we see and then over here tab text hotels save it we see now the Border itself over here tab border we can pass true and let’s save it and this is what we see now there is also a color issue though which we forgot to mention okay because this one and this one their colors are different right so this one we need to assign a transparent color where is this color coming from this box decoration color okay so we need to create another variable here we can say find bow tab color okay and then once again over here this dot tab color equal false let me reformat the code it looks better and then over here you say t color false then white otherwise wi here would say colors. transparent let’s save it and of course in this case this one still doesn’t work because we need to pass tab color true okay and then you’ll see that it works perfectly beautiful so this we just built another reusable widget all right so the next thing we want to do is showing this one over here this two now for this two once again we’ll be building reusable text widget so let’s go ahead and do that now let’s uh come over here and uh we were here inside this screens widgets right okay now here we are going to create uh well actually not this folder this one here we are going to create a new new file and we’re going to call it app text icon so let’s go ahead and name it app text icon dot Dart all right and then over here we are going to create a status class and we’re going to call it app text icon app text icon okay so let’s go ahead and do the necessary steps over here and let’s go ahead and remove this and inside this we are going to have a container the reason that we are going to have container once again if you see over here we are going to have borders so you have to use a text uh container to do that so that gives us the idea that okay here we are going to use decoration and box decoration because we will have border radius so we can do border radius do circular over here and then the Border radius we’re going to use 10 on this and at the same time here we’re going to do color so here we could do colors. white let’s go ahead and import it okay now let’s save it and of course we don’t see anything because we don’t have a child now over here we are going to do a child and the child would be row and children okay now let’s take a look why because here we have this two items right so we can put them in a row next to each other so uh that’s why we have this and at the same time you’ll see that okay first one is an icon and second one is a text so here for the first one itself we could use the icon widget okay and here we’ll have icon okay now let’s go ahead and save it let me restore it okay and let’s come over here and of course we don’t say it the reason is now let me close this search screen over here so here we could have uh const app text icon this one uh okay we don’t want this app text icon okay we have a d there and which is wrong we don’t want d That’s a typo so let’s go ahead and move that and now the arror is gone and let’s save it and here you see there is an icon we see that so let’s style it and here we could do sized box and then here we’ll do height so height actually we could do 25 let’s put it like this put it down okay beautiful now since it is here let’s go ahead and apply padding so here we’re going to do padding to it add insets dot we could do symetric first one is vertical so top and bottom vertical 12 and horizontal say 12 let’s save it now it became bigger and which is cleaner and nicer okay now few things so this color itself uh we can Define it in our app Styles file so let’s go ahead and open it app Styles okay all right so here we can say static color now let’s take a look at this one so here we can say plain color plain because these are plain right plain color like this and then I think it wants a con to here let’s go ahead and put a const and then over here we going to sorry so let’s remove this and here we can use app styles and now it became Universal right after this we going to use text now here for now it’s a [Music] departure this one and then here we could do Style app Styles dot text style this one now let’s go ahead and save it and this what we see now these two are too close to each other and then here we could do sized box and we could do width actually withd say 10 and we have an issue all right and looks like we need a const over here otherwise we’ll get these things okay at the same time we also need const over here now among all these things over here actually we want this icon and this one to be dynamic so here we could do final icon data icon final uh we can say string text and we need to put them in the Constructor required this. icon required this. text okay right now this icon would be actually sent from the uh this as a parameter right so we’re going to pass it down the place where we call it from okay now where we are calling it from we are calling it from here and we have error so that’s fine let’s go ahead and pass the icon and here we do icons dot uh flight flight rounded this one I think we’re going to do actually take off all right and then we also need the text itself so here it say D [Music] part beautiful AR is gone set con modifier now here we going to put it down over here and uh here instead of this we can use flight land rounded this one and here we can say arrival and then over here we’re going to have const sign ized box height say 20 beautiful now let’s go ahead and save it okay so with this we build another reusable uh widget app I context widget okay so all we needed to do we can uh we needed to pass this as a parameter so the idea is when you pass icon as an argument and accept it as a parameter over here you have to accept it using icon data okay so that’s one thing and the other thing we learn that by default if you have items in a row they’re all on the Left sided as you see this is the default so these are all on the left side okay this is the default property so if you don’t change all going to be on the left side but of course if you want we can put this one here departure there all right so that’s how it works so that which looks very much like this over here and I think so far so good while in next section we’ll see how to work on this uh this is done now we can go ahead and work on this one of course this would be relatively simple over here now here we can create a new widget actually inside this ser SE one okay so here we’re going to create new widget and we’re going to call it find tickets okay find tickets. Dart and then once again we are going to create a stateless class and we’re going to call it find tickets all right and then let’s import it that’s it and after that we’re going to just go ahead and call it over here going to call it const find tickets find tickets this one and we are good to go let’s save it and we see it here and obviously over here at the top we need to have con sized box and height say 25 all right okay cool so now let’s come over here and remove this so we’re going to have container and once again you understand that container is just for Border okay with container you can always apply border so now we are going to be here and then the first thing decoration box decoration and then border radius border radius do circular and then here we’ll have 10 little bit less and at the same time Colum color con color over here We Do ox D 9 1 2 I guess or 1 one 3 C so that should be our color okay now we see that this is the color Okay so the color has been given and then after that here we’re going to have a child let’s go ahead and do child CH I the child and then over here we’ll have text we say find tickets let’s go ahead and save it and we say it and it’s ugly but we can always change it using App Styles so here Style app styles this one dot Tex style and then copy with here we can use copy with color colors. white so with this we got to import this let’s go ahead and do that uh let’s reformat the code so that we have better visuals so let’s save it and we say it here the next thing we want to do want to center it so let’s go ahead and Center beautiful and after that over here we can apply padding so as inserts do symmetrical here vertical 18 horizontal 18 let’s save it and beautiful okay and over here actually we can add this now once again this color we can easily move to our app Styles class over here the Beautiful thing about them is that you can easily change them later okay so find ticket color just like this and then come over here so here we are going to say find to get color rep styles that fine ticket color let’s go ahead and save it and beautiful and everything else stays the same now in future if you want to change it we can pass more parameters and grab them in the Constructor and we would be good to go all right so now over here the code actually looks very beautiful very organized all right so the next one that we want to do is this one upcoming flights and regarding that one actually we already have our widgets so let’s go to our home screen I guess home screen over here and inside this we have this one okay so you can directly copy this and then we’re going to come over here and put it let’s go ahead and uh import it as a package let’s also import F routes okay for now we’re going to import the same route in future we may change this it’s already visible and then over here we could do cons to sized box size box and here we could do height 40 all right and let’s save it and here we go and let’s see this so okay exactly the same thing and of course we can view and go back all right beautiful so you can also do the same over here right go back and the same over here as well so it was working all right so this is another breakthrough actually all right so what is the next thing the next thing we want to do is this one so from here you see that this this would be a rollout and then over here uh this would be the first child and this would be the second child now within first child we will have column and second child itself would be a column so let’s go ahead and continue to work on this so over here the first thing we could do say let’s do row wiget right and at the top over here we could do con sized box height 10 or 15 all right and then children okay right and over here the first one once again we’ll have container for this as you can see so this would be a container and inside the container we’ll have column so let’s go ahead and do container and we could do child and uh for now we’ll say along in then the first thing we want to do inside is decoration box decoration and then here border radius border radius. circular and within it here we can do 20 20 pixel okay all right and color colors. white okay so let’s go ahead and save it and we already see it over here and of course it’s tiny text right okay so so one of the other thing that we have to do over here we have to use this okay looks like we don’t have what we wanted but find a ticket so let’s see not even this one F text icon not even this actually I’m looking for um what is it width and size okay looks like I don’t have it there so here I’m going to declare final size and then over here we’ll have [Music] media cy. off context do size okay all right so why so why we are going to have this one over here the reason is um this container itself this one the first child inside row this will have a certain width right so we need to get that wi so here we’re going to do width and then size. width and then we’re going to do uh 42% okay all right so we are going to almost taking half over here that’s why we did that okay all right and uh what else okay so within it we actually want a little bit of padding like actually you see the white space it came because of padding uh padding so let’s go ahead and do that so the padding itself over here would be adding sets do symmetric and horizontal 15 vertical 15 all right and beautiful okay right of course the text itself doesn’t look exactly the same and we also have an image over here so we’re going to work on that step by step okay right and then over here actually we also want to apply a little bit of box Shadow outside of this one okay and how to do that actually we are going to apply Shadow so it’s called box Shadow and box Shadow actually takes a list if you hover over on this you say it’s a list so we have to have this list thing over here so it takes list of Shadows the Shadows themselves are given through box Shadow this class and here color and here we could do colors. gray and then shade [Music] 200 so blow radius one and spread radius one all right so let’s go ahead and work on this and you already see that there is this sh there’s this uh Shadow over here okay now if you increase the them say for example five say it’s it spreads outside and uh but of course if you increase the spread radius uh it becomes more spreading okay so in general spread radius is bigger than blur radius so you can also do the same like this okay and then over here we could do two okay but over here we also want to we don’t want to do green which we want to do gray go and uh so it’s it’s there but not that visible okay let’s take this and save it so there is a bit of change save it all right okay so you you you do this to apply Shadows around your container okay now uh we’ll see more about this in future just remember if you have a container and in the container outside if you want to apply Shadow then you need to use box Shadow and now here you could have list of Shadows the reason is because you can also Define the direction but here we are not defining any direction we are just going as things are okay so just pretty much like everywhere so that’s the idea so that’s our box Shadow and then uh so with this we are done and after after that the thing we want to do over here we want to get a column children the reason is we want to get a column because you see this two the picture and text itself would be on the top of each other so that’s why we have this and now at the same time you also see that the picture itself has also border so so whenever you see border you need to use container so that’s what we are going to do so here once again decoration box decoration and and the only thing we’re going to apply here border radius and Border radius do circular and over here we’re going to apply 12 okay and after that um so this one also needs a little bit of height so here we’re going to use 190 and as you can see it became bigger okay so this is pretty much for the text itself and now since we have this border radius we can also use use image and here we can use decoration image and inside this we’ll have uh image again and then asset image asset image and inside this we can have our uh app media I guess this one app media dot uh okay app media dot what is it actually we don’t is is I think we have uh let’s let’s go over there in our app media class okay so app media class we don’t have much of the things so over here we need to Define our let’s open this and looks like okay now it open it’s pretty big image so here we want to declare a new image so let’s go ahead and do that and here plain set plain set and we can call it plain set plane set all right let’s save it okay cool and then over here we can do plain set let’s go ahead and save it and looks like we need to restart we started let’s come over here okay our image is not visible yet because we have wrong media type now here box fit dot cover we want to have it as a cover photo and it would look better and uh so what’s going on okay it shouldn’t be actually here box fit fit count in uh decoration image let’s go ahead and save it and bful and with this we exactly look like this one over here okay all right so before I wrap up this section let’s go ahead and this const modifier and with this it looks actually more beautiful all right cool okay so now we are going to show this one and how to do that well we are inside this ret and we had this container and inside the container we had column and then over here we’ll have this uh container which was showing this image and things like that so over here we could do like say text and then here we can just simply do 20% discount on the early booking of this flight don’t miss this one and then here we could just style and app styles do headline style to this one let’s go ahead and save it and here we go we see that and at the same time here we could do sized box sized box and a height say 12 and we are good to go let’s save it and that’s what we see okay now this is so far so good and also working as we expected let’s put a con modifier and we are good with this now this is the first uh item and then what you’re going to do is uh this one but of course uh it looks like over here we do have bit of spacing so here we are so everything should be looking the same now to make this one exactly look like this uh we could also actually assign a height over here now here we see a lot of space so here actually we can skip part of it say 05 and I think that’s fine so this is what we’re going to have so with this the first part is done and the next part would be about this one over here okay so let’s go ahead and do this one now here we do see a complex layout here we see this one actually this has been drawn by hand but we are going to Al I mean this is drawn by code not by hand actually code we’ll do that first we’re going to start off by doing this too okay and the background as well all right okay so now once again we are here inside this row Jet and then here we’ll have columns so you can have column wiet inside row and it is completely fine okay all right and inside this once again now you should be able to know that whenever you see this border like this you have to have a container I without container in general you won’t be able to apply border all right and here we do with size and then remember over here we had size dot I think we have a variable sized that with and then we want to get 44% all right in and uh after that over here definitely we’re going to go decoration and box decoration once again we need that because of Border radius we want to apply border radius. circular and we’re going to do 18 everywhere is going to do the job and at the same time over here do a height 2 one Z so we want to specifically control the height but anyway it didn’t show up yet the reason is because we don’t have any color now over here we can go ahead and Define a color so let’s go ahead and do that const color and then Ox F FF 3 a 8888 I think yeah that’s pretty much it so yes so this is the one that we had and we want it to have all right now we see the to together and then we can simply use the property over here uh main AIS alignment which is horizontally so here we do main access alignment do space between and it’s beautiful so that’s fine and what else now the next thing we want to show is the text itself this two texts but now you see inside this column there is this container is a child and the inside the container will have this two so this two on the top of each other so for that reason here we are going to send child and the child itself would be another column then we’ll have children okay so after that over here inside this first we’re going to do text just the thing that we want and then here we’ll say discount and because we want a new line for survey that one and then over here we’ll have Style app Styles dot headline 2 this one and uh then we’re going to use copy with method because whatever is there with headline 2 we’re going to keep that and then here we’re going to change the font family then font actually we want font weight not font family font weight this one dot bold and then here we’re going to do color colors. white let’s go ahead and save it that’s what we have but if we do remove this one we’ll say it’s different one so as you see copy with method we can apply the new things with it and that’s what we did over here okay right and what else after that now here we’re going to do size box size box and then height 10 because we want to put something new next to it so let’s go ahead and copy it and then we’re going to put it here like this okay but of course this is not what we want so we’re going to remove this the first thing take the survey about our services and get discount all right and this one we don’t want uh whatever is there we want to change a little bit so here w500 let’s save it okay so it’s smaller and then over here font size we can also set the font size 18 so it became much smaller now let’s go ahead and hit con over here all right now of course this is disproportionate they’re pretty much uh this one looks like actually centered and in fact this is centered too okay so the default property is centered I believe so let’s go ahead and check this so here main access alignment uh okay it’s not main actually cross access alignment which is horizontal so for column the horizontal property is Centered for column horizontal property is used by cross accessment as you see it’s a center so this is the default property actually but we want to do start and as you can see it’s working fine and now there’s this problem the problem is we want space I think our background color has a bit of issue we’ll also fix that they are not the same background color anyway so now if you do come over here uh this container itself which is holding everything over here and here inside this actually we can set up a padding so the padding should be on both side actually left and right right so here we could do add. symmetrical and here vertical say 15 and horizontal 15 so let’s go ahead and do that now it looks much better now the background color doesn’t look good actually it should be B8 and B B8 let’s go ahead and save it now it’s more clear right so with this we also done with part of this color over here and The Styling and it’s almost looking very good as we are working on it so in next section actually we’ll see how to go ahead and draw this on this beautiful line okay so now we are going to go ahead and uh show like this well we have the ticket app over here let me open this up and then we want to show this one now how to do that well we already have this column and inside this we have this container okay now this container is showing all of it actually we want to put another container inside this and we’ll see how things go right so let’s go ahead and use container okay and in this uh here we’ll have decoration and the Box decoration and then let’s go ahead and work like um give it a border okay so now we are not going to give it border radius we want to have border everywhere so here we can also use this one and with this the beautiful thing is even the Border itself you can give it color okay so here let’s go ahead and do 18 and let’s save it and we see that okay it showed up up here at the bottom and uh well uh let’s continue to work on this this is not something that we wanted but anyway so let’s go ahead and fix the color and here we can say const color o x FF 1899999 go and save it and this what we see okay and then we want to give it a special shape over here let’s go ahead and do the shape property and instead this here we can do box shape dot uh Circle actually let’s go ahead and do that and here we already see that we have a circle sitting up there and now let’s go ahead and apply padding to it let’s go ahead and do that and Andis only all over here let’s go ahead and give it padding 30 let’s see how it looks like and here we see it became big and that’s how actually the padding works okay with padding you see that small so now padding is being applied from inside okay all right so this is like padding of 30 and uh we Al also have this decoration which actually applies border now of course this is very different than the one that we see over here and how to achieve this now the thing that we want to do over here this one and this one we want to overlap and how can we can do that now we want this children actually to overlap I mean this one could come over here or somewhere so for this reason actually this this two this two container we can wrap inside around another widget which is called stack Widget the stack widget also takes children so we’re going to put them and let’s see how things go and as you can see that it’s already up here okay so they are already overlapping now of course in that case what we could do we can just go ahead and have this and uh remove that column and let’s see how it goes and we have the stack widget and Okay so everything is fine so instead of column now we can just simply keep our stack widget now as we have stack widget of course this is not the position we have as you see that a stack weet puts everything from the beginning it’s like uh left top okay everything starts from the left top now this one this one we want to put it over here so we can wrap this around another widget let’s go ahead and do that and we’re going to call it positioned Widget the position and stack widget they work together I mean if you use positioned you have to have stack as a parent or if you have stack most of the time you’d be using positioned otherwise this layout is quite messy so here on the right we want to say do zero so it went up so this is the right zero right but zero is not our Target so you can do or give negative coordinate as you see so now it’s going beyond our this zero remember this is zero over here for right for right section this is zero and then we can also apply top and then here we could do 40 and let’s save it and that’s what we see beautiful so now with this we see exactly the similar over here and it looks like okay we might have an issue with this color now let’s go ahead and work on the color itself okay now if we go ahead and conare the color doesn’t really look quite the same the reason is I have one more n over there now it looks the same as this one now of course we can go ahead and copy this and we can find app Styles over here and then over here we could do static color circle color this one and then we can be here and we can say app styles do Circle color and yeah so that’s how it works okay so first here we’ll have understanding what is called FL stack widget now here you see while a layout and you can deem them as three different containers so each color represents a container now in general if we are just going to put them on a flutter application or in screen you can’t put them like this they would definitely be like for example the first one is white the second one this little blue one would start from here okay and then this one would start from the end of or bottom of blue this rectangle or square now to achieve this kind of overlapping layout where one stays on the other one we need to use a stack widget so here we see stack okay if you put stack widget and if you put children inside stack widget like this would be stack widget then you can put them like in overlapping manner okay like inside column widget we also put children but they never overlap they always either on the top or on the bottom if you want your widgets to overlap you have to use stack widget and put the children inside the stack widget and that’s how the stack widget works so now we’re going to work on this since we are done with this section over here so we have this uh container and stack widget and over here we also have this all right now earlier we have seen that we didn’t need the column but now we need the column because we want to put this one right below it and that’s possible if we wrap it around column widget which you will understand soon so these are column widget we wrapped it around and the first one is a stack widget and inside this can have another container withget okay so let’s go ahead and do that container because if you don’t have this column we don’t have actually a mechanism to put this stack and the coming container which is this one on the top of each other right it’s not overlapping it’s on the top of each other okay so that’s why we need this thing okay so let’s go ahead and Define width and then here we’ll have size. width and 44% all right and after that here let’s go ahead and assign a height to it and once again here we’ll do decoration and box decoration and within box decoration itself we’ll get a border radius border border radius border radius do circular then 18 okay all right now we already see that it went up a little bit and looks like it didn’t align much over here and we’ll fix that don’t worry and then uh this container as you see over here it also needs a bit of padding so the top left and right right so that’s why we can apply padding to it so here we’re going to do padding add inces do symmetric vertical 15 horizontal 15 we don’t have any of this yet I mean we don’t have any child within it so looks like uh there is no change even if you I mean of course there is nothing there yet right we know that but now here we can go ahead and assign child to it so let’s go ahead and do child and if you take a look so here this text and this uh images so there would be inside a column so let’s go ahead and do that column and children and the first one is a text and it says take love let’s go ahead and put it and this is what we see over here all right now this is the problem with this uh border uh background color so we don’t have background color so here we can do color and con color Ox FF EC 65 45 that’s the color that we want and we already have the color and beautiful now these two are getting together so in that case here we could go ahead and uh give it a size box size box height and say 15 and here we go put a comma we have mistakes so here we go now once again this is disturbing and the reason is because earlier over here you see earlier over here we had this so let’s go ahead and change it to 25 and let’s see how it goes okay looks like 35 was the best approach okay right now this container this one and here we also have container like this and inside we have the other one so and including the you know different kinds of padding they are now correctly aligned so let’s go ahead and do the calculation so the first container is this one and we see that it has 435 okay so this is 435 now inside this we have this container 210 and then also we have the other one 210 so 420 and 15 so 435 and that’s why they have the same height okay so as you can see over here so it makes sense that why we are doing 435 okay and anyway so over here we can apply style and then we could do EP styles. headline 2 let’s go ahead and save it that’s what we see and then let’s go ahead and change the color and within it over here we do colors. y right save it and uh I think we need to assign the color properly okay right and let’s go ahead and save it and what else uh let’s see what property we have within this it already has bold so we don’t need to assign anything else okay right so this part is so far so good and uh it’s fine so now here we see that we are done with this page and we are running on Android device actually and we have tested well I mean on my side I have tested I don’t have any issues so first so good and everything works perfectly as you can see and uh if we come over here click on this the same thing no issues so you can run it on an Android device now if your Android simulator is smaller than this you might get an issue of this one like this overflow but in general most of the phones are longer nowadays so you wouldn’t really get a small Android phone okay so it’s pretty standard actually so we will not have any issues this idea okay now here we are on search screen and over here we have this row and this row actually contains a lot of code now we want to separate them so in fact this whole row we’re going to separate now to be able to do that inside this widgets over here we can create another new file and we’re going to call it over here we can say ticket promotion dot dot because over here it’s pretty much all about promotion So based on the feature okay and then I’m going to create a status class and we’re going to call it ticket [Music] promotion all right so let’s go ahead and import the stuff that we [Music] need okay and then I’m going to cut all of it from here and then I’m going to put it here now we might have some issues of importing some libraries so we can just go ahead and import them and most of the problem should be solved automatically let’s go ahead and just import okay and over here is the same app Styles now let’s open it up so there is only one variable size that’s not being uh consistent so for this one we can just cut this one out from here and then we can put it here and with this the error is gone now of course here we can just simply call ticket promotion this one and that’s it and most probably we can put a const modifier which is good for performance all right so and then we remove this file from here and this ones and this ones they are not needed on the same over here so let’s go ahead and restart it and here we are so we don’t see any issues over here okay so the next thing we want to do is showing it like this so this is the screen that actually we want to go Go and show this is our third tab so this was our home Tab and we have already worked on this and now we are going to work on this one all right now this would be actually our ticket screen okay pretty much our first ticket okay and that’s the screen that we want to show over here okay and as you can see New York London the time and and departure time everything matches the first ticket and there are also some additional information which we’ll fill up later okay now for this one we’re going to come over here and set the screen and here we’re going to create a directory and we’re going to call it ticket okay and then inside this first we’re going to create a file and then here we can call it ticket view. Dart okay and we know that we’d be needing some widgets so let’s go ahead and create a directory widgets all right we’ll see what we need Well for now we’re just going to work with this right and at the same time the thing that now on we need to work and uh take here is this over here bottom NE bar over here we can replace this with ticket view ticket actually we can call it screen or view okay so I’m going to call it screen because I see here we have this one so let me go ahead and change the file name over here to toate screen because everything else is ticket everything else is the word screen okay now let’s go ahead and imported ticket okay ticket screen ticket screen looks like not recognized okay well nothing is there most probably so let’s go ahead and go ahead and import it okay now let’s come over here and see whether yes this time we can recognize it all right so now let’s go ahead and restart our app and if we come over here most probably we will see a placeholder now this placeholder is coming from here okay so the very first thing we want to do over here removing this and get over here a scaffold for us and uh here we’re going to have return and then here we’ll have body and then uh okay I think all right I guess we need to import material library and then body and then list view because we also want this to be scrollable and every time you want scrollable items you just simply go ahead with list View and then we want many children within it let’s go ahead and save it okay right so one of the first thing that we want to do is doing this one so let’s go ahead and check tickets this one so for this one we can simply go ahead and invoke our text and here we can say tickets and after that style and here we could say app styles. headline one this one and we good to go let’s save it and we say it here and at the top here we could do sized box height 40 just like others we had now it once con let’s go ahead and do that and it came down all right now of course this is too much to the left so so here this is the place that where we do go ahead and do this padding add ins sets. only symetric here horizontal 20 vertical 20 save it and looks beautiful okay right and then after this over here um this is the time that actually we go ahead and show this tabs over here right these are the tabs and now this Tabs are similar as the tabs we have seen over here so these are the same tabs that we want to use okay now look at our tabs see what we have then in our search screen so ticket tabs over here so let’s see whether we can go ahead and utilize this so app ticket tabs now we are going to go ahead and uh use it here inside this and the first thing we want is working on this as a library let’s save it and then now let’s come over here so we do see the tabs right but of course our problem is these are right now hardcoded which we don’t want at the same time the background color is an issue so let’s go ahead and change the background color we know that app Styles and we might have BJ color it’s this one save it so now it’s very distinct within it and at the same time here we can do size box height 20 all right let’s go ahead and put const on it now problem with this is everything is hardcoded over here as you can see all right so we don’t want them to be hardcoded especially this strings over here okay so uh the thing you could do we can actually pass them right now so here we can have final first we do final string first tab okay then final string second tab like this and then we want them to be required required this. first tab required this do second tab all right now of course here we can just simply go ahead and replace them by tabs first tab first tab let’s see what is okay so this const causing the problem remove that and then here we could do second tab okay second tab right so now here we get to pass first Tab and second tab so let’s go ahead and do that first tab now let’s take a look what is in our first tab is upcoming so let’s go ahead and save upcoming and then second tab is previous and with this we can also put a const here but of course now we’ll have errors in our other places like we already see in search screen we have this issue so it also wants tabs from you so here you could do first tab I think it was all tickets and then second tab was hotels let’s save it and as you see here the first thing the error is gone and now if you go back and see it’s still Dynamic so here all tickets hotels and here we see upcoming and previous so which means that this part is also working as we expected now this is the video of building reusable widget which we already did of course if you do want you can also uh pass different things from here if you want because we remember that we made it dynamic so you can also pass from here actually it’s better to pass here rather than changing this conditions this conditions you don’t want to change hardcoded here but for now it’s fine because it it matches our design but in future if you want to add more conditions definitely you’re going to pass through over here and then you have default value true false or whatever it is okay all right beautiful so now let’s go back to our ticket screen over here here okay so now we want to show this this one over here now do remember that this one over here is actually same as this one including this uh uh circles over here I can say that they are same actually so it’s all about changing color now of course we have this borders that we want to do a little bit differently but this whole section is actually pretty much just like this one the only difference would be the background color and as well as the Border okay so by saying that it’s also true that we’ be able to reuse the whole thing over here okay so we be able to reuse it so let’s go ahead and get started now this is what we have and after that over here first thing over here we want to do is doing this we’re going to do a const sized box and then here height say 20 so that’s what we want to do and then over here we want to call our ticket list okay now how to go ahead and call this one well actually we’re not going to call ticket list we are going to call the widget the one that we created over here I think we call it ticket view so this is the one that we want to go ahead and call okay so here ticket view this one let’s go ahead and get that one and then over here if you hover over on this so it takes a parameter called argument called ticket and then here it needs a child or we need to provide value for it so here ticket list and get zero which means the first one and let’s save it and we already see it here and beautiful okay and this is what we wanted to see okay now let’s go ahead and uh wrap this around uh container and why we want to do that the reason is because we can apply some padding to it okay so let’s go ahead and apply padding and if you come over here inside ticket View and we’ll see that over here it has right margin over here 16 and that’s the only thing that we have right now 16 so let’s go ahead and do same over here so if it’s a container so we are putting inside a container and then here we could do padding as insets and that only and we going to put it to the left and let’s apply 16 and we see how it goes okay now it’s more like centered so we have margin over here and padding over here do remember that the padding itself is being applied from uh this container which is outside of this ticket view right the ticket itself is inside the container so in fact the container you can give it a color so you’ll know what I’m talking about colors. red okay so now as you see that it’s very symmetrical so there’s this container and inside this we have this padding if you remove the padding okay it goes up to there and if you have it so we’ll set like this and ticket itself inside we just saw that there is another margin okay now that’s also coming from outside okay so this is ticket it’s taking outside and then we had the container inside container we had padding how will it makes sense that why we are doing it like this so let’s put a con modifier and we are good to go now ticket view itself uh as you see okay let me remove the color as well okay all right so that’s it now to get itself over here you see that we have a background color right the whole container over here uh it has two background color this one and this one but this color we want to actually hide them like this container itself over here we can see this different kind of colors so we want to change the colors and hide them okay now to be able to do that what we need to do over here attach a different parameter over here okay so now here we we have this whole screen and then we can attach another one final bll is color and well which which means that whether it’s colorful or not okay now here we can say this is color equal null okay okay so or most probably let’s see what it says remove initializer it would work like this because it’s it’s notable so it could be anything all right so that means that you may pass this value you may not pass this value well if you pass this value then it would be like if you if you don’t pass this value if we don’t pass this value then we’re going to apply this one okay otherwise we’ll use a different color so let’s go ahead and check that so over here we say is color equal null because I said we said it could be null right if it is null which means that I’m not passing anything what do I mean by that so over here you see I’m not passing anything okay so I’m not passing anything the condition is remember this is a tary operator so we are keeping uh whatever value was there otherwise here we say colors do white okay so let’s go ahead and save it okay so now over here we didn’t pass anything but how about we pass say is color true save it and as you see that it changes immediately but of course it it disrupts our color pattern over here if you do and see come over here we also need to change the color right so that’s what we need to do okay anyway so I’m going to remove this for now because we need to have the visual on the color itself but now this color is quite important okay that’s why I’m going to go to over here I’m going to declare another color static color okay now well we had ticket blue ticket orange now here here we would say ticket white or ticket white or I can just say TI get color why because it could be any color that you want in future okay but for now it’s colors. white why I’m doing it like this the reason is because in future you can just directly go ahead and change whatever you want to change here okay and it looks like we do have an issue so I can do like this o x FF and 1 2 3 4 5 6 so that’s also equals to uh white color okay now then over here from here actually so this one would be calling this one from here okay so here we can say app Styles app styles do ticket color whatever the color you want okay all right let’s save it and test it that it works so here we say is color is color true okay all right so it’s looks like it works now if you want if we were to change this color over here say for example save it so let’s go ahead and change it over here so now it’s kind of yish okay so the idea is you can change it globally if you want that’s the point so that’s why we did that and let’s reload it okay right so now we get the idea so we got to change CH everything over here based on this okay now even before we change this color actually I want to make the changes in other places otherwise if you set this condition to true it becomes white and my or other colors are gone but first let us go ahead and change those other colors okay that the places that we want to change now the first thing we want to change is this one over here like over here we have text sty third so this is a place that we want to change the color so let’s go ahead and check over here so we have this one over here right now we can actually also pass this color over here so here we could say uh bow is so it could be Noble is color okay and then we also take it over here is color uh this dot is color this dot is color all right and let’s see what’s going on Final over here final okay cool all right so all we need to do we need to do this conditional check over here so just like earlier here we say is color null which means we didn’t pass anything then we are going to use uh this one Whatever is there default one so all already what we have fine that would be based on if you don’t pass anything if you don’t don’t pass anything it’s like nothing has happened we are still keeping the original one but whenever we pass something then over here we could do like this uh app styles. headline 3 okay so that’s the actually the earlier very earlier the style that we have set over here now this this one of course we are calling it from here right so over here this time we want to say pass this okay so here we say is color is color whatever you are passing so remember this ticket view would get called over here so from here we are passing right but of course tiet View also gets called from other places as well but since only we want changes over here we don’t want the changes to take effect here we just want the changes to take effect here and this place is being called from here and then from here we are passing everything so is color over here we can say true which means I want to change the color okay and as you can see so we come over here we receive it whatever was being sent over here we first change the background color whether we are sending anything or not and the later down the road the same color we pass down to here hopefully it makes sense the logic that how we are doing okay right now over here we also have this big dots okay now we want to do the same over here okay so let’s go ahead and Define a Conover here final bll is actually not const this one and then this dot is color and over here so let’s go ahead and [Music] check is color null if which means we don’t pass anything and then over here the dot itself okay so the other thing we could do actually first not really inside this we can directly change it over here is color null then we use this white color otherwise we use this color and let me remove this one first okay and most probably we need a conable for it let’s save it okay and let’s reformat the code right of course it didn’t take place yet because right now we need to be in the ticket view Big Dot over here and here we say is color is color let’s see invalid cons you can’t have this on now let’s save it and here we go our dots just appeared okay so remember these things they take the color whatever you are passing here from here it’s very important okay for example if you pass nothing okay it will take the original form if you pass something where it is true at least you pass something then it’s going to work like this hopefully it makes sense now Big Dot over here this one we also want to go to our app style class over here and then here static color dot color okay and now let’s to get a screen to get view let’s come over here where we [Music] were uh big actually let’s go over there and over here F Styles dot do color go and save it and no other changes now let’s come over here one more time and then we are here now we need to change the color over here so once again is color equal null then we use white otherwise we could do const color o x FF b a c CF7 so this is the color we want so let’s go ahead remove the const let’s reformat the code let’s save it okay now we see it over here okay now once again let me go ahead and copy this the idea is you can always change all the colors here so here would say now we already have a plain color actually plain second color okay right now let’s come over here app Styles dot plain Second [Music] Color all right and then over here Big Dot we already work on that is color is color is color let’s REM that and beautiful so we already working step by step on this okay all right so now the same thing goes over here uh as you can see text Tex stle fourth so we had this one and I think we also had Tex stle three now let me go ahead and Define Tex 3 and over here I I think pretty much the same right so it the the condition would be same we go ahead and copy this and put it here and then is this dot is color right now over here is color no do this otherwise app styles. headline 4 you get the idea okay so it’s going to work like this but of course we don’t have any changes yet because um we I think I’m missing something over here I didn’t didn’t do that yet okay so even before I move somewhere else here is color is color let’s save this okay now it appeared now over here the same thing is color is color let’s save it we’ll see this one okay all right and then let’s come over here again is color is color beautiful so all this things slowly started to appear and the same over here is color is [Music] color so we almost done with this part okay now the next part actually should be pretty much the same okay so earlier we were done with this and now we are going to work on this circles and dots and that would refer to our uh circles over here and this dots okay all right so the first thing we want to check about this color so here if the color is null nothing is given then we’ll use orange color so here is color null orange otherwise we are going to use use app styles do color white I guess do you have white color I think we should have color white looks like we don’t have uh I think I have defined it the other day tiet color actually this one I didn’t call it color white I called it ticket color okay let’s have it as it is okay so now it’s gone all right okay and now I want this big uh big circles over here now of course we also need to pass this one final bow is color and then over here the same changes actually like we did before is color now over here we’re going to check is color equal null this one then we’re going to use white or otherwise here going to use colors Dot gray shade 200 this one now let’s come over here and inside this going to pass is color is color and it should be fine looks like we have a bit of issue over here is color is color okay what’s going on invalid const okay this const is causing the problem let’s save it and we kind of see it there and most we are not happy with it let me go ahead and check that if okay I think it should be the opposite save this and then let’s compare with this okay well it’s almost not visible okay the one that I think my original design might have some problem over here and this is the correct one and as you can see all right and then over here what the same thing is color is color Okay so let’s go ahead and save and we see it on both sides okay all right now how about this one so so this part is going to be tricky well then the first thing we need to do this one over here once again so it’s pretty much everywhere setting the color is color and then here is color okay and then the only place we need to change the color is inside this so is color equal null then we use this otherwise colors do gray. shade so go ahead and use the 300 and we have a const issue once again okay is is what we have and then over here all we need to do is is color is color let’s save it and here we already see the the dots they have appeared if you see carefully that they already have appeared so that part is also working as we expected okay so now we’re going to go down to this one over here and once again inside this over here actually so you have this color so let’s go ahead and change the color is color equal null then we use this color whatever the given color otherwise Here app color do ticket color actually not app color is app Styles the ticket color this one let’s go ahead and save it and we already see it’s gone because we are not passing over here we are passing is color equal true so this condition is taking place and now how to work on this borders so here we go so in fact over here we want zero borders which means we don’t want borders so over here is color this one is null then we have 21 otherwise zero and let me remove this and the same over here is color equal null okay let’s go ahead and check and it’s gone now since it’s gone it’s going to look like more like this okay now I know that we have this problem with the color which we will fix later so let’s go ahead and work on them first all right and then the other color is over here this one okay so this is the color over here third so over here up to here we need to pass so first we are going to pass from here we are going to pass color to this one and then it’s going to pass it to this one so just keep passing so let’s come over here let’s declare this declare a color final bull is color and then actually we can do it at the beginning no let’s do it at the end oh actually sure it’s here uh the this dot is color right I think we can reorganize the code this so it’s more readable and then over here is color is color whatever it is you’re passing the same over here is color is color now all I need to do from here to pass is color is color and you’ll see that it already started to change over here the same goes here is color is color let’s save it and then over here is color is color let’s save it okay so with this our ticket has shown up so in next part we see how we are going to change this to lighter color now they’re same black but I think they have to be lighter color just like this we had all right so now we need to go ahead and change this color look at this well let me go ahead and close all of this because we have too many of them we don’t need this for now this we have ticket screen and we go to ticket view so the top part is okay like this row is okay and then the problem starts from here right this color like this one over here the color they show is the same as the top one now this is the fourth style color and over here actually let me reformat the code now if it is null then we we use default one of course which is this colors and if it is not null we go over here but there is this problem with the color actually we can add a new color inside this and it’s going to work like this okay and most all we need to go ahead and import uh material color constant most we need to remove this go ahead and reformat the code and let’s save it and if it didn’t work so let’s go ahead and restart our app and let’s come over here yes so as you see that it works now and then what else so ticket view so this part is working flying time and over here that’s fine and what else so we do have the big circle this one we good and then once again over here okay and once again the this third color that that we are using okay so okay this two right so this one this one refers to this two and this one refers to this two and this one refers to this two so how do we change well and over here we see that the first one is this one and the second one is this now of course they’re using the same one actually we can change it to Fourth let’s go ahead and see how it works is fourth is showing this color right so the first one is third which is this kind of heavy color the second one is the fourth and if we do change it and uh yes it worked okay so now previously there were the same but now they’re different and it’s working so with this we are done with this section okay so over here now we are going to continue to work on this and this work would be similar to this one actually over here and then we’ll go down to this and everything else is the same and now this part actually would be doing later okay it’s not important at this moment moment we’re going to do it later all right so at this moment over here uh we need this one uh this line over here and how do we get that now this is something that we can skip for now hopefully it’ll autoa here as we keep working on this so now let’s go to our ticket screen over here and then we’ll see that how it auto appears for example I mean this line to be appear it’s easy way to do actually we’ll use a trick and how to do it for example first here let’s go ahead and work with a container and then of course as you see all these colors is white right so here we going use color and colors. white we can use that one but we already have of course app Styles dot uh package dot I think this is ticket color was that okay looks like we have the same color so we’re going to use that one and then inside this over here let’s take a look that how things work now for now we can forget about this one okay now over here we see that actually we can first use a column the reason we’re going to use a column as you see like this thing is one piece this thing is another piss this thing is another one and this thing is another one so they are all in column format and in between we can also use rows okay so this is part of column but for children we will use row layout so first let’s go ahead and Define a child and then here we will say column and then here we’ll say children now as we have this one over here inside this the first thing as I said that we want to have row so let’s go ahead and do that as usual we’ll have children then we want to show this one and this one and it’s easy to show why because we already have this actually layout ready which is this one so all we need to do let’s go ahead and copy this and let’s put it here but of course I guess we need to import it as a package now course this one doesn’t have any validity over here so here we can say flutter DB and instead of date here we can say passenger and then is color is a color so if we don’t have anything so here we can just simply send it true okay so that’s the first first thing that we could do and then we can go ahead and copy this and put it here and if we do put it here as you see we have to have this and passwort the passwort itself so let’s go ahead and copy that so that’s the beauty of this thing because we have worked on them before so all we are doing pretty much a little bit of tweaking and uh say like this one and I do believe here we can have a space and after that over here we can say passport okay and then over here we can start it okay let’s go ahead and save it and see how it goes okay now it already showed up but of course there are some deformation the first thing we want to do want to move the um the back this one over here so instead of doing this we could do end okay and as you see that it already showed up but this one didn’t go to this end why not but this would be dictated by over here U main access alignment and Main access alignment do space between okay let’s hit enter and now we see that okay it’s working all right and but now speaking of this one this layout definitely doesn’t look good it’s overextended both left and right now since we are inside a column over here actually we can apply margin so let’s go ahead and do margin and then add in sets dot uh symmetric and we could do horizontal and say horizontal 15 okay now it came as this white one left and right beautiful but inside it’s still too much to the left and right so for this reason over here we can use the other one say padding Okay add inser do SYM mric over here we can use horizontal once again 15 and vertical say 20 okay so we’ll have a lot more space and now it looks much better as you can see over here and it’s beautiful so now let’s go ahead and put const modifier looks like we need const for each of them it’s going to work okay beautiful okay so our next step should be actually working on this distance because here we have a very tiny distance where we see there is a lot more distance okay so now we need to find where is this space coming from if we do come here we see a little bit of tiny space in that’s one pixel but here it’s way long it’s more than that so where is this coming from all right so let’s do a little bit of debugging so here inside this container so let’s set up color over here and here is say colors. red let’s save it and here we do see that so this container actually has extra margin outside okay so this is because of margin contain itself starts from here okay so this is the one that causing this extra space but of course it has children inside so one of the children is this one the very first one and let’s go ahead and check the color with this here colors. blue okay let’s go ahead and save it so here we do see that okay so in fact this container itself is causing this extra space now it has we do see that it has height so let’s reduce the height to 180 and we see that it’s gone well if it is gone then can we simply go ahead and do this sized box over here and say height to one okay and here we go we see that it appeared in that case we can just go ahead and remove this and then we can also remove this one from here okay now of course with this we don’t have any changes over here it’s just like the way it was it doesn’t affect the design and of course nowhere else it’s the same thing okay so here same and then is what we had over here okay all right so well we are looking great step by step okay so here we are we have this ticket screen and then we have this one over here the next part should be showing this right number of EET on booking code things like that now here we go this is the first row in the col column remember as we said early that everything would be in a column format here right so in the column the first row was showing this one now we’re going to go for this right and before we go for this well definitely going to go ahead and do sized box and height 20 and then definitely as you can see what you have to do next you need to go ahead and show this one this lines over here okay now to this to show this lines actually we can come to ticket View and within the ticket view while we already have let me see where we are the dots okay this one so app layout Builder widget this one so this is the one that we want to call and now let’s come over here so inste this let’s go ahead and call this one and we know that we need uh few arguments to pass but first let’s go and import and then random divider that one and what else okay so Random divider over here we’re going to pass 15 what else we need and also we have width okay now this width is optional right but we want to pass a width over here so here we’ say width equal five and then over here is color say is a color and let’s see is a colorable so we get an issue most this const so let’s go ahead and remove this let’s have it and what else undefined is color well if it’s not defined looks like tiet screen doesn’t have it but it’s okay we can pass false or true whatever as long as it has a value so as you see it already showed up over here beautiful and that’s what exactly what we wanted and then over here let’s go ahead and come over here once again I think we need a comma for this okay let’s use a const modifiers so that we are clean okay beautiful and of course right after this actually we can once again copy this one as you understand that if we copy this we going to show like that right so here let’s go ahead and put it and it would look like okay fine whatever it is okay so the first thing over here we want to change is this one so it’s a random number ticket number so that and then say like that it’s just a random number okay number of e ticket like this and and then over here pretty much the same so B1 125 like that and then over here booking code so let’s go ahead and save it and beautiful and that’s what exactly we wanted to see and that’s also we see it over here okay of course this number over here we can make a little larger if you want box side it has a lot more digits on it okay right so this what we have and after the what else we have so here you see that we also have this one so that means we can just simply go ahead and copy this section and we can put it right after this row okay and here it showed up again beautiful now let’s look at this one that how we are going to do this now once again definitely this is we can put inside a row but the problem with this is that uh here we need to introduce something new okay so let’s go ahead and do the Row first okay I think uh so let me go ahead and take a look at this so we can copy one of this and then we’re going to put it here let’s save it it showed up but as you’ll see that over here this one uh which is would be the second one over here we can keep as it is but we need to change this one because these are all text widget but here this is an image and other stuffs together okay so it has got a bit more complex layout anyway so let me work on this one first so over here we’ll have 299.99 I guess and then what is the other thing we had price okay looks like it has got four so let’s pour four and then here let me going to do price okay changed all right I need to work on this one and how do you going to work on this now let’s go ahead and take a look at the basic thing that we want okay so this is definitely a column just like this because this is column right but this column doesn’t support image so we’ll have column and this is the first child and this is the second child but first child itself could be a row because this is actually an image okay and this is a text so hopefully you understand so here let me go ahead and put column and then children and of course we need this and after that over here we can have row and then we’ll have children and as you have it over here first we want to show an image okay so here we could do image dot asset image this one and all we need to do pass the image name now let’s come to [Music] our uh this one resources folder and then media actually instead this we have all these things and then at the same time if you do come over here there should be a Visa card image This One Visa card.png so let me go ahead and declare a new variable so here we could just simply do Visa card and then here we’re going to do PNG and then this uh card that’s it let me close this and then here we can say app media get this and uh Visa card this one and what else we have so we have a const issue somewhere looks like this cons just not permittable now this is gone so we need to put cons somewhere else okay now let’s go ahead and run it let’s see how it looks okay right now it should have over here but the thing is that it’s way too big now over here let’s do scale and for scaling use use something like this so it becom smaller actually okay and then what we can do after that actually since this is a row we need to show this this one over here this things okay so here we can simply go ahead and invoke text and uh it would be I guess three stars and two 4 4 62 and let’s go ahead and apply style to it here app styles do headline go ahead with three let’s put it in beautiful okay so this is a Visa card you get to just see the last four digits beautiful okay now inside the column uh this is the first child and then here we’re going to have to have text again and then here we’ll say pment method and after that let’s do style so over here we’ll have app Styles dot headline 4 this one let’s go ahead and save it and beautiful so this exactly looks like this one over here wonderful and here actually we can create a little bit of spacing okay so here we do sized box height five and and save it okay now it looks better now all I need to do quickly go ahead and put const modifier now I’m going to be quick with this looks like all of them they need const modifier okay right so with this we’re almost done and in the next section actually we would be focusing on how to go ahead and create this and then we’ll be done with this [Music] page okay so now let’s go ahead and work on this section so we have every part every other part is ready as you see over here so only part remained this and this okay so now to be able to work on this uh we are here let’s take a look where we are right now so this is one of the containers that we had and right below this container will continue make sure that you the right place okay so right below this one so we’re going to continue so here we’ll have another container okay let’s go ahead and do that and inside the container now let’s see how to and uh the understanding this thing now so definitely this is the container okay all right this is the container and then it will have border right but only on the two sides it’s not everywhere okay so here you can say bottom of the ticket detail section okay all right now over here so we understand that this has to be uh border so we know that here we must need decoration box decoration and then inside this here we can use border radius so border radius that only because when you use only you can use border on both I mean you can select borders so first one is bottom right and then radius do circular over here and we can use it 21 and then bottom left radius do circular 21 all right so let’s go ahead and save it and of course it’s not visible because we don’t have any color yet but now let’s go ahead and put color over here color so here app styles do ticket color this one so this is going to be white and I don’t think we’ll see anything yet because we don’t have a child now insert this let’s put a child over here and this child would be a container again now here we want to have a container why the reason is is because well if we have container padding top padding left and right padding they all become easy okay so that’s why we need that now over here at the same time we see that we need to draw something like called uh it’s okay it’s so rectangular with border right it could be achiev with border radius but there is another widget we could do it we could use to achieve this so here we’ll have child and then we will use clip RCT okay this one so it would be a rectangle but clipped so that’s why we have this so here we say uh let’s see what is that I think we can get border radius radius this one and then inside this we’ll have border radius dot circular and then here we’re going to have 15 let’s see what’s going on it should be actually clip arct this one and now it’s okay let’s go ahead and save it and yet nothing is visible yet now for this reason let’s come over here and inside this we can do a child let’s do text allow flutter flter let’s go ahead and save it and here we see that it already showed up but of course that’s a little ugly but as you see on the both sides right now for now you can wrap it around the center widget uh I think I got the wrong one let’s go ahead and wrap it around a center widget so it would be Center so the first thing we want to do is removing this now removing this depends on this container because they’re coming from here the pen container this container is just occupying this space over here all right so over here you could do margin and agences do symmetric this one and then we could do say well horizontal actually we can just simply do horizontal and 15 we might not need vertical now as you see it looks rounded this and this they all look rounded beautiful isn’t it all right okay so that’s the first thing we had okay now we’ll go ahead and continue to work on this well the next thing we want to show inside this is actually this kind of barcode Now barcode actually we could go ahead and install it like this so flutter P add barcode widget and and f p get so this is the widget that we are going this is a plugin actually there the plugin that we are going to use if you do that then we’ll be able to actually use this uh or generate this this kind of barcode okay now I believe we need to stop and restart because we have installed a plugin okay well it’s not there yet but we’re going to work on this so now over here instead of using this here we could say barcode barcode widget this one and inside this over here we’ll have barcode and there is this class bar code and uh from it you can invoke this one okay now let’s see what’s going on uh so it wants the data so let’s go ahead and give it a data the data is the one that actually so since this is a barcode so it wants you to give you a data which means that once you scan it it would show this website or information related to this string so that’s why it needs data all right and we do see that it’s already visible over here and that’s what we wanted okay all right and then this one is of course I believe that this shows this vertical lines based on this one okay but of course this is not the way that we thought like this one so we need to work more on this now we saw that earlier this margin was helping to push it inside right but we now we are inside the container remember this container represents the whole barcode so we want to push the barcode inside more but within the container itself so we can use padding so over here we would use as inss only and do symmetric and here vertical 20 go ahead and use it okay so now it came down all right okay now let’s come over here this container itself now here we could do padding now the padding we can do as insets do subm metric over here I think we could do something like 15 so it’s going to push it inside more symmetric horizontal would do better okay right you see that okay so it’s over here barcode is little too big so we don’t want it like this so here we can assign height say 70 now it became much smaller okay so now this one doesn’t look like once again over here this one so we have this borders over here now remember earlier I said that this would supposed to show up as you go ahead and scan then it should show up so here’s another property do draw text so we don’t want to show the text so hide the text and now as you see it’s gone so if someone scans this hopefully to direct to this um website over here and then there are other properties that you could set up color app Styles uh dot I think text color this one we can assign this not much changes and then I think there is also called width double do Infinity so which means let it take all the available space okay so now with this we have a beautiful um ticket ready so which exactly looks like the one that we have over here okay so the next thing is just going go we need to go ahead and show this ticket over here and so let’s make sure that we have this okay so one more thing is actually missing before we go ahead so there’s this line over here so here we could just simply go ahead and do size box height one so we’ll see one pixel of differences and beautiful all right so the next thing we want to show is actually kind of this ticket which one is this this ticket as so this one actually so all we need to do go ahead and copy this and then we need to put it here okay so we can say colorful ticket and then what does that mean over here let me put white and black ticket so colorful ticket means okay let me go ahead and put it here let’s save it so definitely we see the color is here sorry the ticket is here right okay now at the same time over here we need to give it a little bit of space so let’s go ahead and do that so size box High 20 let’s save it that it came down and then we want to show the color so remove this color thing over here let’s save it and beautiful this isn’t it awesome just showed up just one line of thing it changes everywhere so here our tickets are working here everything is working we need to work on this one this is a bit slow and here of course our ticket working so everything is working as expected and if you have followed so far you’ve done a great job with this well done let’s continue on our next section okay so let’s continue the last part of the screen is having this two circles over here and of course definitely it makes it very beautiful so that’s what we want to do and to do that one thing you have to understand is that now as you see however however used scroll this thing it looks like stock on this place I mean which stays on this place and which makes it beautiful so you see that this is overlapping this as on a certain position so we need to do that and how we are going to do that well for doing this we need to use special widget which we already have used before this is called stack widget okay now how is going to work so let me col Ops the code and so that we know that how it’s going to work so so far we have list View and this list view is containing everything over here everything you see okay so we need another one that would get stuck somewhere here okay now since I said that this would be a simple overlapping so definitely we need to use stack widget now within stack widget we’ll have list View and positioned widget and that’s how they’re going to overlap each other now over here let me go ahead and find stack widget looks like we don’t have it here so I’m going to wrap it around column first and then I’m going to wrap it around Stack this stack wiget also takes children now you go ahead and restart definitely we won’t see any changes this same thing right okay cool now inside this first we need to go ahead and uh draw or show our position widget so here position and the child would be a container let’s go ahead and do that okay right and after this we need to give it even before we do anything else so let’s go ahead and give it another child okay and the child would be circle of water we we want to draw something circular and circle over is the best one in this case Max radius four and then over here background color it takes background color F Styles dot uh I think text color this one so let’s go ahead and save it and we already see that it’s over there at the Top If you see that but this is the position we don’t want so we need to give it a position so here let’s go ahead and give it a position left and we give it pixel 22 and then we do see that it moved over here and then give it a top position now let’s give it 295 and we see that it came down over here but of course it’s too small and this is where the container comes in because we already have container the first thing we could do we can give it a padding and as inserts do all so all so container within it we’ll have some empty space uh let’s see okay now let’s continue to work on this here we could do decoration and box decoration and then here we can have shape okay so this a box decoration instead of giving it border we can directly change it through box shape so box shape do Circle so let go ahead and save it and then after that give it border uh let’s see so here border and then border do all okay give it width of two now let’s see the magic so so this is the magic okay so it has a border outside and the Border itself is two and within this we have this white color which is the padding three but of course if you increase the padding it would look bigger okay but of course it doesn’t look that good so we’re going to put three within it and that’s how it works and then once again let’s see color if we can take color so here we do app Styles Dot text color let’s go ahead and save it okay all right no changes and then over here one thing we could do let’s go ahead and play around with this play this thing so here say 75 if you do that it might go up and then say 65 okay like this so you can try to set it which I haven’t done done okay so it does look like a little bit like this it may suit perfectly so let’s go ahead and do it like this and then over here we going to do the last part now to to do that last part over here now we can go ahead and just uh copy it but that’s not good so what we need to do instead we need to come to this uh ticket screen over here and we have this widget folder now inside this here we can create a new file so the file name we can say ticket position Circle dot do and then over here we could do St straight list tiet put positioned circle now I’m going to remove this and put it here and uh let’s go ahead and import whatever we need over here looks like we need coer Chino and we also need app style and then Circle over which can come from Material app then we we donate this so this way we become reusable wiet okay I’m missing one t okay all it looks beautiful copy this come over here and remove this okay and then let’s go ahead and import it we should be good to go cool all right now let’s come inside this we’re going to and close the others we don’t need them now the only thing we want to change over here is this one okay so we need to work on this position that whether it’s going to be left or right okay so we want to make it reusable and then for this reason over here we can define a Boolean final Bull and then it could be say pause which means for position okay now here we could say this dot pause and that’s it now we say that POS equal true if we pass true then we use 22 otherwise we use null now why we can use null here you see that it could be nullable okay and of course if you go ahead and restore it still works sorry uh this time it will not work and I think we might have an isue uh not issue though let’s see because it’s a knowable thing so here uh this is acting up because we need to assign it a true or false because right now it’s knowable which means that I don’t need to call it from here but if I don’t call it from here then over here this condition is not true which means it becomes null then it doesn’t work okay so what I need to do over here here I can send pause true and then you see that it works it came back to its position and then how about the other one now right condition for that one here we could do right if pause equal true then we use null otherwise 22 okay so let’s go ahead and restart and we’ll see that it doesn’t affect us okay it doesn’t affect us and here we go I mean this condition this newly added condition doesn’t affect us the reason is if pause is true which currently it is true over here in this case so well true then 22 this one and for right this one is it true then it goes goes for null hopefully it makes sense now we can go ahead and copy this so let’s go ahead and work on this so over here we can pass null and let’s see how it goes and you see it showed up and it doesn’t hamper any other de I mean position hopefully it makes sense that why it works because now for the second one you are already passing null if it is null then here it’s 22 and of course if it is if it is null so over here this condition is false then it’s still null okay so you need to think more to get your head around this thing but the condition is just like any other tary operator and the way we worked on them before right now we can go ahead and work on this profile screen but but even before we do work on profile screen I think we have to take care of few other parts like for example we have this viewall screen and we want to be click on this and go to a view like this but with Dynamic value we don’t want hardcoded values for this so we want to have Dynamic values that’s what we want to do and as well as after that we also want to go ahead and click on this and view all the hotels right now we just see two of them we can have more data and then view all them and then we can also go ahead and uh see the detail so here we’ll cover the navigation section and then we’ll also see how to see them in detail okay so currently we cannot do any of this so this is what we want to do okay so since we understand the concept what to do now now the first thing we need to do go ahead and work on this section so this all ticket screen and we know that this is our old ticket screen right so this is the ticket screen actually uh that’s showing all of them and now we want to be able to click on them and go to a new page now how to do that previously we have seen the concept of gesture detector so here we have to have gesture detector so I’m going to go ahead and U convert this sorry not con convert this wrap it around using a widget which should be called gesture detector and looks like we don’t have gesture detector so here I’m going to call it widget and then over here we could do gesture detector all right and then of course we know that the gesture detector has a property which is called on tap so here we are going to do this okay and one of the first thing here we do we’re going to say um tapped okay we make sure that we have this uh thing that’s getting printed okay I’m tapped all right now the next thing we want to do is as we click on each of them we want to get their index now why you want to get their index the reason is because if you see our ticket screen over here we’ll see that let’s go ahead and check our ticket screen so here you’ll see that we have ticket View and ticket view is uh taking ticket list and then an index okay so we need to pass Dynamic index to it so what we’ll do once we click any of the ticket view remember right now wherever you click that particular ticket view over here is getting clicked okay now if you don’t understand it it will make sense very soon just bear with me and then as I click we need to grab the index which we didn’t do yet so we’ll grab the index of this one of the items and then we need to call call this ticket screen from here and as we call we need to pass the index we’ll pass the index at the top and then over here you will see that um we would be able to pass that index the one that we are passing here to this place now that means that it’s taking Dynamic index which means a different of them so as will be clicking on differently and different ticket view item it will get me different information with this it’s more Dynamic and actual routing okay so now let’s come back over here this is what we did now one of the other things that we need to do right now is getting the index because we need to know where we are clicking at least we have to know which one okay now to be able to do that inside this ontap function we can actually create a variable you can say ver and we can call it index and then over here we need to get this ticket list this is our map remember and within this there is a function which is called index of index of get this one and if you do see that if you have index off it takes an element an element could be of map type okay okay this is our map and we know that this is a map as well so we are passing exactly the same thing so let me go ahead and grab this and pass it here and then let’s put a comma and then we can print I’m tapped on the ticket so here we can do index okay all right so let’s go ahead and print it now you click on this so I’m tapped on ticket zero I’m tapped on ticket two which means these are index actually right because index always starts from zero so we have total six tickets so if I click on this we’ll see that we are tapped on ticket five so so far so good so this is the thing that we are able to do just now that we are able to grab the index now since we are able to grab the IND index our job is to take this index and pass it to this ticket screen over here so that we are able to pass it down to this one now how to do that well there are many different ways to do that one of the ways we do using navigation okay now earlier we have seen that for navigation we need to use Navigator off context or Navigator dopost name like that those are the functions that we need to invoke so this is what we want to do now from here as we click on this we would be we need to go to new route or new screens right so just like last time we have seen before we need to Define them so the first thing we need to do in our app routes over here we can define static const ticket View and then here we do ticket view okay like this so now this would be our route name we can refer it from anywhere and now we need to register this route name with the routes uh argument over here as a map so let’s go ahead and do that here we do app routes we don’t want homepage we want here ticket View and then we pass the context and then we say const and then here we’ll say ticket screen okay right so ticket screen this this page right now would be working as a route for us okay previously it was on the bottom screen and it is still on the bottom screen but when we click it would be like a new route okay all right so that’s registering has been done but well even after that we still don’t don’t know how to pass the argument because we haven’t seen anything like this so here let’s go ahead and Define this one navigator navigator dot uh here Navigator post name this one and we pass context and our route name so what we can pass over here we can pass context we can pass rout name and we can pass arguments this three things now the route name should be like our routes name defined in the routes file so here we’re going to call it ticket view okay all right and then from here let’s see I think uh we might have an issue with the naming instead of uh ticket view we can call it ticket screen okay otherwise we might have problem with the naming and which is not good sorry for this so let’s go ahead and just simply change very quickly okay I think this is a better way to naming all right okay right so we have this and then the other thing we need to do over here is you’ll see here we have this one if you hover over on this you’ll see that okay you also have to have if you want to pass something else you can pass it the name as argument so this is what it’s saying and for this one you need to pass using this curly braces okay so this should be named route or named route here it means that the proper is UN named actually because we are giving it like this and this is also optional I think named optional arguments so this is how we are doing actually not named routes name optional arguments so we are naming them over here now here we’re going to do like this so if you go ahead and hover on this here you will see that objects arguments okay and this one you have to pass within curly braces because this is optional optional and named so that’s why you have name and curly braces so here would the arguments and do like this now within it over here you can Define your key value pair so in our case here we are doing say index and then we are passing index okay so this the only argument that we are going to pass because we grabbed the argument right okay so now let’s go ahead and restart our app and let’s come over here and this time if you’ll click you’ll see that we go to a new route or our ticket screen but of course the bottom navigation bar has gone with this we have another problem we don’t have this what is it the our abar we don’t have the ab bar so for now we are going to go ahead and create an Eber Eber for our ticket screen screen now currently we have body inside this ticket screen so to create an AB here we can just say abber and abber and then here you can say title and just pass the name so what is the name over here we want to pass tickets like this we don’t want to pass anything else so now as you see that okay it created a a back button now we are able to go back okay now it does look a little bit of ugly so we can give it a quick fix over here so here it says that horizontal and vertical we have 20 and then we also have this one so for now I’m going to go ahead and comment this out let’s go ahead and click on this yes it looks much better and at the same time we also Don need this for now so I’m going to comment this out as well okay now it looks better okay as you can see that okay and in fact we also May comment this out okay so let’s go ahead and check that okay now the other thing we could do over here right now is uh doing a little bit of styling of this okay now if you do hover over on this here you might see different colors that you can apply so we have this background color okay so let’s go ahead and apply background color and for now we’re going to apply the same color over here okay right so now it looks much better okay so whenever you click on this we do see this okay in fact over here you can also take this out we don’t need this one okay now this exactly looks like the other pages and with this our uh navigation is working but uh then this is still not dynamic as you see this this things are pretty hardcoded right but now we have very easy fix for them it’s not fixed we need to continue to work on that so let’s in next section we’ll see how to grab this now to be able to grab this we need to come to this one over here and we need to make some changes what are the changes that you want so first we need to convert this to to uh State full widget so here I’m going to do this operation and then now after that it would become a stateful widget because you see that we have a new uh part of the code or statement that’s been created over here and at the same time we are invoking this state class and which is an abstract class anyway so now let’s move over here inside this there is something called the change dependencies we need to invoke this one so this is really used whenever you move from one screen to another screen and then at the at the same time you pass arguments or objects and you want to grab them to another class so we are coming here from our earlier screen like from here and then we want to pass something on this screen and grab it and for those purposes you do the change dependencies the screen you want to grab it you need to implement the change dependencies in that screen now within it you can declare variable ARS you can name it anything and after that here we’ll have this okay so now this is a sentence that sorry not sentence a syntax that you need to use to grab arguments whenever you pass around arguments remember from here we are passing passing this things right we are passing arguments and you can obviously see that here settings. arguments now this is a very different thing which will not cover over here remember that when you pass arguments and you have to grab it you need to use this one and then here you can simply say as map okay right and then okay right we are missing something now over here that we are passing once again this thing as a map so that’s why here we mentioned that okay this is coming as a map now within this map we have things for example we going to print say past our past index actually and then here we’re going to print args and then here we’ll have index okay all right so let’s go ahead and save it okay I think we already saw something past this zero now let’s come over here click on this here we’ll see that past index three and from earlier screen we also see that here we have 3 three so this is what is aligning together okay right so it looks like this is working now if this is working we need to assign this to here our ticket View and how to do that for this first we need to go ahead and create a variable and this type is light okay we can say ticket index okay now you can give it a default value it doesn’t really matter and let’s see add annotation type okay so light in so it’s saying that okay you need something okay now whenever we have a new value like for example from here we can pass it to this one and then here can do args dot I think I don’t think we can do this so we still have to do index okay right so let’s go ahead and save it hopefully we’ll have no issues over here now since this has been done so you can take this take index and then we all we need to do pass it here so instead of being hardcoded we do like this okay of course you also need to do it over here at the bottom so let’s go ahead and find it okay right over here index uh ticket index actually this one right so now let’s save it and you might see that there are changes immediately but I think that was our first one so now let’s come over here now let’s see okay so the first one is 8 hours 30 minutes New York to London and New York to London 8 hour 30 minutes this is what we see now let’s go ahead and click on the second one so Daka to Shanghai 4 hours 20 minutes so Daka to Shang High 4 hours 20 minutes and we see over here the same thing so this is awesome this is beautiful which which means that this is already being Dynamic now this is from New York to Beijing so 9 hours 30 9 hours 35 minutes New York to Beijing 9 hours and everything else is correct as even the date as you can see that 11th of May and departure time 10:53 so perfect so this part has been done so our app became more and more lively not just few hardcoded screen not only that we are able to pass things around and make it more Dynamic so that was uh first part of the navigation in next section we’ll see how to go ahead and work on this and do exactly the same thing so now the other thing you could do right now is go ahead and work on this now to be able to work on this first we need to come over here and we have this hotel View and we know that we are we have printed before hello there so we want to go to a new screen from here just like other times so we have to do we have to go ahead and create a new route name so let’s go ahead and do that and here we can say all hotels okay and let’s go ahead and change it here we can say hotels right and then over here we can Define the routes now of course with this we will have an issue but first let’s go ahead and copy this and here we can say do all all hotels right but then we don’t have this all Hotel screen over here right so as you see early we had for home we have all ticket K and this and that so over here we can go ahead and create a new file and then we’re going to call it all hotels do Dart okay all right okay so once you do that over here we’re going to hit St stateless and then we’re going to say we can say all hotels I think that’s what we registered all hotels right so over here we’re going to P pull all hotels all hotels right now of course with this we still have issue because we need to fix on this so let’s go ahead and do that and then we need to import it let’s go ahead and import it beautiful now let’s go ahead and save it and we do see that we don’t have any issues now all we need need to do we need to move over here and then we need to copy this one okay so Navigator push named context and our app routes okay so let’s come over here go ahead and put it and instead of this yeah we going to say all hotels and it’s going to work of course so that means we can click on this and we’ll view this and it’s very ugly so let’s go ahead and change it instead of this over here we can have scaold okay and uh after that within the scafold itself here we’ll have so let’s go ahead and save it and then what the very first thing here we could do ab bar because we want to go back and then here title and then text we just text so here say all hotels okay let’s go ahead and save it and this is what we see so this routing is working and then at the same time we can go ahead and do a background color for it and I do remember that app itself we had this background color so let’s go ahead and copy this and we going to put it here and we need to import it let’s go ahead and save this and then here we see that okay right now it is weird so here we going to do the same okay now it matches up correctly as with like our other styles over here as you can see beautiful so which means that this all hotels tab is working and our next step our next job would be showing this hotels over here okay so this is where we left of last time we were able to go ahead and create a route as you can see from here now since we go over there we want to display our hotels here just like we did for hotel but right now we want to do it a little bit different we don’t want the exact same layout which I mean by like say take all this and put them here we don’t want to do this okay we want to do it a little bit different layout and which is better okay now we need to make a lot of changes regarding this if we want to do that anyway so we are going to do that right now and then over here let’s come to our old tickets and we’ll learn some new Concepts along the way okay so let’s go ahead and work with the body the concept that here we are going to introduce is called grid Builder and how it works okay so let’s go ahead and do grid grid View and Builder okay right now so how does this grid view work well if you do use grid view. Builder you’ll have layout like this okay and this is what is done using grid view well previously for each of this layout we have used single child scroll view now single child scroll view you can only get one type of horizontal or vertical layout what do I mean by that with single child scroll view as as you can see we only have this horizontal scroll view which is this one the same for the hotel so horizontal scroll view which is this one or you could do the other one single child scroll view we can also do vertical so it would be in that case just like this and there would be just one column and many rows if you do vertical layout with the single child scroll view in this case we have done horizontal layout with single shell scroll view so we got like something like this that will have only one row and many columns like for example it has two columns as you can see over here and if you go over here we see the opposite so here we see this kind of layout and it is still a single child scroll view okay so as you see that with single child scroll view you can only achieve either horizontal and vertical but whatever you achieve it will have have either one column many rows or one row many columns just like this one row and many columns okay or many rows for example here one column but with grid view buer actually it combines both at the same time so that’s the essence of grid view Windler in terms of layout so if you want to have more items together next to each other you need to use grid view Builder which means that both in column and uh roll out and where each each of the direction which means horizontal and vertical in both Direction you will have many items okay hopefully it makes sense now of course here we need to change this things it doesn’t work as simple as that it’s a grid delegate so here we need to call this class which is called Silver G red delegate fixed cross access account so here actually this is a function that we need to use and here as you see that it says cross access item so here you need to mention that how many items you want horizontally like for example here we have seen that okay horizontally you have four items but in this case we’ll just put two hopefully it makes sense all right okay so this is what you want to do and then there are other things that you need to do what is that so here you need to say cross access spacing cross access spacing would be as you can see from the name now of course here’s the other thing you have to know if our cross AIS is like this then this cross AIS spacing it also be like this okay uh you have to remember that one because in general when we have this silver grid delegate with fixed cross access account or count actually when you use this U class or widget so in general cross access refers to the horizontal one okay horizontal So when you say cross AIS spacing instead of vertical it would be horizontal spacing so spacing between these two items okay so here you’re going to say 16.0 and then main access spacing of course this would be the vertical one so vertical one meaning by the spacing between this two between this two okay all right the last one so child aspect ratio 0.7 so this tells you that the width and height of each item and what’s the ratio so because we are not giving any WID and height of each item what do I mean by that like for example say this is like a container right now this doesn’t we didn’t assign any width or height so silver grid delegate would find it out on its own now as it does it it needs to know that okay you want it like a square or rectangle now for example here we want it more like a rectangle okay or more like a square so here we can change it later and a lot of time people might say 1.0 so with that it would end up being a perfect square but of course this is not a square in our case this is just a layout now in our mobile over here definitely we’ be wanting a square okay so we want two squares next to each other so that’s what we want so we would go ahead with this child aspect ratio okay now of course here the next of the thing is coming item Builder just like any other list view Builder so here you need to pass context and length so in this case say for example uh sorry not length it should be index so and put it as index and we’re going to use it later like this so let’s go ahead and return something what do you want to return say for example return container so let’s go ahead and do that and say give it a color uh text say hello grid and then let’s give it a color so here we would say color colors. red for now okay now let’s go ahead and save it and as you can see that so here we have this it items horizontally 2x two and vertically a lot more okay now of course if you do want instead of this two here you could do four and as you can see it changes okay so that’s the beauty of grid view which you can directly work with you don’t need to create a special Loop for both horizontal and vertical layout grid view Builder would do it automatically for you now of course I know that it looks ugly but we are going to optimize it now one of the thing here we do wrapping around it padding widget and then let’s apply padding like this so now it looks better so this is what we want to look like when we click on this we will take all the hotels and we would look like this now with this your understanding about grid view. Builder should be better so now now all we need to do instead of uh this thing over here uh we need to find our hotel list and count that and insert it here one thing we could do even before we go ahead and uh use our hotel list here we can say item count say 10 let’s go ahead and see that so here you see we have 10 items so that’s how exactly it works so in next section we’ll grab our hotel list and and display it here so let’s go ahead and continue with this so over here we want to display our hotel list and then here we know that we have this hotel so this is what we want to access and pass to it now we can grab this one this guy let’s go ahead and do that and let’s come over here so let’s do that and Dot do we need to import it yes we need to okay right Hotel list. length Okay so let’s give it a length and uh we’ll see how many items we have so okay of course we have three items in our hotel list so that’s the first step and then over here you do see that we have this hotel okay so we can grab this hotel and let’s move over here can we can so in fact we can grab this let’s go ahead and do that and and uh then over here we can put it like this but of course it will throw arrrow so we’re going to fix that so the first one is ver single hotel and then we’ll have hotel list this guy oh no not this hotel list and then we pass the index to it so this index will start from zero and then we need to import it we have an extra braces and now the arrow should be gone but of course this layout might not work as expected because I mean over here you will see that we have height and width this kind of stuff but which is not suitable for this screen but anyway we’ll go ahead and pass this thing and we’ll see how it looks like and then we’ll change and of course as you see that it already showing the things now instead of four we’re going to display two of course this would look better but we still have overflow issues so these are the things that we need to change now one thing like for example let’s come over here say remove this height all and uh also remove this with now let’s go ahead and see so because of this our image is not coming out but now this is without any issues right so there are a lot more things that we need to work on this section okay so in our next tutorial next section we’ll continue to work on this so images and text and we’ll also work on the layout for the both sides okay so this is what we did last time and uh we have to fix that and even before that I think we have another issue so let’s go back and uh let’s click on this and let’s come over here okay we don’t have any problem as you can see where where you click you see the correct index and correct data but then if you do click here and if you do try to restart the app we’ll see that there would be a problem let’s go ahead and check that so here we have this null is not subtype of map Dynamic and this okay so what is this and how to understand we see it here again now if you do flut programming You’ see this kind of error a lot not only just in flut if you do react native and any sort of programming you’ll see that it is there all the time now first thing it’s saying that okay you are getting null null means there is no valid value okay in the memory and but it is expecting this one so that’s the problem so it is getting this and expecting this so it is Str that that okay null is not subtype of this in type cost so whatever it got it cannot convert it to this remember the object we get we convert to map dynamic dynamic right that’s what we do so right now we cannot do this so this is a problem okay now this could happen for many reasons the first reason most all you are getting network data and the data hasn’t arrived the UI has built then you get this because in your UI most probably you are going to use values from here but this value hasn’t arrived so it is still null and if it is null the UI cannot render anything and then you end up having this wrong value which helps you Crush the app so this is one thing regardless you read data from Json file like here we are reading data from Json file or even if you get data from Network whenever you don’t have your data ready and your UI is trying to render that in that case you will have this issue you have to avoid that now there are many ways to avoid okay now this is causing a problem so if you click on this actually you can click on here or here eventually it’ll take you here actually so actual problem is here and for that you see here this is all framework issues so from here it points to our code and then it goes to the top which is scaffold over here Bottom bar and of course it refers to eventually this one okay but anyway the actual problem is here so here this argument is null actually this argument is null and we can go ahead and uh prove that so here we can say if is null okay here we’re going to say print the value is null okay right and as you see that here the value is null okay now why this happens because remember uh on our homepage Now homepage has changed remember in our last uh section we had this grid view thing we are doing and we’ll we’ll actually take care of that don’t worry just bear with me because this issue we have encountered just now so we need to follow that but anyway so here over here when you go from here you don’t have any issues but when your app runs the first time definitely you’re not clicking any of this so it comes here and it cannot find any value because it didn’t click anywhere so it do doesn’t get any value so how to work with this so this is definitely null okay now here we could do like this one thing so we could do a conditional check if this is not null then we’re going to do this okay if this is not null we’re going to do this okay only if not null we are going to go ahead and do this that means that if you come over here and click on this this would get executed but very first time when you come to tab okay so this would not get executed because it is null right now if it doesn’t get executed this would be the value so T ticket index is zero already given a zero value and zero means that actually here we can get the very first the very first one right so let’s go ahead and click on this now let’s come over here now let’s click on this okay so we can see this and then if you come over here our app doesn’t crash we can do one more check on this so click on this our app will not crash okay right okay so this part has been sold and the other part is over here so we had this old tickets and we are going over there right as you can see but going over there we have comment this out and this is what it’s causing right so definitely we cannot change this one we cannot really make it directly reusable so we need to put it back so that our homepage stays the same okay so now let’s go ahead and reload and this is back but now if you come over here it’ll throw an error so how to solve this but for this one definitely we need to go ahead and introduce a new screen so I’m going to copy this from here all right and uh I’m gonna come over here okay so over here we can introduce a new screen okay here so whatever we had copied early from here I’m going to come over here and put it first and then I’m going to change the name to Hotel grid view okay uh let’s go go ahead and change it need to make sure we make changes here and here as well okay now we’ll make changes in this file okay so it’s not going to conflict our homepage okay so homepage would stay the same but here it’s now different now from now on actually we can go ahead and make changes that how it should look like okay so so one of the thing that we had over here is this one right now this is this has a height and then we say this thing over here the image itself okay so with the current setup we still get issues and overflow Let’s uh work on them step by step first let’s go ahead and change this aspect ratio let’s change it to 0.9 which means there would be more width than height and then over here we can also make changes so we don’t want a width like this so let’s remove this one over here and uh over here also change it to eight so that we don’t have much spacing uh on the right okay otherwise it’s giving us a lot of spacing and then ins inside this this container itself we can wrap it around an spect ratio because we need to remove this let’s go ahead and save it if you remove this because the container doesn’t have any WID and height so that’s why this image or this thing is just gone okay this container needs with an height otherwise it just doesn’t work okay now we cannot give it within height I mean that would be hardcoded so for this reason we can go ahead and wrap it around a widget and we’re going to call it aspect ratio now aspect ratio would try its best to match this or fill up this thing uh based on the aspect ratio so let’s go ahead and do that and after some testing I found that we could use 1.2 and then over here it shows up but by saying that it also means we need to make some other changes now the first few changes that we could do over here we don’t want such big line so we want two 3 and four okay so let’s go ahead and use them and as you see that it really worked and then we still have bit of problem and these are all coming at the bottom now these two are causing this problem now these two elements I’m going to go ahead and do a cut and then here I’m going to introduce the row so we can put them one after another and then inste of this we can use height let’s go ahead and save it okay right so we have already uh a lot of improvement is padding and then this is roll actually we don’t need this one I think we can just simply remove this okay and as well as instead of headline two we can use headline three all right so I think which is uh already looking better and I think we are happy with this and now if you go ahead and remove this I think that’ be gone let’s go ahead and check this thing let’s click on this okay right so we have already three of this awesome so this part is working just like here but of course here we can go ahead and click and find a certain ticket and then over here we cannot click them yet so our next step should be making them clickable we do see that it looks great but there is a bit of problem when you click on this the first problem we see is that here the spacing is not same as this now we know that this thing all hotels this body holds everything now what we could do we could go ahead and wrap it inside a container and then over here we could do margin and we can assign a margin to it so here we could do agent sets dot only and then here we could do left so over here we could do eight and let’s go ahead and fix this now there are other ways we could fix it but this is one of the fixes that we could assign to it so now here of course we do see that if we click on this now we go ahead and view all these things the next thing actually we want to do well we’re going to do it from here so we want to click any of this and then go to a new screen with detail information so that’s what we want to do now here actually when we click on a hotel we want to go to a page like this where we’ll have our hotel picture we don’t have it currently don’t worry this is what we want and then we’ll have Hotel description and then at the same time we’ll have some related images that’s what we want now one thing you see that over here as you scroll up so this image that gets smaller and then over here we see a custom scroll bar and uh I mean this is what we see as a title and then as you come down the title gets down as well and as you see that it has some animation okay so as you see it has this animation so this is what we want to do with the hotel the complete Hotel view so this is what we want to do now to do that we need to learn a lot of new Concepts so this is what we are going to SC uh cover and uh I promise that this part would be exciting because as you click on a certain hotel it’s going to take you to a new screen and that new screen will have detail information and then at the same time you you will see that it animates apart from that here you will have a button this button within this one you can do more or less okay all right so that’s why it’s very interesting so this is our all hotel and then over here we have this hotel grid View and then if we click any of the hotel we are supposed to go to a new place right and we learned that we’re going to do it using new idea our Concepts now over here this Concepts we need to cover few new widgets so the first one is called custom scroll view now this is used to do the custom scrolling which we have seen before and at the same time within this we’ll have sers slver abber and SLI list now the custom or the earlier widgets that we have seen the widgets we have seen none of them we just actually do any kind of Animation as it Scrolls because we have seen list View and list view doesn’t do any scrolling I mean sorry list view doesn’t do any kind of Animation if you use a custom scroll view as a widget then you have slivers a sers is like widgets because within it you hold sliver abar and sliver list so first we’ll have custom scroll View and within it will’ll have slivers and inside slivers we’ll have sliver abber and then we’ll have sliver list so these are nested inside each other and as you can see that sers will take a lot of slivers one of the sliver is sliver abers so SLI abber is a type of slivers and then sliver list is also type of slivers so this two we’re going to Nest inside the sliver abber and then sliver abber definitely as you see it takes abar so our abar would be animated as we have seen already and at the same time over here you will see that we’ll have sliver list within it actually we can put any kind of widget so that’s what we are going to do now now after we do this we see that our hotel each of the hotel they will have animated View and lot of fun aspect of it now the first thing I want to do it over here actually I want to wrap it around another widget first and I’m going to call it gesture detector gesture detector and then within it here we’ll have ontap event all right now our ontap event doesn’t have any event so we can come over here inside this for now I’m still going to go ahead and create a new file and later on we’ll refactor them and here we can say hotel detail Hotel detail dot Dart and then over here we’re going to create a stateless class and we’re going to call it Hotel detail and then over here let’s go ahead and import that now we learned from our earlier lessons that we need to register them now to register we need to come here app routes and then over here we’re going to say static const Hotel detail right so this is done and then over here we can come over here in our main do Dart and within it we can do app routes and hotel detail this one and then context Hotel detail now over here we need to put a comma and then we are good to go all right so since this is done now we can come over here and definitely we could do navigator navigator do push named and then here we pass the context and over here app routes and we don’t want homepage we want Hotel detail this one and for now that’s it okay let’s go ahead and click on this I think we need to restart it because we have introduced uh new section of code and routing all right now let’s click on this so this is what we see and beautiful and this is also expected now very first thing we want to do within it removing this we don’t want to show this we all we want showing this scaold here we’ll have body and within the body we’ll have custom scroll view as I said early custom scroll View and uh let’s do a return statement and let’s save it and let’s see this is an empty one and nothing is uh showing up okay so one of the very first thing I said that early that we need to show this slivers so right now we’re going to write the sers so here we’ll have slivers as you can see it takes list okay now if you hover over on this there’s a lot of explanation over here you go ahead and check it on own but I have also an article about it I’ll put the article link below so that you can find the article and also go through it but once again I’m going to go ahead and explain on my own now over here as you see that sers it takes a list and here says that yes you can put uh any kind of widget inside this thing okay so now over here what kind of widget you want to put since we are going to work with our animated Eber so here we want to have sliver abar rather than other other kind of abar so so let’s go ahead and do that let’s put it okay now we already see that we have a back button you CL click on this we can go back and this is awesome and this is already working okay and after that within it if you H over on this there are few properties that you can set okay so we going to set those properties one by one here we’ll have expanded height and say 300 okay let’s go ahead click on this save it okay of course you can see that nothing is visible yet so over here nothing is visible the reason is because we don’t have any content within it so we need to put some content now to put content we want it to be flexible because we want to make it smaller and bigger as we scroll okay so that’s why we need to use a property called flexible space now here we’ll have flexible flexible space bar as you can see that flexible space bar which means it will make our abar flexible okay now within it the very first thing we want to do is a title and for now we’ll say text and hotel title is the one that we’re going to use and of course if you go and check nothing is visible yet and the last part here you need to set image as a background okay so if you see that here it says widget but of course we’re going to put an image because we want our image to be here now to be able to do that over here we’re going to write image. Network this one for now we’re going to use Network image just for an example but later we’re going to change this so here we’re going to say https and then via now this is a website where you can go ahead and uh get their stuff for free online just write the write as I’m writing and then you are good to go so now let’s go ahead and save it okay and as you can see that it already popped up now the image itself has uh over here width of 600 and then the height of 400 okay now this expanded widget is 300 which tells you that okay so this s abar this abar that I’m building that should take 300 from safe area so this is 300 but of course if you change say 600 it would come down okay so it’s going to come down along with it all right so that’s how it works now of course you can have any size you want it doesn’t really matter so you can have uh one 1,000 by 400 it doesn’t matter so but it changes because this is very Dynamic it changes based on the item and height you give so the actual one you need to do your own experiment for your images that what you want and how much you want to show but anyway so for now we’re going to stick to 300 and 600 over here let’s save them back okay and let’s make it 300 and we are good to go now that’s the first part and then as I said later on wein it we also need slavers uh sorry we need SL list this one and it takes a delegate property and within it we’ll have slver child list delegate is what we want and it takes a list as you can see over here now within it here we could have a a lot of text let’s go ahead and put them so here I have pasted some text and it’s a lot of text now the magic will happen you will see that over here as we hover over it on top over here this image itself become smaller this image itself becomes smaller as you can see and it eventually disappears and then it starts scrolling which is very different than the earlier epur that we have worked with so SL UR is cool for doing animation and you could do a lot of control on this for example over here we do see that it goes up as you scroll up okay but we don’t want to do it so here let’s set up some property to set up the property over here we could do like this so floating false okay so we don’t want it to float so let’s see most probably we need another property to set which is also called pinned pinned true okay and then let’s come over here let’s click on this now we’ll see the magic happens as you see that abber is still at the top and we do see it okay we do see the title okay and as you come down it it disappears I mean it comes down with you as you go up it it it stays at the top and fixed and this is what this two are doing over here of course there are a lot of other customization we need to do but you get the idea the idea is you we want our text to scroll automatically not only that we want our image to scroll now for this reason we have used custom scroll View and within it of course you have to use the property sers and then the other embedded properties that you need to to use slver Ab bur and SLI list okay all right so that’s the first thing that we have done but of course we don’t want the text to appear like this okay now let’s go ahead and make some changes so I’m going to actually remove this we I don’t want any of this text over here now within it over here I’m going to do padding so let’s go ahead and do that and Ed inserts Ed inserts. all over here say 16.0 all right and then after that here we’ll have child and text now within it I’m going to put some dummy text for now so you can put a long piece of text and this is what we see so of course this is getting better for now and and uh later down the road here we’ll have a button called more or less and we’ll work on that don’t worry so that’s the first thing and then well so since this is our widget and this widget is showing our text after that we want to put another widget over here and I’m going to do the same for now I’m going to do padding and then within it here we’ll have Edge inserts and 16 add inserts do all 16.0 and then once again we’ll have text over here and here we’ll say more images okay here we want to show the images that’s relate to our uh hotel and of course here we are missing child property let’s go ahead and save it and this is what we see over here and now of course we need to go ahead and style about it so here we do Style Style and text style and within it here we’ll have font size say 20 dot w and uh font weight all right and the font weight we are going to use Font weight bold okay all right like this let’s go ahead and save it and this is what do we see now inside this we also want to show other images before we go ahead let’s go and put some const modifier because my editor is screaming at me that you should do that and at the same time I’m going to go ahead and structure this format the code all right so as you see that so by this time you do understand that sliver List It Takes list and of course since it takes list it puts the L in more like column format okay so that’s what we see over here now within this after this padding over here we want to have another container for now and say give it height say 200 for now okay forget about other stuff for now and then inside this we’ll have child so let’s go ahead and do that and then here we do child view dot Builder list view. Builder and here we want to have context and we want to pass index and then over here say I want to show some items okay and the item itself for now say we want to use Network image okay so here we’re going to return return image.net image. Network can we return this okay we have two M’s I believe that okay right now within it here we’re going to do https and then via dopl holder.com and say 200 by 150 so this is what we want to return so now we are here and make sure that you do have kind of uh limitation item count if you don’t mention it because it’s requesting too many images because in general list be Builder creates infinite number of amounts infinite amounts of widgets so that’s why you need to mention it over here otherwise your app will crash or it won’t work okay now of course here we are seeing that this is scrollable okay now of course this is not how we want we want to change it here and let’s change the scroll Direction and uh horizontal access. horizont onal I think I believe this is what we need to set okay beautiful all right so as you see that now it’s fine so we can scroll left and right and we have 10 items I believe I feel like I’ve been scrolling for a long time okay right anyway so now as you see that it’s working the scrolling is totally working make sure that before you run it first time you use limited number and lower the better after after all these are network images somehow these are all Network images they are coming from network but if you have unlimited number of them it’s going to crash your app now of course within this you can change your items over here I mean the height and width it’s all up to you now well here we do see that we have this issue of margin and and what is this so let me go ahead and wrap this thing around a container and let me reformat the code and then let’s come over here and within it over here we’re going to do margin and margin Ed inserts while all say for example value of eight and because we want to do debugging so here we can set of color colors. red so let’s go ahead and save it and here we do see that okay hide and width here we have even the 200 but here this is an image and which is not matching with our proportion so that’s why we do see that but of course if you reset to 200 which is square is going to take all this place and then of course of course this margin uh if we apply then we see that yes okay so it it works better like this and if you do want you can also do 16 like this like the earlier ones so left and right we all have margin but anyway you get the idea okay so if you want to show your images here they have to be uh especially optimized in terms of WID and height it’s better whatever the WID and height you do here you do the same over here as well at least the images okay so now with this we have an understanding what is uh custom what is so we have an understanding of what is a custom scroll View and at the same time we have understanding how to work with SLI AB sliver list and then as well as list view Builder so we also learned that sliver C scroll views and slers and list view Builder they can all work together but yes this may sound little bit complicated but trust me this thing you’re going to use again and again if you’re in flutter abdb because this is very optimized anyway so we’ll work next on the next tutorial but now here is your job so I’m going to assign an assignment to you so your job would be as we click on each of this images over here each of this images over here your job would be retrieve the title because as you can see there is always a title over here retrieve the title your job would be retrieved the title and show the title over here and at the same time you should be also able to grab the image and show it over here so this is what you need to do now there many ways that could be done one of the ways is that just passing the index of this so this hotel grid view now each of them they have an index okay so as you pass the index what you could do you could pass the index as you click on this like previously we have seen how to pass arguments so here you can pass grab the index and pass it here and as you pass it you have you will have access to the index over here but of course in that case you need to change this one and set the index and then you need to read the hotel list over here and as you read the hotel list you can go ahead and show the image so the idea is somehow try to grab the index and pass the index to this guy over here in the Constructor and then pass the index here and then when you go to hotel detail use it here and use hotel list and then use that index to grab one of the items from the hotel list and that’s how it should work thank you all right so this is where we left of last time I mean we working on this assignment and hopefully you have done the assignment once again if you have problem understanding the assignment or doing it you can always leave questions below now as I assign the assignment actually I also gave an idea how to do that so the very first idea was uh passing around this Index right we said that we need to pass an index from here actually over here within this grid Builder we already have an index okay so we can grab that index so all we need to do here create a new argument and we call it index and then over here we want to grab it as a parameter so here we do final int index and then of course because these are the properties or Fields so we also need to put it inside this Constructor so over here we going to have required this do index and that’s all okay all right so we have it and then the next thing is to go ahead and pass this one to this guy but before we pass over here let’s go ahead and print my index is here index so because we are printing a variable over here so we don’t need curly braces the dollar sign is enough now let’s click on this so I do believe that I need to go ahead and restore it all right so my index is three and then my index is two like that okay all right so that’s how it works okay beautiful so that means we can get the index now the next thing we want to do is passing it as an argument and we know that if you want to pass variables in the route you can always pass them using this argument ments property and we pass it as a map so here we’re going to call it index you can call it actually anything and then assign this value the value that we have here now remember we are not using anywhere else we have we are injecting inside our Constructor in the object itself and then we are over here as we click we’re going to pass it to this hotel detail now inside this hotel detail we can grab it so over here we need to convert it to a stateful widget okay so I’m on Mac over here option enter and it’s going to work so and we learn that as we passed parameters or arguments from one screen to another screen then we need to go ahead and uh access it using did change dependencies so this is what we are going to do over here all right now here we can create a variable and we can call it arcs and within it over here we’re going to use model route this one and then off context and then we will say that we have context and settings this one dot arguments so we getting the arguments as map all right so here this is called bang operator and with this you understand that we say okay uh the screen the screen will have context okay because context holds everything okay so that’s why we are passing this context because when you move between screen and you want to grab your objects this and that like this one it is stored somewhere in the context context context is like a state or a special memory where you can grab it okay you can understand it like this anyway then over here we are going to print ARs and then here we are going to grab it as index okay so whatever you put inside this arguments whatever the key this is called key this called value whatever the key that is you always put key here okay because this is a map and in the earlier lessons we have learned that if we have a map we can access a map item using the key name all right so let’s go ahead and save it and let’s click on this and here we go we see that all right so we we are able to grab our stuff all right so here we’re going to create a variable final light int index and then from here we’re going to do index equal ARS index okay now with this we’ll have index in this variable now we can also give it a default value so that whenever we are using it doesn’t crash so always try to have a default value valid default value in this case this is zero all right so the very first thing we want to do over here is changing this but now we don’t want to have Network image because right now these are coming from our Json data okay Json data the one that we have over here okay right so here image. asset going to do the job and then here we’re going to do assets images and then here hotel list which we can access and and then we’re going to access a certain item using the past index and then over here we’ll have image item okay and I do believe that this is the correct one and if it is not that’s the correct path I believe oh assets image yes right so images let me go ahead and fix that images and then we have the slash okay all right so let’s go ahead and restart our app now here we do see let’s go ahead and check on this okay right the image has already shown up over here as you can see at the Top If You click on this this is a new image that I have inserted and this is an old image so yes the image is a little bit different now this image is not wide enough so that’s the problem but you get the idea okay so you it should be more about width anyway so now over here we can also change this so here we could do hotel list we can access this one and then here index dot not DOT it’s called Place uh remember that these are starts with place okay all right so let’s go ahead and uh use this over here and let’s go ahead and change this so you see the best hotel this is the name best city pool but of course this still needs some uh reassignment of the name so that we can see the images correctly and the name correctly but you get the idea so it’s already working okay so this is where we left last time and then there are few problems here that we want to take care one of the problem that we want to start with this background button this is not the button color that we want the arrow button is okay but we want to give it a background now to be able to be give it a background inside this SLE R Bar we can use another property the property is called leading property okay now inside this here we want to use gesture detector and then here we’ll have ontap event gesture detector is always used for navigation or going back and forth okay so this is where we put our route or navigation but anyway now let’s move on here we can also assign a child now the child itself here we do container okay so if you don’t know how many properties this leading uh or what is this leading you can actually always look up here any kind of widget if you don’t know what it does you can always hover over on that widget and it will give you all the properties and here it says this okay well this leading is a type of widget okay and then that widget means most of the time you can use a text you can use a container like that there are a few other out there as well and container text sized box these are the most common type of widgets okay anyway so now inside this actually we want to work now the first thing here we want to do is decoration why because we want to give it a background color the background color for this arrow button currently we don’t have now to be able to give it a background color definitely we need to use container container has decoration and then it has box decoration property and within it here we want to give it a shape now here there is a property called box shape and it has other properties and we’re going to use a circle the reason is we want to give it a circle background okay all right and now let’s go ahead and save it okay and it looks like it’s gone and don’t worry about it and over here let’s give it color and here we would use app styles do not primary color let’s see okay so now it already showed up over here as you can see that but of course uh now it doesn’t work okay the reason is because whenever you use leading whenever you use leading property you have to specifically mention the back button earlier we didn’t have leading so it was okay and there was AB back Buton but now once you use the leading property you need to go ahead and then mention the route or the back button automatically and to do that in general here we could do Navigator dop okay Navigator dop let’s go ahead and do that and then here you need to pass the context and once you do that here you’ll have this uh you will see that the popup button works okay okay now we see that it already works okay cool now after that of course it’s still very ugly because this thing over here the butter itself is not shown so for this reason here we can use another property child which is inside this container and then we can use icon icon is like another kind of widget okay if you hover over on this you’ll know that this is icon and lot of different stuffs and of course uh the container itself also takes widgets like as a child and icon itself is a widget and inside this here we could use icons do array back arrowback this one now of course uh what I does you can always see from it now here there’s this property I do believe the first one okay the first one itself okay because it doesn’t take any name so you can directly go ahead and use it okay so whenever you see something like this without curly braces or outside of curly braces you can actually go ahead and use that without any name of course in that case you have to know what kind of property you are using like for example here container right you see that container the decoration right so over here you see decoration this one inside this curly braces okay this second curly braces so anything that’s inside curly braces if you want to use that you need to get their name anything that is not inside curly braces you can directly use their properties anyway so now here we are going to go ahead and uh say for example color okay here we could use color colors. white okay so let’s go ahead and save it and we already see that and of course it’s working and now there are other problems as well the problem is it’s too big we don’t want it to be so big now inside this over here this gesture detector this clickable widget we want to wrap it around padding okay so that we look good now we can give it padding of eight okay now it BEC smaller and with this we see that it’s looking much better all right so we were done with this and the next step we want to go ahead and do is working on this the things over here as well as you will see that uh in some cases this doesn’t fill out the screen and which is very ugly so these are the things that we need to take here now to be able to do that we need to put our Focus over here inside this uh flexible space bar this background image okay well the first thing here we would do is changing this image property okay so let’s go ahead and change it the image property itself like we can come over here and put a comma and come down and within it here there is a property called fit okay box fit. cover so we want to use it as cover now if you go there okay it looks like already covered and the top as well and then here left right and which is beautiful actually and here as well so with this the problem has been solved so in general uh if you have image widget and the image itself you want to fill up left right top or bottom it doesn’t matter how many directions the image box feed could help a lot okay so that that’s how you should go ahead and work now after that there is another big problem that we need to solve you’ll see that this guy first thing it’s not very visible and this position actually changes it’s not always there it changes based on you know this length uh or width so we want to give it a background color as well as keep it in a fixed place so that we don’t need to change it or keep changing all the time okay so we want to give it a fixed position okay now here once again we are going to work with our uh stack widget okay because within stack widget over here we can control the position itself so every time you want to control the position of certain widget on your UI it’s better you should wrap it around using uh what is that called stack widget okay all right now to be able to do that so we have our image widget I’m going to cut it over here and then here I’m going to have stack widget and we know that stack widget takes a lot of children so that’s why we have this one and then inside this uh we can use position and here position itself will take this image the one that we had early okay let me go ahead and refractor the code so that it becomes more readable right let’s go ahead and save it now of course it distorts everything that’s the problem here we could also use a fill property it’s going to fill it okay now it’s the problem solved okay this is another trick that you could use with positioned widget which resides inside stack widget The Fill property is going to fill up everything whatever the child it holds because it holds this child over here now this is the first position widget okay now image itself we don’t want to work on any kind of positioning now because if you have stack widget within stack widget everything you have to put using positioned widget otherwise you will get error okay so that’s why we did that even though we are not changing any position over there all right so now here actually we want to take care of this title we don’t want to use the title this one okay we want to put the title here okay now one thing I could do I can go ahead and copy this and put it here and uh I can comment this out okay let’s go ahead and save it all immediately you see that it it it’s like that it’s gone okay it’s most probably here at the top because we need to change the position now since we are using positioned widget this is the time we can go ahead and change the position now to do that say for example you change it to bottom bottom 20 okay and looks like it didn’t show up and it doesn’t matter and then also asign left okay okay right and here we do see that it showed up but if you do want that you can also use write okay so this could be a perfect place from left side from right side 20 rather than here okay all right now over here we don’t see that it looks good so this text widget we want to wrap it around container so that we can give it a transparent background okay we need to do that because otherwise this text is not very readable now the very first thing here we could do is color and then here um we could do say for example colors dot black and then with opacity say 0.5 because we don’t want complete Black okay the background itself we want a little bit of opacity like for example we can see the chair within it right okay well that’s the first thing and then at the same time the text itself is not very clear so we want to change the text now in this case we are not going to use any kind of predefined custom wiget that one we built because we want to apply Shadow to it okay so for this reason then inside this text widget over here we’re going to use the property called style okay style and then here text style and the text style itself will have color so let’s go ahead and do color and then colors. white okay now we do see that it has a color something called White okay okay all right so now it is visible and another thing that we could do here is the padding Edge inserts do symmetric so with this we’ be able to place padding horizontally and vertically just using two numbers okay because this is symmetric so here horizontal say eight now here you see left and right we have a little bit of space right so left and right and then top and bottom for that one we can use vertical and say for example for this you use four and now it gotten better okay now back to style again so this time over here uh we may use the font okay so what is the font size say font font size we’re going to use the this one and we can use 24 and now it would stand out and which is much better and clearer okay all right and if you do want you can give it more transparency okay like this okay but I think 0.5 looks perfect okay all right and then over here within this for now we can put a const modifier and over here we could do the same for now let’s go ahead and save it all right now since we use this style over here and here you see that you might have something called decoration or Shadow actually not really decoration we are looking for something called Shadow this one so our style text could be shadowed I mean the text itself could have Shadow Shadow so that’s why here we use shadows and shadows takes list of Shadows if you hover over on this you’ll say it’s a list so whenever you see a list in general you want to use this too okay and inside this you could put as many items as you want blur radius okay so inside this we’re going to do uh shadow shadow okay I think it should be is small okay I think I have’t typ sorry Shadow okay right now inside this the first thing we want to do is called blur radius and then here 10.0 and then color and here app colors app Styles app Styles Dot primary now here we do have a const so that’s going to cause the problem so let’s remove that because if you use const you can’t use Dynamic so this is dynamic this value is red on the Fly and then over here we can use upset okay and then upset would be upset okay now let’s go go ahead and save it okay so well it doesn’t look like that we have a lot of changes but with Shadow if you do apply a shadow for example if you remove this so there might be small changes okay let’s go ahead and check that let’s uh click on this and let’s come over here so this is what we have and then let’s come over here this is the other thing we have okay and now let’s to put the shadow back all right okay now with this with everything it looks much better design not like the earlier one which was very sloppy okay well in next section we’ll explain how the Shadows work

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Raymond Murphy English Grammar in Use

    Raymond Murphy English Grammar in Use

    This text is a table of contents and excerpts from the fourth edition of English Grammar in Use, a self-study grammar book. The book covers various grammar points, including phrasal verbs and verb tenses, with numerous exercises and answer keys. Seven appendices offer supplemental information on verb conjugation, spelling, and American English. A study guide and additional exercises are included to aid learning. The excerpts demonstrate the book’s structure and teaching approach, illustrating grammar rules with examples and practice activities. Finally, the book concludes with a detailed index for easy navigation.

    English Grammar Study Guide

    Quiz

    1. Explain the difference between using “will” and “going to” when talking about the future.
    2. Provide an example of a sentence using “would” for a hypothetical situation.
    3. How do you form a question with “shall” and what does it generally indicate?
    4. Describe the difference in meaning between “must” and “have to.”
    5. Give an example of when to use the expression “had better.”
    6. What are two common ways to use the verb + “-ing” form?
    7. Explain how to form the present perfect tense and what it indicates about time.
    8. Give two examples of when “for” and “since” are used with the present perfect.
    9. When do you use “so that” as opposed to “to” when expressing purpose?
    10. Explain how to form a question tag and when the intonation rises or falls.

    Quiz Answer Key

    1. “Will” is often used for spontaneous decisions or offers, while “going to” is used for pre-planned actions or predictions based on evidence.
    2. “If I won the lottery, I would travel the world.”
    3. A question with “shall” is formed using “shall I” or “shall we”, and it is generally used to ask for someone’s opinion or make a suggestion.
    4. “Must” often expresses an obligation from the speaker’s perspective, while “have to” expresses an external obligation, such as a rule.
    5. “You had better finish your homework before dinner” expresses a strong recommendation with possible negative consequences if not followed.
    6. Two common uses of verb + “-ing” are after prepositions (e.g., “I’m good at playing”) and to form continuous tenses (e.g., “I’m reading”).
    7. The present perfect is formed using “have/has” + the past participle, and it indicates a connection between the past and the present.
    8. “I have lived here for five years” uses “for” to specify the duration, while “I haven’t seen him since last summer” uses “since” to specify the starting point.
    9. “So that” is often used when the purpose is negative or involves a result clause; “I hurried so that I wouldn’t be late,” whereas “to” is more common for general purpose; “I went to the store to buy milk.”
    10. Question tags are formed with an auxiliary verb and a pronoun, with the tag reflecting the tense of the main verb; intonation rises when it is a real question, and intonation falls when seeking agreement.

    Essay Questions

    1. Discuss the different uses of modal verbs, providing examples of each, and explain how they add nuance to English sentences.
    2. Analyze the differences between using “-ing” and “to” forms with verbs, including how the meaning can shift based on the choice of form.
    3. Explore the uses of the present perfect and how it differs from the past simple. Include situations where each tense would be more appropriate.
    4. Explain the use of conditional sentences, focusing on the first and second conditional. Explain the differences in hypothetical situations.
    5. Discuss how prepositions impact the meanings of English sentences and include specific preposition examples to explain meaning changes.

    Glossary

    Adverb: A word that modifies a verb, adjective, or another adverb, often indicating manner, place, time, or degree (e.g., quickly, here, yesterday, very).

    Apostrophe: A punctuation mark (‘) used to indicate missing letters in contractions (e.g., can’t, I’m) or possession (e.g., John’s car).

    Auxiliary Verb: A verb that helps another verb (e.g., be, have, do, will, can, may) to form tenses, questions, and negatives. Also called helping verbs.

    Clause: A group of words containing a subject and a verb that forms a part of a sentence.

    Conditional: A sentence that expresses a condition and its result, often starting with “if” or “unless”.

    Conjunction: A word that connects words, phrases, or clauses (e.g., and, but, or, because, when).

    Contraction: A shortened form of a word or phrase, with missing letters replaced by an apostrophe (e.g., isn’t, they’ve).

    Determiner: A word that introduces or specifies a noun (e.g., a, the, my, some, this).

    Gerund: The “-ing” form of a verb when used as a noun (e.g., Swimming is fun).

    Infinitive: The basic form of a verb, usually preceded by “to” (e.g., to be, to go, to eat).

    Modal Verb: An auxiliary verb that expresses possibility, necessity, permission, or obligation (e.g., can, could, will, would, may, might, must, should).

    Noun: A word that represents a person, place, thing, or idea (e.g., friend, London, book, happiness).

    Past Participle: The form of a verb used to form perfect tenses (e.g., spoken, eaten, written) and the passive voice.

    Phrasal Verb: A verb combined with an adverb or preposition to form a new meaning (e.g., look up, give up, get on).

    Possessive: A form showing ownership (e.g., my, your, his, her, its, our, their, John’s).

    Preposition: A word that shows the relationship between a noun or pronoun and another word in a sentence, often indicating direction, time, place, or manner (e.g., in, on, at, to, from, with, by).

    Pronoun: A word that replaces a noun (e.g., I, you, he, she, it, we, they).

    Question Tag: A short question added to the end of a statement (e.g., You’re tired, aren’t you?).

    Relative Pronoun: A pronoun that introduces a relative clause (e.g., who, whom, whose, which, that).

    Short Form: See contraction.

    Subjunctive: A verb form expressing wishes, suggestions, or hypothetical situations (e.g., “I insist that he be on time”).

    Superlative: An adjective or adverb expressing the highest degree of a quality (e.g., best, most difficult).

    Syllable: A unit of pronunciation having one vowel sound, with or without surrounding consonants (e.g., re-mem-ber has three syllables).

    Tense: A verb form that indicates time (e.g., present, past, future).

    English Grammar Essentials

    Okay, here’s a detailed briefing document based on the provided excerpts from “15001-I Raymond Murphy ( PDFDrive ).pdf”, focusing on key themes and concepts related to English grammar:

    Briefing Document: English Grammar Review

    I. Introduction

    This document provides a review of key grammatical concepts extracted from “15001-I Raymond Murphy ( PDFDrive ).pdf,” a resource for English language learners. The focus is on tenses, modals, verb patterns, question formation, and other essential elements of English grammar. This document will be helpful for students of English grammar in identifying key grammatical structures and rules.

    II. Main Themes and Key Concepts

    A. Tenses and Time:

    • Future Tenses: The document introduces various ways to express the future, including:
    • Present Continuous for future arrangements (e.g., “I’m playing volleyball” indicating a future, planned action).
    • “Going to” for intentions and predictions (e.g., “I’m going to clean my room.”).
    • “Will/Shall” for offers, promises, and spontaneous decisions (e.g., “I’ll help you with it.”). It also covers future continuous (“will be doing”) and future perfect (“will have done”).
    • “When I do / When I’ve done”: This section indicates that we use the present simple or present perfect when talking about the future in time clauses using ‘when’ or ‘if’.
    • Present Perfect: Used to describe experiences or actions with a connection to the present, often with “for” and “since” to indicate duration. As stated in the text, “When we talk about a period of time that continues from the past until now, we use the present perfect (have been / have traveled etc.).”
    • The text also explains the use of present perfect to talk about life events or time periods up to the present.
    • Contrasted with past simple, which is for completed actions in the past (e.g. “It was cold last week.” vs “The weather has been cold recently”).
    • There is emphasis on the use of ‘for’ and ‘since’ with the present perfect, and the use of ‘it’s … since’ to describe the time elapsed since something happened.
    • Past Simple: Used to talk about finished actions in the past. (e.g., “My grandfather died before I was born.”) and the use of ‘did’ in negative and interrogative past simple clauses.
    • Present Simple: Used for regular, habitual actions or general truths. (e.g. “He always gets ill”).

    B. Modals:

    • Ability: “Can” and “could” for ability, and “be able to” as an alternative. (e.g. “Are you able to put the fire out?”)
    • Possibility & Permission: “May” and “might” for possibility, and “can,” “could,” and “may” for permission (e.g. “May I come in?” is more formal).
    • Obligation & Necessity: “Must” and “have to” for obligation; “mustn’t” for prohibition; “needn’t” for lack of necessity. (e.g., “You mustn’t touch the paintings.”)
    • Advice & Suggestion: “Should” for advice or suggestion. Also introduces “had better” and “It’s time…”. (e.g. “You should eat something now.”).
    • Requests & Offers: “Can,” “could,” and “would” used to ask people to do things, also “Can I have… ?” and “Could I have…?”. Includes the use of “do you mind if I?” and “is it alright/ok if I…?”
    • Would: Explores different uses of “would,” including conditional sentences, polite requests (“Would you please be quiet?”) and offering something (“Would you like a cup of coffee?”).
    • Modal verbs in general: “can” and other modal verbs – See Appendix 4.

    C. Verb Patterns:

    • Verb + -ing: Discusses verbs followed by the -ing form (gerund), like “enjoy doing,” “stop doing,” and expressions like “be/get used to.” (e.g., “I enjoy swimming.”). It also covers the structure “verb + preposition + -ing”, as in, “succeed in -ing”.
    • Verb + to…: Explores verbs followed by the infinitive with “to,” like “decide to,” “forget to,” and “want you to.” (e.g., “I want you to go”).
    • Verb + -ing or to…: Examines verbs that can be followed by either the gerund or the infinitive with “to,” such as “remember,” “regret,” “try,” “need,” and “help,” often with differences in meaning. (e.g. “Remember to lock the door.” vs. “I remember locking the door.”). Also covers verbs such as ‘like’.
    • Preposition + -ing: Covers the structure of using ‘-ing’ forms after prepositions. (e.g. “I’m good at playing the guitar.”)
    • “-ing” Clauses: Explains how to use ‘-ing’ clauses, such as, “Feeling tired, I went to bed early”.
    • Object + -ing : Addresses the structure of using an object between a verb and an ‘-ing’ form, as in, “I can’t imagine George riding a motorbike”.
    • Passive ‘-ing’ form: Introduces the structure of the passive ‘-ing’ form, ‘being done’, as in, “I don’t mind being kept waiting”.
    • ‘having done’: Introduces the use of ‘having done’ to talk about completed actions, as in, “They admitted having stolen the money”.

    D. Questions and Negatives:

    • Question Formation: Covers the use of “do/does” in present simple questions, and “did” in past simple questions. The document also discusses the use of auxiliary verbs, such as modals, in questions. The use of ‘why’ in negative questions is also highlighted: “Why don’t we eat out tonight?”. It also covers embedded questions, where the usual question word order is not followed. (e.g. “Do you know what he is doing?”)
    • Negative Sentences: The use of ‘did not’/’didn’t’ is highlighted for past simple negative sentences, and the use of auxiliary verbs in negative structures is shown.
    • Answering Negative Questions: The document outlines how to answer negative questions in English, explaining the difference between ‘yes’ and ‘no’ in this context. (e.g. “Don’t you want to go?” “Yes, I want to go.” or “No, I don’t want to go.”)
    • Question Tags: Explains question tags and how they are used to invite agreement (“It’s a nice day, isn’t it?”) or to ask real questions (“You haven’t seen Lisa today, have you?”). The change in intonation and usage is also discussed. The document also outlines which question tag follows ‘Let’s’ and ‘Don’t’.
    • Negative Questions with positive tags: The document introduces the usage of “negative sentence + positive tag” to ask for things, information or to ask people to do things. (e.g. “You haven’t got a pen, have you?”)
    • Asking questions in passive voice: The structure of using question words in questions that are in passive voice is addressed (e.g. “When was this house built?”).

    E. Other Key Grammatical Points:

    • ‘S and Of: The document highlights the use of ‘s and of to show possession. It also covers the use of ‘s with time words and periods of time.
    • Pronouns: Covers the use of possessive pronouns, such as ‘a friend of mine’
    • Irregular Verbs: Points to an Appendix for a list of irregular verb forms.
    • Short Forms: An overview of the common short forms used, such as ‘m and ‘ve, and when to use them is provided. This includes using ‘s for is/has, and ‘d for would/had. It also addresses when to use short forms after question words.
    • Spelling Rules: Covers common spelling rules such as adding ‘s’ to nouns, changing ‘y’ to ‘ies’, or ‘i’ before adding ‘ed’, ‘er’ or ‘est’, also the rules for doubling the final consonant in words.
    • Numbers: It touches on how we see a quantity of time, distance or money as one thing in English, and therefore use a singular verb with it. (e.g. “Three years is a long time”).
    • Verb + preposition combinations: It discusses different verb and preposition combinations that commonly appear in English, and which prepositions follow specific verbs.
    • Adjective + preposition combinations: It discusses different adjective and preposition combinations that commonly appear in English, and which prepositions follow specific adjectives.

    III. Quotes and Examples

    The briefing document integrates direct quotes from the source to emphasize concepts:

    • “When we taLk about a period of time that continues from the past until now, we use the present perfect (have been / have travelled etc.).”
    • “That bag looks heavy. I’ll help you with it. (not I help)”
    • “Could you wait a moment, please?”
    • “‘Do you mind if I use your phone?’ ‘Sure. Go ahead.’”
    • “It ^ supposed to be a secret.”
    • “Many people don’t have enough to eat. (not Many people doesn’t)”
    • “I’m going to a wedding on Saturday. A friend of mine is getting married. (not a friend of me)”
    • “If we go by bus, it will be cheaper.”
    • “They admitted having stolen the money.”
    • “I hurried so that I wouldn’t be late.”

    IV. Conclusion

    This briefing document outlines crucial aspects of English grammar based on the provided source. It highlights tenses, modals, verb patterns, question formation, and other areas, all of which are crucial to mastering English grammar. The use of examples from the text provides a practical understanding of grammatical concepts. This document should be a valuable reference for those studying or reviewing English grammar.

    English Grammar Guide

    What is the difference between ‘going to’ and ‘will’ when talking about the future?

    ‘Going to’ is generally used for future plans and intentions, especially when there is evidence that the plan has already been decided, whereas ‘will’ is often used for spontaneous decisions, offers, promises, and predictions. For example, you would use “I’m going to clean my room” if it is a planned activity, but “I’ll help you with that” is a spontaneous offer to assist. ‘Will’ can also be used for predictions without necessarily implying prior planning, like “It will rain tomorrow”.

    How do I know when to use the present perfect (have/has + past participle)?

    The present perfect is used to talk about a period of time that continues from the past up to the present. It connects the past to the present. For example, “I have traveled a lot” refers to your experiences in life up to this point. It is also used to talk about actions that are relevant to the present. The present perfect uses “for” and “since” to indicate the duration or starting point of something that began in the past and continues to the present, like in “She’s lived in Berlin for the last few years.”

    What is the difference between using ‘for’ and ‘since’ with the present perfect?

    Both ‘for’ and ‘since’ are used with the present perfect to express how long something has been happening. ‘For’ is used to express a duration of time (e.g., “for five years”), while ‘since’ is used to express a specific starting point in time (e.g., “since 2010”). For example, you might say, “I have lived here for ten years,” or, “I have lived here since 2013.”

    When do I use ‘can,’ ‘could,’ and ‘may’ for requests and permission?

    ‘Can’ and ‘could’ are both used to ask for things or permission, with ‘could’ being slightly more polite. ‘Can’ is common in informal requests or when asking to do something. ‘May’ is more formal and is often used for seeking permission. For example, you might ask, “Can I have the salt?” “Could I borrow your phone?” or “May I come in?”. “Do you think you could…” is also a common way to make a more polite request.

    What is the structure for conditional sentences using ‘if’?

    There are different conditional structures using “if”. One structure involves “if + present simple, will + infinitive,” which talks about real or possible future situations (e.g., “If we go by bus, it will be cheaper”). Another structure is “if + past simple, would + infinitive,” for hypothetical situations (e.g., “If I knew, I would help”). There’s also “if + past perfect, would have + past participle,” which deals with unreal past conditions and their consequences (e.g., “If I had known, I would have helped”). These are often used to express possibilities or impossibilities in the present or future.

    How do I correctly use question tags at the end of sentences?

    Question tags are mini-questions added to the end of a statement. They are used to seek agreement or confirmation and consist of an auxiliary verb and a pronoun. If the main clause is positive, the tag is usually negative, and vice versa. For example, “It’s a nice day, isn’t it?” If your voice goes down at the end of the tag, you are inviting agreement. If it goes up, you are genuinely asking a question. After “Let’s,” the question tag is “shall we?” After “Don’t,” it is “will you?” The meaning of a question tag changes with the intonation.

    What are the rules for forming the possessive with nouns (like ‘s) and where should I use ‘of’?

    Singular nouns use an apostrophe + s (‘s) to show possession (e.g., “my sister’s room”). Plural nouns that end in ‘s’ use an apostrophe after the ‘s’ (e.g., “my sisters’ room”), whereas plural nouns not ending in ‘s’ use apostrophe + s (e.g., “the men’s changing room”). For things, ideas, and locations, we generally use “of” to express possessive relationships (e.g., “the temperature of the water”). However, ‘s can be used with places, time words, or periods of time (e.g. “Italy’s prime minister”, “yesterday’s newspaper”, “a week’s holiday”).

    How do I choose between using ‘like’ and ‘as’ as prepositions?

    ‘Like’ is used as a preposition to show similarity, for example, “He is like his father.” ‘As’ is often used in expressions describing someone’s job, function, or role, for example, “She worked as a tour guide,” or for when the two things are happening at the same time, “I was thinking as I walked”. ‘As’ can also indicate the manner or way something is done. In addition, ‘as if’ is used to describe something that looks like something else, such as “She acts as if she owns the place”.

    English Grammar in Use

    Okay, here is a detailed timeline and cast of characters based on the provided text:

    Timeline of Events and Topics

    This source is not a narrative, so there is no single timeline to follow. Instead, this timeline represents topics covered in the book:

    • Basic Verb TensesIntroduction to Present Simple (I do) and Present Continuous (I am doing) for future events.
    • Introduction to future tenses using (I am) going to (do)
    • Introduction to future tenses using Will / shall
    • Differentiating between “Will” and “Going to”.
    • Introduction to future continuous (will be doing) and future perfect (will have done).
    • Use of “When I do” / “When I’ve done”
    • Use of when and if for future actions.
    • Modals:Exploring the usage of Can, Could, and (be) able to.
    • Using Could (do) and Could have (done).
    • Distinguishing between Must and Can’t.
    • Using May and Might (Part 1 & 2)
    • Differentiating between Have to and Must.
    • Using Must, Mustn’t, and Needn’t.
    • Exploring Should (Part 1 & 2).
    • Using Had better and It’s time…
    • Understanding Would.
    • Using Can/Could/Would you… for requests, offers, permission, and invitations.
    • -ing and to…Using verb + -ing (enjoy doing, stop doing etc.).
    • Using verb + to… (decide to, forget to etc.).
    • Using verb (+object) + to… (I want you to…)
    • Exploring verb + -ing or to… (remember/regret etc.)
    • Exploring verb + -ing or to… (try/need/help)
    • Exploring verb + -ing or to… (like/would like etc.)
    • Using Prefer and would rather.
    • Understanding preposition + -ing.
    • Using Be/get used to something.
    • Using verb + preposition + -ing.
    • Using expressions with -ing.
    • Understanding To, for… and so that…
    • Using adjective + to…
    • Differentiating To…(afraid to do) and preposition + -ing (afraid of -ing).
    • Understanding See somebody do and see somebody doing.
    • Using -ing clauses.
    • Present Perfect:Present Perfect (I have done) as a time frame from the past until now.
    • Using “for” and “since” to express the duration of an action.
    • Differentiating between present perfect and simple past.
    • Using the present perfect for recency or a lack of a time marker.
    • Forming present perfect and past simple questions.
    • Past SimpleUsing did/didn’t in questions and negative sentences
    • Using have (not have got) for actions and experiences
    • Auxiliary Verbs and QuestionsUnderstanding auxiliary verbs in questions.
    • Using short form answers.
    • Using question tags.
    • Understanding question order.
    • Future Tense“Going to” for planned actions.
    • Use of “Will” for offers, agreements, promises and requests.
    • Using Shall I…? / Shall we…? for suggestions.
    • Dialogue practice with future plans.
    • Requests, Offers, and InvitationsUsing can and could for making requests.
    • Using “Can I have …?” / “Could I have …?” for requesting items.
    • Using Can, Could, and May to ask permission.
    • Using Would you like…? to offer or invite.
    • If ClausesConditional sentences type 1 and 2
    • Distinction between using “if we go” and “if we went.”
    • Use of supposed to be.
    • Other Grammar ConceptsUse of “neither do I” or “Nor do I”
    • Use of “I think so” / “I hope so”
    • Using question tags.
    • Direct and indirect questions.
    • -ing form after some verbs.
    • Passive Voice
    • Use of “for” and “to” for purpose.
    • Use of “so that.”
    • Singular and plural nouns and verbs
    • Possessives using ‘s.
    • Use of own.
    • Using there is and it is.
    • Using “each” and “every.”
    • Definition and usage of various nouns.
    • Use of adjectives and prepositions.
    • Understanding phrasal verbs.
    • Short forms (contractions).
    • Spelling Rules.
    • Adverbs and prepositions
    • Understanding comparatives and superlatives
    • Using conjunctions
    • Continuous Verb forms
    • Determiners
    • Modal verbs
    • Negative sentences
    • Regular and Irregular verbs
    • Relative clauses
    • Subjunctive verbs
    • Syllables
    • Various verb tenses
    • Adjectives and adverbs.
    • Apostrophes.
    • Using many, much, few, and little.
    • Using like and as.
    • Understanding the difference between during and for
    • Understanding by, of, to, and for prepositions.
    • Using “some,” “any,” and “no.”
    • Understanding “the,” “a,” and “an.”
    • Using since and for
    • Understanding “if,” “when,” “unless.”
    • Using question tags.

    Cast of Characters

    • Dave: One of the participants in a sample conversation discussing Jane’s travels. He initiates the questions about Jane’s past experiences.
    • Jane: Another participant in the sample conversation. She provides details about her past travels, specifically to China and India.
    • Adrian: Mentioned in a sample sentence as someone who is never ill.
    • Sue: Mentioned in a sample sentence as someone who lives in Berlin.
    • Tom: A person who attempts to schedule a visit with the reader, but the reader is unable to accept due to prior engagements.
    • Joe:Engages in a sample dialogue with Sarah, talking about a business trip to London and her personal life.
    • He tells Sarah that Matt is in Canada
    • In the dialogue, he discusses that he has been unemployed for months and is going to Canada.
    • Sarah:Engages in a sample dialogue with Joe, asking about his life and mentioning her friend’s delayed train.
    • She asks him about Matt’s whereabouts
    • She inquires about his job situation
    • Matt: A person who is mentioned by Joe to be in Canada.
    • Jenny: In a sample conversation, she’s making plans to go to the cinema with Helen.
    • Helen: Participates in two dialogues:
    • She is making cinema plans with Jenny.
    • She then invites Tina to the cinema
    • Tina: She’s invited to join Jenny and Helen at the cinema.
    • Louise: In a sample conversation, she is waiting in a restaurant with Sarah for Paul.
    • Paul: Is late for dinner with Louise and Sarah
    • Emily: Mentioned in a sample sentence as someone who earned a lot of money this year, but not so much last year.
    • Mr. Carter: Mentioned as a family with a house.
    • Jack and Karen mentioned as a couple getting married.
    • Shakespeare: Mentioned as a person who has written a play
    • Various Unnamed Friends: These characters appear in various example sentences and dialogs within the textbook, providing contexts for grammatical practices.

    Note: Most characters do not develop beyond their brief appearances in example sentences or dialogues. They are primarily used to illustrate grammar points.

    If you have any more sources or need further clarification, just let me know!

    A Guide to English Phrasal Verbs

    Phrasal verbs are combinations of a verb and another word, which can be a preposition or an adverb [1, 2]. The second word often gives a special meaning to the verb [3].

    Here are some general points about phrasal verbs:

    • They often consist of a verb and one of the following words: in, out, on, off, up, down, away, back, by, about, through, along, over, forward, or around [1].
    • Phrasal verbs are often used with verbs of movement [1].
    • The second word can change the verb’s meaning [3]. For example, “break down” means that the engine stopped working [3].
    • Sometimes a phrasal verb is followed by a preposition. For example, “run away from” [4].

    The sources provide many examples of phrasal verbs, grouped by the second word:

    Phrasal verbs with “in” and “out” [5]

    • Examples include: “get in,” “move in,” “drop out,” “leave out,” “join in,” “eat out,” “take in,” “drop in,” “get out of.”
    • “Get in” can mean to enter a car, “move in” can mean to start living in a new place [5].

    Phrasal verbs with “out” [6]

    • Examples include: “find out,” “sort out,” “put out,” “go out,” “carry out.”
    • “Find out” means to discover something, while “go out” can mean leaving a place [6].

    Phrasal verbs with “on” and “off” [7, 8]

    • These are often used for lights and machines. For example, “turn on” or “switch off” [7].
    • They can also be used for events, such as “call off” or “put on” [7, 8].
    • Other examples include “carry on,” “get on,” and “go off” [8].

    Phrasal verbs with “up” and “down” [9-11]

    • “Put up” can mean to place something on a wall [9].
    • Other examples include: “take up,” “turn up,” “use up,” “bring up,” “come up with,” “do up,” “look up,” “put up with,” and “hold up” [10, 11].
    • “Turn up” and “show up” means to arrive [10].

    Phrasal verbs with “away” and “back” [12]

    • Examples include: “go away,” “drive away,” “fly away,” “take away,” “walk away,” and “run away” [12].
    • “Give away” means to give something for free, while “take something back” means to return it [12].

    Object placement with phrasal verbs:

    • If a phrasal verb has an object, the object can usually be placed after the phrasal verb or between the verb and the particle. For example, you can say “turn on the light” or “turn the light on” [4].
    • However, if the object is a pronoun, it can only be placed between the verb and the particle. For example, “turn it on” [4].

    The sources also provide exercises to test your knowledge of phrasal verbs [13].

    English Verb Tenses: A Comprehensive Guide

    The sources provide a comprehensive overview of verb tenses in English, including their forms and uses. Here’s a discussion of verb tenses based on the provided material:

    Present Tenses

    • Present Simple This tense is used for general truths, repeated actions, and habits [1, 2]. The structure of the present simple is the base form of the verb, with an -s added for third-person singular subjects (he/she/it) [3]. For example, “Water boils at 100 degrees Celsius” and “I always get hungry in the afternoon” [2].
    • It is also used with verbs of perception (see, hear, smell, taste) [4].
    • It is not usually used in the continuous form when it means ‘believe’ or ‘have an opinion’ [5].
    • Present Continuous The present continuous tense describes actions happening at or around the time of speaking [1, 2]. It is formed using “am,” “is,” or “are” + the present participle (-ing form of the verb) [6]. For example, “The water is boiling,” and “What are you doing?” [2].
    • It can also be used to describe things that are changing [7].
    • Some verbs are not normally used in the present continuous, like “want,” “know,” and “believe” [5].
    • It can be used when “think” means ‘consider’ [4].
    • It is used to describe personal arrangements [8].

    Past Tenses

    • Past Simple The past simple tense is used for completed actions in the past [1, 6]. Regular verbs form the past simple by adding “-ed,” while irregular verbs have different forms [9-12]. For example, “I got home late last night” [13]. It is also used to ask “When…?” or “What time…?” [13].
    • Past Continuous The past continuous describes actions that were in progress at a specific time in the past [6]. It is formed using “was” or “were” + the present participle (-ing form of the verb) [6]. For example, “Katherine was waiting for me when I arrived” [14].

    Present Perfect Tenses

    • Present Perfect Simple The present perfect simple tense connects the past with the present and is used when the exact time of an action is not important [15]. It is formed using “have” or “has” + the past participle [6, 16]. For example, “I have been to China twice” [15].
    • It is used for a period of time that continues from the past until now [15].
    • It can be used with “just,” “already,” and “yet” [17].
    • Present Perfect Continuous This tense focuses on the duration of an action that started in the past and is still continuing or has recently finished [1, 18, 19]. It is formed using “have” or “has” + “been” + the present participle (-ing form of the verb) [6]. For example, “It’s been raining for two hours” [20].
    • The continuous form emphasizes the duration of the action [19].

    Past Perfect Tenses

    • Past Perfect Simple The past perfect tense is used to describe an action that happened before another action in the past [6, 21]. It is formed using “had” + the past participle [6]. For example, “He said he had to go” [22].
    • Past Perfect Continuous The past perfect continuous describes an action that was ongoing before another action in the past [6, 17]. It is formed using “had” + “been” + the present participle (-ing form of the verb) [6].

    Future Tenses

    • Present Tenses for the Future Both present continuous and present simple tenses can be used to describe future events [8, 19].
    • Present continuous is used for personal arrangements [8].
    • Present simple is used for scheduled events [8].
    • “Going to” The structure “going to + verb” is used to talk about future plans and intentions [23, 24].
    • “Will/Shall” “Will” is used to talk about future happenings or situations and for decisions made at the time of speaking [25-28]. “Shall” can be used in questions offering or suggesting something [25, 29].
    • Future Continuous (will be + -ing) is used for actions in progress at a specific time in the future [30, 31]. For example, “We’ll be having dinner then” [32].
    • Future Perfect (will have + past participle) is used for actions that will be completed before a specific time in the future [30, 31]. For example, “we will have finished dinner by then” [32].

    Other Points

    • The present perfect is not used to talk about a finished time in the past [13, 26].
    • American English often prefers the past simple over the present perfect in some contexts [33, 34].
    • The sources provide exercises to test your knowledge of verb tenses [35].

    This information should give you a strong understanding of verb tenses as they are presented in the sources.

    English Grammar Rules

    The sources provide a wide array of English grammar rules, which can be categorized as follows:

    Nouns and Articles

    • Countable and Uncountable Nouns: Many nouns can be used as countable or uncountable, often with a difference in meaning [1, 2]. For example, “a noise” vs “noise” in general [1]. Countable nouns can be singular or plural [3].
    • Articles: Before singular countable nouns, “a” or “an” is used [3]. The article “the” is used in specific contexts [4].
    • Singular and Plural: Plural nouns are used for items with two parts (e.g. trousers, glasses) and take a plural verb [5].
    • Noun + Noun: Compound nouns are created by combining nouns (e.g., “a tennis ball”) [6].
    • Possessives: The possessive “‘s” is used to show possession (e.g., “your sister’s name”) [7].

    Pronouns and Determiners

    • Reflexive Pronouns: Words like “myself,” “yourself,” and “themselves” are used when the subject and object of a verb are the same [8].
    • “Own”: “On my own” and “by myself” both mean “alone” [8].
    • “There” and “it”: “There” and “it” are used in sentences to introduce subjects or situations [6, 9].
    • “Some” and “any”: “Some” and “any” are used with plural countable nouns in different contexts [10]. “Some” can mean a number of, a few of, or a pair of [10]. “Any” is used in questions and negative statements [6, 11].
    • “No,” “none,” and “any”: These words are used to express negation, with “none of” often followed by a plural verb [12].
    • “Much,” “many,” “little,” and “few”: These determiners are used with uncountable and countable nouns to express quantity [6, 13].
    • “All,” “most,” “no,” and “none”: These determiners are used to specify the quantity or extent of something [6].
    • “Each,” “every,” and “whole”: These words are used to describe individual items in a group [6, 14, 15].
    • “Both,” “neither,” and “either”: These words are used to describe pairs of items [6, 16].

    Adjectives and Adverbs

    • Adjectives: Adjectives describe nouns, and can end in “-ing” or “-ed” (e.g., “boring/bored”) [17, 18]. The order of adjectives in a sentence follows a specific pattern [17, 19].
    • Adverbs: Adverbs modify verbs, adjectives, or other adverbs, and many end in “-ly” [17, 20, 21].
    • Comparatives and Superlatives: Comparatives compare two items (e.g., “cheaper”), while superlatives identify the highest degree of something (e.g., “the longest”) [22-24].
    • “So” and “such”: These words are used to intensify adjectives or adverbs [22, 25].
    • “Enough” and “too”: “Enough” means sufficient, and “too” indicates excess [22, 26].
    • “Quite,” “pretty,” “rather,” and “fairly”: These words are used to modify adjectives and adverbs with varying degrees of intensity [22, 27].

    Verbs and Tenses

    • Present Simple: This tense is used for general truths, habits, and repeated actions [28-31].
    • Present Continuous: Used for actions happening now, or for temporary or changing situations [28-31].
    • Past Simple: Used for completed actions in the past [28, 32].
    • Past Continuous: Used to describe actions in progress in the past [22, 28, 33].
    • Present Perfect: Connects the past with the present [28, 32].
    • Future Tenses: “Going to” is used for plans, while “will” is used for predictions or decisions made at the time of speaking [28, 33-36]. “Shall” is used for suggestions or offers [7, 29, 34, 37-39]. Future continuous and future perfect describe actions that will happen at a specific time or before another future action [28, 34].

    Modals

    • “Can,” “could,” and “be able to”: Used for expressing ability or possibility [28, 40, 41].
    • “Must,” “can’t,” and “have to”: Used for expressing obligation or certainty [28, 42-44].
    • “May” and “might”: Used to express possibility or permission [28, 37, 45].
    • “Should,” “ought to,” and “had better”: Used for giving advice or expressing obligation [1, 28, 35, 46-48].
    • “Would”: Used for polite requests and conditional sentences [2, 28, 38].

    If and Wish Clauses

    • “If” clauses: Used for conditional sentences [3, 4, 10, 29].
    • “Wish” clauses: Used to express regrets or desires [4, 10, 29, 49].

    Passive Voice

    • Passive voice: Used when the focus is on the action rather than the doer [5, 29, 50]. “Be” is used in passive constructions [29, 50]. “Have something done” is used to express actions performed by someone else [29, 51].

    Reported Speech

    • Reported speech: Used to convey what someone said, often involving tense changes [29, 52, 53].

    Questions and Auxiliary Verbs

    • Question Formation: Questions are formed using auxiliary verbs, and question words like “who,” “what,” and “where” [29, 54, 55].
    • Auxiliary Verbs: Auxiliary verbs such as “have,” “do,” and “can” are used in questions and short answers [29, 56].
    • Question tags: Used to confirm information or seek agreement [29, 57].

    -ing and to…

    • Verbs followed by -ing: Certain verbs are typically followed by the “-ing” form (e.g., “enjoy doing”) [58-62].
    • Verbs followed by “to”: Other verbs are followed by “to” + the infinitive form (e.g., “decide to do”) [58, 60, 63-68].
    • Verbs with both -ing and to: Some verbs can be followed by either form with little or no difference in meaning (e.g., “begin to do” or “begin doing”) [58, 60, 61].

    Relative Clauses

    • Relative clauses: Used to give more information about a noun, using relative pronouns like “who,” “that,” “which,” and “whose” [17, 69-73].
    • Extra Information clauses: These clauses add additional non-essential information [17, 72, 73].
    • -ing and -ed clauses: Used to shorten relative clauses [17, 74].

    Conjunctions and Prepositions

    • Conjunctions: Words like “although,” “though,” “even though,” “in spite of,” and “despite” are used to join clauses with contrasting ideas [22, 75]. “In case,” “unless,” and “as long as” are used for conditional statements [22, 76, 77].
    • Prepositions: Words like “at,” “on,” and “in” are used to indicate time or position [78-80]. They are also used to express relationships between nouns, verbs, and adjectives [78, 81-88].

    Phrasal Verbs

    • Phrasal verbs: Combinations of a verb and a particle (e.g., “look up,” “take off”) often create new meanings [78, 89, 90]. The position of an object with phrasal verbs can vary [78, 89].

    Word Order

    • Word order: The basic word order in English is subject-verb-object [22, 91]. Adverbs can be placed in different positions in a sentence [22, 92].

    Other Points

    • American English: There are some differences in grammar and spelling between British and American English [93-96].
    • Spelling: There are specific spelling rules for verb endings such as “-s,” “-ing,” and “-ed” [67, 68, 93, 97-101].

    This overview should provide you with a good understanding of English grammar rules as presented in the sources.

    A Comprehensive Guide to English Grammar and Usage

    The sources offer various insights into English usage, covering aspects of grammar, vocabulary, and style. Here’s a breakdown of key points related to English usage based on the provided material:

    Verb Tenses and Usage

    • Present Simple: The present simple is used for general truths, repeated actions, and habits [1]. For instance, “Water boils at 100 degrees Celsius” is a general truth [2]. It is also used with verbs of perception like “see,” “hear,” “smell,” and “taste” [3]. The present simple is not typically used in the continuous form when it expresses belief or opinion [3].
    • Present Continuous: This tense is used to describe actions happening at or around the time of speaking, such as “The water is boiling” [2]. It can also describe changing situations or personal arrangements [3, 4]. However, some verbs, such as “want,” “know,” and “believe” are not typically used in the present continuous [3].
    • Past Simple: The past simple is for completed actions in the past, like “I got home late last night”. It is used to ask about a past time or when something happened [5].
    • Past Continuous: This tense describes actions in progress at a specific time in the past [6].
    • Present Perfect Simple: This tense is used to connect the past with the present when the exact time isn’t important [6]. For instance, “I have been to China twice”. It is used when a period of time continues from the past until now [6].
    • Present Perfect Continuous: This tense emphasizes the duration of an action that started in the past and continues to the present [6]. For example, “It’s been raining for two hours” [5].
    • Future Tenses: The sources cover the use of present tenses for future events (present continuous for personal arrangements and present simple for scheduled events) as well as “going to” (for plans) and “will” (for predictions and decisions) [4, 7, 8].

    Modal Verb Usage

    • Can, Could, and Be Able To: These are used to express ability or possibility [9, 10]. “Could” is also used for polite requests [9].
    • Must and Have To: These express obligation or necessity [11].
    • May and Might: These are used to express possibility or permission [8]. For example, “It might rain later” [8].
    • Should, Ought to, and Had Better: These are used for advice or obligation, with “had better” typically used for specific situations [12-14].
    • Would: This is used for polite requests, conditional sentences, and describing hypothetical situations [15-17].

    Conditional and Wish Clauses

    • If Clauses: These are used to express conditional statements [18, 19]. For example, “If I won a lot of money, I might buy a house” [15].
    • Wish Clauses: These are used to express regrets or desires [19-21]. For example, “I wish I knew…” [19].

    Passive Voice

    • The passive voice is used when the focus is on the action rather than the doer [22]. For instance, “The programme was watched by millions of people” [23]. The sources explain how to form passive constructions using “be” and past participles [22, 24, 25].

    Reported Speech

    • Reported speech is used to convey what someone said, often involving tense changes [26, 27]. For example, changing “I’m not feeling good” to “He said he wasn’t feeling good” [26].

    Question Formation

    • Questions are typically formed using auxiliary verbs and question words such as “who,” “what,” “where,” “why” [28, 29].

    -ing and to…

    • Some verbs are followed by the “-ing” form (e.g., “enjoy doing”) and others by “to + infinitive” (e.g., “decide to do”) [30, 31]. Some verbs can be followed by either with little change in meaning (e.g., “begin to do” or “begin doing”) [32-34].

    Articles and Nouns

    • The articles “a,” “an,” and “the” are used before nouns, with “a/an” used before singular countable nouns and “the” used in specific contexts [35-42].
    • Countable and uncountable nouns have different usage rules.
    • For example, “noise” is uncountable, and “a noise” is countable. [21]
    • “Hair” is typically uncountable but becomes countable to refer to one or more strands of hair, as in “a hair” [21]
    • “Experience” is both countable and uncountable. As an uncountable noun it means knowledge or skill, as a countable noun it refers to something that you have done [22].
    • Some nouns are plural, including “police”, “trousers”, and “glasses” [28].

    Prepositions and Conjunctions

    • The sources address the use of prepositions to indicate time, location, and relationships between words, for example, “at,” “on,” and “in” [43-53].
    • Conjunctions such as “although,” “though,” “even though,” “in spite of,” “despite,” “in case,” “unless,” and “as long as” are used to join clauses and express relationships between ideas [54-56].

    Phrasal Verbs

    • Phrasal verbs, combining a verb and a particle (e.g., “look up,” “take off”) often create new meanings [57].

    Word Order

    • The typical word order in English is subject-verb-object [58, 59].

    Other Important Usage Points

    • American English: The sources note some differences in grammar and spelling between British and American English [60-65].
    • Formal vs. Informal: The sources discuss the use of short forms (contractions) in informal speech and writing [40].
    • “Like” and “As”: The sources discuss the usage of “like” and “as,” explaining that “like” is used to compare things and “as” can mean ‘in the same way’, ‘while’, or ‘because’ [66, 67].
    • “Used to”: The sources explain that “used to do” refers to a past habit, and “be/get used to” describes being accustomed to something [17].
    • “So” and “Such”: These words are used for emphasis. For example: “The food was so hot that we couldn’t eat it.” and “It was such a long day that we decided to go to bed early” [32, 68].
    • “Had better”: This is similar to “should” but is used for specific situations [14].

    This discussion covers the key aspects of English usage explained within the sources.

    The Passive Voice in English

    The sources provide detailed explanations of the passive voice in English, including its formation and usage [1-3].

    Formation of the Passive Voice

    • The passive voice is formed using the verb “to be” in the appropriate tense, plus the past participle of the main verb [4, 5].
    • Present simple passive: am/is/are + past participle (e.g., is cleaned, are seen) [4].
    • Past simple passive: was/were + past participle (e.g., was cleaned, were seen) [6].
    • Future simple passive: will be + past participle (e.g., will be cleaned) [7].
    • Present perfect passive: has/have been + past participle (e.g., has been cleaned, have been seen) [8].
    • Past perfect passive: had been + past participle (e.g., had been cleaned) [8].
    • Present continuous passive: am/is/are being + past participle (e.g., is being cleaned, are being followed) [9].
    • Past continuous passive: was/were being + past participle (e.g., was being cleaned, were being followed) [9].
    • The sources also note that “get” can be used instead of “be” in the passive, primarily in informal spoken English, but only when things happen [10]. For example, “nobody got hurt” [10].
    • The passive infinitive is formed with to be + past participle (e.g., to be cleaned) [7].
    • The passive of doing/seeing etc. is being done/being seen [11].

    Use of the Passive Voice

    • The passive voice is used when the focus is on the action or the receiver of the action rather than the doer [5, 12].
    • It is often used when the doer is unknown or unimportant [12]. For example, “A lot of money was stolen in the robbery” [12].
    • The passive voice is also used when it is obvious who is responsible for the action, or when we don’t want to say who did the action [12].
    • The word “by” is used to indicate who or what performs the action when this is important or needs to be mentioned [4]. For example, “This house was built by my grandfather” [4].

    Active vs. Passive

    • In an active sentence, the subject performs the action, whereas, in a passive sentence, the subject receives the action [5, 12, 13]. For example:
    • Active: “Somebody built this house in 1961.” [12]
    • Passive: “This house was built in 1961.” [13]
    • When using an active verb, the sources say “we say what the subject does,” and when using a passive verb, “we say what happens to the subject” [12].

    Passive with Two Objects

    • Some verbs can have two objects [14]. This means that there are two ways to form a passive sentence, often beginning with the person receiving the action [14]. For example, with the verb “give”:
    • “The police were given the information.” [14]
    • “The information was given to the police.” [14]
    • Other verbs that can have two objects include: ask, offer, pay, show, teach, and tell [14].

    Verbs Often Used in Passive

    • The sources include examples of verbs commonly used in the passive voice. These include: build, clean, damage, see, employ, invite, pronounce, lock, send, injure, need, take, bother, cover, steal, cancel, repair, restore, and many others [4, 6, 15-17].

    Other Notes

    • The sources clarify that in the passive form of doing/seeing etc., the form is being done / being seen [11].
    • The expression “I was born” is always used, not “I am born” [11].

    The passive voice is a fundamental aspect of English grammar, and the sources provide a comprehensive guide to its formation and proper usage.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • Al Riyadh Newspaper, March 6, 2025 King Salman’s Humanitarian Efforts, Regional Issues, Development Projects

    Al Riyadh Newspaper, March 6, 2025 King Salman’s Humanitarian Efforts, Regional Issues, Development Projects

    These articles from “Al-Riyadh” newspaper cover a range of topics, primarily focusing on Saudi Arabia’s activities and initiatives both domestically and internationally during Ramadan. King Salman’s humanitarian efforts are highlighted through the distribution of dates to Muslims in numerous countries. The publication also reports on regional issues, including the Israeli blockade of Gaza and developments in the Syrian conflict. Domestically, articles discuss economic matters like gold prices and trade relations, social issues such as road safety and volunteer work during Ramadan, and development projects, including mosque renovations. Additionally, the paper features sports news, cultural commentary, and local announcements.

    Saudi Arabia: Key Issues and Initiatives

    Quiz

    Answer the following questions in 2-3 sentences each.

    1. According to the article, what has been a long-standing and firm issue for Saudi Arabia concerning Arab and Islamic nations?
    2. What specific demand regarding Palestinian territories has Saudi Arabia consistently voiced, as mentioned in the text?
    3. What was the main point of the resolution from the Arab and Islamic summit hosted by Saudi Arabia in November 2024?
    4. What is the purpose of the “King’s Gifts to Muslims in 102 Countries” program carried out during Ramadan?
    5. In which two countries were the Ramadan gift programs specifically mentioned as being implemented?
    6. What is the stated goal of the international conference “Building Bridges Between Islamic Sects” held in Mecca?
    7. Despite the ceasefire agreement mentioned in the context of Lebanon and Israel, what continued to occur?
    8. What did the Saudi delegation affirm at the Organisation for the Prohibition of Chemical Weapons in The Hague?
    9. What is the name of the campaign launched by the Emir of Qassim, and what is its primary objective?
    10. According to the article, what is the role of the General Authority for the Affairs of the Two Holy Mosques and the Prophet’s Mosque regarding I’tikaf (spiritual retreat) during Ramadan?

    Quiz Answer Key

    1. The article states that the Palestinian issue has been a long-standing and firm issue for Saudi Arabia, considered the primary concern of Arabs and Muslims, stemming from convictions based on the principle of justice and the right of the Palestinian people to their land.
    2. Saudi Arabia has consistently called for granting the Palestinian people their own independent state on the 1967 borders with Jerusalem as its capital.
    3. The main point of the resolution from the Arab and Islamic summit in November 2024, hosted by Saudi Arabia, was the rejection of the forced displacement of Palestinian citizens from the Gaza Strip and the West Bank, forming a fundamental reference for the Arab stance against Israeli and American policies on this issue.
    4. The purpose of the “King’s Gifts to Muslims in 102 Countries” program during Ramadan is to strengthen bonds of brotherhood and provide support to Muslims worldwide, sharing their joy during this holy month.
    5. The Ramadan gift programs were specifically mentioned as being implemented in Russia (Moscow) and Egypt (Cairo).
    6. The stated goal of the international conference “Building Bridges Between Islamic Sects” held in Mecca is to foster unity and understanding among different Islamic schools of thought and their scholars.
    7. Despite the ceasefire agreement between Hezbollah and Israel in November, Israeli airstrikes continued to target locations and facilities of Hezbollah in southern Lebanon and its east.
    8. The Saudi delegation at the Organisation for the Prohibition of Chemical Weapons in The Hague affirmed the Kingdom’s commitment to the provisions of the Chemical Weapons Convention.
    9. The campaign launched by the Emir of Qassim is called “100 Pilgrims,” and its primary objective is to enable those most in need to perform the rituals of Umrah during the holy month of Ramadan, promoting social solidarity.
    10. The General Authority for the Affairs of the Two Holy Mosques and the Prophet’s Mosque began receiving applications for I’tikaf in the Two Holy Mosques via its electronic portal, outlining the conditions and guidelines for those wishing to undertake the spiritual retreat during the last ten days of Ramadan.

    Essay Format Questions

    1. Analyze the key aspects of Saudi Arabia’s foreign policy regarding the Israeli-Palestinian conflict as presented in the article. Discuss the historical context, stated principles, and specific actions or resolutions mentioned to support your analysis.
    2. Examine the significance of the “King’s Gifts to Muslims” program during Ramadan. How does this initiative reflect Saudi Arabia’s role and responsibilities within the broader Muslim world, and what are the potential social and religious impacts of such programs?
    3. Discuss the factors contributing to the ongoing tensions and potential threats to peace in the regions surrounding Saudi Arabia, based on the information provided in the article regarding Lebanon, Israel, and the situation in Gaza.
    4. Evaluate the various initiatives and programs highlighted in the article that demonstrate Saudi Arabia’s commitment to its national development and international standing. Consider examples related to religious affairs, social welfare, and economic diversification.
    5. Based on the excerpts, discuss the role of Saudi Arabia in promoting Islamic solidarity and interfaith dialogue. Analyze the significance of hosting conferences like “Building Bridges Between Islamic Sects” and the broader implications for regional and global relations.

    Glossary of Key Terms

    • I’tikaf: An Islamic practice consisting of a period of retreat in a mosque for the purpose of worship and reflection, especially during the last ten days of Ramadan.
    • Ramadan: The ninth month of the Islamic calendar, observed by Muslims worldwide as a month of fasting, prayer, reflection, and community.
    • Umrah: An Islamic pilgrimage to Mecca that can be undertaken at any time of the year, distinct from the Hajj which has specific dates.
    • Palestinian Issue: Refers to the ongoing political conflict between Israelis and Palestinians over land and self-determination in the region of historical Palestine.
    • Two Holy Mosques (Al-Haramain Al-Sharifain): Refers to the two most sacred mosques in Islam, the Masjid al-Haram (Grand Mosque) in Mecca and the Al-Masjid an-Nabawi (Prophet’s Mosque) in Medina, both located in Saudi Arabia.
    • Ceasefire: An agreement to stop fighting, typically for a temporary period.
    • Chemical Weapons Convention: An international treaty that outlaws the production, stockpiling, and use of chemical weapons and their precursors.
    • Forced Displacement (Tehjeer): The involuntary movement of people from their homes or regions, often due to conflict, persecution, or policies.
    • Humanitarian Aid: Assistance given to people in need, especially in situations of crisis such as war, natural disasters, or famine, aimed at alleviating suffering and preserving human dignity.
    • Diplomatic Efforts: Actions taken by governments through negotiation and communication to manage international relations and resolve conflicts peacefully.

    Arabic News Review: Saudi Arabia and Global Affairs

    Here is a detailed briefing document summarizing the main themes and important ideas from the provided Arabic news excerpts:

    Briefing Document: Key Themes and Ideas in Recent Arabic News

    Date: October 26, 2023 (based on the provided issue date of March 6, 2025, but reflecting the news content’s likely timeframe) Source: Excerpts from “20707.pdf” ( جريدة الرياض – Al Riyadh Newspaper)

    Overall Theme: The excerpts cover a range of domestic and international news, with a strong emphasis on Saudi Arabia’s role in regional and global affairs, particularly concerning the Palestinian issue, humanitarian aid, religious initiatives during Ramadan, economic developments, and domestic progress in various sectors.

    Key Themes and Ideas:

    1. Saudi Arabia and the Palestinian Issue:

    • Principled and unwavering stance: Saudi Arabia maintains a long-standing and firm position on the Palestinian issue, considering it the “first cause” of Arabs and Muslims. This stance is based on the principle of justice and the rights of the Palestinian people.
    • Quote: “.” (The Kingdom – and still is – and throughout long decades, has had firm and resolute stances regarding the Palestinian issue, which is the first cause of Arabs and Muslims, and these stances stemmed from firm convictions based on the principle of justice and the right of the people, and this unwavering stance has been its destiny.)
    • Support for Palestinian statehood: The Kingdom calls for granting the Palestinian people their independent state on the 1967 borders with Jerusalem as its capital.
    • Quote: .” (Rather, it was accompanied by a clear voice calling for granting the Palestinian people their state and establishing their rights, the independent Palestinian state on the 1967 borders with Jerusalem as its capital.)
    • Rejection of forced displacement: The resolutions of the Arab and Islamic summit hosted by Saudi Arabia in November 2024 emphasized the rejection of the displacement of Palestinian citizens, considering it a fundamental reference for the Arab stance against Israeli and American plans regarding the Gaza Strip and the West Bank.
    • Quote: ” (We should not overlook the significance of the resolutions of the Arab and Islamic Summit hosted by the Kingdom in last November (2024), especially its resolution including the rejection of the displacement of Palestinian citizens; as it formed a fundamental reference for the Arab stance against clear Israeli and American trends regarding the displacement of Palestinians from the Gaza Strip and the situation in the West Bank and the annexation of Gaza… The Kingdom, with its partners in the ministerial committee… and the Arab and Islamic global alliance… launched an initiative… and hosted the first meeting in Riyadh with the participation of about 90 countries… considered an international conference and a clear indication of the sincere desire to establish peace and establish the [Palestinian] state.)

    2. Humanitarian Aid and Ramadan Initiatives:

    • Gifts from the King to Muslims globally: The Custodian of the Two Holy Mosques is providing gifts of dates to Muslims in 102 countries during the holy month of Ramadan. This aims to strengthen the bonds of brotherhood and support Muslims worldwide in celebrating the month.
    • Quote: ” (The Ministry of Islamic Affairs, Endowments, Dawah and Guidance continues to implement the program of distributing dates, the gift of the Custodian of the Two Holy Mosques, within an initiative it implements in (102) countries during the blessed month of Ramadan.)
    • Implementation in various countries: The distribution has already taken place in Russia and Egypt, with significant quantities of dates allocated to benefit tens of thousands of people.
    • Example: Five tons of dates were allocated for 20,000 people in Russia.
    • Continuation of Iftar and Date Distribution Programs: The Kingdom continues to implement programs for providing Iftar meals to those fasting and distributing dates during Ramadan in various countries like Kazakhstan.
    • Example: 10 tons of dates were provided to around 15,000 beneficiaries in Kazakhstan.
    • Aid to Sudan: The Kingdom has launched the third phase of a project to support food security in Sudan for 2025, distributing food baskets to displaced persons and returnees in several states.

    3. Religious and Cultural Initiatives:

    • Conference on Building Bridges Between Islamic Schools of Thought: A conference under the patronage of the Custodian of the Two Holy Mosques is being held in Mecca, organized by the Muslim World League, with the participation of prominent scholars and muftis from various Islamic schools of thought and regions.
    • Quote: “برعاية خادم الحرمين.. مؤتمر بناء الجسور بين المذاهب اإلسالمية ينطلق بمكة” (Under the patronage of the Custodian of the Two Holy Mosques… Conference on building bridges between Islamic schools of thought launches in Mecca.)
    • Development of Historical Mosques: The second phase of a project to develop historical mosques has been launched, including the renovation and restoration of 30 mosques in 10 regions, aiming to revive their role in worship and highlight the Kingdom’s cultural and historical depth.
    • “Alaa” Program: A program focusing on appreciating God’s blessings and raising religious and cultural awareness, involving media teams from Saudi Arabia and other Islamic countries.
    • Quote: (The message of the “Alaa” program focuses on the importance of reflecting upon the blessings that God has bestowed upon us, based on the noble Quranic verse: “So which of the favors of your Lord will you deny?” (Ar-Rahman: 13). The program aims to enhance religious and cultural awareness among the public.)
    • Increased Readiness at the Grand Mosque during Ramadan: The General Presidency for the Affairs of the Two Holy Mosques has increased its readiness to serve pilgrims and worshippers during Ramadan, with enhanced medical and ambulance teams.
    • Iftar Meal Distribution by Ikram Association: The Ikram Food Security Association in Mecca aims to distribute over a million Iftar meals during Ramadan, adhering to standards set by the General Presidency for the Affairs of the Two Holy Mosques.

    4. Economic Developments and Global Trade:

    • OPEC+ Decision on Oil Production: OPEC+ has decided to increase oil production for the first time since 2022, starting with a small increase in April. This follows previous significant production cuts.
    • Impact of US Tariffs: New US tariffs on imports from Mexico and Canada, as well as increased tariffs on Chinese goods, have come into effect, raising concerns about trade wars and their negative impact on global economic growth and inflation.
    • Quote: (A customs tariff of 25% on all imports from Mexico, a customs tariff of 10% on Canadian energy, and the doubling of customs duties on Chinese goods to 20% came into effect on Tuesday.)
    • Gold as a Safe Haven: Gold prices have seen fluctuations but generally remain sought after as a safe haven amid economic uncertainty and trade tensions.
    • Quote: (Tim Waterer, chief market analyst at KCM Trade, said, “I still expect gold to remain in demand while the state of uncertainty surrounding international trade remains a key characteristic and has entered the market.”)
    • Digital Marketing Trends in 2025: The digital marketing landscape is rapidly evolving, with increased reliance on data analysis, AI, personalized experiences, social commerce, and influencer marketing.

    5. Domestic Progress and Initiatives:

    • Najran Governor Reviews Civil Defense Report: The Governor of Najran province received the annual report of the Civil Defense Directorate in the region, commending their efforts in maintaining safety and security and preparing for natural and industrial hazards.
    • Eastern Province Governor Acknowledges Chamber of Commerce Achievements: The Governor of the Eastern Province reviewed the achievements of the Eastern Province Chamber of Commerce, particularly in training and supporting the business sector.
    • Qassim Governor Launches “100 Umrah Performers” Campaign: The Governor of Qassim launched an initiative to enable those in need to perform Umrah during Ramadan, highlighting the importance of social solidarity.
    • Deputy Governor of Mecca Inaugurates Quran Museum: The Deputy Governor of Mecca inaugurated the Holy Quran Museum, a major cultural and enriching destination showcasing the history and significance of the Quran using modern technologies.
    • Eastern Province Deputy Governor Reviews Youth Empowerment Initiatives: The Deputy Governor of the Eastern Province reviewed initiatives aimed at training and qualifying young men and women for the labor market.
    • Saudi Arabia’s Commitment to the Chemical Weapons Convention: The Kingdom’s delegation participated in the Executive Council meeting of the Organization for the Prohibition of Chemical Weapons in The Hague, reaffirming its commitment to the convention.
    • Progress in the Justice Sector: Saudi Arabia has made significant advancements in digitizing judicial services and enhancing real estate security through initiatives like the Real Estate Identity system.
    • Quote: (The Kingdom is considered one of the first countries that worked on them, and with the testimony of the World Bank, the Ministry was able, during the period between 2021 and 2024, to digitize more than 200 million judicial documents, linked to 250 courts and notary offices, and to understand what ranks Saudi Arabia in the justice sector globally, there is no harm in recalling the best global experiences in electronic services, such as the experiences of Estonia and South Korea…)
    • “Handicrafts Year 2025” Initiative: The year 2025 has been designated as the Year of Handicrafts in Saudi Arabia to preserve and promote traditional crafts as a vital part of the Kingdom’s cultural heritage.

    6. International Relations and Conflicts:

    • Stalled Peace Agreement in Southern Sudan: Developments threaten the peace agreement in South Sudan following the arrest of a senior SPLM-IO leader.
    • Lebanon and Syria Emphasize Border Control: The presidents of Lebanon and Syria met and stressed the “necessity” of controlling the borders between the two countries, particularly concerning smuggling.
    • Syria’s Participation in OPCW Meeting: The Syrian Foreign Minister announced his participation in a meeting of the Executive Council of the Organization for the Prohibition of Chemical Weapons, marking the first such participation since the ouster of Bashar al-Assad.

    7. Social and Cultural Commentary:

    • Ramadan as a Time for Reflection and Renewal: The excerpts highlight the spiritual and social significance of Ramadan, with discussions about changes in daily routines, the flourishing of literary gatherings, and the opportunity for inner purification.
    • Lebanese Drama Series “Bil-Dam” (With Blood): A Lebanese drama series dealing with sensitive social issues like child trafficking and illegal adoption is gaining attention.
    • Saudi Filmmaker at the Oscars: Saudi filmmaker Hakim Jomah attended the 97th Academy Awards, expressing his hope to participate as a nominee in the future and highlighting the growing potential of Saudi cinema.
    • Impact of Fasting on Health and Immunity: Articles discuss the health benefits of fasting during Ramadan, including its potential to enhance the immune system.
    • The Story of a Mosquito: An article reflects on the intricate creation of even small creatures like mosquitoes.

    8. Sports News:

    • Saudi Professional League Matches: Reports preview and cover matches in the Roshn Saudi League, including key fixtures involving Al-Ittihad, Al-Qadisiyah, Al-Khulood, and others, highlighting the competition for the league title and efforts to avoid relegation.
    • Al-Hilal’s Performance Dip: There is discussion about Al-Hilal’s recent decline in performance in both domestic and Asian competitions, despite a strong start to the season.
    • Real Sociedad vs. Manchester United in Europa League: A preview of the Europa League match between Real Sociedad and Manchester United, noting both teams’ struggles in their domestic leagues.
    • Al-Nassr’s Asian Champions League Ambitions: A mention of Al-Nassr’s need to win their second-leg match to qualify for the quarter-finals of the Asian Champions League.

    9. Other Notable Points:

    • Reopening of the Saudi Embassy in Somalia: The Saudi embassy in Somalia has officially reopened after being closed for several years.
    • Preparations for Itikaf in the Two Holy Mosques: The General Presidency for the Affairs of the Two Holy Mosques has begun receiving applications for Itikaf (seclusion for worship) in the Grand Mosque and the Prophet’s Mosque during the last ten days of Ramadan.
    • World Obesity Day: The Public Health Authority participated in World Obesity Day, raising awareness about healthy practices for children and combating obesity, aligning with the goals of Saudi Vision 2030.
    • Increased Demand for Traditional Pottery in Jazan during Ramadan: Markets in the Jazan region are witnessing increased demand for traditional pottery and handicrafts during the month of Ramadan.

    This briefing document provides a comprehensive overview of the key themes and important ideas presented in the provided news excerpts, highlighting Saudi Arabia’s multifaceted engagement on both domestic and international fronts.

    Saudi Arabia: Foreign Policy, Humanitarian Aid, and Cultural Initiatives

    FAQ on Themes and Ideas from the Provided Sources

    Q1: What are the main foreign policy stances of Saudi Arabia as highlighted in the excerpts, particularly concerning the Palestinian issue? Saudi Arabia maintains a firm and unwavering stance on the Palestinian issue, viewing it as the primary concern for Arabs and Muslims. This position is rooted in principles of justice and the right of the Palestinian people to their own independent state, with borders based on the 1967 lines and East Jerusalem as its capital. The Kingdom has consistently provided diplomatic and political support, as well as extensive humanitarian and relief aid to Palestinians. It has also vocally advocated for Palestinian rights on the international stage. Furthermore, Saudi Arabia hosted and played a significant role in the Arab and Islamic Summit in November 2024, which notably rejected the forced displacement of Palestinians.

    Q2: How does Saudi Arabia demonstrate its commitment to Muslims worldwide during the month of Ramadan, according to the text? During Ramadan, Saudi Arabia implements several initiatives to support Muslims globally. The “Custodian of the Two Holy Mosques’ Gift Program” distributes dates to Muslims in 102 countries to foster brotherhood and share the joy of the holy month. This program is executed through Saudi embassies, such as in Moscow and Cairo, reaching tens of thousands of individuals. Additionally, the Kingdom continues its program for Iftar meals for those fasting. These efforts reflect Saudi Arabia’s leading humanitarian and pioneering role in supporting Muslims around the world during Ramadan, a commitment acknowledged and appreciated by religious leaders and communities internationally.

    Q3: What was the purpose and significance of the “Building Bridges Between Islamic Sects” conference held in Mecca? Sponsored by the Custodian of the Two Holy Mosques and organized by the Muslim World League, the second edition of the “Building Bridges Between Islamic Sects” international conference in Mecca aimed to foster understanding and unity among various Islamic schools of thought and their scholars. The conference, attended by prominent Muftis and scholars from over 90 countries representing diverse Islamic مذاهب and schools, underscores Saudi Arabia’s commitment to promoting dialogue and cooperation within the Islamic world. It is considered a global initiative and a testament to the sincere desire to establish peace and build bridges among different Islamic perspectives.

    Q4: What are some of the humanitarian efforts undertaken by Saudi Arabia, specifically mentioning the initiatives highlighted in the text? Saudi Arabia engages in various humanitarian efforts, particularly focused on supporting Muslims and others in need. These include the distribution of dates to 102 countries during Ramadan, providing Iftar meals for those fasting, and delivering food baskets to those affected by crises, such as in Sudan. The Kingdom also launched the “100 Umrah Pilgrims” campaign in the Qassim region, facilitating Umrah for those with the greatest need during Ramadan. Moreover, Saudi Arabia is actively involved in addressing the humanitarian crisis in Gaza, condemning the obstruction of aid and supporting the Palestinian people. These diverse initiatives demonstrate a broad commitment to humanitarian principles and providing essential assistance on both regional and global scales.

    Q5: What are the key features and objectives of Saudi Arabia’s initiatives related to the development and preservation of historical and religious sites? Saudi Arabia places significant emphasis on the development and preservation of its historical and religious heritage. The initiatives include the rehabilitation and restoration of historical mosques across 10 regions, aiming to preserve their architectural authenticity, cultural significance, and role in worship. The opening of the Holy Quran Museum in Mecca showcases a comprehensive collection that integrates knowledge with modern technologies, offering an interactive experience for visitors to learn about the Quran’s history and the care it has received. These efforts align with Saudi Vision 2030, which focuses on preserving national heritage and highlighting the Kingdom’s cultural and historical dimensions.

    Q6: How is Saudi Arabia leveraging digital technology and innovation to enhance services and achieve its Vision 2030 goals, as seen in the provided excerpts? Saudi Arabia is actively integrating digital technology and innovation across various sectors to improve efficiency and meet the objectives of Vision 2030. In the justice sector, over 200 million judicial documents have been digitized, enhancing the security and reliability of real estate ownership through initiatives like the Real Estate Identity. The General Authority for Food and Drug Administration is using digital platforms to raise health awareness. Furthermore, the digital transformation extends to the management of Hajj and Umrah, with online platforms for Itikaf registration at the Two Holy Mosques. These examples illustrate a broad commitment to leveraging technology to streamline processes, improve services, and achieve the strategic goals of Vision 2030.

    Q7: What are the main challenges and ongoing conflicts discussed in the text that involve regional and international actors? The excerpts highlight several ongoing conflicts and challenges with regional and international implications. The Israeli-Palestinian conflict remains a central issue, with continued blockades of aid to Gaza and military operations. The conflict between Hezbollah and Israel persists despite ceasefire attempts. In South Sudan, the peace agreement faces threats due to ongoing instability and potential for renewed conflict. Additionally, the civil war in Sudan continues to cause a severe humanitarian crisis. The conflict in Ukraine also features, with discussions around NATO’s role and the potential for escalation. These situations involve various regional and global actors and present significant challenges to peace and stability.

    Q8: How is the concept of cultural heritage and its preservation being emphasized in Saudi Arabia, as indicated in the excerpts? Saudi Arabia is actively emphasizing the importance of cultural heritage and its preservation. The year 2025 has been designated as the “Year of Handicrafts,” underscoring the cultural and economic significance of traditional crafts. This initiative aims to recognize artisans, preserve traditional skills from being lost to globalization, and celebrate handicrafts as an integral part of national heritage. The establishment of the “Aaysaan” project in Diriyah, the birthplace of the first Saudi state, aims to build a generation that values its heritage and transmits it to future generations, aligning with Vision 2030’s focus on strengthening national identity and highlighting the Kingdom’s cultural depth. These efforts demonstrate a commitment to safeguarding and promoting Saudi Arabia’s rich cultural legacy.

    The Observance and Significance of Ramadan

    Based on the sources, Ramadan is a significant month with various activities centered around religious observance, charity, community engagement, and personal reflection.

    Religious Observances: The most central activity during Ramadan is fasting (Sawm), which is the fourth pillar of Islam. This involves abstaining from food and drink from dawn till dusk and is considered to have both spiritual and health benefits.

    Charitable Activities: The sources highlight significant charitable efforts undertaken during Ramadan. The Kingdom of Saudi Arabia actively distributes dates and iftar meals to Muslims in various countries, including Cameroon, Gabon, and Kazakhstan, during the holy month. This initiative is part of the Kingdom’s ongoing support for its brethren. Additionally, food baskets are distributed to the needy in locations such as the suburbs of Damascus in Syria, central Java in Indonesia, and Albasan Governorate in Albania.

    Community and Social Engagement: Even in non-Islamic countries where Eid al-Fitr and Eid al-Adha are not official holidays, Muslims organize Eid prayers and gatherings in mosques or open spaces. They also maintain traditions like family visits and exchanging greetings. Due to geographical distances, modern communication methods like phone and video calls are used to share Eid moments with relatives in their home countries.

    Spiritual Reflection and Development: Ramadan is described as a month that enriches the soul, with altered patterns of reading and writing. It is a time for contemplation and renewal, not just on a religious level but also intellectually. Sufis seek closeness to God during this month. The fasting experience is portrayed by Saudi poets and writers as a time for reflective engagement with life. Islamic organizations support projects that positively impact the daily lives of Muslims and promote Islamic values during Ramadan.

    Managing Daily Life and Productivity: The change in daily routines during Ramadan requires effective time management to maintain productivity. Some companies in certain countries reduce working hours to allow employees to redistribute their efforts more efficiently. Maintaining healthy habits during fasting is crucial for sustaining energy and focus.

    I’tikaf: For those in Saudi Arabia, a service is available to issue permits for I’tikaf, which is seclusion in a mosque, during the last ten days of Ramadan.

    Cultural Significance: The inauguration of the Holy Quran Museum in Mecca coincides with this period, underscoring the emphasis on religious heritage. Traditional handicrafts are also part of the cultural landscape, with potential for increased activity or appreciation during Ramadan.

    In summary, Ramadan is depicted as a multifaceted month characterized by intense religious devotion through fasting and prayer, significant charitable activities, strong community bonds, a focus on spiritual and intellectual reflection, adjustments to daily routines and productivity, and a heightened appreciation for religious culture and heritage.

    Ramadan Food Aid Distribution: Global Efforts and Obstacles

    Based on the sources and our previous discussion, the distribution of food aid is a prominent activity, particularly during the month of Ramadan.

    Key aspects of food aid distribution highlighted in the sources:

    • Distributors: The Kingdom of Saudi Arabia is a major contributor to food aid distribution. The Custodian of the Two Holy Mosques initiates programs to provide aid to Muslims in numerous countries. The Ministry of Islamic Affairs, Dawah and Guidance is involved in implementing these programs, specifically the distribution of dates. The King Salman Humanitarian Aid and Relief Centre acts as the Kingdom’s arm for humanitarian and relief efforts, working to alleviate the suffering of the needy and afflicted.
    • Types of Aid: Dates are a specific type of food aid frequently distributed by Saudi Arabia during Ramadan. The provision of iftar meals is also a part of the Kingdom’s charitable activities during the holy month, as mentioned in our previous conversation. Food baskets are also distributed to those in need in various locations [our conversation history].
    • Beneficiaries and Locations: Food aid reaches Muslims in various countries around the world. Specific examples mentioned in the sources and our history include Russia, Egypt, Hungary, Cameroon, Gabon, Kazakhstan [our conversation history], suburbs of Damascus in Syria, central Java in Indonesia, and Albasan Governorate in Albania [our conversation history]. The aim is to support Muslims and share their joy during Ramadan.
    • Purpose: The distribution of food aid aims to strengthen bonds of brotherhood and provide support to Muslims globally. It is an expression of the continuous charitable giving of the Custodian of the Two Holy Mosques to brethren. The broader goal is to alleviate the suffering of the needy and afflicted in various parts of the world.
    • Challenges: In contrast to the distribution efforts, one source highlights the prevention of aid from entering Gaza by the occupation, leading to the return of famine conditions. This underscores that while aid is being distributed in many places, there are also significant obstacles to delivering essential food supplies in certain critical areas.

    In summary, the distribution of food aid, particularly dates and iftar meals, is a significant charitable undertaking by Saudi Arabia during Ramadan, reaching numerous Muslim communities worldwide. However, the sources also point to the unfortunate reality of aid blockades preventing essential supplies from reaching those in dire need, such as in Gaza.

    Global Diplomatic, Humanitarian, and Political Affairs

    Based on the sources and our previous discussion, several aspects of international relations are evident:

    • Diplomatic Efforts and Conflict Resolution: The Kingdom of Saudi Arabia is actively involved in international diplomacy, as seen in its efforts to address the crisis in Sudan. The Kingdom aims to achieve a ceasefire, stability, the return of displaced persons, and a political future that safeguards Sudan’s security, sovereignty, unity, and stability while preventing external interference. This highlights a proactive role in regional conflict resolution.
    • Humanitarian Aid and International Solidarity: The sources emphasize the Kingdom of Saudi Arabia’s significant role in providing humanitarian aid to various countries. This is exemplified by the distribution of dates and iftar meals to Muslims in 102 countries during Ramadan. This initiative, carried out by the Ministry of Islamic Affairs, Dawah and Guidance and supported by the directives of the leadership, aims to strengthen bonds of brotherhood and provide support to Muslims worldwide. Countries like Kazakhstan have expressed their deep appreciation for this continuous charitable giving, highlighting the strengthening of bilateral relations through aid. The King Salman Humanitarian Aid and Relief Centre is also a key organization in the Kingdom’s international humanitarian efforts.
    • Islamic Cooperation and Unity: The Muslim World League plays a role in fostering unity among Islamic schools of thought, building bridges, and coordinating stances to address common challenges. It aims to promote moderation and counter sectarianism. Similarly, the University of Islamic Jurisprudence works to coordinate positions among forces of Islamic moderation to serve the Islamic nation and confront extremism. The expressions of thanks and appreciation from scholars worldwide to the Custodian of the Two Holy Mosques and the Crown Prince underscore the recognition of their efforts in supporting Islam and Muslims globally.
    • Regional Conflicts and Security Concerns: The sources report on Israeli airstrikes in southern Lebanon, indicating ongoing regional tensions and security issues. Additionally, there are reports about the prevention of aid from entering Gaza, highlighting the severe humanitarian consequences of the ongoing conflict and occupation. The situation in South Sudan, with the arrest of a senior military official, also points to internal conflicts with potential regional implications.
    • International Agreements and Organizations: The participation of Syria in a meeting of the Organisation for the Prohibition of Chemical Weapons (OPCW) in The Hague demonstrates engagement with international regulatory bodies. The Kingdom of Saudi Arabia’s reaffirmation of its commitment to the Chemical Weapons Convention and its support for resolving the Syrian chemical file highlight the importance of international agreements in maintaining global security.
    • Global Economy and Trade Relations: Discussions about oil markets and the impact of US tariffs and retaliatory tariffs illustrate the interconnectedness of the global economy and the potential for trade disputes to affect international relations. The consideration by Japan and South Korea to increase imports of US natural gas indicates evolving energy security strategies and trade partnerships.
    • Bilateral Relations: The congratulatory message sent by the Crown Prince to the Austrian Chancellor on the formation of the new government is an example of routine diplomatic engagement and the maintenance of bilateral relations between nations.
    • Proposed Approaches to International Conflicts: Former US President Trump’s proposed three-pronged approach to the Ukraine-Russia conflict provides an example of different perspectives and strategies for addressing major international conflicts, involving diplomatic pressure, the role of proxy actors, and the involvement of international alliances like NATO.
    • Impact of Internal Political Processes on International Relations: The announcements regarding the postponement of elections in Libya and the setting of new dates demonstrate how internal political developments within a country can have implications for its international standing and relationships.

    In summary, the sources reveal a complex web of international relations involving diplomatic efforts, humanitarian aid, religious cooperation, regional conflicts, adherence to international agreements, economic interdependence, and bilateral engagements. The Kingdom of Saudi Arabia emerges as a significant actor in these relations, actively engaged in conflict resolution, providing substantial humanitarian assistance, and fostering Islamic unity. However, the sources also highlight ongoing challenges such as regional conflicts and obstacles to delivering aid in certain areas.

    Insights on Health, Safety, and Well-being

    Based on the sources, several aspects related to health and safety are discussed:

    • Health Benefits of Fasting: Source and discuss the health aspects of fasting during Ramadan. Fasting can be motivated by religious reasons or for physical health. It is considered one of the main methods to maintain the body’s overall health and is seen as a form of an important dietary regimen. Recent studies mentioned in indicate that regular fasting for extended periods can help improve general health and maintain a healthy body weight. Furthermore, fasting may increase the efficiency of immune cells, such as white blood cells and T-cells, contributing to the body’s ability to activate immune responses and resist foreign bodies. The body may initially destroy some white blood cells during fasting to provide energy, but it quickly returns to stimulate the production of new cells, thereby enhancing the immune system’s efficiency. A study in the “Immunity and Ageing” journal suggests that intense fasting for specific periods stimulates the efficiency of the immune system by activating the complement system on the surface of red blood cells, potentially helping to eliminate infections. Another study in “Cell Report” indicated that fasting increases levels of Arachidonic Acid, which can help reduce excessive immune responses, potentially lowering the risk of autoimmune diseases. Source mentions the saying “fast to be healthy,” linking fasting to overall well-being.
    • Importance of Diet During Ramadan: Source and highlight the significance of breaking the fast with dates and water. Dates are rich in nutrients, fiber, vitamins, and minerals that support body health and are an ideal choice to break the fast, minimizing digestive issues. Drinking water at regular intervals between iftar and suhoor is crucial for maintaining fluid balance, preventing dehydration, and reducing feelings of thirst and fatigue.
    • Public Safety and Civil Defense: Source emphasizes the importance of preventative measures and public safety for preserving lives and property in the Najran region and its governorates. The text mentions the efforts of Civil Defense personnel and the necessity of preparedness to deal with natural and industrial hazards and the development of civil protection plans.
    • Occupational Safety: Source reports an incident in southern Lebanon where two brothers working on collecting scrap metal were injured in Israeli strikes, highlighting the dangers present in conflict zones and the risks faced by civilians.
    • Road Safety: Source mentions traffic accidents as one type of case that might be handled by a potential virtual judge, implying the ongoing issue of road safety and the legal processes involved in accidents.
    • Health Awareness and Education: Source underscores the importance of health awareness in children, particularly regarding healthy habits like drinking water and natural juices instead of sugary drinks and reducing the consumption of fast food, which are considered major factors contributing to increasing rates of obesity and related health problems in children. It also advises on healthier cooking methods like grilling and baking instead of frying.
    • Workplace Health and Productivity During Ramadan: Source,, and discuss the perception that work efficiency might decrease during Ramadan due to fasting. However, it argues that if individuals focus on the benefits of fasting, manage their time effectively, maintain a healthy diet during non-fasting hours, and get sufficient rest, they can sustain their work performance. Some companies even reduce working hours to improve efficiency. The text emphasizes that maintaining healthy habits during Ramadan ensures the continuation of work with the same quality. It also notes that fasting can help the body eliminate toxins and promote a feeling of lightness and activity with a balanced diet. Addressing issues like headaches, often caused by insufficient water intake, and avoiding heavy meals at iftar are important for maintaining well-being during the working day.

    In summary, the sources touch upon various aspects of health and safety, including the physiological effects and potential benefits of fasting during Ramadan, the importance of dietary choices and hydration, public safety measures and civil defense preparedness, occupational hazards in conflict zones, road safety concerns, the need for health awareness and education, particularly for children, and strategies for maintaining workplace health and productivity while fasting.

    Global Economic Trends and Sector Developments

    Based on the sources, several aspects of economic impacts are discussed:

    • Impact of Tariffs and Trade Relations: The imposition of tariffs by the United States on goods from Canada, Mexico, and China is a recurring theme, with potential significant economic impacts. These tariffs, such as the 25% tariff on all imports from Mexico and the 10% tariff on Canadian energy and the doubling of tariffs on Chinese goods to 20%, are expected to slow economic growth and reduce demand for fuel. Concerns also exist that these actions could reignite a trade war and escalate global inflation. Retaliatory tariffs imposed by countries like Canada on American imports and by China on US agricultural products are also noted. These trade tensions create uncertainty in the global economy, potentially impacting investment and consumer behavior. The potential for tariffs to push inflation higher is also highlighted. However, in times of economic uncertainty caused by tariffs, gold can become a safe-haven asset, increasing its attractiveness.
    • Oil Markets and Production: The sources discuss the stabilization of oil prices after reaching low levels due to concerns about the impact of US tariffs on economic growth and fuel demand. The decision by OPEC+ (including Russia) to increase oil production for the first time since 2022 is reported. This small increase of 138,000 barrels per day starting in April marks a step towards potentially reversing larger previous production cuts. However, the market remains under pressure with the anticipation of this increased production and the potential return of Russian oil supplies due to optimism about a resolution in the Ukraine conflict. China, a major oil importer, has set an economic growth target of around 5% for 2025 and is implementing stimulus measures, which could influence oil demand. Changes in Venezuelan oil exports and US policy towards Chevron’s operations in Venezuela are also noted as factors affecting the global oil market.
    • Growth of Digital Marketing: The sources indicate the tremendous evolution of digital marketing driven by technological advancements and changing consumer habits. Digital marketing is no longer just an option but a necessity for organizations. Innovations like content marketing, artificial intelligence (AI), and integrated electronic commerce experiences are making digital marketing more intelligent and effective. AI, through machine learning algorithms, enables personalized recommendations, customer service via chatbots, and automation of marketing processes, enhancing efficiency and return on investment. High-quality content creation and search engine optimization (SEO) are also crucial drivers in digital marketing.
    • Development of the Saudi Arabian Furniture Industry: The furniture industry in the Kingdom of Saudi Arabia is identified as an important sector reflecting the society’s aesthetic taste and interest in functionality. The sector has witnessed significant development in recent years, blending heritage with modernity to create a unique identity. Saudi furniture is being exported to various countries, enhancing the Kingdom’s position in design and manufacturing. The industry emphasizes its connection to cultural identity and local heritage, incorporating traditional motifs and using high-quality local materials. Innovation in sustainable materials and alignment with global trends while preserving national identity are also key features.
    • Economic Significance of Cultural and Creative Industries: The sources highlight the cultural and creative industries and handicrafts as significant sectors of the global economy and trade, offering new opportunities for developing countries. Handicrafts, in particular, represent a substantial portion of global output, with a continuous increase. The transition towards viewing cultural heritage as a basis for creative industries is considered highly important for economic transformation.
    • Economic Impact of Health Issues: Source mentions that the increasing rate of obesity in children has health and related problems and requires societal awareness. While not explicitly detailed, health issues like obesity can have long-term economic impacts on healthcare costs and productivity.

    In summary, the sources highlight significant economic impacts arising from international trade policies, particularly the US tariffs and retaliatory measures, which create uncertainty and can affect growth and inflation. The oil market remains a crucial area with its dynamics influenced by production decisions and geopolitical factors. Simultaneously, sectors like digital marketing, the Saudi Arabian furniture industry, and cultural and creative industries are experiencing growth and contributing to the economy. Health-related issues also carry potential long-term economic implications.

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • C++ Programming: Code Examples, Tutorials, and Problem Solving

    C++ Programming: Code Examples, Tutorials, and Problem Solving

    These sources offer a comprehensive introduction to C++ programming concepts for beginners. They cover fundamental topics like setting up the development environment, understanding variables, data types, operators, and control flow statements like ‘if-else,’ loops, and switch cases. The sources also discuss functions, including function overloading and recursion, illustrating how to build practical applications such as a calculator, a BMI calculator, and games. Additionally, there’s exploration of drawing shapes and the use of loops for generating multiplication tables, providing hands-on examples to reinforce learning. Finally, generics and templates are introduced to highlight programming best practices and how to improve code reusability.

    C++ Fundamentals Study Guide

    Quiz

    1. What is the purpose of the ASCII table? The ASCII table provides a numeric representation for characters, allowing computers to distinguish between letters, numbers, and symbols by assigning each a unique numerical code. This enables computers to process and store text.

    2. How many characters can ASCII represent, and why is this sometimes a limitation? Standard ASCII can represent 128 characters because it uses 7 bits per character. This is a limitation because it is sufficient for English characters but doesn’t include the characters needed to represent many other languages.

    3. Explain the difference between char and int data types in the context of ASCII representation. A char data type stores a single character, while an int data type stores an integer number. In the context of ASCII, a char variable can hold a character, and an int variable can hold the corresponding ASCII code of that character, allowing conversions between them using casting operators.

    4. What is a casting operator, and how is it used to convert between characters and their ASCII values? A casting operator is a way to explicitly convert one data type into another. In C++, you can use (int)character to get the ASCII value of a character or (char)number to get the character represented by an ASCII number.

    5. Describe the purpose of the modulo operator (%) and give an example of its use. The modulo operator (%) returns the remainder of a division. For example, 5 % 2 equals 1, because 5 divided by 2 is 2 with a remainder of 1.

    6. Explain how the modulo operator can be used to determine if a number is even or odd. If a number modulo 2 equals 0, the number is even; if it equals 1, the number is odd. This is because even numbers are perfectly divisible by 2, leaving no remainder, while odd numbers leave a remainder of 1.

    7. What is the difference between the = operator and the == operator in C++? The = operator is the assignment operator, used to assign a value to a variable (e.g., x = 5). The == operator is the equality operator, used to compare two values for equality (e.g., x == 5).

    8. What is the difference between pre-increment (++x) and post-increment (x++) operators? The pre-increment operator (++x) increments the variable’s value before it is used in the expression, while the post-increment operator (x++) increments the variable’s value after it has been used in the expression. For example, if x is 5, y = ++x will result in x being 6 and y being 6, but y = x++ will result in x being 6 and y being 5.

    9. Name three relational operators in C++ and provide an example of how they are used. Three relational operators in C++ are:

    • < (less than): if (a < b)
    • > (greater than): if (x > y)
    • == (equal to): if (num == 10)

    10. Explain the purpose of the break statement in a switch statement. The break statement terminates the execution of the current case in a switch statement and transfers control to the statement immediately following the switch block. Without a break statement, execution would “fall through” to the next case, even if its condition is not met.

    Essay Questions

    1. Discuss the importance of understanding the underlying numeric representation of characters (like ASCII) when developing software applications. Give examples of situations where this knowledge could be crucial for solving a programming problem.
    2. Explain the concept of operator precedence in C++. Describe how different types of operators (arithmetic, relational, logical, assignment) interact within a complex expression, and how parentheses can be used to control the order of evaluation.
    3. Compare and contrast the while loop, the for loop, and the do-while loop in C++. Provide scenarios where one type of loop might be more appropriate than the others.
    4. Discuss the advantages of using functions in C++ programming. Explain how functions can improve code readability, reusability, and maintainability, and illustrate your points with examples.
    5. Explain the concept of object-oriented programming. Discuss the differences between classes and objects.

    Glossary

    • ASCII: (American Standard Code for Information Interchange) A character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Each character is assigned a unique number.
    • Casting Operator: An operator that converts a value from one data type to another. For example, converting an int to a char.
    • Modulo Operator (%): An arithmetic operator that returns the remainder of a division.
    • Variable: A named storage location in a computer’s memory that can hold a value.
    • Data Type: A classification of data that tells the compiler how the programmer intends to use the data. Examples include int, char, float, and bool.
    • Operator Precedence: The order in which different operators are evaluated in a complex expression.
    • Loop: A programming construct that repeats a block of code multiple times.
    • While Loop: A control flow statement that executes a block of code repeatedly as long as a specified condition is true.
    • For Loop: A control flow statement for specifying iteration, which allows code to be executed repeatedly.
    • Do-While Loop: A control flow statement similar to a while loop, except that its condition is tested at the end of the loop body, ensuring that the loop body is always executed at least once.
    • Function: A block of organized, reusable code that is used to perform a single, related action.
    • Return Type: Specifies the data type of the value that a function returns after its execution.
    • Parameter: A value that is passed into a function when it is called.
    • Arguments: The actual values passed to a function when it is invoked.
    • Object-Oriented Programming: A programming paradigm based on the concept of “objects”, which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.
    • Classes: A blueprint for creating objects. It defines the attributes and methods that objects of that class will have.
    • Objects: An instance of a class. It is a concrete entity that has attributes and can perform methods.
    • Pointers: A variable that stores the memory address of another variable.
    • Void Pointers: Pointers that can point to any data type. They are useful for generic programming.
    • Recursion: A method of solving a problem where the solution depends on solutions to smaller instances of the same problem.

    C++ Programming Fundamentals: A Comprehensive Guide

    Okay, here’s a briefing document summarizing the key themes and ideas from the provided source “01.pdf”:

    Briefing Document: C++ Programming Concepts

    Overview:

    The source material appears to be a C++ programming tutorial covering fundamental concepts, including ASCII representation of characters, casting, basic input/output, arithmetic operators, logical operators, assignment operators, conditional statements (if/else, switch), loops (while, for, do-while), functions (including recursion), pointers, and object-oriented programming principles. The material uses practical examples (e.g., building a cipher, determining even/odd numbers, calculating triangle types, drawing shapes) to illustrate these concepts.

    Main Themes & Ideas:

    • ASCII and Character Representation:
    • Characters in C++ are represented by numerical codes using the ASCII standard. The source highlights the difference between uppercase and lowercase letters having distinct ASCII values.
    • Quote: “each character has its numeric pair inside ask key table… lowercase letter a is 97… capital letter A… 65… computer can distinguish between lowercase and uppercase letters.”
    • Casting operators can be used to convert between characters and their corresponding ASCII integer values.
    • Quote: “you can get an idea on how you can build something more useful than than just basic hello world application so you can for example build a program that ciphers words and sentences in a s key.”
    • Basic Input and Output:
    • std::cout is used for outputting text and variable values to the console.
    • std::cin is used for reading input from the user.
    • The tutorial demonstrates how to chain cout and cin operators to input or output multiple variables in a single line.
    • Arithmetic, Relational, Logical, and Assignment Operators:
    • The source covers various operators including modulo (%), increment/decrement (++, –), relational operators (<, >, ==, !=, <=, >=), logical operators (&&, ||, !), and assignment operators (=, +=, -=, *=, /=, %=).
    • It explains the difference between pre-increment/decrement and post-increment/decrement.
    • Quote: “…this operator here gives you the remainder of dividing these two numbers…” (referring to modulo).
    • Operator precedence is briefly touched upon: arithmetic > relational > logical.
    • Conditional Statements (if/else, switch):
    • if and else statements are used to execute different code blocks based on a condition.
    • The tutorial shows how to nest if/else statements.
    • switch statements are used for multi-way branching based on the value of a variable. The break statement is essential to prevent fall-through to subsequent case labels.
    • Quote: “this break keyword is really used so that our switch case statement knows where our first case ends.”
    • Loops (while, for, do-while):
    • while loops execute a block of code repeatedly as long as a condition is true. The source emphasizes the importance of ensuring the loop condition eventually becomes false to avoid infinite loops.
    • for loops provide a concise way to iterate a specific number of times. Nested for loops are used to create patterns and shapes.
    • do-while loops are similar to while loops, but the code block is executed at least once before the condition is checked.
    • Functions:
    • Functions are reusable blocks of code that perform a specific task. The source covers defining functions, passing arguments, and returning values.
    • Quote: “…this main function here is much more clean than it was before…” (referring to using functions to improve code organization).
    • Recursion: The tutorial explains recursion where a function calls itself. A base case is crucial to prevent infinite recursion and stack overflow errors.
    • Pointers:
    • Pointers are variables that store memory addresses.
    • The & operator is used to get the address of a variable.
    • The * operator is used to declare a pointer and to dereference a pointer (access the value at the stored address).
    • Pointers must be of the same type as the variable they point to (with the exception of void pointers).
    • Quote: “your pointer has to be of the same type like the variable that it is pointing to”.
    • Void Pointers: These can point to variables of any data type but must be cast to a specific type before dereferencing.
    • Quote: “a void pointer is a special type of pointer that can hold the address of a variable of any other data type”.
    • Object-Oriented Programming (OOP):
    • The source briefly introduces OOP, stating that it allows representing real-life objects with their attributes and behaviors.
    • Classes and objects are mentioned as fundamental concepts.

    Illustrative Examples:

    • Cipher: Creating a program to convert words into ASCII codes and vice-versa.
    • Even/Odd Checker: Determining if a number is even or odd using the modulo operator.
    • Triangle Classifier: Determining if a triangle is equilateral, isosceles, or scalene based on side lengths.
    • Shape Drawing: Using nested loops to draw rectangle shapes.
    • Digit Counter: Counting the number of digits in a number using a while loop.
    • Pin Verification: A do-while loop is used to allow a user a limited number of attempts to enter a correct PIN.
    • Prime Number Checker: Creating a function to determine if a given number is a prime.
    • Summing Numbers with Recursion: Demonstrates a recursive function to sum a range of numbers.

    Key Quotes:

    • “each character has its numeric pair inside ask key table… lowercase letter a is 97… capital letter A… 65… computer can distinguish between lowercase and uppercase letters.”
    • “…this operator here gives you the remainder of dividing these two numbers…” (referring to modulo).
    • “this break keyword is really used so that our switch case statement knows where our first case ends.”
    • “…this main function here is much more clean than it was before…” (referring to using functions to improve code organization).
    • “a void pointer is a special type of pointer that can hold the address of a variable of any other data type”.
    • “your pointer has to be of the same type like the variable that it is pointing to”.

    Potential Use:

    This document can serve as a quick reference or study guide for individuals learning C++ programming, covering many of the essential building blocks of the language.

    Programming Concepts: Answering Common Questions

    FAQ on Programming Concepts

    • What is the ASCII key table, and how is it used to represent characters in a computer?
    • The ASCII (American Standard Code for Information Interchange) key table is a standard that assigns a unique numeric value to each character, including letters (uppercase and lowercase), numbers, and some special symbols. This allows computers to store and process text by representing characters as numbers. For example, ‘a’ is represented as 97 and ‘A’ is represented as 65.
    • How can you convert between characters and their corresponding ASCII values in C++?
    • In C++, you can convert a character to its ASCII value by using a casting operator, like int(character). Conversely, you can convert an ASCII value back to its character representation by using char(numericValue).
    • What is the modulo operator (%) used for, and how can it be applied to determine if a number is even or odd?
    • The modulo operator (%) returns the remainder of a division. For example, 5 % 2 equals 1 because 5 divided by 2 is 2 with a remainder of 1. To check if a number is even or odd, you can use the modulo operator with 2. If number % 2 equals 0, the number is even; otherwise, it’s odd.
    • What are increment and decrement operators in C++, and what is the difference between pre-increment/decrement and post-increment/decrement?
    • Increment (++) and decrement (–) operators are used to increase or decrease the value of a variable by 1, respectively. Pre-increment/decrement modifies the value of the variable before it is used in the expression, while post-increment/decrement modifies the value after it is used. For example, if counter = 7, ++counter would result in counter being 8, and the expression would evaluate to 8. Whereas counter++ would also increment counter to 8, but the expression would evaluate to 7.
    • What are relational and logical operators in C++, and how are they used?
    • Relational operators (e.g., <, >, <=, >=, ==, !=) compare the values of two operands and return a Boolean value (true or false) based on the relationship. Logical operators (AND &&, OR ||, NOT !) combine two or more conditions into a single condition. Relational operators are used to compare numerical and string values, while logical operators are used for flow control.
    • What is the purpose of a switch statement, and how does the break keyword work within it?
    • A switch statement is a control structure that allows you to execute different blocks of code based on the value of a variable. The break keyword is crucial because it terminates the execution of a case within the switch statement. Without break, the code will “fall through” to the next case, potentially executing unintended code.
    • What are loops used for in programming, and how do while, do-while, and for loops differ in C++?
    • Loops are used to execute a block of code multiple times. while loops execute as long as a specified condition is true, checking the condition before each execution. do-while loops are similar to while loops, but they execute the block of code at least once, checking the condition at the end of each execution. for loops are designed for executing a block of code a specific number of times, typically using a counter variable that is initialized, checked against a condition, and incremented/decremented in each iteration.
    • What are functions, and how do they contribute to code reusability and modularity?
    • Functions are self-contained blocks of code designed to perform a specific task. They accept input (parameters), process it, and may return a result. Functions promote code reusability by allowing you to use the same block of code multiple times without rewriting it. They also contribute to modularity by breaking down complex problems into smaller, manageable parts, making the code easier to understand, test, and maintain.

    Visual Studio: A Beginner’s Guide

    Here’s what the sources say about Visual Studio:

    • Visual Studio 2019 is a tool used for C++ programming.
    • It is an IDE (integrated development environment), meaning it has many options, including ones that are useful for beginners.
    • The Community version can be downloaded and used for free, and there are many tutorials available on YouTube that explain how to download and install it.
    • When Visual Studio is opened, recent projects are displayed on the left.
    • On the right, there is a menu with multiple options: checking out code from GitHub, opening an existing project, and creating a new project.
    • To create a new project, the project type must be defined. For beginners, a simple C++ console application is recommended.
    • A new window will appear where the project name, location, and solution name can be defined.
    • The solution is a group of projects. Large applications can be divided into smaller projects within the same solution to make them easier to maintain.
    • Visual Studio’s Solution Explorer displays the solution name and the projects inside it. If the Solution Explorer is not visible, it can be opened by going to View and selecting Solution Explorer.
    • When a project is created, default folders and files are created. Source code files are placed in the source files folder.
    • The part of Visual Studio where you write code is a text editor with different colors to indicate the purpose or role of the code.
    • To run code, you can click the green play button.
    • It automatically builds code when started from Visual Studio.

    C++ Data Types: Variables, Storage, and Overflow

    Here’s what the sources say about data types:

    • A variable is a container for a certain data type. You can put a whole number, character, decimal point number, or a Boolean value inside it.
    • In C++, you cannot put two different data types inside one variable. It is also not possible to change a data type of variables once it is created.
    • Here are some of the most basic data types in C++:
    • int: can hold negative whole numbers, zero, and positive whole numbers.
    • char: can store one character.
    • bool: can store a true or false value.
    • float: can store decimal point numbers.
    • double: can also store decimal numbers, but it can hold much more data than a float. Double is double the size of float. Float takes four bytes, while double takes eight.
    • unsigned int: If you want to use only positive integer numbers, there is a data type for that called unsigned int. Its size is the same as of int (four bytes or 32 bits). However, since it is unsigned, it does not use one bit for sign because the sign is by default plus. It uses all 32 bits to represent value and those values go from zero to 4 billion and something.
    • Each data type takes a certain space in memory. To determine how much memory each takes, you can use the sizeof operator.
    • bool uses one byte.
    • char uses one byte.
    • float uses four bytes.
    • double uses eight bytes.
    • Each data type also has a maximum amount of data that they can hold. If you put too much data inside a variable, it is going to overflow. This is called data type overflow.
    • The int data type has reserved words for the minimum and maximum amounts.
    • int_min is the minimal amount for int in C++.
    • int_max is the maximum amount for int in C++.
    • The unsigned int data type also has a reserved word for the maximum amount.
    • uint_max
    • If you divide two whole numbers, the result will also be represented as a whole number. If you want to show the real result, you have to make one of them a float or double.
    • The modulo operator gives you the remainder of dividing two whole numbers.

    Conditional Logic: Mastering If/Else Statements

    Here’s what the sources say about the “if/else” statement:

    • The if statement is used when a block of code should be executed conditionally. This means the code will execute only in a certain situation.
    • An else block can be added, which will be executed if the initial if block is not executed.

    An example task is to check if a number entered by a user is even or odd and write that out to the user.

    Here’s how the “if/else” statement would be structured in code for this task:

    1. Prompt the user to enter a whole number.
    2. Use cin command to store the user’s input as an integer in a variable called number.
    3. Use the modulo operator to determine whether the number the user entered is even or odd. The modulo operator gives the remainder of dividing two whole numbers.
    4. Use the if statement to check whether the number modulo 2 is equal to 0. The == operator is used to check equality.
    5. If the result is zero, the program should output to the user that the number is even.
    6. If the result is not zero, the else statement is used to output to the user that the number is odd.

    #include <iostream>

    using namespace std;

    int main() {

    int number;

    cout << “Please enter whole number” << endl;

    cin >> number;

    if (number % 2 == 0) {

    cout << “You have entered even number” << endl;

    } else {

    cout << “You have entered odd number” << endl;

    }

    cout << “Thanks bye” << endl;

    }

    Complex “if/else” Statements

    • “If/else” statements can be more complex.
    • If you are not familiar with “if/else” statements, it is recommended to first watch a video explaining the basics before moving on to the more complex uses.

    Consider a task where the user enters the lengths of a triangle’s sides (a, b, and c), and the program determines whether the triangle is equilateral, isosceles, or scalene:

    • An equilateral triangle has all three sides of the same length.
    • An isosceles triangle has two sides of the same length.
    • A scalene triangle has all three sides of different lengths.

    Here’s how the “if/else” statement could be structured in code for this task:

    1. Declare three float variables: a, b, and c.
    2. Prompt the user to enter the side lengths of the triangle.
    3. Use cin command to store the user’s input in the variables a, b, and c.
    4. Use an if statement to check if a is equal to b AND b is equal to c. The && operator is a logical end operator. The expression will be true only if both sides are true.
    5. If the result is true, output to the user that the triangle is equilateral.
    6. If the result is false, use an else statement and nest another if/else statement.
    7. Check if a is not equal to b AND a is not equal to c AND b is not equal to c. The != operator means “not equal to”.
    8. If the result is true, output to the user that the triangle is scalene.
    9. If the result is false, output to the user that the triangle is isosceles.

    #include <iostream>

    using namespace std;

    int main() {

    float a, b, c;

    cout << “Please enter a, b, and c” << endl;

    cin >> a >> b >> c;

    if (a == b && b == c) {

    cout << “equilateral triangle” << endl;

    } else {

    if (a != b && a != c && b != c) {

    cout << “scalene triangle” << endl;

    } else {

    cout << “isosceles triangle” << endl;

    }

    }

    }

    Understanding Loop Control Structures: For, While, and Do While

    Here’s what the sources say about loop control:

    • There are three types of loops: for loop, while loop, and do while loop.
    • for loop: Before the loop starts, you should know how many iterations that loop is going to make.
    • The syntax of the for loop is for (initial value of counter; condition; increment/decrement).
    • Inside the parentheses, you put three expressions:
    • Set the initial value of the counter variable.
    • Put the condition that your for loop is going to check each time that it wants to run a block of code. Before each iteration, it is going to check that condition.
    • A way for your counter value to come to that condition. You have to either increase or decrease your counter variable in order to reach that condition at a certain point, and then when that condition results as false, your for loop is not going to be executed anymore.
    • After the for loop parentheses, you put curly brackets in which you write out the code that is going to be executed in each iteration of your for loop.
    • while loop: With a while loop, you first check the condition, and then if that condition results as true, you can really proceed with executing your block of code that comes after your while.
    • do while loop: With a do while loop, you first execute a block of code and then check the condition. If the condition results as true, you go back and do one more iteration.
    • The syntax of the do while loop is do {code block} while (condition);.
    • The code inside the do block is executed at least once, regardless of whether the condition is true or false.

    Here’s an example of using the do while loop:

    int pin, usersPin, errorCounter = 0;

    do {

    cout << “Pin: ” << endl;

    cin >> pin;

    if (pin != usersPin) {

    errorCounter++;

    }

    } while (errorCounter < 3 && pin != usersPin);

    • break statement: The break keyword is used so that your switch case statement knows where your first case ends.
    • If you don’t put the break statement, you are going to get your program to behave unexpectedly.
    • When the program reaches the break keyword, the loop will stop.

    Nested Loops

    • Loops can be nested, meaning you can put a loop inside another loop.
    • An example of using nested loops is drawing a rectangle shape.
    • The outer loop controls the height of the rectangle.
    • The inner loop controls the width of the rectangle.

    C++ Function Guide: Creation, Parameters, and Overloading

    Here’s what the sources say about function creation:

    • A function is a block of code that is grouped together and performs a specific task. The code in the function is executed only when the function is called or invoked.
    • Every C++ program contains at least one function, the main function. The execution of the program begins on the first line of the main function and ends on the last line, or when a return statement is encountered.
    • Besides the main function, you can create your own functions.
    • Functions make your code reusable. You can write code to solve a problem once, put the code in a function, and then call the function many times.
    • Each function should perform a specific task. This makes the code easier to manage.

    How to create a function:

    1. Specify the return type of the function. If the function does not return a value, use the void return type.
    2. Write the name of the function.
    3. In parentheses, list any arguments or parameters that the function receives. The parentheses can be left empty if the function does not receive any arguments.
    4. In curly brackets, write the body of the function. This is the code that will be executed when the function is called.

    Here is an example:

    void function() {

    std::cout << “hello from function” << std::endl;

    }

    Function Declaration and Definition

    • The recommended way to create functions is to separate the declaration and the definition.
    • The declaration of a function tells the compiler the return type, name, and parameters of the function. The function declaration goes before the main function.
    • The definition of a function is the actual code that will be executed when the function is called. The definition goes after the main function.
    • To navigate to a function’s definition, right-click the name of the function and select “go to definition,” or press F12.

    Here is an example:

    #include <iostream>

    //Function declaration

    void myFunction();

    int main() {

    myFunction();

    return 0;

    }

    //Function definition

    void myFunction() {

    std::cout << “Function was executed!” << std::endl;

    }

    Function Parameters

    • Parameters are values that are passed to a function. Sometimes a function needs to receive a certain value or variable in order to perform a task.
    • To create a function that receives a parameter, specify the type and name of the parameter in the function’s parentheses.

    Here is an example:

    void introduceMe(std::string name)

    {

    std::cout << “My name is ” << name << std::endl;

    }

    • To pass multiple arguments to a function, use a comma to separate the arguments in the function’s parentheses.

    Here is an example:

    void introduceMe(std::string name, std::string city, int age)

    {

    std::cout << “My name is ” << name << std::endl;

    std::cout << “I am from ” << city << std::endl;

    std::cout << “I am ” << age << ” years old” <<std::endl;

    }

    • A default parameter is a parameter that has a default value. If a value is not passed for that parameter when the function is called, the default value will be used. To specify a default parameter, assign a value to the parameter in the function definition.

    Here is an example:

    void introduceMe(std::string name, std::string city, int age=0)

    {

    std::cout << “My name is ” << name << std::endl;

    std::cout << “I am from ” << city << std::endl;

    if (age != 0){

    std::cout << “I am ” << age << ” years old” <<std::endl;

    }

    }

    • Default arguments can only be specified at the end of the parameter list.

    Function Return Statements

    • The return type of a function can be any data type, including int, float, bool, char, or double. It can also be void, which means that the function does not return anything.
    • A function can return only one value. Only one return statement inside a function will be executed.
    • Not all functions need to return a value. An example of a function that does not return a value is a function that writes a menu to the user.
    • Functions that return a value can perform a calculation on arguments passed to the function and then return the result of that calculation.

    Function Overloading

    • Function overloading means that you can create multiple functions with the same name, but with different parameters.
    • When functions do the same thing but use different data types, you can use the same name as long as the parameters are different.
    • When a function is called, the compiler decides which function to call based on the data types of the arguments that are passed to it.
    C++ FULL COURSE For Beginners (Learn C++ in 10 hours)

    The Original Text

    hi everyone welcome to my channel my name is Salina I am a software engineer and I make programming and it related videos here on YouTube so if that is something that is of interest to you consider subscribing to my channel and this video is going to be allinone C++ full course for beginners and the goal of this video is to take you from that place where you are struggling with programming where you don’t understand how to read code or write code to a place where where you feel really comfortable writing code and reading code and you really understand what the code is doing because that is the most important part so this course consists of lectures where I will teach you a specific concept and then uh there will be a task and by solving that task you will get a good understanding of that specific concept and then the complexity of those tasks will gradually increase so that at the end of this video If you finish it you will have have a very good understanding of the most important programming Concepts not only in C++ but you will be able to take that knowledge with you to other programming languages as well and then uh at the end after you finish this course in the description I will leave directions for you on what should be your next step because I have created a road map with steps and directions so that if you follow those you will be able to build your programming knowledge to a very very high level but before we start I want to ask you one question and I feel extremely proud and happy that you decided to invest your time to learn programming and I can personally give you many reasons why that is a great decision but what I’m more interested in is what are your reasons why would you like to learn programming and be good at it is it because you are very creative person or you want to get a job and earn a lot of money or you want to gain those problem solving skills or because you think that programming is cool um so any other reason that you might have as well please write that in the comments down below and then uh make a public commitment before you start because that is something that will motivate you so um write I will learn programming because and then put your reason and hold yourself accountable so I am very much looking forward to reading your answer in the comments down below so without further Ado I will just roll the intro and let’s start with the [Music] video hi guys very warm welcome to everyone watching this video and this video is going to be introduction to C++ programming language and the first video of this course I was planning on dividing this video into two separate parts so that in the first part I’m going to explain some basic concepts some general concepts that are related to C++ and that you need to understand in my opinion first before starting to write code and then in the second part we are going to build our first C++ program so I’m going to include in the description of this video a time stamp so that you can navigate yourself to the coding part if you want but if you’re an absolute beginner I would recommend you to watch the entire video Let’s explain a couple of Concepts before we actually start to write codes so that you are familiar with them you may wonder what kind of applications you can build with C++ well C++ is general purpose language that means that it can be used to build all type of applications so uh it is very close to the hardware and that means that it can manipulate resources easily so you can build operating systems if you want with it you can build compilers browsers uh demanding games so all general purpose software can be built with C++ uh it is not specific for only one domain but it can be used to solve and build different types of applications uh after that I would like to mention that C++ is compiled language that means that the code that you write first has to be compiled or uh converted translated into another language that is understandable to your machine to your computer so that phase is called compiling code or building code there are certain errors that can occur in this phase of course and those are compile time errors uh this type of Errors is usually the most common among beginners among people who are just starting to learn C++ and we are going to demonstrate some of those compile time errors when we start uh coding after that C++ is case sensitive language that means that uh C++ distinguishes between lowercase and uppercase letters so if you have for example a variable all up uppercase and then a variable all lowercase so the same meaning the same word those two are going to be treated and and understood differently as different variables uh by C++ so it is case sensitive language why C++ was created another question because before it there were other programming languages uh well yes they were uh and it was created in 1980s uh and it was created with two programming languages in mind one of those two was simula uh and the other one was C so simula at the time was great language for human way of understanding and representing things so it was very understandable and easy to use to humans but at the same time it was very very slow so uh they decided to combine it with another programming language a fast one and at that time the best choice for that was C programming language so they combined did the two and they got C++ uh C++ is very very uh understandable language very easy to use by humans so you can build and maintain uh huge projects with C++ uh but at the same time because of this C part uh it is uh very close to the hardware so uh demanding tasks can be executed fast uh and also well since since it was created uh from C programming language you can say that any valid uh C program is actually valid C++ program so if you’ve ever built a c program you have actually built a C++ program already as I have already said the code that you write is not directly understandable to your machine so first it has to be converted into another language that is understandable to your computer but the one the language that is understandable to you is called source code I am going to put here an example of source code uh and I’m also one wondering at this moment what do you think that this code does so before we started any programming any coding at all what do you think that the result of this program is going to be so just to check how understandable C++ really is even for someone who has not have a lot of experience in coding so write in the comments of the video what you think that this code is going to do and I’m going to check those so at the same time you’re going to be doing uh something called writing pseudo code which means describing what a program does but just in plain English so no C++ so this is uh the source code after that that source code is transferred or uh translated into another form another language which is understandable to your computer and that is object code that object code is usually in the form of binary numbers so ones and zeros and that is the only language that your computer actually understand and this is an example of your uh machine language I’m also not going to ask anyone to describe what this here does because this is highly unreadable and cannot be understood by humans but uh as I said it is the only language that your machine understands so algorithm what is algorithm algorithm is nothing more than a recipe so steps instructions that you write to your computer list of ingredients and and steps that your computer needs to do in order to perform a certain task that’s algorithm now that we have understood these Concepts let’s switch to more practical part so the tool that we are going to use is called Visual Studio 2019 and there is a lot of tutorials on YouTube on how you can download and install the visual studio and you can also use Community version for free so uh when we open Visual Studio you can see that here in this left part we have our recent projects uh so the project that that I have recently created and this may be empty if you haven’t used your visual studio so on the other side there is a menu with multiple options you have uh the option to check out your code from GitHub here you can open existing project from your computer uh and continue working on that but the option that we are going to use is called create new project so we are going to click that so this new window now here appears and we are going to Define what kind of project we want as beginners we are going to build a very simple app so we are going to build a C++ console application so you can type in a C++ and make sure to select C++ console application so not c not Visual Basic but C++ and when you clicked it you can now uh click uh when you selected it you can now click next so this new window uh now we get a new window uh where we have to Define our project name location where our project is going to be saved and and our solution name as default our solution is named the same as our project what solution is is just actually a group of project so if you had a huge application and you wanted to divide it in smaller parts so that it is easier to maintain you could divide it in multiple projects but all of those projects would be part of the same solution so as we are since we are building a simple app we have only one project and we will name it my first app so my my first app and location for our project we can either enter manually or we can do it by clicking this button here and I want my f files to be saved on desktop so I’m going to select uh desktop and now we are done with uh with creating our project so uh with configuring our project so we can click uh create so the tool that we are going to use uh Visual Studio is an IDE or integrated development environment that means that it has a lot more options than just those that we as beginners are going to need and use so for now I’m going to explain only the most basic ones the ones that we are going to need as beginners but as we progress along the way I’m going to explain the new features that we’ll use so so the first thing that you can see here is our solution Explorer so uh if you cannot see your solution Explorer you can click here to this View and select solution Explorer and that should bring your solution Explorer back to view so as we said our solution Explorer is named my first app and it has one project inside it so this this this project is this one here and as you can see when we created our project it was created with some default folders and files for now we are going to use only one file so you can delete these folders header files and resource files if you want just click right click and click delete so now this source files folder is where we are going to put our source code files if you remember from before I have said that uh source code is the code that we write and that is understandable to us so this is our source code file so this with CPP extension so when we created our project this file was created by default and if you double click it it opens uh here so this part here is nothing more than a than a text editor really as any text editor it just has these uh different colors depending on the purpose or the role of the code so that you can manage the code easier if it were all the same color it would be harder to uh to read so for example this green part here is a comment comment is just a note for yourself so compiler will not try to translate commented lines so if if you type for example here this slash slash or that means actually begin comment and then you can explain for example what this preceding code does so you can write this will output to the console hello world so this will output to the console hello world so that when you for example come tomorrow to this code and you have forgotten what this code here does this will remind you this comment here and these are some default comments which I will delete now we are not going to uh need this so just select everything and click delete as you would in any regular text editor this part here also now let’s explain what we got here so this include iio stream is actually a header file so it is also called a library and this um I stream is input output Stream So it allows our uh us to input and output data to and from our program for example thanks to this we can use commands such as this here so see out or console output so without having this we would actually have to program ourselves how we will input and output data in uh our in our console so we will not delete this line here now check this code here it says main well that means that this is our main function so a main procedure that our program is going to execute so whenever whatever you put actually in uh these braces here your program will execute and the execution of your program begins here and it ends here so since this here is the the scope of your main function so you can collapse it by clicking here and you see that everything is collapsed now so for now it’s enough for you to know that this is our main method our main procedure and later in this course we are going to uh learn and understand what methods are used for what is their purpose and we are also going to create a lot of Our Own methods so now we have this uh C out or console output which is the command to Output to the console and then we have also combined with this um STD and these redirection signs so STD is the Nam space for this C out so that’s how your computer knows what this SE out really is I will show you later how you can get rid of this if you really want and we also have this hello world in uh quotation marks okay let’s see what we have learned so far we said that this is our solution it inside it has one project and within that project we have this file with uh with extension. CPP which is our source code so if we double click this file it brings us here so to this text editor and this is our program this is the code of our program now how we can run this code well see this green play button here well that’s our start button it’s really uh it’s really intuitive so if I click it we will get our hello world text here which I have outputed to the console uh and you can also see that we we have besides our hello world we have gotten some junk text here so what I’m going to do is show you how you can get rid of this in a moment so let’s close our program for a moment and what you need to do in order to get rid of this junk text is type this command here so system pause greater than zero in quotation mark and the end of command you notice that at each of uh at the end of each command uh you have to put this semic column and if you didn’t it would result in an compiler error and I will demonstrate that let’s run our program now and you will see that our junk text has disappeared so as I said after each command you have to put this semic column and if you if you didn’t do that it would create a syntatic error and that then your your compiler would not be able to understand and your program would not run actually your program would not start so if I delete this semicolon here you see that something has changed in this in this window here so you see this R error error red sign um well if I hover over it you see you see it here also here here uh it says expected a semicolon which is very clearly says that you are missing a semicolon and if you see this red underline here it says also expected a semic colum so uh before this you are missing a semic column here so if I add it here if I add it here our error will disappear so if you try to run your program before fixing this error it would prompt you with with a window like this so it says you have one failed project and zero succeeded projects so this is the code building that I have mentioned before so this one project which is actually the only project that we have has failed building so your compiler does not actually understand what you have written since you are missing a semi uh column so another thing how you could know that you have syntax error uh except from this uh this prompt window that we got is this uh syntax error so missing semic column before this closed brace and if you click it here it will take you right where you need to go to fix your error so it’s it’s very useful and if I press my play button again it now says hello world so I will stop program now uh you can do it either by clicking this red sign here which says stop debugging or you can click this X on the console window so if some other error has happened to you which didn’t happen to me here you can write that in the comments down below and I will gladly help you also someone else can help you from uh from the other people learning from this video and I would highly encourage that since in my opinion the best way to learn something is to try to reproduce what you’ve learned and to explain it to someone else so write in the comments if you got some other error now let’s see how we can upgrade our program so let’s write something else let’s add for example STD two column signs console out so uh under quotation marks I will put something that I want to write out so let’s say for example my name is Salina you can put your name of course and at the end of each command you put semicolon and let’s add one more so let’s say today is Friday and also add end of command here so it should write when we run our program it should write these sentences in uh this order here so you can run your program and if you can notice it has this new line in the first sentence so this is because of this this back slash n so that puts whatever text is coming after in a new line so you can put uh that text in a new line by either entering a back sln or with adding this STD end line so STD end line and I have previously stopped my program if I run it again you see that that we have gotten a new line here you see also that this um STD here is becoming a bit tedious to write again and again and I’ve told you that I’m going to show you how you can get rid of this uh so what you can do is you can uh put this STD on a global level so you can say using using namespace STD using namespace STD and what will that do is reference this STD namespace on a global level so you don’t have to uh reference it every time that you are using it and now we can delete all of these so wherever you have written STD that’s going to be referenced here now and you don’t need it need to write it separately and if we run our program uh here we are going to get uh our result so we have also uh this new line added by either sln or this end line here okay so in this video we have learned how we can output data in a console and in the next video we are going to see how we can input data into our uh console so we can ask user to input data and we are also going to talk about variables and data types another thing that I want to show you before I finish this video is you may be wondering okay do I have to start Visual Studio every time that I want to run my program is there any other way for me to to execute my program uh and uh the answer is no you don’t have to start Visual Studio every time there is another way to start your program for for w from Windows so let’s save all changes that we have made here so far so you can press control+ s or um if you have made any changes you see this star here so it is indicating indicating that you have unsaved changes so you can right click on that and click save and you see that that start disappears now so let’s find a folder where we have created our project for me that was desktop uh if you follow this tutorial from the beginning you created it also and if you follow me you created it also on desktop uh so you can open your folder you can uh go to debug and inside that you uh see this file here it says application so this is your program so uh if you right click on that and you check its properties you will see that it says exe that means that it is executable file so that is your program that is your um application and if you double click on that well you see that it runs same as in visual studio so you can start your program from Windows actually if you want to show it to your friends or someone else you don’t have to you don’t have to open Visual Studio each time that you want to uh to run your program but one more thing to keep in mind is that if I go to visual studio now and I add one more line let’s say let’s say we write out have a nice day so and and if I save it so contrl s and if I try to open my program from Windows now what you’ll see now is that this new line that I have just added is missing but why is that so you know well um if you remember when we were talking about building code we said that that’s the phase of uh converting source code that you have written into a code that your machine understands and when you start your code from Visual Studio it does that process automatically for you so it builds your code and then it executes your your program but when you are starting your uh program from uh Windows it is missing that phase of building code so your uh recent changes your last changes were not translated so your uh computer has only the only translated version that it has is the previous one so without about your uh recently added changes what you need to do is you either have to run uh your code from Visual Studio first or it’s enough for you just to build that code inside visual studio and what happens when you do that so just click here and you can click build and what happens is your Visual Studio translates this code that you have written and it saves it here and now when you run it and when your windows runs it it has uh the the latest version it has the latest changes so this is the small trick that I wanted to uh show you so uh this will be all for this video and uh if you came across to some errors that didn’t happen here to me or you have any questions you can write those in the comments and I will I will answer those and if you watched so far you can like this video you can subscribe and share it with someone else who would also like to learn programming and I will see you in the next video hi guys I hope you are all well and welcome to the second video of C++ for beginners in this video we are going to talk about variables data types and also I’m going to explain how you can enter data in your program and how that data is encoded into numbers using something called asky table so here I have opened visual studio and if you are not familiar with Visual Studio or there is some code that you see here but you don’t understand it I would recommend you to watch my first video of this course the link is going to be in the description of this video and then come back to this video so let’s talk about variables now what is variable well I like to explain it a real life example for example you see this glass here well what I can say about this glass is that it is a container for a certain type of liquid so it can hold water milk tea juice whatever you want really and the same way a variable is a container but for a certain data type so you can put whole number inside it you can put character or a decimal point number or a Boolean value meaning true or false value so they are the same in this aspect another thing that I can say about this glass is that it defines a maximum amount of liquid that it can hold so it has a max limit and if you put too much it will overflow the same way with variables variables also Define a maximum amount of data that they can hold for example if you have a whole number variable well there is a Max number limit for that variable that it can hold and also if you put too much it is going to overflow it is literally called data type overflow so it is a container the same as variable and also it defines a maximum amount of data that it can hold but how much data you really put inside that variable so the same way with with the water inside this glass if you decide to put 1/3 or 1/2 or 2/3 of this glass the same way is with variables you can put however much you want as long as you don’t put too much because then it’s going to overflow one thing that is different though between variables and this glass is that you can put one day inside this glass you can put water the next day you can put juice the next day you can put milk then tea or even you can mix two liquids but with variables you cannot do that at least not with Once in C Plus+ there are certain languages that you can do that with and there is also advantages and disadvantages when it comes to that but in C++ you cannot put two different data types inside one variables and you can also not change a data type of variables once you create it so let me show you what I’m talking about on a practical example let’s say that you want to create a variable that is going to hold your annual salary well that variable is definitely going to be a decimal point number or also floating Point number that’s how it’s called in C++ and the type that is used for that is called float so I’m going to say float and then I’m going to give a name to that variable since we said that is going to hold a annual salary we are going to call it annual salary okay and then we are going to assign it a value and that value is going to be let’s say 50,000 99 so now what I have done here is I have created a variable called annual salary I have said that that variable is going to be of type floating Point number and then I have put inside that variable 5099 so now let’s see how we can base on this variable based on our annual salary calculate how much our user is earning every month so what we are going to do is we are going to create another variable we are going to call it monthly salary and we are going to assign that variable a result of dividing this annual salary with 12 months so we are creating a variable of type float also since the result of division usually can be also floating Point number or decimal number and because of that we are using also float type for our monthly salary variable so I’m creating monthly salary variable and I’m going to say that that variable is going to hold result of this expression annual salary divided by 12 months and now we have result of this division inside this variable and what we are left to do is to write that result out to our user so I’m going to say see out since that’s the command that we use to Output data to console and I’m going to say your monthly salary is and I’m going to say monthly salary so one thing to notice here is that when you are writing out strings or when you’re writing out data like this you use quotation marks but when you want to write out the value that you are holding inside a variable well then you just put the name of your variable you don’t use any quotation marks then and now we can run our program and let’s see what’s the result that we got you see here your monthly salary is 4,166 75 so if you want to check that out you can uh you can calculate it in your calculator one thing that uh that bothers me in this program is that we have hardcoded this value here so we have hardcoded coded this 50,000 99 not every everyone’s salary is 50,9 and what if we wanted our user to enter what his salary is during the execution of our of our program so when he runs our program our program should ask him what is your annual salary and then he enters that salary and then we calculate his monthly salary based on the number that he has entered so I would like to upgrade this program now to work like I just explained and how we are going to do that well first I’m going to delete these 50,000 99 okay and then we are left with this situation here so it says float annual salary that means that I have just created a variable called annual salary and I have said I’m going to put a floating Point number inside that variable but I have not assigned any value to it yet so here we have a container for our annual salary and that container doesn’t hold any value and if we try to run our program now what do you think that we are going to get write that in the comments before I run this program and now I’m going to uh so pause the video and think about it and then write write your answer in the comments and now I’m going to run the the program and you can see that we have some build errors as this here uh this window here says so let’s see if we open this part here it says we have one error and that error is uninitialized local variable annual salary used what that means is that this exess expression here if you see this green underline It also says using uninitialized memory annual salary well that means that this expression here our computer doesn’t know how to do this expression since we haven’t assigned any value to our annual salary variable so it doesn’t know how to divide that that with 12 since there is no value inside that container inside that variable so this causes a compiler error and whoever has written that compiler error is going to occure he was right so how we have to what we have to do to correct this is we have to ask our user to enter his uh annual salary so what we are going to do now is let’s see First Command that we use to Output data from our program into our console is C out so console output and the command that we use to input data is console input or C in so I’m going to say C in and then we use these other redirection signs and then we say what is the variable that we want to store what our user has entered and I’m going to say annual salary so what I have said here is our user is going to console input the data and then whatever he has inputed you have to redirect that inside our annual salary variable so now if I run my program now you see that our program runs now so there is no compile time error and also our cursor is blinking well it is blinking because it expects here our user to enter annual salary but this is not really clear to someone who has not made this program so what we have to do if I enter some value now well it is going to calculate it correctly but this is not really user friendly so what we have to do is we have to write a message to our user before he enters anything so that he knows what he should enter so before this C in command I’m going to say C out and I’m going to say please enter your annual salary okay and now if I run my program you are going to see please enter your annual salary and the cursor is blinking waiting for you to enter the value and if I I say for example 40,000 you see that your monthly salary is 33333 so the program has calculated your monthly salary and the number is based on whatever our user decides to input so we have upgraded our program and there is also one more thing that I would like to show you when we are doing this example and that is let’s say that we want to calculate how much money our user is going to earn in 10 years so let’s say see out in 10 years you will earn and now we have to put a value of how much money he is going to earn and if you look at this situation here we first created our monthly salary variable and we then assigned it a value of annual salary divided by 12 but there is another way that we can write out results of Expressions without creating any variables if that is what we need and that is just here so in this line in 10 years you will earn you add these redirection signs and then you say expression that you want your computer to calculate and what we want to calculate is how how much our user is going to earn in 10 years so that is annual salary times 10 and if you do it this way so if you don’t decide to create a variable then you will not be able to use result of this expression later in your program so you don’t have a container that holds this 10 year salary but you have a container that holds annual salary and monthly salary so each time that you want to to write out or do something with your 10year salary you will have to write this expression while if you want to do something with your monthly salary you have a container that is holding that value directly for you and you can access it so if we run our program now you see it expects us to enter our annual salary let’s say 50,000 and you see here your monthly salary is 4,166 67 and then in 10 years you will earn what is this half a million so okay one thing that we are missing here then and that you can add is end line or back slash end so you can add it here and your program is going to format your text nicely so this line should go here like this if I if I add here one more end line and if I run my program again you see enter 50,000 and now we have our text formatted nicely because of this end line that I have just added let’s now create another variable and this time we are going to create a variable of type character so Char that is the type that is used for character variables in C++ it’s called Char and let’s name our variable character and when you want to assign a value to a character variable in C++ what you use is these single quotes like this if you see this example here when we are writing out text so string of text we use these double quotation marks but when we want to assign a character value of a character variable we use these single quotations like here and there are also some more rules when it comes to naming your variables and the most important one in my opinion and the most important one to make it easier to you is to name your variables according to their purpose so give meaningful names to your variables that is really really important for example you see this uh monthly salary variable here we could have as well named this variable blah blah blah and copy it here also because we are having compiler error right now because our compiler does not know what this variable really is you see it says identifier is undefined because you have not created this variable here because it supposes that it is a variable but it has not been created before so it does not recognize what this variable is so we have to copy the new name here also and now our compile time error disappears and this here this name does not represent anything to your computer so your computer is now going to run your program and your program is going to work just the same as it did before but this is really making it hard for you to understand what your code is doing and especially if you come to this for example in 10 days or someone else tries to understand your PR program this is really hard to read and he will just try to uncover really what your program is doing without understanding it because you have used these blah blah blah names for your variables the same situation would be if you for example have three boxes inside your kitchen and you you use one for storing sugar and flour and salt and instead of naming those sugar flour salt respectively you decide to name them Red Box green box and blue box and then in someone else comes to your house someone else comes to your program he does not really know where to find sugar because red does not mean that that box is storing sugar so you should name that box sugar box because imagine have three is easily easy to remember but imagine having 10 boxes or 10 variables or a hundred of them or even a thousand which is very common inside large programs so what you should do and I am going to do is return that previous name so monthly salary and here also so you should give meaningful names to your variables that is very important and that is the first rule the second rule is that well the second and third and the fourth are the rules that you will have to obey in most cases because if you don’t then you are just going to get a compile time error in 99% of the cases let’s say and I’m not going to say what that 1% is because I want you to obey these rules so when it comes naming your variables another thing is that your variable names cannot contain any special characters except underscore so like this this here is valid name to your variable but if you try for example to name your your variable like this so you say plus character you see that here in this error window it says expected an identifier so you cannot use this to name your variable or this you cannot say character with this minus inside it so character minus um so these signs these special signs are used for something else they are operators inside C++ and and you are not supposed to use those inside your variable names if you really want to use some special signs what you should and can use is underscore like this so this is the only sign that is allowed and that I recommend for you to use for naming your variables that’s the second rule the third rule is that your variable names cannot begin with numbers like this so you cannot say eight character for example It also says expected an identifier but what you can do is you can say for example character 8 that is a valid name so a number can be on any other position except on the first position so this is a valid name for a variable so you can put also number here so you can say for example C12 eror 8 but again what does that really mean me that is not a meaningful name for a variable so again we come to the first rule so you should name your variables according to their purpose so I’m going to return this to character name again and then we have our third rule I guess which is you cannot use space inside your variable names so for example this this is not valid and your compiler says it here so it gives you an error it does not know what this really is so you cannot use Space Blank spaces inside your variable names because you are going to get compile time error and if I try to do that and I try to run my program I get the window so it says you cannot run this program you have syntatic errors what you should do is you should correct those errors and then you can really run your program like this this okay so let’s repeat these rules one more time the first rule is that you should give meaningful names to your variables so name them according to their purpose the second rule is that your variables cannot contain any special characters except underscore the third rule is that your variables cannot start with numbers you can put number on any other position but not on the first one and third rule is that and the fourth rule actually is that your variables cannot contain blank spaces so empty spaces no no in a variable name what you should do is you should name your variables according to their purpose so meaningfully and you should also use something called camel casing what is camel casing you see how I have named this annual salary here you see that the first letter of my variable name is small letter and then the next word starts with capital letter and that is called camel casing so for example you would name your variable like this first second third so like this you see that this first second third these are words inside your variable name and this F is lowercase letter that’s the start letter of your variable and then each next word begins with capital letter and all the rest is lowercase letters that is called camel casing and that is something that is usually used with C++ let’s talk about data types now I am going to delete this code so if you need this code for a bit longer you can pause the video here so what kind of data can we store in our variables Well for now we are going to cover only the most basic ones the ones that we are going to use frequently and you should know that there are a a lot more data types besides from these that we are going to mention here a more complex ones that we are going to cover later in these videos in this tutorial so the first one that I would like to mention is a whole number data type so integer a data type that can hold negative whole numbers zero and positive whole numbers so the type that is used for that and C++ is called int and good example example for INT variable is let’s say year of birth so that is an example of a whole number variable and let’s say that that variable is going to hold 1995 okay so that would be an integer variable after that we have already seen this so it is a character variable so let’s say Char and an example of a Char variable could be gender for example let’s call it gender and you can store f for female or M for male for example so the Char variable can store one character then the next one is Boolean value meaning true or false value this is the simplest one and the type that is used to store bullion is called bull and a good example for a bull value could be for example if you want to hold in your program a variable that tells you whether your user is older or younger than 18 years 18 years old so let’s call our variable is older than 18 and we can assign to that variable either value of true or false so I’m going to put true true here another very able another data type is decimal point number also called floating Point number which we have mentioned before and let’s create a variable of type float and let’s say that that variable is going to to hold our average grade so average grade and uh this average grade can also be a whole number but since it has potential to be also floating Point number or a decimal point number we are going to to use a float data type for this average grade and another data type that I would like to mention for also storing decimal numbers is called double and the difference between double and Float is that double is double size of float so if you remember when we talked previously about uh Tak memory space that that varibles take so float is taking four bytes and double is taking double of that so eight bytes so you can put much more data inside your double data type than inside float and let’s say for example that if you had a credit card and you had a lot of money a lot a lot a lot of money and you want to store that value inside a variable you would use a double data type so let’s say double balance if equals to this large number here which I’m not going to even try to read okay so these are the most common data types that we are going to use in this tutorial I have said earlier that each data type takes a certain space in memory but let’s see exactly how much each of these take for that we are going to use something called size of operator and let’s see how we use it so C out size of int is and then we write this size off so size of and in parenthesis we pass to it data type that we want to check how much memory it is using so int and if I run my program now you see that it says that int takes four bytes of memory and if you’ve ever actually studied binary algebra you would know that four bytes of memory is actually 32 bits since each bite has eight bits and as we said our int can store both positive and negative numbers and zero also remember that so the first of these 30 two bits is used to determine whether the number has plus sign or minus sign so whether it’s a positive or A negative number and then remaining 31 bits are used for this value itself so let’s check what is min value for our int let’s write that out let’s write C out int Min value is and we have reserved word for minimal amount for INT in C++ and that is intore min and if I run my program now you see that it says this minus 2 billion extremely hard to read this number but you see that this is the minimal amount of int so this number is actually 2 to ^ of 31 let’s just quickly write these so -1 -2 -3 and then minus this number here so this number as I said is 2 to the power of 31 why not 32 because this one bite is used to represent this minus prefix now we should check a positive number range so we also can write write int max value is and then there is another keyword in C++ for INT Max which is intore Max and are you expecting to see this same interval but just with plus sign so write in the comments what are you expecting to see and if I run my program you see that that did not happen and if some of you know why it did not happen I would also like to to hear what you think why we have this number here and then this number here for our negative and for our positive range so different ending number and I’m going to explain why because this positive range here we have to include zero also so in order to include one number here just let’s just copy this and paste it so our positive range is going to from one up to let’s say that it is this number but since it is including zero also in order to include one number here so zero you have to take one number here so this here is not eight anymore but is seven so that is why we got let’s say different number for our positive and negative range because this here includes zero also one thing that I have to mention though is that if you want to use only positive integer numbers there is a data type for that as well and data type that is used for that is called unsigned int and its size is the same as of int so four bytes or 32 bits but since it is unsigned that means that it does not use one bit for sign because the sign is by default plus but it uses all 32 bits to represent value and those values go from zero to let’s see exactly how big of a number 4 billion and something so see out size of unsigned int is and let’s see size of unsigned int this is the data type and let’s also write out what is the max value of unsigned int so let’s say C out u in max value is and there is there is also reserved War for that and that is U inore Max so if I run my program now you see that we got 4 billion and something number so double the size of this and this is actually 2 to ^ of 32 but minus one because we are also including zero in this range so let’s check these remaining data types I’m going to write those out quickly and I will be back so I have written here the rest of these data types and as you can see since our bull is only true or false value one bite is enough for bull our Char is using also one bite float is using four bytes double is using eight and I’m also going to include a table with some more data types which we haven’t mentioned here so if you need to check those out please pause the video one thing that I promis to show you is data type overflow let’s see what that is so let’s create a variable of type int and call it int Max and let’s say that I want to store inside that variable maximum amount of int So intore Max and I’m going to write that variable out now just see how big of value that really is so see out int Max and if I run my program now you see that I have gotten here this 2 billion very large number actually so that is the max amount of int now my question for you is what is going to happen in this situation so see out int Max + one what is going to be the result of our program now if I run it so some of you may know this already some of you may not but I am very interested in reading your answers so make sure to write your answers before watching my explanation on this write those in the comments down below and if I run my program now well our number has not increased by one but it has went to the minimal amount of int and why has that happened well that is the data type overflow that I was talking about and how this works actually is it works the same as your clock works so it goes 9 10 11 12 and then from 12 since that is the max value on your clock it does not go to 13 but it goes back to Min so 1 12 and then 1 and that is applicable here it went from the max value to Min value just by adding one and that is called data type overflow I already can see that this video is pretty pretty long and I’m currently having problems uploading very long videos to YouTube so I’m going to leave for the next video explanation of asky table and we are also going to do some more examples and practice C++ some more so make sure to subscribe to my channel and also click the Bell icon so that you are first to be notified when I upload my next video and also like it and share it with anyone who do you think could benefit from this video and I will see you in the next one hi guys welcome to my channel as I promised in my previous video in this video I’m going to explain the concept of asky table and then I’m going to give you an idea an example of a program that is very beginner friendly very simple but also very fun and that you can build only with knowledge from my two previous courses and this one so if you haven’t watched those make sure to watch them link is going to be somewhere here and also in the description and also make sure to like this video and to subscribe to my channel for more educational content and let’s begin now so what is aski well aski stands for American Standard code for information interchange and it was first created in order to standardize the way of representing characters in your computer so in asky table those characters are represented as numbers numeric codes and what this means is following let me give you an example when I first learned to read and write so when I was a little I decided to together with my friend create uh our special symbol language where we would exchange each character with a special symbol that only two of us could understand and then we would exchange letters us using that symbol language and no one else could understand those letters and also guys write in the comments down below if you did that I know you did so don’t make me feel like a weird one well that is exactly what your computer does it exchanges each character with a number so that it can understand it and it can communicate with other computers so this means that your computer or ask key table assigns to each character a unique number and let’s prove that now so how we can do that is in my visual studio I’m going to say see out and then in these parentheses I’m going to say int and then these single quotes and I’m going to say letter a and let’s add end line so this is one way of doing that and then there is another way of doing just the same thing and that is let’s say see out and then int and then inside these parentheses we are going to say our single quotes and our letter a and also add end line so this here is called casting operator and it is the operator that forces one data type to convert into another and since we said that each character has its numeric pair inside ask key table well we can ask our computer to give us that pair so here I’m seeing please tell me what is my numeric pair of my letter A so what number is my letter a and if I run my program now you see that I got 97 so our lowercase letter a is 9 97 in ask key table let’s check now a capital letter A so I’m going to say C out in off and let’s put our capital letter a and one more end line so if I run my program now you see that I’m going to get a different number so 65 and this is so that your computer can distinguish between lowercase and uppercase letters so ask key uses seven seven bits to represent each character and that means that it can represent 2 to the power of seven that’s how much characters it can represent so 128 characters and that is enough for all English characters so all English lowercase and up uppercase letters and numbers and also some special symbols but there is also a lot more languages and also languages that have a lot more characters so there is a lot more standards for representing those characters inside your computer so this that we have just mentioned is called um ask key and there is also extended ask key that is another standard that can represent more characters then there is also utf8 utf16 and a lot more different standards so what we should remember for now that is related to ask key is that as key represents each character with a number so it holds its numeric nuic match it’s num numeric pair in its table and then that we can also get get that numeric match using our casting operator so this here is a casting operator so now you may ask if we can get a numeric value of our letter so if if we can get our int number of our our letter can we do vice versa so can we get a character from our numeric value and the answer is yes we can convert a number into a letter also and I’m going to demonstrate how we can do that in a moment so you can say see out Char and let’s say Char of 65 and add end line and if I run my program you see that I’m going to get a letter A so capital letter a and now with this when you learn this you can get an idea on how you can build something more useful than than just basic hello world application so you can for example build a program that ciphers words and sentences in a s key and then also a program that deciphers those messages back into English readable characters so now we are going together to build a program that ciphers words into ask key codes and then I’m going to leave to you to build the program that deciphers those words back into English readable characters so let’s say that we want to Cipher a five letter word so what I’m going to do is what I need to do is to create five Char variables so I’m going to create five Char variables then I’m going to let my user input his letters inside those five chart variables and then I’m going to write out encoded words so I’m going to convert all of these letters in ask key codes and then I’m going to write that out to my user so I’m going to on a in a certain way Cipher his his word so I’m going to say here Char C1 Char C2 and then Char C3 and I won stop here for a moment I want to explain one thing when we first were talking about creating variables we said that this is the way of creating variables so you say the type of of your variable so Char in this case and then you say what name you are going to give to your V variable so in this case this is our C1 C2 C3 so this way of creating variables here it is correct but it is a bit tedious for this current situation there is another way of creating more than one variable and I’m going to demonstrate that now so what you can say also what you can do is Char C1 C2 C3 C4 and C5 and all separated with this comma sign so you can create more than one variable in one line like this but only if all of those variables are of the same type and in this situation they are so all of these variables are of type CH so I’ve now created five variables of type chart and another thing that I want to mention is that in upcoming videos we are going to learn how we can let our user decide how many characters how many uh how how many values he wants to enter during the execution of our program so now we have hardcoded these five values but we are going to learn more in the following courses and also another thing is that also in C++ there are a lot of solutions that you can use already made so that you can enter whole words or sentences so you don’t have to enter your word letter by letter so you don’t have to create variable for each letter that you want to enter but what I’m trying to explain here and what we want to understand here is how it really works in the background so how it works inside you have to understand that and I believe that that will give you a great advantage over those programmers that just know how to use something rather than how to make that something by themselves and then use it so I have here created five variables and each one hold a character that we will enter and let’s enter them now so what I’m going to say is C out enter five letters and then I’m going to say C in and I’m going going to put all my variables here so C1 C2 C3 C4 and C5 so if you can see here I have entered all of my five variables in a single line so you can do this you can buy B these operators like like this so that you can enter more than one variable in a single line the same way that you can bind your see out operator so that you can write out more than just one string so now what we are left to do is we have to write out our ask key message so what I’m going to say is see out ask key message and then I’m going to put int C1 let me write that out really quickly so I have written this message here and what I have said is console output asky message and then I have combined these C out operators so that I can write more than one variable in a single line so in a single command actually so I have said give me my int code of my C1 so give me my ask key code of my C1 variable and then put a blank space and then give me my asky code of my C2 and also C3 4 and five and I have also used these blank spaces because I don’t want to write just a single number in a single line because I want to know where my first character ends and where my second character begins that’s why I’m going to separate those codes with a empty space and also there’s another thing that I want to mention and it is that when you want to convert your variable so the value that you are holding in your variable and when you use your casting operator on that you don’t put your variable in a single quotation mark so you just put the name of your variable like this example here so if I run my program now you see that I get my message so enter five letters and I’m going to enter hello and you see now that I have this output asking message is 104 101 so 108 and 108 so that is our letter L you see that it has the same code and now I have gotten this asky message which is which is our ciphered word and also there is one thing that you that I want you to keep in mind and that is that this program here will not take into consideration your enter or your space key as a letter so if you if you put your enter or your space key however much times you want it will not treat it as a character there are some other functions that you can use in your C++ if you want to capture your enter for example or your space key such as cin.get if you really want you can Google that out but at this point we are keeping this very beginner friendly so this will not capture your enter and your space so let’s just prove that I’m I’m running my program once more and I’m going put enters and spaces and you see nothing is happening and then if I enter hello once more you see that I’m going to get the same numbers so the same message as before so we have built here a program that ciphers our words into s key and we have built this program after just studying a little bit of coding so imagine what you can do if you learned more so stay tuned make sure to subscribe to my channel and also like this video if you want to support me in filming these videos and also I’m going to leave to you to write a program that is going to decipher these messages from ask keyb into readable English words so you also can put your uh suggestions of a code in a comments down below and also what you can do you can upgrade this program here that we have written so that you can put in more words more sentences if you want and then you can put those coded encoded messages in the comments and everyone who wants to read those messages is going to have to build a program that is going to decipher those messages into readable English so subscribe to my channel like this video and I’ll see you in the next one hi guys welcome to my channel in today’s video I wanted to show you something that you are going to be using very often if you start on a programming path and that is if else statement so what is IFL statement well if statement is something that is used when you want to execute part of your code so block of your code conditionally which means not always but only in a certain situation and then if you add else block to that that else block is going to be executed otherwise so in the situation where your if block is not executed your else is going to be executed so let me explain that to you in a simple example here I have opened my visual studio and let’s quickly paste an exercise that we are going to do in this tutorial and that that is this task here so let’s say that our user has to enter a number a whole number integer number and then after that our program has to check whether that number is even or odd and has to write out that to our user so how we are going to solve this problem here well I’m going to explain explain this to you using diagrams because I believe that that is the best way for you to understand this if you haven’t used this IFL statement before and then what we are going to do after we understand those diagrams well we are literally going to just translate that diagram into our C++ code so let me open my tool here I have opened a tool that I’m going to be using for drawing diagrams it’s called blank diagram you can use whatever tool you want you can use even a paint or pen and paper if you want that will work as well so here I’m going to draw the flowchart of our program so how our program is going to be executed and let me add first here this shape and we are going to say that this is going to be the start of our program so I’m going to write out start and this indicates our main function let’s say the first line of our main function so here our program starts and then as we said in our task in our exercise our user has to enter an integer number and the shape that we are going to be using for that is this shape here so let me put this shape here and I’m going to write a text inside and I’m going to say in number so this shape here indicates that our user is going to enter some data in our program and why I’m using this shape because it looks like this it looks like a funnel so you can clearly visualize that something has to enter inside that shape so something has to be inputed in your program so I’m going to use this shape for that and then I’m going to say that our user has to enter an integer number which I’m going to call number so that variable I’m going to call number and let’s quickly add this Arrow so that we know that this is the flow of our program so after it has started our user enters a number and then after that what we have to do is our program has to decide whether that number that user has entered is even number or odd number so how we are going to do that well the shape that I’m going to be using for that decision let me find it Well it is this shape here so this diamond shape and as you can see it says decision on it so that’s the shape that we are going to be using and inside this this shape here I’m going to write a condition so as you can see our program flows this way and after it comes here as you can see it has one entry point and then it it can have multiple multiple flows that it can go to depending on this condition that we are going to put inside here but how we are going to decide whether that number that our user has entered is even or odd let me very quickly open my visual studio once more it is here and let me show you something I want to introduce you to a operator that is called modulo and that is used to show what is the remainder of dividing two whole numbers so I’m going to write out C out and then what I’m going to write out is let’s say 2 modulo 2 so this operator here gives you the remainder of dividing these two numbers and in this situation we are expecting to see a zero because 2 ided by 2 is 1 and then what remains after that operation is zero and that what remains should be should be shown when we use this operator here so if I run my program you can see that we have gotten the expected result so we have gotten zero here but let me show you what happens if I enter for example five well what we are going to get is one because 5 ided by two is going to be two and then that one that remains we can get using this operator and you see that it gives us the expected result so 5 modul 2 is equal to 1 so this operator here is what we are going to be using to determine whether our user has entered even number or odd number because when we get the result of modulating two numbers when our result is one that means that our user has has entered odd number and if we get zero as a result of this operation that means that our user has entered even number so I’m going to switch again to my diagram and then inside this decision here we are going to be writing we are going to write this condition here so I’m going to say number modulo 2 is equal to Zer so what this means it means that after our program has started and our user has entered the number that he wants an integer number we are coming to a decision point where we have to decide whether this number that he has entered after you modulate it with zero whether it’s a uh zero remainder or some other remainder so in this situation when this is zero we are going to execute a certain part of code and then let me add very quickly oh I’m impressed it already has this yes inside it and then we also have this no on this other line so in this situation where this results as operation that is true we are going to execute this part code of here so I’m going to add another shape which I cannot see but let me use this shape once more and I’m only going to rotate this shape like this and I’m going to delete this text and what we are going to be using this shape here for is to indicate that we are going to output something from our program so it looks like this which is clearly a visual of something is going to be outputed from it so it is just reverse of this shape here this funnel shape and then inside this shape let me write a text which is going to be um let’s say that in the case that this here results as a yes as a true operation so our number when it’s modulated by two it gives a zero remainder we are going to say that that number is even number so we are going to write that out to our user and then in the situation where this here results as a no so as operation that is false let me write out that here and I’m going to say to our user so I’m going to write out to my user that he has entered odd number and let’s just join this here like this okay so our user enters a number then we decide if that number modulated by two gives us zero and if yes we are going to write out to our user that that is a even number if no we are going to write out to our user that that number is odd number and this is here really our program what I’m going to add is let’s say that after this our program is going to stop so I’m going to to say here that this is the end of my program like this and let’s add one more stop of this flow here so in both of these situations after we have and after we have outputed to our user the result of this program our program is going to stop and this here really like these two stop points look a bit ugly to me so what I’m going to do instead of this I’m going to delete this you could have as well left it like this like like it was before but what I’m going to add I’m going to add one more of these diamond shapes only this time it’s going to be smaller and I’m going to say that in this situation it is going to be used only to say that this decision here this decision flow is going to be joined in this point here so like this I’m going to say whatever has happened whether this block of code or this block of code it has come to an end here and then after that from here I’m going to say now my program is going to stop like this and this and let me remove this yes and this is going to be the flowchart of our program so our program starts then our user enters integer number then we decide whether that number modulated by two is going to give us zero if yes we execute this else we execute this so if this is no and then we come to this which joins our two pads and then we can say that our program has ended and now let’s translate this to our code here I have opened both my visual studio and also I have exported this diagram so that we can translate it literally we can look at this diagram and then translate that into code so now I’m going to delete all of this that we have written inside our visual studio and I’m going to look at this picture and just translate it into C++ commands so the first this first shape here says that user is going to enter integer number inside our program and we are going to call that variable a number so I’m going to say int number and then this here this funnel shape really translates into C in command so user enter something inside our program and that is C in command and I’m going to say that user is going to enter a number before this I would like to add one more information to our user so that he knows what he should enter you could have as well put that to our diagram but I didn’t want it to make that diagram crowded so I didn’t but what we are going to add here is see out and then say please enter whole number like this so we write out a message to our user and after that our user as you can see here enters integer number we had also to declare this int number variable because you can enter the value only for variables that you have previously declared and then after that our program comes to this decision point and how we can represent this decision inside our code is using if statement so we are going to write here if and then I’m going to put this condition here inside these parentheses so I’m going to say if number modulo 2 equals zero this here is operator of equals so whether this side is equal to this side since only one of these so like this this operator here is used to assign value to a variable so that was already taken so this here two of these signs are used to check equality of these two sides so whether this is equal to this and then what I’m going to say as you can see from my diagram here we check this condition here and if this condition is true if this condition is yes we are going to execute a certain block of code and that is this code here and how you indicate a block of code in your C++ is using these braces here like this so this is your block of code that is going to to be executed in this yes situation and then in case that this no here happens so in case that this results as false you are going to execute another block of code and we represent that block of code using else statement so we are going to say if this here is true execute one block of code else if this here is false execute another block of code so here what our if makes us do well it says that we only have to write out to our user that he has entered even number because this shape here as you can see it looks like this and it represents that something should be outputed from your program so we are going to use for that our C out command so see out you have [Music] entered even number so like this and let’s add end line so in case that this here results as true we are going to Output to our user that he has entered even number else if this here results as false we are going to Output to our user let me copy this like this and we are going to change that only to odd so in case that this here results as false we are going to Output you have entered odd number so either this here is going to be executed or this here depending on this condition and you can see that from diag diagram clearly so when your program comes to this decision point it checks this condition and if the answer is true or yes it is going to execute this else if the answer is no it is going to execute this and then after that it really just joins these two flows and then that is the that is the stop point of your program so we can write here see out thanks by okay let’s say that that is the last line of our program you don’t I haven’t put this on on my diagram I okay so I’m going to run my program now and as you can see it says please enter a whole number so this line here and if I enter for example8 it is going to come to this line here and it is going to modulate our eight with two and if the result is zero which it is it is going to execute this line here and write out you have entered even number oh thanks we are missing an S here and then it writes out thanks by and let me add an S here okay and if I run my program again as you can see it ask me asks me again to enter a number and this time I’m going to enter five which we know that is an odd number it says you have entered an odd number because it has come to this decision Point here it has tried to modulate 5 with two and the result of that was not zero so it has not executed this but it has executed this else statement and it has written you have entered odd number as you can see here and then this thanks by okay so I hope that you have understood this and if you like me to use these diagrams to explain some more code that we are going to be using you can write that in the comments down below and I’m going to try to use more of these diagrams because I know that some people understand it better when there is a visual representation of your code I was one of those people when I first started learning programming so if you find it easier to understand when I use these diagrams I’m going to be using that so thanks for watching this video make sure to like it if you find it any helpful and also to subscribe to my channel and I’m going to see you in my next video bye hi guys welcome to my channel in this video I wanted to talk about if else statements but a bit more complex if El statements so that you can get an idea on how they are used in real life so if you’re not familiar with them at all like you have never heard of IFL statement then you should probably First Watch My First video of this subject and I’m going to link it somewhere here and then you can come back to this video but if you’re already familiar with the very basics of IFL statements then this video is right for you so that you can upgrade your knowledge so keep watching so the problem that we are going to solve in this video is the one that students usually get on their exams a lot and with the knowledge that you get from this video you are going to be able to recognize and solve other problems of this type and also if you don’t want to work with C++ this logic that I’m going to teach you today is going to be applicable in other programming languages as well so here’s the text of my problem and it says that our user should enter the lengths of a triangle so a b and c and after that our program should write out whether that triangle is equilateral isoceles or scaling triangle and as you already may know equilateral triangle is the one that has all three sides of the same length isoceles triangle has two sides of the same length and then scalene triangle is the one that has all three sides of different length so the way that we are going to solve this problem is we are going to really visualize the solution for this problem so that you can really understand it and that is going to be using diagrams the tool that I’m going to be using for drawing diagrams is called blank diagram you can use whatever tool you prefer even pen and paper if you want and the first shape that I’m going to put to this diagram is going to be this circle shape here let’s say that it is going to indicate the start position of our program so here is where our program starts and after our program has started what we want is we want our user to enter side lengths of our triangle and the shape that we are going to be using for DOT is this funnel shape here so that you can clearly visualize because of this funnel shape that something should enter inside it something should be inputed in your program and what should be inputed is side length so a b and c and the type that I’m going to be using for these three variables is float why float well because the lengths of sides of a triangle can be decimal point number or floating Point number so float and then let’s put this Arrow here so that you can oh so that you can uh visualize the flow of our program it goes like this and then after our user has inputed the side lengths what we should do is we should determine whether he has entered a equilateral triangle isoceles triangle or squalene triangle and what I’m going to do next is I’m going to use this diamond shape here which indicates decision in your program and what I’m going to put inside this shape here is condition the first thing that we want to check is whether whether our user has entered equilateral triangle so whether these three sides are all of the same length whether these three variables hold the same value and let me make this a bit bigger and inside here I’m going to say please check if my a is equal to my B and also if my B is equal to my C like this so let me join these two and I want to explain two things when it comes to this first one is this operator here this end operator these two ents this is logical end operator and it is used as I’m going to just explain so this expression here is going to result as true expression only in a situation where this here is true and also at the same time this here is true so in that case this whole expression expression is going to result as a true operation that is the logic behind this end operator and the second thing that I want to explain is following so I have said here please check if my a side length is equal to my B length and also if my b side length is equal to my C side length what you have Al what you can also put here is you can also say a because we have determined here that these two are of the same length so it really doesn’t matter if you put here A or B whichever you prefer so in this situation where this results as a true operation we are going this way and what I’m going to do when this results as a true operation as a yes operation I am going to use this shape here let me just rotate it I really don’t see a shape that that is this one so that’s why I’m using this reverse funnel shape and I’m rotating it so that you can clearly visualize something something that is being outputed from your program let me delete this text here and make it a bit wider and I’m going to put text inside it and what I want to write out in this situation here where this results as a true operation where this condition is fulfilled is that our user has entered equilateral triangle because all three sides are of the same length so let me write that out so in case that this condition condition here is true we are going to to write out our user that he has entered equilateral triangle and then let’s check the situation where this here results as a no operation so in that case we have to to determine whether our user has entered scaling triangle or a isoceles triangle and for that I’m going to be using another of these diamond shapes so another decision that we have to make and let’s put it here and oh no and the next thing that we want to check is following so I want check when I once I have determined that my user has not entered all three sides of the same length I want to determine whether he has entered all three sides of a different length so I’m going to put inside this shape here another condition and I’m going to say following so please check if my a is oops if my a is not equal to my B and also at the same time if my a is not equal to my C and also at the same time if my b is not equal to my C like this so this is the next condition that we want to check and this operator here is called not equal to operator and it is really reversed from this equal operator it has reversed logic so in this condition here what we want to check is whether my a side length is not equal to my bside length and also at the same time whether my aside length is not equal to my C side length and also whether my B is not equal to my C and if this here results as a true operation that means that all of these three side lengths are not equal they all have the different lengths so in that situation we are going to go this way and we are going to write out let me copy this shape and here I’m going to say please write out my user that he has entered a triangle that has all three different side lengths and that is going to be our scaling triangle like this okay so in the situation where this here results as a true operation it means that all of these three are of a different length and we write out to our user that he has entered scaling triangle and then the situation where this here results as a no because we have previously determined that these tree are definitely not of the same length and then we have in this condition here determined that these Tre are also not of a different length what is left is that the two of these two of these three sides are going to be of the same length and that is going to be the situation where we write out to our user well I can copy this and we write to our user that he has entered isoceles triangle so let me write that out okay so these three are three potential end points of our program so three potential solutions to our problem and after we write out to our user this or this or this I’m going to really put this one diamond shape just to indicate that our decision has now come to an end we have solved this problem and we are going to join these pads in this shape here so I’m going to put this and this like this so now after we have decided whether whether it’s an equilateral triangle or scaling or isoceles I can now say say you can resume the execution of my program normally so whatever I put after this shape here is going to be executed in either this case or this case or this case and what is going to be happening after the shape here is just stop so our program is going to stop but you can put a lot of code here if you need to so I’m going to say stop and let me delete this really I don’t need it okay let’s explain one more time this diagram so after our program start Parts our user should enter a b and c which represent side lengths of a triangle and I have used this float shape since since those side lines can be uh decimal point numbers and after our user has entered that we come to this decision Point here and what we want to decide here is first thing we want to check whether all of these three variables are of the same value so whether he has entered three same lengths for a triangle sides and in case that this here results as a true operation we are going this way and we write out to our user that he has entered equilateral triangle and after that we go this way and our program stops in the situation where this here results as a no operation we want to check something else so we are going this way and we come to another decision point and here we want to decide whether our user has entered a triangle that has all three three different side lengths so after we have checked that they are not equal we want to check whether all of three variables are of a different value and in case that this condition here results as a yes operation that means that he has entered scaling triangle but in case that this here results as a no operation we can now clearly say that he has entered isoceles triangle because we have checked here that these three sides are not the same and we have checked here that these three sides are not different so all of them are not difference and that means that two of them have to be equal and in that situation we go this way and we write out to our user that he has entered isoceles triangle and now we can go this way and you can see that in this situation as well our program stops here I have opened my flowchart and my visual studio so that we can just translate this diagram into our C++ code so the first thing here is our user enters our a b and c side length so let’s declare three variables of type float and let’s call them a b and c and now I’m just going to write out a message to my user so that he knows what he should enter so let’s say C out and please enter a and then B and then C like this and then let’s let’s use our C in command so that he enters his values okay let’s say first thing that our user uh enters is going to be stored inside my a variable after that what he enters please store that inside my B variable and then the third value that he enters is going to be stored inside my C variable so now that we have entered our side lengths of a triangle we come here so to a decision point and we said that we represent this with if else statement so I’m going to write here if and then inside these parentheses I’m going to say this condition here so please check like this please check if my a is equal to my B and then also check is my b equal to my C like this and if this this here this expression here results as true expression I’m going to execute one block of code and that block of codee is going to be this one here but if this expression here results as a false expression okay I am going to execute another block of code and that block of code we represent with our else statement like this okay and then let’s write this yes situation so let’s write here see out equilateral Al triangle so like this oops you should put that not in a quotation marks okay so in this situation where these three side lengths are equal we write out to our user that he has entered equilateral triangle but in the situation where this here results as false we have this else block to execute and let’s find out what is inside our else block so it is this code here and that is another if else statement so this if else statement statement is really nested inside this one here so it is nested inside this else block so here in these brackets here we are going to put another if El statement so let me write out if and then inside these parenthesis we put our condition from this decision here so from this diamond shape here and I’m going to write out please check if my a is not equal to my B and then is my a not equal to my C also and then is my b not equal to my C so in this condition here we check whether all of these three variables have different values here and if they do if this condition results as a true expression I’m going to write out let me just copy this and then we are going to adjust it I’m going to write out that my user has entered a scaling triangle as you can see here so when this goes in a yes way we write out that message so if this results as a true we write out that our user has entered scaling triangle but if this here results is a false then we are going to write out that our user has entered isosceles triangle and let me copy this like this okay so we have nested this if else statement inside this else block so this if else statement is going to execute only in a situation where this here results as a false F false expression so this code here if you find it a bit unreadable I want to show you one trick so one rule that you can really follow and that is if you have only one command under this if or else statement you don’t need to use these brackets so you don’t need to say that you are going to execute a block of code since you are not you are going to execute only one command so you can really delete th this here like this and then also here since we have only one command both here and here we we can delete these brackets here like this okay so now this code is a bit easier to read okay now as you can see from this diagram here it is literally translation of this here and vice versa so this code here is a translation of this diagram here and what it means is when our user enters three values for our sides of a triangle first we are going to check whether all of these three sides are equal if they are I’m going our program is actually going to say that our user has entered equilateral triangle but if this here results as false then we are going to our else block and then inside that else block we are going to Nest another if else so we are going to check another condition we are going to uh execute this if else here and this if else here is going to check for following so it is going to say please check if all of these three variables are different values so if all three sides of a triangle have different lengths and if they do we can say that that is a scaling triangle but if they don’t then since we have already checked that they are all that all of them are not equal and also we have checked here that all of them are not different we can say now that definitely two of these variables are equal and that means that our user has entered isoceles triangle and that is the program that we had here okay so I hope you like this video and if you did this is a strong call to subscribe to my channel and to share it with anyone else who would like to learn programming and I’m going to see you in my next video bye hi everyone welcome to another video of C++ for beginners in this video I wanted to talk about a operators in C++ and we are going to cover the ones that are used most of the time but I’m also going to make a separate video for certain operators that have specific use in C++ so in this video we will talk about the ones that are used most of the time and that you really need to know and understand and also make sure to watch the entire video because I do have some important tips to give you when it comes to this that you really need to understand and that you will find Handy for your future progress in learning of programming the first thing that I wanted to explain is what are operators you can understand operators as special type of functions that are used to perform certain calculations on arguments or operant and then based on those arguments and on that calculation they give you a new value so the first type of operators that I want to talk about are arithmetic operators and you are probably familiar with most of these so there is operator of adding and and subtracting multiplying dividing and also one more operator that you may not be familiar with which is the modulo operator so all of these are arithmetic operators and let me give you an example of how these are used so I’m going to say C out and then let’s write out the result of 5 + 2 and let’s add one end line okay so this here is the operator of adding and then these two are operant or arguments and this here is going to perform certain calculation and then write that out to my console so if I run my program we get the expected result which is seven so these really behave as you would expect them to behave in maths but there are certain rules that are specific to programming and that I want to mention so this operator here operator of dividing let me give you a simple example if I say C out and then five divided by two and I add end line what do you expect to see in this line here write that in the comments down below now I’m going to run my program and you see that the result that I’ve gotten from this line here is two but why has that happened we know that five divided by two is 2.5 well there is a certain rule in programming that says that the result of dividing two whole numbers like this so five is whole number and then two is also whole number is also going to be represented as whole number so even though the result of dividing D2 is 2.5 that 0.5 cannot really be put inside uh integer variable so it cannot be put inside integer container so just two can can be put here and that point two is really lost if you want to show the real result of dividing these two what you have to do is you have to make one of these two or both of them off a different type and that type is going to be decimal point number so float or double so if you put here 2.0 or you put here 5.0 then in this case you are going to get the result represented as decimal point number so you can use it like this or you can make just one of these of a floating Point type so you can say also like this and then if I run my program now you see that now I have got the expected result so 2.5 that is one rule that you really need to know when it comes to this division operator and another tip that I want to show you is this operator of modulo so how do we use this modulo operator this example here here that I’ve just shown you shown you let me return this to this situation where I’ve been dividing um two whole numbers and we’ve just seen that 5 ided by two is going to result as two and that one that remains we can get that one really with this operator here so if you say C out and then five modulo 2 add end line this operator here is going to give you the remainder of dividing two whole numbers which are these two so the result of this operation is going to be that one so let me run my program and you see that we have gotten that expected result so 5 divided by two when it comes to whole numbers if you’re dividing whole numbers the result is also going to be whole number and in this situation it’s going to be two and then that remainder after dividing two whole numbers you can get with this modulo operator and the remainder after after dividing five with two is one and you get it with this operator here so these five are really arithmetic operators and these are these are also called binary arithmetic operators why binary well because they are all used with two up runs they perform their calculation on two operant there is also another type of arithmetic operators in C++ that are used or that perform calculations on only one operant and those are unary operators the examples of unary operators in C++ are this operator here which is operator of increment and then this operator here which is the operator of decrement so how these are used let me give you example so let’s create a variable of type inth and let’s call it counter and I’m going to assign to that variable a value of seven for example so how this operator of increment works is it really increases the value of your variable by one so if I say counter counter Plus+ what this operator is going to do it’s really going to add plus one to my counter variable so 7 + one it should in this line here increase value of my counter variable to eight and let’s prove that oops see out counter and then let’s add one end line okay if I run my program you see that we’ve got expected result so eight we’ve declared a variable of type in called counter we’ve given it a value of seven and then in the next line we applied this increment operator to it which had increased its value + one so eight and then after we write out that value of that variable we got our result so that is how this increment operator is used this decrement operator so counter minus minus this decrement operator here Works uh reverse so it really subtracts one from this variable here and if I copy this line here and then paste it after this line here our counter should be decreased by one so the value of our counter should really again be seven and if I run my program oops like this you see that we’ve gotten our seven so we’ve gotten the expected result however there are specific rules when it comes to these increment and decrement operators and let me explain what I mean on another example so I’m going to create another variable of Type L int call it counter two and let’s assign it also a value of seven and what I want to do with this variable here is I want to write out its value but I want to write out and increment its value in a single line so I want to do this so see out counter to Plus+ and I’m missing this red Direction sign here okay so what are you expecting to see in this line here we’ve seen that this line here has resulted with eight and this line here should also result in eight let’s see okay run my program and it didn’t in this line here we have written out seven but why has that happened well this operator here is increment operator but it is really post increment operator and what that means is that whatever operation needs to be performed on this variable is going to happen first and then this increment operation is going to happen so that is called po increment another type of increment is pre-increment and it is used like this okay and this pre-increment means that whatever operation needs to happen on this variable here first I’m going to increment it and then I’m going to perform that operation so if I run my program now you see that we now get our eight same as here and that is because we have used this pre-increment which first has increased our variable and then our variable is written out okay and the same is applied for decrement operator so for example if I say C out counter to minus minus and then oh my God again okay and then if I run my program you see that we have gotten the same value for this line and this line so eight and why that has happened is because we have used this post decrement here so first our variable has been written out and after that the value of that variable has been decreased so just to prove that I’m going to say one more time C out and then counter two without any increment or decrement just to prove that uh the value of this variable has been decremented after it has been written out so if I run my program again you see that this line here has resulted in eight and then this line here has resulted in seven okay so you see that our console now is full of some random numbers and it’s really making it hard to read so what I want to do is I want to clear out my console but without deleting this code here so how I’m going to do that um I’m going to use a command that is called system and then inside these parentheses I’m going to say CLS which really is going to clear my screen so if I run my program you see that all of our code is still here but console has been cleared so that’s because of this command here that’s a quick tip if you need to clear your console another type of operators that I want to talk about are relational operators and these are really used to compare the value of two operant so two arguments and relational operators in C++ are following so we have less than and then we have greater than and then less than or equal to and then greater than or equal to then we have just is equal to operator and then we have not equal to so these six are relational operators in C++ and how these are used let me show you in an example so let’s say that I’m going to create a variable of type in call it a and let’s assign it the value of five and also create another variable that is called B and assign it value of five so now if I say C out and then inside this parentheses I’m going to say please write out if my if my V variable a is greater than my variable B so if if my five is greater than this another five okay and I’m using these parentheses because I want my C out command to know that this here is one expression that first should be calculated and then whatever this expression here results in I’m going to write that out in my cout command so if I run my program now you see that we have gotten zero and if you know about how computers work you know that they work on zeros and ones meaning that zero represents false and then one represents true so in this situation we have gotten the result of false so when I ask my computer is my a greater than my be so is five greater than five it says false no it is not okay and the same is going to happen if I put here this other operator of less than like this but if I for example put less than or equal to so this operator here and I run my program again you see that now we have gotten the result of one so that is true that is what our computers computer considers as true so our five is less than or equal to five which is correct and even better would be if we say just is equal to and in this situation also we are going to get true as a result like this because five is equal to five and then how we use this operator here is like this so you can say is my a not equal to my b and your computer really hears is my five not equal to my five and the response to that is going to be no it is false because these two are equal it’s the same number even though it’s held by two different variables okay I hope you understood these relational operators and there’s also one tip that I want to give you here and that is you see this comma sign here this is also operator in C++ and it is not really ational operator but it is binary operator and how this operator is really used because we have seen it before without knowing that it was an operator it is used as follows so in this line here we have said please create a variable of type int call it a and assign it value of five and then also so that is the purpose of my comma so also create another variable of type int call it B and assign it value of five so my comma in this situation is operator and separator as well so it is pretty intuitive so before we continue let’s add one more of these clear screen commands here and the next type of operators that I want to talk about are logical operators and there are three of those so we have logical and and then logical or and then also not operator so these three are logical iCal operators and they are usually used to combine two or more conditions into one single condition and I’m going to show you that on an example and let’s use for that example these variables here let’s just change the value of our B to eight for example so what I want to do is I want to write out following so is my a is my a equal to five and then also is my b equal to five I want to write out the result of this expression here and you see that we have used our end operator to combine these two expressions so if I run my program you see that the result of this is false so that is the nature of our end operator it really works like this it says please check is my a equal to five yes it is and then also check is my b equal to 5 no it is not it is 8 so then this operator says okay whatever then this whole expression is going to be false because this operator here needs both of its oper so this here and then this here also both of these need to be true in order for this whole expression to result as true expression that’s the nature of this end operator however there is one more forgiving operator in C++ and that is this operator here so this or operator and if if I place that here instead of our end operator and I run my program again you see that this time we got different result now we have true and that is the nature of our or operator so it says please check if this is true or this here is true whichever of these results as true then I’m going to be true expression only in the situation where this here is false and also this here is false I’m going to result as false in any other situation this here is going to be true so that is the nature of or operator and then we have also this not operator which really negates whatever comes after it so if I put it here for example you see that you’ve seen that previously this expression here has resulted as true expression now that I negate it we are going to get false so that is our not operator here okay and there is also one more thing that I want to explain when it comes to the procedence of these operators which means priority of these operators so which operator types have the biggest priority uh the biggest priority have arithmetic operators after that come these relational operators and then the smallest priority already have these logical operators so let me show you that on an example let’s just comment this very quickly and let’s add another line but the previous one that we had so this here like this that is the operation that has resulted as false so is my a equal to five and then is my B also equal to five and this has resulted as false but if we for example say it like this what do you think that this expression here is going to write out so if I run it you see that we have gotten one why is that so well as I’ve said the biggest priority have arithmetic operators so this expression here is going to be executed first so 5 + 3 after that priority have these relational operators so this operator here and this operator here so after that comes logical operation so so this expression here is going to be really is my a equal to 5 yes it is and then also is my b equal to eight and the answer to that is also yes so now both of these operant are true and our end operator is satisfied now and it’s going to result as true operation this whole expression so you need to remember that the biggest priority have arithmetic operators so these here so these here binary and unary arithmetic operators after that we have our relational operators and then the least priority have these logical operators here let’s add one more of these clear screen commands before we talk about the last type of operators that I want to cover in this video and those are operators of assignment and there are six of those and there are a follow so operator that just assigns value and then operator that adds and assigns and then operator that subtracts and assigns multiplies and assigns divides and assigns and modulates and assigns so these six are operators of assignment and let me show you how they work so first I’m going to create a variable of type end and let’s call it X and let’s assign it a value of for example five okay so this here is example of this assignment operator here and that is how it works it assigns whatever is on the right to your variable on the left so that is the direction of Association it really says whatever is on my right side Please assign that to my left side and let me show you know how these here work because they’re a bit more complex so if I say for example x + = 7 like this what this expression here is going to do well let me write out one more expression and that is X = x + 7 so this expression here and this expression here are just the same this is just shorter way to write this here and what this here does well this is expression that is not valid in mathematics but in programming it is and it does following so it says please whatever is on my right side assign that to my left side and why it does that well because this arithmetic operator here has priority over this assignment operator so if you remember when we were talking about priority these assignment operators have the lowest priority of all so whatever is on my right side that is x + 7 is going to be assigned to my X variable so 5 + 7 is going to be equal to 12 and then that is going to be assigned to your X variable in this line here and this expression here is really short way to write this here okay so I’m going to comment this out and if I write the value of my X now we are expecting to see 12 and it is the result that we have gotten so this x +al 7 is just going to do this so this expression here so it’s going to add to my X this number here and the same applies to these operators here so this one that subtracts and then assigns or multiplies and assigns divides and modulates so if you say for example x minus equal to 7 then that is really going to result as X is equal to x minus 7 and then that right side is going to be assigned to your left variable because arithmetic operators have priority over these operators of assignment and if I run my program again it really sees 5 – 7 and that is minus 2 so I hope that you have understood these examples that I’ve just given you and I’m also going to include some more examples at the end of this video but tricky want so that you can be sure that you have really understood these operators in C++ because they are used very often and you have to understand them in order to continue with your progress on a programming path so make sure to do those examples on your own and if you come across any problems or you have any questions that are related to this video write those in the comments down below and I’m going to answer them I’m going to help you and if you likeed this video make sure to subscribe to my channel and also click the Bell icon so that you are are first to be notified when I publish my next video and I’m going to see you in my next video bye hi guys welcome to my channel in this video I wanted to answer a question that I recently got and that is a question that is often asked on job interviews and also students get it on their exams and that is a question on how you can swap the value of two variables I’m going to give you two ways to solve this problem but let me just explain what I mean by this so I’m going to copy the text of this problem here like this and let me say that I have one variable which is going to be called a and that variable is going to hold value of 20 let’s say and then I have another variable which is going to be called B and that variable holds value of 10 and now I need to switch the value so to swap the value of these two variables I want my a to hold whatever my B is holding and then I want my B to hold whatever my a is holding so how we are going to do that for the first explanation I will need something so let me get it so here I have two glasses and inside this left glass I have my green juice and then inside this glass I have just plain water and the question that we have in our our Visual Studio is equivalent to a question how we can swap the content of these two glasses and to solve that problem I’m going to use another glass so a temporary glass and that is this one here and I’m sorry guys I know this is not a glass it’s a Shaker but it will do for this explanation so what I’m going to do is I’m going to take this this glass this variable and I’m going to put its content inside this third glass this temporary glass okay and then when I have saved the value of this glass inside this temporary glass what I can do is I can put my green juice so the content of this glass inside here okay this is a bit more complex in real life than in programming so once you do that you have saved the value of this glass here so the content of this glass here inside this glass and now what we are left to do is just to put whatever our temp variable our Temp Glass was holding inside this glass here and now we have successfully accomplished to solve this problem so we have switched the content of these two glasses and let’s just translate this into our code now that I have explained the algorithm to solve this problem we are just going to translate that algorithm into C++ code so the first thing that I’m going to do is I’m going to create a variable a temporary variable which I’m going to call Temp and inside that temp variable I’m going to put whatever my a is holding so I’m going to say that my temp holds now whatever is inside my a variable and since we have our a variable free now to hold something else I’m going to put my B value inside my a so now my a is going to hold whatever my B is holding and now that we have saved the value of our B inside our a variable we can put inside our B whatever our temp variable is holding so that is the value that previously was inside our a variable and this here is really the algorithm to solve this problem using a third VAR variable and let’s just quickly add a c out so that we can see what we have done so our a is equal to a and then our B is equal to RB and let’s add end line like this and I’m going to add just a comma sign here okay and if I run the program you see now that here we have a is equal to 20 and B is equal to 10 and now we have successfully swapped the value of these two variables so now my a is holding 10 and then my B is holding 20 which previously was inside my a variable and this is a solution for our problem using a third variable but this question is often asked in another way and that is how you can swap the value of two variables without using a third variable and now I’m going to explain that so let me very quickly delete this until here okay and in order to solve this problem without using third variable you will have to think in a more mathematical way and the solution for this is going to be the following so the first thing that I’m going to do is I’m going to say okay let’s say that my a variable is going to hold whatever my a is holding holding and I’m going to add whatever my B is holding also and this expression here would be really incorrect in any mathematics but in programming this is this is a valid expression and it means this here whatever this expression results in I’m going to assign that to my a variable and this here is whatever my a is holding plus whatever my B is holding assign that to a so that is going to be a so 20 + B 10 that is equal to 30 so now in this line here my a is going to hold the value of 30 and then in the next line let’s say now my B is going to hold whatever my a is holding and then subtract whatever my B is holding from that so in this line here I’m going to say store inside my B the result of this expression here and this expression will result in following a so 30 minus b – 10 that is going to be 30 – 10 20 so in this line here my B is going to hold the value of 20 and then what we are left to do is just to put the correct value inside our a and that is going to be a = to a minus B this means whatever my a is holding at this very moment and that is 30 minus whatever my B is holding at this very moment and that is 20 and guys 30 minus 20 is going to result in 10 and our a is going to get the value of 10 in this line here so now if I write out C out a is equal to a and let’s add and line and then C out B is equal to B and if I run my program you see that I’m going to get the expected result so my a now is holding whatever my B was holding so 10 and then my B is holding this value that previously was inside our a variable here so we have solved this problem in two ways so with or with without a third variable so if you found this video helpful make sure to like it and to subscribe to my channel and also any questions that you have leave those in the comments down below and share this video with anyone who’d like to learn programming and I’m going to see you in my next video and also guys one question for you if you have any recipes any algorithms on how you can make green juice taste and smell good please make sure to write those in the comments down below bye hi guys welcome to my channel welcome to another video of C++ for beginners I just got an idea of a simple and fun program that I can show you how you can build and since I’m a bit of a fitness Enthusiast myself if you haven’t noticed uh I wanted to show you how you can build your own body mass index calculator so stay tuned make sure to subscribe and let’s build our own BMI calculator okay so here is the text of my task and what we are going to build is BM calculator so first I want to explain what is BMI calculator it is body mass index calculator that is going to tell you whether you are underweight or normal weight or you are overweight depending on your weight and your height and here I’m going to use weight in kilograms and then height in meters so if someone else wants to adjust this program so that it can work with pounds feets and inches you can write out that code in the comments down below and the first one that gets it right I’m going to pin that comment so that everyone else can use it and see it okay so we are going to use this formula here which is used to calculating your BMI in metric system so another thing that I want to mention is this these three categories here there are also some more categories that you can really calculate whether you are extremely underweight or you are extremely overweight but these three should be enough for us to do now and these three I’m going to cover in this code another claer that I want to make is that this BMI calculator probably should not be used by people that have huge amounts of muscle so professional bodybuilders because even though they have muscle that muscle is still weight so even though they are not overweight they will fall in a category of overweight because their BMI is going to be higher but for most of us that don’t have a lot a lot a lot of muscle or are leaving normal lives training couple of times a week maybe this is going to be completely okay so let’s build our prog program now so here is our tool that we are going to use to draw this diagram so Lucid chart and let’s really develop the algorithm for solving this problem and then we are going to translate that diagram that algorithm in C++ code so as you may already know first thing that I’m going to put here is this shape here that is going to indicate the start position of my program this circle shape here and after that we really need two things from our user so two things that he should enter and those are his height and his weight so let’s use this funnel shape here that is going to indicate something entering in your program so visual representation that’s why I’m using that funnel shape and inside here I’m going to put two things that my user needs to enter and those two things are these two tanks here so his weight and he should enter his weight in kilogram and also his height and let’s say that he should enter his height in meters so I’m going to use metric system for this problem okay and let’s indicate the flow of our program it should flow like this and after our user has entered his weight and his height there is a simple calculation that our program needs to perform and that calculation is going to be a process for our program so the shape that I’m going to to use for that is this shape here so this shape that says process on it and what our program should process what our program should calculate is it should calculate BMI so I’m going to put here BMI is equal to and then I’m going to put this formula here that is used to calculate BMI okay so it’s weight represented at kilog divided by height to the^ of two so I’m going to multiply my height with height okay and this is really the calculation of our BMI and now after our program has calculated this BMI what we are left to do is we should depending on this BMI really write out to our user whether he’s underweight or overweight or of a normal weight so we should make a decision depending on this BMI and for that decision we are using this decision shape so this diamond shape and inside this diamond shape I’m going to put I’m going to put a condition and that condition is going to be let’s first check whether my BMI is lower than 18.5 like this and in this situation where our user’s BMI is lower than 18.5 so when this condition here results as yes I am going to write out something to my user and let’s me find a shape okay let’s rotate this shape and delete is text okay and what I want to write out to my user oh I can make this smaller what I want to write out to my user in the situation where his BMI is lower than 18.5 is I want to write out that he is really underweight so let’s put text inside here and let’s write out that he is underweight so that is going to happen in this situation oh my God that is going to happen in this situation here let me just okay now it’s okay so in this situation where his BMI is lower than 18.5 we are going to write out that he is underweight but in the situation where his BMI is not lower than 18.5 we have to check something else and let’s check so let’s add another another of these diamond shapes where is it here okay and let’s now check whether his BMI is higher than 25 so I’m going to write out BMI greater than 25 okay and that is going to happen in the case that this here results as no and in the situation where user’s BMI is higher than 25 that really means that our user is overweight so we are going to write out of okay so we are really going to write out a message to our user so let’s copy this shape here which we are using to write out a message to our user so this reversed finnal shape that represents something leaving your program something being outputed from your program so in the case where this calculation here results as true we are going to write out to our user that he is overweight like this okay and let’s really adjust this now it’s now it looks a bit more presentable okay so first we have checked whether his BMI is lower than 18.5 is if yes we have written out underweight if no we have to check whether his BMI is greater than 25 and if it if it is it means that he’s overweight but in the situation where this here results as a no that means that our user BMI is not lower than 18.5 nor it is greater than 25 so that means that his BMI is really somewhere in between so between 18.5 and 25 and that is a normal BMI so that is our last possible situation where we are going to write out to our user that he has a normal weight so let’s write out normal normal weight okay so after we have covered these three cases cases let’s just join our flows into one so I’m looking for this shape here and I’m going to make it smaller delete this text from it and I’m really just going to join these flows inside this shape here let’s let’s just try to move this here I’m going to delete it and let’s say that I’m going to oh no [Music] okay guys I had huge problems trying to adjust some arrows so I had to rewrite this whole diagram and I believe that I made it a bit prettier so here we were explaining that in the case that our user has BMI lower than 18.5 we are going to write out this message to him in the case that his BMI is not lower than 18.5 we are going to check whether it is greater than 25 and if yes we are going to write out that he’s overweight if no we are going to write out that he’s of normal weight and in each of these three cases we are coming here to this diamond shape here which is just just going to join these three potential situations and after this diamond shape here we are going to write out to our user what his BMI really is because I really want my user to know if he’s for example in this situation here or in this situation here I want him to know whether he’s BMI is let’s say 18.4 so he’s not that extremely underweight but he’s just a little bit underweight or in this situation here I want him to know whether his BMI is 25.5 so he’s just a little bit overweight or his BMI is really 35 let’s say that’s why I I want to write out my BMI to my user his BMI to my user okay so and then we just released upop our program so now I’m going to copy this diagram and put it next to my visual studio so that we can really translate this this diagram here into our code so here I have put this diagram and then also my visual studio and let’s now translate this diagram let’s translate this algorithm and to code because this here really is an algorithm explanation on how to solve a certain problem so the first thing that needs to happen is our user should enter his weight and his height and for that to happen I first need to declare variables for weight and height and for that I’m going to use type float because his weight and height can be decimal point number so I’m going to say float and then I’m going to say weight and height okay like this and after that let’s put a message out to our user so that he knows that he should enter his weight and height so I’m going to say C out weight and let’s put that here should enter his weight in kilogram and then also height but he should enter his height in meters like this so that he knows which which system he should use okay after we have written out this message here what I need to do is I need to use my C in command so that I can allow my user to enter weight and height and I’m going to say first thing that my user enters that’s going to be stored inside my weight variable and then after that the second value that my user enters is going to be my height so store that in a height variable like this okay and after we have entered weight and height next thing that needs to happen is we need to do this formula here and really calculate our BMI and in order to store this result the result of this expression in our BMI we need a variable for that and that variable is obviously going to be called BMI so let’s add here in this line here let’s add BMI so I’m going to declare another variable and that variable I’m going to use now and I’m going to say that my BMI is going to be used as follows so I’m going to use this formula here which is our weight divided by our height to the power of two for now I’m going to use use it like this okay and and in this line here we have really calculated our BMI so this code here and now after we have calculated our BMI what we should do is we should really check what is the value of that BMI and for that we are using this shape here which really translates into if if else case so first I’m going to say if and then the first thing that I want to check is if my user’s BMI is lower than 18 5 like this and in this situation where his BMI is lower than 18.5 I’m going to execute one line of code so that’s why I don’t need to put these brackets so I’m going to delete them because I just want to execute one line of code and that line of code is going to be indented here so that it is easier to read and that line of code is really to be going to be a message that I want to write out to my user and that message is going to be that my user is underweight unfortunately okay and let’s add one end line like this okay this is in the situation where his BMI is lower than 18.5 in a situation where his BMI is not lower than 18.5 we are going to execute something else so that something else we represent with else statement and I’m going to put that lse statement and what is happening in that else case it is happening another if else so here we have a situation where we need to check something else so here I’m going to put else if so if this here results as no please then check something else and for that we use this else if statement so I’m going to say else if please check if my BMI is greater than 25 then so in this situation we also want to execute one line of code and that line of code is going to be to write out to my user that his BMI is greater than 25 which means that he is overweight so let me copy this message here and we are just going to adjust it so I’m just going to say you are overweight like this okay so if his BMI is less than 18.5 I’m going to write out that he’s underweight else if his BMI is not lower than 18.5 I’m going to check whether his BMI is greater than 25 if yes I’m going to write out that he’s overweight if no we are also going to execute something else and that that is this situation here so in this case he has a normal weight so let me again copy this message here and let’s really put here a normal weight like this okay so in this situation where his BMI is not great not lower than 18.5 nor it’s greater than 25 we are going to write out our user that he has a normal weight and with this here with this code here we have really covered this part of diagram here okay and then after this code here executes we really want to write out our BMI to to to the user so we have to this shape here which really translates into our our C out command and we want to write out your BMI is and then let’s write out BMI like this okay and this line of code as you may already see from our diagram is going to execute in either this case or this case or this case because after we have finished with this decision part we have executed only this part of codee or this part of code or this part of code here so whichever of these three has been executed after this code here we are going to execute this line here in either this situation or this situation or this situation and that is going to be writing out to my user what his BMI really is and that is the last thing that we need to put so the last part of our code and now if I run my program okay it asks me to enter my weight and my height and my weight is I believe 6 66 kilg I think and then my height is 1.75 so let’s press enter oh no I’m overweight how my BMI is 6 6 okay guys for a moment I thought that I am overweight but I am not definitely this 66 BMI overweight so that means that we have a bug so where are you sneaky little buggy bug well if you can see where our bug is then write that in the comments down below and I already see where potentially our bug could be so this formula here it should really go like this so we should divide our weight with our height to the^ of two which means that we should put parentheses here like this because and that is this calculation here so in this situation our weight is going to be divided with our height and after that that number is going to be multiplied with our height so we are going to get larger BMI than we should really so we should put this code here in parentheses so that was the first bug that really happened in these tutorials okay I’m going to leave this part I’m not going to edited out okay and now if I enter my weight um let’s see 66 and then my height 1.75 okay so I am 21.5 that is my BMI and I am off a normal weight so we have really built our BMI calculator and this is the formula that you should use for metric system and if someone else wants to rewrite this program for pounds and inches and um feet you can write that in the comments down below and as I said I’m going to pin that comment up so that everyone can see it if you of course get it right I hope you like this video if you did make sure to write it in the comments down below and I’m going to put more videos like this and also subscribe to my channel and click the Bell icon so that you are first to be notified when I publish a new video share this video with anyone who would like to learn programming or also with Fitness people that would just like to use this program and if you don’t know how you can run this program without using using visual studio I’m going to link my first video here and at the end of that video I’m explaining how you can run the program from Windows and that should give you an idea on how you can really share your applications with other people so make sure to subscribe like leave a comment share whatever you want and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners in this video I wanted to explain the concept of turnery operator also known as conditional operator and also some people call it shorter version of IFL statement it is an important concept that you are definitely going to come across in your programming career and you should understand it and I’m going to explain this concept through building fun and simple program that is going to be a guessing game so let’s explain the rules of this game we need to have two users and our first user which I’m going to call host user has to enter a number after that we have to delete that number from our console so that our second user cannot see it and then after that our second user which I’m going to call guest user has to enter his guest so that he can guess what number our first user has entered so this way we can really make a fun program and learn an important concept at the same time and at the end of this video I’m going to give you an idea or multiple ideas how you can really upgrade this program on your own so make sure to watch the entire video now that we have explained the rules of this game let’s start building our program and the first thing that we need to do is create two variables since we said that our user is going to be guessing numbers those two variables are going to be definitely a number type and let’s say that that type is going to be integer so integer numbers and we need two variables the first one is going to hold our first user number so our host user number and then our second variable is going to hold the number that our guest user enters so let’s call those to host user number like this and then the second one let’s call guest user number like this okay and now after we have created these two variables the next thing that we need to do is let’s write out a message to our host user so that he knows that he should enter a number so let’s say see out and let’s just say host like this so that our host user really knows that he should enter a number and I’m going to accept that number in my console using the C in command and I’m going to store that number inside our host user number variable so with this line here we have entered our host user number and what we have said at the beginning of this video is that after our host user enters the number we really need to delete that number from our console so that our second user is not able to see it and the command that I’m going to use for that is going to be this command here so I’m going to say system and then I’m going to say CLS which is which is really going to clear our console so clear our screen and now if I run my program let’s see how far we have made made this program here we have this line This seventh line which says host user and it expects our host user to enter a number so I’m going to say for example seven and then after I press enter this number here really is deleted so our console has been cleared and now after this we need to ask our guest user to guess the number that our host user has entered so I’m going to stop the program and next we need to write out a message to Our Guest user so I’m going to say guest like this and after that we need to accept what our guest user enters inside our guest user variable so I’m going to copy this line here like this and instead of accepting that value inside host user number I’m just going to change this to guest user number and after this part here we really have both accepted our host user number and our guest user number and now we need to compare these two and see whether our guest user has guessed correctly our host users number so how we can do that if you are familiar with f l statements and I’m going to link that video here and if you are familiar with them that is really one way to solve this problem so you can solve this problem with IFL statement and I’m going to do that and then we are going to really convert that IFL statement inside into a tary operator so how we can solve this with IFL statements well it is quite simple solution so we have to say if and then inside these parentheses I’m going to really compare these two numbers so host user number and guest user number so I’m going to say host user number is equal to guest user number like this and then if this here results as true so if these two if these two numbers are the same we can write out a message to our user and that message is going to be let’s say correct like this so our user has guessed correctly but in a situation where this here results as false we can use our else statement and in this else situation let’s write out a different message to our user so let’s say see out and then inside this these quotation marks let’s say failed like this so that in the case where these two are the same number we can write out to our user that he has guessed correctly and then in a situation where these two are not the same we can write out to our user that he has failed in guessing so if I run my program now you see that it expects our host user to enter a number and I’m going in this situation to take the role of both host and guest user so I’m going to enter seven for example and then you see that that seven number has been deleted from our console because of this command here and now our program expects Our Guest user to enter his number and I even forgot what number I entered so let’s say that our host user has entered for example 11 and you see that our program says you have failed so you haven’t guessed correctly and one more time let’s enter for our host user number five for example and then let’s say that our guest user also says number five and our program says you have guessed correctly so this is one potential solution for this problem but I wanted to show you how you can solve this problem using Turner operator and now I’m going to comment this code here like this so this is a comment for multiple lines of code and let’s really translate this part of code here into a turn operator like this okay so how does theary operator work well it is the only operator that takes three op runs or works on three operands and the first opun is going to be a condition so I’m going to copy this condition here which is is our host user number equal to Our Guest user number so that is going to be the first uun and after that first uun we need to put this question mark and then after this question mark we have the following Behavior if this expression here so if this condition here is true we are going to execute one line of code or actually one part of code and that is going to be this line here but in the situation where this here results as false we are going to execute whatever we put after this column sign so that is going to be our C out failed like this and this is really the Syntax for our Turner operator and as you can see it really is a shorter form of if else statement so this line of code really means please check this condition here and if this condition here results as true execute this part of code here but if this code here results as false please execute whatever I put after my column sign so that is going to be our see out failed and now if I run the program it asks again for our host user to enter the number let’s enter number nine for example and then our guest user has to guess the number so let’s enter for example number three and you can see that our program says to Our Guest user that has failed in guessing so there are a couple of ways in which you can really upgrade this program and I’m going to give you a few ideas and the first one is for example you don’t have to use int type here so you can use different data type data type you can guess characters or you can guess even strings if you know how to and if some of you want to play with that and try that on their own and you get it right make sure to paste that code in the comments down below and I’m going to check it and if you get it right I’m going to pin that comment up so that everyone else can see it so that would be one way of upgrading this program another way to upgrade this program is to make it easier to your guest user and how do I mean easier well you can really limit your host user to enter a number that is going to be in a certain interval for example you can say to your host user that he can enter only a number that is going to be between let’s say 1 and 15 or 50 it depends on how difficult you want to make it to your guest user and that would be one way also of upgrading this program and another and the best way of upgrading this program is going to be when we learn loops and when we do that I’m going to link the video here and how you can upgrade this program using Loops well you can give your guest user multiple attempts so you can say for example let my guest user guess three times or five times before I say game over you have failed okay so I hope that you have liked this video and if you did make sure to subscribe to my channel share it with your friends and with other people that would like to learn programming and I’m going to see you in my next video bye hi guys welcome to my channel welcome to another C++ for beginners tutorial and I’m really excited for making this video because this video is going to be a milestone and in this video I’m going to show you how you can build your own calculator application so if you have watched my previous videos and you are also so watching this one and you build this application together with me you should really feel proud of yourself because you have made a great progress so let’s build that application now here I have opened my visual studio and let’s very quickly explain what we want to do before we start write code so I want my user to enter two numbers and also operation sign and then depending on those two numbers and that operation we want to calculate the result and then write that result to our user so so the first thing that we need to do is we need to declare variables that are going to hold those numbers and that operation sign and since we want our user to be able to enter decimal point numbers so not only integers but decimal point numbers as well we are going to declare variables that can hold decimal point numbers and those can be float and uh double so let’s declare float variable for example and let’s call it num one which is going to hold our first first number and also another one which is going to be called number two and hold our second number and after we have declared these two let’s also declare a variable that is going to hold our operation sign and since that is a character we need to use a character type for that variable so let’s say Char and let’s call that variable operation like this okay and now after we have created these three variables we can really allow our user to enter his numbers and his operation and we want to do that in the following order so we want to say C in and then first our user has to enter the first number and then after that we want our user to enter the operation sign so let’s say operate operation like this and after that our user has to enter the second number and this window here guys this is called Intellis sense and it really makes your code writing easier so you can navigate this list here using your arrows and then you can also use tab key so that it finishes your variable name for you if you want that okay so now we have entered our first number our operation and then our second number as well like this and another thing that I want to write out to my user because this is going to be the best calculator ever let’s write that uh title for user so let’s write here before he enters anything a quick title so let’s say see out and then let’s say that it’s going to be called code Beauty calculator you can call yours whatever you want so like this and let’s add these here so that it looks prettier okay and now if I run my program well you see that it really looks like this and now we are able to enter one number after that we want our user to enter operation like this and then we want to enter the second number like this and then after we press enter our program should really calculate the result of this operation in this current situation it is not really doing anything else because we haven’t written code for that okay so now let’s solve this problem that we have here so at this point you should really have an idea yourself on how to solve this problem using IF El statements and also nested IFL statements so if you are not familiar with those I’m going to link one of my previous videos here so make sure to watch that video as well but in this this video I want to show you the more appropriate way for solving this particular problem and that is going to be using switch case statement so what is switch case statement well switch case statement is as well as if else statement used when you want to execute a block of code depending on a certain condition so depending on a value of a certain variable but switch case statement is particularly used in a situation where that variable can potentially hold a lot of different values and if you look at our operation variable here you should really notice that this variable can hold six different values and what are those six well our user can decide to enter operation for adding subtracting multiplying dividing modulating and then what if our user does not really want to use our application but he wants to hack it so if he decides that he doesn’t want to enter one of these five but he really enters some nonv valid arithmetic operation we should also cover that case so we should really as programmers predict all these six situations and cover all these six cases I’m going to add one end line here so that my text is formatted nicely and then let’s really show how this switch case statement is used so the first thing that I want want to write is switch like this and then if you press tab you see that you are getting some default Syntax for this switch case for now I’m going to delete that and I want to show you how you can really write that yourself and inside these parentheses here I want to write out the name of my variable that I want to switch through or switch on and that is going to be my operation variable because depending on the value of this operation variable we are going to perform a different calculation on these two number variables so I’m going to say here operation and then in these curly brackets here we really want to cover all our cases so the first case let’s say that our first case is going to be a situation where our user enters minus operator so I’m going to use these single quotes and then inside the single quotes I’m putting the value that our variable can potentially hold and that is this minus operator here and after that I’m going to add this column sign here like this and then after this column sign I really want to put out whatever code I need to execute in the case that our operation corresponds to to this sign here and what I want to execute in this case is I want to say see out and let’s WR write out our first number and then let’s write out our operation and then let’s write out our second number so that our user really gets a night nicely for method text and after that I’m going to add this is equal to sign and here we are going to put really our result and that result is going to be our first number minus because our user has entered this minus minus so our first number minus our second number so let’s write out number one minus number number two like this and after we have covered this first case we need to add one more keyword and that is going to be break and this break keyword is really used so that our switch case statement knows where our first case ends so I’m I’m saying here whenever my operation is equal to this sign here you are going to execute this code and you should really stop executing this CA that case when you come to this break statement okay so this is going to be our first case our second case is going to be situation where our user let’s say enters this plus sign and in that situation we really want to write out to our user this text here so the same text we want to really write out our first number Plus in this case our second number and then is equal to and then we are going to add really this calculation here so number one plus number two like this and in this situation as well we want to add this break statement at the end like like this okay so these are two potential cases and now I’m going to really write out the rest of them so I have written out these remaining cases and in each of these cases we really want to write out our user his first number after that his operation second number and then this equal sign and then in each of these cases we are performing adequate calculation so we are performing that operation that are user has entered and writing that result out to our user and after each of these cases we really need to put this break statement and you really have to put this break statement because if you don’t you are going to get your program to behave as you don’t want it to and as you can see in this situation here so in this situation where we are trying to modulate two numbers we are getting an error and if we hover over this number here you can see that our error says expression must have integral or unscoped enum type what does that mean well if you haven’t watched my video on operators I suggest you to do so I’m going to link it here and here I’m quickly going to explain what is happening so this operation here this modulo operation is Operation that is really going to give you a remainder after dividing two whole numbers and since this number here and this number here are of type float we really cannot perform this calculation on these two variables so what we have to do is we first have to check whether this number is really a integer number whether it’s a whole number and this number as well and since our float can hold decimal point numbers and integers as well we really in certain situations only can perform this modulating operation and let me explain what I mean by this that our float can hold can hold decimal point numbers and integers as well well this variable here this number variable can really have a value of 5.5 for example but it can hold as well value of 5.0 which is really integer value so it’s 5 only so now what we have to do is following I’m going to delete this line here and we first have to check whether both of these numbers are integers and in that situation only we can perform this calculation but in a situation where one of these two or both of them are not integers we are going to write out to our user that that operation is not valid so I’m deleting this code here and then let’s create two variables so let’s create a variable of type Bull and let’s call it is num one integer so this variable is going to hold a value that is going to tell us is our our number one integer value and let’s also create another variable that is going to be called is num two int and as well this variable is going to tell us whether our number two is integer and let’s develop now an algorithm so that we can know whether our number one or number two is integer number and I’m going to ask you to write your Solutions in the comments down below so pause the video think about it and then write your solution and without using any already made functions as programmers as Engineers you should really be able to figure out the solution on your own so applying the knowledge that you have gotten from my previous videos or this one but I’m going to say from my previous videos so pause the video and write your solution so this question is not really a question of programming it’s more of a question of thinking in a logical way and if you remember when we were talking about casting operators we said that a casting operator is used to convert one data type into the other and I’m going to link that video here if you haven’t watched it make sure to do so and here we are going to try to convert our floating Point number so our number one and our number two into integer data type so into integer number and how we are going to do that well we are really going to say int so this here is going to cast whatever we put after it into int type and we are going to say please try to convert my number one into integer and how does this work well for example if you have a number one that holds value of 5.7 when you try to convert that value into integer what it does really it says that 5.7 so that7 part really bye-bye I’m going to take only this five part so only this whole part of a number so in that situation we are really going to get only five from this 5.7 floating Point number so what I’m going to say now is I’m going to say whatever this expression here this casting operation results with I’m going to really try to compare that with the initial value of my number one variable so I’m going to say num one is my converted number one so converted to integer equal to number one like this and how does this calculation here work well as I said for example if you have a number one that holds a value of 5.0 so 5.0 this part here is really going to take this 0 Z part of a number and delete it it’s going to keep only this five so only this whole part of a number and after that we have this is equal to operator and then we are trying to really uh trying to really check whether that is equal to 5.0 and the result of this is going to be true so we with this here we have checked really whether our number is going to be equal to our floating Point number so this result here we are going to assign this value to our is number one integer variable so here I’m going to say Please assign the result of this operation to our is number one integer variable like this and let’s put this expression here so this whole expression inside these parentheses so that we really can see that this is an expression and the result of this expression should be assigned to this is number one one in variable and now we are going to do the same for our is number number two so I’m going to say is number two integer and we are going to say that that is equal to I’m trying to convert my number two to in and then compare that to my float number two and after this we really can now do our algorithm to perform this modulo where it is this modulo operation on our two numbers in the case where both of them are integers so here I’m going to say if is my number one int and then also is my number two int like this in this situation here I’m going to perform this modular operation and as you can see here I have used only these two bull values here in this expression so I didn’t say please check is my number one int equal to True like this nor I have said please check is my number two equal to True like this because uh this here this part here and this part here are really redundant and what this expression here translates in it translates in is true equal to true and that is really redundant so I’m going to remove this part here and this part here and it should work fine like this for Boolean values so Boolean variables and in this situation here where both of these are integers we really can perform this modular operation so in this situation here I’m going to take this code and I’m going to copy it like this and I’m going to say please write out my number one then my operation then my number two is equal to sign and then here I’m going to put adequate calculation so I’m going to say take my number one convert it to to int and then modulate that with my number two that is as well converted to int like this okay so in this situation where both both of these are integers we are going to really write out the result of modulating operation to our user let’s add empty space here and here as well but in the situation where one of these two is not integer or both of them are not integers I’m going to say else and in that situation I really going to write out my user that this operation is not valid so let’s say just not valid like this so in any of these two situations whether we write out this line of code here or this line of code here after that we are going to come here and here we have to put our break statement like this so after each case comes break and now we can really test this part of code here that we have written so if I run my program the first thing that that I want to test is let’s say 5.5 Plus 2.2 and we get the expected result so 7.7 let’s run our program again and this time I want to check whether my modulo operation is working as it should because this code here is really specific so let’s say five modulo 2 like this and as well we have gotten correct result and let’s run our program one more time and here I really want to trick my program and try to make it to modulate two numbers that are not whole numbers so 5.2 modulated by two and as well our program works as it should so it says not valid operation okay so if you have noticed uh in this current situation I really have to run my program each time that I want to perform a calculation and that is because we haven’t learned anything about iteration or loops so far and those videos are coming so make sure to subscribe to my channel and also click the Bell icon so that you are notified when I publish those videos and in that situation where we learn iteration and Loops we are really going to be able to run our programs indefinitely which means to run our calculator application until we really decide to stop it okay so after we have covered these five cases here there is only one situation left to cover and that is situation where our user enters any other sign that is not one of these five here and that situation we are really going to write like this so we are going to say default so in the case where our user enters operation that is not going to correspond to any of these five signs we are going to execute our default situation and here we really want to write out a meth message to the user that is trying to hack our program so you can write whatever message you want to the user that is trying to hack the program that you have worked so hard to build and I’m going to put here okay you really can write out whatever you want to that type of user like this so in the case where our user has not entered this nor this nor this nor this nor this which means our user has entered some other sign we really want write out not valid operation and let’s test now our default case so I’m going to run the program and I’m going to take the role of a malicious user that is going to try to hack your application and I’m going to say please try to perform this calculation here so 5 z9 no not really you have been smart enough to predict his malicious behavior and you have said if you haven’t put here a valid arithmetic operation then no I cannot help you this is not a valid operation and there is really one thing that you have been wondering about for the most part of this video and that is this break statement here so why I have said that after each case you have to put break and now you want me to explain that do you do you really wouldn’t that be a spoiler for a situation where you decide on your own to delete this break statement here and then run your program even though I have said not to and you enter some calculation and you remember that I have said that you are going to get unexpected Behavior but was she lying was she not and then you decide to execute this calculation and boom here is your unexpected Behavior so what has happened here well your program has really recognized that this operation here that you have entered is this minus operation and after that is it has written out this number one so 7 and then operation minus and then this number two five is equal to and then it has calculated number one minus number two which is 7 – 5 and that is equal to 2 and after that it has really continued executing other cases which means it has come to this line here and then then it has written one more time your number one minus number two so 7 – 5 is equal 2 and then it has performed this number one plus number two calculation and 7 + 5 is going to be equal to 12 and then it has come to this first break command and it has has stopped the execution of your switch case so why has this happened it has happened because you haven’t put this break command here and in that case program is really going to be executing your cases until it comes to the first break command and if you have noticed here in this default situation I haven’t really put any breaks you can as well put your break statement here you can say break here but even if you don’t if even if you didn’t put your break here and your program really tries to execute something after this line here there is really nothing to execute so you are not going to get a problem in this situation here I hope that you like this video and that you have built your own calculator application and if you did make sure to subscribe to my channel and click the Bell icon as well share this video with anyone who would like to learn programming and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners and in this video I wanted to deepen your knowledge of switch case so if you’re not familiar with switch case Cas at all if you haven’t watched my previous video you definitely have to do that the link is going to be here and in this video I wanted to give you some more examples that you can practice on and introduce some things that I haven’t mentioned in my previous video as well so in this video we are going to build a program that is going to require from our user to enter a year and a month as well and then our program has to write out how many days there is in that month so how we are going to do that let’s see but first you have to subscribe to my channel and like this video and also share it with your friends as I explained there are two things that we need from our user to enter and those are going to be month and year so let’s create two variables let’s say year and month like this and now I’m going to write out the message to my user so that he knows that he should enter those two values so year and after that please enter month like this and let’s store now the values that our user enters so the first one is going to be stored inside our year variable and then the second one is going to be stored inside our month variable and now we have really covered everything that we need from our user now our program has to check these two variables and then decide how many days there is in that month of that year and we are going to do that using switch case statement but but there is one thing that I want to mention before before we start write our switch case and that is you have to take in consideration that there are years that are leap years and that have one day more than the year that is not a leap year and there is a rule for that so I’m going to copy the rule that that is going to help us to determine whether a year is a leap year or not and that is this rule here so any year that one modulated by four gives the result of zero and at the same time that year modulated by 100 is not equal to zero or a year so that same year when modulated by 400 is going to give the result of zero and this here is going to be a definition for our leap year which means a year that has 366 days or a February inside this year has 29 days that’s why we need this rule here so now let’s write out our switch case statement and if you haven’t watched my video on switch case statement I am going to link it here one more time because you really need to understand the switch case and then you can come back to this video and deepen your knowledge on switch case so switch this is going to be the syntax of our switch case but I’m going to delete this default syntax we want to write it ourselves so inside these parentheses here I’m going to put the variable that we are going to switch through and that is going to be our month variable like this so whichever value our user has entered for our month we are going to cover all the potential values that our month can hold in our cases so the first case that I want to cover is going to be the most specific one and that is going to be our February which means second month so I’m going to say in the case that this month variable is equal to 2 which means that our user is requesting from us to determine how many days our February month has we really in this case need to check whether that year is a leap year or not and then if that year is a leap year that means that our February has 29 days and if not which means if this condition here is not true that means that our second month has 28 days so I’m going to copy this expression here this condition and also if you are not familiar with Turner operator you have to watch that video because in this video we are going to use that tary operator you can do it as well with if else statement but I want you to practice also this because you will uh you are going to actually come across it in your programming career so here I’m putting this condition for a leap here and I’m going to say this question mark and then I’m going to say if this here is true you have to write out this line of code so you have to write out C out and if this condition here is true that means that our year is a leap year which means that our February our second month has 29 days so let’s say 29 days month like this okay and so that is in the situation where this here is true and in the situation where this expression here results as false I’m going to put here a column sign and then I’m going to write out a different message and that is going to be that this second month in the case where a year is not a leap here has actually 28 days so after we have written this expression here so this Turner operator we have really write out how many written out how many days there is in our February month and after each case I have to put break so in this case as well I’m going to put put our break command after it and with this example with this case here we have really covered our second month which was the most specific one now we are left to cover the remaining months which means ones that have 31 days and also ones that have 30 days and here I’m going to show you something that I haven’t shown you before let me scroll this code like this maybe okay and then there are some months that contain 30 days and some that contain 30 31 days and the ones that contain 30 days are following so I’m going to write out case like this and then the the first month that contains 30 days is going to be April so fourth month and then also our sixth month contains 30 days and then also let’s see 4 6 9th and then November as well like this and here we have written out really all the months that contain 30 days okay and now I’m going to at the end so at this case here write out a message let me copy this and I’m going to paste it and I’m going to say 30 days month like this okay and I’m going to put break command here as well so let me explain this part of code here because we haven’t seen this part of code here before this break statement what it does is when your program so when your program execution actually comes to this case here it says okay my month is equal to two so I’m going to execute this part of code here and then it comes to this break command and this break command really breaks the execution of your switch which means that when your program comes to the first break command it is going to stop the execution of your switch there which means that it is not going to check any more cases and because of that you can really hear so you can put more than one month you can put all months that have 30 days like this and then you can write out the same message and put one break command at the end and how that is going to really behave inside your program in the case where user enters for example month six your program is going to check whether that month is is equal to two and it’s not going to be then it’s going to check whether your month is equal to four not as well and then it’s going to come here and say okay this is sixth month this that our user has entered so please execute whatever code you find until you come to the first break and that is going to be this here which is empty so nothing and then this here which is as well empty so nothing and then it comes to this code here and that line so this code here contains this see out message 30 days month so it is going to write out this and then it really comes to this first break command and it breaks your switch which means that it is not going to check any other cases that come after this break okay so in any case whether your user enters month four or 6 or 9 or 11 your program is going to execute this line here and then break your switch so with this part of code here we have really covered all months that have 30 days and now we are left to cover the ones that have 31 days and those are months uh let’s see that is our January and then our third month and our fifth and our 7eventh month like this let me scroll it a little bit more okay and then we have as well case 8 and case 10 and as well our December has 31 days so there are seven months that have 31 days uh five five months that have 30 days and one month that has 28 or 29 days and in this line here we are going to write out a message that is going to say 31 days month and as well here we have to put our Brak command like this okay so I am going to run my program now and show you how this program behaves so our program is asking us to enter a year and month let’s say a year is going to be 2020 which is current year and then a month is going to be let’s see it’s April so 4th and it says that it is a 30-day month which is April April has 30 days and let’s run our program one more time and let’s say 2020 again and let’s say that we want check our second month and it says that February of 2020 has 29 days which is correct as well and there is really one more situation that I want to cover and that is going to be a situation where our user enters a number that is not a valid month number and that situation I’m going to cover with my default statement so I’m going to write out default and in this default case as well I want to write out a message to my user like this and inside here I’m going to say not valid Val which means that our user has not entered a valid month number so let’s run our program and if I enter year 2020 and for a month let’s say minus 5 for example you see that our program has written out not valid okay so I hope that you have liked this video and if you did make sure to subscribe to my channel and share it with anyone who would like to learn programming as well and today is May the 2nd that’s when I’m filming this video I don’t know when I’m going to publish it probably in a couple of days and currently we are a little bit over 900 people so let’s see how fast this channel can grow thanks for watching and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners and in this video I wanted to talk about loops more specifically about while loops Loop so what are Loops what are they used for how they are used well Loops are used when you want to execute a block of your code multiple times while a certain condition is true which means you give a certain condition to your Loop and you say you are going to execute this block of code while this condition here is true so however many times it is necessary and one thing that I want to mention before we start uh on our example is the following so selection sequencing and iteration those three are three main building blocks of programming languages and when you really learn and understand those three you should be able to solve any logical programming problem and in this video we are going to talk about iteration we have already talked about sequencing and selection in my previous videos so what is sequencing well that means that your code is executed sequentially which means one line after the other and then selection that would be really when you want to select one part of the code rather than the another one which means you are going to tell to your program under a certain certain situation it really has to select which block of code it is going to execute the same would be when you for example come to a crossroad and then you have multiple ways in front of you but you really have to select which one you are going to take because you cannot take all of them and then iteration is going to be really iterating or executing multiple times a certain block of code certain part of code while a certain condition is true so while a certain condition is fulfilled you are going to execute the same block of code so let’s see our example now so I’m going to paste the text of my program here and this is our task so it says that we have to write out all the numbers between 100 and 500 that are divisible by three and by five and how we are going to do that first I want to explain you the algorithm so how we are going to solve this problem and then we are going to translate that algorithm into our code so this interval here so this 100 to 500 interval we are really going to iterate through all of the numbers of of this interval and we are going to do that using while loop and then for each of those numbers so for each value of our counter we are going to check whether that counter value can be divided by three and by five and if yes we will write out that value if no we are just going to continue to the next iteration so as I already said we are going to use while loop to solve this problem and and we are going to start our V loop with the counter value of 100 and in each iteration we are going to really increase the value of our counter so 101 102 and three and we are going to stop the execution of our V Loop when this counter value comes from 100 to 500 And1 which means 500 value of counter is going to be our last iteration through our Loop so so the first thing that I’m going to do is I’m going to really declare a variable that is going to hold our current counter value so I’m going to call it int counter like this and initially I’m going to set the value of my counter to 100 okay so this is our initial value of our counter and then let’s see what is the syntax of of our while loop so so we write out while like this and then in these parentheses we are going to put our condition so how long our Loop is going to execute and then in these braces here so in this curly brackets we are going to put which block of code our while loop is going to execute while this condition here is fulfilled and let’s now fill these parentheses here so as I’ve said our counter has to go from 100 to 500 which means since it starts on 100 here we have to say to our while loop that the execution of this block of code here really has to stop when our counter comes to 500 or 5001 500 is still valid value so that we are going to say like this so we are going to say counter like this and then we are going to say there are two ways to write this condition the first one is to say while our counter is less or equal to 500 or you could as well said while our counter is less than 51 so that is a valid situation while you’re executing your Loop so while your counter is less than 501 or while your counter is less or equal to 500 I prefer it this way but whichever way you put it is going to work so now that we have put this condition here we really can write out this code that comes in this while loop block so what we are going to execute while this condition here is true and that is going to be following inside this block of code here we really have to check whether our current value of our counter is divisible by three and by five and if it is we have to write out that number to our user if no we just need to continue to our next iteration of our Loop and how we can check whether this counter value can be divided by three and by five well we use modulo operation for that if you haven’t watched my video on operators I’m going to link it here make sure to watch it and here we really put the following so we can say if and also if you’re not familiar with if statement going to link it here so if our counter value so our current value of our counter after you modulate it with three if the result of that is zero that means that our number so our counter is divisible by three and we also have to check whether our counter is divisible by five as well we use this modul operation here and we say whether our counter modulated by five is going to equal to zero and if this condition here is fulfilled we really have checked this part of our task and if this part here is true we have to write out that number so in this situation here I’m going to say C out like this and I’m going to put inside here let’s see we are going to write out the value of our counter like this and we are going to write out is divisible like this and let’s put one end line after this line of code here because we are definitely going to have multiple lines so we want our lines to be formatted nicely okay so this part of code here has really covered this divisible by three and five and write out that number if it is divisible by three and by five five and there is really one very important thing that you have to keep in mind each time that you write loops and that is the following so you have to give your Loop away so that it can stop executing this block of code here so under a certain condition it really needs to leave this block of code here because if you don’t do that you are going to end up with an infinite Loop you are really going to lock your program in an infinite Loop situation and this code here this Loop here that we have written this is really an infinite Loop so let me prove that I’m going to run my program and as you can see the console is empty so I enter any value enter whatever it is not really reacting and why has that happened well your counter value starts with 100 and then it comes to your while loop and your while loop checks this condition here so it checks whether your 100 is less or equal to 500 and the answer to that is yes which means that your program execution can enter this block of code here so it can start executing your Loop and then it comes here and it says please check whether my counter which is 100 is divisible by three and the answer is no so this part of code here is not even going to be checked because of the nature of this end operator it really needs both of these operant to be true in order for this expression here to be true because this here is not true it’s false 100 is not divisible by three it is not even going to check this condition here and this line of code here is not ever going to be written so after that it comes here to this closed curly brace and then because of the nature of while loop when it comes here it really goes back here and then it checks again your value of your counter whether that is less or equal to 500 but nothing has changed your counter value is still 100 and then it is going to enter again here and then really repeat that process over and over again and your program because of that is going to be locked inside an infinite Loop so let me prove that really because here we have an empty console and you cannot see what is happening in the background so I’m going to stop my program and I’m going to write out here let’s write out C out like this and let’s write out infinite Loop and if I run my program now as you can see your program has really entered in an infinite Loop and it is writing out this infinite Loop text for infinite number of times so as you can see it says infinite Loop okay and this execution here is not really going to stop until your program’s memory is full and then it’s going to crash so whatever code in the case that you had some code here it is not ever going to be executed so I’m going to stop this here and I’m going to delete this part of code here because we don’t really need it what we need is we need to put here a certain code that is going to help our Loop to really stop the execution at a certain point and the code that we need to put here is going to be really following it’s going to be counter plus plus like this what this code of here this code here is going to do in each iteration it is going to check whether this condition here is true if yes it is going to write out this part of code here and then in each iteration it is going to really increase the value of your counter by 1 which means in your first iteration is going to be 100 after that it’s going to be 101 102 103 and it is going to really go until it comes to 500 that is going to be the last iteration of your program and then when it comes to 5501 this condition here is not going to be true anymore and then your Loop is going to check really whether 51 is less or equal to 500 and the the answer to that is not going to be no so your program is going to really stop the execution of this Loop and come here and then really stop your program so if I run the program now I’m going to prove that okay so this has been executed very fast and as you can see this is the result of your program it has really written out all the numbers that are divisible by three and by five and you can check check all of these numbers using your calculator if you want so with this expression here with this counter Plus+ we have really both iterated through all the numbers between 100 and 500 because we check our counter value here and then also we have we have really given a way to our Loop to stop the execution of this block of code here when this counter value comes to 51 and this is the result of our program okay so I hope that you have liked this video any questions that you have write those in the comments down below and I’m going to answer those make sure to subscribe to my channel and share it with all your friends anyone who would like to learn programming and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners today I want to talk about while loop and I have already made one video on this topic and if you haven’t watched that I’m going to link it here so make sure to do so and why I’m making this video because I really believe that watching One video and doing only one example is not going to be enough for you to really Master a certain concept it wasn’t for me it is not going to be for you as well and that is completely okay so we are going to show you how this while loop is used on one more example and the program that I want to build today is going to be a program that has to count how many digits the number contains so our user is going to enter a number and then we are going to write a program that is going to count how many digits there are in that number so let me copy the text of that program like this and it says count digits of a number so let’s do do the first thing that we know that we have to do and that we know how to do as well so that is going to be write out a message to our user so that he enters that number and then also allow him to enter that number so I’m going to say see out and then I’m going to say number like this and then I’m going to allow my user to enter that number before I can enter it I have to really declare a variable that is going to hold that number so here I’m going to say int number like this and then here after we have written out this me message to our user we are going to say C in number like this so after our user has entered his number we really have stored it in our number variable and now we are going to write out the program that is going to count the number of digits of this number here so let’s first see one specific situation that can happen and that is going to be when our user enters number zero so this number holds a value of zero and in that situation I’m just going to write out a condition so I’m going to say if my number like this is equal to zero in that situation situation please just write out a message to my user like this you have entered zero okay like this and I don’t need semicolon here this looks better so this here is a situation where our user has entered number zero and in that case we just want to write out that he has entered zero and now we are left with the main problem of this task and that is to count the digits of the number that our user has entered and that part I’m going to put in my else block like this and if you’re are not fam familiar with if else statements make sure to watch that video it’s going to be linked here so here in this else block I want to write the program that is going to count the digits of a number which is not zero definitely because if we come here then our number is definitely not zero so how we are going to do that well let me show you the algorithm on an example let’s say that our user is going to enter a number 1325 for example that is the number that our user enters so how we are going to count the digits of this number well first we are going to have a variable that is going to be called counter like this and initially we are going to set the value of that counter to zero so that is initial count of our digits of number and then we are going to to use while loop to iterate through all the digits of this number and in each iteration we are going to do following so we are going to come here and then we are going to say okay take this last digit of my number and really remove it I don’t need it and as well increase the number that my counter is holding so increase the number of digits because we have removed one digit and then in the next iteration we are coming here and we are as well saying okay so take that last digit and increase my counter like this and then in the next iteration take the last digit increase counter and in the next as well take last digit increase counter and then when we come next time we really have nothing more to count so there are no more digits left our number at this situation here is going to be equal to zero and then we are going to know that there is nothing else to count and then we are really going to leave our Wild Loop and we are going to write out the value that our counter variable is holding which is at this situation for so let me show you how we how we can do that in our code so I’m going to delete this part here we don’t need it anymore and then here I’m going to write out the following so as we explained already first thing that we need to do is we need to create a variable that is going to be called counter like this or digits counter however you prefer and and that variable I’m going to assign a value of zero initially and after we have created this variable here now we need our while loop so while like this and then inside these parentheses here we really write out a condition that our while loop is going to check each time that it wants to run each time that it wants to iterate and that condition here is really going to be please check whether my number number is greater than zero okay so in any case where our number is greater than zero our while loop is going to execute this block of code that I put inside these parentheses and what we are going to put inside these parentheses well as we already explained previously first thing that we need to do is we need to say number is equal to number divided by 10 and what this line of code is going to do well let me show you that on an example let’s say that our number so our number holds the value of 1 2 3 like this and this line here really says the following it says Please do this expression here so calculate it and whatever this expression here results in assign that to my number variable and 1 2 3 so 1233 divide by 10 because this here is whole number so it’s integer and this here is whole number as well the result is going to be whole number and that is going to be 12 or 12.3 but but because result has to be the whole number that3 part is just deleted bye-bye so then this 12 in this situation is going to be assigned to our number variable okay so that means that this number divided by 10 is really going to take away that last digit which we have previously explained so I’m going to delete this part here okay and this line of code there is really one more way to write this so write the same thing so I’m going to comment this here and I’m going to write out number divided equal so number R like this 10 okay so this line of code here and this line of code here are exactly the same this is just shorter way to write this here and this looks prettier to me but you can leave whichever of these two you prefer okay so after we have taken the last digit from our number what we are left to do is to increase our counter variable by one so we can do that using our increment operator here so this part of code has really in each iteration taken away one digit and then increased counter variable so what we should do now after our while loop finishes we should really write out how many number how many digits our number contained so we are going to write out count number contains like this and then let’s write out the value that our counter variable is holding like this what is this oh it says count instead of C out okay and then let’s write out just digits like this okay so our number contains whatever our counter variable is holding digits so now I can really run my program and let’s do that so it asks us to enter a number let’s enter number 1 2 3 for example and it says that our number contains three digits which is correct so let’s very quickly explain one more time how this has happened so I’m going to stop my program and I’m going to say here that our user has entered number let’s say 1 2 3 so our program in this situation comes here to our while loop and it says please check whether the number that our user has entered is greater than zero and that number is 1 2 3 so 123 which is greater than zero so then our program can really start executing this wild Loop so it enters here and then it comes to the first line of this while loop and it says Please do this expression here and this expression here really just takes the last digit of our number away and that is going to be three so we are going going to take that away and then the next thing that needs to happen is increase the value of our counter since previously the value of our counter was Zero now the value is going to be increased by one so that is going to be one and after that our program comes here and because of the nature of the while loop it goes back here it checks again whether our number is greater than zero our number is 12 now so the one digit has been taken away so that is still greater than zero so then our number really comes here and then does does this line of code again so it says again please take away one digit from my number so then it takes away this two part and then it comes here it says now increase my counter because you have taken away one digit and that is going to be two now after that our program comes here and then goes back here checks whether our number so whether our one is greater than zero it says yes and then it comes here and it says says please divide my number by 10 so take away that one digit so that one digit is taken away and we are left with zero and then our counter is increased by one and then we are really going to come here again and then our program goes back and says please check whether my number so whether zero is greater than zero and then our program says no it is not so our while loop is not executed anymore and then it comes here instead dad and it writes out that our number contains three digits and there is one more situation that I want to show you and that is going to be what is going to happen in a situation where our user decides to enter a negative number so let’s run our program and let’s see how our program is going to behave in that situation so now I’m going to enter a number of Min – 335 for example and you see that our program writes out that our number contains zero digits why has that happened because our program has come here so it has increased our counter it has actually assigned our counter a value of zero and then it has come here and it is it has really tried to check whether our number is greater than zero but because our number is minus 335 that is not greater than zero so our program then really is not going to execute this block here but it’s just going to go here directly so then it’s going to write out that our number contains and the value that it has assigned to our counter here which is zero so our number contains zero digits and that’s the message that you see here so that is the explanation of this behavior and we need to solve that now how we are going to solve that well it’s pretty simple so here when we come to this else Block in this situation in this 14th line of code we are really sure that our number is not equal to zero because we have checked that here but here we really don’t know whether our number is less than zero or greater than than zero so here we really have to check whether our number is less than zero and if it is we really need to get the absolute value of our number which means if it is negative we have to convert it to the positive number so here I’m going to write out the following condition so I’m going to say please check if my my number is less than zero like this and then if this here results as true I’m going to write out here a way for my program to convert this number in case that it is negative into a positive number and how we can do that well we can really multiply that number by minus one so we can say number is equal to -1 * number like this okay so now if I run my program and if I enter value of Min – 236 for example our program now writes out that our number contains three three digits which is correct so how has this happened our program has come here it has really checked that our number is less than zero and then it has come here and it has said please do this expression here and then assign that to my number so -1 * 2 – 236 those minuses are going to really convert into plus sign and then 1 * 236 is going to be 236 and after that we are going to do the same logic here so we are going to write out that our program that our number contains three digits which is correct answer okay so that is the one situation that I wanted to explain and there is also another situation that I want to explain to you and that is what is going to happen in the following situation here so let’s see let me enter a number that is very very very large I I cannot even read this number here so how our programs going to behave in that in this situation here write that in the comments down below please before I execute this here and now if I press enter what is going to happen happen well our program has glitched a little bit and after that it has written out that our number contains 10 digits but this is definitely more than 10 why has this happened if you are not familiar with data types and overflow and concept Concepts that I have already talked about in one of my videos I am going to link that video here so make sure to watch that video and now I’m very quickly going to explain what has happened here but make sure to watch that video so when we have entered this number here let me stop this program and let me put let’s see let me put a breakpoint here and now I’m going to run my program and what this breakpoint is going to do it’s really going to stop the execution of my program at this line here and we haven’t talked about breakpoints or debugging programs previously but if you want me to include that in one of my next videos make sure to write that in the comments down below because I really believe that it is important for you to see how your program is executed line by line so to be able to follow it and in that way you can really discover any bugs and any situations that are tricky and that are happening inside your program so you can see and control that better so I have put here a break point and let’s now enter a number that is going to be a very large number okay so if I press enter now you see that my program has really stopped the execution here on this line here so after I have entered my number and then even though I have entered a number that is pretty large let’s hover over this number variable you can see that it is holding a value of 2 billion And1 147 million and something so this value here is definitely not equal to this value here but because our program has really gotten the value that is much larger than the maximum value that our int variable can hold it has really assigned the maximum amount that our int can hold to our number variable so that is what has happened in this program and if I click continue now you can see that our program writes out that our number contains 10 digits because it really was holding a 10 digigit number so that is the maximum amount that our int type can hold okay so that is the last situation that I wanted to explain to you and I hope that you like this video and if you have learned something new make sure to subscribe to my channel share it with all your friends anyone who would like to learn programming thanks for watching and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners and first things first make sure to subscribe to my channel and hit that Bell icon as well and share this video with everyone it really helps me to reach a lot more people and in this video I want to show you how you can reverse a number so your user is going to enter a number and what we want to do is we want to write out that number in Reverse so reverse the order of the digits of that number and here I have opened my visual studio so let’s copy the text of this task like this and the first thing that we need to do is we need to really create a variable so let’s say int number like this so that our user can enter his value in this variable here so let’s write out a message to our user so let’s say see out number like this so that our user knows that he should enter a number and then let’s accept that value in our number variable oh number like this now after our user has entered a number let’s really think about how we are going to solve this problem okay I get it so the first thing that I notice here is that we are missing a variable and that variable is going to be the one that is going to hold our reversed number so let’s declare it here I’m going to add it here and I’m going to call it let’s say reversed number like this and I’m initially going to assign it a value of zero okay and now the algorithm that we are going to use in order to solve this task in order to reverse our number so the algorithm that we are going to use is going to be the following so this reverse number here it is holding a value of zero initially and this number here is the one that our user enters so let’s say for example that our user enters a value of 123 like this so 1 23 so how we are going to reverse this number here the algorithm is going to be following so we are going to iterate through this number here so all the digits of this number here we are going to go through those and in each iteration we are going to do the following so the first thing is we are going to say please take this reverse number and multiply it by 10 so 0 * 10 is going to say to stay zero after that what we are going to do is we are going to take this last digit of our number that our user has entered and we are going to add that number to our reverse number so 0 + 3 and that is going to be equal to three and after that we are going to really remove that last digit of our number so I’m going to delete that digit and then in our next iteration what we are going to do is the same thing so we are taking this reverse number we are going to multiply it by 10 so I’m going to say 3 * 10 that is going to be equal to 30 and after that we are going to take this last digit of our number and we are going to add that digit to this number here so to this reversed number so 30 + 2 that is going to be equal to 32 and then we can really remove this last digit here so I’m going to deleted after that we are going to the to the third iteration and we are doing the same thing so we are taking this revers number multiplying it by 10 so 32 * 10 is going to be equal to 320 and then we are taking the last digit of our number this is this one here and we have to add that digit to our reversed number so 320 + 1 is going to be equal to 321 and after that as we did before we can really delete remove this digit here and then in my next iteration we are going to come here again and our Loop is really going to see that there is nothing else left to iterate through so there are no more digits and then it is really going to leave that Loop and at that moment we are really going to have our reverse number so 3 2 1 that is reverse number from the one that our user has initially entered so let’s now translate this algorithm into our code so the loop that we are going to use in order to solve this problem here is going to be while loop so I’m going to write while and then in these parentheses here I’m going to really give it an expression that is going to check each time that it wants to run an iteration and what we are going to iterate through are the digits of this number here so the number that our user has entered so I’m going to say please iterate through this part here so execute this block of code here which is currently empty while our number so number where is it is different than zero like this okay and inside here we are going to write out the algorithm that I just explained and the first step of that algorithm was really multiplying our reverse number by 10 so I’m going to say reverse number is equal to reverse number time 10 like this okay and the shorter way to write this expression here is going to be like this so you can really take this part here delete it and say it like this it is going to do absolutely the same thing so it is going to really multiply our reversed number by 10 and then whatever that results in it is going to assign that back to our reversed number so that was the first step the Second Step In order to reverse our number is going to be really to take the last digit of this number that our user has entered so how can we do that we can do that by modulating this number here by 10 so I’m going to declare a variable let’s call it um last digit like this and as we already said we can get that last digit if we modulate this number here where is it so this number that our user has entered by 10 okay that is going to give us the last digit of this number here and then what we really want to do is we really want to add that last digit to our reversed number that was one part of this algorithm so the next step so I’m going to say reversed number plus equal to last digit like this or you can write it a longer way but this way I pref I prefer to write it um this way but you can as well say reverse number is equal to reverse number plus last digit and after we have added that last digit to our reverse number there is one more step left to do and that is to really take that last digit from our number and how we can do that well we can really do that by dividing our number by 10 so you can say number is equal to number divided by 10 or number divided equal to 10 whichever way you prefer okay so this is really the algorithm that we explained and this step here you can can really write out the shorter way if you want so you can say for example reverse number plus equal to number modulated by 10 like this so you can make your code a bit more readable if you prefer it this way or you can leave this part here and then really add your last digit to your reversed number so now that we have done this algorithm here let’s write out our reverse number and see what we have done so I’m going to write out C out and I’m going to say reversed like this okay and I’m going to write out our reversed number okay let me delete these empty spaces and if I run my program now it asks us to enter a number so let’s enter number 1 2 3 and now if I press enter you can see that our program has really reversed this number here so let’s quickly one more time explain how this has happened so our while loop has really iterated through this number here so that in each iteration it is going to do the following so it is going to take our reverse number and initially that reverse number is equal to zero so it is going to multiply that by 10 so it stays zero and after that is going to take that reverse number and add it the last digit of our number that our user has entered so that is going to be in a first iteration number three so our reverse number in that case becomes three so 0 + 3 is equal to three and after that we are going to really take that last digit from our number that our user has entered so it has taken this three part away and then in the second iteration is coming here it is going to check again whether or not number is not equal to zero and our number is going to be 12 in that situation so that is not equal to zero so it enters here again it executes this block of code here so it says again please multiply my reverse number by 10 and assign that again to my reverse number so our reverse number was three and if you multiply by 10 if you multiply 3 by 10 you are going to get 30 after that it is taking the last digit of the number that our user has entered which is two now because three we have taken away in our previous iteration so it is going to add that two to my reversed number so number reverse number is going to become 32 now and then it is really going to take that last digit from our number away it is going to divide it by 10 so now we are left with number one and our reverse number is equal to 32 and then it goes back to to our third iteration it checks again whether our number so whether our remaining number is equal to zero and this one here is the value of our number so that is not equal to zero so this condition here is fulfilled it can enter the while loop so it does this algorithm here again so it says please multiply my reverse number by 10 our reverse number at this point is 32 so when you multiply that by 10 you get 320 and then after that it takes the last digit of our number which is going to be this one so this one here which is the last one remaining so it is going to take this one and add it to my reverse number as you can see here and then it is really going to take that last digit away so it is going to take all of these three digits away so it has taken them in a previous situations and now it has taken this one away as well so our number is equal to zero now now and then it goes back to our fourth iteration it checks whether our number is not equal to zero but in this situation our number is equal to zero so it really leaves this Loop here so it is not going to enter in this Loop anymore and then it goes here and it really writes out the value of our reversed number which is this line of code here so that is how we have reversed our number so I hope that you like this video and that you understand this explanation if you have any questions write those in the comments down below and also share this video with all your friends with anyone who would like to learn programming and thanks for watching I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners if you are already a subscriber welcome back and if you’re a new viewer make sure to subscribe hit that Bell icon as well and welcome to my channel so in this video I want to talk about the while loop and in my previous videos we have already talked about while loop and iteration in general so if you are not familiar with those make sure to watch that video I’m going to link it here but in this video I want to explain to you how and when is used do while loop and I’m going to give you an example of a program that is usually used and for example applications such as when you try to unlock your phone and then you are given three attempts to guess your pen and if you guess it correctly then you can proceed loading your phone’s applications further or for example if you want to unlock your credit card so you put your credit card in ATM and then it gives you three attempts to unlock your credit card if you guess your pen correctly you can proceed further but if you fail so if you don’t guess your pen correctly in those three attempts your account gets blocked so that is the application that we are going to make today and for that we are going to use do while loop so there are three things that we need actually three variables so I’m going to declare those three here the first one is going to be our let’s say the the pin of our user so let’s call it users pin like this which is going to be really the correct pin the one that you want to guess so I’m going to put here let’s say 1 2 3 4 that is going to be our user pin after that that we need another variable which is going to be really the pin that our user enters so let’s call that variable just pin okay like this and then the third variable that we need is going to be really counter of our errors so the counter of the attempts and errors that our user has made so I’m going to call that variable error counter like this and let’s set that value initially to zero okay and the next thing that we need to do is we really need to give our user three attempts in order to guess this pin here and if he guesses it correctly in those three attempts we are going to write out that the application can be loaded further so we are going to write out application is loading or something like that but in the case that our user does not guess this pin here so this pin here correctly we we are going to really write out that the application or a credit card whatever has been blocked and how we are going to do that so we are going to use do while loop so I’m going to write out do like this and then here I’m going to put while because that is the syntax of our do while loop okay and here you need semic colum because if you don’t put it you are going to get a syntax error now here we put the block of code that we want to execute in each iteration and here we put the condition that we want to check each time that this code here is executed we come here and then we check that condition and if this condition here that we put is correct we are going to go again here and do one more iteration and then again check and then do more one more iteration and we are going to repeat that until this condition that we put here is no long longer true when it when this condition here when it becomes false we are going to leave our do while loop okay so what do we want to enter so what do we want actually to do in this block of code here we really want to write out a message to our user so that he knows that he should enter a pin a pin and then we want to really accept that pin that our user enters in this variable variable here so let’s do that first I’m going to write out C out like this and then then let’s just write out pin like this and let’s accept the value that our user has entered in our pin variable like this okay and then after we have done this what we need to do is we really need to check whether this pin here so this pin that our user has entered corresponds to this pin here so whether this value is equal to this value here and if they are not that means that our user has failed so in that case we are going to increase our errors counter so I’m going to put here if pin is not equal to users pin like this what we want to do is we want really increase our errors counter variable like this okay and this code here so we want to give the the attempt to user so that he can enter a pin and then we want to check whether that pin is correct three times or until this pin here and this pin here are the same so until they are equal or until until our user has used all of these three attempts that we have given to him okay so here I’m going to really put that condition so here inside these parentheses I’m going to write out please do this block of code here here while our e let’s say while our errors counter is less than three like this and then also at the same time while our pin is not equal to users pin like this which means that this block of code here is going to be executed while our user has not used all of these three attempts that we have given to him and while this pin here so this pin here and this pin here are not equal in a situation where this here results as false we are going to come here and after that when we come here we really want to check whether we have left this do while loop here because our errors counter has reached three or because these two were the same in a situation where our errors counter has reached three that means that our user has used three attempts and that he has not guessed his pin correctly so I’m going to put here if our errors counter is less than three like this and this condition here really means that this do while loop has been left in a situation where our user has not used all of these three attempt that we have given to him that means that this while condition has really failed on this part here so that means that our user has entered 1 2 3 4 as pin and in that situation 1 2 3 4 is not equal to 1 2 3 4 that results as false so this whole expression here this whole condition results in false as false and then we leave our do while loop and in that situation if our user has not used all of these three attempts that really means that he has guessed his pin correctly so here in this if situation we can write out to our user see out you have guessed or you can proceed with loading of of this application so I’m going to write out just loading like this but in a situation where our while loop has been left because this errors counter is greater than three actually it is going to be equal to three that means that our user has failed in guessing his pin three times and that means probably that he’s not trying to unlock his phone or his credit card so in that situation we are really going to block that account so we can say else see out blocked like this okay and I’m going to put one more here like this so this is going going to be a program that we really use to allow our user to enter three attempts of his pin and in a situation where he guesses that pin correctly in those three attempts we are going to write out to our user that he has successfully unlocked his phone for example and we can proceed with loading of applications but in a situation where he really uses all of those three attempts and fails to guess his pin we can write out that the application is blocked oh blocked now now it’s now it’s okay so let me run this program and let’s try to use three attempts so I’m going to say that my first attempt is going to be for example 1 one one one like this so it says you have not guessed correctly please enter pin again this is what it means after that I’m going to try for example 2222 it tries to prompt me to enter my pin again because I have failed previously and let’s say that my third third attempt is going to be 3333 like this and then it has said it has written out a message that my account has been blocked because I have missed three times okay so that is one scenario and and the other scenario is going to be really where we guess the one where we guess our pin correctly so let’s say that our first attempt is going to be um 111 one again and after that we really remember what is the correct pin and we enter 1 2 3 4 like this and then if I press enter it says really you are loading you can you can load your application now or the further loading of your application is going to begin now because we have T the correct pin so let me very quickly explain one more time how has this happened so this code here when we come to this do while loop the first thing that is executed is this line here so it says please enter your PIN and then after your user enters the pin your program really checks whether that pin is equal to user’s pin so the previous pin the one that he needs to guess and if those two are not equal that means that your user has not guessed correctly and then you want to increase your errors counter so the number of attempts that your user has used and failed actually in using so we increase in our first iteration that errors counter to one so from 0o to one and then we come here and then our Loop really checks whether that errors counter is less than three so one is less than three that is true and also it checks whether that pin here is is not equal to the pin that we need to guess and in this situation it is not equal so it also this this whole expression results as true and it now can go here again so it prompts you again to enter the pin so you can enter the pin now and in this situation we enter 2222 for example and then it guesses it it checks again so it checks whether pin that you have entered so 2222 is not equal to 1 2 3 4 for those two are not equal so it increases the errors counter once more and it becomes two now then you go here and then it says okay please check whether my user has used all of these three attempts it it it says that your errors counter is still less than three so you have used only two attempts so far and then this condition here results as true because you have entered 2222 and that is not equal to your PIN so 1 2 3 4 and then it goes back here tries to prompt you one more time to enter your PIN and then if you fail this time it increases your errors counter to three like this and then it goes here and it checks whether your errors counter is less than three your error errors counter in this situation is uh has become three so this condition here results as false and your while the while loop actually is now broken so you are not going to continue the execution of your do while loop but you come here and then it checks whether errors counter is less than three because this here fails because this here results as false you are presented with this message here so blocked your phone your account has been blocked okay and in a situation where your user guesses correctly that errors counter is going to be less than three and you are going to be presented with a message of loading and there is one important thing that I want to mention and is really the difference between while loop and do while loop in do while loop you first do so you first execute this block of code here and then you check the condition and then if that condition results as true you go back and you again do this block of code here and then you check and then you do but in a situation of while loop you first check the condition and then if that condition results as true then you can really proceed with executing your block of code that comes after your while but in this situation here so in the situation of do while loop you first do this block of code here so uh irrelevant whether this condition here is true or not you are going to do this block of code here at least once I hope that you like this video if you did make sure to subscribe to my channel and click that Bell icon as well and also if you want me to post more videos like this make sure to like this video because then I will know that you liked it and well that’s all I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners in this video I want to talk about four Loops but before we start make sure to subscribe to my channel and hit that Bell icon as well okay so what I’m going to explain today I want to explain to you how for Loop works and I’m going to explain that on a simple example which is calculating the factorial of a number so let me copy the text of our task here like this and I’m going to comment it out so what is the factorial of a number factorial of a number is usually defined as a product of all numbers between one and that number that you want to calculate the factorial of that means for example if your user enter here is number six let’s say and you want to calculate the factorial of number six you are going to do that in a following way so 1 * by 2 multipli by 3 4 5 and oh sorry six okay and then this here is going to result in 720 so this 720 is really going to be the result of your factorial of six and this example here is what we want to really translate in our program so we want our user to enter a number and then we want to calculate the factorial of that number and write that result out to our user and we are going to use for Loop for that so let me quickly declare a variable which is going to be called number okay like this and let’s prompt our user that he should enter a number and then let’s really store that number that our user enters in our number variable okay so after we have acquired a number that we want to calculate our factorial of let’s explain how we are going to really do that so I’m going to do that using for Loop and what is the difference between four Loop and while loop and do while loop because we have previously talked about while loop and do while loop as well you can find those videos on my channel if you’re interested and I’m going to link those videos in the description of this video if you want to watch them so the difference is that usually when you use for Loop beforehand you should know how many iterations that Loop is going to make so for how long your Loop is going to run so let me show you the syntax of our for Loop you say four and then you use these parentheses here in which we are going to put certain expressions in a moment and after that you put these curly brackets in which we are going to write out the code that is going to be executed in each iteration of our four Loop so inside this parentheses here we need to put three things what are those three things the first one is going to be to set the initial value of our counter variable that is the first one after that the second is going to be to really put the condition that your for Loop is going to check each time that it wants to run this block of code here so before each iteration it is going to check that condition so that is going to be the second thing and after that the third thing is going to be really a way for your counter value to come to that condition condition which means that you have to either increase or decrease your counter variable in order to reach that condition at certain point and then when that condition results as false your for Loop is not going to be executed anymore okay so those are three things that we need to put in these parentheses here and let’s now look at this example here because from here we are going to really uh deduct which conditions which Expressions we are going to put here so if you notice this algorithm here because this is really algorithm nothing else um you see that this is really a counter this behaves as counter so it goes 1 2 3 four and it really starts at one and then it goes up to that value that your user has entered so we can use that for our expression here the first expression is initial value of our counter we need to declare that variable and we are going to call that variable I you can call it count or whatever you want really uh your compiler is not going to give you an error because of that but a common practice is to use a single letter variable name for this counter that you use in your for Loop so I’m going to use name I for that and the initial value of my I counter is going to be one because as you can see here it really starts on one and then after that we need to put the condition that your for Loop is going to check each time that it wants to run a new iteration and that condition as you can see here is really this this expression here this algorithm runs until it comes to this six until it comes to the value that your user has entered so we are going to put that here we are going to say please run this block of code here until my I is less or equal to number like this so whichever number our user enters and then the third thing is going to re be really to give our Loop a way to reach this condition here at some point which means to make this condition here false and then leave our four Loop and again we look here and you can see that your counter is really increasing in each iteration by one okay so here we are going to put I ++ which is in each iteration going to increase the value of our I counter by one okay so after we have put these expressions in these parentheses of our for Loop we need to really put a block of code that is going to be executed in each iteration of our four Loop and I’m going to declare before this for Loop here I’m going to declare another variable which I’m going to call tutorial and I’m going to give it a type of int okay like this and I’m going to assign the initial value to my factorial factorial variable and that is going to be one and then how I’m going to use this factorial variable in each iteration of my four loop I want to say that my factorial is going to be equal to whatever my factorial was previously holding multiply that by my current I value which means by the current value of my counter and how this is going to behave so let’s say that our user enters for example number three and then your execution comes here and it says please declare a a variable which is going to be called factorial and it is going to have a value of one so we have assigned that value here and then it comes to your four Loop the first thing that your four Loop is going to do is it is going to declare this I variable here and assign it a value of one so we we are going to write that here so we are going to say I is equal to 1 and then it really goes here and checks this condition here before it determines whether it’s going to run this block of code here or not so if this here results is true it is going to run this block of codee here and if not it is going to leave your for Loop so is your I less or equal to the number that your user has entered so your I is going to be one and then that is less or equal to three so your for Loop is going to execute this block of code here which means that it is going to come here and say factorial multiplied by one which is going to be 1 multiplied by 1 and that is going to result as one and it is going to assign the result of this here to your factorial variable which is going to stay one after that your for Loop comes here and at this close bracket here it really goes here and it increases the value of your I and this increment operator is going to increase it by one so your I now becomes two and then after that it goes back here and checks this condition here so it says please check check whether my two is less or equal to the number that your user has entered so two is less or equal to three so it is going to run this block of code here again and then it is going to do following so it is going to say please multiply my factorial value so the previous value that my factorial was holding which is one by the current value of my I which is 1 * 2 that is going to result as 2 and that is going to be assigned to your factorial variable so we assign two here okay and then it goes back to these Clos brackets and then it goes here increases the value of your I again so your I now is three and then it really checks this condition here so whether three is less or equal to three the result of that is going to be yes so it is going to do this expression here again so so the current value of your factorial which is going to be two multiplied by the current value of your counter variable which is going to be three so 2 ultied by 3 that is going to be six and that is going to be assigned to your factorial variable after that it goes here and then it really increases again the value of your I variable so of the counter that you are using in your for Loop and that value becomes four now after that it is going to try to check this expression here so this condition here and four is not less or equal to three so your for Loop is not going to execute anymore and then your really your your execution comes here and at this line of code here it has the value of six in your factorial variable which means that we are left only with the need to write out this to our user so we need need to say um let’s say it like this number okay and then let’s say factorial of that number is going to be equal two and then let’s write out the result so the result we are holding in our factorial variable like this so This should really write out the result of this here so the the factorial of this number that our user has has entered and if I run my program you can see that it asks us to enter a number I’m going to say let’s say for example three and then if I press enter it is going to give us the result of six which is the correct result the one that we previously got let’s run it one more time just check this number here so I’m going to say please give me a factorial of six and it calculates that the factorial of 6 is 720 as we did before so this is going to be really one way of writing this for Loop for this current example so for calculating factorial I want to show you another way how you can do exactly the same thing so I’m going to really comment this part of code here so I’m going to say um comment this block of code here and then there is another way to write these parenthesis here so as you can see this example here is what we have used in order to write these Expressions inside these parentheses but there is really one more way to calculate your factorial and that is going to be to start at this maximum value which means 6 factorial is equal to 6 multiplied by 5 by 4 3 2 1 and and that is going to be equal to 720 so now you start your counter at this maximum value so this number that your user has entered and then you really decrease the value of your counter and you go until your counter value comes to one and that is the condition when you stop so your one value of a counter is going to be the last iteration through your for Loop so now we are going to write out um so actually we are going to really write our for Loop using this algorithm here so we are going to say four and then also put this these parentheses which we are going to use for the block of code that we want to run through in each iteration and in these parentheses here I’m going to set the initial value of my counter that is going to be I is equal to and as you can see here our I starts at six so I’m going to put here six which means a number that our user has entered in this current situation it is six but since we want to calculate the factorial of whichever number our user decides to enter I’m going to use that variable here okay and then the condition that your for Loop is going to check each time that it wants to make a new iteration and that is going to be please run this block of code here until my I is greater than or equal to 2 1 okay and then the last thing that we need to put here is going to be really a way for our for Loop to stop at a certain point and if you look at this example here you see that your counter is decreasing by one in each iteration so we are going to put that here we are going to say I minus minus which means use this decrement operator on our I variable and then we are going to really use the same expression here here okay and this is going to give us the exact exactly the same result as this code here did so if I run my program you can see that it asks number again so if I enter number six for example it is going to give us 720 as this code here did as well so let’s repeat one more time there are three things that you need to put in these parentheses here in order to set up your four Loop and the first one of those three is going to be to set the initial value of your I variable which means the initial value of your counter after that you need to put the condition which is going to be checked each time that your for loop wants to run an iteration and if this condition here results as true your for Loop is going to run this block of code here but if this condition here results as false your for Loop is not going to run this block of code here but you are really going to leave your for Loop and come to the next line after it and then the third thing that you need to put in these parentheses here is going to be really to either increase or decrease value of your counter variable so that it can reach this condition here at certain point and make it false so we have decreased it in this example here and we have increased it in this example here so those are three things that you need to put inside these parentheses here and you really need to separate those three using this semic colum sign okay and there is one more thing that I need to mention and that is going to be really you can upgrade this program here so that it checks whether this number here is greater than zero because you cannot calculate factorial of negative number so our program is not going to be behave as expected if you enter negative number and also the factorial of zero is going to be equal to 1 so you can put that code here and determine whether your user has entered positive or negative number and in case that your user has entered negative number make sure to write out appropriate message to your user so I think that is all if you like this video and if you learned something new make sure to subscribe to my channel and hit that Bell icon as well share it on your social media because it really helps me to reach a lot more people so that all of us can learn and upgrade our knowledge in programming and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners in this video I want to talk about nesting Loops in my previous videos we have talked about while loop do while loop and for Loop and now I want to show you the example on how you can really combine and Nest those Loops so if you haven’t watched my previous videos or you are not familiar with loops at all I recommend you to watch those I’m going to link those in the description of this video and also before we start make sure to subscribe to my channel and click that Bell icon as well so what are we going to do in this video I want to really show you how you can nest for Loop and do while loop and the example that I’m going to use to explain that is going to be following so I want my user which is going to be a student let’s say to enter three grades or more if you want we are going to use three for desk exam and I want to those grades I want those grades to be between 1 and five and then I want to write out the average grade so the average grade between those three that he has entered so let’s start building our program the first thing that I need to explain is since we are going to enter three grades that means that we are going to repeat that entering process three times and for that I’m going to use for Loop so I’m going to write four and then in these parentheses here I’m going to put my initial set setup of four Loop which is going to be the first thing is going to be initial value of our counter so I’m going to declare a counter which is going to be called I and initially I’m going to give it a value of zero that is the first thing the second thing that I need to put in these parentheses here is going to be the condition that our Loop checks each time that it wants to run a block of code which is going to be this block of code that we put inside these parentheses so that condition we put here and that condition is going to be while our I is less than three so we want to make three iterations in the first iteration our I has the value of zero in the second iteration it’s going to have the value of one and then in our third iteration it’s going to have the value of two so we have made three iterations after that it gets the value of three but this condition here is not going to be true anymore so then our for Loop is not going to be executed anymore so that is the second thing and then the third thing which we need is going to be really increasing that value of our counter in each iteration so after age iteration and I’m going to put here this increment on our I variable okay so in this block of code here we are going to repeat three times something so what is that something that is going to be really the process of our user entering the value for his grade and since we said that that grade needs to be between 1 and five I am going to use do while loop for that how well I’m going to write out do okay and then here I’m going to put while which is going to be the condition so here we prompt our you user to enter the grade and then we we say here you are going to have to enter that grade while that grade is less than 1 or greater than five so since we don’t have any variable that we are going to use to enter that grade I will have to declare it here so I’m going to say here int grade like this okay and then let’s prompt our user in this block here to enter his grade so I’m going to write out C out and let’s say enter grade and I am going to use the current value of my counter so that I can really say um which grade my user is entering so enter first grade second grade and third grade so I’m going to say I + 1 like this y + one well because our counter starts at zero and it wouldn’t make much sense to say to our user please enter grade zero so that is why I’m increasing this value of my I when I want to write out a message to my user okay like this so here I’m going to write out please enter a grade and after that I need to accept that grade that my user enters in my grade variable so I’m going to say C in grade like this and we are going to repeat this process here for a single grade while our user enters a grade that is less than one or grade is greater than 5 okay so our program is really going to prompt our user please enter grade one and then he enter six for example and then our program checks this condition here and says okay you have missed this part here so go back and then please enter grade one so first grade again okay so if I run my program now let’s just prove that very quickly so our program our program says now enter first grade so enter grade one and then let’s say that I enter nine for example it prompts me again to enter first grade because I have not obeyed this rule here this part here so I’m going to say this time for example five and then it says okay you have successfully entered first grade let’s now enter second grade so for that second grade let’s enter for example zero and then it prompts me again you have not entered correct value for grade two please enter it again and let’s say that this time I’m going to enter one and then it asks for third grade and let’s say that this time third grade is going to be three so our program now has successfully accepted this third grade and now our program is going to really uh finish its execution because we haven’t written anything else after this part here so there is something else that we need to write and since we want to calculate the average grade of our user what we are going to need is going to be really to sum all of these grades that our user enters so I am going to declare a variable which is going to really hold that sum of our users grades so I’m am going to put it here I’m going to call it sum and initially I’m going to assign it a value of zero and later I’m going to explain why so I have declared a variable that is going to be of type int and I have called it sum and assign it a value of zero so this sum here is going to each time that our user enters a grade and we really um we really check that that grade is valid grade after that we want our sum to hold whatever it was previously holding plus the value of our grade like this okay so why I have assigned a value of zero to my sum because zero is a neutral value when it comes to adding numbers you add zero to whichever number and then you get that same number and in a situation where we didn’t assign any value to our sum we would get really um an error so if I try to run my program now you see that it prompts me with an error and it says uninitialized local variable sum used because it does not have any value assigned to this variable here it is going to say really that it does not know how to add the value so the value of our grade to our sum so that is why we need to assign some value to our sum variable okay so and that value is going to be zero because zero is neutral when it comes to adding numbers okay so now I can really run my program and as you can see um that error has disappeared so I’m going to stop my program and let’s very quickly write out this sum that we have calculated here so I’m going to say see out and I’m going to write out sum like this sum is equal to and then let’s write out the value of our sum and let’s add end line like this so I am going to run my program once more it prompts me to enter first grade I’m going to say that my first first grade is going to be for example five and then my second grade is going to be for example six uhuh that’s an error so please enter your second grade again so I’m going to enter this time two let’s say and then for my third third grade let’s enter one for example and it says that the sum of my grade grades is equal to 8 which is correct so 1 + 2 + 5 that is going to equal to 8 so what we are left to do now we should only really divide our sum by the count of our grades which is three because we have hardcoded this value here to three so our user can enter only three grades you can really use a variable for this or you can part code it to any other value that you want and need so here after this line of code here what I need to do is following so I’m going to say C out out and then let’s say average is equal to let’s say average grade is equal to and let’s write out the result so that is going to be sum divided by three okay is it though so I’m going to run my program and let’s enter for example value two and then again value two and then let’s enter for example value four and then it says that average grade is equal to two which is not correct but why has this happened so as you can see here we have used two integer variables so our sum is integer value and then three is integer value as well so when you divide two integer values the result is also going to be integer value so in order to get a floating point a decimal point Point number you really need to convert one of these two into a float type so you can say either here you can say float so please convert my sum variable into float and then divide or you can put here this 0 Z or you can leave both of these whichever you prefer so I’m going to leave both of these like this so if I run my program once more it prompts me again to enter first first grade so I’m going to say that my first grade is equal to five and then my second grade is also five and then let’s say that the third grade of our user is going to be nine so our program prompts us again to enter the third grade because it needs to be in this interval here so I’m going to say now that uh the value of my third grade is going to be three which is correct value and after that as you can see it writes out that the sum of these three grades is 13 and then average grade is 4.33 333 so that was an example on how you can really combine and Nest Loops in order to solve complex problems and thanks for watching make sure to subscribe to my channel click the Bell icon also share it with anyone who would like to learn programming and I’m going to see you in my next video bye hi everyone welcome to to my channel welcome to another video of C++ for beginners in this video I want to talk about nesting four Loops so I want show you how you can solve more complex problems using nested for Loop but before we start please subscribe to my channel and click the Bell icon as well and also like this video so this example that we are going to do today is going to be really multiplication stable so I’m going to show you the example that I want to program so that would be this here and if you look at this multiplication table that we want to make you can really start to notice a pattern and what pattern I mean you see here this this first end in this first part of my multiplication table so in this first table as you can see this first end is one and it stays one in this table here after that you can look at this second table you see that this end is now two and then in my third table it has increased to three 4 five and it really increases so it increments by one and it goes up to 10 okay so that is the first operand so this first part of my multiplication after that we can look at this second operand and you can really notice that it increases in each iteration by one so it goes one two three four five up to 10 and then it does the same thing in this second table so it goes from 1 to 10 again and then the same in my third table fourth fifth and it really behaves the same in this 10th table as well so that is the pattern that I want you to notice so this first oper end can be really represented using one for Loop so let’s say that that is going to be outer for Loop and it is going to increase each time that my second upper end Counts from 1 to 10 and that second opont we can really represent using another for Loop which is going to be really inner for Loop so the program the algorithm for for solving this problem is going to go like this you have outer for Loop which is going to count from 1 2 3 4 up to 10 so it is going to count from 1 to 10 and then you are going to have inner for Loop which is also going to count from 1 to 10 but for each value of my counter of my outer loop okay so that means that my outer loop counter changes only after my inner loop has counted from 1 to 10 so let’s copy the text of our task here I’m going to say multiplication table and let’s comment that text out so as we said in order to solve this problem we are going to use nested for Loops so I’m going to add empty space here and then the first thing that I need is going to be my outer loop so I’m going to really set up my outer loop I’m going to say four and then we need to declare a counter which I’m going to call I so I’m going to say int I is equal to and then since our outer let me show you this image one more time since it goes from one to 10 I’m really going to set its initial value to one so I’m going to say I is equal to 1 and then I’m going to write the condition so how long this for Loop is going to run and that is going to be while this I is less than or equal to 10 like this and then each iteration it is going to increase by one so that is going to be i++ okay and then I’m going to put this block of code here that is going to be executed in each iteration of this for Loop so what we need to do in each iteration of our for Loop let’s look at our image one more time and as you can see it really says that in each iteration of this outer for Loop you need to count from 1 to 10 so in this iteration here some other counter really counts from 1 to 10 and then new iteration so our I is now two and then counter counts again from 1 to 10 and then three but also we have this inner counter that counts from 1 to 10 okay so let’s really write that code so that inner counter that counts from 1 to 10 for each value of our I we are going to represent with another for Loop and that is going to be really that nested or that inner for Loop so I’m going to write four and that inner counter I’m going to call J so I’m going to write int J and since our J also Counts from 1 to 10 I’m going to set its initial value to one and I’m also going to say please iterate through this for a loop while our J is less than or equal to 10 as well and then in each iteration please increase the value of J by one so do this increment operation and then in each iteration of our J Loop we are going to execute this block of code here so what we are going to do in this block of code here well let me look at that image once more and as you can see in each iteration of our J so this is one iteration of our J this is second third fourth fifth and then 10th iteration of our J after that we change our I counter value so we increment that and then our J starts again starts one more to count from 1 to 10 so in each of these iterations as you can see really we have to multiply our I value counter with our J value counter and write the result of that so I am going to write that here I am going to write C out like this and then let’s write out the value of our I counter like this and then let’s write out this this multiplication operation and then let’s write out J like this this is just for maing our text so I’m going to put this equal sign and then I really want to multiply those two counters like this and let’s also add one end line here so that our text is formatted nicely because we are going to have multiple multiple lines so with this we we have really covered this multiplication part and there is only one more thing left to do and that is to add one more end line because I really want to make separation between these so I want to make separation between these tables this is going to be one logical part after that this is going to be another then third fourth and I want to put uh empty space space between those two so that I can group them group them so I’m going to add here C out and line like this and that should be it pretty much so if I run my program now as you can see it has generated this multiplication table from 1 to 10 okay and it has done that in a matter of less than a second so as you can see here we have this outer counter oh I cannot Mark that only so we have this outer counter which is going to be our I that counts from one to 10 but for each value of our outer counter for so for each value of our I we have to really count from 1 to 10 with our inner counter which is going to be our J as you can see here okay so these are the results of our multiplication operation and I hope that you have seen now how you can really use programming to your advantage how you can use it to solve not really complex but tedious tasks you would really need 20 or 30 minutes in order to write this yourself and you can now generate it with just couple of lines of code and less than a second of your computer’s power to to Really execute this code here that you have written and the most amazing part is that you don’t really have to put 10 here here so we have put 10 here because I want to make this example manageable for this video but you don’t have to hardcode these values here you can really use whatever values you want you can say for example let’s say 2,000 okay so I want to generate multiplications stable up to 2,000 how long would that take in real life so without programming okay now you see a few moments later okay so it is still running and it is going to generate around 4 million records which is a lot and it is going to do that in a matter of minutes so how long would it take for you to even just count from 1 to 4 million it would take you probably days if not months and also there were a lot of errors that you would probably make in that process so I hope that now you can really recognize the power of programming now if you needed to do this task you would really program your computer to do it and now you can just go take a break and your computer is going to finish that task for you so I hope that you can recognize now how you can use programming in order to solve different types of tasks that you can come across in your school in your job or life in general and if you like this video make sure to subscribe to my channel also click the Bell icon and share it with anyone who would like to learn programming and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners in this video I want to show you how you can draw shapes using C++ so before we start make sure to subscribe to my channel and also hit that Bell icon as well so that you are notified when I publish my next video and let me show you now what we are going to do in this video so here where is it here I have image of the task that we are going to do today and that is going to be really to draw this rectangle shape with the desired height and width and the symbol that our user enters okay so that is the task that we are going to do in this video and let’s very quickly analyze this problem and see how we are going to solve it so the first thing that we need is for our user to enter height width and then symbol and after that we will really need to figure out a way so figure out the algorithm on how we are going to draw this rectangle shape here so if you look at this rectangle shape you can really notice that it has the height that is going to be three of these symbols that our user has entered and then it has the width that is going to take four of these symbols that our user has entered for width okay so we are going to use nested for Loop in order to solve this problem here and if you’re not familiar with nested four loop I am going to link that video here because I have already made one video with nested four Loops so make sure to watch that video and in this video I am going to really use that nested for Loop in order to control height and width of our rectangle shape so we are going to have outer for Loop which is going to really control this height and then for each iteration of our outer for Loop we are really going to control this width with another loop and we are going to count from one up to four because four is the width that our user has entered and draw that shape in each iteration of our inner for Loop okay so that is what we are going to do so let’s now translate that into code I’m going to say here first thing that we need is going to be from our user to enter width and height so I’m going to declare two variables the first one is going to be height like this and then with Okay so let’s write out a message to our user so that he knows that he should enter height okay now let’s accept that height value in our height variable and after that let’s really copy this and do the same thing for our width like this and accept that value in our width variable so that is the first step the second step is going to be to declare another variable which is going to hold the symbol that our user wants to use for drawing that shape so I’m going to declare a variable of type Char and I’m going to call it symbol like this and let’s write out a message to the user so that he knows that he should enter that symbol like this and let’s say C in symbol so after we have acquired all the necessary inputs from our user which are height width and symbol that we are going to use to draw our shape now we are left to write the algorithm that is going to draw that rectangle shape so as I already said for that we are going to use nested for Loop so I am going to set up my outer loop the first Loop and I’m going to say four and then I’m going to declare the counter which is going to count the iterations of my outer loop since that outer loop is going to control the height of our rectangle I’m going to say int H so I’m going to give the H name to our outer counter and I’m going to set its initial value to zero like this and then we are going to put the condition how long our outer loop is going to run so while our H is less than height that our user has entered like this and then after each iteration of my outer loop we have to increment the value of our H counter so that would be the setup of our Outer Loop and let’s Now set up our inner loop so I’m going to write four and for this inner loop I’m going to declare another counter which I’m going to call W like this because this inner loop is going to control the width of rectangle shape so I’m going to set its initial value to zero as well and then I’m going to say that it is going to run while this W is less than with that our user has entered like this and also after each iteration we really need to increment the value of this W okay so what we are going to do in this Loop so in this inner loop if you look at this image here where is it okay here you can really notice that in each iteration of our inner loop it just draws this symbol that our user has entered so I am going to very quickly just see out so write that symbol out I’m going to say see out and then write out that symbol like this and there is really one more thing that we need to put and that is going to be after this four Loop so this outer for Loop finishes single iteration we really need to put something else at the end so here at the end of our outer for Loop and let’s look at our image so as you can see here after each iteration of our outer four Loop because it is controlling height and it is really iterating through this inner four Loop in each iteration of our outer four loop at the end of that iteration of outer for Loop we really need to put empty space so here I need to put empty space and that corresponds to this line here so here I’m going to write out C out end line like this and now if I run my program we should really expect to see the shape that rectangle shape of Dimensions that our user defines so let’s say for height four and then for width let’s say for example six and the symbol that we want to use to draw that shape let’s say that that is going to be this plus symbol okay so as you can see our rectangle has the height of four and then it has the width of 2 4 6 so it has the width of six of these symbols that our user has entered okay so there is one more thing that I notice here and that is going to be really to format this shape uh to be a bit more pretty so for that we are going to use the library which is called IO manip so I am going to include that Library here I have to say include IO manip like this and this Library here really contains a function that is that is called set W which means set width which is really going to set the width of the field that comes after it so I’m going to put here that function I’m going to say I’m going to put these redirection signs here and then in this space here I’m going to write out set V so set W actually and then here I want to put what is the width of the field that comes after this function so what is going to be the width of our symbol field and let’s use three for DOT for example so if I run my program again but let me stop it first and if I run it again oh no I haven’t stopped my program so I’m going to close it okay and now if I run my program you can see that it asks height and width again so previously we have entered four and six and then for the symbol let’s enter plus again and now as you can see our shape looks much nicer because of this set width function because it has really assigned to each symbol to each character that our user has entered the width of three Fields okay so let’s run our program one more time and let’s say that that height is going to be five and width is going to be seven and let’s enter another shape so let’s say for example minus and as you can see it has written out the shape so the rectangle shape of these Dimensions that our user has entered and it has used this symbol that our user also has entered so I hope that you enjoyed this video if you did make sure to sub subscribe to my channel and click the Bell icon as well also if you want me to make more videos like this so if you want me to use programming to draw more shapes make sure to write that in the comments down below so that I can know that you really enjoyed this video and like it as well and thanks for watching I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ for beginners and this video is going to be sort of a continuation to my previous video in which I showed you how you can draw rectangle shape using C++ and in this video I want to show you how you can draw triangle and reversed triangle shapes using C++ as well so if you’re not familiar with how you can draw rectangle I would suggest you to watch that video first I’m going to link it here because in my opinion it is a bit more difficult to draw triangle than it is to draw a rectangle shapes so what one more thing I have also created Instagram and Twitter accounts so if you are interested in how developer life looks like and also if you’re interested in behind the scenes of these videos that I post on YouTube make sure to follow me on my other social media so at true code Beauty Instagram and Twitter accounts I’m going to put the link to those in the description of this video so without further Ado let’s start drawing our triangle shape so here I have the shape that we are going to draw in this video and that is going to be this equilateral triangle shape that I have here and there is a couple of things that I want to explain before we start to write code the first thing is going to be that this height our user really has to enter this height so we are going to let our user decide how many of these symbols are going to be on this side and this side and this side as well and the second thing is going to be that our user defines this symbol so which whichever symbol our user wants to use in order to draw this shape we are going to use that symbol that he enters those are two things that we need from our user and then it is up to us to really think and figure out the algorithm that we are going to use in order to draw this triangle shape here so let me explain to you how we are going to do that so we are going to have two four loops and those are going to be nested for Loops so if you’re not familiar with for Loop nesting I’m going to link my video on that here so make sure to watch it so our outer four Loop is the one that is going to control this height of a triangle so in this particular case it is going to have five iterations 1 2 3 4 five and then our inner for Loop is the one that is going to control the width of this triangle and if you really look at this triangle you can notice that our outer for Loop really goes from one up to the number that our user has entered so it has five etration in this particular case because our user has entered five for the length of this triangle so for the length of its sides so that is the behavior of our outer for Loop it goes from one up to five in this particular case and then the behavior of our inner for Loop is going to be the following so in the first iteration of our outer for Loop loop our inner for Loop has only one iteration after that in the second iteration of outer for Loop inner for Loop has two iterations then in the third iteration of outer for Loop inner for Loop has three in a fourth iteration of outer for Loop inner for Loop has four and so on so that means that our inner for Loop goes from one up to the current value of the counter of outer for Loop so let’s translate that into our C++ code let me return this picture here okay so before we start to write that algorithm I am going to create a variable which is going to hold the length that our user enters so I’m going to call that variable length Okay and then let’s write out a message to the user so that he knows that he should enter length like this and let’s store the value in our length variable so that is the first thing that we need from our user and then the second thing is going to be a symbol so that is going to be of type Char like this so I’m going to write out oh see out symbol like this so that our user knows that you should enter symbol as well and let’s store that symbol and our symbol variable so after we have acquired these two things from our user let’s translate the algorithm that I just explained into C++ code so as I said we are going to have two for Loops outer for Loop which is going to have counter that I’m going to call let’s say I and that outer for Loop its counter goes from one up to the value that our user us has entered and it increases by one in each iteration okay so I’m going to say I is equal to 1 and then I is I is less than or equal to length so length that our user has entered and then please increment that I in each iteration so that is going to be outer for Loop and then inner for Loop is going to go from one up to the current value of outer for Loops counter so in the first iteration is going to execute only once so it is going to have only one iteration in the second iteration of outer for Loop it is going to execute twice in the third it is going to execute three times four times five times so how we are going to write that we are going to say four int and then our inner for Loops counter I’m going to call J and J goes from one up to the value of our I so up to the value of outer four Loops counter and it increases by one as well in each iteration and in each iteration it has to write out this symbol that our user has entered so let’s say see out symbol like this okay and then there is one more thing that I want to explain and that is going to be after each iteration of outer for Loop really the next iteration starts in a new line so we are going to write that here here I’m sorry so at the end of our for loop our outer for Loop we are going to say see out end line okay and now if I run this program it asks for length I’m going to say that length is let’s say five and then symbol is going to be star symbol and as you can see it has really written out a triangle that has the length five of these symbols that our user has entered and there is one more thing that I want to do in order to format this shape here to be a bit prettier and that is going to be really to add a function here which is going to assign to each of these symbols that are user enter so that our for Loop writes out uh width of two fields and that is going to be done using a function that is called set W meaning set width and this function here is going to give the space of two fields to the symbol that comes after it and in order to use this function here we have to include its library and that is going to be iio manip Library so I’m going to say include like this IO manip oh okay and now this underline has went away so if I run my program once more and I enter let’s say for length six and then for symbol I enter this this symbol here as you can see our triangle shape looks better now so it has the height or actually the length of six of these symbols that our user has entered and it has also used this symbol here in order to draw this triangle shape and there is one more thing that I want to show you so at the beginning of this video I promis that I’m going to teach you how you can draw triangle shape and then reversed triangle shape as well so there is one very beautiful thing about programming and that is going to be code reusability and about real code reusability you are going to learn when we learn about classes and functions and when I make my videos on functions I’m going to link that video here so make sure to watch it because functions really are one of the most important things that you have to understand not only for C++ programming but for programming in general so make sure to watch that video and let’s say that for now we are only going to really adjust this code here so we are going to modify it a little bit in order to draw this shape here so if you look at these two shapes you can really notice similarities and what are those so this inner for Loop behaves about the same in both of these triangles but there is one key difference and that is going to be that in this triangle shape our outer for Loop Counts from 1 to five and then in this reverse triangle our outer for Loop really counts from five to one so if we modify that we are going to have this reversed triangle so let me move these and then I’m going to really copy this here so I’m going to use contrl C and then control V and then let’s really add a couple of end lines between these two okay like this and then let’s modify this triangle shape that we have just explained and drawn and as you could see on this image here our outer for Loop Counts from five to one which means from the size that our user has entered from one so that means that if we change our outer for Loop we should get that reverse triangle shape so it goes from length like this and it really goes while our I is greater than or equal to 1 and then our I decreases in each iteration so it decrements and now if I run my program it asks me for length let’s say that length is going to be five and then symbol is going to be let’s say this plus symbol and when I pressed enter we have gotten both of these triangle shapes so this one that we have drawn first and then this reverse triangle shape as well I hope that now you have really seeing the real beauty of programming you learn some Basics and then you can use those basics in the most creative ways that you can think of so I hope that you like this video if you did make sure to subscribe to my channel click the Bell icon as well so that you are notified when I publish my next video and a lot more great videos are coming thanks for watching I’m going to see you in my next video bye hi everyone welcome to my channel welcome to the first video of C++ functions if you’re a beginner at C++ make sure to check out my playlist on C++ for beginners and there you can find some of the most important Concepts that you will need to understand and know in order to work with C++ and in this video we are going to talk about C++ functions so functions are one of the most important Concepts that you will need to understand and use in order to be a good programmer and that is not only case in C++ but in most programming languages as well the first thing that I want to explain is what is function function is a block of code that is grouped together and usually that block of code solves a specific problem meaning it performs a specific task and that block of code is executed only when you call that function meaning only when you invoke the function the body of that function is going to be executed and each C++ program contains at least one function and that is going to be main function so this here and the execution of your program starts on the first line of your main function and then it ends when it comes to this last line so this Clos bracket of your main function and also it can end when it comes to return statement but we are going to talk about return statements later in this course so main function is the main one so the first one that is executed and whatever code you put in your main function that code is going to be executed as part of your program so if I say here for example see out and I say hello from main function like this and let’s add a new line like this and now if I run my program you can see that our program has written out hello from Main and that is the first function that our program starts executing besides from main function you can also create your own functions and let’s explain how you can do that so there are a couple of things that you need to know in order to create your own function and that is going to be following so the first thing that you need to really write when you create your own function is going to be return type of your function and that is going to be void for now which means that this function is not going to return anything and we are going to talk about return types more in detail later in this course so for now we are going to use void return type meaning that this function that we declare in this line is not going to to return anything and then you write out the name for your function and let’s call it function like this and then in these parentheses you can put arguments or parameters that your functions that your function really uh receives and for now these parth parentheses are going to be empty meaning that this function does not receive any arguments and then in these curly brackets we are going to put the body of our function so this here is going to be the function that we created ourselves and you have to specify specify the return type of your function after that you write out the name of your function then in these parentheses you can put any arguments that your function receives in this particular case these are empty and we are not going to send any parameters to our function and then here is going to be the body of your function and what we are going to put in this body let’s say see out hello from function like this and let’s also add end line at the end of this function so now we have really created our own function which is called function and if I run my program now what do you think that is going to happen write that in the comments down below so I am going to run this program and as you can see nothing has changed really our program has written out hello from Main as it did before so before we created this function that is because as I explained your function is not going to execute until you call that function so until you invoke it it is not going to execute so in order for our function to be executed we need to invoke that function and how that is done so here in this line after hello from Main we are going to put function and then these parentheses so this here is the invocation of our function and now our function is going to be executed so now if I press this play button you can see that now our console has changed so now we have hello from Main and then also hello from function so that is because we have invoked this function here and you can invoke this function wherever you need it so you can I have invoked it after this line here but you can invoke it as well before this line here if you need to and if you want to so now if I run my program you can see that it first says hello from function and then it says hello from Main because this function has been invoked first and then we have written out this line of code here and that you can see in this console window and let me show you one thing so I’m going to return this after this line of code the invocation of our function I’m going to return here and now I’m going to take this code here so this uh definition of our function and I’m going to paste it after our main function and let’s see what is going to happen now so let me delete these these blank lines and now if I run my program you can see that our program has failed to build so we have compile time errors and in this window here in this error list you can see that it says function identifier not found which means that this function here is really uh our compiler does not understand what this function is because C++ code is executed from top to bottom and when it comes to this line here so when it comes to the invocation of your function it is really not familiar with this function it it does not know what this function is so you have to either put this code before your main function as we did before or you have to do um other thing which is really the recommended way to create your functions and that would be to create definition and Declaration of your function so what are definition and Declaration of function Declaration of function is going to be really this here so I’m going to copy this and put it before our main function and this declaration of function is going to tell to your compiler what is going to be the return type of your function what is the name of your function and then if there are any parameters that your function really receives you are going to put those in these parentheses here so that is going to be Declaration of your function and that part decoration of your function goes before your main function and after that you are going to write the definition of your function and the definition of your function is going to go after your main function and in that way you are going to make your code more readable meaning that when someone else comes to your code and if your code had 200 or three or 400 lines of code then it would be really hard to to read that code and for someone it would be really hard to manage and uh go through your code so he is going to find it much easier if he has all the Declarations of your functions before your main function and then if he needs to read a specific definition of a function he can rightclick the name of that function and click go to definition and then he’s going to be taken to the definition of your function so the specific one that he needs to read so that you don’t bombard um that user with all the functions all the definitions of a fun functions that you have in your program and in this particular situation it is only one function but uh your program is going to consist usually of more than one function and that is really unreadable when you find a lot of definitions of a functions before your main so you can right click on your function and say go to definition or you can press F12 so you can click on your function and then press F12 and you are going to be taken to the definition of your function Okay so so this here is the recommended way to create functions and now if I press play button you can see that our program has executed actually has written out the same as it did before so we have uh really removed that error that we had when we um moved this definition of a function after our main because we have added this declaration of a function before our main function and there is really the most most important thing that I want to mention in this video and that is going to be what is the reason why functions exist okay so we have seen that they make your code a bit more readable so they group the parts of your code together so that you can manage your code easier and the most important characteristic of functions is that they make your code reusable meaning that you can write a specific code once so you can solve a specific problem once put the solution the algorithm the code for that problem in a function and then you can really invoke that function however many times you need it so here I can really copy this and then paste it let’s say three times if I needed it and then if I run my program you can see that this function has been executed three times here and that is really the most important thing about functions which means functions make your code reusable you don’t have to write the same code over and over again and you should really try to group your code in functions so that each function does a specific task nothing more than that and in that way you are going to make your code easier for yourself and for other people as well that are going to read your code so I hope that you understood what functions are and how they are used and we are going to talk about function functions in more detail in my later videos so make sure to subscribe to my channel and click the Bell icon because only then you are going to be notified when I publish my next video and also follow me on my other social media platforms so Instagram and Twitter accounts through code Beauty thanks for watching and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ functions in this video I wanted to talk about function parameters or arguments and the first thing that I want to explain is what are parameters so what are arguments sometimes a function needs to receive a certain value a certain variable and then perform a certain task on that value so on that variable or it really needs the value of that variable in order to perform a certain task so let’s explain how we are going to create a function that receives a parameter in C+ plus so here I’m going to add a function of return type void and I’m going to say that that function is going to be called let’s say um introduce me introduce me like this and then in these parentheses here we can put parameters that our function is going to receive and after that in these curly brackets we are going to put the body of our function so as I said in these parentheses here we are going to put parameters and they are specified in a following way so first you are going to write out the type of your parameter and that is going to be string like this and then we are going to specify the name of our parameter and that is going to be let’s say name so we want to pass in this function that is going to introduce our user we want to really pass the name of our user and then what our function is going to do we are going to put in these curly brackets here and that is going to be really to introduce our user so our function is going to write out C out um let’s say my name is and then let’s write out this name that we have received in this function so I’m going to say name and I’m going to add end line like this okay okay so this is the way to pass a parameter so to pass a value to your function and as I said in my previous video you can really separate this um declaration and definition of a function so you can put really um Declaration of your function here so before your main function and then you can put definition of your function after your main function and if you don’t know how to do that make sure to watch my first video of this playlist okay so now I want to invoke this function here and how we do that well we specify the name of my function so I’m going to say introduce me and then since this this function receives um argument so since this function function receives a parameter here we really have to pass that parameter to our function and that I’m going to put here so here I’m going to pass an argument to my function so I’m going to say Salena like this and this here really is called argument so it is a value that we passed to our function and then here it is called parameter okay so now if I run my program you can see that my function has successfully introduced me so it says my name is Salina like this okay so here we have really here we have really um defined our function so the parameters that our function receives name return type and then uh the block of code that our function is going to execute and then here we have invoked our function and passed an argument which is this string of text here to our function which is going to be received in this name variable and then our function is going to really treat it as a variable which means that it is going to write that value here okay okay and now if I try to invoke this function once more so I’m going to copy this this line and then paste it here and let’s say that I’m going to pass it a different value so I’m going to say for example Anna okay you can see that uh now our function has successfully introduced two users so it has said my name is my name is Salina and then my name is Anna and there is also another thing that I want to explain and that is going to be how you can pass multiple arguments to your function and that is going to be in a following way so here in these parentheses where I have specified my first parameter you can put comma sign and then you specify your second third fourth fifth and um your other parameters so you specify the type which is also going to be string in this particular case and let’s say that my second parameter is going to be called City like this and let’s add another one so let’s say int H like this so now in this function I’m going to write out also where is my user from and also how old my user is so I’m going to write out C out um I am from and then let’s write out this city that we have passed in this function and add also end line and let’s write out also I am I am um age so I am however many years we have passed in this function and then let’s say years old old like this okay so now we have really introduced our user in more detail and we have passed to this function name City and age information for our user but as you can see here our function so our compiler really says that this function is not valid it has too few arguments in a function call meaning that this invocation this call of a function does not really contain all the necessary parameters or all the necessary arguments that we need to pass to our function which means that it really lacks the city and age parameters so here here I’m going to put comma as well and then I’m going to specify my city this here is bolded so it is bold and that means that we have to really pass a city value to our function so I’m going to write out mostar like this and then I am also going to specify age so I’m going to say 25 and let’s do the same for our ni user so I’m going say that our Anna is from New York and let’s say that she has 27 years old for example so now when I run my program you can see that we have successfully introduced two users so my name is Salina I am from mustar I am 25 years old and then also my name is Anna I from New York and I’m 27 years old okay so and we have really written this code only once and then we can reuse it however many times we need to so in this particular case we have reused it two times okay and another thing that I want to explain is going to be a default parameter so what is default parameter sometimes you really don’t want to pass a value to your function meaning that in a specific situation you don’t have that value or you don’t want to pass it and in that case you want to Define define find um theault value for your parameter so in the case where you use where your user does not pass that argument to your function for example you can say that your age parameter here has the default value of zero okay and that means that you don’t really have to pass this age parameter anymore so here I’m going to delete this age for my Anna user and let’s let’s run our program now in order to see how this function is going to behave for this first user and then also to see how it is going to behave for this second user user which did not specify this age parameter so this age argument and when I run it you can see that my first user has been introduced as it was previously so I am 25 years old and then the second user which did not specify age argument it really said I am zero years old meaning that our function has really taken this default value and it has written out I am and then this default value and then years old oh we are missing s here okay so I’m going to add s and I want to do a following thing so in the case where our user does not pass this value for our AG parameter I’m going to really check whether we have that value or we have this default value and then in the case where we have only this default value I don’t want to write this line of code here so I am going to say here if age is not equal to zero meaning that our user has specified some other value which is not zero then and only then we are going to write this line of code but in the case where we have only this default value we do not really want to write out that our user has zero years old cuz that does not make sense okay so as you can see now my first user has been introduced as I am 25 years old and then my name is Anna I from New York since Anna did not specify how old she is we haven’t written out her age here because of this check that we have added okay so that was about default parameter and there is one thing also that I want to um that I want to say about this default parameter and that is going to be really if I delete this is equal to zero and then I try to assign theault value to this city parameter so I say let’s say that city is equal to default like this you can see that the compiler is really underlying this function and it says okay it says theault argument not at end of parameter list meaning that you can specify theault argument only at the end of this list so if you want to specify default value for this parameter you will have to specify default value for this one as well so if I add theault value here so I have added zero then we can really add a default value for this second parameter and then we can add default value for this this one as well and now we are really uh left with so our compiler is not underlying this uh introduce me function name anymore okay and this does not make sense so I’m going to delete it but I wanted to explain that you cannot specify default value for your middle parameter if you did not specify a default value at the end of your parameters list and there is one more thing that I want to show you and that is going to be that you don’t have to hardcore these values as we did here so I’m going to comment these out and then I’m going to let my user Define his own values for these three variables so I am going to declare uh two variables of type string which are going to be name and City and then also I’m going to declare a variable of type int which is going to be called age and then I’m going to say see out so please enter a name like this it’s not capital letter okay and then see in name and then see out City so after my user has entered name I want him to enter City so C in city like this and then also I want to enter age and C in age like this so now after my user has has specified these three variables so name City and age I can pass these three in my introduce me function so I can say introduce me and then pass name and City and age like this and if I run my program now as you can see my program really asks me to enter a name so let’s say that name is going to be Tom for example and then let’s say that city is going to be London and age let’s say 32 okay and now as you can see my function has successfully introduced Tom so it says my name is Tom I am from London and I am 32 years old okay and you don’t really have to use these names for the variables in your main function so the names of these variables here do not have to be the same as these names here here so you can call these for example name one city 1 age 1 but you are going to have to use these names in your main function so you will have to say name one city 1 age one and here as well but these names do not have to be the same as these names here your program is going to work correctly you have to however have the same type here and here so this here has to be string if it has been declared as string here and this one as well and then age also has to be of type int if it has been declared as int here and once more if I run my program you can see that it asks for name so Tom New York and then age is going to be 22 and as you can see my name is Tom I’m from New York I am 22 years old so your program works just fine so I hope that you have understood how parameters behave in a function and how you can pass multiple parameters to your function and also how you can specify a default parameter in your function and if you enjoyed this video If you learned something new make sure to subscribe to my channel click the Bell icon so that you are notified when I publish my next video also like it and share it with your friends and follow me on my other social media so Instagram and Twitter account true code Beauty thanks for watching and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another video of C++ functions in this video I wanted to talk about return statements and return types of a function so what is return type of a function well return type of a function can be any data type that can be used in order to declare variable so it can be int float bull charart double um it can be any user created data type and it can be void as well which means that that function is not going to return anything and as we explained in one of my previous videos function is a block of code it is a code that is grouped together and that code is going to perform a specific task and here I want to make a difference between functions that return value and functions that don’t return value and functions that don’t return value can be for example um an example of a function that does not return value can be a function that writes out a menu to your user so you call that function that function writes out a menu to your user and the job of that function is done there so you are not expecting any value to be returned from that function but an example of a function that returns a value can be a function that performs a specific calculation let’s say on arguments that you pass to that function and after that calculation is performed you are EXP expecting a certain value so result of that calculation to be returned from that function and an important thing is that function can return only one value so only one return statement inside your fun function is going to be executed and I’m going to show that on the example that we are going to do in this video and now I’m going to show you really how functions make your code easier to read easier to understand and how they make your code reusable so we are going to show that on an example which we are going to first make without using a function so we are going to make a program that is going to determine whether a number is prime number or not and we are going to do that first without chosing functions and then I’m going to refactor that program so that it uses functions and then I’m going to show you how that program becomes instantly more readable more understandable and also how that makes your code reusable so as I said we are going to create a program that is going to determine whether our number is prime number or not and the definition of a prime number is a number that is divisible only by itself and by one so if that number is divisible by any other number so not one and not itself but any other number that means that that number is not prime number so the first thing that I’m going to do here is I’m going to declare a variable of type in call it number and then I’m going to let my user enter that number so I’m going to write out the message to my user and then use the C in command in order to get that number and store it in my number variable and then let’s explain the algorithm that we are going to use in order to determine whether that number is prime number or not the definition of a prime number is a number that is divisible only by one and by itself which means that if you can find any other number number besides one and that number itself that you can use to divide it by this number that are user has entered and get the remainder of zero that means that this number is not prime number so how we are going to solve this problem well we are going to iterate through all the numbers between two and this number minus one and then we are going to check whether this number is divisible by that count value so I’m going to write out for INT I is equal to 2 and then I is less than number and in each iteration I want to increase the value of my I counter so why haven’t I used one here and why haven’t I said here that this I is less than or equal to the number because every number can be divided by one so we do not need really to check that and also every number can be divided by itself and we do not need to check that as well so here we are going to iterate through this interval so between two and while I is less than that number that our user has entered and here we are going to check whether this number that our user has entered can be divided by any value of ouri so in any iteration which we are going to go through and in the situation where it can be divided we are going to use a flag which I’m going to declare here and that flag is going to be of type bu and let’s call it is prime flag like this okay and this flag is initially going to be assigned a value of true so we are going to initially say that all the numbers are prime numbers and then we want to prove that wrong for the numbers that are not so we are going to use this flag in a following way here I’m going to check in each iteration if our number that our user has entered can be divided by that current counter so by the current value of I so I’m going to use this modular operation and I’m going to say if this number modulated by I is going to give us the result of zero so when you divide this number by I do you get the remaining of zero and if this operation here results as true we are going to say that our is prime flag is going to be false so we are going to assign the false value to our is prime flag because we have clearly found one number which is not one and that number itself that can be used in order to make this condition true so here I’m going to write out is prime flag and then I’m going to assign it a value of false and and then another thing is going to be really if we find one number so even one number is enough to find that that really fulfills this condition here in order to say that our number is not prime number and in that situation we do not really need to check any more numbers because we have determined that our number is not prime number so here I can use break statement so I can say if you find only one number please do not iterate through this for Loop anymore because we do not need to find any more numbers so in this situation here we have iterated through all the numbers between two and that number that our user has entered we have checked whether that number can be divided by any value of our I counter and if it can be divided meaning that it gives the remainder of zero after that division we are going to set our Prime flag to false and we are going to break from our four Loop and after we have have successfully fulfilled this so after we have successfully iterated through this for Loop or we have fulfilled this condition in one iteration we are going to leave our for Loop and we are going to come to this line of code here and here I want to check what has happened with my is prime flag meaning I want to check whether this is prime flag has has stayed true which means that our for Loop has executed all of its iteration and it has not find any number that can be really used to fulfill this condition here and in that particular situation that flag is going to stay true and that is going to mean that our number is prime number so here I’m going to write out if is prime flag meaning if this value here if this variable here holds the value of true we are going to write out C out like this and we are going to write out prime number like this okay and let’s also add end line here but in a situation where this here does not hold a value of true that means that in uh one iteration so it can be the first one it can be the last one it can be any in between we have really found at least one number that can be used to fulfill this condition and that has set our is prime flag to fals and in that situation we are going to use our else statement and we are going to copy this and we are going to really modify it to say not prime number like this okay so now if I run this program you can see that it asks us to enter a number I’m going to enter a number um let’s say five for example and it says that five is prime number which is correct five is a prime number and let’s run it one more time and let’s say that we want to check six this time and as you can see our program has written out that six is not prime number and six really is not prime number because it is divisible by two and by three besides from one and itself okay so now you have seen how we can really solve this problem and let’s try to refactor this program here in order to use functions so how we are going to do that well the first thing that we need to do is we need to create function and I’m going to do that here and since this part of code here this is the part of code that we are going to move to our function and since this part of part of code here determines really whether our number is prime number or not and then sets this flag to true or false let’s say that we are going to create a function which is going to check as as well whether the number is prime number or not and then it is going to return a value true or false meaning the number is prime number or the number is not prime number and that we are going to write here so here I’m going to put the return type of my function and that is going to be bull so that is the return type of my function and then the name for my function is going to be is prime number like this and then let’s say that we want to pass an argument to that function and that argument is going to be of type int and that argument is going to be really the number that we want to oh the number that we want to check so we are going to pass the number to our function that function is going to in this body here check whether that number is prime number or not and then it is going to return bull value meaning true or false so if the number is prime number it is going to return true and if the number is not prime number it is going to return the value of false and how we are going to do that very simple so you see this code here I’m going to comment this code here and I’m going to really um oh I should have copied it before so I’m going to copy this code here and I’m going to move it to my function okay and we have previously explained this code here so we do not need to explain it again but what I’m going to say here is after this algorithm is done so after we have really uh stored the value of true or false so we have stored the value of false in our is prime flag or we have really kept this True Value inside our S Prime flag what we need to do is we really just need to say return is Prime oh is prime flag like this so after we have checked whether our number is prime or not we can really just return that value from our function okay so we can now after we have moved this code to our function we can delete it from here like this okay and then as you can see we have been left with this is prime flag which is not declared now so identifier is prime flag is undefined meaning that now we have to really declare it and we have to assign it a value so I’m going to say here bow is prime flag like this and then the value that I’m going to assign to my is prime flag variable is going to be whatever value our function returns so here I’m going to say please call my function is prime number oh this prime number like this okay and then pass to that function this argument here so our function expects a value and that is going to be this number that we want to check whether it’s prime or not and then after this function here is done it is going to return a value of either true or false and that value is going to be stored inside our S Prime flag variable okay so now if I run my program you can see that it asks us again to enter a number so so I’m going to say let’s check number nine for example and it says that number nine is not prime number which is not because it is divisible by three and let’s check number um 13 for example and 13 is prime number okay so after we have really used this function in order to perform this particular task I want to show you one more thing and that is going to be how we can refactor this fun function here in order to make it even more simple and if you look at this function here you can say you can see that this is prime flag is set to True here and then in this situation where we find number that can be used to fulfill this condition here we set that is prime flag to false and then we use this break statement in order to break our for Loop so we are not going to iterate anymore through our for Loop when we come to this break statement and then we really go here and then we return that is prime flag but we can do that in a more simple Manner and that is going to be really here so here in a situation where we find number that is really fulfilling this condition here we can say at this very line of code we can say return false like this because this and this code of this code here we can delete and what I can use this return statement because this return statement is going to really break our for Loop and it is going to return the value from our is prime number function meaning it is going to do two things so we do not really need to set the flag and then return the value of that flag at the end but we can really say if you find any number that can fulfill this condition return false immediately so break for Loop and also return the value from our function meaning and the execution of that function because we have found our result and then here as well we do not really need to declare this is prime flag to true and then return it because it is clearly true so we can say here return true and then remove this flag from here like this and then as well I can remove these curly brackets and make my code even more readable so now I want to explain what we have done so here we are passing a number to our s prime number function then we are iterating through all the numbers between two and that number we have skipped one and that number itself because all the numbers are divisible by one and by that by that number itself and then we are checking whether any of these I values between two and number fulfill this condition here that would mean that that number is divisible by that current value of I and that would mean that our number is not prime number so at that very moment we can say please return false because this number is clearly not prime number but in a situation where this for Loop has really iterated through all of its iterations and it has not found any number that fulfills this condition here that means that this return false statement has not been executed and then that in that particular situation this return statement here is going to be executed and this return statement here says return true okay so this part of code here has not changed nor it is going to change and if I run it again you can see it asks me to enter a number I am going to enter number seven then it is going to check whether that number is prime number so it is going to call our function and assign the result of that to our is prime flag variable and I press enter here you can see that we get result prime number because 7 is prime number okay and that is really making your code much more readable and reusable as well so this main function here is much more clean than it was before and now I want to show you the most beautiful thing and that is going to be how we can make this is prime number function reusable so let’s say that I am going to delete all of this code here so I’m going to delete it and now I have I know that I have written out this is prime number function and I know that that I can really invoke this function and use it whenever I need to determine whether some number is prime number or not so let’s say that now we want to check all the prime numbers between 1 and a th000 for example so how we are going to do that well we are going to iterate through all the numbers between one so I is equal to 1 and then I is less than or equal to 1,000 and increase our I in each iteration by one like this and then in each iteration I really am going to just send this I to my function and I’m going to really get the result from this function so this function is going to tell me whether that I is prime number or not so here I’m going to declare a variable of type ball and I’m going to call it is prime and I’m going to assign to that variable a value of is prime number when I pass it the value of I so whatever this function here returns whatever this function here results in I’m going to assign that result to my is prime variable okay and now what I want to write out is all the numbers that I that are prime numbers between one and this thousand value so I’m going to say if is prime like this I’m going to write out C out and then I want to write out the current value of my I counter because that is number that we are talking about so I is prime number number like this okay and I’m going to add a new line at the end so this code here is really going to check all the prime numbers between one and a th and it is going to write out all the prime numbers in that interval and for solving this particular problem so whether the number is prime number or not we have used this is prime number function which we have written once and we have really tested it once we know that it works as it should and now we can really close it we do not need to really think about how we are going to perform this task never again so we have written it we have oh we have tested it and now we have this algorithm stored in our is prime number function and we know that this function Works in a following way so we pass it a value and then this function return returns us true or false variable meaning that the number is prime number or not so once more if I run my program you can see that we have gotten the expected result so we have gotten all the prime numbers between one and a th000 okay and there are a lot of numbers okay so you can check these numbers on your calculator if you want and let’s say now that we really want to check all the numbers between not just one and a th000 but let’s say 1 and 10,000 or 100,000 okay we can call just this is prime number function pass it the value of our I and then check the value that this function has returned and this function has really told us whether the number is prime number or not and if the number is prime number we just want to write that number out to our user so if I run this function again you can see that it is writing out all the prime numbers between 1 and 100,000 and there there is a lot of numbers again so you can even count how many prime numbers there are in this interval so between 1 and 100 ,000 and let’s say that I’m going to leave that part to you so if you want to really uh upgrade this program so that it counts how many prime numbers there are in this interval you can write that code in the comments down below and I’m going to check it and as well you can leave it for other people to see and use if they need it so I hope that you have understood this return type of a function and in this particular situation it was Bull type but you can have as a return type from your function you can have any other data type so you can have float chart int uh string whichever data type you can really uh use in order to create a variable you can use that data type in order to be um return type of your function so in this particular situation I wanted to show you an example of a bit of a more complex function let’s say that is going to determine whether your number is prime number or not and it is going to really receive that number that you want to check as an argument as parameter and then it is going to return only true or false meaning that number is prime number or that number is not prime number and once you have written this code and once you have tested it you do not really need to bother with this function anymore you do not need to remember this code nor read it nor even understand it in order to use this function only in a situation where you have a b bug and that bug is in this particular function only in that situation you are going to need to really reread this function and fix that bug in any other situation you can really just use this is prime number function uh and as well we could have made other functions with other return types we could have created for example a function that is going to um to sum two numbers so you are going to pass to a function two numbers let’s say number a and number B which your user enters and then that function is going to sum those two numbers and it is going to return the result to your main function from where you are going to invoke that function and as well I can leave that to you so you can really practice writing functions on that example for example and you can put the code for that um exercise in the comments down below as well and I’m going to check it and in this particular example as I said I wanted to show you a bit more complex example so that you can really understand why we need functions and why they make our code understandable and reusable and if someone else comes to your code now and he sees that he has um is prime number function he does not really need to open this function and read how this function works it is pretty clear from this this declaration itself that this function receives a number and determines whether that number is prime number or not and returns that true or false back to the invoker back to the function that called that invoked this is primed is prime number okay so I hope that you like this video I hope that you enjoyed watching this video if you did make sure to like it and also subscribe to my channel and follow me on my other social media so Instagram Twitter account at true code Beauty the link is going to be in the description and I’m going to see you in my next video bye hi everyone welcome to my channel welcome to another C++ functions video and in this video I want to talk about concept that is related to functions which is function overloading so I want to First explain what function overloading is it means that you can create multiple functions with the same name but those functions are going to have different parameters so here I have opened my visual studio stud and let’s create a function which is going to be called for example sum and I’m going to put the return type of that function to be int so integer if you’re not familiar with function return types I’m going to link that video here so make sure to watch it so first thing we write the return type of our function and then we write the name of our function and as I said our function is going to be called sum and then I want to pass parameters to this function so I really want to declare which parameters this function is going to receive and those are going to be two parameters the first one is going to be integer and I’m going to call it a and then the second one is also going to be integer and I’m going to call it B like this so this is going to be our first function and let’s also say that we want to create another function which is also going to be called sum but this time it is going to be of return type double like this and then I’m going going to call it sum as I already said and this function is going to receive two parameters as well but those are going to be of type double so I’m going to say double A and then Double B like this okay and as you can see these functions are underlined because it says function definition for sum not found meaning we have declared our functions here but these functions are missing the the definition so definition is missing for this function and and then this function as well and let’s also create one more function so I’m going to say for example float and then I’m also going to call it sum and let’s say that this time I’m going to give it um three parameters so I’m going to say float um let’s say float a and then float B and then float C like this okay and then what I want to do is I want to create definitions for these functions which I’m going to do here here so the first one that I want to Define is going to be this one here so I’m going to copy its declaration and then I’m going to add these curly brackets and here I’m going to put a definition for this function so let’s say that I’m going to create a variable of type int and I’m going to call that variable result like this and I’m going to assign it the result of a + b like this and then what I want to do is return this result from my function fun so here I’m going to say return result like this so this would be one way of returning the result from your function and then another way to do the same thing is going to be to say really return here so instead of creating a variable that is going to hold this result you can really return this result itself from your function so you can say here return A+ B and now we can delete this line and as you can see this function became shorter and more readable so now I want to Define this function here so I’m going to say double okay I should have copied this and then double b as well like this so here I want to put the definition for this function here and this function oh I’m missing the name for my function it is called sum so this is return type this is the name of our function and then these are parameters of our function and here I want to say return a + b as well but this time our a and our B are going to be of type double so in this situation there were integers and then in this situation there are decimal numbers okay and let’s also create a definition for this function here so this float function and this time I’m going to copy it okay and I’m going to add these curly brackets and here I want to write return and then A + B + C like this okay so now how we are going to test this we can call these functions we can invoke these functions here in our main function and the first one that I want to invoke is going to be our in function so I’m going to say C out and then this line of code is going to write out whatever our function returns so I’m going to say please write out whatever my sum function returns and then I want to pass to my sum function two numbers and those two numbers are going to be two integers and as you can see here we have really helped from our Intel ense which says you have three possible functions that you can call so you have overloaded three functions and you can navigate through these using your arrows so the first one is going to be our function that has float return type and that function return that function receives three parameters of type float and then the second one is going to be the one that has return type double and that function receives two double parameters and then the third one is going to be the one that returns integer and that function receives two integer values so here I want to call our integer function and I want to pass to that function four and three for example and let’s also add end line like this and now if I run my program we can expect to see the result of this line of code here and as you can see the result is seven meaning that our function has been invoked and then this line of code has received the result of summing these two numbers and that has been written out in our console and the result of summing four and three is seven Okay so now I’m going to stop this console and I want to test these other two functions so I’m going to say see out and let’s test our some function that receives two double parameters so it is going to be this one here so I’m going to say 4.4 and then 3.3 for example and I’m going to add end line at the end as well okay and now if I run this program you can see that our second line is is 7.7 meaning 4.4 + 3.3 is going to be 7.7 which is correct so we have successfully tested this function here so this double function that returns double and receives also two double parameters and then let’s also test this third function so here I want to say C out sum and then here I want to pass three parameters the first one is going to be let’s say four .4 and then the second one is going to be 3.3 and then oh three decimal points 3.3 and then the third one is going to be 2.2 for example okay now this invocation should invoke this float function so when I run my program as you can see here this third line contains the result of summing these three numbers and you can check this out using a calculator but this is the correct result so as I already explained this represents function overloading and we have created three functions the first one is the one that receives in types and returns in type as well then the second one receives double so two double uh variables two double parameters and returns double as well and then the third one really contains three arguments so three parameter parameters but it has the same name as these previous two and then it returns float type as well and then now when we call when we invoke those functions we can really pass different data types and depending on those data types we are going to call adequate function so in this first line we are going to invoke this and then in this second line we are going to invoke this and then in our third line we are going to invoke this okay so I hope that you understood what function overloading is and also I hope that you have understood that you don’t have to create functions with different names when they are doing uh almost the same thing so these three functions these three are doing the same thing they are summing the numbers that we pass to them only in this particular situation the first one is summing integers the second one is summing decimal point numbers and then this third one really sums three numbers and we have overloaded this sum function and we didn’t have to create functions that are for example sum int and then some double oh double and then some float like this so we didn’t have to name these like some int some double and some float but we can use the same name as long as we have different parameters different number of parameters different return type or something similar in that particular situation our compiler is going to decide on its own which function it should call I hope that you have understood what function overloading is and how you can use that thanks for watching and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and give this video a thumbs up as well now in this video I want to show you how you can build an ATM application and the first thing that I want to do in order to build this application is going to be to plan the functionalities that this application is going to have so I’m going to put a comment here and then here we are going to write all the functionalities that our ATM is going to have so the first one is going to be to check the balance so I’m going to write that so check balance and then another functionality is going to be to deposit money so let’s say deposit like this okay and then what else well we should be able to withdraw money as well so let’s write that okay and I definitely want to show the menu to my user so I’m going to write that as well so I’m going to say say show menu like this okay now after we have written these functionalities that we want to implement the first one that I want to implement is going to be this show menu function so I’m going to put the code for this show menu functionality in a function and let’s create that function here so I’m going to say void it is going to be of void return type let’s call it show menu like this oh like this okay and then what I want to do here is I want to write out the menu to my user so I’m going to say see out and then let’s add these star symbols four 5 6 7 8 9 10 that is going to be enough like this and then I’m going to copy this on the other side so that it looks proportional okay and then the first option that I want to write out my user is going to be uh let’s add first and then check balance so that is going to be the first option that our user can choose and then let’s add couple more of these so the second option is going to be deposit so I’m going to write that like this and then the third option is going to be to with draw so I’m going to copy this here and then paste it here okay and then let’s add these star symbols at the end of our menu like this okay now after we have created this show menu function what I want to do is I want to invoke this function so here I’m going to say um show menu like this okay and if I run my program as you can see we have this menu shown to our user now what should happen next is we should allow our user to choose one of these three options so the next thing that I will do is I will create a variable so let’s create it here let’s say int and that variable is going to store the option that our user chooses so I’m going to call it option like this and then here after I have written out this menu so this menu here to my user I’m going to say see out and then please choose an option or whatever message you want to show so option like this and then I want to accept the value that my user enters in this option variable so I’m going to say C in option like this okay now if I run this program again as you can see it asks for option and if I select any of these three options if I press three for example you can see that my program closes because we haven’t written any code after this line here so what I want to do now is I want to handle these three options and I’m going to handle these three options using a switch case so I’m going to write switch okay and then here I want to put this option variable so that is going to be the value that I want to check so I’m going to say switch option and then in the case that our user has entered option one what I want to do is I want to write out the balance to my user and in order to do that I’m going to create a balance variable because we do not have a balanced variable yet so I’m going to give it a type double like this and call it balance okay and let’s assign it initial value of uh for example 5 100 okay so that is going to be the initial value of our balance um variable so here I’m going to say C out and then let’s say balance is okay and then let’s write out this balance variable and I’m going to add this dollar symbol at the end and I’m going to add end line as well okay so that is going to happen in the case that our user enters value or option one and I’m going to add break at the end of each case so here as well okay now our second case case is going to be when our user enters option two like this so in that second case we should allow our user to deposit money so here I’m going to say see out and then let’s write out um deposit amount so we want to ask our user how how much money he wants to deposit so in order to accept the value that our user enters I’m going to create a variable which I’m going to call deposit amount so let’s create that variable it’s going to be of type double and it is going to be called deposit amount like this and then I’m going to accept the value that our user enters here in my deposit amount variable like this okay and now what I want to do with this deposit amount is I want to add it to my balance so I’m going to say balance is now going to be equal to whatever my balance was previously holding plus this deposit amount like this and then let’s add break at the end as well okay and then our third option our third case is going to be when our user wants to withdraw money so I’m going to copy this case here and then paste it here and here I want to write out a different message to my user so I’m going to say withdraw amount let’s copy this okay and then this variable I’m going to call it withdraw amount like this okay and then here I want to enter that withdraw amount and what I’m going to do with my balance in that situation is going to be I want to subtract that withdraw amount from my balance but I want to subtract that withdraw amount only in a situation where this withdraw amount is equal to or less than this balance so I’m going to say here if withdraw where it is withraw amount is less than or equal to balance like this then I want to give that money to my user else meaning if our user has has requested more money than he has I’m going to write out a message so I’m going to say not enough money like this okay and that is going to happen so this code here is going to happen in the case that our user enters option three which is this one here okay so now if I run my program you can see that it asks option and let’s see that we want this first option so this check balance and it says that balance is 500 and if I press anything else as you can see my program is going to close and that is because we haven’t implemented any Loop that is going to iterate this code here so let’s add that Loop now so here I’m going to say do so do while loop is the one that I want to use and then in inside my do while loop I’m going to put all of this code here so let’s add a curly bracket close curly bracket at the end like this and then I’m going to say please do this block of code here while and then I want to do this code here while the option that my user has ento option that my user has entered is not equal to four four and when my user enters option four we should stop the execution of our program so in order for our user to know that for means exit we are going to write that here in our show menu function so here I’m going to add this fourth option which is going to exit our program like this okay now if I run this code you can see that it says that it has this menu here and then it asks for option so I’m going to enter option one for example okay and this option one says that balance is $500 now let’s enter this second option let’s enter this deposit option so I’m going to press two and as you can see it says please enter deposit amount so let’s say that I want to deposit $700 for example okay now if I check my b balance again so I have entered this option one and then I press enter as you can see it says that my balance is $1,200 and there is one thing that I want to do with this program because I don’t like the way that this looks it is not really readable so I’m going to add um clear screen so clear console command and I’m going to add that here so after my user chooses his option I want to clear the console so I’m going to say system and then let’s add CLS which is a command that is going to clear my console clear my um window so if I run my program again as you can see again we have this menu and then it asks us for the option so let’s say that I want to check my balance it says that my balance is $500 now let’s try to withdraw money let’s say that I want to withdraw money and I want to withdraw $600 for example and then it says not enough money because we had $500 um on our account so now what I want to do is let’s say for example that I want to deposit $100 okay and then I want to withdraw $600 okay and if I check my balance now as you can see balance is zero and in order to test this exit functionality let’s press for and then if I press enter as you can see my application is going to close now another thing that I want to check is going to be what is going to happen if our user enters option that is not valid meaning an option that is not any of these for that we have covered here so if I run my program again as you can see um it asks us to enter options so I’m going to enter option five for example which is not valid and nothing has happened happened if I enter option n nothing has happened again 99 okay now you get the point what is happening here is our program tries to find this adequate option so option five option n whichever one we have selected and since that option does not exist in these cases here our program continues to this while check and then it checks that the option is not equal to four and because our option is five or 9 or 99 which is not equal to 4 then our DU while iterates again and then it writes this show menu again and then it asks us to enter this option again so these three options are the only valid options that you can select and then four means that you are going to exit your program now here we have created this show menu function that has uh check balance deposit withdraw and then this exit option and what I want to suggest to you is how you can upgrade this program on your own so for example you can create two users two accounts and what you can do with those two users is you can Implement transfer option meaning um transfer money from one account to the other account and I’m going to leave that up to you and if some of you decide to write that code make sure to paste it in the comments down below and I’m going to review that code and and some other people may find it useful as well so I hope that you enjoyed this video if you did give it a thumbs up don’t forget to subscribe to my channel and hit that Bell icon as well and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if you’re interested in those please subscribe to my channel and give this video a thumbs up because that helps me a lot to reach more people and spread programming knowledge and in this video I want to talk about generics and templates in C++ so what are generics the idea of generics was born when programmers decided that they want to be able to use the same code but with different data types so the logic is the same but data types are different or if you want another explanation when we talked about functions we said that we can pass parameters to functions and what we said as well is that types of those parameters had to be known beforehand so you had to hardcode types of those parameters whether it is int or Char or float or any other data type that had to be known beforehand but with this idea of generics what we should be able to do is we should be able to pass that type itself to a function so we should be able to determine which type we want that function to operate on and the best way for you to understand and this will be on an example so that is exactly what I will do so let’s say that in my visual studio I want to create a function that will swap the values of two variables and if you don’t have an idea how you can swap values of two variables I have a video where I explained that uh in a very visual way so you can use that video I will link it here so here I will just type very quickly the code for that and if you need explanation again you can watch that video so I will say that that function will be of return type void and I will call it Swap and then what I want to pass this function will be two integer variables so I will say int a and then int int B like this okay but because I want to have both of these variables available in my main function which will invoke my swap function I will have to pass these two variables using a reference and again if you’re not familiar with passing parameters by a reference I will link another video here where I talk about that and I think that I made more than one video on my channel talking about passing variables by a reference to a function so I will put those in the description as well so the code for this swap function will be the following so I will say int temp I will create a temporary variable and to that temporary variable I will assign the value that my variable a is hold holding and then I will assign to my variable a the value that my B is holding like this and then to my B I will assign whatever my temp variable is holding again if you need to understand this in more detail I will put video in the description of this logic here okay so now this function should give us the ability to swap values of two variables and the way to test this function is the following so I will say please create two variables call them A and B like this and to my a variable I will assign the value of five for example and then B will have the value of s so let’s write out values of these two variables let’s say a and then just make a separation and then value of B like this okay so now what I want to do is I want to invoke this swap function I will say Swap and then I will pass my a and then B like this and if I copy this line after the invocation of my swap function we will see if the values had indeed been changed so if I run my program as you can see this line of code here has resulted with this output so 57 and then after invoking our swap function the values inside these two variables so A and B have successfully been swapped so now it is 75 okay excellent so that means that this function does what it should do now what happens if I want to swap values of two Char variables for example what I would have to do is I would have to copy this function paste it here and then I will adjust it to be able to work with Char variables so I will say Char and then I will change this with Char as well and then here I will put Char as well now this swap function should work with char parameters and this is called function overloading if you’re not familiar with function overloading I made that video explaining how it works so I will link it here if you want to watch it and I will put it in the description as well so this function should be able to work with Char parameters now and in order to test this function let’s create two variables of type Char so Char C and then d as well and to my C variable I will assign the value of letter C and then to d i will assign the value of letter D excellent so I will copy this line of code here and I will just adjust it so that now we write out the value of our C variable and then here we write out the value of my D variable like this and then after this line of code here I want to invoke this swap function so I will say Swap and then pass it C and D like this and I want to write out my C and D variables after this line of code here so after I have swapped the values just to check that they successfully have been swapped so if I run my code as you can see we have this out output here so c and d and then after swapping the values inside these two variables we have this output here which means that they have been swapped successfully now um I see a problem with this approach here and the problem is following what happens if I want for example to swap values of two float variables and then two doubles and then two booleans and so on well I would have to create this swap function for each data type and that is repeating code and we shouldn’t really be repeating code unless we really need to and in this particular situation we don’t so there is a simple solution for this problem and that simple solution will be using generics and the idea is to be able to use the same function the same logic but with different data types so again we will be solving this problem using generics and the way that generics are implemented is using templates so how do you make a template in C++ well you use keyword that is template like this and then inside these angled brackets you will put the name of your type so you will say type name and um most common type name that is used is called T but you can use whichever type name you want you can say type as well if you want that should work but I will use T because that is the recommended way so now that I have created a template and I have said I want to create a new type which is called T I will have to use this T in my swap function so now I will change this int with my T so I will say t here and and then T here and I will create T here as well okay now this T is called generic data type and this swap function is now a generic function which means that this swap function can be used on any data type whose variables can be swapped using this logic here so in one invocation it can be swapping integer variables and then in another it can be swapping characters and then in the next one floats and then doubles and booleans and so on on so now that means that we can really remove this swap function because we do not need it because as we said this function here is a generic function and it can be used with different data types so now I will delete this swap function here and if I run this code this code should work as it did before so let’s press this button okay and as you can see 57 and then 75 this function indeed works for integers and then CD and then DC so it works for characters as well and let’s close this okay now what you can do here as well here in the invocation in this 15th line invoking this function for two integer variables what you can do is you can specify the type itself as well so you can say I am invoking this swap function for my integer type so now when this function is invoked it will go here and this T keyword will be changed with this int so it will be int here and then int here and then int here and it will do the swapping this function here will do the swapping for INT data type and then in this 20th line here you can say as well Char if you want you don’t have to that process will happen automatically because you have declared C and D as charart type so those C and D of type chart will be passed here and then Char will be here here and Char will be here and then Char will be here as well so what we have acquired with this template function here is to be able to use the same code with different data types we have just demonstrated how that can be invoked for integer data type and then how we can use it for character and you can do on your own float or double or bull and so on okay and then what you can do as well is you can use any other name for your generic type T is something that is used commonly in literature but you can use type as well if you want so you can say oh you can say type and then you would have to say type here and then type here and here as well okay that should work the same way that it did previously and then another thing that you will find in literature is instead of this type name keyword you can use class um it really depends on you whichever one you want to use you can and again if you know what classes are class is a type as well so it is userdefined type so this should work as well the same way that type name keyword did and if you’re not familiar with classes and objects and objectoriented programming I have course which I will link here so make sure to watch that so I hope that this video helped you understand what are generics and templates and what is the main idea behind them and we will be talking about this of course in my future videos and in more depth so so make sure to subscribe to my channel and hit that Bell icon as well so that you don’t miss a video that I publish and if you like this one please give it a thumbs up that helps me to reach more people and help more people with programming so thank you very much for watching and I am going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and in this video I want talk about recursion and recursive functions in my previous videos we already talked about functions in general so you should be familiar with that and then in this video I want to show you on an example what is recursion and how it works so what is recursion recursion is a process where a function invokes itself and that function that invokes itself is called recursive function that is pretty simple definition so let’s show that on an example and the example that I want to give you today in this video will be the sum all the numbers between M and N which are the numbers that our user defines and the first thing that I want to show is we will solve that problem using Loops which is a solution that you should already be familiar with and if you don’t understand Loops you can find videos on Loops in my C++ for beginers playlist so you can watch that and then after we solve that problem using Loops I want to show you how you can solve that same problem using recursion so if you want to skip directly to the recursion part I’m going to leave the link to that part the time stamp in the description of this video so that you can navigate yourself directly to the recursion part if you want now as I already said the problem that we want to solve in this video is going to be to sum all numbers between number M and N so let’s write the text of our task here I’m going to say sum number first between M and N okay so this is going to be our task and then here as I already said I will first solve this problem using Loops so considering that we have to sum numbers between number M and N I will create two variables so int M and N which are two variables to hold the numbers that our user enters you can do that part I’m going to hard code those values here so let’s say that my number M that my variable M holds value of two and then n holds the value of four for example uh and one thing if you are going to ask your user to enter the numbers for these two variables what you should do is you should make sure that your user enters smaller number in your variable M and then greater number in your variable n and if that is not the case there are a few ways to solve that problem so you can swap the values in those in these two variables if your user enters bigger number here and then smaller one here and if you don’t know how to swap the values into variables I’m going to put a link which contains the explanation for that here and then you can as well just ask your user to enter again and again and again until this number is smaller and then this one is greater uh and as I already said I’m just going to hard code these two values here okay so now that we have our number M and our number n what I’m going to do is I will write a loop which is going to solve this problem here and the easiest way to solve this problem here is going to be using four Loops so I will say four and then I will declare a counter in I and that counter should start at the value of our variable M so I is equal to M and then it should count until it comes to the value of n so while our I is less than or equal to n oh sorry so while our I is less than or equal to n and then in each iteration I’m going to increase the value of my counter by one okay so what I should do in this for Loop here is I will just sum all the values that my counter holds in a specific iteration so I will create a variable here which is going to be of type int and I will call it sum and initial Val for our sum will be zero because zero is neutral when it comes to adding so here I will write sum is equal to whatever our sum was previously holding and then to that I will add the value of my I counter like this so this should be pretty much it to solve this problem and at the end of this for Loop we should have the sum of the numbers between two and four in this variable here so let’s write that out I will say C out out sum is equal to and then write out the value that are sum variable holds and if you are not familiar with this code here you should watch my video related to for Loop and I’m going to link it here or leave it in the description down below so let’s run our program and test this code here okay it says that our sum is equal to 9 so 2 + 3 is 5 + 4 is 9 so that is the correct result so this approach here will solve this problem using loops and this is something that you should already be familiar with and now I’m going to show you how you can solve the same problem using recursive functions so let’s comment this code out because I don’t need it anymore like this and then what I want to do is I want to create a function of return type int and I will call it let’s call it recursive sum like this okay so this recursive sum function will receive two parameters and those two will be integer number M and then integer which is called number n so we will pass these two values to our recursive sum function and what should we do inside this recursive sum function well the same way that we do not want this four Loop to be an infinite Loop we do not want our function to be an infinite recursion so here we specified the condition when our for Loop is going to stop to execute so here when our counter I reaches the value of n that is the point when our for Loop stops running and then here in our recursive sum function we will have to define a base case which is going to break this recursion so as I already said it is called base case and for this recursive sum function our base case will be following so I will say if our m is equal to n in that case what I want to do is I want to return from this recursive sum function value of our M or n so I will say return M it doesn’t really matter which one you return because here we have checked that they are equal okay so this here is our base case something that is going to break our recursion so that we do not end up with an infinite recursion okay and then what I want to do here is I want to do that recursive part so that part where the function is invoking itself and what we should do here is the following so I will say return and here I want to return the value of M so the current value of our M parameter and then I will add to that the following expression so I will invoke again our recursive sum function but this time I will pass to this recursive sum function the value of our m + 1 and then the value of our n variable okay so what this code here is going to do the same way that here we have increased the value of our I counter in each iteration here I’m increasing the value of our M parameter in each recursion so that at a certain point we are going to reach this condition here so our M and RN will be equal and at that point our recursion is going to stop so how is this code here going to behave well let’s write out invocation of this function here and then we are going to go line by line through the execution of this program so that you can understand how this recursion is going to work so let’s say see out sum is equal to and then I will invoke this recursive sum so recursive sum and here I want to pass the value of M and N like this so when we come to this 14th line of code here what is going to happen is we will pass values of two and four to this function here so I will write that my M holds the value of two and then n holds the value of four okay and then we come to this line of code here and we check is our m equal to our n so is 2 equal to 4 the answer to that is no so we do not execute this but we go here and what this line of code here says it says please return from this function the following so return current value of my M which is two and then to that I will add whatever this recursive sum function returns to me if I pass it m + one and N so here I will invoke function again and I’m going to use these parentheses to indicate invocation of a function so here we are invoking recursive sum function again and this time we are passing it values of n + one which is three and then n stays the same because our n is our upper limit so that we can know when we are going to break this recursion so here is the invocation of this function again and then we have entered this function using these two parameters so we go here again and we check again is our m equal to r n so is 3 equal to 4 the answer to that is no so we do not execute this line of code but we go here again and what this line of code here says it says please return current value of M which is in this recursion three and then add to that whatever this recursive sum function returns for these parameters here so here I will invoke recursion again and I will indicate that again with these parentheses so we inv invoke our recursive function again with parameters of n + 1 which is four and then n stays the same so we go here again and we check is 4 equal to 4 and the answer to that question now is yes so now we return the value of RM which is four so here I will say that this recursion Returns the value of four and then we go backwards so here we have all the invocations of this recursive of some function so the result the end result of this recursion is going to be the result of this expression here so let’s calculate what this recursive sum function is going to return finally at the end so this is one recursion and that recursion Returns the value of four so I’m going to delete these parentheses and then the recursion prior to that returned the value of 3 + 4 which is 7 and then if we come out this recursion as well so I will delete these parentheses the result of our recursive sum function will be the result of this expression so 2 + 7 will be equal to 9 so this is going to be the result of our recursive sum function so if I run my program now we should get this nine as the result of executing this recursive Su function so let’s run our program and as you can see some is equal to 9 and if I increase these M and N values so if I say for example please calculate some between 1 and 4 we should get 10 this time so 10 okay and then here if I add number five for example we should get value of 15 right so we get that the result is 15 and what you can do here now of course you can say please calculate some of the numbers between 1 and 551 for example but this is going to be hard to check so if I run my program as you can see we get uh this very very big number okay one very important thing that you must have each time that you work with recursion is the following so every time that you work with recursion you must have this base case here which will stop the recursion from happening again and again and again so this base case here will stop invoking recursive some function at a certain point when a certain condition is reached and unless you have that base case which will stop the recursion you will have that function invoking itself infinitely so infinite number of times and you will get an error so in order to demonstrate that I will remove this base case here so let’s comment it out and if I run my program now as you can see we get un stack Overflow error which means that as I already said this recursive sum function is invoking itself again and again and again infinite number of times and this recursion never stops and in order to stop it you need to have a base case which will stop the recursion so I’m going to close the program now and I will return this code here which is our base case and if I run my program again as you can see we get the expected result and the error has disappeared so that is something very important to remember each time that you use recursion you must have a base case to break that recursion from happening infinite number of times so I hope that you understood what is recursion and how it works and in order to practice on your own I will leave a task for you and the task is following so I want you to do the factorial of a number using recursion calculate factorial of a number using recursion and if you are not familiar with what factorial is or how it is calculated I will leave a video link here where I’m calculating factorial of a number using loops and then what I want you to do is to do that same task using recursive functions and you can paste your code in the comments down below so I hope that this video helped you understand what is recursion and how it works and if it did give it a thumbs up and subscribe to my channel and also you can follow me on my other social media if you want the links are in the description thank you very much for watching I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and give this video a thumbs up as well now in this particular video I want to talk about objectoriented programming so what is objectoriented programming well oop or object-oriented programming allows you to represent real life objects in programming and those real life objects are going to be represented together with their attributes and then their behaviors as well one of the most important concepts of oop are classes and objects so let me explain difference what is a class and then what is an object a class is going to represent a template meaning a blueprint and then an object really represents an example of that class an instance of that class for example a class can be a fruit and then an object of that fruit class can be an apple a banana a peach or another example a class can be a car and then an object of that class can be a Volvo a Ford a BMW and so on and that car class for example has some attributes and then it has some behaviors as well now what are attributes of car class well a car has a name for example that’s an example of a one attribute and then it has a price and Max Speed and color and so on and then behaviors of a car can be drive for example and then break a as well and then change color and so on so here we are going to create an example of a class and then we are going to create an object of that class so the class that I want to create is going to be called YouTube channel so in order to create a class you write class and then you give a name to your class so here I’m going to say YouTube channel like this and then you put these curly brackets and at the end you will have to put a semic column and now here you will put the members of this class now one thing that I haven’t mentioned is that class is user defined data type we have already talked about data types in this course or in C++ for beginners course so if you haven’t watched that make sure to do so I’m going to link it in the description and then here as well so we have talked about basic data types such as integer floating Point number and then Boolean character double string you know but a class is going to be a user defined data type which is going to allow you to represent a real life object in programming and in this particular situation I want to represent a YouTube channel so let’s think of attributes of a YouTube channel what is something that describes a YouTube channel let’s say for example that each YouTube channel has a name so so that is going to be a string variable let’s say string name like this so these attributes are going to be represented with variables so one of the attributes is going to be name and then let’s say another is going to be string owner owner name like this and then let’s think of another attribute let’s say that each YouTube channel has a subscribers count so in subscribers count like this and then let’s as well create a list of published videos so I’m going to say list and let’s call it published video titles so that is going to be type string and it is going to be called published like this now here it says that that this list cannot be used because we haven’t included um it here so here I’m going to say include list and now this should be accessible okay now we don’t have that error anymore and what I want to do here is I want to represent a YouTube channel that has four attributes it has a name then owner name you can use email here or whatever and then it has subscribers count and published video titles now here you can use another class here you can say for example list of videos you can create another class that is called video and then in that video class you can put all the attributes that describe a video so that can be for example a title and then a description number of likes number of comments number of views um the duration of that video the video itself you know but for the Simplicity of this particular exam example I’m going to use just the title of those videos so now after I have created this YouTube channel class what I can do is I can create an object of that class so let’s say here that I’m going to create an object so how you do that you say the type so you put the name of your class which is YouTube channel and then you give a name to that variable let’s call it YouTube channel like this okay now what I want to do is I want to assign values to these properties of my YouTube channel and how do I do that well you say YouTube channel and then you put dot and here is nothing available but it should be these properties should be available when you say YouTube channel dot now why these are not available it is because all the members of your class are by default private and that means that these members because they are private they are going to be accessible only within this class here and in order to make them public in order to make them accessible outside of this class you put Public Access modifier so you say here public okay like this now this public is an access modifier and it is going to make all of these members of your class accessible outside of your class which means that now if I press dot here as you you can see name owner name published video titles and then subscribers count is available for me now so I’m going to say that the name of my YouTube channel is going to be for example code Beauty like this and then owner name let’s copy this a couple more times so owner name is going to be my name so Salina like this and then subscribers count well let’s say this is an integer variable so we don’t need the quotation marks let’s say 1,800 uh people and then these published video titles so let’s add value to my published video titles list so here I want to say that I have published for example um C++ for beginners oh let’s say video one okay and then let’s say HTML and CSS video one okay and let’s add as well this video so let’s say C++ o o video one okay now after I have assigned value to these properties what I can do is I can write out these properties so I can say here for example see out and then let’s say name and let’s write out the name of my YouTube channel like this and I’m going to add an end line and I’m going to copy this couple more times like this so here I want to write out owner name so let’s put YouTube channel. owner name and then here I want to write out a subscribers count so YouTube channel do subscribers count and then published video titles now this property here published video titles is not a simple property meaning this property here is a list and in order to write out a list we are going to use a loop so I’m going to delete this and then here I want to create a loop and let’s say that we will be using for each Loop so I’m going to say four like this and then here I’m going to write out the type of the value that I’m going to use in my list so I’m going to say string because this published video title is of type string and then here I want to give it a name so I’m going to say video title like this and then I’m going to specify the list that I want to iterate and that list is going to be this one here so it is going to be a list of published videos in my YouTube channel object okay and now in these curly brackets I am going to specify the block of code that is going to be executed in each iteration so what I want to do with this video title is I want to write it out so I’m going to say see out and then let’s write out video title and I’m going to add an end line at the end as well and one more thing that I want to write out before this list is going to be just see out videos like this okay and let’s add end line at the end so that it is formatted nicely so now if I run this program as you can see it has written out information about this object that we have created here it says that the name of YouTube channel is code Beauty and then owner name is salinaa subscribers count is equal to 1800 and then the this channel has published three videos so C++ for beginners and then HTML and CSS video one and then C++ objectoriented programming video one okay so uh I have created a class that is called YouTube channel I have uh created four attributes so four properties and made them public which means that these four properties are going to be accessible outside of this class and we have accessed those properties here so we have said uh that we want to assign value to our name property and then owner name sub subscribers count and then we have as well um assigned value to this published video titles list okay and then here we have written out information that is stored inside these properties so that was an example of how you can create a class and then how you can create an object of that class as well and in my next video we are going to be talking about Constructors and class methods because there is a more simple way to do this that we have done here so make sure to check that video out as well so I hope that you enjoyed this video if you did give it a thumbs up and also please subscribe to my channel and click that Bell icon and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos on this channel so if that is something that is of interest to you consider subscribing and give this video a thumbs up as well and in this particular video I want to talk about Constructors and class methods so here I have some code that we have written in a previous tutorial of this course so if you haven’t watched that make sure to check it out I’m going to link it here and in the description as well and let’s explain very quickly this code that we have here so I have created a class called YouTube channel and that class has four public properties so four attribut attributes those are name owner name subscribers count and then a list of published video titles and then here I have created an object of that class I have assigned the value to the to these properties here okay and then here I have written out information about this object that we created and as I said said in this video I want to talk about Constructors and class methods and how am I going to explain these well let me first introduce a problem to this approach here so that you can really understand the need for these two so what happens if I want to create another object of this YouTube channel class how am I going to do that well in this current situation what I would do is I would copy this so I’m going to copy it and then I’m going to paste it here like this and let’s give it a name let’s say that this channel is going to be YouTube channel to and let’s call it let’s say YouTube channel 2. name let’s say that it is going to be called Amy SS for example and um owner is going to be a girl called Amy and then she is going to have let’s say 2,000 subscribers okay and and then the videos that she has published are going to be songs obviously because she has a channel named Amy sings so let’s say that she has published for example um let’s say Johnny B cover like this so that’s one song that’s one video and then let’s say that another video that she has published is going to be for example um Laura Li so that’s a song from scorpions and she has made a cover of that song like this now these two are two of my favorite songs and you can put whatever you want here in this list and I’m also wondering and you can write that in a comments down below what are your favorite songs so please write that in the comments just don’t put links because I think that YouTube has this policy of treating um links as U advertising or spam or something so just write out the name name of your song and then uh the name of a singer I guess and I’m really looking forward to reading your comments so now that I have created this second YouTube channel what I want to do is I want to write out information about this channel but I noticed that I’m missing here uh this YouTube channel to so here I’m going to say YouTube channel 2. ownername and then YouTube channel 2. subscribers count and then YouTube channel to. published video titles as well okay now if I wanted to write out information about this second Channel what I would do is I would copy this so I’m going to copy it and then paste it here and here I will say that the name is Youtube channel 2. name and then owner name is YouTube channel 2. ownername and then here as well and then YouTube channel 2. published video titles okay now if I run this program we should get information about these two channels so the first channel is this one that we already had it’s code Beauty owner is me and then this is subscribers counter and then these are three videos that I published so far I mean I published more than three videos uh but this is just an example and then here is our second channel it’s called Amy sings and then owner is Amy she has 2,000 subscribers and then she has published two covers now this here has a problem if we wanted to create a third a fourth a fifth object we would have to copy this code and then each time that we want to write out information about those channels we would have to copy this code and this really collides with a principle called don’t repeat yourself meaning do not repeat your code if you don’t really have to repeat it and in this particular situation we do not have to repeat it so how we are going to solve this problem well the first thing that I want to talk about are going to be Constructors and what a Constructor is it is a special method that is going to be invoked each time that you create an object of a specific class meaning that method is going to be called on the construction of that object so there are two rules when it comes to Constructors and the first rule is that Constructor has the same name as your class and then the second rule is that Constructor does not have a return type so let’s create a Constructor for this YouTube channel class here I’m going to say YouTube channel like this and then I’m going to put these parentheses and I’m going to put these curly brackets as well now what I want to do in this Constructor is I want to receive two parameters I want to receive two arguments and those are going to be string name and then string string um let’s let’s say owner name okay now these are two parameters that I want to pass to my Constructor and what I’m going to do with these in my Constructor is I’m going to assign these to these properties here so I’m going to say that name is going to be equal to whatever my user has passed to this Constructor so name is equal to this name here and then owner name in my class is going to be equal to this owner name that I have received in my Constructor now since since this Constructor here is invoked each time that I create object each time that it is constructed that means that at the beginning when a channel is created it has zero subscribers so I’m going to put here zero like this we do not even have to pass this value in our Constructor because when you create your YouTube channel you do not have subscribers okay now what am I going to do here is I do not need to write this code like this anymore so I’m going to delete I’m going to actually comment this code here and as you can see this is underlined it says that no default Constructor exists for class YouTube channel now what we have to do is we have to use this Constructor here that I have just created and how you do that well you put parentheses here and then inside these parentheses we are going to pass these two parameters so the first parameter is going to be the name so that is the name of our Channel and that is this name here so code Beauty like this and then a second parameter as you can see here is owner name and that was this value here so I’m going to pass that here like this and now after I have created this YouTube channel we do not need this code um anymore so I’m going to delete it okay and what we can do is we can do the same with this second channel so with this YouTube channel too so I’m going to really comment this code for a moment and then here I want to invoke a Constructor for this YouTube channel class and pass it as first value the name because we are receiving name as our first value in our Constructor like this and then then the second value that we need to pass is going to be owner name so I’m going to copy that as well and now we have successfully created this second YouTube channel okay so now I can delete this code here as well okay and now if I run my program as you can see it has written out information about my two channels the first one is code Beauty owner is me and then I have zero subscribers because I have just created my channel and we have assigned that here and then our second channel is Amy sings uh owner is Amy and she has zero subscribers as well and as you can see both of these videos published videos lists are empty because we haven’t uh really added any videos okay so how do you do that I’m going to delete this from here and then move it here like this so now we have both of our objects being created at the beginning here so what I want to do now is I want to add a couple of videos to this channel here so how do you do that well you say YouTube channel like this and then I’m going to put dot and here in this published video titles list I’m going to invoke a method push back which is going to add at the end of this list another element and that element is going to be of type string because this publish video titles is a list of strings so here I’m going to add a string and I’m going to call that video C++ for beginners like this so that is one video and then let’s add a couple more videos let’s say uh HTML and CSS for beginners and then let’s say um o op for beginners Well no let’s say C+ plus o o like this okay so we have added three videos for this first channel and then this second channel does not have videos yet so if I run my program again you can see that this first channel has three videos and then this check this second channel does not have any videos yet because we have deleted those that we previously had okay now that was the example on how you can create a constru structor and how you can use a Constructor so this here is the Constructor of this YouTube channel class and we have passed two parameters two arguments to this Constructor and then here in our Constructor we have really assigned initial values to these properties here that we have in our YouTube channel and then this here is the way that you use your Constructor so you put these parentheses and then you pass the values that your Constructor has to receive and here we have created two objects and we have done that without repeating code now what is going to happen with this here so this here and then this here is repeating code as well and in order to solve this particular Pro problem we are going to use class methods so class method is going to describe a behavior of a class and since here we are writing out uh the these attributes of our class since we are writing out information about our YouTube channels what I want to do is I want to create a method that is going to be called get info for example so that method is going to be of type void let’s call it get info like this and what I want to do in this particular method is I want to copy this code here so I’m going to cut it and then paste it here and in this particular method in this get info I want to say please write out name and then the name property we don’t need this YouTube channel object anymore because we are in the class itself okay and then here as well I’m going to delete this here and then here and now this code should work so whenever you invoke this get info method on your object it should write out all of these properties of of that object so now I can remove this code here as well so this um information about our second Channel and how am I going to get how am I going to invoke this method well I say the name of my object so for example YouTube channel Dot and then as you can see I have this get info method available here because it is public so I say get info and I invoke it like I would invoke any other function and let’s do the same for our second YouTube channel let’s say YouTube channel to get info like this and now if I run my program as you can see it has written out information about my two channels so code Beauty Sal owner and then subscribers count my videos and then info about my second Channel as well so I hope that you understood the concept behind behind a Constructor of a class and then behind a class method here we have demonstrated how you can create an object using a Constructor and then here as well so you don’t really have to repeat your code each time that you create an object and then here we have invoked a method of these objects which we have implemented here so you do not have to repeat that code as well each time that you need to get information about your object you just invoke this get info method and now our main function looks much cleaner and all the implementations of the construction of our objects and then this get info method are in this YouTube channel class so I hope that you enjoyed this video if you did give it a thumbs up and also subscribe to my channel don’t forget to hit that Bell icon and I’m going to see you in my next video bye hi everyone my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and give this video a thumbs up as well and in this particular video I want to talk about encapsulation here I have code that we have written in the previous videos of this course so if you haven’t watched those make sure to check them out I’m going to link them in the description of this video and I’m going to go over this code very quickly so that you can understand what we have written here so here I have created this YouTube channel class which has four public attributes and those are name owner name subscribers count and then list of published video titles and then here we have a YouTube channel Constructor and then this get info method as well that just writes out information about our YouTube channel and here’s the code of our Constructor okay and then in our main function we have created an object of this YouTube channel class and we have assigned it these two values for our name and our owner name and then we have as well added three videos to this published videos list and here we have written out information about our channel so if I run this code now as you can see this is how it behaves it writes out information about our YouTube channel now now what I want to talk about in this video is encapsulation and what does this principle of encapsulation says well encapsulation says that these properties here should not be public these should be private and then the way to change the value the data that you store inside these properties should be really using methods that you Expose and then you give access to those methods to your user and then using those methods obeying the rules of those methods your user can change the value of these properties okay so let me introduce a problem here so that you can really understand why we need en encapsulation so what happens if I say for example that YouTube channel so this that we have created has let’s say a million subscribers okay this is a million now we have assigned a million subscribers to this YouTube Channel and this should not be allowed if I run this program you can see that this YouTube channel has a million subscribers now but this is not the natural way to gain subscribers for your YouTube channel what you should do instead is you should give your user the ability to invoke subscribe and unsubscribe methods and then using those methods you are going to increase or decrease this subscribers counter so let’s do that let’s first hide these properties from our user so from whoever is going to use this class here so how do you hide these well you make them private so here instead of using public access modifier I’m going to use private access modifier so I’m going to say private oh private like this and then these should stay public so I’m going to put public here like this okay and then as you can see we have a problem here it says that this subscribers count is inaccessible and then this publ this published video titles as well is inaccessible meaning that we cannot access these private members of our class these private members can be accessed only within this class itself so how we are going to give our user the ability to change this subscribers counter well as I said we are going to create methods so let’s create two methods the first one is going to be void void subscribe like this and then what this method should do it should increase this subscribers counter so here I’m going to say subscribers counter like this plus plus using this increment operator we are going to increase the value that we store in this variable by one and then we are going to have as well unsubscribed method so I’m going to copy this paste it here and let’s say unsubscribe and then here I’m going to say that this subscribers count is going to be decremented so now if I I will have to comment this code here and then I’m going to delete this code here and now if I want to increase or decrease subscribers for my Channel what I will have to do is I will have to invoke one of these two methods so let’s say for example YouTube channel do subscribe like this okay and let’s invoke this method um three times for example and now if I run this program as you can see my channel so code Beauty channel has three subscribers and then let’s say for example that I haven’t published videos in a while so people decide to unsubscribe so I’m going to invoke this unsubscribe method like this and if I invoke this get info after that I should have two subscribers well oh as you can see I have two subscribers now because three people have subscribed and then one person has unsubscribed from my channel okay so we have this code here as well that was underlined meaning that it has um compile time error and it says member published video titles is inaccessible meaning that now we cannot access this published video titles list anymore because it is private now so I’m going to expose a method that is going to publish videos for me so here I want to create a method of type void which is going to be called publish video publish video like this and then here I want to add a video to my published video titles like this so I’m going to say published video titles push back and then what I want to do is I want to pass a value here which value well we are going to receive that value as a parameter in our function so here I’m going to add an argument a parameter and that is going to be of type string and let’s call it title like this and now we are going to use this title here so we are going to push this title in our push in our published videos titles okay like this now if I want to invoke this method I’m going to invoke it like this so I’m going to say YouTube channel dot publish video like this and then I’m going to do the same thing here and then here and here as well okay so now we have created these methods that we invoke and then using these methods we change these properties and these properties should be private meaning these should be encapsulated okay and now as you can see we have a channel called code Beauty and then owner is myself and subscribers is two and then these are videos that I have published so far now if you look at this unsubscribe method you will notice that it has a bug what is that bug well let’s delete these three lines of code let’s delete these subscribe method invocations and if I run my program now what is going to happen as you can see it says that my subscribers count is equal to minus one and that does not really make sense so you cannot have minus one subscriber and we are going to fix that problem if we put here inside this unsubscribed method a check so we want to check if our subscribers count is greater than zero and only in that situation if that subscribers count is greater than Z zero only then we can decrease this subscribers count value so if I run my program now as you can see we have invoked this unsub subscribe method but we still have zero subscribers and now we have fixed that bug that we had because if no one has subscribe to our Channel then no one can unsubscribe from it okay so that was a bug that I wanted to fix and then what you can do here because here we have exposed these three methods that really manipulate the values that are stored inside these properties and then these two properties there is no way to change them outside of this class so what you can do for dam for example is you can create a getter and a Setter meaning a method that that is called for example get name and that method is going to return you the value that is stored inside this name variable and then a set method meaning set name method that is going to receive um parameter which is going to be called name for example and inside that set name method you are just going to change the value that is stored inside this name property and then you can do the same for this owner name uh as well so you can create a get and a set method so let’s go over this encapsulation rule one more time so encapsulation rule says that all of these properties should be private meaning they shouldn’t be accessible outside of this class and you do that by making them private so you put this private access modifier here and then how do you change the values that you store inside your properties well you expose a public methods that are going to change the data that you are storing inside your properties and here we have created these three public methods that are going to change the data stored inside our subscribers count uh property and then inside our published video list property here so you can for these two properties again you can create getter and Setter method and if some of you do that please put that code in the comment section and I’m going to review it so if you enjoyed this video give it a thumbs up and don’t forget to subscribe to my channel and hit that Bell icon as well and I’m going to see you in my next video bye hi everyone my name is Salina and I make it and programming related videos on my channel so if that is something that is of interest to you consider subscribing and give this video a thumbs up as well and in this particular video I want to talk about inheritance so here I have my visual studio and here I have some code that we have written in the previous tutorials of this course so if you haven’t watched those make sure to watch them and now I’m going to go very quickly over the code that we have here so I have created a class that is called YouTube channel and that class has four private properties name owner name subscribers count and then published video titles and then we have a couple of public methods as well we have a Constructor which just assigns initializes these variables here and then we have get info method that just writes out information values that are stored inside these properties here and then as well we have subscribed and unsubscribe methods our subscribe method increases our subscribers counter and then our unsubscribe method decreases that subscribers counter but first we have to check if that subscribers count is greater than zero so those would be subscribe and unsubscribe methods and then we have this publish video method as well that just adds a new item adds a new title to this published videos list okay now what is going to happen if I want to create another type of YouTube channel a specific type of YouTube channel which is going to be for example um cooking YouTube channel so I should copy these properties right well that can be one approach but the quicker and better approach is going to be to inherit this YouTube channel class so let’s do that let’s create another type of channel so let’s create another class let’s say class and then let’s call it cooking YouTube channel like this okay now I have created a class that is called cooking YouTube channel and in order to inherit this YouTube channel class what I’m going to do is I’m going to put this column sign and then I’m going to say public you YouTube channel like this and in this way my cooking YouTube channel is going to inherit my YouTube channel and that means that my cooking YouTube channel is going to have everything that my YouTube channel has now this public access modifier means that whatever is public in this class here it is going to be public here as well so in this derived class and one very important thing is is to know that this class is called Base Class so the one that you inherit from that is base class and then the derived class is going to be this one here so the one that inherits from the base class is called derived class and in this particular situation our cooking YouTube channel is derived class now what is going to happen if I want to create for example an object of this cooking YouTube channel so I’m going to say cooking YouTube channel and let’s call it YouTube channel like this okay now as you can see it says that default Constructor of cooking YouTube channel cannot be referenced now that is because we do not have a Constructor for this class here so let’s create one let’s create a Constructor so I’m going to copy this name and then add these parentheses okay and now if I hover over this it says that the Constructor is inaccessible so we still have an error but we have a different error which means that we are making progress so because this Constructor is inaccessible I will have to make it public to make it accessible outside of this class here so I’m going to say public okay and now my uh Constructor is going to be accessible but there is another thing that we have to do and that is going to be inside this Constructor we have to receive properties that we are going to initialize in our Constructor and those are going to be these two properties name and owner name so here I’m going to say that my Constructor receives two properties so string name and then string owner name so the owner of that channel and what I’m going to do when I receive these two properties I’m not going to initialize them here in my Constructor because I’m inheriting from a class that already knows how to construct how to initialize these two particular properties so I’m going to call the Constructor of that class so I’m going to call the Constructor of this YouTube channel class so here I’m going to put this column sign and then I’m going to invoke its Constructor so I’m going to say YouTube channel and then I will pass these two parameters here so I’m going to say name and then owner name like this and now our Base Class our YouTube channel class is going to construct to initialize actually the value of these two properties and as you can see here we have an error that asks us to pass these two values to our Constructor so we are going to pass two parameters the first one is going to be the name of our channel so let’s say that that is going to be for example Amy’s kitchen like this and then owner is going to be um girl named Amy let’s put that here as well okay now after I have created an object of this cooking YouTube channel what I should be able to do is I should be able to access all of these public methods that my base class has so all of these methods from my YouTube channel class should be available for my uh cooking YouTube channel so here I’m going to say YouTube channel Dot and then as you can see these are available so get info publish video subscribe unsubscribe let’s write out info about my channel like this and if I run it now well you you can see that we have Amy’s Amy’s kitchen Channel owner is Amy it has zero subscribers and it has no videos as well so let’s publish a couple of videos for Amy Amy’s kitchen channel so here I’m going to say okay before I this get info function I’m going to say YouTube channel Dot and then let’s say publish video of for example apple pie like this this and then let’s publish another video let’s say for example chocolate cake like this and uh now if I run this program as you can see we have oh we have two videos and let’s as well say that people like these videos so they decide to subscribe to Amy’s kitchen channel so I’m going to say YouTube channel do subscribe so uh for example two people decide to subscribe to her Channel and if I run my program again you can see that now we have two subscribers as well so we have been able to invoke all of these methods that are implemented in our Base Class so here from the object of our derived class so from the object of this derived class class here now this derived class this cooking YouTube channel can have its own members meaning things that are specific for this class only so let’s say for example that we want to create a method that is going to be called uh for example practice so I’m going to say void practice like this and then what this method should do it should just make our user that has this cooking YouTube channel it should say that this user is practicing cooking and then learning new recipes and things like that so I’m going to say see out like this and that let me copy this part of the code because I don’t want to make a typo like this so it says that uh our YouTube Channel’s user is practicing cooking learning new recipes and then experimenting with spices cuz I guess that’s something that you should do if you have a cooking YouTube channel Channel and let me add endline here as well like this so now if I decide to invoke this method this method is going to be available only for objects of this cooking YouTube channel so I’m going to say YouTube channel like this and then let’s say practice like this now um let me very quickly change the name of this YouTube channel object because I want to create another object that is going to be of uh this YouTube channnel type and I want to call that YouTube channel so here I’m going to say um cooking YouTube channel and I’m going to paste that name here and then here and here here as well okay now we have named this object cooking YouTube channel and if I run this program you can see that at the end it says practicing cooking learning new recipes experimenting with spices is now as I already said this practice method should be available only for the objects of this cooking YouTube channel class so that means if I decide to create an object of this class here this Base Class that class is not going to have this practice method and let’s prove that very quickly so here I’m going to create an object of YouTube channel Class Type and let’s call that object YouTube channel that’s why I changed the name name of this object like this and let’s say that that is going to be my channel for example um code Beauty like this and then let’s say that owner is my name Salina so now if I try to access this practice method on my YouTube channel so I press dot you can see that that method is not available for this Base Class it is available only for this cooking YouTube channel class because this practice is very specific method meaning um this code Beauty Channel which is oriented to programming and it does not really benefit from learning uh recipes and experimenting with spices practicing cooking and things like that so this channel should probably have some other way of practicing uh because it is different type of channel so I’m going to delete this code here okay and let’s repeat this one more time so we have created a derived class which is called cooking YouTube channel and we have inherited everything that our YouTube channel class has by saying public and then the name of our Base Class and this public access modifier is going to allow us to have whatever is public here to have that public here as well and then we have created a Constructor for our cooking YouTube channel and in that Constructor we receive two parameters name and owner name and since our Base Class Constructor knows how to initialize those two we have here invoked this Base Class Constructor and then here we have created as well a method that is called practice and that method just says that our user is practicing cooking and he is learning new recipes and experimenting with spices now there’s one more thing that I want to show you and that is going to be to Let’s create another object of this cooking YouTube channel and that is going to be uh let’s say cooking YouTube channel to and let’s call it um John’s kitchen like this and owner is going to be for example John now what is going to happen if I say for example that this second YouTube channel so this cooking YouTube channel to John’s YouTube channel is practicing I’m going to um comment these two because I don’t need them and if I run my program now you can see that it says two times practicing cooking learning new recipes experimenting with spices and then the same line here so you cannot really differentiate between which which one is Amy’s Channel and which one is John’s channel so in order to make that a bit more understandable I’m going to add a property here so here I want to add the name of the owner of this channel so here I’m going to say let me copy this property like this so owner name and then let’s say that that owner is practicing cooking learning new recipes experimenting with spices and so on but as you can see this this property here is not accessible it says that member owner name is inaccessible and why is that the case why is it inaccessible because it is private and if you remember private members can be accessed only within that class and then public members can be accessed from outside of that class but what happens if you want to have for example a certain property to be accessible in in the derived class now there is an access modifier for that as well so that is going to be protected access modifier so I’m going to say here protected like this and then I’m going to move this owner name to my protected area like this so now this owner name property should be accessible in derived classes as well and as you can see the error has disappeared so now if I run my program you can see that it says that Amy is practicing cooking learning new recipes and experimenting with spices and then this second line here says that John is practicing cooking and learning new recipes and experimenting with spices so now we have made a difference we have specify the name of our owner of the channel and we can understand what the code is doing um a bit more I hope that you understood what is inheritance and how it works in C++ and if you did please like this video don’t forget to subscribe to my channel and click that Bell icon as well and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and give this video a thumbs up as well and in this particular video I want to talk about polymorphism now the first thing that I want to do is I want to explain what is polymorphism polymorphism describes the ability of an object for example to have multiple forms now that means that you can have two or more objects that inherit from the same Base Class those objects can have the method that has the same name but different implementation meaning different behavior and I’m going to demonstrate that on an example now here I have some code that we have written in my previous courses so if you haven’t watched those make sure to do so the links to those videos are going to be in the description and I’m very quickly going to go over this code so here I have created a class that is called YouTube channel that class has three private prop properties name subscribers count and then published video titles and then it has one protected property which is owner name now um this private properties these are available only in this class and then these protected properties these are available in derived classes as well and then here we have public methods as well and this here is our Constructor so it just initializes values of um these properties I’m going to collapse death and then here we have get info method with which just writes out information about our YouTube channel and then these subscribe and unsubscribe methods these just increase or decrease the the number of our subscribers let’s collapse that and then publish video method it just um adds another video to this published video titles list so that would be our YouTube channel base class and then here we have cooking YouTube channel which is a specific type of YouTube channel that inherits from this Base Class here and that cooking YouTube channel has its own Constructor which is this one here and here we have just invoked the Constructor of our base class and then here we have implemented a method which is called practice and it says that when you practice and you have a cooking YouTube channel you will have to be practicing uh cooking and then learning new recipes and experimenting with spices now what I want to do is I want to create another derived class so I’m going to copy this okay and then this derived class should be called for example what let’s paste the name here so singer YouTube channel and I’m going to paste the name uh here as well on my Constructor so this is going to be a YouTube channel about singing now as you can see this singer’s YouTube channel has this practice method as well but this implementation is not right for my singer YouTube channel because if you’re a singer you are not going to benefit really from practicing cooking and then from learning re PES and experimenting with spices but what you should do instead is you should practice something else so I’m going to copy that so that I don’t make a typo like this so someone who is trying to make a singer’s YouTube channel is going to take singing classes and then learning new songs and then he should as well be learning how to dance because I believe that singers should know how to dance as well okay so now we have implemented this singer YouTube channel and as you can see as I already demonstrated it has this same method which is practice but this method has different implementation than this one and as you can see here this is the implementation of our practice method on our Cooking Channel and then this here is the implementation on our singer YouTube channel so what I want to do now is is I want to create this singer’s YouTube channel here we already have cooking YouTube channel so it is a video it is a code from one of my previous videos and then what I want to do is I want to create um singer YouTube channel so let’s call it um Singers YouTube channel and let’s say that it is going to be called for example John sings like this and then owner is going to be a guy named John like this okay now after I have created this cooking YouTube channel and then this singer YouTube channel you can probably call it singing YouTube channel or something like that uh this is the best name that I could come up with okay so now what I want to do is I want to invoke methods on these two classes and the methods that I want to invoke are going to be these two so practice and then this practice method as well so here I’m going to say cooking YouTube channel do practice like this and then let’s invoke the same method for my singer YouTube channel like this and now if I run my program as you can see it says that Amy is practicing cooking and then John is taking singing classes and learning new songs and learning how to dance I can imagine that okay now after I have invoked these two methods you can really see oh I have stopped my program I’m sorry so here you can see that this cooking YouTube channel has invoked its own method so this cooking YouTube channel has invoked the method that has been implemented in this cooking YouTube channel class which is this one here and then this invocation so this singer YouTube channel when you invoke practice method on that this method here is going to be invoked so this method that is implemented in singer YouTube channel class now let’s add another thing and that is going to be here in this practice method and then in this practice method as well what I want to do is I want to say that each time that our user practices cooking and then practices singing what is going to happen is the quality of that YouTube channel is going to increase so in order to track that quality content rating I’m going to create a property and that is going to be here in this YouTube channel in this Base Class so I’m going to make that property uh protected protected because I want to have it accessible in my cooking YouTube channel and then in my singer YouTube channel as well so I want that property to I want to access that property from my derived classes and because of that I’m going to make it protected so here I’m going to say int and let’s call it it content quality like this okay and initially I want to set the value of this content quality variable in this Constructor here I want to set it to zero like this because I want to say that when you create your YouTube channel this Constructor here is going to be invoked and you are going to have zero subscribers and you are going to have a zero knowledge about content quality so your rate content quality rate is going to be zero so let’s close that and then what I want to do here in this practice method is I want to say each time that you practice your content quality should increase so let’s increase that variable content where is it content quality Plus+ so I’m going to increment that content quality and then I’m going to do the same here like this now let’s say for example that my um this singer here John he’s going to practice a lot so he has practiced five times more than Amy did so if I run my program now you can see that John is practicing and then again and again and again so he is practicing a lot and Amy is not really so what do I want to do with this content Quality Property well let’s say that I want to implement another method and that method is going to be as well implemented here in this Base Class and that method is going to be called uh check analytics because that check analytics method should be available for all YouTube channels so that is not something that is specific for this cooking YouTube channel only or for this singing YouTube channel so singer YouTube channel but that method should be available for all YouTube channels and because of that I’m going to implement it in this Base Class so let’s say void check analytics like this okay and now what I want to do in this check analytics method is I want to use this property this content Quality Property in a following way so I want to say if content quality is less than five I want to write out a message to my user so I want to say see out and then let’s write out the name of this YouTube channel like this and then let’s add um a message which is going to say let me copy that okay this is going to say that this channel has a bad quality content because this content quality has a rating that’s that is less than five and let’s add in line and then what is going to happen if this content quality is not uh less than five so if it is equal to five or greater than five I’m going to put else block here and what I want to say here okay is that this channel has a good content great content actually okay like this now what am I going to do with this check analytics method well I’m going to try to invoke it here but the way that I want to try to invoke this um this method that we just implemented is going to be in a following way so there is one very interesting thing when it comes to polymorphism and that thing is related to pointers um at this point I haven’t made videos about pointers on my channel but if you’re watching this video sometime in the future sure then those videos are probably available on my channel so make sure to look for them on my channel and then in the description of this video as well so let’s create a pointer and that pointer is going to be a pointer of our Base Class so a pointer of type YouTube channel okay like this and let’s call it YouTube one and what I want to do is I want to assign to this pointer here address of this cooking YouTube channel and you can do that you can assign to a pointer of a base class an address of derived class so I’m going to say here please to this pointer assign address of this cooking YouTube channel class like this and then what I want to do is I want to create another pointer let’s call it YouTube 2 and then to this YouTube 2 pointer I want assign the address of my singer YouTube channel like this so one more time a pointer of Base Class can point to a variable of derived class now what I can do using these pointers is I can invoke method that I have just created which is this one here so check analytics so let’s do that let’s say YouTube channel one and then um let’s invoke this method let’s say check analytics like this and if you just noticed it has changed my DOT to this symbol here because this is used when you want to invoke methods using pointers so I’m going to copy this again for my second YouTube channel like this and now if I run my program as you can see our John has been practicing a lot and then Amy has been practicing only one time so here after I have invoked these two methods this first method says that Amy’s kitchen has bad quality content because she hasn’t been practicing enough and then after this YouTube channel to check analytics you can see that it writes out this message that John sings channel has great content because he has been practicing a lot as you can see here okay so here we have used polymorphism in order to implement this practice method in our cooking YouTube channel and then in our singer YouTube channel so implementation of our singer YouTube channel practice method is here and then for our cooking YouTube channel our practice method looks like this and we have done that uh thanks to the polymorphism so different implement ations but the same method name and then I have demonstrated here how you can use pointers to point to an object of derived class and you can store that in a pointer of Base class and then we have invoked this check analytics methods using these uh pointers of Base class so I hope that you enjoyed this video if you did give it a thumbs up up and don’t forget to subscribe to my channel click the Bell icon as well and I’m going to see you in my next video bye hi everyone welcome to my channel in this video I want to talk about pointers so I will go straight to the point uh pointers are very important Concept in C++ and they have many uses in C++ now pointers are not limited only to C++ they exist in other programming languages as well but in most of those programming languages they are really hidden they work behind the scenes so you cannot see them and you cannot use them yourself but it’s C++ you can use them and you can create your own pointers and they can be pretty powerful if you know how to use them but they can get quite confusing as well if you don’t understand them well so the first thing that I want to explain is what are Pointers so we already have explained the concept of a variable and you should be familiar with that that so we said that a variable is just a container so a container that stores certain value now a pointer is container as well but instead of storing value pointer stores an address so a memory location and let me show you how pointers work in Visual Studio let’s create a variable of type int and I’m going to call it n and assign it a value of five and let’s write out this n like this so nothing new here we are already familiar with this and if I run my program as you can see we get this value of five so that was expected now as I already said this N is a variable and that means that it is a container which is storing certain value now because it is a container that means that it has its address inside memory so it has its physical location so how can we get that location how how can we check which address this n has so in order to do that you use this ENT symbol like this so you put it before your variable name and that should give you the address of that variable so if I run my program now as you can see now we have an address um and this is the address of our n variable so this is its physical address where this value of five is stored and because this is pretty hard for humans to remember this is just a random numbers and characters because of that we use meaningful names and we access these values that we store in our memory using these meaningful names which are our variables so I’m going to close this now and what I want to show you here is I want to show you how can you create a pointer that is going to hold this address of our r n variable so in order to create a pointer you give it a type first so you say int and then in order to indicate that you are creating a pointer you use this star symbol and then you give it a name so let’s call it PTR pointer and I’m going to assign it the address of our n variable so I’m going to copy this and paste it here okay now our pointer is holding the address of our n variable and in order to prove that I’m going to write out the value of my pointer like this so as expected we have this first line here which is writing out the address of our n variable and then this second line of code is this line here and as you can see we have written out the value of our pointer and that is the same address as this one here here which means that our pointer really is storing the address of our n variable now you may ask how can I access or can I access the value that is stored on that address using pointers and the answer to that question is yes you can and in order to do that in order to access the value that is stored on this address that your pointer is holding you have to dreference your pointer so how do you do that well let me copy this so as you already have seen this line of code here is going to write out the address and in order to write out the value on that address you dreference the pointer and in order to do that you add this star symbol before your Pointer’s name so if I run my program now as you can see in this last line of code we have the value of five which is actually the value that is stored on this address here so let me show you one more thing what I want to do is I want to change the value that is stored on this PTR address so on this address that our PTR pointer is storing so how am I going to do that I’m going to say again star symbol and then PTR and this here means please access this memory location so whatever I’m going to assign here is going to be stored on that memory location and what I want to assign is for example value of 10 like this so now if I copy this line of code and then paste it here and if I run my program again we have this value of 10 stored on this address here and one interesting thing as well is that if we try to write out the value that our n holds now like this if I run my program as you can see our n holds the value of 10 as well even though uh we have never said that n has the value of 10 but we have stored the address of our n in our pointer and then we have D referenced our pointer meaning we have changed the value on that address here in this 11th line of code here so that’s why our n holds value of 10 now one very important thing to keep in mind is that your pointer has to be of the same type like the variable that it is pointing to so let’s close this so as I said this integer pointer is pointing to an integer variable so our n is of int type and the same way would be if we created a float pointer it would have to point to a float variable and then chart pointer can point only to a Char variable double bull um and so on so pointer and the variable that that pointer is pointing to have to be of the same type okay so that means that if I try to change the type of this n variable to float for example like this so if I say float immediately we get an error here and the error says a value of type float pointer cannot be used to initialize an entity of type end pointer meaning you cannot assign address of a float type to pointer of int type okay so that is the error that we have here and I’m I’m going to return this to int okay and as you can see that error has disappeared because now our pointer is pointing to the same type so to the variable of the same type that that pointer has so int pointer pointing to an INT variable one thing that beginners very often try to do is the following so they say okay let’s create a pointer so int let’s give it a name ptr2 so pointer like this so I have created a pointer right so let’s dreference this pointer and assign it a value so I’m going to say please D reference PTR 2 and assign it a value of 7 for example now this code here has a problem problem and if I run it if I say build solution actually as you can see it says uninitialized local variable ptr2 used this means that this ptr2 so this pointer to does not have an address so where should it store this value of seven if it does not have an address and the easiest way right now to solve this problem is going to be to create a variable and to give the address of that variable to our ptr2 pointer so I’m going to say int V this variable has to be of the same type as our pointer as we already said and then I’m going to say here our ptr2 is going to hold hold the address of our V variable like this and now we shouldn’t have this problem anymore so if I build my code again as you can see one succeeded so the problem has disappeared and let me write out the value of this V variable so I’m going to say V is equal to and then let’s write out the value of this V and if I run my program as you can see it says that V has the value of seven because we have assigned it here by D referencing our pointer that is holding the address of our V so you may say now okay Salina I understand this but this seems a little bit too much why would I create a pointer just to assign a value to a variable and the answer to that question is you don’t this is not the type of problem for which pointers were created in C++ so this there are different problems that pointers solve in C++ and this here is just a demonstration of what are Pointers and how can you create your own pointers now examples of some of these other problems that pointers solve is you can use pointers in order to pass values by a reference to a function and then you can use them to return multiple values from a function which is an interesting one uh you can use pointers in combination with arrays as well uh you can use them for dynamic memory allocation and then if you’re familiar with oop objectoriented programming you can use a pointer of a base class in order to access a object of derived class and then there is this concept of smart pointers which we are going to cover in the future so I believe as well that I have mentioned some of these things in some of my videos but I plan to make um dedicated series to pointers where we are going to talk only about pointers so stay tuned subscribe to my channel um hit that Bell icon as well so that you are notified when I publish my next video and if you like this one give it a thumbs up thank you for watching and I’m going to see you in my next video where we will be talking about pointers bye hi everyone welcome to my channel in this video I want to talk about void pointers now in the previous video of this playlist I introduced you to pointers in general so I explained what are Pointers and how you can create your own pointers and I said that a pointer is a special variable that can hold an address and I said as well that a pointer can hold only the address of a variable that is of the same type as that pointer which means an integer pointer can hold the address of an integer variable and then a character pointer holds the address of a character variable float pointer of a float variable and so on but there is an exception to that rule and that is a void pointer and a void pointer is a special type of pointer that can hold the address of a variable of any other data type so a void pointer can hold the address of a float variable or an INT variable or a Char bull struct whichever one you pass to that void pointer but a void pointer has a limitation as well and that limitation is that you cannot directly D reference a void point so in order to demonstrate this I’m going to create an example with the knowledge that we already have so using only integer and character and Float pointers that we are already familiar with and then I want to introduce a void pointer in order to solve that problem so that you can see how void pointers are used so let’s jump into our Vis Visual Studio here I want to create a variable um and let’s make it of int data type so I’m going to say int and let’s call it number like this and I’m going to assign it a value of five for example now what I want to do with this number variable is I just want to write it out and because we are working with pointers let’s play with pointers some more so I want to write out this variable using a function that receives a pointer let’s do that so that function is going to be of return type void and let’s call it print number like this and then here this function is going to receive an integer pointer and we are going to call it uh number PTR so number pointer okay now what this function here should do is it it should just print out the value that this number pointer is storing so actually the value that is stored on the address that this number pointer is holding so in order to do that we have to the reference this pointer so I’m going to say star symbol and then put the name of this number pointer and let’s add an end line as well now this function is finished and it is writing out the value that is stored on the address that we passed to it and we have to pass it the address of an integer variable so if I invoke this print number function let’s say print number as I said since it is receiving a pointer we have to pass it an address and that is going to be the address of this number variable so let’s say m perent number so this here is going to give us the address of this number variable okay and now if I run this program as you can see this function here has printed out value of five which is the value of our number okay now what happens if I want to create a k character variable and then print out a character variable as well so let’s do that I’m going to say Char let’s call it letter and let’s assign it a value of letter A okay and now in order to print out this character using this same approach I will have to create another function because this one here receives an integer pointer and in order to print out a character we would have to create a function that receives a character pointer so let’s copy this function here and I’m going to call it print letter like this and then this function is going to receive a character pointer okay and that pointer is going to be called Char PTR and then here I just want to write out the referen value of that Char PTR so let’s invoke this print letter function let’s let’s pass it the address of this letter variable that we have created here and now if I run this program as you can see we have five for this first function and then a for this second function which means that these two functions are doing its job but what happens if I want to print out a floating Point number and then a double and then a Boolean value and a stct value in order to do each one of those I would have to to create a function that receives that specific data type pointer but we can solve that same problem using a void pointer because as we already said a void pointer can point to a variable of any data type so let’s do that let’s create a function that is going to print out any data type so that function is going to be of return type void and let’s give it a name print because it is generic it is going to work with all data types I’m going to give it name of print and as we said that function is going to receive void pointer and let’s call that pointer PTR okay now because this void pointer can point to a variable of any data type we will have to keep track of which data type we have passed inside this void pointer and in order to do that I’m going to use another parameter here and that parameter is going to be of type R and I’m going to call it type so how this type parameter is going to be used well in a situation where we pass an integer pointer to this print function here this type parameter is going to have a value of I in a situation when we pass a character pointer to this void pointer here in this type parameter we are going to pass a value of c and then if we pass a float pointer here here we are going to store an F and then if we pass a double pointer here this type variable should store a letter D so that we can know how we are going to dreference this PTR pointer so the first thing that we have to do is we have to check what this type variable is holding so in order to do that I’m going to use switch case like this you can use if else as well if you want so here I’m going to switch on this type variable like this and what I want to do here is I want to say in the case that this type variable is holding the value of I that means that this here is an integer pointer so here I’m just going to leave a comment for now so I’m going to say handle int pointer like this and then the other situation is going to be in the case that this type variable is holding the value of C that means that here we have passed a character pointer so I’m going to leave another comment as well so here I I’m going to say handle Char pointer okay now let’s explain how we are going to handle this integer pointer and then this character pointer as well well as we already said since a void pointer cannot be dereferenced directly but we first have to cast it into a specific specific data type so into an integer pointer or into a character pointer in this particular situation I’m going to do that so here I’m going to say in the case that our user has passed an integer pointer here I will have to cast this void pointer into an integer pointer first so how do you do that well you say please this pointer here so this PTR cast that into an integer pointer so this expression here is going to cast this void pointer into an integer pointer so in these parentheses here we are going to have an integer pointer and in order to access to the address that an integer pointer is storing and write out the value that is stored on that address we dreference that pointer and for that we use this star symbol so now here we have the value that is stored on this integer pointer and I’m going to write out that value like this and let’s add endline as well so this here writes out the value of an integer pointer so let’s copy that and then paste it here and here what I want to do in this C situation is I want to cast this void pointer into a character pointer so Char pointer and then after I have character pointer here I ID reference that and then this line is going to write out the value of our character okay so now if I invoke this print function I should get the value of this number and then of this letter as well using only this print function so let’s comment these two for now and let’s invoke our print function so I’m going to say print and then the first thing that it receives is going to be DX address and in this particular situation considering that this is a void pointer we can pass it the address of any data type so we can pass it the address of a integer variable or of a character variable or of a floating Point variable and in this situation we have integer variable and then character variable so let’s use these two so let’s pass here the address of our number that oh that is going to be the first parameter and then the second parameter is going to be the type and considering that we have passed the address of an integer let’s pass the value of i as our second parameter here okay and then I’m going to copy this function one more time and this time I want to pass it the address of our letter variable and considering that that is a character here as a second parameter I’m going to pass C now I’ve just not notice that something is missing from our switch case and before I say what it is please write your idea write your answer in the comments down below so what we are missing in these two cases is break at the end so here I’m missing a break like this and then here as well okay so now we have completed our switch case and if I run my program now as you can see for this first line we get the value of five which is our integer so this print function has printed the value of our integer and then in this second line we have printed out the value of a character and we have done that using this print function which receives a void pointer and then it receives a Char uh variable which is called type and we use that Char variable in order to differentiate which data type we are storing inside this void pointer because as I already said a void pointer can point to a variable of any data type but it cannot be de referenced directly so for that we are using this type parameter to check which data type is stored inside this pointer here so now you have an idea on how to use void pointers but I would actually advise you to be very careful when using void pointers why because your compiler in this particular situation does not have a way to tell you hey you are trying to cast a void pointer which is actually an in pointer into a character or vice versa if you’re doing that your compiler in this situation here does not have a way to know if you’re are making an error or not because inside a void pointer you can store the address of any variable so of a variable of any data type and then you can try to cast that void pointer into a pointer of any other data type which means for example in this particular situation here we are passing an integer so this number here is an integer which means that here for this line of code we are receiving an integer pointer okay and then in this case here we are trying to cast that into an integer pointer and that is okay but if we accidentally make a mistake here and we try to cast that into a character pointer for example like this our compiler Now does not have a way to know that we are making a mistake here and if we run our program look at this we get this undefined symbol here which is what is this you know this is not the expected behavior of our program and we did not get a compile time error which means that this here is is completely valid so your compiler is not going to tell you that this here is an error but it actually is a logical error and those type of Errors so logical errors are much harder to find inside programs and this here is a small program and it is kind of easy to find an error in a program that has 20 lines of code but if you had a logical error in a program that has 20,000 L lines of code for example you would have a very very big problem so again I strongly advise you to be very careful when you are using void pointers because as you see compiler is not uh reporting an error for this situation here but but this actually is an error so I’m going to return this to an integer pointer okay so I hope that you enjoyed this video and uh that you learned something new and if you did give it a thumbs up subscribe to my channel and thank you for watching I’m going see you in my next video bye hi everyone welcome to my channel in this video I want to talk about pointers and arrays and if you watched the first video of this playlist you remember that I said that one of the common uses of pointers is using them with arrays so in this video I want to demonstrate how that works so let’s jump straight to our visual studio and let’s create an array of type in and I’m going to call that array lucky numbers like this and let’s say that I have five lucky numbers for example and those are 2 3 5 7 9 oh that’s five numbers already okay so these here are my lucky numbers and now I want to show you one thing so what is going to happen if I say for example see out lucky numbers and let’s add and l so what is going to be written out if I write out just the name of my array let’s check that if I run this program as you can see we get an address but what is this address this address here so the name of our array is actually the address of the first element of that array and in order to prove that let’s write out the address of the first element of this array to check if these two are going to be the same so here I want to write out the address of the first element which is the element with index zero so now if I’m telling the truth these two should be the same so if I run my program as you can see indeed we get the same address which means again the name of the array is the address of the first element of that array now that means that this lucky number’s name behaves as a pointer and these square brackets here are behaving as a operator for D referencing so if I say for example see out lucky numbers of two I’m going to get the element that has index two so this here is going to be the first address and then it is going to add two more addresses to that element and we are going to get the value that is stored there so lucky numers name is the address of the first element it is going to add two more addresses to that so one two so this line of code here is going to give us the value of five let’s add endline and run our program in order to demonstrate that and as you can see indeed we get the value of five now there is another way to do this same thing here and that is going to be the following way so I can say see out please write out this lucky numbers which as we already demonstrated is the address of this first element so I’m going to put that here and then I can use arithmetic operators on this so I can say please add to this lucky numbers two more address spaces and then the reference this so we use star symbol for that and then I’m going to add end line and these two lines of code so this one here and this one here should behave the same so if I run my program now as you can see we get the same value so these two lines of code are doing the same thing which means that this line of code here is using these square brackets in order to the referentie the element with that index which is index 2 and we know that the indexing starts with zero so 0 1 2 and we get the value of five and then this second line of code here uses this star symbol in order to differentiate this expression here and what this expression here says it says lucky numbers which is the address of the first element as we demonstrated here so please use the address of the first element and then add two more address spaces to that so the address of the first element if I add two more to that it’s going to be the address of one two so the address of this one here and then if I dierentiate that I get this value which is stored on that address so these two lines of code are writing out the same thing so let me very quickly show you how you can enter the values for this array and then write them out because here we have hard hardcoded value so I’m going to delete this and um I’m going to comment these two lines of code as well no actually I’m going to comment all of these because we don’t need them anymore but I’m going to leave them for you so that you can um see how these are used in order to deeri um your array so as I said we want to enter values for our array now so in order to do that I’m going to use for Loop so I will say four and then our for Loop starts uh with I equal to Zer because that is the index of our first element and then considering that our array has five elements and the last one has index of four we are going to run our four Loop while I is less than or equal to four and in each iteration we are going to increment the value of our I okay and in order to enter values for our array let’s write out a message so I’m going to say see out number so please enter a number that is going to be the message for our user and then I’m going to input a value from my console into lucky numbers of I so this here means please enter the value into our lucky numbers array to element that has the same index that our I holds in that iteration so in the first iteration index zero in the second iteration index one and then in the third iteration index two and so on so this for Loop here is going to help us to enter the values into our lucky numbers array and in order to show that I’m going to put here a break point and that means that our program is going to stop its execution when it comes to this line here so if I run my program as you can see it asks me to enter number so I’m going to say 2 5 7 9 and 13 so those were five numbers that we had to enter for our lucky numbers array and if I press enter one more time as you can see our program has been stopped in this line of code here and if I hover over my lucky numbers here we have values that we have entered for our array so value of 2 5 7 9 and 13 which are the values that we have entered here so I’m going to stop my program now please stop okay and now what I want to do is I want to use this other approach to write out the numbers that this lucky numbers array is holding so let’s use another for Loop I’m going to copy this one okay and then what this second for Loop is going to do it is just going to write out these numbers but but okay let’s use this approach for now so I’m going to just change this to see out and then use these other redirection signs and after each number I’m going to add an empty space okay like this and instead of using this approach here so instead of uh using these square brackets in order to deeri uh the element on that position let’s use this approach here so I’m going to say please use lucky numbers so which is the address of the first element and then to that I want to add the value of my I so plus I like this and this is going to move okay so this expression here is going to help us to access all of the elements of this lucky numbers array so from the one that has index zero until we come to the one that has index for and because we don’t want to write out addresses because this here is going to give us the address but we want to write out the values that are stored on those addresses we will have to dreference this expression here so for that I will use star symbol and I’m going to remove this breakpoint now and I’m going to start my program to see what is going to happen Okay and let’s enter 2 3 5 7 9 19 and as you can see we get values of 2 3 5 7 and 19 which we have entered okay let’s stop this program now and there is one more thing that I want to show you what is going to happen if I change this max value from four to five like this so what is going to happen in this particular situation let’s run our program and enter numbers again so 2 5 7 13 15 okay as you can see now here we have these five numbers that we have entered so 2 5 7 13 15 those are the ones here and then the last one is something that we do not recognize what is this this is some junk number that we definitely have not entered here so this number here is something that does not belong to our lucky numbers array and here we have accessed someone else’s memory base so we have this result because we changed max value from four to 5 here and as we already know our lucky numbers has five elements the last one having the index of four which is this one here and then here we added one more iteration so now we are trying to access the element with index five and that element with index 5 does not belong or does not exist in our lucky numbers array so so this element here this is memory location that belongs to someone else and we accessed that trying to deeri the pointer to the element that is Sixth Element so we have five elements in our lucky numbers array and then if we add one more address space to that we get this here which is memory location that belongs to someone else and if we just randomly change and access memory locations that do not belong to us we can cause very very big problems so I advise you to be very careful when iterating through your arrays and to access only memory locations that belong to that array that you are iterating so in the case that your array has five elements that those are going to be from zero to four so indexes from 0 to four in the case that your array has 10 elements for example those are going to be indexes 0 to 9 and so on so again be very very careful to not access memory locations that do not belong to you so I hope that now you have an idea on how pointers and arrays go together and as well we have seen some of the potential problems that can happen if you are not careful enough when working with pointers and arrays so again I advise you to be very careful uh when working with pointers and arrays and and not access memory locations memory addresses that do not belong to you so thank you for watching this video If you enjoyed it if you learned something new give it a thumbs up and subscribe to my channel hit that Bell icon as well you can follow me on my other social media if you want links for those are going to be in the description of this video thank you for watching and I’m going to see you in my next video bye hi everyone welcome to my channel in this video I want to explain how you can use pointers in order to return multiple values from a function so I said in the first video of this playlist that using pointers to return multiple values from a function is a very common use for pointers so in this video I want to demonstrate how that works so here we are going to create an array of numbers and then first I want to create two functions and one of those two is going to return me the smallest number in that array and then the other one is going to return me the largest number in that array and then in the second part of this video I want to show you how you can use pointers in order to get both smallest and largest number using one function only so you can return both of these numbers so Min number and Max number using only one function and that is going to be with the help of pointers so let’s start with this example as I already said uh I’m going to create an array of numbers so um those are going to be numbers of type int and let’s call this array numbers like this and it is going to be array of five numbers and let’s assign him values of for example 5 4 um – 2 29 and 6 for example so those are going to be my numbers okay and now let’s create a function that is going to return the smallest number of this array so I’m going to create that function here and let’s give it the return type of int and I’m going to call it get min like this and what I will need to pass to this function is going to be array so this array here so I’m going to say int numbers array so this is going to be the first argument and then the second one is going to be the size of this array so I’m going to say in size and we will use this second parameter here so that we know how many iterations we have to make in order to go through all of the elements of this array so let’s define this function the first thing that I want to do is I want to create a variable of type int and that variable is going to be called min so this is going to be the variable that is going to hold the minimal value so the smallest number in this array and initially I want to assign to this variable the first element of this array so I’m going to say that the smallest element initially is going to be the first one so I’m going to say numbers of zero and then we are going to iterate through all of the other elements and each time that we find an element that is smaller than the current value of our min we are going to store that value in our Min so let’s do that so I’m going to say four and since we have already stored the value of our first element in our Min we do not need to iterate through that so I’m going to say that my int initially has the value of one okay oh int I is equal to one like this and then our for Loop is going to iterate while our I is less than the size of this array so in this particular situation while our I is less than five and in each iteration we want to increment our I like this so as I already said if we find a number on a specific position which is in this current situation uh the position with the index of I if we determine that that number is smaller than our Min number like this we are going to store that number in our Min variable so I’m going to say Min is equal to numbers of I so that at the end of this for Loop in our Min variable is going to be the smallest number of this array so at the end of this for Loop here we can return our Min like this okay so now in order to test this function here I’m going to invoke it let’s say get actually I’m going to write it out I’m going to say C out Min is like this and then let’s invoke it let’s say get min like this and this get min function receives array so let’s pass it numbers array and then it receives the size of this array and this array has 1 2 3 4 five elements and you can check that here as well so we are going to pass Five here okay and if I run this program as you can see it says Min is minus 2 which really is the smallest number in our array so that is going to be the first function and then the second function that I want to create is going to be the one that is going to return the largest number in our array so let’s copy this function I’m going to copy it and then just modify it a little bit so the name of that other function is going to be get Max like this and then that function as well will receive numbers array and the size but here we are going to have variable which is called Max instead of Min and again we will assign it the value of our first element so then we iterate through all of these elements so starting with the second element because first the value of the first one we already have inside this variable so we do not need to check that but if we find in these remaining elements if we find element that is larger so bigger than our Max let’s copy this here we are going to store the value of that element in our Max variable like this and then at the end we will return our Max variable okay so now in order to test this function I will invoke it as we did with this previous one I’m I will just say Max is and then invoke get Max like this and I’m going to add two end lines here so that we have output which is formatted nicely and if I run my program now as you can see it says Min is minus 2 and then Max is 29 which is correct so let’s explain one more time the algorithm that we are using here in order to determine the biggest number of our array so here in this first line I say that the biggest number is the one with the index zero so the first one and then here we iterate through all of the remaining elements and that is from the one with index one until the last one and if we find that any of those remaining numbers is greater than our Max number then we say that our Max number is equal to that number so at the end of this for Loop we will have in our Max variable the largest number of this array here okay and we have accomplished to get our Min number and then our Max number using these two functions oh I’m sorry so using this get min and then get Max function as well so now what I want to show you is how you can use one function only to get both Min and Max number so let’s do that let’s create a function which we will name void get min and Max like this and this function is going to receive like these two previous functions our numbers array and the size of the array and then considering that we want to return two values from our function we will have to pass those two values by a reference which means we will have to pass the addresses of the two values and then this function here is going to change the value that is stored on those two addresses and this function here our main function is going to have the access to those two addresses as well so once this function here assigns the value of Min and Max numbers to those two addresses our main function is going to be able to access those values so as I said let’s pass to this function as well int Min like this and then int Max so we are receiving here pointer to A Min number and then pointer to a Max number okay so the job of this function will be very similar to the jobs of the two functions that we just created so I will just copy this and then paste it here and once more we are iterating through all of the numbers of our numbers array and then here we say if you find any number which is greater than our Max number and here we have an error which says operand types are incompatible so int and int pointer which means that here we have to D reference this pointer using the star symbol so if you find any number which is greater than our current Max please store that number inside our Max like this and then I’m going to copy this code one more time for our M number so I will say if you find any number which is smaller than our Min number like this Please assign that number to my Min number like this so this is going to be the work that this function will do and considering that this function is receiving these two so Min and Max as pointers this means that this function is directly going to modify the values that are stored on these addresses and those same addresses are going to be available in our main function which means that once this function changes the value vales that are stored on our Max and our Min address this main function here will be able to access those changed values and using pointers in that way we have achieved to return multiple values from our function so let’s invoke this get min and Max in order to test what I just said so I’m going to comment these two lines of code because we do not need them anymore and because here we have to pass Min and Max we will have to create those two variables here as well so I will say int Min and as we did before I’m going to assign to this Min the value of my first element like this okay and then I will create Max variable as well and assign to my Max variable value of my first element as well and now let’s invoke this get min and Max function so let’s say get min and Max and let’s pass it parameters that it needs so the first one is numbers array so I will say numbers and then second parameter is size of that array so five and then it expects to receive two pointers so Min and Max and we will have to pass addresses of our Min and then address of our Max as well like this and this here is called passing a parameter using a reference so that means pass an address of a variable to your function rather than passing variable itself because then if you don’t pass an address your function is going to create a copy and whatever changes your function makes with that copy you will not be able to see those changes in your main function so in this way we are passing addresses which means that this function here is operating on the original addresses which this function here is accessing as well so when this function here changes the values that are stored on those addresses this function here will know so that means that now if I try to write out oh I will need to add semic colum here at the end okay so that means now if we try to write out our Min like this Min is and then Min and then if we try to write out our Max as well Max we will get um values of Min -2 and 29 at least we expect to get those two values if this function is working correctly so if I run my program as you can see we really have values of min-2 let me just um collapse this so we really have values of Min -2 and 29 as the smallest and largest number in our array and we have achieved that using this pass by a reference so by passing addresses of our variables to our function which our function then changes the values that are stored on those addresses and since this main function as well has the access to those same addresses that means that our main function can see the changes that have been made on those addresses so I hope that now you have an idea how to return multiple values from a function using pointers so if you enjoyed this video If you learned something new give it a thumbs up and also subscribe to my channel and I will be publishing more videos related to pointers in the future so if you don’t want to miss out on those press Bell icon as well thank you for watching and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Salina and I make it and programming related videos so if that is something that is of interest to you consider subscribing to my channel and give this video a thumbs up as well and in this video I want to talk about Dynamic arrays so you should already be familiar with the idea of arrays and the concept of fixed arrays from my previous videos but for those of you that really want to understand the need for dynamic arrays I will go through some of the advantages and disadvantages of fixed arrays so that you can really understand where the need for dynamic arrays arised so we said that an array is type of collection which stores elements in continuous memory now that means that it stores elements one after the other so if I do this for example if I say let’s create an integer array of five elements and let’s call that array my array like this your computer in the background will do the following it will give to this array here five containers of type int and those containers will be one after the other in memory so that means because the array stores data in a continuous memory so one after the other accessing that data will be very very fast so because the name of the array is the address of the first element of that array when you specify the name of the array and then you give it the index of the element that you want to access it is going to be very fast to move from that first element until that position that you specified so until the element that has that index whereas if you use some other collection type like linked list for example which stores data in non-continuous memory which means in a random places in memory and then each element contains a pointer to the previous one and to the next one accessing elements in those type of collections would be much slower so if you wanted to access Fifth Element of linked list you would have to Traverse the first four elements and then get to the fifth one because they are stored in noncontinuous memory meaning they are randomly in your memory so as I already said accessing elements of an array is a very very fast operation but because your array stores data in continuous memory this has certain disadvantages as well so what happens if you want to insert or delete an element in the middle of the array for example so how can you insert or delete an element in the middle of the array without breaking that continuousness if I can say it like that so you get the point that means that the operation of inserting and deleting elements in an array is going to be much slower than inserting elements in a linked list for example and if you want me to do a video which is related to differences between linked lists and arrays for example write it in the comments down below and I will make it in the future when I find time so again if you are not familiar with the basics of arrays I recommend you to watch my first video which is related to arrays and pointers which I will link here and then you come back to this one so those were some advantages and disadvantages of arrays and it will be up to you to decide which collection you want to use however here I want to give you the biggest disadvantage or the biggest obstacle that we encountered so far when working with arrays and that is the following so the size of the array had to be constant which means that the size size of the array had to be known before we even started our program so we always kind of wanted to do this so we wanted to say int size and then we wanted to ask our user to enter the size so please enter the size for the array and then after our user enters the size for the array we wanted to create the array that is of that size that our user specified however we get the error as you can see here it says expression must have a constant value which confirms what I just said which is that the size of the array had to be known at compile time so the size of the array could not be changed once we declar it it and we had to declare it before we even started our program so this problem was without solution so far but surprise surprise if you know how to work with Dynamic arrays and dynamic memory you can very easily create an array and runtime so in C++ there are two keywords or two commands which allow you to allocate and deallocate dynamic memory which means to get yourself dynamic memory when you need it and then free that memory once you don’t so that it can be reused that is what allocate and deallocate means and those two commands are new and delete so new allocates memory as you may guess and then delete deallocates that memory or freeze it once you don’t need it so let’s see how we can use this information that I just gave you on our example so instead of doing this here I will comment it because we do not need it instead of doing this what I will do is I will create a pointer like this and let’s call that pointer my array and what I want to assign to this pointer will be the following I will say please make this pointer point to new integer array and the size of that array will be this size that our user entered like this okay and as you can see our compiler is fine with this expression here we do not have an error so this new keyword has allocated an array of this size that our user has specified and that array aray the address of the first element of that array is stored in this my array pointer so if I build this code as you can see we do not have compile time errors so what I want to show you now is how we can enter elements for this array and then how we can write them out and this is array again this is array which is created at runtime so our user will specify the size of this array which is something that we were not able to do before we learned how to use Dynamic arrays so uh in order to enter elements for this array here as we already know we will be using four Loops so I will say four please iterate from the element which has index zero until you come to the element that has the index of this size okay and then in each iteration increase our count counter by one and what I want to do is I want to write out a message for my user so I will say array and then let’s add index of the current element index that our user is entering so I like this okay and then what I want to do is I just want to enter an element on that position that we are current Curr it rating so I will say my array of I like this so using this code here we should be able to enter elements in this array here and then in order to write these elements out what I will do is I will use another for Loop so I will just copy this one and then paste it here and in this particular situation I just want to write out so I will use C out command and and then these other red Direction signs so I just want to write out all the elements of the array and I will add a few empty spaces after each element so that we have a nicely formatted output so this Loop here should write out the elements of our array and if I start this program now as you can see it asks us to enter the size of the array so let’s say five for example and now we are we are entering ele with index zero so let’s say 2 5 7 9 and let’s say 11 okay and as you can see here we have the elements of our array written out and we wouldn’t be able to do this if we didn’t know how to work with Dynamic arrays so let’s stop this program and there is one more thing that I want to mention and that is following these square brackets here are only one way to dreference your array another way to dreference the array or to to access the element on a specific position is the following so so the other way to access the element on a specific position would be using this asteris symbol and then here you say my array plus I now because the name of the array is the address of the first element here you have the address of the first element and then when you add a certain number to that it will move that many spaces in memory and then access the element on that position and when you dreference that you will get the value of that element instead of its address so here is one way to dreference your array and then here is another way to dreference your array and you can use whichever one you prefer and if I run this program again just to demonstrate that it works the same let’s say three and then one 5 10 okay we get 15 10 as the elements of our array one very important thing that I mentioned at the beginning is that we have two commands for working with dynamic memory and one of those two commands is new so we said that new is a command which will allocate memory for us when we need it and then another one is going to be delete and delete is a command which will de allocate that memory when we do not need it so that it can be reused Now using dynamic memory comes with a responsibility and that responsibility is the following each time that you allocate memory when you need it you will have to deallocate that memory once you don’t so that that memory can be reused so that means that each time that you write new command you will have to write delete command once you don’t need that memory anymore so I will demonstrate how can you deallocate the memory that we have allocated for this my array so let’s say that here in this line of code we do not need our array anymore so how can I deallocate the memory that I allocated for this array well using delete keyword and I will say please delete the memory that I allocated for my array which is called my AR array like this and you have to specify these square brackets because that is the way that you allocated memory so here you said I want new array and then here you have to say please delete that array and a good practice is to do the following as well so you can say my array is equal to null like this and let me collapse this so this here is going to assign the value of null to your array so your array will not point to anything to any address at this line of code so why do we do this because in the previous line of code we have deallocated this array here and now in this line of code here your array will point to a location in memory which does not belong to you so it does not belong to your program and because of that because we do not want to cause some accidental crashes or problems in our program by having this array pointing to memory locations which are not ours anymore it is a good practice to say that our array is now equal to null which means that it is not pointing to anything so as I already said and I repeat again when you use dynamic memory each time that you write new you will have to write the lead that corresponds to that new so here I have allocated an array and here I am deallocating that array so I hope that this video was helpful and that this video helped you understand what are Dynamic arrays and how they work and now that I have explained this it opened the whole world of new possibilities and new things that you can do with Dynamic arrays and I will leave to you to play and discover those new things until my next video of course so thank you for watching this video give it a thumbs up if you liked it subscribe to my channel click the Bell icon as well and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Alina and I make it and programming related videos so if you’re interested in those please subscribe to my channel and give this video a thumbs up and in this video I want to talk about a topic that confuses many students and that is the topic of multi-dimensional dynamic arrays and the topics like this one are the reason why many people step away from learning C+ Plus+ and they believe that learning C++ is hard but what I think is that many of those people never actually had the opportunity to have this explained in a very simple way so that is what I will try to do in this video so with the help of excel I will try to draw what are multi-dimensional Dynamic arrays and how they work and I hope that at the end of this video you will have it pretty clear and you will be able to create and work with your own multi-dimension Dynamic arrays so what a multi-dimensional array is in simple words it is array of arrays and in this video you will learn how to create two dimensional Dynamic arrays and in order to be able to understand this topic you should be familiar with the topic of dynamic arrays which is a video that I already did on my channel and I will link it here so make sure to watch that video before watching this one so I will very quickly remind us all of how Dynamic arrays work and then we will see how we can use that knowledge to understand multi-dimensional Dynamic arrays so let’s create a visual representation of a dynamic array in our Excel sheet so let’s say that it will be array of four elements like this this is our array and the indexes of these elements start with zero and then 1 2 3 so these are the indexes and then the address of this first element will be for example 000000 AA like this and this address here it is the address of the first element but it is the address of the array itself as well and you should be familiar with that so this here is our dynamic memory and then on our stack which will be here let’s create our stack so this here will be our static memory here we will have to create a pointer variable which will hold the address to this element here or actually the address to the array itself so I will create a variable let’s call it PTR 1 so this is going going to be our pointer one and as we already said that pointer will hold the address of the first element of this array let’s copy that address like this and then we will store that address in our PTR 1 now if we wanted to create more array way by the knowledge that we have so far we would have to copy this and then let’s paste it here and let’s create one more array like this so now we have three Dynamic arrays and the first element of the first array has the address of 0 0000 AA and then this one here let’s say that it has the address of BB for example and then this one here has the address of 0000 CC and to be able to access these arrays we would have to create on our stack two more pointers so let’s do that okay so our pointer 2 will hold the address of the second array which is 0000 BB and then our pointer Tre would hold the address of our third array which is 0000 CC like this now with this we have created three Dynamic arrays and in order to create those three Dynamic arrays we had to create three pointers so those are these three here and this is something that you should already be familiar with so you should already know from my previous video how to create a dynamic array now one thing that I see here and that is a problem is that if we wanted to create four or five or 100 of these Dynamic arrays we would have to create that number of pointers on our stack which means that this part here is not Dynamic only this part here is dynamic because here our user determines how many elements this Dynamic array will have but for each of these Dynamic arrays we have to manually create a pointer on our stack which will hold the address of that array okay now what happens if I want to move this part here to our dynamic memory as well so let’s do that let me cut it from here and then I will paste it here for example so now I have moved this part to dynamic memory as well and as you can see here this kind of looks like an array as well so that means that this first element if we look at this as an array the first element will have index of zero and then second will have index of one and then third will have oh this won’t move third will have index of two okay so this is an array that has three elements and the first element for example has the address of 00 0 e e e e like this so now this part here is dynamic and then this part here is dynamic and in order to be able to access this array here what we have to do is on our stack which is this part here we will have to create a pointer which will hold the address of this first element so let’s do that let me just okay now as I already said on our stack we will have to create a pointer which will hold the address of this first element so let’s call that pointer table for example and this table will hold the address of this element here which is 0 0 e e e e and this table because it holds the address it should be a pointer but one thing to keep in mind is that this variable here is not a simple variable but this here is a pointer as well which means that this table will not be a simple pointer but it will be a pointer to a pointer and you indicate that using two ASX symbols because one is just a pointer and then two mean a pointer to a pointer why because this table holds the address of the element which is this one here and that element is pointer as well okay now if we look at this here as you can see we have one array that represents the number of rows that our table will have okay so one 2 3 and then for each one of the elements of this array here we create a separate Dynamic array like this so this here will be our table that has the number of rows that are user defines and then however many columns are user defines as well and in this particular situation it is a table that has three rows so these are three rows and then four columns so let’s now translate this to our C++ code and because we said that now our user defines how many rows this table will have and then how many columns as well that is the first thing that I will do so I will create two variables let’s call them int rows and columns and then I will ask my user to enter how many rows and how many columns he wants this table to have so let’s do that see in rows o and then columns like this okay now after our user has entered how many rows and columns he wants what I want to do now is this part here so this part here this is our first step and then this here is going to be our second step and this part here will be the third step so this part here will be the following when translated to C++ code so here as I already said I create a pointer to a pointer which I will call table so I will say please create an integer pointer to a pointer because here we will store integer values you can create a character or double or float whichever one you want I want to create integer pointer to a pointer and call that table like this okay so we are done with this first part here and then what this table pointer to a pointer will point to is going to be this array here so I will say please create a new in integer array that has this many elements so the number that our user has entered for this rows variable because this rows variable holds how many elements this array here will have but as you can see here we have an error and that error is happening because this here which is this array here is not just a simple integer array but it is array of pointers so here you will have to indicate that so you will have to say please create an integer array of pointers and as you can see now our error has disappeared and with this line of code here we have created this array here now our third step is going to be that for each element of this array here we would have to create a separate Dynamic array so this first element will hold the address of this Dynamic array and then this second element holds the address of this array and then this third the address of this array here so what I will have to do is I will have to iterate through all the elements of this array and for each one I will have to create a separate Dynamic array so let’s do that so I will say for in I is equal to zero and then I is less than the number of rows that our user entered and in each iteration increment I so in this particular situation our number of rows is equal to three but you can have as many as you want so what I want to do in each of these iterations is I want to create for each one of these elements a separate Dynamic array so I will say table of I is equal to new integer array that has this many elements and that is the number that we stored in our columns variable like this and with this code here we have successfully created these Dynamic arrays now how do you access elements on a specific position of this table here for example this one or this one or this one so in order to do that let’s say for example table of Row one and then column 2 will have the value of 88 now what this could here what this line here will do is the following so this part here it says please give me the table variable which is this one here and it is a pointer to a pointer which holds this address here so 0 0 e e e e and that address is the address of this element here so the address of this array and here we say please give me the element of that array that has index one which is this element here so it is the element that stores the address of 0000 BB which is the address of this array here and this second part says please give me the element of that array that has the index of two which is this element here so here we will store the value of 88 so that is what this line of code here will do it will store number 88 to this position position here so this line of code here will store this number at the element that has row index one and column index two of this table so this here is a row with index zero this here is a row with index one and then two so we are storing at this row and then column index two is this one here so here we store number 88 one thing that we said as well in my previous video is that each time that you allocate dynamic memory you have the responsibility to deallocate that memory when you don’t need it which means each time that you use new keyword you will have to use delete keyword when you don’t need that memory anymore so now is the question how do we deallocate all of this memory that we have taken so in order to do that what I want to do is I want to show you something if for some reason we lose this address here so the value that is stored in this table pointer to a pointer we will never be able to access all of these elements that we have created in our dynamic memory so that means that we will not be deallocating this first and then if we for some reason lost this the value of our 000000 AA for example that means that we would never be able to access this array here so we would never be able to deallocate this memory so that means that this is not going to be deallocated it first as well now allocation of this memory here went as follows this was the first step so this was the first thing that we allocated and it is this code here and then we allocated this so that corresponds to this part here and then the last thing to allocate was these arrays here and that corresponds to this part of the code and the allocation of this memory will go the other way around which means that first we will deallocate this and then we will deallocate this and then this will be the last thing that we will have to worry about now in order to deallocate this the process will be almost the same as the one when we allocated it so I will copy this for Loop and then paste it here but what I want to do in this particular situation so when the allocating is instead of creating a new Dynamic array for each table of I is I want to delete that array so for each element of this array here I want to delete the corresponding Dynamic array so I want to delete these three arrays and in order to do that I will say please delete the array that my table of I is pointing to now what this code here will do is for this element here it will deallocate this array here so let’s delete that and then for this element here it will deallocate this array and then for this one it will deallocate this array here so now we have successfully freed this memory that we have taken here now after we have done this after we have successfully deallocated our first step which was here this part here will be our second thing to deallocate so here I will say please delete the array that my table variable is pointing to so this line of code here will deallocate this part here so I will say please delete that we do not need it anymore okay and then our third step which is the last one will be to null this value here why because we have just free the memory that was here so we have deallocated that now someone else might be using this memory here and we really shouldn’t keep the address of someone else’s memory so we should make this a null value like this and in order to do this in our code I will just say now my table will hold the value of null like this and this will prevent some potential crashes and problems in your application so I hope that this video helped you understand multi-dimensional Dynamic arrays a bit better and if it did please give it a thumbs up and subscribe to my channel because that helps me to reach more people and hopefully make programming a little bit easier for them as well thank you very much for watching and I’m going to see you in my next video bye hi everyone welcome to my channel my name is Alina I’m a software engineer and I make it and programming related videos here in YouTu YouTube and in this video I will be doing something that I haven’t done before and that is reviewing your code and we will see some errors that you guys have sent me so I get a lot of messages a lot of questions on my Instagram on Twitter and then here on YouTube as well in the comments where you ask me for an opinion or for advice on certain errors that happen to you in programming and I try to answer as many of those as possible but it’s just not possible to answer to all of you and I’m very very sorry but I thought that it would be a good idea to make a video related to that so that all of you can see it so here I am I’m making that video right now so in this video I will be reviewing some code and we will see some errors that can happen and that do happen very often and I’m going to do that both manually and then I want to show you a very cool tool which is called PVS Studio I’m going to leave details in the description down below so that you can check it out for yourself but what PVS studio is it is static code analyzer so it is basically a tool that reviews your code and helps you detect bugs and errors and security weaknesses in your code so in the case that you need another pair of eyes to look at your code and give you a few tips and recommendations it is a great tool to use and you can get it as a team license for teams up to nine people or you can get an Enterprise license for bigger companies bigger departments or you can even request a free license if you are a student if you are working on some private projects or on some open- Source projects and then one very cool thing is that it is not only used to analyze C++ code but you can use it for C and then C and Java as well uh and I wondering guys which team are you in are you team C++ or are you team C or Java or C um I’m very curious to read your answers so please write me in the comments down below and if you ask me I’m definitely team C++ and then team c those are just two of my favorite languages ever but I am very curious to read what you will answer to this question so um I’m going to leave all the details about PVS studio uh in the description of this video so that you can check it out for yourself and let’s jump into the coding part right now because I am very very excited to do this here I have created a new project and I have this program that does basically nothing so what I want want to do is I want to check if everything is okay with this code so far so if we have made any errors so far so I’m going to click on extensions and then PVS studio and here you have multiple options you can check your current file you can check open files or you can check your project selected items solution I’m going to select this first option so I’m going to check this current file and you get this window here and as you can see we have one error and that error is that my license will expire in 5 days okay so that is not error which is related to our code so we are just going to ignore it so we don’t have code errors so far and let me show you how you can install this tool very quickly so you click on extensions and then manage extensions okay and then here you can search for PVS Studio like this okay great it is this one here so PVS studio is a tool for detecting bugs and security weaknesses and so on okay so you will click download here and your download should begin I’m not going to do that right now because I already have it but once it is downloaded the installation is pretty simple so it’s basically next next next finish installation so that should be simple okay now let’s close this window here and as you could see we don’t have any errors with this code so far so let’s write some code and let’s create some errors now so so let’s create an array of type int and I will call it saved money and that will be array of five elements and I want to initialize those elements here so the purpose of this array is following let’s say that I want to save some money each month and I want to store that data in this array here so I’m going to save money for five months and I will store how much money I have saved each month inside this array here so for example the first month I have saved $100 or Euros or whatever and then second month I have saved 200 and then 300 and 400 and 500 fifth month okay so this is our array now what I want to do with this data here is I want to Summit after 5 months I want to know how much money I have saved in total so I’m going to create a variable of type int and I will call it total like this and I will initially give give it a value of zero and then I will iterate through this array here so I will say for INT I is equal to zero and then I is less than or equal to 5 and then I ++ and what I will do inside this for Loop is I will say that my total will hold whatever my total was previously holding plus current value of how much money I have saved in that month so saved money off I okay now after I have done this I will just write out how much money I have in total so I will say total and then this value that is stored inside this variable here okay now if I run this program let’s see what will happen well it says that in total I have minus 8 billion something very very big number so I have tried to save each month and then at the end I have minus8 billion dollar you know so that does not make any sense so here we have a logical error okay so let’s see what is this error that is happening so let’s click on extensions and PVS Studio check current file to see what kind of error PVS Studio sees and it says array over run is possible the value of I index could reach five and if I double click on that it will take me here and this part of code here is underlined and this is actually our compiler our compiler is underlying this and it says that okay it says index 5 is out of valid index range of 0 to four so this here this situation here says that this I is out of range of valid indexes that this array here can have and if you are familiar with arrays you know that indexing of an array starts zero so the first element has index of zero and then 1 2 3 and four so valid indexes for this array here are from 0o to four and here we have accidentally written that this I is less than or equal to five and that is making a problem so if I delete this part here so if I say that my I is just less than five this error should disappear so if I click on PVS 2 studio and then check current file the error should disappear okay it has disappeared now so if I run my program this program is behaving as expected so this is one thing that very often happens you can accidentally write less than or equal to and then you can get a very very big logical error another thing that can happen is if you’re typing very quickly and if you lose concentration for a moment and and here instead of incrementing you decrement this counter so you say I minus minus you should get an error as well so if I try to build this program let’s see what our compiler will tell us so here in this error list it says ill defined for Loop counts down from minimum so that’s kind of helpful um information and then another let’s read this other warning it says reading invalid data from Saved memory the readable size is 20 bytes but minus 4 bytes maybe read so this is not really help helpful for someone who’s just starting and then this third message it says index minus 2 billion something is out of valid index range 0 to 4 again this is not really helpful for someone who is just starting so uh let’s see what our PVS Studio has to say so I’m going to click extensions PVS Studio check current file okay and this first error here here says the condition I less than 5 of for Loop is always true so this is actually a helpful message and if I click on this I will be taken here and it says that this condition here I is less than five is always true but why is it always true because we have started counting at zero and then we try to decrement that value in each iteration and uh doing that we can never reach this condition here this condition here will never become false so that means that here we have created an infinite Loop and here our PVS Studio says consider inspecting this for operators so consider inspecting this for Loop here because it will not be executed at all or it can be executed incorrectly and in this particular situation it is going to be executed incorrectly so it is going to be an infinite Loop which we don’t want in this particular situation so I’m going to correct this error here so I’m going to return it to i++ but that is sort of a help that you can get from PVS studio and this here is a pretty simple program because it has just a few lines of code where all the bugs can potentially happen but imagine working on a very very big project and then something like this happens so imagine something like this happening uh on a program that a bank uses so you are trying to save money for a couple of months and then the program says that you are in depth that your balance is minus 2,000 or 20,000 or something like this so this can create very very big issues and in this particular situation if you have a bug like this you will want to have all the help that you can get and sometimes that can be uh just the help that you get from your compiler or if you have a very very big problem you will definitely benefit from tools like PVS Studio which will give you some additional information on that situation that is happening and on that problem that you you are having and then there are other situations where you can have very very big problems but your compiler will not be helpful at all because your compiler will not be able to see those potential bugs that you are creating inside your code so in order to demonstrate that let’s delete all of this code here because I will not need it anymore and what I do need is to create a function here so let’s create a function of return type void and I’m going to call it my function like this okay and what I want to do inside this function is I want to create an integer pointer PTR so if you’re not familiar with the topic of pointers make sure to watch the playlist that I will link here it is the playlist where I explain pointers in C++ because it is one of the most important topics in C++ and it is the example that I will be using here so I have created an integer pointer and I’m going to say now you will point to a new array of integers and that array will have five elements like this now what do I want to do with this array well let’s do something very simple let’s say PTR of two will hold the value okay it will hold the value of 10 like this and then let’s just write out something let’s say hi I am equal to and then PTR of two okay so this here is pretty simple example that does basically nothing important nothing useful but I will use it to demonstrate a very very big issue that can happen in this situation so I’m going to invoke this function here so I’m going to say my function like this and I have successfully invoked this function so if I run this program it says hi I am 10 so nothing unexpected happened or did it okay um if I inspect my errors list it says that I don’t have any errors so if you ask a compiler it will tell you that everything is perfectly fine so let’s now ask PVS Studio here it has already detected two potential issues but you can click PVS studio and then check current file just to be sure okay and it says visibility scope of the PTR pointer was exited without releasing the memory a memory leak is possible so what we have done here in this program is we have created memory leak where here so here we have said please give me in my dynamic memory give me array of five integers and this is going to be done in dynamic memory so once this function is finished once this function ends we are going to lose this PTR so we are going to lose the address of the first element of this array here so here if I try to do something like PTR I cannot access this variable here anymore this variable has its scope and that scope is inside this function here and once this function exits we are going to lose the address of this array here which means that we will not be able to deallocate this memory here now let’s delete this okay here as you can see this memory leak is not a big memory leak here we are leaking five integers so we are leaking an array of five integers and that is not very big problem but usually what happens in real life is that you are not creating an array of five integers usually you are creating things that require much more memory than just an integer array of five elements so here as I said we are leaking five integers but imagine a situation where you are creating an array of 5,000 or 50,000 and not integers but objects of type user like this and this user has some pretty heavy data in it for example it has some images and things like that so here you are creating 50,000 users and to make things worse imagine not invoking this function only once but imagine invoking this function in a for Loop for example so invoking it 100 times or 1,000 times or 100,000 times that is going to be a huge memory leak so what this line of code here does is it asks your operating system for dynamic memory so it says please can you give me new memory so can you give me dynamic memory that I need to store this data here and your operating system gives that memory to your program so it allocates that memory for your program and then once this function here finishes you will lose all the variables that you have created inside that function and that is this PTR variable here so that means that the address of this array here which was stored inside this PTR variable is lost now and now you will not be able to deallocate this memory here which means that you will not be able to say okay now I am done with this memory which is a lot of memory and now I’m going to return that back to my operating system because I don’t have unlimited amounts of memory and my operating system maybe would like to give that memory to some other program so once this function here ends and you don’t deallocate this memory here you are leaking that memory and that is exactly the error that you have here it says a memory leak is possible whereas your compiler here said expected a type specifier which is U error that we have here because it does not know what is this user so I’m going to return this back to int okay now that error has disappeared but your compiler does not know that you are leaking memory here whereas your PVS Studio analyzer here says that a memory leak is happening so how do you fix this error here well for each new you need to have delete again you need to watch my C++ pointers playlist in order to understand pointers if you don’t understand this already so as I said for each new you need to have delete so I’m going to say delete and let’s delete this PTR let’s see what is going to happen now so if I click extensions and then PVS Studio check current file it says the memory was allocated using new array type operator but it was released using delete operator and then it gives you a recommendation here it says use delete array pointer it set instead so here we are trying to allocate memory for an array but we are not deleting that entire array so here we are leaking memory again so here I’m going to use these square brackets in order to indicate that I want to delete this entire array that I have allocated in this line of code here so now we shouldn’t be leaking memory anymore so let’s check that out I’m going to say PVS Studio check current file and let’s see we have that error that we previously had which is your license will expire in 5 days but we do not have memory leaks anymore which is great so errors like this memory leaks are very common when you work with pointers in C++ and these memory leaks can create huge problems if you have them in your code and as you could already see in most cases you cannot really on your compiler to tell you that you are leaking memory because in most cases it will not even be able to see that so tools like PVS Studio can be very helpful in those situations you could see all those little tips and recommendations that we had from PVS Studio that helped us to fix issues that we had related to leaking memory so those were some topics that I wanted to address in this video because many people when working with pointers will come across problems that they will not be able to fix or they will not even be aware that they have those problems that they have memory leaks until it gets to the point where it is unmanageable and they have very big problem they have huge problem so um if you have any more questions that you would like me to make video on please leave those in the comments down below and if you like this type of video please give this video a thumbs up so that I can know and I will make more videos like this in the future if you want me to so thank you very much for watching this video and I am going to see you in my next video bye hi everyone [Music] well okay so hi everyone welcome to my channel welcome to another [Music] [Applause] [Music] hi everyone Hi everyone welcome to Welcome to my channel so this here is the initialization step of our initialization initialization in initialization initialization so it is the in in

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • C Programming: Library Creation, Encryption, and System Call Hijacking

    C Programming: Library Creation, Encryption, and System Call Hijacking

    The provided texts encompass diverse topics in programming and computer science. One excerpt focuses on creating a SOCKS version 4 client in C to connect to the Tor network, detailing packet creation, data transmission/reception, and proxy traversal. Another segment explores XOR encryption, demonstrating its implementation in C for single-character encryption/decryption. A further discussion involves creating an encryption library using a modified ARC4 algorithm. An additional piece elucidates Linux file system permissions, explaining read, write, and execute permissions alongside their numeric representations. Finally, a text introduces creating a safe string library in C to avoid buffer overflows and memory corruption issues when handling strings, and the last text describes the use of functions to hijack connections made through the tour network by creating shared libraries and altering prioritization order.

    Source Code Deep Dive: Study Guide

    I. Quiz

    Answer each question in 2-3 sentences.

    1. What is the difference between a system call and a library call, and how can you determine which one is being used?
    2. What is the purpose of the htons() function, and why is it needed when working with network addresses?
    3. Explain the role of a makefile and the benefits of using one when compiling C code.
    4. What are the three essential elements needed to establish a TCP connection, and what specific steps are involved in configuring these elements?
    5. Explain the concept of a “predicate” in programming.
    6. How does the XOR operation work, and why is it useful for basic encryption?
    7. Why is it important to zero out buffers in the example code provided?
    8. What is a “type definition” in C programming, and what is its purpose?
    9. Explain the purpose of the assert() function and how it can be used for debugging.
    10. Explain what LD_PRELOAD does and how it can be used to override existing function calls.

    II. Quiz Answer Key

    1. A system call is a direct request to the operating system kernel, while a library call is a function provided by a library that may eventually use system calls. To determine which one is being used, you can consult the manual pages using man 2 for system calls and man 3 for library calls.
    2. The htons() function converts a host’s byte order to network byte order. This is necessary because different systems use different byte orders, and network communication requires a consistent order.
    3. A makefile automates the build process by defining dependencies and commands for compiling and linking code. This simplifies the compilation process, especially for projects with multiple source files.
    4. The three essential elements are the address family, the port number, and the IP address. These elements must be configured in a socket address structure before initializing the connection with the connect() command.
    5. A predicate is a function or operation that returns a boolean value, indicating whether a certain condition is true or false.
    6. XOR (exclusive OR) is a bitwise operation that returns 1 if the input bits are different and 0 if they are the same. It’s used for simple encryption because applying the same key twice decrypts the data.
    7. Zeroing out buffers ensures that they are initialized with a known state, preventing potential issues with leftover data or undefined behavior.
    8. A type definition creates an alias for an existing data type, making the code more readable and easier to maintain.
    9. The assert() function checks if a given condition is true, and if it’s false, the program terminates with an error message. It’s used to catch programming errors and ensure code integrity.
    10. LD_PRELOAD is an environment variable that specifies shared libraries to load before any others. It can be used to intercept and replace function calls, effectively overriding existing system behavior.

    III. Essay Questions

    1. Discuss the security implications of using a simple XOR encryption method, and explain the limitations of its cryptographic strength.
    2. Analyze the structure of a SOCKS version 4 client and its role in connecting to the Tor network.
    3. Elaborate on the benefits and drawbacks of using the getrandom() system call for generating cryptographically secure random numbers.
    4. Explain the purpose of “whitewashing” the RC4 keystream, and how it enhances the security of RC4 encryption.
    5. Explain the advantages and disadvantages of manually managing strings compared to using standard C functions, highlighting the security implications of both approaches.

    IV. Glossary of Key Terms

    • System Call: A request made by a program to the operating system kernel to perform a specific task.
    • Library Call: A function provided by a library that may eventually use system calls.
    • Socket: An endpoint of a two-way communication link between two programs running on the network.
    • TCP (Transmission Control Protocol): A connection-oriented protocol that provides reliable, ordered, and error-checked delivery of data between applications.
    • SOCKS (Socket Secure): An Internet protocol that routes network packets between a client and server through a proxy server.
    • Tor (The Onion Router): A free and open-source software for enabling anonymous communication.
    • Proxy Server: A server that acts as an intermediary between a client seeking resources and a server providing those resources.
    • Makefile: A file containing a set of directives used by the make utility to automate the compilation and linking of software.
    • Byte Order (Endianness): The order in which bytes of a multi-byte data type are stored in memory.
    • Network Byte Order: A standardized byte order used for network communication, typically big-endian.
    • Host Byte Order: The byte order used by the host system, which may be big-endian or little-endian.
    • htons(): A function that converts a 16-bit host byte order to network byte order.
    • AF_INET (Address Family Internet): An address family that is used to designate the type of addresses that the socket can communicate with (IPv4).
    • SOCK_STREAM: A socket type that provides sequenced, reliable, two-way, connection-based byte streams.
    • Predicate: A function or operation that returns a boolean value (true or false).
    • XOR (Exclusive OR): A bitwise operation that returns 1 if the input bits are different and 0 if they are the same.
    • Ciphertext: Encrypted data.
    • Cleartext: Unencrypted data.
    • Type Definition: A statement that creates an alias for an existing data type.
    • Assert(): A macro that tests a given condition, and if the condition is false, the program terminates.
    • Maloc(): A function that allocates a block of memory dynamically.
    • LD_PRELOAD: An environment variable that specifies shared libraries to load before any others.
    • RC4 (Rivest Cipher 4): A stream cipher widely used in software applications and protocols.
    • Keystream: A sequence of pseudo-random bytes used to encrypt or decrypt data.
    • Whitewashing: The process of discarding initial keystream bytes in RC4 to mitigate certain statistical weaknesses.
    • Entropy: A measure of the randomness or unpredictability of data.
    • getrandom(): A system call that retrieves random bytes from the kernel’s entropy pool.
    • DL_SIM: A flag in some C compilers, like GCC, that is used to link a dynamically loaded library, and tells the linker that all symbols in the library should be considered defined, even if they are not explicitly used.
    • LD_PRELOAD: An environment variable used to specify shared libraries that should be loaded before others.
    • Change Mod: (chmod) the command for altering permissions on a Unix and Linux system.
    • Change Own (chown) the command which changes the owner of a specific file in Unix and Linux system.

    Tor Tunneling Tool: Development and Security Briefing

    Okay, here’s a detailed briefing document summarizing the key themes and ideas from the provided source material.

    Briefing Document: Tor Proxy Tool Development & Related Concepts

    Overview:

    The sources document the development process of a tool (“talize”) designed to tunnel network connections through the Tor network. The materials also touch on foundational concepts related to networking (system calls, library calls, TCP connections), security (encryption with XOR, file permissions in Linux), and C programming (dynamic linking, shared libraries, memory management).

    Main Themes & Important Ideas:

    1. System Call Interception for Tor Tunneling:
    • The core idea is to intercept system calls (specifically, connect) made by other applications and redirect the connections through a Tor proxy. This allows any application to utilize the Tor network without explicit configuration within the application itself.
    • The tool uses LD_PRELOAD to inject a shared library that overrides the standard connect function.
    • “You remember I want to be able to do something like talize and then run any [Music] command like curve against some IP address and then I want to in intercept the connection I want to run this command as is but I want to intercept the con the connection that the actual program does and run my code instead so it tunnels through the tour Network any program that we want to run…”
    1. SOCKS4 Proxy Implementation:
    • The tool establishes a TCP connection to a SOCKS4 proxy server (typically running on localhost at port 9050 when using Tor).
    • The source code shows the creation of a socket, setting the socket address family to AF_INET, specifying the proxy port, and using the connect system call to connect to the proxy.
    • “So now we have successfully created our TCP connection towards the proxy server and the next step is to create the uh proxy request packet according to this structure that we created before.”
    • The source code shows the creation of a socket using socket(SOCK_INET, SOCK_STREAM, 0).
    1. C Programming Techniques & Challenges:
    • The source code demonstrates various C programming techniques, including:
    • System calls (e.g., socket, connect, close, open, read, write, getrandom).
    • Library calls (e.g., htons, inet_addr, strlen, malloc, free, perror, sprintf, snprintf, memset).
    • Pointers, structures, type definitions (typedef).
    • Dynamic memory allocation (malloc, free).
    • String manipulation.
    • Function pointers (for intercepting system calls).
    • Shared libraries (.so files).
    • Bitwise operations.
    • Challenges encountered during development include:
    • Compiler errors and warnings (due to type mismatches, incorrect syntax, missing include files, etc.).
    • Memory management issues (leaks, segmentation faults).
    • Debugging dynamic linking issues.
    • Getting terminal settings correct for password input (disabling echo).
    • Troubleshooting network connectivity problems.
    1. Security Considerations:
    • The material briefly mentions the importance of using cryptographically secure random number generators (getrandom) for security-sensitive tasks.
    • The use of XOR encryption is described as a simple demonstration and not suitable for real-world security.
    • The need to “whitewash” the initial state of RC4 is also mentioned to mitigate potential weaknesses.
    • File permissions and ownership within a Linux environment were mentioned.
    • “This is a very basic form of encryption that uh is only for demonstrational purposes it’s quite easy to crack with today’s Technologies and computer power however it’s a good example on how to use exor…”
    1. Dynamic Linking and LD_PRELOAD:
    • The tool relies heavily on dynamic linking, using LD_PRELOAD to inject a custom shared library that overrides the standard connect system call. This allows the tool to transparently intercept and redirect connections made by other applications.
    • The source contains instructions on setting the LD_PRELOAD environment variable.
    • “So we need to send everything that’s on the right of this toriz and there is a way to access all the arguments at the same time and I I think it is done like this okay so first we export the LD preload and point it towards our shared library then we do the dollar and I think it’s the at sign which will run all the arguments to this uh script…”
    1. Practical Implementation of RC4 Encryption:
    • A significant portion of the material details the implementation of the RC4 encryption algorithm.
    • The code includes functions for:
    • Initialization (Arc4Init).
    • Key stream generation (Arc4Byte).
    • Encryption/Decryption (Arc4Encrypt).
    1. Safe String Handling:
    • The need for safe string handling is emphasized to prevent buffer overflows and other security vulnerabilities.
    • The material describes a custom string library that provides functions for:
    • Initialization.
    • Concatenation (automatically reallocating memory as needed).
    • The source shows implementations of custom length and copy functions for increased control over string manipulation.
    1. File Permissions in Linux:
    • The sources include an explanation of file permissions in Linux using chmod.
    • This includes the meaning of the numeric representation (e.g., 755) and its relationship to read, write, and execute permissions for the owner, group, and others.
    • “What does this 755 mean in the detail this and more we’re going to talk about today when we are discussing Linux file system [Music] security…”

    Quotes from Original Sources:

    • “is a system call that’s why how do you know if it’s a system call or a library call try a library call first three if you don’t get a hit or if you get a hit that doesn’t seem right try the uh the two okay so we need sis socket.”
    • “…our program works fine this far but at the moment it’s just a proxy server client it’s not doing what we intended it to do from the beginning…that is what I want to do and that is the next step in this process…”
    • “If you like this episode and want to see the continuation or other stuff in this Channel please uh subscribe to this Channel and hit the like button if you think I deserve it…”
    • “Today you have learned about Linux file system security that there are three parts to it the file permissions targets and the change mode command…”

    In Summary:

    The sources provide a comprehensive look at the development of a Tor tunneling tool, highlighting both the network programming aspects (SOCKS4 proxy, system call interception) and the C programming techniques required to build such a tool. The material also emphasizes the importance of secure coding practices, including proper memory management, random number generation, and safe string handling. Furthermore, background context for other core security topics such as encryption and file permissions are provided.

    C System Calls, Sockets, Encryption, and LD_PRELOAD

    ### What is a system call, and how do you identify one compared to a library call?

    A system call is a request to the operating system’s kernel to perform a privileged operation. To differentiate: first, try a library call using `man 3 <function_name>`. If that doesn’t yield relevant information, try `man 2 <function_name>` as system calls are documented in section 2 of the manual pages.

    ### What are the essential steps to create a TCP connection to a proxy server using C?

    1. **Create a Socket:** Use the `socket()` function to obtain a socket file descriptor. Specify the address family (e.g., `AF_INET`), socket type (`SOCK_STREAM` for TCP), and protocol (0 for the default).

    2. **Prepare the Socket Address:** Create a `sockaddr_in` structure. Set the address family (`sin_family` to `AF_INET`), the port number (`sin_port` using `htons()` to convert to network byte order), and the IP address (`sin_addr.s_addr` using `inet_addr()`).

    3. **Connect:** Call the `connect()` function, passing the socket file descriptor, a pointer to the `sockaddr_in` structure (cast to `sockaddr*`), and the size of the structure. Check the return value; 0 indicates success, and -1 indicates an error.

    ### Explain the purpose of function declarations in C, and why they might be used.

    Function declarations (or prototypes) tell the compiler about the existence, return type, and arguments of a function before it’s actually defined. They allow you to call a function that’s defined later in the same file or in a different file. While not strictly required if a function is defined before it’s called, they improve code organization and readability.

    ### What is a predicate and how are they used within the given context?

    A predicate is a function or operation that returns a boolean value (true or false). In C, this is typically represented by an integer, where 0 is false and any non-zero value is true. In the context of proxy traversal, a predicate might check the value of a response code (like the CD value) to determine if the proxy connection was successful.

    ### How does the XOR operation work, and why is it useful for simple encryption?

    The XOR (exclusive OR) operation compares two bits. If the bits are different (one is 0 and the other is 1), the result is 1. If the bits are the same (both 0 or both 1), the result is 0. XOR is used for simple encryption because applying the same XOR key twice decrypts the data. `(A XOR Key) XOR Key = A`.

    ### How does the RC4 encryption algorithm work?

    The RC4 algorithm involves three main steps:

    1. **Initialization:** An array ‘S’ of 256 bytes is filled with values 0 to 255. Then, using a key (typically 8 to 2048 bits), ‘S’ is scrambled based on the key, using two index variables ‘i’ and ‘j’.

    2. **Key-stream Generation:** The algorithm then enters a loop where ‘i’ and ‘j’ are continuously updated, and two bytes in ‘S’ are swapped. The value of `S[S[i] + S[j]]` is XORed with the plaintext to produce the ciphertext.

    3. **Encryption/Decryption:** The keystream is XORed with the plaintext to encrypt, and the same keystream is XORed with the ciphertext to decrypt.

    ### What security concern is addressed by “whitewashing” the RC4 algorithm, and how is it implemented in the code?

    A known weakness of RC4 is that the initial bytes of the keystream can be statistically biased. “Whitewashing” involves discarding the first several million bytes of keystream after the initialization to mitigate this bias. It is implemented by calling the `Arc4Byte()` function many times (e.g., 500 million times) after the initialization.

    ### How can `LD_PRELOAD` be used to intercept function calls and redirect network traffic through Tor?

    `LD_PRELOAD` is an environment variable that lists shared libraries to be loaded before others when a program is started. By creating a shared library that intercepts network-related functions like `connect()`, you can replace the original functions with your own. This allows you to modify the behavior of network calls, redirecting traffic through the Tor network, while the original program remains unchanged.

    Socket Programming Essentials

    The sources provide the following information regarding sockets:

    • A socket is initialized using the socket command. The syntax includes sock_eynut and sock_stream for a TCP connection. If the socket initialization fails (less than zero), an error message is printed using the perror command.
    • A structure called sock address in is needed to specify IP addresses. The s family needs to be set to AF IET, the Sin port using H ton s for network byte order, and the sin address using inut address.
    • The connect command is used to initialize the actual connection. It references the socket and the structure and requires an explicit type casting to Sock address struct. The connect command should return a zero if the connection/binding succeeds. Otherwise, it returns a -1.
    • The close command is used to close down the connection.
    • When creating TCP client, functions such as sockets to initialize the sockets, connect, close AG tone s, and in address are needed. The include files required are sys/socket.h, netinet/in.h, and arpa/inet.h.
    • The dup2 system call can create a new file descriptor that duplicates an existing one, allowing for piping data between sockets.

    C Library Calls: System Calls, Shared Libraries, and Interception

    The sources mention library calls in the context of C programming, particularly in relation to system calls and shared libraries. Here’s a breakdown:

    • Distinction from System Calls: The source draws a distinction between library calls and system calls, noting that to determine whether a function is a system call or a library call, one should first check the manual pages section 3 (man 3) and if it does not seem right, try section 2 (man 2).
    • Wrappers for System Calls: Libraries can contain wrappers for system calls, such as the connect function.
    • Shared Libraries: The source explains the concept of shared libraries, which contain code that can be used by multiple programs, avoiding duplication. Instead of every program containing its own copy of functions like printf, these functions are stored in a central repository and accessed when needed.
    • Function Hooking/Interception: The source describes a technique to intercept library calls by creating a shared library with a function of the same name and signature as the library call you want to intercept. By preloading this library, you can ensure that your version of the function is called instead of the original. The original function can still be accessed using dlsym.
    • Creating a Shared Library: To create a shared library, specific compiler flags are required. In the makefile example, the flags -fPIC, -shared, and -Wl,-soname are used.
    • Using a Shared Library: To use a created shared library, it can be preloaded using the LD_PRELOAD environment variable. This can be done by creating a bash script that exports LD_PRELOAD to the path of the shared library. After setting the environment variable, the script executes the desired command, and then unsets the LD_PRELOAD variable.
    • Safe String Library: The source discusses the creation of a safe string library to prevent buffer overflows and other security issues related to string manipulation in C.

    Type Casting: Uses and Applications

    Type casting is mentioned in the sources in several contexts, particularly in C programming. Here’s a breakdown:

    • General Use: Type casting is used to convert a variable or expression from one data type to another. This is often necessary when a function expects a specific type, but the provided argument is of a different type.
    • Explicit Type Casting: The source demonstrates explicit type casting using the syntax (type)variable. For example, (Sock address struct*) is used to cast a pointer to a sockaddr_in structure to a Sock address struct* when calling the connect function. Another example is (int8*) to cast a string to a specific type for a function argument.
    • Socket Programming: In socket programming, type casting is essential when dealing with network addresses. The connect function, for instance, requires a Sock address struct* argument, so you may need to cast your address structure to this type.
    • Pointer Conversions: Type casting is often used when converting between different pointer types. For instance, a void* pointer, which is a generic pointer type, might need to be cast to a specific type like char* before being dereferenced.
    • Addressing Compiler Warnings: Type casting can be used to suppress compiler warnings related to incompatible pointer types or different signedness. For example, casting a char* to int8*. However, the source notes that it may be better to change the variable types to regular strings.
    • Volatile Type Cast: When using memory locations, you can use type casting to tell the compiler to not optimize a segment of code. This is done using the syntax: (volatile int8*).

    C Memory Allocation: Dynamic, Safe, and Networked

    Memory allocation is discussed in the sources in the context of C programming, particularly when working with strings, structures, and network operations. Here’s a breakdown:

    • Dynamic Memory Allocation: The source highlights the use of malloc to dynamically allocate memory on the heap. This is essential when the size of the memory required is not known at compile time or when you need memory that persists beyond the scope of a function. For example, when creating strings or structures, malloc is used to allocate the necessary space in memory.
    • Memory Allocation Size: When using malloc, it’s crucial to allocate the correct amount of memory. This often involves using the sizeof operator to determine the size of a data type or structure. For strings, you need to allocate enough space for the characters plus a null terminator. The source uses size of stct proxy request and size of stct s AR for to allocate memory appropriate to the size of the structure.
    • Checking for Allocation Errors: After calling malloc, it’s important to check if the allocation was successful. If malloc fails, it returns NULL. The code includes assert statements or if clauses to check for NULL pointers and handle allocation errors.
    • realloc for Resizing Memory: The source mentions realloc, which is used to resize a previously allocated block of memory. This is useful when you need to increase or decrease the amount of memory allocated to a string or other data structure.
    • calloc: You can also use calloc, but it wasn’t explicitly in the sources. calloc differs from malloc because it initializes the allocated memory to zero.
    • memcpy for copying memory: memcpy can be used to copy a block of memory from one location to another.
    • memset for initializing memory: memset is used to fill a block of memory with a specific value, often zero. This is useful for initializing buffers or structures before use.
    • free for Deallocating Memory: When you’re finished with dynamically allocated memory, it’s essential to release it using free. This prevents memory leaks and allows the memory to be reused by other parts of the program or the operating system. The source includes examples of freeing allocated memory using free(request) and defining a macro un init of free X.
    • Safe String Library: In the context of creating a safe string library, memory allocation and deallocation are crucial. The source describes how to allocate memory for strings using malloc and realloc, and how to manage the size of the allocated memory to prevent buffer overflows.
    • Variable Length Arrays: The source touches on variable length arrays within structures, where the size of the array is determined at runtime. This allows for flexible memory allocation based on the actual data being stored.
    • Stack vs Heap: The source implicitly refers to the stack when discussing buffer overflows, noting that variables on the stack have limited space, and overflowing them can lead to program crashes. Dynamic memory allocation with malloc occurs on the heap, which is a larger, more flexible memory area.
    • Memory Layout: In network programming, understanding memory layout and byte order is important. The source mentions the need to convert port numbers and IP addresses to network byte order using functions like H ton s and inet_addr. This ensures that the data is interpreted correctly regardless of the system’s architecture.
    • Potential Issues: If memory cannot be allocated, assert P error can be used to handle any potential issues.

    C Encryption Libraries: RC4, XOR, and Secure String Handling

    The sources discuss the creation of encryption libraries in C, touching upon various aspects from basic encryption principles to more advanced cipher implementations.

    Key Concepts and Techniques:

    • XOR Encryption: A basic form of encryption using the XOR operation is explained. The XOR operation is applied to each bit of the data with a key; applying the same operation again with the same key decrypts the data. This method is presented for demonstration purposes and is noted to be easily cracked with modern computing power.
    • RC4 Cipher Implementation: The sources detail the development of an encryption library based on the RC4 algorithm. RC4 is noted as relatively easy to implement but requires careful handling to be secure.
    • The implementation involves creating initialization, encryption, and decryption functions.
    • The library is designed to be used by other C projects, so the core code (arc4.c) doesn’t have a main function, but an example program (example.c) is used for testing.
    • Initialization: The RC4 algorithm’s initialization involves preparing the internal state of the encryption engine based on a key. This includes setting up an array and using a loop to iterate through it.
    • Key Stream Generation: The core of RC4 involves generating a key stream, which is then XORed with the plaintext to produce the ciphertext. The Arc for byte function produces a single byte of the key stream.
    • Encryption and Decryption: In RC4, encryption and decryption are performed using the same operation (XOR with the key stream). Therefore, a single function can be used for both, simplifying the code.
    • Security Considerations:
    • The sources mention concerns about RC4’s security, noting that its output can be distinguishable from random data, potentially allowing attacks.
    • To mitigate these concerns, the implementation includes a “white washing” mechanism that discards the first several million bytes of output to avoid known cracking techniques. This involves generating many bytes using Arc for B and performing a volatile type cast to tell GCC not to optimize it.
    • The importance of using a strong, randomly generated key is emphasized.
    • Library Structure:
    • The encryption library consists of multiple files:
    • arc4.c: Contains the actual code for the RC4 algorithm.
    • arc4.h: Contains the structure definitions, includes, definitions, and macros.
    • example.c: A temporary file with a main function that serves as an example program to try things out.
    • makefile: Contains the instructions to compile the whole thing.
    • The header file (arc4.h) includes necessary definitions and structures, such as the structure representing the internal state of the RC4 encryption engine. This structure typically contains variables like I, J, and an array S.
    • Exporting functions: The keyword export can be defined to ensure that certain functions, like Arc for in it and Arc for encrypt, are accessible from outside the library.
    • Installation: The source outlines how to install a created library, including copying the .so file to the appropriate library directory (e.g. /usr/lib/x86_64-linux-gnu/) and the .h file to the include directory (e.g. /usr/include), and running ldconfig to update the system’s library cache.
    • Safe String Library: The source also discusses the creation of a safe string library to prevent buffer overflows, and a concat function is presented. The length is checked and if needed memory reallocated with realloc, and an M copy function is defined and used.
    • File Encryption: The source describes the structure of an encrypted file including padding bytes, password hashes, and encrypted content.
    • Random Number Generation: For cryptographic operations, it’s crucial to use a secure random number generator. The source mentions using the get random system call with the GRND_RANDOM flag to obtain cryptographically secure random numbers from the entropy pool. The code handles the possibility of the entropy pool being empty and includes a warning message for the user.
    • Key Retrieval: When coding an encryption program, you will need a way to read the encryption key from the command line, and you don’t want to echo the key on the screen. This can be done using functions from the termal.h header.
    8 hours of C coding projects: Cyber Security
    C Language Full Course in 50 HOURS with Practical (Beginners to Advanced) | 2025 Edition

    The Original Text

    what’s up guys today we’ll code something really exciting we’re going to be H creating a tool called talyer it’s a command line client for connecting to the tour privacy Network when you run a CLI command for doing a network call for example curl the following thing has happens the connect function is invoked and the uh program establishes a TCP connection to the remote server and then the communication begins but with this tool you’ll be able to put the word talize in front of any command which does a network call taly Will intercept any calls to the connect function and execute our function instead the traffic will be redirected to a local proxy server which is a part of the tour software it will connect to the tour Network and then to the destination server effectively masking your identity and helping you to stay private on the internet and the best thing is coding this is easier than than you might think let’s get on with it okay guys welcome to this episode the first thing we need to do today is we’re going to create our own uh Pro server client so this uh Proxes it uses a protocol named Socks s o ckss and there are two different uh protocol versions version four and version five and the the tour Network and the software supports both these versions version five is a little bit more complicated but version 4 should be very easy to implement and it will be perfect to do it in C so that’s the task of today creating our own client for that sock proxy and use it to connect to the tour Network so how do we start I’m going to start by logging into my code Planet server like this and prepare my screen as I usually do uh today I’m not going to be coding in Naro or VI like I usually do this is a little bigger project a little bit more ambitious could do it in VI even though it’s a big project but uh I’m going to be using um vs code today actually [Music] I’m going to do my wild true command so I don’t accidentally close down my screen window like this um and since I am using a remote server I need to somehow either upload my uh C files and stuff to that server or code remotely in V code somehow and I’m going to be using a tool which is called the sociopath SCP client like this if you want to download sociopath SCP client it’s a tool that uses the SCP protocol which is basically installed on on every server uh to uh upload and download files and subdirectories and there’s also a remote file editing feature that we’re going to use today okay so let’s begin there I have started up the program which looks like this so I connect to my code Planet server and I go to my code folder so on the left side is my local hard disk drive and on the right is uh the files and directories on the server so I’m going to right click and create a new directory which I’m going to call talize this and now I’m going to select the toriz I’m going to right click and I’m going to click open in editor then it’s going to download uh everything in that uh folder which is currently empty but if it were any code files in that folder it would download it to Temporary directory and open it in this code and each time you save or create a file or a directory inside of V code it automatically updates on the server okay so now I have this emptied here so I right click and create a new file which I will be calling talize C and I will also create a tor lies. H like this and I will Begin by putting a small header so talize Doc and I will include SD iio create a main and this time I will type out the longer signature for this uh main function that is the argument counter and the actual argument pointer like this because I’m not going to be using that in the final version but the client that we’re going to code today uh that will be you it will be used like this so if we run it by doing slash toiz we’re going to enter an IP address like 1 2 3 4 and a port so this uh tool will uh connect to a predefined uh proxy server we’re going to put that in our H file let’s do it right away toal light. and let’s put the include in here instead and in this file we’re going to include our local file so when the file is in your directory you use quotes around it like this and I save this file now if we go into the sociopath window we can see in this status bar down here at the bottom T.C has changed successfully updated to server and if we go into our terminal and go into the directory and check the contents of this file we see that it has uh updated the H is not here yet because I haven’t saved it it uploads on save so let’s do that and with regard to the proxy server I will be using the default values for uh the tour package and that will be using the IP address of one 27 0 0 1 that’s the IP address of Local Host uh and let’s call this proxy and I will also make a constant definition for the proxy port which is 9050 as a default setting save and just to verify now we should have both of these files here right so both the C file and the H file great [Music] so let’s just create the most basic things first I will create a CH pointer for the host name that is the host name that we want to connect to at the end so to speak the server that we want to uh connect [Music] to and we also need to have the port number let’s just do an in for that yes okay so first I want just check that Arc if that is less than three which means that we don’t have two arguments specified on the command line then I want to print to a file descriptor which is called standard error which is uh used for error messages it’s like printing to the screen basically and then we want to do like this usage Post Port like that and as an argument we’re going to give arv Z so arv Z if we on the command line specify do/ talize 1 2 3 four and Port 80 then this is AR v0 this is arv1 and this is arv2 and this is an error so we will return minus one and if we have our arguments we will point the post toward towards arv1 and we’re going to set the port to and we can’t just do it like this because the port is an INT and this is a string so we need to use a function which converts a number in a string form to a regular number a2i let me just check if that requires an include file and we do that by doing Man 3 a2i and we need SD libh which I will put in our header file include STD libh and I will also put in [Music] string.h and uni std. H these are the four that I always put in every C program that I do let’s line up this a little bit better like this okay so how will this work we need to figure out how the proxy protocols socks version 4 uh how does it work so let’s go to Google and if we want to have the technical specification of a network protocol we do like this we search for the uh protocol name socks 4 in this case and we add RFC that stands for request for comments and is a the standard way of describing an official uh Pro so that way you will always get the right one and I’ll take the first one here and increase the font size a little bit this is not a huge file some of these rfcs are very big but this is quite a simple protocol so there’s a two step process first you make a TCP connection towards the proxy server like like any other server like exactly as you did in my web server video and in the uh TCP client video then when we are connected we need to create a network packet which looks like this so from left to right there is a one byte field that is 8 Bits for the VN number and as we can read here that’s a socks protocol version number and it should be four then we have something called CD and CD is the socks command it’s a code for the command and should be one for Connect so there are two different uh types of operations that you can do through so 4 it’s a connect operation and a bind operation so basically a connect operation is when you connect the outwards and a bind is when you uh prepare for an inbound connection towards you uh we are going to do a connect so we will put a one in that field uh then we put the destination port number and we need to format that port number in uh Network bite order which is basically that we switch we we cut off cut up the 16 bytes in two parts and we swap them and same with this destination IP but this is a 4bit 4 by field so 32 bits uh regular in size and that’s where where we put the IP address of the uh remote server that we want to connect to and then we need to put a user ID and I will just put talize there doesn’t matter and then we need to end that uh string with a zero byte as usual and that’s basically it we send send that the packet we get a reply which looks like this and the only interesting field is this CD field if that is 90 then the connection has been established and then you can just send whatever you want if we get another number than 90 then something went wrong and we need to deal with that um and then we will send some data just to see that it works so that is what we need to do okay so I will do like this I will copy this and inside our header file I will create a comment block and paste in this this [Music] one I want the last line as well so I see the number of bytes think I need to change the size here okay this way we see enough but in order to be able to create a structure that corresponds to this design we need to be able to create fields that has the 8 bit size the 16bit size and the 32bit size so let’s start there we will use the typ def command to create our own variable types which will be called int 8 int 16 and so on so if we begin with the in8 that’s basically an on sign Char in see that’s 8bit size so we’ll type type def unsigned Char and then our name for it in 8 then we need the 16 bit size and that is an unsigned short in we call it in 16 and then we need a regular 32bit int so that’s an unsigned int I’m going to call it int 32 okay so now we have the different parts that we need now we’re going to create the actual structure for this packet so we’ll create a struct which I will call proxy request and the first is VM so in8 VM and the next is CD which is also an 8bit then we have the destination Port which is 16 is port and then we have the 32bit destination IP field and then we have the user ID which has a variable uh size but I’m going to create a username of seven characters because that way we can have uh an 8 a 64bit Str variable here which ends in a zerobyte so that’s why seven and not eight so basically I will do unsigned J user ID 8 and this is all we need for the first uh structure let’s create the other one at the same time this one is a little bit smaller so struct [Music] proxy response and we’re not going to be using all these fields so if we look at this one the VN is always zero and the CD will have the code so the CD is the only interesting field here because the remaining fields are ignored so destination port and destination IP are ignored but we still need to have them defined because we need to have the right size of this package so I will do do it like this I will start by creating an 8bit integer for the VN and 8 bit CD then I will just do in 16 and an underscore character and then int 32 and two under score characters we could name these according to this but U I think this show clearly shows that they are not important okay so now we have our two structures we can remove those comments and make this a little bit bigger again and I want to create a type def for these structures so we don’t have to type the whole proxy request every time and I will just call this wreck with a Big R and same here type def stct proxy response and this will be rest with a Big R okay so now I have now we have prepared everything we need basically in this file and we do need a couple of includes though because we are going to use the following functions we will have uh sockets to initialize the sockets we’re going to have connect and we also need close AG tone s and in address so remember what I told you about the network bite order so if we have a port number for example like something like this in U binary so this is a 32 bit no sorry 48 this is a bite so if we do like this let’s say this is a port number and I don’t know exactly what it corresponds to but let’s say for instance that it’s 9050 because it’s a 16 bit field so it looks something like this then we need to copy this right part and put it to the left that is Network bite order that we have the most important bits first and that is what these two functions are for HT s does it for the U the port number and the init address takes a string and creates a big so basically it first take this IP address and translates it to a big number and then it makes this network by order so these are the functions we need uh perhaps I have forgotten any uh other ones but that will be clear when we get to that point so let’s find out what um include files we need let’s begin by socket we do man to socket and why two because this is a system call that’s why how do you know if it’s a system call or a library call try a library call first three if you don’t get a hit or if you get a hit that doesn’t seem right try the uh the two okay so we need sis socket. [Music] I’ll just copy it right [Music] on this and then we need the connect that’s also a system call so Man 3 no man to connect and that’s the same we don’t need it again and what else did we need uh closeth I think that’s un SD that we already have but let’s see so the close that is also a system call and we use it to uh close down uh the connection can also be used to close down a file yeah un SD we had that already and then we need the hton s and IET address so man this is three so h t s this one and finally inet address also a library call so three here we need a couple of include CIS socket we do have already ARA inet we do also have but not netet okay so let’s see if this compiles since we are using a couple of files I think I’m going to create a make file as well so I will create new file and I will name it make file with a big M and then I will just put in [Music] all JCC talc doraliz we’re going to be adding a lot of stuff here later on but for now now this how to do it so let’s uh save and when we have a make file like this then we don’t need to issue the GCC command every time we can just do make and then it will try to compile okay in okay typo so so let’s go into the toor realize. C and this should be an if not an in let’s save and we’ll run make e this time it compiled our tool okay so the next step is connecting to the proxy server because we’re not going to create a TCP connection directly to this host and Port that we specify on the command line we are going to connect towards [Music] the the proxy IP address from the h file and the proxy port 9050 so that we have done before creating ATP client and it’s exactly the same as before so I’m going to make it quite fast if you need to learn how to do that you can watch either my TCP client episode or my creating your own web server series I will explain by haste though okay so we need a couple of um variables first of all we need an INT which is called s for the socket file descriptor return value we also need a structure which is called sock address sock address in and I’ll call this sock that’s where we spe ify all the IP addresses and stuff um okay so let’s start by creating our our socket so s equals socket and this is pretty standardized we always put in sock ey nut and second argument is sock stream for a TCP connection and then a zero for the third argument and if this s is less than [Music] zero then I will use the P error command to easily print an error and we will specify which function that produced that error and then I will just return minus one when we uh create the final version of this I’m going to use more accurate error codes but for now we’ll just do minus one for everything then we will create we will prepare our structure and that’s three things we need to add in order to make atcp connection first of all we need to put the S family to AF IET we need to put in the Sin port and use the H ton s so we get it in network by order and then we will just put in our Port variable here and finally we will put in our sock sin address s address and that will be equal to inut address and our no not our Port it should be our proxy port and it should be a our proxy IP address nothing else okay so these are the three things now we need to initialize the actual connection with the connect command so we do connect and we reference the socket uh the second argument is our structure and we need to create an explicit type casting because we need to change it to Sock address struct a pointer to a sock struct and we also need to send the reference so let’s put an % there and the sock and then we need a size and I will just do size of suck that thought to do it okay so this line will connect to the server but I will also need to do an if statement so we see if it succeeded and this should return a zero if it works if we wouldn’t remember that we can go into the command line and do man to connect and go towards the bottom and here we will find a section for the return values if the connection or binding succeeds zero is returned otherwise minus one so I will just do a simple if statement there’s no need to save this to a variable so if this is not zero something went wrong and then we do p error connect and return minus one otherwise we are connected to the proxy server so I will just Echo that to the screen so we know what’s happening then I will close the connection because I want to see if it works so close s return zero okay let’s see if we did something wrong make it compile on the first run that’s not every time and let’s run it and see what happens right we need to put some something here we’re not going to be using that information at the moment connected to proxy great so it works so now we have successfully created our TCP connection towards the proxy server and the next step is to create the uh proxy request packet according to this structure that we created before we haven’t created any function declarations so let’s do that as well so we have a main function takes in an in and an arv pointer and when I create those signatures sorry chart of course so if we look at our regular main function we use this format right here so H Char array of pointers but when I create the type signature I usually use this format doesn’t really matter okay so that’s the only function that we have this far our other function is going to return a pointer to a request and let’s name this function request and as argument we’re going to take in a sh pointer which is our destination IP and just a regular in for the destination port and let’s make both of these counts as well the count keyword means that we cannot change these variables inside of the function so it’s just input values so this is the signature I’ll copy this and then I will strip it down so it looks like our main one because we don’t need to have the names of the variables when we do a function declaration and why do we do this function declarations do we have to no we don’t we don’t have to but imagine that we put our main function in our C file at the Top If we then and try to reference the request function it’s not going to find it because it has hasn’t been Define yet but if we put our request function on top of the function declarations then it will work so that’s one reason but I think a more important reason is so you can have like a um a better look you can just watch the H file and you see the entire structure in a very good way so always do this if you have a multiple files or a Big C file uh okay that was a small parentheses sorry I copied over this [Music] one there we go and then we go into here and we will create this request so what do we need in order to do that well we need to allocate the memory for this uh request uh structure that we’re going to uh turn and we are going to reference the length of the structure a lot of times so I’m going to create an alias that or a macro and you do that using the Define and then you give it a name I will call this [Music] Rec size and uh what is Rec size it is the size of stct proxy request and let’s create one for the other one as well though Define uh rest size response size and that is size of stct proxy bon in that way we don’t have to manually type out this as soon as we need to reference the the size of the structure and um semicolon at the end oh I misspelled there we go okay so back to the C file again and I’m going to create a request pointer I’ll just call it recre sorry and I’m going to start by uh allocating the memory for this structure so request equals Malo re size like this and now we’re going to fill this structure with the correct data so let’s bring up [Music] the RFC again so the first thing is the VN and the VN should be four so w VM equals 4 and if you’re not familiar with this Arrow that’s basically the same as the dot format but when you’re using a pointer to a structure you use this um Arrow to to indicate that we need to grab into the the reference in order to get the value or set the value in this case okay so VN is four then we have the CD and it should be one because we’re making a connect request so Rec CD = 1 then we have the destination port and we need to put it in the correct format so wck this Port equals and now we use this Hon s function that I talked about before to switch it to network by order and uh is the destination Port then we take the destination IP so w destination IP equals in address destination IP and then we need to have a null terminated string with our variable and I want it to be eight characters so let’s create a definition for that find username toiz cuz we need to remove this e 1 2 3 4 five 6 7 and then a ZTE at the end so so we will use I will use string copy to copy into the W username the usern name and the maximum size is seven and then it will uh add the zabte let’s do it okay so now we have prepared this structure and now we will simply return it like so and now it will be very easy to to hand handle this because we have a function which just creates the entire data that we want to send and we know the size of this structure so we can just use the right system call in order to send it okay so now that we have our function which creates the packet that initializes the proxy connection now we’re going to use it so let’s go into our main function and let’s create a pointer of our structure request type so we can use it when we want to send the data and instead of just closing the connection like we have done here we’re going to set our request variable and use our function and our request function takes two arguments it is the destination IP and destination port and we do already have variables for that it’s the host and and Port variables so we’ll just use some so host and Port like this so now the wreck variable is pointing to a toour packet and we just need to send it using the right system call the first argument is our socket file descriptor which we named s uh the second argument is [Music] the is buffer and I think we only need to do wreck perhaps we need to do yeah we probably need to do a type definition type cast I mean but let’s put put it like this to begin with and watch the warnings and errors if when we compile it that’s usually the best workflow uh and we need the size of the packet and since we know that we we always want to use a 8 by an 8 byte buffer for the username we have a constant size of our uh request packet so we will just use that uh definition that we put in here somewhere it is I think we created a macro yes Rec size that’s the one that is the size in by for how big this packet is so now we send that packet and the next step in the process if we look at our RFC it is accepting this structure back so we can look inside of the CD property and uh look for the 90 code so how do we receive this one well we did use write in order to send the data and will use read to receive the data uh and for that we need a buffer so let’s I think the easiest way will be to just create a variable on the stack for that so buff and then we’ll put the response size as the number of bites and before I use read I always want to make sure that the buffer is empty so I will M set the buffer with zeros and uh use the rest size number of zeros so now we have a clean buffer that we can read data into um yes so let’s do read and the first argument is the socket file descriptor second argument is the buffer and the third is the size like this and if this read operation returns something less than one because the number of bytes should be [Music] returned then we know it the operation has failed and we need to show an error sorry I’m a little bit used to the JavaScript strings there we go and let’s uh free [Music] the the the buffer uh no not the buff free the uh request packet so we don’t have things line around on the Heap and let’s close down the socket file scriptor and return minus one for now so this is if the read operation fails if it has succeeded we should have a packet that looks like this in our buffer but we can’t easily access the values inside of it if we only have a string pointer so we need to create another pointer of the correct type which is our uh structure for the procure response so we will create a rest as well as the wreck and we should just be able to point this towards the buffer and that’s what we’ll do so rest equals buffer I think this should be enough and now we should be able to grab this value the CD value and I like doing it like this I will create a an INT which I will call succeed success and this will be a bullan variable but as you know we use ins as booleans we can use Char and other types as well but usually it’s in and uh this will be used as a predicate I’m not sure if you are familiar with the term but a predicate is basically a a a function or an operation that returns true or false and uh this is American English I think in the British World they use the word property for this but since we already use the property term when we describe other things I think the predicate is a better term anyhow then we can do something like this so we set success equal and we go into this structure and we check for this CD value now we’ll put this in parentheses and we do like this so what does this mean this means that if the CD is equal to 90 then success will be equal to true if it’s not 90 success will be false which means we can do like this to see if it has worked or not and then I want to print out a an error message of my own so I use the fprint F to the standard error way and I want to say something like unable to Traverse the proxy error code and then the error code I need to divide this a little bit I’m not sure you know it but if you have a large string you can always divide it by lesser by smaller strings uh and put them on different lines make sure to encapsulate them in quotes on both instances and then we will show the rest do c the rest to CD value like this and we can also do yeah let’s close the S and let’s free the w return minus one and unless this if Clause happens we have successfully traversed proxy so let’s inform that with a print F at least for now perhaps we will remove these messages when we are done okay so [Music] successfully connected through through the proxy to we will have a percent s colon percent [Music] D and then I will use host and Port like this and now I will close down the connection when we do the when we finish this uh program off we will not be closing down the connection but since we are only checking right now if it works if we are able to connect through the proxy we can close down everything and terminate when we are done so this code will be removed in the final version and we will free the W and return zero like this H the indentation seems to be a little bit off well we’ll see if we get an error okay so let’s compile this and see what happens okay uh and when we are troubleshooting code especially when we have coded quite a lot of lines of code since we last uh compiled always look at the first error because sometimes if you fix the first error all the other errors goes away so don’t get discouraged when you see a full screen of error messages like this just focus on the one at the top uh so what does it say w has no member named username interesting so let’s go into our H file and see what we’ve got user ID okay yes of course so where were was that that’s probably inside our request function right yes here it is so user [Music] ID like this okay and before I run make again I press enter a couple of times so we get a barrier that way it is much easier to see where the last couple of error messages stops and the new batch starts okay so assignment to rest star from incompatible pointer type rest equals buff okay that’s the one I was a little bit unsure about remember and I said let’s uh compile this and see what it says because in some of these cases the C compiler will perform an implicit type cast in this case and uh work it out anyway but not this time so okay so rest is a struct pointer and buff is a string pointer so what if we were to just [Music] do res like this let’s try that first seems like it worked okay so close s data definition has no type or storage class that’s an interesting error message data definition has no type or storage class close s in close in FD uni SD do we have all our include files I have never seen that error message before you SD yes didn’t I call that variable s yes and that’s an INT in in it was only a warning but very weird warning perhaps something else is wrong in its proximity if success F print F and the parentheses then we have the string and then the end parentheses close s what line did it complain about 94 okay it’s not it’s not this one it’s complaining about this one well uh there is okay so let’s [Music] see if success do and then we have this close s close yeah this shouldn’t be here okay let’s do this again okay it compiled let’s see if it works so what shall we connect to I will just do one of my web browsers and you might have noticed that we didn’t put any DNS related stuff in this one so I can’t just put in www Network technology.org or something like that that’s something that you probably can add by yourself see that as an extra task and but for aove of concept it’s not really necessary okay so I will take the IP address of my web server and let’s run talize against that on Port 80 and if this works we should see a message that we have successfully connected to the proxy and we should also see a message that we have successfully connected to the end host through the proxy connected to proxy successfully connected through the proxy to blah blah blah blah blah blah okay very nice so this has accessed the web server through through the tour Network and let’s add uh let’s add some functionality so it can send some data and read some data so we can see that it can communicate with the end host as well that is also stuff that will be removed in the end in the end result so let’s create another buffer let’s call this temp and let’s do [Music] 52 since it’s only temporary I will not think much of it so here we are successfully connected and now I want to send something so since I’m connecting to a web server I can use the head command just to grab the information about the web server versions and stuff like that that’s quite easy to do so I’m going to use the SM print F in order to create the buffer but first I want to use the M set in order to zero the entire buffer so no not I need to remember I call it temp and zero and the number is 512 and then I will do SN print F and we are going to put the result into the string variable the buffer that we call temp and we won’t be writing more than 511 characters and what do we want to put there so let’s do head [Music] HTTP like this and we’ll end by r [Music] n and on the next line I will put in host Network tech.org and and if you wonder what this RN is sorry that is the Windows standard for new l so this R thing is a carriage return which jumps down and goes to the left uh or it goes all the way to the left and the N is as usual the Line Feed Okay so now the buffer is now the buffer contains this [Applause] data and then we will just simply send it so write s temp and I’ll do string length of temp like this and then I want to zero out the buffer again or not the buffer the temp and then we want to read the results so we read from s into temp and no more than 511 bytes and then we’ll just print that to the screen with a regular print s like this let’s put it in single quotes as well so we see if there’s something weird going on that’s a good tip by the way like if there’s a line feed before the the data or something like that then we will see it like this so this will be on one line and this will be on the next sline okay save and now we will compile and let’s run it again and this is the response from the web server as you can see it works we can we are able to communicate through the tour Network and if I connect to my web server we should be able to check the logs and see what IP address the requests came from more log P here we are and let’s do tail D3 access access. look okay so here is our head and if we grab this IP address we see that it’s it’s some kind of German uh address and we can also do if we restart the tour server so we do Etc in tour restart as root [Music] restart like this then we issue the same command again we did get the output like before and if I check the logs once again we get another another IP address this time and if we do a host on that IP address we see that this time it’s in the Netherlands so our program works fine this far but at the moment it’s just a proxy server client it’s not doing what we intended it to do from the beginning you remember I want to be able to do something like talize and then run any [Music] command like curve against some IP address and then I want to in intercept the connection I want to run this command as is but I want to intercept the con the connection that the actual program does and run my code instead so it tunnels through the tour Network any program that we want to run so we can do talize and put anything here we could do like if we have a Firefox installed in the same directory we could start Firefox with toiz and then it will be tunneling through the Tor net work and we could do tell net or SSH that is what I want to do and that is the next step in this process it seems really Advanced but you will see that it’s quite quite a bit easier than one might think so what have we learned today today you have learned how to create a Sox version 4 client and use it in order to connect to the tour Network and next time you’re going to learn how to create this Nifty little tool that I called toy if you like this episode and want to see the continuation or other stuff in this Channel please uh subscribe to this Channel and hit the like button if you think I deserve it and uh thanks for watching thanks for today welcome back everyone to today’s class today we’re going to talk a little bit about something called exor so exor is an operation you like you can do PL plus and you can do minus and then you can do xor but exor uses two streams of bits and it produces different output bits depending on the input so if we have two zeros then the result is zero if you we have a zero and a one then the result is one no matter which it is which but if both are one then there it is zero so why is this useful well this means that if we use this technique in order to encrypt something then we can decrypt it if we Supply the cipher text with the same key as when it was encrypted this is a very basic form of encryption that uh is only for demonstrational purposes it’s quite easy to crack with today’s Technologies and computer power however it’s a good example on how to use exor and in this example I will only make it so that you encrypt one one single character and when you know how to encrypt one single character there shouldn’t be a problem for you to modify the code so it can be able to encrypt any length but only one character in this example all right so let’s begin by creating an exor doc file and we will also have a couple of definitions we will Define the key which also will be one character and we will Define what we want to encrypt so let’s define the key as the character X let’s do big X and and then we will Define the clear text as the letter A so we want to encrypt the letter letter A using the key X and we don’t need a whole lot of includes I will just put the standard input output age Library and in order for us to be able to see what what is happening I will create my own function called print Char which will print the character and the heximal value and it will also print a text string describing what we are printing and this will just be a single print F line something like this so we will take the [Music] character and show its asy character code and uh we could do hexad decimal but I think yeah let’s do hexad deal and it will take three arguments the text describing what we are doing and then the character twice so we’ll print the actual character and its heximal representation and I will put a0 X in front of it to show that it’s hexadecimal and that’s all okay then we go to our main function where we will do the magic so to speak we will click create a couple of Shar one for the clear text one for the key one for the cyer cipher text hard to write write that word and one for the new clear text because we will decrypt it into a new variable okay first we Define the clear text as our clear text definition this one and we will use our print Char to print the clear text before we do anything with it then we will Define the key as our constant key and do the same we will print that on the screen and then we will do the actual encryption so the cipher Cipher text should be equal to clear clear text xor key so this little Char uh carrot character here it’s is is not uh uh what you might think it is uh sometimes we use this carrot character to do when we do like x to the power of five or something like that but in C the carot character is equal to the exor operation okay so now we have created the cipher text variable containing the encrypt text using the key now we want to print the result Cipher text and cyer text and finally we’ll try to decrypt the text into another variable and this time we will take the cipher text and xor the key so as you can see the exact way that it goes forward when we take the clear text uh X or the key producing the cipher text we now take the cipher text xort the key to produce the clear text and then we we will use our print Char function to print our new clear text and that should just about be it so let’s compile this one oh I did something wrong I main that’s not right there we go okay now what line 47 ah I added a parenthesis too much so let’s jump to 47 okay it’s outside of the text but I did see it on the message where is it ah right here that shouldn’t be there all right now it works so let’s run it okay so from the beginning we have the letter A as a clear text and that is 41 in HEX and we have the key X which is 58 when we combine them together with with an exor operation we get a cipher text with a hex representation of 19 and no asky representation and then we exort the text backwards using the cipher text and the key and then get we get a new clear text with the letter a 41 so our code works just fine should be cat not CL car okay so we do two definitions we create a simple function in order to print out the results we set the clear text and print it we set the key we print the key then we do the encryption algorithm so to speak using clear text xor the key and printing that out then we do it backwards we the cipher text exort the key and get the new clear text and press print that out so today you have learned all the race to the exor operation in C thanks for watching and thanks for today what’s up guys in this episode we are going to code our own uh encryption Library it is uh Loosely based on the arc4 cipher but with some improvements which makes it more secure we’re going to expose a couple of uh functions from our library and it’s an initialization function which takes a key as an argument there’s a encrypt function and there’s a decrypt function and finally an un initialization function so it’s very easy to use and U let’s get [Music] started hello everyone and welcome to Today’s Show today we’re going to code our very own encryption Library using the arc for uh algorithm when talking about encryption that is uh one of the more easy encryption ciphers to implement but it’s a little bit bigger pro project than we usually do so I will not be coding inside of the terminal today I will do most of the work through the is code so let’s begin by launching the sociopath SCP client so we will be able to code live against the server I will just go into my I will put it in my temporary directory and I will create a new directory and I will call this Arc for spelled like this so the algorithm is written like this rc4 but it’s pronounced arc4 so I think that’s a good name for the library so I’ll simply create an empty folder and I’ll right click and open an editor then I will have access to the entire folder ins side of vs code like so and I will minimize my sociopath and close down this and I will also log into my server and attach to my screen or uh I will create a new screen instead and I will configure it and as you WR V of and as usual I will write a simple bash script like this just so I don’t accidentally close down this window and terminate the screen so let’s go into my temp directory and go into my arc for and here we are an empty folder so what do we need I will create a two files or three actually first I will have the actual code the ark4 doc like so and as I save we can see here it’s successfully updated to the server and we will also need a Arc for. H for our structures and includes and definitions and macros and such and to make our life a little bit easier I will also create the make file which is going to compile the whole thing and actually I will create a fourth file as well this is just an temporary file we won’t need this file when the project is completed but as we are implementing this encryption it will be easier if we have an example program which we can use to try things out and I will call this example. C because we are creating a shared Library so this Library will be used by different uh c pro projects and that means that the arc for. C file will not have a main function so this example. c will provide our temporary main function so we can run it all right so in the make file I will simply Define the stuff that needs to be compiled so the first thing we will be Ark for. o and you write it like this so the file that you that’s the Target and then a colon and then you write the dependencies so this file will depend on Arc for. C like so and then you Tab and you write the command so I will do GCC d c AR for DOT C like this and I will also turn [Music] on optimizations at the highest level as well as log messages and when that file has compiled successfully we will have an arc for. and then we will create the actual Arc for Library so this depends on Arc for. o and I can’t really remember how [Music] to let’s see all the flags necessary to create the shared Library so I will check how I did it in my toiz make file and I will simply copy this part right here so I will do GCC and we are compiling Arc for. o or linking actually and the output will be called Arc 4.so that’s the extension for a shared library and we want the uh optimizations and the log and then this additional Flags necessary for a well for a share Library [Music] okay there we go so after those two steps our library is compiled but I will also have the example do o dependent on example. C GCC d c except exle let’s see and I will turn on op and well and when we have the object file we can compile example which will need example. [Music] o and then we simply do GCC example. o Dash o example wall two and I will also create a clean which simp removes everything besides the source files so all o files allo files as well as the example binary executable and then I will just tell the make file what we should do as a default when we run the command and I want to compile Arc for and example so this is our make file if I didn’t miss anything I think we should be able to let’s just go into the temp and the AR for and I will set this to my home so the prompt won’t be so big like this and I didn’t save the H file I think and the example and make file there we go Arc for make file Arc for. Ag and example so I should be able to run the make now and we get a reference error for the main but the do all files should have been created yes they did so everything seems to be working even Theo file did be created even though everything is just empty source files and if we do make clean we’re back to where we started okay that’s a little bit of administrative work but it will pay off when we need to recompile and debug our code I’ll close down the make file because we don’t need to do much with that and I will actually start with the example file because if if we create the example first then we have a kind of a road map to the different functions that we need to create later on so I think that’s a rather good way to start I’m going to include the arc for H oops or for H and inside that I will have my regular definitions so I usually start by putting in the STD iio that will be removed later on because we’re not going to use any of these libraries but during development I think it’s easier to have all the usual standard libraries ready to go like so okay so how will this example file work um I’m going to start by just creating function definitions so we do everything in the order that you should even though this is a small file so we’ll have an in main with no arguments and that that’ll be all for now so I’ll create the actual all M and I never seem to learn where to find my curly braces on my Mac all right here they are so I’ll will create I will make this file a little sloppy and easy to work with because this will not be a part of our production code so to speak so I will just do it as easy as it can be for myself so I’m going to create a couple of pointers I will have one for the key and I’ll have one for [Music] the uh Source text that we want to encrypt I will have one for the destination text [Music] and I will have one additional pointer for when we decrypt the encrypted text so let’s call this encrypted instead and this decrypted that’s a little bit more obvious and I think I need to make this a little bit smaller I hope that won’t be a problem for you okay and I will just Define this statically so I will set the key to let’s [Music] see something easy like tomatoes when you run this code for real you should always create a a real encryption key so this can really be anywhere from 8 Bits to 2048 bits according to the standard but this will do as an example and the text I want to encrypt is a part part of a Shakespeare poem shall I compare the to a summmer day okay we will also need to before we do that I need to define a couple of type definitions because I’ll be using eight bits in Gears and I will use 32 bits and possibly 16 so I’m going to define those first so let’s define [Music] um we will do unsigned char that is an 8bit value and I will call this inate and not defined by the way this should be a type definition so a type definition is when you create your own type everything you write is what the source name is and the last one is the destination okay so the next type definition will be a 16 bit int and that is defined in C as an unsigned short int and I will call it int 60 and finally we need an 8bit uh variable as well and I will type this as an unsigned chart in8 [Music] um oh sorry I have done that already the only thing we have left is a regular a 32bit integer and uh that will be well a regular unsign in like this okay so now we have our type definitions and let’s continue with the example main function so we have the string that we want to encrypt we have the key we will also have a um a pointer to a structure which I will call Ark for and I will call this pointer Ark for like this so this will contain the internal state of the encryption engine so to speak and I will Define this as a let’s do it here I will do struct s I usually prefix my structures with an S that’s a stylistic choice though uh so s Arc for and what will this contain well we will we will actually use the Wikipedia page it’s a very good Wikipedia page which tells exactly how to implement this encryption not in a specific language like C but with like pseudo code okay so we have this and now that we have the key by the way we also need to size variables so let’s [Music] do in 16 and what do we need we need two size variables so let’s call those size key and size text and I will just use this string length to define those so SK equals S L key and S text equals s l f okay so now I have all that that I need in order to call the first Arc for function and that is called let me do the T function declaration it will it will be called Arc for in it because it initializes the arc for structure so this will be of type Arc for pointer and it will take two arguments it will take a key let’s do it like this unsign CH no let’s use the orate it it’s not really an integer because this is a string but every every character is an integer so it will be okay I think so in8 key in because if I don’t do it like this if I do sometimes Char and sometimes in eight and then I will probably get this signedness wrong and I don’t want that and we will have an in 16 for the size of the key and I don’t need those in poter in 16 right then we go back here here and we will set our ark4 equal to Ark for in it and we send our key and our s key like so and this is a function that might fail but that’s very unusual so I won’t care for that during this example program but if you write a real production grade program check if this Arc for returns zero because in that case The maloc Returned error otherwise we will get one of these structures back and then we are ready to encrypt let’s add some prints as well so in initializing encryption and I want to have a way of putting this to the screen instantly so I will create a definition which show which call F and I’m not putting this into the arc for. because this is not something I need in the in the actual uh end res in code this is just for convenience so F will be F flash SD out and that basically flashes the standard output buffer so that if I do a print F like this which not which is not ending in a new line it will and if this takes a couple of seconds to initialize then this text will not be printed before this delay which is which kind of defeats the purpose so I will put the F right after like this and then down new line okay and then we will let print out the input first so I will put it in single quotes [Music] and let’s do it like this a new line and then an AR an arrow and this is the front text like so then we do the actual encryption so we will use our encrypted variable so encrypted equals Arc for let’s define this first so this will return a string pointer but I will call it an int8 pointer and it would be called Arc for encrypt and it will take two arguments one which will will be an in8 pointer so the string that we want to encrypt and a size in the form of an 16bit integer like so pretty similar to the initialized function and the arc for uh encryption works like this you you don’t need a specific decryption function because if you try to encrypt the encrypted text it will be decrypted so then it goes backwards so with that in mind we can just create a macro which will be called Arc for decrypt with two arguments X and Y and this will just call Arc for encrypt with X and Y so it’s not really necessary but [Music] it makes it a little easier to use and in order to make this encryption function work we need another function called Arc for bite which produces one single character of encrypted text so this will be an INT 8 and not a pointer just a value now that we have our data types and our function declarations done we can continue with the example. C file so the encrypted variable will be equal to Arc for encrypt and we will send in the uh from text and we will also send in the size of the text like so and this is a function which shouldn’t be able to fail which means that the encrypted variable will now contain the cipher text the next thing we need to do is create a function which can will make it possible to Output the encrypted text in some format because the um the encrypted text will not be printable characters it will be any number of different integer values and I’m thinking about putting using an output like this so one B will be represented by two heximal characters like this like this so this is one b and then two byes per group and each group will be separated by a space okay so this this function uh will uh will not be a part of the library itself only this example file so it shouldn’t return anything and let’s call it print bin because it’s binary data and it will take in an INT 8 array pointer let’s call this text it’s not really text but whatever and then we will have an in 16 for the size like this and all we need to do is iterate through the text and print those bites two at a time so how do we do that in the easiest possible way there are several approaches but I’ll I think I will just I will just create an in32 as an iterator and I will have an in 8 pointer as well and I need to assert that size is bigger than zero and what is assert assert is a function which checks if this predicate function is is true and if this is not through the whole program halts so it’s quite good to use in situations like this both in this example file because it’s easy and it doesn’t matter really if the program exits and we can also use it in our production code in some places because we are coding a library and the programmer should s the ra right arguments if not the program should hold I think all right so we need to go into this Arc for and include what’s its name it’s assert Ag and in order to get all the functionality we also need to include our number. H like this now we jump down a little bit same here okay so we know that we have an input which is let’s call it input instead that we have an input which is a well which contains something length is bigger than zero okay so let’s do a loop then so four and we will [Music] do let’s make this an in 16 instead that will work better together with this 16bit size so let’s and I want to make this const as well here okay so let’s set I to size and P2 input we’re going to continue the loop as long as I is positive so I’ll just put I here because it will decrease every iteration and it will after a while go to zero and the loop ends and the PO pointer will instead increase every iteration okay so if let’s see I need to check something out so the first iteration then let’s say we have a string which is 32 bytes so I will be I will be equal to 32 and we will output to one B of data then it will be equal to 31 and we will output two more so let’s see I think we could write it like this so if I + one let’s see if I + 1 modulus 2 if that’s the statement is negative so it’s equal to zero in that case I want to print f space and in any case I will print out a head ex a decimal value with two two digits and this is what we want to print out I think this will be correct um so this basically means that if we are even so if I I + 1 is even then we will put the space and we will also use our macro F so it will uh uh print this no we don’t need that by the way because we will end this with a new line anyway so that will flush the buffer this should be all I think and let I have forgotten something but let’s try it out so what can we try it out on we don’t have all these functions [Music] yet so let’s comment this out and this as well and this is okay and what shall we print as an example we can print the key so print bin that’s actually not binary data but it will work the same so we will print the key and S key is the size turn something like that let’s see if this compiles or if we need to remove something else make a lot of warnings type Def unsigned sure expected before unsigned before unsigned uh I have an empty struct that’s probably it let’s just put something temporary here then [Music] maybe it is because of the position sometimes you you need to do one thing before the other Etc uh forgot to end the struct with the semicolon is it still complaining type ofure in if we add our type def [Music] for for struct does that error as well type of struct is ar ar for uh it’s not uploading okay I got disconnected one good thing with the sociopath is that if you reconnect like this you don’t have to do anything else it remembers and continues to serve all of your files so that’s good okay let’s save this again and this one and let’s jump down a bit clear the screen and let’s make it again okay finally pointer Targets in passing argument one of print pin differ in signedness uh uh okay so this is what happens if if I don’t use my in a eight everywhere so where did I not uh here let’s just change this to int 8 and everything should be okay okay we’re down to one screen of errors and warnings [Music] almost does it still uh seems like it needs a type cast because the strings are generally not like these static strings in side of the code they are generally not un so let’s do a typ cast in a poter and same here in poter key ah so SD L needs it as well I could just make these strings signed but then I would have the same problem in the other end instead because the encryption uh standard requires them to be unsigned so let’s just type cast this as well in 8 like so do we use them anywhere else except our own [Music] functions print F shouldn’t care right let’s do it just for the sake of like [Music] this okay let’s try it again at least we have very clear and precise error messages in see did I go to far make clean make S key equals didn’t I save [Music] save why does it okay it’s higher up in the code right in eight star and there we have it okay that should be all right make clean jump down make what does it say this time point or Targets in passing orent one of string length di in different ah I did it in the wrong direction okay that’s kind of funny so instead of in 18er let’s see there there there and there we should just have Char because we have them as int8 but the functions we’re calling requires them to be regular strings so a sign CH pointer okay this time it should look a little bit better I think make clean jump down a bit and make warning pointer Target in assignment from sh to 8 AKA unsigned different sign do so it doesn’t seem to be enough by doing this it this way okay let’s do it the other way then I will undo until I see this change like so so now all of these key and this this will probably not be but here we can do a conversion in the other direction instead and that should be all make clean jump down make okay now we’re talking warning unused variable that’s an annoying message if I don’t want to use my variables I don’t use my variables but okay so let’s do something like key equals from equals encrypted equals decrypted equal key = Z is that enough maybe I should end it with a semicolon operational key may be undefined variable s text set but not used right so it wasn’t enough to mention the key twice this is only set and all of these are used so we need a key [Music] what [Music] about from equals key okay now what s text but that’s an INT right yeah I haven’t used that yet because we haven’t gotten that far these are only warnings by the way but I when I try out my code and I want to remove everything of the sort uh so which is this this is [Music] the text so we will change the key later on let’s just [Music] do s key equals s text equals zero now it should be completely Warning free I believe no one more warning unused variable Arc for okay I haven’t used that I can just let’s comment that out for now make clean make okay finally let’s see if this works as intended example okay so shall I compare the to sumers day and then I am showing some of the key but I am showing half a group here and half a group here what will happen if where is it if I just do I here okay now it looks good it prints out in heximal characters in nice formatted group very nice that means we can begin with the actual encryption code now finally so let’s go over to the arc for uh H and begin working on our structure this will contain the internal state of the uh of the encryption engine so to speak so let’s go to that wonderful Wikipedia article so Arc for wikii and I want the English speaking Wikipedia let’s hide this and make it a little bit bigger for you guys and let’s do something like this let’s use the whole screen I will probably be looking at this anyway so there’s a lot of text here and some of it are warnings that this uh encryption standard isn’t secure but I have read through all of that and I’m not sure if I agree actually well this the thing is they claim that the out put of the encryption is distinguishable to when compared to purely random byes of data and that could be potentially be used to backtrack and crack the encryption and it has indeed been used for example the wifi encryption standard web used exactly this encryption with very small keys and a spe special kind of U seeding algorithm which they were be they were able to crack it in the wild in a couple of seconds but that’s only in combination with a web technology and there has been some talk that in combination with the TLs the encryption standard on the web it’s also not safe and it’s not safe the first couple of bytes which it produces is not safe so since we are using this encryption firsthand in our own code not together with anything else and I will also create a mechanism which will disregard the first like 500 million output bites which will stop all the other cracking techniques so I think with a big enough key which is um randomized in a secure manner I think ark4 is still secure Okay so I don’t you don’t need to read through the whole shebang but those gray information boxes are very good so there there’s two steps Step One is what I call the initialization of the crypto that’s when you only take the key and you prepare the internal state of the encryption engine and this is what you do and then the next stage which happens every time you need to encrypt one bite or more exactly produce one bite of the keystream data so then you do this so let’s start writing now let’s begin by creating our Arc for struct I will zoom in here a little bit not that much temporarily so we can have both on the same page um so if we look through this what do we [Music] need we need an 32bit or we need an 8bit INT which will go go from 0 to 255 we will need a an array called s which will be consisted of 8 bit values and 256 of them then we have the J value same as I one in8 and then we have the [Music] key and that’s basically it so let’s summarize we [Music] need int uh I in 8 I J and later on we will need a k so I’ll put it here and then we will need the array so in 8 s and 256 of them so we have I with J we have the K and we have the S do we need anything more down here we need temporary variables as well but then I won’t put them in the struct so okay this is this is all we need for our own structure so let’s begin writing on our let’s begin writing on our initialization function and this will let’s copy this whole thing let’s include our let’s include our Arc 4. h there’s something weird going on with the Caps look include r4h I wonder if you can disable the caps lock I never use it anyway I use shift okay let’s see include AR for. H and then we will do the visualization function so it will return an arc for structure pointer and the first argument is the key the second is the size of the key like so and the first thing we need to do is allocate space for the uh for the actual structure so I will create um point a point pointer for that I’ll just call it P because we’re going to reference it quite a lot and P should be equal to Malo and it should be the size of stct s AR for so the size our stct that many bytes of memory we shall we shall allocate and here I will do an if clause [Music] so let me just check the return values for my Look Man 2 No Man 3 Meo so I know it Returns the memory address but if it fails [Music] return [Music] value they return null and they set arome okay so let’s just do something like a ser insert P [Applause] error I remember then it will check if this has errored out and if so display an error message and quit because if you can’t allocate memory for our structure there’s no point in continuing show okay so now that we have allocated our structure now I will just do this and I will work in the following manner let’s close this down and change up the size a little bit and then I will paste this in and make block comments out of it I think it’s command this or control this let’s do something like this instead oh annoying I never seem to learn vs code for Mac I know all of these different things on my PC but it’s not the same on my Mac well well this works too okay so now I have in the comments what needs to be done and then I will just do it but before we begin I want to zero out all the state variables so let’s do something like no let’s just do a simple simple thing in eight X and 4 x = z x less than 256 x++ and we want to take the PS so that is the this array I want to zero that out so PS of x equals zero and then I’ll just do p i equals P J equals p k equal zero I like starting from zero instead of random randomness okay so the first thing is this Loop right here we will iterate through 0 to 255 with this I variable and we will set s of I to I pretty simple stuff the code will look kind of difficult though but it really isn’t why is this not oh never mind okay so for p i = z and p i less than 256 p i++ and p s of I equals I okay this is done so if we do one thing at a time it’s quite simple to do this actually can’t say that for every crypto and then we will set J to zero but we have done that already so we will jump into this Loop and we will let the the I variable do another uh ENT identical for Loop so let’s just copy this line like this and what will happen then we need to Temporary variables as well by the way so we need int 8 I will call them temp one and temp two and I want to zero them as well from the beginning so let’s just do temp one equals tempure = z like so okay so what will happen inside of this Loop let’s remove the things we have done already okay so this is a rather difficult line I want to break them down so what’s the first thing that happens right here well the parenthesis is evaluated first so let’s set let me see key I mod key actually let’s evaluate this first I mode key length so temp one will be equal to key so it will be key of I key of I no where am I we are here right so I mode key length so p Arrow I modulus key length so that’s the size okay so this part is okay now we can take the rest of this parentheses one at a time so P J [Music] no temp 2 = PJ plus p s of I plus key of and then the stuff we evaluated right here so key temp one and then we will set P J so now we are doing this part so PJ should be equal to everything in this parentheses which was temp two and mod 256 modulus 256 like this and finally we should swap the values of s of I and S of J so let’s set temp one to p s of I no not just I we need to change those occurrences to [Music] Pi and p i there’s a lot that can go wrong here as you can see you need to be very precise so Temp and that is why I I could do everything in one line if I wanted to but it’s very error prone and that’s why I break it down with these temporary variables so temp one is equal to p ps pi and temp 2 is equal to PS PJ and then we will just swap them so [Music] p s of p i equals and here we see that temp 2 equals this no temp one equals this that I’m working with now which means it should be equal to Temp 2 instead and then we have PS of [Music] PJ which is currently equal to which is currently equal to Temp 2 and it should be equal to Temp one and that’s it the code is very difficult to read but it’s quite simple and it’s quite easy to follow it step by step if you break it down into smaller steps and that is basically it I’m going to do one more thing though because if we go back to the Wikipedia page and we go to the next step we see that they zero out IJ and then they have an endless loop which happens every time you encrypt a character so we have a function which encrypts a character which means we only have to worry about this but this part we should put here in the initialization function because then we can just do several consecutive calls to our Arc for bite function so P of I equals P of J equals zero like so and then we just return P I think we did it right if we go back here and we remove this line and put this line back then we can print instead of printing the key let’s print [Music] let’s print Arc for S so the initial state of [Music] the the initial state of the encryption engine and I will put a one of these on top as well so we may see the difference no sorry can’t do that we haven’t initialized it yet but okay let’s see what happens clear jump down a bit make clean and make okay couple of Errors if we go to the very beginning warning suggest parentheses around assignment used as truth value well I want to use it as a truth value I I don’t really care for warnings like this I I if I want to code it this way I will code it that way implicit Declaration of function assert P error okay and here I forgot got something and Arc for has no member named s okay so a couple of more small typos uh if we begin in the H file I guess this is the problem is this a big S or small s it is a small s so why doesn’t it remember called s did I perhaps Arc for p that’s weird maybe it’s something because of this we should check if x is less than 256 so that was an easy one and what else assert peror where is that Lo okay at the Man 3 assert [Music] P okay I need this G Source [Music] thingy let’s try it again rank clear jump down a bit clear and make boom okay in 8 i j k unknown type name unknown type name in8 uh I put this before these let’s move them so I don’t like you have to break this up but what can you do this this just a warning error I UND declared okay I missed one line [Music] 18 WR 8 so this should be p i and this should also be p i okay what no error Arc for Undeclared now the problem must be higher than that Arc for Undeclared in example and pointer Targets in passing Arc for init key sh star that’s weird didn’t I use my in 8 for that function declaration let’s check it out so in8 [Music] key and in8 S let’s put this back right away [Music] and okay it’s this function in 8 [Music] inut 16 well where is it let’s check it out again so expected [Music] in8 Arc for a nit key pointer Targets in passing argument one of AR for in it differ in sness because this is a char inate [Music] key so key is a [Music] Char okay let’s type cast it [Music] down where do we have it’s right here okay so it’s currently a let’s see it should be an in 8 so okay let’s see what we have still a warning about this one but that’s nothing we can do anything about un reference to Arc for init uh we need to link that [Music] one let’s just no so go into the make file and then we will do let’s make it easy I will just do uh Arc for.so as one of the input arguments so clear jump down a bit make and now it still doesn’t compile undefined reference to Arc for init what did it draw GCC AR 4.so [Music] do do I include it in the header file include Arc for. H include Arc for. H Arc for init and if find reference okay for the time being let’s cheat a little bit I will fix this later around I don’t have the patience right now so I’m going to go [Music] and when we compile final program we do AR for. instead like so okay this time it worked we probably need to explicitly export uh the functions when we use the the share Library I will dig into that in a little bit but now we do have ourselves a binary so let’s try it out that doesn’t look very good let’s do M TR DF M look I don’t know look let’s try the S right initializing encryption H how did I write that if Clause by the way maybe I reverse the conditions let’s see if be my look okay this should [Music] be the other way around so if P all right make clean clear and we run example did it remove everything when I did make clean Arc for CH HC yes so how come it freezes there Malo size of struct s AR four if that is zero assert P error for X = 0 x less than oh 256 I think that zero means that it’s some weird number format okay no errors at all no warnings even but the same outcome what is this do we have an endless loop on our hands that’s probably the only possible thing right so p i = z while Pi I is less than 256 maybe we should do this with a little bit bigger structure um this could be in6 since then we are probably overflowing that 8bit variable so that was is n the case 4 x = z and what is X x is also an in8 so that should be the same problem though right there we go finally okay so this is part of the internal state of the of the encryption okay so the next thing we need to do that is creating the arc for bite function which will create one single bite of the key stream and the key stream is what we will use to encrypt and to decrypt stuff so let’s begin I will have in 16s with temp one and temp two just like before and we do need an argument by the way we need to attach the the structure so let’s alter this and put in the arc for Star so we can have access to the internal state of the encryption and just like before I will go to the Wikipedia page and this time I will copy this part so in this code studo code right here they use a wi Loop and they loop as long as it’s generating output but will not do it like that instead this function will be called each time we will produce one bite so we don’t need this Loop that will be handled in the encryption function so let’s do it like before and take one line at a time so we will do p i [Music] equals and then p i + + one and we mode it with 256 first one is done then we do similar with the J part so PJ equals PJ plus PS of p i so we just replace the variables with our variables inside of the structure and we mode this with two five6 just like before okay then we will swap the values so this is like we did previously with the um the initialization function so I will let temp one equal p s of p i and temp 2 will equal PS of P J like so and then I will just I missed the S right here and then I will just do PS of p i equals something and PS of P J of p i PS of PJ equals something okay so temp 2 equals the J part which means it should equal the I part now this equals temp 2 and the PJ should equal temp like this and then this one is done as well why did it mess up the indentation never mind okay and then we have this T variable that is their version of our temporary variables so we’ll just continue as before so temp one equals in the parentheses p s of p i so this is not really a spectator SP Sport I hope you don’t find this too boring but we’re almost done plus [Music] p s of [Music] P J and then we mode it with two 5 six and then we use the K variable for the first time so p. k equals p s of ter one and this is the first final output bite as we can see right here so let’s take care of these indentations and then at the end we just return PK like this and then we have our Arc for by function which is the most important in this entire project so so the next step will be to implement the arc for encrypt and this is quite straightforward to do now that we have a um Arc for bite function so let’s see we need one more argument we need to include the Arc for structure so AR or do we yes we do Arc for star and we go here and do Arc for p and in 8 this will be the what shall we call it the thing we need to encrypt the clear text let’s call it CT for Clear text and in 16 this is the size size of the clear text that we want to create and we’ll return this as a um well as a Char buffer a regular string actually so let’s create a in6 which will hold the amount of memory we need to allocate so let’s call this mem size and we will need exactly as much memory as this size + one okay so we don’t really need to because when you encrypt something if we encrypt ABC the resulting Cipher text will be something like this it will be the same number of characters which makes it quite convenient for us we don’t need this variable instead we’ll just do um let’s create a variable first so let’s call this cyer text and let’s call this clear text because both will abbreviate to CT and we can’t mix those so in8 Cipher text and Cipher text will be equal to8 look and we [Music] want size + one size should be enough really but I like allocating one more just in case we will also need something we can use as a counter let’s call this in 16 x we do a for Loop where we set X = to [Music] Zero and we’re going to loop as long as X is less than the size and x++ and what are we going to do at each iteration let’s create a let me see we need this and that okay let’s do it like this so the cipher text of X will be equal to the clear text of X and then we take this symbol and some people usually mix this up with the power of but this little symbol in c means exor so exor is a binary function like do you have if you have two zeros the result will be zero if you have one one Z and one one and a one the result will be one if you have a z and a one so the other way around it will also be one and finally if you have two zeros it will be zero so that is what xor is it’s usually used in conjunction with uh the key stream that a stream Cipher like Ark for produces so here we will just call Arc for bite with our p and that will return one BTE of key stream which we will exert with a clear textt and that will produce the cipher text and let’s do a an error check here as well so if Cipher text is zero then we want to um [Music] assert P error R number like so and if everything goes well we will simply return our new buffer Cipher text quite simple straightforward encryption function and we need a decryption as well but that we have already defined because it’s the same function just that we give it the the cipher text instead of the clear text and the key is the same so basically this part is the same okay so that is done as well and before I forget let’s see encrypted equals R [Music] for so we can take this back now and we encrypt the de clear text and we print out the the encrypted Sor this should be the size of the text this should be the encrypted because this time we don’t want to check the S variable in the structure we want to see the actual encrypted text yes okay so after we have printed the text what do we do do we just use the decryption function no we can’t do that because in order for everything to be the same we must uninitialize the uh the arc for and we need to reinitialize it with the key again so we start everything from scratch and then we can start to decrypt otherwise it won’t work so let’s create [Music] our uninit function as well and that can be avoid Arc for let’s make it easy for us for the time being because there’s only one thing we need to do at the moment when we when we uninitialize and that is to free the um memory allocation so let’s Define arc for un liit of X as fre X I will also need to find let me just do a fast Googling after export C shared Library function because there’s a special string we need to use to export the functions let’s [Music] see this one so let’s make a definition we Define a keyword named export and it will be the same as this so all the functions that we want to export like the arc forb function we don’t need to export that because the end user will only use the encrypt and decrypt functions and the init so we put export before this and before this say and we need to do the same here so export and not this one but this one export like so okay so that that is done as well now we may continue our example so we have printed the the encrypted strings now we’re going to uninitialize so we do Arc for un init on the ark for pointer then we repeat some of the steps like before so let’s copy this part there we go [Music] go and let’s create another one of these CED so I will copy this part for okay something like this and let’s put the arrow one two one two like this instead okay so we initialize [Music] and we need to change the order of these because we need to decrypt this first so it’s initialized now we will create our decrypted so decrypted equals and we will use the decrypt function but but as you know it’s the same the only thing we’re going to change is the from here we have the cleare text before now we will do the cipher text which we get from this encrypted call so where were we decrypted equals and this should be encrypted and everything else is the same and this should be decrypted as [Music] well and then we don’t need to print the binary okay so if we have done everything correct then [Music] the encrypted the decrypted text should be the exactly the same as what we had from the beginning so we take the text we encrypt it and we decrypt it back to the start so let’s see okay let’s save and we make clean jump down we clear and we do make okay not a lot of errors and warnings let’s start from the beginning error T undefined size plus T text 54 in Arc for. [Music] C 54 Cypher text size + t + 1 should be plus one okay we got more errors let’s do make clean first make okay warning this four clause does not guard 4 x = z while X is less than size x ++ x = z x is less than size X ++ which shouldn’t be a problem this St doesn’t guard this statement return CER but the ladder is misleadingly indented okay so it even checks my indentation thing but sometimes that’s good actually I have corrected errors in the past because of that so let’s see what it [Music] says okay it’s this part let’s move it here we make clean we go down and we clear and we make again okay passing argument one of Crypt from incompatible pointer type Arc for encrypt from okay let’s see Arc for encrypt from encrypted equals Arc for encrypt from and from is set to this okay we probably need to type cast this down but it worked before right never mind in int 8 star let’s do it like that do we have any more occurrences so the same decrypted no okay let’s try again make clean and make all for encrypt from incompatible pointer type encrypted equals uh wait a second I forgot to attach the structure right we did change the signature of that function so where were we look cryp the first argument should be the arc for like this and same with the decrypt so Arc 4 and we need to add a variable to the macro as well so XY [Music] Z XY Z like so let’s try again make clean clear and we make and we have this sness problem again so encrypted equals AR for encrypt AR for encryp so let’s see encrypted how did we declare encrypted okay let’s move this to its own instead decrypted decrypted as well I think so in eight encrypted decrypted we make clean and we clear and we make okay almost there another okay that’s our temporary assignment we don’t even need that anymore so let’s just remove this part and this as well save make clean clear and we make okay it compiled let’s see what happens okay initializing encryption done and then then it shows the string that we want to encrypt and it shows the hexad desmal version of the encrypted text then we reinitialize we feed it with the cipher text and we end up with the same string as we had from the beginning so everything works the only thing we should add to this that is the remember when I talked about the that some people think that the arc for encryption is not safe one of the biggest concerns was that the first like thousands of or millions of uh bites is um not good enough so to speak so we need when we initialize we need to like I call it to White Wash we need to whitewash away the first like 50 or 500 million [Music] um of these yeah so let’s go into our encryption function no our initialization function this one and I want to create an M32 which I’m going to use as a well I’m going to use it for a for Loop basically I don’t really want to call it I because that makes it interchangeable with this Pi so let’s just call this C for count n for number and is good and let’s go into the let’s see Arc for and we create a macro for this so we Define arc for white wash and we need a we don’t need an argument actually and what we’re going to do if by the way we do need an argument let’s take the variable for the loop as an argument so the only thing this will do is a for Loop where we go from X = Z while X is less than um let’s call it white wash Cod or what was let’s call it m so this these are millions of iterations so X is less than Ms * 1 1 2 3 1 2 3 and i++ and the only thing we need to do is okay we need one argument more the only thing we’re going to do let’s do it on the next slide uh we will call Arc for B f with the structure or pointer of the structure as an argument so basically that we will call this which it will generate a a bite and each time it Loops it will do that but we’re not going to do anything with that bite because all we need to do is get it had in the well in the state so to speak but if we do it like this then GCC will recognize that it’s redundant and it will as part of the optimization it will just remove this so we will need to typ cast this to something called volatile in8 like so and that basically means in this context that GCC should not uh optimize it okay so let’s put this as part of our initialization so when we are done with the rest of the initialization steps at the end here we will simply call The Ark for white wash and specify our variable for the iterations and the name of our structure which is p like this okay and if this works we should see that it takes uh longer when we run this initialization a couple of seconds uh we also need to define the M’s so how many million iterations should we have and I want five 100 million think that ought to do it if you think it takes too long when you run this try changing this to 250 or 100 because I have a quite fast CPU so this should go quite fast and we save everything and hopefully we haven’t introduced any additional errors make clean and we clear and we make yes we did okay what does it say okay i++ that’s [Music] wrong where were we here so it should say x++ right all right let’s try it again clean down bit and we clear and we make it compile let’s run it initializing and as you can see it takes a couple of steps and then it does the same as it did before only this time it’s probably safe as long as we have a really good uh encryption key which we don’t at the moment at the moment we only have in this example at least we only have the the word Tomatoes we should randomize a 20 48 bits key if we were to use this in the wild but everything works exactly as we intended it to so we have successfully implemented the arc for uh crypto and we have turned it into our own our very own uh Library which can be shared between different applications and when I create um a project for transferring and encrypting files I will use this library for that so then I will show you how to how to use this like library in your code but I hope you enjoyed this and don’t forget to subscribe if you like this and want to see more there is a lot of uh Advanced to see videos coming forward so don’t miss out and stay tuned thanks for watching and thanks for today [Music] the first thing I would want to do before we start with actual encryption tool is we need to install the uh the library so how do we install our own Library well let’s go into our uh directory and let’s alter our make file a little bit so if you remember the ultimate Target of this make file is to create this Arc for.so however I’m going to rename it to lib Arc for so because it will be easier to uh use it if it has the correct naming standard I will also have to check what the correct Library directory is before it was always user lib but now at least on my 64bit Linux system it is this one so you need to add this x86 Etc so let’s grab this and um we also need the include directory but that’s just user include as usual I think us include yeah so let’s create two variables one which is going to be the ink deer and I will put user include that’s where we put the H files and then lib D that’s where we put the library file so when we have compiled lib Arc for.so then we will copy lib Arc for.so to the let’s see the uh lib deer and we’re going to copy The Arc for. to our ink there like so and then we’re going to run the command LD config which will update all the configuration files necessary for the library to work okay let’s try it and we need to run this as rout because we don’t have right permission to that directory so let’s begin by doing make clean and okay by the way it will be better if we create a new Target which we’ll call install and let’s grab these three lines and put them here instead so in this Arc for we compile the actual library and then we do make install as its own command to install it uh so make clean let me just clear so make clean and then make and finally Soo make install okay no errors so let’s go to the directory for today’s program I’m going to call it um f see and I’m not going to tell what the fs stands for but the E stands for encrypt and that’s because I don’t want to spoil what the ultimate end with this project is and I’m going to tell that in a later episode so let’s create a test file test. C and we will include just the standard iio and we’re going to [Music] include we going to include our own arc for. H and we use these angle brackets because now it is installed globally on the system and then I’m going to just create an empty main which return zero so basically I just want to see if it compiles um okay we need to let let’s run one of the functions in that Library so what do we have we have AR let me just let check so more youer include AR four [Music] so let’s do Arc for init it takes [Music] the the key and the size of the key that’s right so Arc no Arc for init and a key and the size of the key invitees so five this should work and let’s cast this to a volatile so let’s cast this to volatile uh Arc for pointer and that’s basically just so the compiler won’t simply ignore this line because we don’t do anything with return value okay so then then we first compile it with the dash C so test. C and we get the object file and now when we’re going to link we do GCC test. o o text and we uh if we don’t add anything else we get the error that it doesn’t find Arc for in it but this is globally installed on the system so all we need to do is add- L Arc 4 and it compiles and run great so so now we have installed our uh Library okay guys uh let’s end there for today and we will continue this uh project uh another day don’t forget to like And subscribe and thanks for watching and thanks for today sup guys welcome to Today’s Show today we are going to answer this question y 755 you have probably sometime used the command change modk 755 and the name of a file or directory but what does this 755 mean in the detail this and more we’re going to talk about today when we are discussing Linux file system [Music] security and this topic will be divided into the following different things we are going to talk about file permissions uh and that also is applicative to uh directories uh and it’s a huge part of the Linux and Unix security we will also discuss the different targets that you can set these permissions for and uh we will also discuss the change mode command in detail how to use it and if we have time left I will also mention the change own uh command plus I will be teaching how to view permissions as well so let’s start with the different permissions that are available on a Unix and Linux system so first and foremost we have read and read is what it sounds like if you have the read permission on the file you can open the file and read its file contents if you have read permission on a directory you may list the contents of that directory all the file names so read has the character flag of R and that is important when it comes to the configuring of permissions using the change mod command and also while viewing the permissions but there is also a numeric representation of that uh R flag so for the read permission that is number four and there is also a binary representation but I’ll get back to that in a little while then we have the right permissions and that is a w as a flag and number two in the numeric representation so what is the right permission well if you have the right permissions on a file you may edit the file alter the file contents and save the file you may also delete the file and uh if you have the right permission on a directory you can do basically anything almost you may uh delete files you may create files rename files but there is also a third very important permission which is called AIS and that has an X in the flag representation and a number one in the numeric representation so what does access mean read and write permissions are quite similar for directories and for files but access differs quite a lot so if you have the access permission for a directory you may enter that directory you may access the directory so basically it means you can CD into the directory uh if you only have the access and not the read you may not do LS and show the contents of that directory but you may access it and you may go to sub folders if you know the name of them and if you have the access permission on a file on the other hand that means that you may execute that file so executing a file that’s basically when you run a script or when you start a program so for example the LS command is a program if you have the X flag you can you may run the ls command otherwise you will get a error message saying permission denied so that is basically it when it comes to permissions but I also want to talk a little bit about their binary representation so let me just scroll a little bit okay so why are we talking about binary that is because I want you to understand how this system is constructed it’s a very very intelligent system which are based on those flags so this kind of flag system is not only used for permissions it’s used for a lot of different things in the Linux operating system but also in a lot of lowlevel code like C programming and stuff and you will soon understand why okay so if we convert the number uh one to Binary with four digits we will get 0 0 0 1 okay if we convert the two we will get 0 0 1 0 and notice that we don’t have a three we have a one we have a two and we have a four why is that well if we convert the four to Binary then we get 0 1 0 0 so a pattern emerges what we can do is we dra draw a line right here and right here and then we see that all those ones are in different columns uh which means that we can combine them as we would like so let’s say we we want to combine the read and the write permission that would be the number four plus the number two = 6 so if we give the number six when we configure uh the permissions it will set both these two flags and if uh you use the ls command to check the permissions then it only needs this six because if you look at these three numbers 1 2 and four the only way to produce a six is by using the four and the two and that is true for all possible combinations of these values as we can see here the ones are in their own column so if we set this or if we set this or this it won’t alter these ones and what is it that mean well it means that with one single integer we can basically store as many flags as we would like at least up to 4.3 billion or whatever and we can store all possible combinations of these flags as well in one single integer and that is a very very powerful way of storing data okay the next thing we’re going to talk about is the targets and the output of the ls command and let’s start by talking a little bit about the targets because we have these permissions read write access but who do we give the permissions what do we set it on well we have for every file and every directory we have three different Alternatives we have the owner and that is also called the user we have something that is called group and we have other and these are kind of self-explanatory the user or the owner that is the owner of the file basically so if you have created a file in your home directory for example then you are the user or the owner and uh that means that you’re allowed to change the permissions if remove all the permissions then you cannot open the file but you may give yourself read write access and then open the file can also delete the file and stuff like that so for you you need to decide for every file in every directory if the owner should have read or write or access or any combination of the three and same goes along for this group so every user on a Linux system is a member of at least one group but possibly several so basically the administrator the root on the system May create the those uh groups and you can be a part of one group or you can be a part of uh thousands and you can be part of named groups or simply a numeric representation if you set permissions for a specific group then you have endless possibilities because if you just have these three different levels the owner the group and other other is just applicative to those who are not the owner and not the member of any group so it’s a very simple uh system with small building blocks but you can create really powerful things with it and we are going to talk a little bit about the flags of these targets as well so let me just put them down here again so the user is the official name for this owner of the file so I will call it user from now on but sometimes it it’s being called the owner as well and then then we have group and we have other so it’s very easy to remember those flags because the user has a u the group has a g and the other has an o so when you set the permissions you have the possibility of using these Flags to specify the target but there is also a combination of all these which is the a flag and that basically stands for all so it Alters all these three targets and sets the permiss permissions you specify okay what else well you may also use combinations of these so if you want to set for the user and the group you just do U or other group OG so AC a system but kind of simple to use anyway uh another thing I’m going to do is I’m going to color these different uh targets so the user will be yellow in this example the group will be green and the other will be purple or possibly pink and and then I’m going to zoom out a little bit so we may see everything here okay so if you do the regular LS command then you will uh only see the names of the file by default unless you have changed the default settings by an alias or similar but if you do like it’s shown here ls- A L and this is an L A small L not one so ls- a then you get one line per file or direct directory and you get some additional information like the day it was altered and the the the size of the file uh and stuff like that and then we have the names to the right but the thing that is interesting in this example are these right here so perhaps you have seen this before but haven’t given it much thought these are the different permissions and it might if you look if if you’re not familiar with this it might be difficult to make sense of this because it’s just a lot of different characters and you may not see any pattern here but let me do this if I take my Jello pencil and I highlight this part and I’ll take my green and I’ll highlight this and finally I will take my purple or pink and highlight this and then I will zoom out a little bit again do you see now so in this example if we look at the first uh the first uh file or directory the ETC then in yellow we see the users permissions that’s always displayed first so the user has read right access and uh the next one is the group and as you can see there is read and there is access but there’s only a dash in the place of the right so this means read access but not right and same for the other at the end here and if we look at the next line there is the same uh format but this time there is read write for the user and read for the other two then additionally we have this lone lonely d right here uh and that only means that this is a directory and often you will uh be able to identify that because there’s a either a zero on the size or a or the same number for every directory plus you can see this slash at the end in some implementations and configurations of the ls command okay and about targets now we’re coming to the last part of this uh episode change mode change mode is the command for altering permissions on a Unix and Linux system and you do change mode and then something and then the file name like test.txt but what do you type in the middle right here well let’s say we want to give those permissions for the files that we see right here so read write for the owner and read for the other two then we have uh a couple of options we may construct a string which looks like this U equals read write group other equals read so if you put this string in the middle here then you will get those permissions that’s one way another way is to give all the read permission and then the user will add the right permission so this is a plus u+ W so there is the a lot of possible ways to define those groups if you just do if you leave out the A and the U Etc and just do plus read right then it applies to all three groups and you can also do a equals nothing to remove all the permissions I do that sometimes so I run this command and then I specify like group plus r or something like this okay that is one way which is good to use when you are setting permissions that is not very common but if you are changing similar permissions like often there are there is an easier way and that is using numbers so now we come to this 7 five five stuff what does 755 mean well the first number is user this is the group and this is other and if we go back to the first is slide right here if we combine the four and the two and the one then we get a seven which means that seven is read right Axis and the five well there’s only one way to construct the five and that is one and four of course so read and access that is five so this command means that the user will have read write group other will have no the user will have read write access and the group and other will have read and access that’s correct so 755 is something you use a lot because you want to give access to directories and er run permissions for scripts and uh programs and another one which is very common is the 644 that means us sir read right group other read that is usually what a regular file will have will have by default the directories most commonly have the 755 by default and finally another number which I use often on home directories is 700 which means I am the only one with any permissions to even access my home directory what have we learned to today you have learned about Linux file system security that there are three parts to it the file permissions targets and the change mode command let me say a couple of words about the change own by the way as you might have guessed the change own command changes the owner of a specific file so let’s say there is a user called user 5 and you want to give them the ownership of a directory then you do change own us Sur five and then the directory like Etc or whatever if if you want to give a specific group as well then you add a colon and then you type the name of the group so if you have a group called users you will type user five colon users today you have also learned about the read and write and access permissions and uh they flag and numeric and binary representation and what how you can make use of all of these combine them in infinite ways you have learned how to use the ls command to check the permissions and what these different characters mean you have also learned about the three targets the user the group and the other which uh you are able to set permissions for for any file or directory in the system and finally you have learned the change mod and the change own commands which changes the file and directory permissions and the owner respectively okay guys this was a new format using my I P to draw those things I think this is a good format for these kind of videos uh let me know what you think in the comments and uh more c videos are coming up so please subscribe by clicking the little little red button on the bottom right on your screen if you want to Subs subscribe and uh thanks for watching and thanks for today okay so how will our file uh encryptor work well we’re going to create an out file which consists of the first two bytes is a random number between 1 and 65,536 then we will have some padding so if we have the random number 500 then 500 bytes of random bites will follow then we have a 100 a 256bit hash value which will be our hashed uh password or or hashed encryption key that’s so we have an ability to check if we have supplied the correct password or not and then after that all the contents of the file and all of this will also be encrypted using the same key as is hidden in the Sha hash and if you want to know how this works and why I need to do all of this and I have recorded a special episode just for that which I will also link to in the description okay so let’s start [Music] coding as usual I’m going to start by defining the main so I know what functions I need and where when to do them Etc and then I will start filling out the those empty shells with real functions I call it a function signature driven software design okay so let’s include SD IO and all the other ones that I let’s put that in the H by the way so we’ll simply include FS e do H and inside of here we I will put all my regular include files perhaps we won’t be needing all of them and then we can remove them later on but this way we don’t need to pause all the time by looking at and finding these include files string.h and finally we also need our very own arc for. H and let’s create a sign signature for our main in and Char double star like so so how do we want to structure this well we’re obvious is obviously going to need a an arc for instance and we are going to need a key an in file and an out file so sh or let’s use our our own integers so int [Music] 8 let’s make it easy we can convert to our own when we need it so Char and what did I [Music] need in file and out f and we’re also going to need an INF FD and an out FD so that’s a file descriptor that we get from the open Cisco and we’re going to need an int8 for our [Music] key and then we need a couple of sizes at least we need the size of the key so let’s do an in 16 key size like that okay so if r c is less than how many do we need one two is less than three then we’re going to print to standard error and tell that the usage of our binary file is in out and the first is arv and that’s all there we go I hope it the text size isn’t too too small for you and then we’re simply going to return mine as well and now that we have enough arguments we can assign our in file to rv1 and now out file to RV two little bit easier to handle so we don’t have to remember which these are next step is asking for the key or or let’s open the file in file first because because we want to abor early if we don’t if we’re not able to do that so in FD equals open and we’re going to supply the INF file and we’re going to do read [Music] only like this and if infile is less than one F print f stt unable to no let’s not let’s just do print error open and return minus one okay so now the in file is open let’s do the same with the out file by the way so out FD equals open because the file may already exist with the wrong permissions or be badly formatted Etc so let’s open both out file and this is O right only and we also need all create so we create uh the file if it’s not there already and we also need permissions for the file and that’ll be 0 0 600 so only our user will be able to read and write that file and if this open operation fails then FD will be the less than one and in that case we want to close our [Music] NFD and then we’ll do the same as before let this okay so now both our files are open let’s read the key so [Music] key Let’s see we need to have a function which reads both the key and the size of the key right but since we are reading the input from the keyboard we can just do a string length on it we need to improve this when we do our much more secure version in the future sometime okay so key equals read key and uh maybe we’ll Supply some kind of a [Music] prompt key like so and in this case I will do an insert so we also need to include all the sech stuff and that is basically two things we need to [Music] include insert. H and we need to Define G Source if we don’t Define the new source course the assert uh function will still work but another function which is assert P error will not but if we have that definition at the top of our H file everything will work perfectly fine okay let’s see in 6 no the it should be an int8 pointer which we called read key [Music] and in8 here as [Music] well so we need to basically read the key from the keyboard and um uh don’t Echo the characters to the screen so let’s see we’ll wait a little bit with that we’re going to set our what did we call the [Music] key key size key size will be equal to the int [Music] 16 of string length key well let’s do Char like so and then we can change our key to in8 okay so we have read the key next step is to start reading from the uh standard no the next thing is to start writing to the file and the first thing is those two byes of the padding length which will be completely random using a secure Rand function so we need that secure Rand function so let [Music] us let’s create an in8 Let’s see we need to have let’s do in6 and we will call it [Music] the padding length pad size and the actual padding will be stored inside of that in 16 right yes and we need an INT 8 array for the um actual padding bites like so so basically we will do something like pad size or pad size equals [Music] secure round and we need two btes something like that P size [Music] I’m not sure if that’s the best way though it’s a little tricky to store these kinds of data well how do we store it because we’re going to need it for an in6 like this but also for a long string of characters I think we’ll do two different variables this must be the easiest way so let’s say we have an INT 16 called pad size 16 and we also have an INT 8 which is the pad size [Music] eight that should be it so pad size 8 will be equal to this and pad size 16 will be able will be equal to let’s see we need pad size eight D referenced so let’s have um it’s a lot of variables for the same thing this can probably be done much better but I don’t care right now I just need something that works works so pad SI 16 equals the in 16 version of pad size 8 and the actual pad size will be pad size 16 the referenced that should be it right think we need to print this out to see if it really works P size perent [Music] d and this will be the in of pad size this is a lot of different conversions well let’s see if that works um right okay so the only thing is we have the opening of files this is commented out and then we have this so then we can start with this a secure run thing yeah let’s do that close [Music] NFD close alt FD free pad size eight return zero like so okay so how do we create a secure a cryptographically secure function for generating random random numbers there is actually a system call which is [Music] called if we go into the U random I think there should be yeah get random and that is a system Co so basically it returns the size of a buffer of a specific size so if we say that we need eight bytes of random data we get that perhaps or we get less that depends on the entropy pool so basically the the this function uses a lot of different signals like what has occurred since the computer booted up all of different things it puts in a a big pool which is called the Anri pool so you can only create a finite uh amount of these random bites between all all the the whole system and when you run out of entropy you have we just have to wait so you can call this function with two different flags first we’re going to call it with give us all that you have and exit if you don’t have enough and uh if we don’t get all the BS then we will call it again but we will put a message to the user that this may take longer than usual and then we’ll call it without flag well the alternative is that we don’t use a cryptographically a secure version of this and I want it to be un Hackle so this is the stuff we’re going to use this random which means that it doesn’t use a pseudo random function which is not good enough for cryptography so we need to supply the random and then it relies on the ENT trippy pool and basically we will let it be nonblock the first time around and uh the second time without the non block is says Pi so uh size return value and we have the buff and the [Music] size and I think we can supply a Nole buffer to get it on the Heap or perhaps not never mind let’s allocate that ourselves and where is this CIS random. so let’s go into our H file and include sis random. and let’s see this will return in 8 array and we called it secure round and we just need to send number of bytes let’s do in 16 and let’s create this function so int8 array and secure round we will have an n16 size and we need to have an in8 pointer let’s start by checking the size length so we need to assert that size is bigger [Music] than zero [Music] and yeah that’s basically it P will be equal to and in 8 my of size byes we will assert [Music] P or by the way let’s not assert P if yeah let’s a SE p if we run out of memory so Malu will start to fail everything will fail anyway so okay so now we have our buffer we need something that catches the return [Music] value size [Music] and will be equal to get Rand get random and it will be P perhaps we need to no we probably don’t need to type test that and and then the number of bites that size maybe we need to type cast this to a size T and we need the flags right so this and then we have the same but non block so we need it to be random and we need to be non blow so this may return let’s do if n equals size then everything is okay and we can return p and if n is less than zero something has gone wrong and we need to return zero else it means that we did not get enough bytes which means we have to run this again so we do F print F STD L warning pool is empty this may take longer than usual something like that and then we call it again n equal get random and this time we need to Incas incase pointer p+ = n so we will supply p and this time this value will be size minus the N bytes that we have already gotten right and we need to supply the gr R [Music] ND uh random but not non block there we go and if n equals sides [Music] return we need to D allocate by the way and yeah then we need to save a copy we can’t free it if we have jumped it around well we can just jump it back that’s better actually no we don’t need no how many B okay let’s do it this way no hesitation so if n equals size then we return start if n is less than zero then we will free start and return zero and in all other cases it has failed again so we can simply do else here instead and this should be our function so if we call it with two bytes like this and everything is okay we should get different result each time let’s see if this even compiles nope but when does it ever first time in main second argument of main should be sh star star what did I do ah forgot one star we can’t make the main a single star there we go one G couple more to go right open did you mean pop po p open no I did not me me P open that’s a library called for nbes let’s see open what do we need man two open what do we need Okay so let’s include this FC and whatever if INF file is less than one comparison between pointer and integer in file uh where is it if in file if in [Music] FD in [Music] FD alt FD this one was right inate padding unus us variable key size set but not used warning unused variable but it’s compiled so let’s see what happens [Music] F yeah we need to mock these files let’s just touch in file and let’s do FC in file out file 45 938 40 950 yeah this works perfectly well great okay guys let’s create the read key function which will be a quite simple function it’s going to read the key from the keyboard and uh the only thing we have to make sure is that we don’t Echo the characters to the screen so the only thing we’re going to have right here is a prompt and what do we need we need a buffer represented by a pointer so so let’s see we’re going to return an int8 so let’s make this an int8 pointer and we’re going to Let’s see we need a temporary buffer on the stack because we don’t really know how many characters to allocate so let’s let’s say let’s do unsigned Char no let’s do Char and let’s say we have a Max limit of 20 48 bytes or that’s a bit much perhaps because the biggest size uh in a 24 the 8bit encryption system is 256 okay so let’s make it 25 five no 256 because as you know this isn’t the index this is the number of um chars that we want to allocate so counting the zero it’s 256 okay so let’s begin by write writing the naive version of it that Echoes to the screen and then we will simply uh fix that after words so how do we do with this we don’t have to make it so difficult let’s just begin mem setting shouldn’t call this AR buff we’re going to M set the buffer with 0 256 of those then we are going to to read from standard in standard out standard from standard input into our buffer and we have to no we don’t have to cast that and we’re going to read a maximum of 255 so we have room for the ending zero as well okay so now we have read one line we need to remove the ending new line from the input as well and we’re going to need an in for our Let’s do let’s do an in32 for our length know why should we do as big as that an in h right so size and we’ll simply just call string length on the input and then we will let’s see if we have AB b c d that’s the length of four and the indices will be 0 1 2 three and if we have a new line at the end this would be index 4 and the size will be five so let’s do an index as well and index will be the size minus one so let’s do let’s Point our pointer towards uh buff plus uh index and let’s zero that out like [Music] so and then we will allocate our buffer so this will be an in Mal size and if my look fails everything will [Music] fail and if it works we will simply copy our [Music] string to p and from buff and the size will [Music] be size right or maybe minus one by the way just to make room for everything um okay let’s remove this and did I forget anything yes we need to type cast a little bit so the size is an in8 so we need to make this in8 no right an in8 like this and we need to send the bu we can send the buffer as he is read buff no set buff take my look going to string copy to P from buff I think this will work right perhaps we need to cast this one and then we’ll simply return P we also want to print our um prompt let’s not forget about that so let’s do um print F and then our prompt and the space and we get the prompt right here and then we need to flush the buffer because we are not ending the printf line with the new line so we need to flush it manually standard out like so and here is our first version of that code did we create our uh yes but we didn’t make this an int8 this should be a Char okay so let’s let’s try it out without the echo with the Echo and where are we key equals read key thir key yeah let’s try it so [Music] make okay what is it differ in signedness P = buff plus index so it’s this line so P equals buff which is a Char so we need to do in a star plus index don’t think that will be a problem and PS let’s try it out okay we got a got a binary yeah okay so let’s try it out infile out file key AB c d uh we still have that pad size thing we can remove that but it seems to work okay guys uh let’s end there for today and we will continue this uh project another day don’t forget to like And subscribe and thanks for watching and thanks for today [Music] let’s that so print the PAD size let’s just delete that okay okay guys so now that we have our key retrieval function we will need to improve it a little bit and remove the echo of the keyboard characters from the screen so in order to do do that we need to use a function and that is located in an in a header file which is called the termal uh dot h and let me see if there are any examples let’s see okay so there doesn’t seem to be any examples but what we need to do is first because they’re in a terminal there are a couple of options that defines how the terminal should work so we need to do two function calls we need to retrieve the uh current options of your terminal uh then we need to alter one of the flags to remove the Echo and then we will uh do another call to change the flags so that’s how we talk hle the Echo and then we will just call our own function twice once for removing the Echo and once for uh getting the echo back so let’s see let’s begin by importing that H [Music] file it is called termal Doh we also need to create a function let it be a void function that we can call toggle Echo and we don’t really need [Music] any parameters like so so if the echo is enabled we remove it and if it is disabled we put it back uh perhaps we [Music] should yeah this will be easier let’s do a change Echo instead and then we will take a [Music] bull which will say if the echo should be enabled or disabled so we need to include the stdb as well like so so let’s write the function and this will be a void function that we call change Echo and we’ll have a bull enabled like this okay so the next step is we need to create a structure an instance of a structure uh for this kind of stuff and let let me see which one it is uh we’re going to use these two functions which means we need a struct terminals [Music] so let’s see and I closed the window let’s go into our directory it is called FS right no it’s inside temp FSE there we go okay so first I need to reset the home directory like that and we need a stct terminals T and let’s allocate some memory for it t equals stct [Music] terminal size of stct terminals like so let’s copy both of these function signatures to make it a little bit easier to to use them so first we call this get attribute so TC get attribute and the FD follows the same logic as standard in standard out standard error so this should be zero get attribute and then we have the T and that’s basically it perhaps we need to send a reference to the T let’s see if it works or not and let’s see what flag we need to alter I think it’s called Echo there’s a couple of them I think we just do the the echo okay so we need to do a binary operation so basically T is equal to no T the reference is equal to Let’s see we need to do um we need to remove a flag so we will do a logical and operation and that might seem a little bit in nonintuitive but basically if we have X and Y and we let one of them be zero then this will be zero as well if we use the uh or it would still be one so we remove Echo and now now way to we need to do an if first so if enabled then we’re going to add the flag no if it is enabled we’re going to remove it like we did and if it’s if it is disabled we want to enable it or what is most intuitive perhaps we should treat this enabl as if it should be enabled or not so if it should be enabled then we should do the or operation and remove the echo else we do the and operation and then we basically do the other one TC set attribute and we give the file descriptor in optional actions I think we can do the zero there and and then we need to give the structure construct terminals terminals yeah and that’s it so let’s see if this works in our not this one in our read key we will send the prompt then we going to do change Echo and we want to remove the Echo and then we will do it again change Echo and this time we want it to be enabled are true should be false up there right okay let’s see what [Music] happens make okay invalid upun to Binary or yes of course we don’t do it on the the whole structure we need to do it on one of the uh Fields inside that structure so let’s see which it is uh input modes output modes control modes so should either be the could be any one of these let’s see if we search for Echo and we go upwards to the headline C flag flag constraint constants okay so the same flags are for all of these or what did it say C flag okay let’s try it on the C flag it’s tough to remember all of these different functions that you only use once every couple of years let’s see where were we here so this looks right but we’re going to do T C flag and T C flag like so oh not TC flag it should be C flag only so right c c flag all a pointer we need the arrow not the dots let’s try it again TC UND declared T C flag okay now what invalid type argument un star have TC flag F AKA unsigned [Music] in well we should should probably not do reference that word where are we let’s do it like this okay so now we only have one error left has no member named C flag uh it’s tough to get this right huh it should be C FL see FL right let’s double check this time c i flag CC flag let’s copy this instead so remove the whole thing paste this in remove the whole thing paste this in this time I’m feeling lucky okay let’s try out we have infile we’ll have out okay didn’t really work Why didn’t it work perhaps it’s because of this zero or maybe they want us to do this on the standard out because logically it could really be either one right [Music] so make let me try it [Music] again nope Let’s do an S Trace it runs the command so let’s see the first time where is the first time here we get the flags and it has the echo then then we set the flags and do we have the echo no well yes it’s still there what is that let’s see [Music] so oh I forgot to free that one as well but that’s not the cause of the error let’s see so we get the flags if enabl and it’s should be [Music] false the first time read key change Echo false yes so so T see oh I mixed them didn’t I if it should be enabled we or if it should be disabled we end okay so let’s put this this way instead and let’s go back to the [Music] zero let’s try it again in file out file no let’s try it on standard out then so [Music] one one [Music] perhaps we shouldn’t do it on the C flag the other one what what did it say one has to do with input and one has to do with output input modes output mode is this an input mode or an output mode an echo well it’s both well let’s try it with an i input mode on the standard input so I flag and I flag if it should be enabled we add no we had this right the first time and we want to do it on the standard input the standard input okay something happened I can’t press enter anymore that’s pretty weird so we did change it somehow but not really the way I intended so let’s do the let’s just try one thing if we do one here and we do it on the I [Music] flag same thing so let’s do the I flag on [Music] the [Music] zero no for okay so get attributes file standard input okay so now I looked it up we should do it on the standard input as we thought but we should do it on the L flag so let’s try it [Music] again in file out file okay that’s bit weird no that’s not right either okay guys uh let’s end there for today and we will continue this uh project uh another day don’t forget to like And subscribe and thanks for watching and thanks for today [Music] sup guys welcome to Today’s Show today we are going to code a a safe string library and what is a safe string library and what why is it needed well if we let me show you an example so let’s say we have a main and I’m not going to do any error checking now so I will simply take the argument If This Were production code I would of course do a check so we don’t oh so we so we don’t access U parameters and command line arguments that’s not there uh let’s create a string let’s call it St uh and let it be eight in size and then we will create let’s do just a Char pointer and I will let it be equal to hello like this and I will include two files standard IO and the string Library like so okay so I want to put this uh P string into the Str Str variable so then I use string copy and the target is s Str and the source is p so this will copy the contents of P IE this hello and put it into our Str Str and then I will simply print F this Str Str like so and return zero okay let’s compile this and we run it no problem there [Music] right let’s oh sorry I’m going to use Nal today so you get a syntax highlighting uh okay so let’s instead well let me do like this if RC is less than two return minus one just a simple check and we’re going to take one argument from the standard input so instead of doing P equal hello I’m going to do p equal rv1 so we take the first command line uh argument we compile again and if we run it without any AR nothing happens what if we were to do the hello string again then it chose but what if we were to do something bigger than eight like this segmentation fault the program crashes why does this happen well these variables are placed on a stack if we and we don’t we only have room for eight characters in this variable so if we copy a lot of those with a string copy it will start to overflow the stack so basically it may over write variables in this case though the S strr is on the top of the stack so it will start uh overwriting other things like return addresses and saved stack pointers and other important stuff which basically means that the program will will not know how to how to return from this function and it will jump into some memory address which is not right and it will crash so a lot of when you’re dealing with strings a lot of the work is to make sure this doesn’t happen one possible solution to this is that instead of using the string copy like this you add an n in the middle so string n copy because then you can add a third argument which is uh the biggest number of characters to copy so if I put seven in here it can never copy more than seven characters so let’s try this again hello still works and if we do this now it will only do the first couple of characters and then exit without an error so if it’s this easy to fix this problem why bother with it why make a video about save string Library well this is only one example A lot of the times you don’t use functions like this you edit the strings yourself or what if you need to read all the lines in a file for example and put it inside of a string variable how would you do that you need to allocate and reallocate memory so you have the correct amount of memory all the time so it’s it’s not that straightforward to create a safe library for this okay so my plan is to make something that will work like this so let’s let’s remove stuff in here so I want to do something like this I want to create a string so this is my own uh variable and I will initialize Str Str with some initialization function like let’s call it in it and and it will take what will it take it will take a string to begin with so the first first string to put inside of this Str Str variable let’s say hello like so and I will not use any uh numbers so nothing like this that will only need five characters Etc I want to make this a library as easy to use as possible and what we wanted to add like hello the word there so it’s hello there then we can use a concatenation function so we just provide the string a variable name and then what we want to add to that uh string so let’s say uh there and then it will automatically take care of allocating the memory necessary in order to add this to the string and and if we want to print this string to the screen we can do this by just referencing uh let’s say well let’s call it fold and then we just give Str Str and it will will print the contents to the screen and then we only need some kind of um un initialization function so let’s say un init Str Str so we can easily use this conat inside of a loop and read an entire file it can be a very big file gigabytes or even larger and it will put it inside of this string construction that is the plan anyhow let’s see if we manage to do this I’m going to clean up a little bit here and create a simple make file so what do we need we’re going to have a file called Save St str. o which depends on Save S.C and we want to compile it using let’s see dollar roof or carrot or I’m not sure what how to pronounce it this means the source the C file in this case and this means the target the O and we’re going to do d c and yeah let’s not over complicate stuff that’s good and then we will have the safe string s o which depends on safe stram do o and then we will run CC and the source d o and this will be the [Music] Target and now we need a couple of options and I don’t have them in my head right now so I will use a variable which I call options which I will put some content into later on and when we do all I want to First clean and then make a safe St Str doso and finally I will put in the clean which will remove all the dot o files and the dot s f so something like this so if I just do touch and um let’s [Music] see save S.C I should be able to do make and it creates the we do get an error here but that’s only because we we have empty files this far make clean and it’s gone we also need a save st. H and I’m going to create a new window I’m going to go into code and save string I’m going to create set my home directory to this directory and then here I’m going to open the H file and in V save s str. h Save St Ag and then here I’m just going to open the cile so save s str. CC and we going to include our save s str. h like so and as usual I will Begin by defining my main so we’ll see what I want this to do so let’s create a string which we’ll call Str we’re going to initialize it like before using an init function which we hasn’t made yet and we will put in hello and then we want to concatenate yes are with the word there and yeah let’s do something like that to begin with anyway and then we want to un it St Str and in between we want to print it so print F perc s [Music] and fold St Str turn Z okay so this is basically what we want to achieve okay the first thing I’m going to do is include a couple of libraries just the standard ones so [Music] un htd H [Music] and this STD lib Ed include s. this is quite new by the way you might have to install the latest part of GCC if you want this so This adds native support for booleans [Music] H and I usually include string. H but I’m going to wait a little bit my hope is that I don’t need that and I can re write my own functions for that instead however I do need assert because I don’t want to worry too much with it error handling when I’m doing a video and I also need to do a definition for g source and that is so I get the function assert P error so basically this one function is inside of this file but it won’t be defined unless you define this one and it’s basically a combination of theed function and the P error the print error function which is quite nice I think but then you also need to include the r no number that H like so okay so let’s define our structure our string structure so I’ll call it s string and what do we need inside of this well we need some kind of a counter with so we know how many bytes of contents we have in our structure so let’s make this in unide in and we can call it count and we do also need the buffer the the actual string and this can be done a couple of different ways I could Define it as a Char pointer like this and then I allocate memory to this one but an even cooler way I think is to use a new function in later C versions that you can create a you can create a sh array basically string like uh what we going to call it data and usually you do something like this so you put like 64 so it will have 64 byes in it but if you put a zero in there then you define the variable but you don’t create any space for it which means that you can only do this at the end of the structure so this entire structure will be variable length and we can just increase and decrease the entire structure when we need to handle uh the strings which is kind of nifty I think okay and I will type def this instruct s string to string with capital S I will also create a couple of function definitions we have a main with an I’m not sure if I going to take any arguments but let’s put them here to begin with anyway and what else did we say we want an init function and that in it function will take a string an initial string and we want to return the pointer to a string so our own structure like so and then we want a concatenate function which will take a string pointer and another string and this will return a bull if it was successful or not and we also need an un initialization function but for the time being I think I’m going to do a Mac perhaps I need more intricate uh functionality later on so I’ll change that but for now I will just do this unit X will be 3 x like so so let’s start by creating our init function so it will return a string pointer and it’s called init and it takes a initial string like so and we need a size variable sign in size and size will be equal to length of Str Str so we do also need to Define that uh length function and that will basically be um let’s [Music] see that will basically [Music] be well it will be pretty much the same as the regular Str L right so unsigned in length and it takes a Char array we need an n and and a pointer let’s do the constate here and we create a pointer 4 m is equal to zero and P is equal to Sr we’re going to loop as long as let’s see as long as the thing that P points to is not zero and in each iteration we’re going to increase p and we’re going to increase n and we don’t need anything else no body of this one so I’ll add a semicolon at the end and then I’ll just return n and I want to create a function declaration for that as well so unsigned in length and it’ll take a Char star like so okay so now we have the length of the of the string and since this is the initialization function this will be the first uh string so we don’t have to think too much about it uh I do have however one one additional bite allocated and let’s allocate no so it will be this is how much we need for our string but then we also need the size of our structure which will be struct what did I name it s something s string okay that should be enough memory right so let’s create a string [Music] p p will be equal to string size like so and we do also need to zero this structure so one way of one new way of doing that wait first we need to assert that we p is not zero then we’re going to do a let’s [Music] see p I think it’s something like this P equals this I think you do it like that maybe we need to do reference let’s see if that works okay so we have the empty structure now we want to copy the actual string into there so name copy and into P data we want to copy the string [Music] and um let’s see we need a variable for the length so let’s do an n as well so n and size and we let N be equal to the length of this stram and we start substitute this by L which means we can copy n into the string and then we’ll just return P Okay so so let’s comment these out because we’re not done with them and not this one either with the initialization should be okay and let’s do a printf so we see that it it’s working so percent s and this will be St Str data like so okay let’s see what happens oh assignment discards con qualifier okay so let’s [Music] do I think it should be okay to add the con right here did I have the const here no I didn’t [Music] in we need a constant as well so cons basically means that we cannot write to the to that [Music] argument same here okay so con and maybe we don’t need it there [Music] okay discard con qualifier P equals s r okay we have a typo in the header file let’s see main that should be just in and what did we do wrong here let’s see it’s in the length function I [Music] think n = z p = s r p p++ n++ turn [Music] and let’s see what it’s let’s see what it [Music] said okay it didn’t look like this construct perhaps I need to add some options so it uses the new standard let’s see if we add Das s d [Music] equals m let me see c 2 x and let’s add it here as well SD = C2 X still doesn’t like it perhaps it needs the the space [Music] there expected expression plus [Music] P what if we do the slightly older standard and put a zero in there no still is not like that uh I think I need to type cast that’s probably it so let’s make it so and then I do string like so okay now it works M Copy okay what do we need for that M [Music] CP okay inside of the string. [Music] H let’s create our [Music] own [Music] no safe string let’s see so we have a void pointer and or let’s do Bo instead and we can name it copy it’s going to take [Music] a a void pointer to a destination going to take make a const vo source and the con sign in [Music] n and this function will basically be like this but not exactly but let’s start there anyway so cons Char [Music] P Let’s do let’s do like this so const sh [Music] p uh P source and just char No not Char void and right here we just do void T destination and we do a four [Music] where in X and inside here we set X = to n we set P Source equal to Source P destination equal to destination we’re going to iterate until X is z and and each direction we will increase P Source P source and [Music] p p destination and what are we going to do we’re going to take whatever P destination points to and set it to what P Source Point we can make this a void because not much can go wrong and if anything goes wrong then this program will crash so like so save and we need a function declaration so void copy and we have a void pointer for the destination we have a const void pointer for the source and we have a const [Music] unsigned in like so also we need to change so we use our own function where is our M Copy right here so let’s just do copy okay it’s getting better the referencing okay it doesn’t like the referencing void that’s right okay so let’s go into that file again and let’s let’s change the those pointers to char [Music] instead and let’s typ cast a little bit so so p c is equal to the Char version sour or the Cod Char version and this will be equal to the to the Char version of pest like so okay in main conflicting types that’s right we need to add our arguments in RC Char r or see like so and it compiles it does however compile into a library which is a little bit easy a little bit difficult to um to debug or to try out so let’s alter our make file a little bit and let’s change this this I don’t think we need to change anything else actually okay let’s see what happens segmentation fold okay let’s Trace s didn’t say much and L Trace didn’t say anything let’s double check the code let’s [Music] see save string. c s Str data so n equals length of the string I think we need to try out our two utility functions so we know that they work so we have our length and we have our M Copy let’s start with the length we check the length of a b c d e that should be five right okay no problem with that one so how do we check our mem copy in an easy enough way let’s create two Char buffers so buff one 16 and buff 2 16 and I’m going to string copy into buff [Music] one L and I’m going to then copy into F two from bu one and let’s see 2 three four five six n and then I’m going to print the content of um bu two I’m also going to memet both of them to zero them out like that and I need to add temporarily add [Music] the string Library [Music] set Oh wrong punctuation M there we go hello [Music] you okay so both of these function seem to work so how come my stuff doesn’t s Str equals index and print F St Str [Music] perhaps it’s about null termination yeah that’s probably it so where’s the NIT function how much am I alloc the m + 1 plus size of this so there’s room for the null [Music] Terminator let’s see if I if I create a regular sh pointer [Music] CH pointer Shar pointer should be equal to P data plus [Music] n then that should be a zero it should work I think still [Music] thanful hello take this string and equal length [Music] string size = n + one plus the size of this P equals [Music] string size [Music] P = [Music] stre [Music] zero copy P data the string and what happens if I remove this [Applause] slide okay so that’s where it seg FS down even though the copy function actually works so P data string n and n is the length of the string uh okay I forgot [Music] to I set the x to n and my idea was to decrease it and when it reaches zero we’re done but I only did half of that thought so we should add x- minus here as well all righty then then we probably don’t need this stuff since everything already should be zeroed out there we go yeah now it works as intended good sometimes it’s those small little things that makes you need have to trouble shoot forever okay where were we save string. C the only thing we have left actually is [Music] to is to create the concatenation function right which basically merges one of my strings with a regular string so let’s do this [Applause] and that is a [Music] bull and what did we call it we called it concat and it takes a string pointer as an argument and a const Char Source okay so first we need to calculate the memory consumption and we do need an unsigned in M which would be equal to the length of [Music] source so the size we we can make it in three steps let’s do a current sized as [Music] well so the current size is equal [Music] to the destination strings um count + one plus size of stct s string so the size of the structure and the contents that is a current size and the new size should be equal to the current size plus n the number of bytes we need to concatenate so then we have the new size we also need a pointer string p and let’s see no do really need that yes I think we do so p is equal to string and this time we use re look re look and the old memory segment is the destination yeah it’s a destination and the new memory requirements is the size that will be our p and if P fails we simply return false and if it doesn’t fail then we have the memory we need so now we just need to copy the new string so let’s do it basic like we did before I will create an let’s see I will create a regular CH pointer and that chart pointer should be equal to P data plus [Music] P count so basically it should be equal to the old count we need to increase by the with that so we come to the end of the old segment and that’s where we will uh put the new new date and then we will simply copy to P data no to CP and and what should we copy we should copy the source and how much of it it should be n like so and then we will simply do p count plus equals l so we increase the count and we return true that should basically be it right so let’s go down here I will remove this temporary print F and we’ll add back our concat and right we need this fold as well the fold should simply return the value let’s do it quick H Char Fone and it should take a string as an argument and it should simply return string data easy peasy let’s create the function definition as well so CH fold string star and we do have our only knit as well so maybe this compiles let’s see okay what does it say [Music] St St uh it should be S Str right where is it here concat s Str [Music] there uh we should add the serum but at the end when we [Music] conat so let’s [Music] see so CP should then be equal to P data plus the new P count and let’s zero that one like so compiles hold your breath almost it’s it’s showed the there but it didn’t it overwrote our old data I think I know why if we go to the emit function we don’t really increase the initial length so P count should be equal to l that’s right n + [Music] one yeah okay let’s try this again hello there okay so what have we learn today we have learned how to successfully create a a safe string library with a concatenation feature and uh some other stuff and I will leave as an exercise to you to create an equal function that you can use in order to check if two strings are equal and it should work with our string data type and regular strings in any combination if you like this content please like And subscribe there will be a lot of more uh see videos both beginner level and very Advanced I have a lot of interesting stuff in the pipeline so thanks for watching and thanks for [Music] today okay guys welcome back last week we began creating this taly tool which uh tunnels any Linux application through the tour Network we wrote the first part of it which is a socks version for client so this is what we have this far we can supply the destination host and Port so let’s take my web server as an example so we run talize and let’s do this IP with a port of 80 and we connect to the proxy maybe it’s a okay there there we go sometimes when you use the T Network it’s quite slow but more often than not it’s quite fast but as you can see we connected to the proxy we successfully connected through the proxy to the destination and we communicated with the web server on the other end so the biggest part is done what we need to do now is the following we need to turn the client into a library so instead of using an as an application we want to have it as a library and that is a shared library to be specifico files when we have done that we’re going to turn main into our own connect replace regular connect and we’re also going to save a reference to to the original connect so that we can use it ourselves because our current tool is using connect if we look right here so we connect to the proxy server using that uh system call and that’s why we need to save a reference to it so we can use it ourselves um we also need to grab the IP and Port from original connect so we will take care of the arguments that the uh application sends to its connect and and uh we need to take the IP and Port from there instead of reading it from the command arguments like we do now uh and then we can proceed by doing what we do now and then we will just uh leave it to the original application to take care of the uh the rest of the communication so we do our thing and then we exit our fun and let the program take over um okay so how does this technique work well when you compile your code you have two options you can compile it statically so it’s statically linked uh and that means that if you use any Library calls or system calls too for that matter like uh print F or anything that will be that code the print F code will be saved in your program’s uh executable file but that’s not very optimized because if every tool on the on the whole drive would be statically linked then there will be a lot of duplications because almost every application uses some form of Library calls or system calls so that’s why we have the shared libraries so instead of and that’s what’s usually in use so we have like a database with a lot of with a print F code and with a scan F code and even wrappers for system calls like connect and uh when an end application needs to use any of that code it will collect it from the central repository on the on the disk so that’s how it works the thing is there is a kind of um prioritization order so which we can influence so if there are two functions with the same name which one that’s going to execute is decided by a a list basically and a prioritization order so if we name our own function connect and uh we have compiled this as a shared library then we can make any application use our code AS PRI Priority One and in that way we can intercept and hijack the library call and system because all system calls have wrappers in the libraries okay this will probably be um a little more clear when we have written the actual code tested it and this is not my own invention this technique I am following a website let me just find it C shared Library function hook here it is at our Jordan a so it’s pretty simple actually so put s is a function which basically works like print F but not as it prints a single string on the screen so that’s the one that he uses in his example so as you can see he creates a function with the same name and same signature he creates a function pointer also with the same signature and that is for saving the original put s in this case and then he gets the reference from this dsim uh function so basically you give the rtld next and put and the name of the function and it gives back the memory address where that function is originally uh located in memory and uh then he just does like this so he checks if you send the argument hello world and in that case he hijacks the original pest call and changes the message in other case he just runs the uh original puts with the same arguments so this is basically what we’re going to do we’re not going to have a condition because we are always going to hijack the orig original one we are however going to use the original uh connect function to make our connection to the proxy server and uh then we compile it as a shared Library so there’s a couple of additional switches we use and then we get AO file and then we basically tell the system to use our uh Library instead by this LD preload environment variable so we’re going to create a small uh bash script in our case three lines big and um that’s what we’re going to name talize and uh then we’re going to use that to set the environment variable and run the command and uh yeah that should basically be it so let’s begin let’s start by Gra grabbing the um signature so we do man to connect and just copy this exactly as it is and then we go up to our main and just paste it right here like so and sock FD address l t and we remove this [Music] and so we basically turn our main function into this uh connect function like so and we create a function pointer and if you have watched my episode about function pointers you know that that is done like this I will paste the signature for this original original function once again and instead of connect I will just name this P for pointer I’ll put it inside parentheses and add the star and then then we remove this part so it should be basically like a like a signature function uh declaration and we use this to point to this DL Sims function and let me just see where it’s located so Man 3 DL Sims and if we don’t find it in page three we do page two weum perhaps it’s without the S yeah okay so it’s inside of this DL F cn. so let’s add that to our list of includes and let’s see if if he included anything else only the string so and I need to grab the first argument rtld Dore next and you might ask why um I don’t copy paste and I try to avoid that when possible because if I type this a couple of times I will will probably remember it ring next and the name of the function is connect like this and we initialize the socket but we don’t really or let’s do it like this by the way the the curl application or whichever we use have um already initialized their uh socket but I think it will be easier just to uh pipe those two sockets together okay so let me update the signature here as well so I don’t forget that by the way because we we don’t have any main anymore we just have in Connect it’s in right yes did I do in here yes okay so int connect int construct sock address star Su t uh so we don’t have a main anymore because that’s only for applications and this is not an application this is just a couple of functions which are free Okay so the application runs connect and we don’t need anything any of this and we save this we initialize our socket and uh here we make the connection to the proxy server nothing will change about that but we’re not going to call connect because we would be calling ourselves we will be calling this P the function pointer like so connected to proxy and we need we also need to change our request function uh instead of sending host and Port like we did before let me remove that so we have int s and we don’t have this host instead we need to grab the IP and the P Port from the arguments so this is what how what the application provides we have the socket file descriptor we have the length of this structure and we have the actual structure so I think the easiest way would be to I don’t want to name this address let’s call this let’s call it sock to and S2 instead so s and sock that’s ours and S2 and sock 2 are the the provided by the application so we need to look inside of this and get the data that we need so let’s pass the whole structure of that instead uh as host and Port so we’ll just do so two right here and we need to change the signature for our request function um and that is of type stru sock address [Music] in and star stct sock address in Star and I think we need to do a type cast and send the reference so where were we right here so struct sock address stct sock address [Music] in so to I think we need to do it like this if we get a warning or error we will change it but it should be all right struct address in sock 2 so we send that whole structure to this function and we need to change this as well so that will be struck sock address in let’s call it so no let’s call it sock to so we know what’s what okay so the destination Port we don’t need to do hton s and inet address because it’s already in the network bite order so the only thing we need to do is reference talk [Music] to sin port and for the destination IP so [Music] to S address Source address like so perhaps we need to do some type casting but I don’t think so in this case okay so now we have the correct packet and then we save that then we send that [Music] packet unable Traverse proxy we can keep this for now successfully connected through and this we will not have though so as soon as we are connected we are basically done we don’t want to close the socket we do however want to to pipe our socket with the end applications socket so what does it mean piping well we need to do so everything that’s being sent to S will also be sent to S2 and everything that’s being sent to S2 is being s to us and same with the receives so we basically become the man in the middle and there is a good system call which is called dup two which does exactly that um so it creates a new file descriptor and it will be the the same value as the second argument which means that this will be pretty seamless if we give S2 so D to S S2 and then we return the we forget anything I think we did most of it let’s copy the compilation flags from this [Music] one so we’ll go into our make file and this will be [Music] to.so F pictured LDL okay and I will Begin by removing the talize binary executable because that won’t be necessary okay let’s see what it says if we try to compile this one okay DL Sims it should be DL Sim right here and I enter down a little bit and it runs make again and host UND declared okay that’s the message don’t think we actually need that one where is it uh unable to Traverse the proxy successfully connected through the proxy let’s just say through the proxy enter otherwise we need to convert between Network by order and stuff like that perhaps we can change this later on instead if we want to okay it compiled so how are we going to test this we haven’t really created our bash script we can do that now by the way let’s begin by checking what directory we’re we’re in and the name of this so I’ll just do a copy paste of this directory and I will add thiso file to it so this is the whole path to our library and I will log in as the root user I will go to user bin and I will open up Tora lies and this will be a bash [Music] file so we need to have this interpreter at the top or the hashbang uh okay so let’s export LD pre load to this one and then we want to run the commands because we’re going to run this as talize and then curl or whatever so we need to send everything that’s on the right of this toriz and there is a way to access all the arguments at the same time and I I think it is done like this okay so first we export the LD preload and point it towards our shared library then we do the dollar and I think it’s the at sign which will run all the arguments to this uh script and finally we unset the LD preload like this it’s probably not necessary to unset it because it’s the end of the script but I think it’s looks a little better all right so we save this and give it running permissions toiz and then we test it out and hope that it works so Network technology.org we will try to do talize curl and an HTTP request against this IP address connected to proxy uh couldn’t connect the server let’s try restarting the tour perhaps it’s a bad uh connection that happens sometimes so tour restart okay and then we try it again okay connected to proxy this time it didn’t even give an error message let’s see what this error code 91 is if we go back to the RFC so RFC socks 4 and we go down here request rejected or failed I will try once again to restart the service perhaps we are unlucky with the connection so let’s do like this and then we run toye again at least it’s able to intercept the connect function as we can see by this connected to proxy but it doesn’t really succeed in connecting let’s just see that this one is up and running yes and it’s lessening on Port a right let’s do just like this okay I don’t have tet here let’s run it from from this instead so and tet this 80 okay it’s the server that’s not responding that’s weird post let’s try something else let’s do I think we should be able to do a a regular host name this is a Swedish site that shows uh the IP if you if we do make this work though that’s not going through the tour Network the actual DNS request so the DNS request probably goes outside of the tour Network and then the actual IP uh connection goes through so current connect to server weird does anything work Google see yeah there’s nothing wrong with the routing but we need to try something else what if we do a host on this site and we talize a curl HTTP and this IP instead are we able to connect directly to this one okay that works let’s let look through the code perhaps we did miss something so what happens right here we set this to the regular connect function we initialize a new socket and we connect to the proxy with the proxy port using this connect the regular connect function and and we managed to get connected to the proxy everything is fine this far perhaps something perhaps there’s some problem with where we when we grab the IP address so R request stct sock address in perhaps we should not send the reference what if we were to do like this [Music] instead CD code and to and we need to run make and then we do [Music] host and we do talize H curl HTTP and this IP okay so now it works and we should be able to see the IP here I think somewhere okay it seems that we go through some kind of middle server it probably only works against Swedish IP addresses and we probably don’t come from the Swedish IP through the tour Network we need to try something else what if we were to do F we can test regular first so if we do [Music] host what is my ip.com [Music] we do a regular curl and we get an error code okay we need to send the host name and I don’t think that’ll work but let’s try it again uh so curent or it will work when you do right here but I don’t think we will get a response no let’s just do Google them so host Google go. I’m going do tour allies Cur HTTP and this IP okay that works what if we do a host name does it even try to resolve that yeah it works but as I said be careful by doing that because only the IP connection will be private not the DNS request but as you can see we are able to um Traverse the proxy and we are able to talize any command using this tool so that’s the end of this series I hope you want to sub subscribe and like if you think it’s it deserves it and uh there will be more interesting videos in the future thanks for watching and thanks for today

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog

  • JavaScript Fundamentals: Console, Variables, Data Types, and Objects

    JavaScript Fundamentals: Console, Variables, Data Types, and Objects

    The provided text is a guide to understanding JavaScript programming concepts. It covers a range of topics, beginning with how to use the console for debugging. The text then explores fundamental concepts such as variables, data types (primitive and reference), type coercion, and operators. It discusses strings, numbers, arrays, and objects, including methods to manipulate them. Finally, it introduces functions, scope, DOM manipulation, and event handling, along with keyboard events.

    JavaScript Fundamentals Study Guide

    Quiz

    1. What are the three core technologies of the web?
    2. Explain the difference between interpreted and compiled code.
    3. Briefly describe the Document Object Model (DOM).
    4. What is an asynchronous request, and why is it useful in web development?
    5. What is the purpose of the parseFloat() function? How does it differ from parseInt()?
    6. Explain the concept of “truthy” and “falsy” values in JavaScript, and give one example of each.
    7. What does NaN represent in JavaScript, and list two operations that result in NaN.
    8. Describe what the modulus operator (%) does.
    9. Explain the difference between == and === comparison operators in JavaScript.
    10. What is type coercion in JavaScript, and how does it differ from type conversion?

    Quiz Answer Key

    1. HTML, CSS, and JavaScript. HTML structures web content, CSS styles the content, and JavaScript brings interactivity to the front-end.
    2. Interpreted code is executed line by line, while compiled code is first translated into machine code before execution. JavaScript is an interpreted language, making it a scripting language.
    3. The DOM is a tree-like structure of nodes representing everything on a web page, including HTML tags, attributes, and text. JavaScript can manipulate the DOM to dynamically change the content and styles of elements.
    4. An asynchronous request allows a web page to interact with a back-end server without requiring a page refresh. This is useful for dynamically loading and updating content, particularly in single-page applications.
    5. The parseFloat() function converts a string to a floating-point number. parseInt() converts a string to an integer, discarding any decimal portion.
    6. Truthy values are values that evaluate to true in a Boolean context (e.g., 1, “hello”), while falsy values evaluate to false (e.g., 0, null, undefined, “”).
    7. NaN stands for “Not a Number,” representing a value that is not a valid number. Operations such as parsing a non-numeric string with parseInt() or parseFloat(), or square root of a negative number result in NaN.
    8. The modulus operator (%) returns the remainder of a division operation. For example, 7 % 5 equals 2.
    9. The == operator compares two values for equality after type coercion, meaning JavaScript might try to convert the values to a common type before comparing them. The === operator compares two values for equality without type coercion, meaning the values must be of the same type to be considered equal.
    10. Type coercion is the implicit conversion of one data type to another by JavaScript, often when applying operators to values of different types. Type conversion is the explicit conversion of one data type to another by the developer, using functions like String(), Number(), and Boolean().

    Essay Questions

    1. Discuss the versatility of JavaScript and the reasons for its popularity in modern web development.
    2. Explain the differences between client-side and server-side JavaScript. Give examples of frameworks or environments associated with each.
    3. Describe the concept of scope in JavaScript, differentiating between global, function, and block scope. Use examples to illustrate how variable access changes in different scopes.
    4. Explain the execution context in JavaScript, including the memory creation phase and execution phase. How does the execution context differ when invoking a function?
    5. Describe the different types of keyboard events in JavaScript and how they are used. Include details about properties like key, keyCode and code and how to use modifier properties such as shiftKey, ctrlKey and altKey.

    Glossary of Key Terms

    • API (Application Programming Interface): A set of rules and specifications that software programs can follow to communicate with each other.
    • Asynchronous Request: A request that doesn’t block the execution of other code while waiting for a response.
    • Boolean: A data type with two possible values: true or false.
    • Client-Side JavaScript: JavaScript code that runs in the user’s web browser.
    • Compiled Code: Code that has been translated into machine code by a compiler before execution.
    • CSS (Cascading Style Sheets): A style sheet language used for describing the presentation of a document written in a markup language like HTML.
    • DOM (Document Object Model): A programming interface for HTML and XML documents. It represents the page so that programs can change the document structure, style, and content.
    • Event: An action or occurrence recognized by a software system, often originating asynchronously from the external environment, such as a mouse click or key press.
    • Expression: A combination of values, variables, operators, and function calls that evaluates to a single value.
    • Falsy Value: A value that evaluates to false in a Boolean context (e.g., 0, “”, null, undefined, NaN).
    • Function: A block of organized, reusable code that performs a specific task.
    • Global Scope: The scope that contains variables that are declared outside of any function or block.
    • Hoisting: The JavaScript mechanism where declarations of variables and functions are moved to the top of their scope before code execution.
    • HTML (HyperText Markup Language): The standard markup language for creating web pages.
    • HTTP Request: A request made by a client to a server to access resources or perform actions.
    • IIFE (Immediately Invoked Function Expression): A JavaScript function that runs as soon as it is defined.
    • Interpreted Code: Code that is executed line by line by an interpreter.
    • JavaScript: A high-level, interpreted programming language primarily used for creating interactive web pages.
    • Local Storage: A web storage API that allows web applications to store data locally within the user’s browser.
    • NaN (Not a Number): A value representing an undefined or unrepresentable value, typically resulting from invalid mathematical operations.
    • Node.js: A JavaScript runtime environment that allows JavaScript to be used on the server side.
    • Operator: A symbol that performs an operation on one or more operands (values or variables).
    • Scope: The context in which variables and functions are accessible.
    • Server-Side JavaScript: JavaScript code that runs on a server rather than in a client’s web browser.
    • Single-Page Application (SPA): A web application that loads a single HTML page and dynamically updates the content without requiring page reloads.
    • Truthy Value: A value that evaluates to true in a Boolean context (e.g., 1, “hello”, {}).
    • Type Coercion: The automatic or implicit conversion of values from one data type to another in JavaScript.

    Modern JavaScript Fundamentals

    Okay, I have reviewed the provided source and have created a briefing document summarizing its main themes and key ideas.

    Briefing Document: JavaScript Course Excerpts

    Overview:

    This document summarizes excerpts from the beginning of a “Modern JavaScript from the Beginning” course. The course aims to provide a comprehensive understanding of JavaScript fundamentals. The initial sections cover basic concepts, data types, operators, control flow, functions, scope, events and date objects as well as introduction to arrays and objects (object literals). The presenter emphasizes that even experienced developers might find value in revisiting these core principles.

    Main Themes and Key Ideas:

    1. What is JavaScript?
    • JavaScript is a core technology of the web, alongside HTML (structure) and CSS (styling).
    • It brings interactivity and dynamism to web pages.
    • It can be used server-side with Node.js to interact with databases and file systems.
    • It’s an interpreted (executed line by line), high-level scripting language.
    • “JavaScript is one of the core Technologies of the web alongside HTML which is a mock-up language and is used to structure web page content as well as CSS which is used to style that content so JavaScript is what brings life to the front end or the user interface of a website or a web app”
    1. Uses of JavaScript (Client-Side & Server-Side):
    • DOM Manipulation: Dynamically changing the structure, content, and styles of HTML elements. The DOM is viewed as a tree-like structure of nodes.
    • “JavaScript provides methods for dynamically changing that structure or changing the content or the styles of the elements in the Dom”
    • Event Handling: Responding to user actions like mouse clicks, keyboard input, and form submissions.
    • “…JavaScript gives us a way to handle events so we can respond to things like Mouse clicks or drags or hovers keyboard events form submissions and just about anything you can think of that you can do in the browser window”
    • Asynchronous Requests: Interacting with back-end servers and APIs to fetch or submit data without page reloads. Common in Single Page Applications (SPAs).
    • “making asynchronous request is one of the most powerful uses of JavaScript and it’s used to interact with back-end servers”
    • Animations & Effects: Creating visual effects using CSS transitions, JavaScript methods, and libraries.
    • Data Manipulation: Sorting, filtering, and transforming data using array methods (map, filter, reduce).
    • “…data manipulation which is the process of modifying or transforming data can be done with JavaScript because it’s a full-featured language with data structures like arrays”
    • Data Storage: Storing data in the browser using local storage, session storage, and cookies.
    • Single Page Applications (SPAs): Building applications that load a single HTML page and dynamically update content. Often used with front-end frameworks (React, Vue, Angular).
    • “JavaScript can also be used to store data on the client or in the browser using things like local storage session storage and cookies we can also create single page applications or spas and these are applications that load a single HTML page and dynamically update the content without having to reload the entire page”
    • Server-Side (Node.js/Deno): Creating APIs that interact with databases. Frameworks like Express.js are mentioned.
    1. Why Learn JavaScript?
    • Popularity: Widely used language with a large community, making it a valuable skill for job opportunities and collaboration.
    • “popularity JavaScript is one of the most widely used programming languages with millions of developers using it to build websites web applications browser-based games server-side apis and more”
    • Versatility: Can be used for a wide range of applications.
    1. Data Types and Type Conversion/Coercion:
    • JavaScript has data types like numbers, strings, and Booleans.
    • Type Conversion: Explicitly changing a data type using constructors (e.g., String(), Number(), Boolean()) or methods like parseInt() and parseFloat().
    • “…if you have a decimal right so if let’s say this is amount is 99.5 and you want to let’s say it’s a string of 99.5 and you want to convert it to a number of 99.5 which is a decimal there’s a method you can use called parse float”
    • Truthy and Falsy values: Discusses truthy and falsy values. Zero is a falsy value.
    • NaN (Not a Number): Results from operations that cannot produce a valid number (e.g., parsing a non-numeric string). It is a special number type.
    • “…we get a value of Nan or Nan and what this stands for is not a number okay it’s uh it’s actually a special number as you can see it does have the type of number but it’s a special number that represents not a number”
    • Type Coercion: Implicit conversion of data types during operations, often when using operators with different types.
    1. Operators:
    • Arithmetic Operators: +, -, *, /, % (modulus), ** (exponentiation).
    • Concatenation Operator: + (used to join strings).
    • “the concatenate operator is the plus sign so you can essentially think of the plus sign having two different functions in JavaScript one obviously is addition but one is to concatenate strings together”
    • Increment/Decrement Operators: ++, –.
    • Assignment Operators: =, +=, -=, *=, /=, %=, **=.
    • Comparison Operators: == (equal to), === (equal value and type), != (not equal to), !== (not equal value or type), >, <, >=, <=. The presenter recommends using === and !== to avoid potential issues.
    • “what I do and what I’ve what I see a lot of people do is pretty much always use the triple equals I think that that’s going to save you some headaches and save you some hours if you just always use triple equals”
    1. String Methods & Properties:
    • Strings are primitive, but JavaScript provides a wrapper object allowing the use of methods and properties.
    • length: Property to get the string’s length.
    • Accessing Characters: Using bracket notation (e.g., str[0]) or charAt().
    • “…if I say x equals and then S I can use this syntax and it starts at zero just like an array if I save that you’ll see I get H I get the first character if I do one I get e so I get the second character and so on”
    • toUpperCase(), toLowerCase(): Changing case.
    • indexOf(): Finding the index of a character or substring.
    • “if we want to know the index of a specific character so kind of the the inverse of this we could say s equal x equals s and we can use index of”
    • substring(), slice(): Extracting portions of a string. Slice can use negative indices to start from the end.
    • “substring which will search a string for a specified value so let me show you if we do s dot and then substring and then we can this will take in two indexes so let’s say we want to get from 0 to 4”
    • trim(): Removing whitespace from the beginning and end of a string.
    • “trim and what this does is it trims the white space”
    • replace(): Replacing a substring with another string.
    • includes(): Checking if a string contains a substring (returns true or false).
    • “…if I say s dot includes and we want to let’s say we want to find hello if I save that we’re going to get true because this is found within that s string”
    • valueOf(): Returns the primitive value of a String object.
    • split(): Splitting a string into an array based on a separator.
    • “split which you I use I’ve used quite a bit it’ll split a string into an array and it takes in a separator as an argument”
    • Prototype: Where the methods are stored.
    1. Number Methods and Properties
    • toString(): Returns a string representation of a number.
    • toFixed(digits): Formats a number using fixed-point notation, rounding to the specified number of digits after the decimal point. Returns a string.
    • toPrecision(precision): Formats a number to a specified length.
    • toExponential(fractionDigits): Returns a string representing the number in exponential notation.
    • toLocaleString(): Returns a language-sensitive representation of the number.
    • Number.MAX_VALUE: The maximum numeric value representable in JavaScript.
    • Number.MIN_VALUE: The smallest positive numeric value representable in JavaScript.
    1. Math Object:
    • Built-in object for mathematical operations.
    • Math.sqrt(): Square root.
    • “…we want to get the the um the square root of a number so we’ll do math Dot and then sqrt”
    • Math.abs(): Absolute value.
    • Math.round(): Rounds to the nearest integer.
    • Math.ceil(): Rounds up to the nearest integer.
    • Math.floor(): Rounds down to the nearest integer.
    • “…we can do the opposite and round down with the floor method so if I were to do math dot floor obviously that’s going to give me 4 but if I even if I do like 4.9 and I save that’s still going to give me 4”
    • Math.pow(): Raises a number to a power.
    • Math.min(), Math.max(): Finds the minimum or maximum of a set of numbers.
    • Math.random(): Generates a random decimal number between 0 (inclusive) and 1 (exclusive). Demonstrates how to generate random numbers within a specific range.
    • “a really common method is the random method so let’s say x equals math Dot random”
    1. Date Objects:
    • Creating date objects: using new Date().
    • Date formats: Demonstrates creating dates with arguments (year, month, day, hour, minute, second) and with date strings. Notes a potential time zone issue when using hyphens and year-first format.
    • “…if I do a string so quotes here 20 21 let’s say Dash zero seven and let’s say 10. if I save that then we’re going to get July”
    • Timestamps: Discusses Unix timestamps (milliseconds since January 1, 1970). Date.now() gets the current timestamp. getTime() or valueOf() gets the timestamp of a specific date.
    • “…what it is it’s an integer that represents the number of seconds that’s elapsed that’s passed since the date of January 1st 1970 which is an arbitrary date”
    • “…you can always get the time stamp by using let’s say d so by using date dot now like that so if I save that we’re going to get the milliseconds that have passed if I reload you’ll see it’ll just keep updating right so that that gives you a way to always be able to mark an exact you know millisecond in time”
    • Methods for getting parts of a date: getFullYear(), getMonth(), getDate(), getDay(), getHours(), getMinutes(), getSeconds(), getMilliseconds(). Month is zero-based.
    • “if you want to get specific parts of the date we can do that so let’s say we want to get the the year so we’ll do D dot and then there’s a get full year method and you can see it gives us 2022”
    • toLocaleDateString(), toLocaleString(): More modern and powerful ways to format dates in a locale-sensitive way.
    1. Arrays and Objects
    • Section introduction: Will cover creating, manipulating and nesting arrays and objects.
    1. Scope
    • Global Scope, Function Scope, Block Scope
    • Variable Shadowing – when a variable in a local scope has the same name as a variable in the outer scope.
    • VAR is function scoped, not block level scoped.
    • Variables declared with VAR are added to the window object. Variables declared with LET and CONST are not.
    • “…when we create a global variable with VAR if we look at the window object let’s take a look here you’ll see that it actually gets added to the window object when we use letter cons that does not get added to the window object so you can see here there’s no Foo”
    • Nested Functions – child functions can access parent variables.
    1. Functions
    • Function Declaration – start with the function keyword
    • Function Expression – function assigned to a variable
    • Arrow Functions – shorter syntax for writing functions
    • IIFE (Immediately Invoked Function Expression) – function that runs as soon as it is defined.
    1. Logic and Control Flow
    • IF statements
    • IF ELSE statements
    • Truthy and Falsy values
    • Logical Operators
    • SWITCH statements
    • TERNARY Operator
    1. Events
    • Adding event listeners
    • MOUSE Events
    • KEYBOARD Events
    • Different keyboard properties to detect key presses and states

    Challenges:

    • Capitalize Challenge: Capitalize the first letter of a single-word string.
    • Min Max Challenge: Create a function that takes an array of numbers and returns an object with the minimum and maximum values.
    • IIFE Challenge: Create an IIFE that takes in the length and width of a rectangle and logs its area to the console.
    • Random Number and Math Challenge: Create random numbers and calculate their sum, difference, product, quotient, and remainder, then log the results in a specific format.

    Overall Impression:

    The course excerpts promise a solid foundation in JavaScript, starting with fundamental concepts and progressing towards more practical applications. The instructor emphasizes understanding the “why” behind the code, not just the “how,” and provides a blend of explanations, examples, and challenges to reinforce learning.

    JavaScript Fundamentals and Usage Guide

    ### What is JavaScript and what is it used for?

    JavaScript is a high-level, interpreted programming language that is one of the core technologies of the web, alongside HTML and CSS. It is primarily used to add interactivity and dynamic behavior to websites. It can also be used on the server-side with Node.js and Deno to interact with databases and the file system. Some general uses include manipulating the DOM, handling events, making asynchronous requests, creating animations and effects, data manipulation, storing data, and building SPAs.

    ### What is the DOM (Document Object Model) and how does JavaScript interact with it?

    The DOM is a tree-like structure of nodes representing the HTML elements on a webpage. JavaScript allows developers to dynamically change the structure, content, and styles of elements in the DOM. This includes adding, removing, or modifying text, content, and styles (like color, font, and size). Manipulating the DOM is a fundamental aspect of creating dynamic and interactive web pages.

    ### How can I convert data types in Javascript?

    JavaScript has constructors that allow you to convert values to specific data types. The `String()` constructor converts a value to a string, `parseFloat()` converts a string to a decimal number, and `Boolean()` converts a number to a Boolean value (true or false). Zero is falsy, and one is truthy. Converting a non-numeric string using `parseFloat()` will result in “NaN” (Not a Number).

    ### What are operators in JavaScript and what are some common types?

    Operators are symbols that perform specific operations in JavaScript expressions. Common types include:

    * **Arithmetic Operators:** `+` (addition), `-` (subtraction), `*` (multiplication), `/` (division), `%` (modulus – remainder), `**` (exponentiation), `++` (increment), `–` (decrement).

    * **Assignment Operators:** `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `**=`.

    * **Comparison Operators:** `==` (equal to), `===` (equal value and type), `!=` (not equal to), `!==` (not equal value or type), `>` (greater than), `<` (less than), `>=` (greater than or equal to), `<=` (less than or equal to).

    * **Logical Operators:** `&&` (AND), `||` (OR), `!` (NOT)

    ### What is type coercion in JavaScript?

    Type coercion is the automatic or implicit conversion of values from one data type to another in JavaScript. It typically occurs when operators are applied to values of different types. For example, when adding a number to a string, JavaScript might convert the number to a string before concatenating them.

    ### How do I find the length of a string?

    Strings have a length property. `string.length` will produce the length of the string.

    ### What are some methods available on strings in Javascript?

    Strings have a prototype where methods are stored. Strings have methods for changing case (`toUpperCase()`, `toLowerCase()`), finding characters by index (`charAt()`), finding the index of a character (`indexOf()`), extracting portions of a string (`substring()`, `slice()`), removing whitespace (`trim()`), replacing substrings (`replace()`), checking for inclusion (`includes()`), and splitting a string into an array (`split()`).

    ### How can I generate a random number in JavaScript?

    The `Math.random()` method returns a random decimal number between 0 (inclusive) and 1 (exclusive). To generate a random number within a specific range, you can multiply `Math.random()` by the range and then use `Math.floor()` to round down to the nearest whole number.

    “`javascript

    let randomNumber = Math.floor(Math.random() * 10) + 1; // Generates a random number between 1 and 10

    JavaScript Console: A Developer’s Tool

    The JavaScript console is a tool available in web browsers that allows developers to log information, debug code, and execute JavaScript commands.

    Key aspects of the JavaScript console:

    • Access: Accessed through browser’s developer tools (e.g., in Chrome, More Tools -> Developer Tools). Can be directly accessed using keyboard shortcuts such as Command + Option + J on Mac.
    • Functionality:
    • Displaying Warnings and Errors: Shows warnings and errors generated by front-end JavaScript code, indicating the line number and file of origin.
    • Logging Information: Allows logging of data and messages from a script using the console object.
    • Executing JavaScript: Enables running JavaScript code directly in the console.
    • The console Object: The console object in JavaScript contains methods for interacting with the console.

    Commonly used console object methods:

    • console.log(): Logs information to the console. It can output different data types like numbers (e.g., 100), strings (e.g., “Hello World”), and booleans (true or false). It is possible to log multiple values simultaneously by including them as arguments.
    • console.error(): Logs an error message to the console, often with a red background or border.
    • console.warn(): Logs a warning message to the console, typically with a yellow background.
    • console.table(): Displays data in a tabular format, useful for visualizing objects with key-value pairs.
    • console.group() / console.groupEnd(): Creates a collapsible group in the console to organize related log messages.
    • console.clear(): Clears the console. It can also be cleared using keyboard shortcuts such as command/control + L.

    Additional features:

    • Styling Console Logs: CSS styles can be applied to console logs using the %c specifier, followed by the desired CSS rules as a second argument to console.log().
    • Accessibility: The console is primarily a tool for developers and is not intended for end-users of a website.

    JavaScript Data Types: A Comprehensive Guide

    In JavaScript, data types define the kind of values that can be stored and manipulated within a program. JavaScript is a dynamically typed language, meaning that you do not have to explicitly define the data types of variables.

    There are two main categories of data types in JavaScript: primitive types and reference types (or objects).

    Primitive Data Types:

    • Primitive types are immutable, meaning their values cannot be changed after creation. When a primitive type is assigned to a variable, the variable is given a direct copy of the value. These values are stored directly in the memory location known as the stack.
    • JavaScript has seven primitive data types.
    • String: Represents textual data and is a sequence of characters enclosed in single or double quotes (e.g., “Hello, World!”).
    • Number: Represents numeric values, including integers and floating-point numbers (e.g., 30, 98.9). There is no distinct type for integers or decimals; all numbers are of the Number type.
    • Boolean: Represents a logical value that can be either true or false.
    • Null: Represents the intentional absence of any object value. It indicates that a variable has been intentionally set to “no value.” Confusingly, the typeof operator returns “object” for null, which is considered a historical artifact or mistake in JavaScript.
    • Undefined: Represents a variable that has been declared but has not been assigned a value. The type of such a variable is also undefined.
    • Symbol: Represents a unique and immutable value, often used as object properties.
    • BigInt: Represents integers of arbitrary precision, allowing for the storage and manipulation of numbers larger than the Number type can handle.

    Reference Data Types (Objects):

    • Reference types are mutable, and when a reference type is assigned to a variable, the variable is given a reference to that value. These values are stored in the heap.
    • Objects are collections of key-value pairs. Object literals, arrays, and functions are examples of reference types.
    • Object Literal: A basic object in JavaScript, containing properties defined as key-value pairs, enclosed in curly braces {}.
    • Array: An ordered list of values.
    • Function: A callable object that executes a block of code. Functions are also considered objects in JavaScript, with the type of operator returning “function”.

    Type Detection:

    • The typeof operator can be used to determine the type of a variable. For example, typeof firstName will return “string” if firstName holds a string value. However, typeof null returns “object” due to historical reasons.

    Dynamic Typing:

    • JavaScript is a dynamically typed language, meaning that variable types are not explicitly defined and can change during runtime.
    • Type Conversion: It is possible to explicitly convert a value from one type to another. For instance, converting a string to a number using parseInt() or the unary plus operator (+).
    • Type Coercion: JavaScript can also implicitly change types during operations. For example, when adding a number and a string, JavaScript may coerce the number into a string.

    Understanding data types is crucial for writing correct and efficient JavaScript code. Knowing the differences between primitive and reference types, how they are stored, and how type conversions occur helps in avoiding common pitfalls and writing robust applications.

    JavaScript Variable Declaration Guide

    In JavaScript, declaring a variable means creating a named storage location in memory that can hold a value. When declaring variables, there are three keywords that can be used: var, let, and const.

    Here’s a breakdown of variable declaration in JavaScript:

    • Keywords:
    • var: The original keyword for variable declaration.
    • let: Introduced in ECMAScript 2015 (ES6), it is used for block-scoped variable declarations.
    • const: Also introduced in ES6, it is used for declaring constants, which are variables whose values cannot be reassigned after initialization.
    • Scope:
    • Global Scope: Variables declared outside of any function or block have global scope.
    • Function Scope: Variables declared with var inside a function have function scope. They are accessible only within that function.
    • Block Scope: Variables declared with let or const inside a block (e.g., within an if statement or a loop) have block scope. They are accessible only within that block.
    • Basic Syntax:
    • To declare a variable, you use one of the keywords (var, let, or const) followed by the variable name. For example:
    • var firstName;
    • let age;
    • const PI = 3.14159;
    • Initialization:
    • Variables can be initialized at the time of declaration by assigning them an initial value using the assignment operator (=).
    • let firstName = “John”;
    • const age = 30;
    • Variables declared with let can be declared without immediate initialization.
    • Constants (const):
    • Variables declared with const must be initialized during declaration.
    • const GRAVITY = 9.8; // Correct
    • // const E; // Error: Missing initializer in const declaration
    • Constants cannot be reassigned after initialization.
    • const PI = 3.14;
    • // PI = 3.14159; // Error: Assignment to constant variable.
    • It is possible to modify the properties of an object or array declared with const, but it is not possible to reassign the variable itself.
    • const myArray =;
    • myArray.push(4); // Valid: myArray is now
    • const person = { name: “John” };
    • person.name = “Jane”; // Valid: person.name is now “Jane”
    • // myArray =; // Invalid: Reassignment of const variable
    • Naming Conventions:
    • Variable names can contain letters, numbers, underscores, and dollar signs.
    • Variable names cannot start with a number.
    • JavaScript uses camel case as a common convention for variable names (e.g., firstName, lastName).
    • Hoisting:
    • Variables declared with var are hoisted to the top of their scope, meaning they can be used before they are declared in the code. However, they are initialized with undefined until the line where they are assigned a value.
    • Variables declared with let and const are also hoisted, but they are not initialized. Using them before their declaration results in a ReferenceError.
    • Multiple Declarations:
    • It is possible to declare multiple variables in a single statement.
    • let a, b, c;
    • const x = 10, y = 20, z = 30;
    • However, it is generally recommended to declare each variable on a separate line for better readability.

    JavaScript Object Literals: Comprehensive Guide

    Object literals are a fundamental concept in JavaScript used to create objects, which are collections of key-value pairs. They are a primary way to define objects in JavaScript.

    Here’s a detailed discussion of object literals, drawing from the sources:

    • Definition: An object literal is a way to create a new object in JavaScript using a simple, concise notation. It involves defining properties (key-value pairs) within curly braces {}.
    • Syntax:
    • An object literal consists of key-value pairs, where keys are strings (or symbols) and values can be any data type, including primitive values, other objects, or functions.
    • Keys and values are separated by a colon :, and each key-value pair is separated by a comma ,.
    • Example:
    • const person = {
    • firstName: “Brad”,
    • age: 40
    • };
    • In this example, person is an object with two properties: firstName with the value “Brad”, and age with the value 40.
    • Properties and Methods:
    • Properties are the key-value pairs that store data within the object.
    • Methods are functions that are associated with an object and can be called using dot notation.
    • Accessing Properties:
    • Properties of an object can be accessed using dot notation (objectName.propertyName) or bracket notation (objectName[“propertyName”]).
    • console.log(person.firstName); // Output: Brad
    • console.log(person[“age”]); // Output: 40
    • Nesting Objects:
    • Objects can be nested within other objects, allowing for complex data structures.
    • const person = {
    • name: “Brad”,
    • address: {
    • street: “123 Main St”,
    • city: “Anytown”
    • }
    • };
    • console.log(person.address.city); // Output: Anytown
    • Adding or Changing Properties:
    • Properties can be added to an object or their values modified after the object has been created using dot or bracket notation.
    • person.email = “brad@example.com”; // Adding a new property
    • person.age = 41; // Modifying an existing property
    • Using Functions as Methods:
    • Functions can be added as methods to object literals. The this keyword can be used within a method to access other properties of the object.
    • const person = {
    • name: “Jane Doe”,
    • greet: function() {
    • console.log(`Hello, my name is ${this.name}`);
    • }
    • };
    • person.greet(); // Output: Hello, my name is Jane Doe
    • Object Constructor:
    • Another way (besides object literals) to create objects is to use the object constructor.
    • let todo = new object ();
    • This creates an empty object to which properties can be added with dot notation such as todo.id = 1;
    • Enhanced Object Literals (ES6):
    • ES6 introduced several enhancements to object literals, including shorthand property names and computed property names.
    • Shorthand Property Names: If the property name is the same as the variable name, you can use a shorthand notation.
    • const firstName = “John”;
    • const age = 30;
    • const person = {
    • firstName, // Shorthand for firstName: firstName
    • age // Shorthand for age: age
    • };
    • Spread Operator:
    • The spread operator (…) can be used to copy properties from one or more objects into another object.
    • const obj1 = { a: 1, b: 2 };
    • const obj2 = { c: 3, d: 4 };
    • const obj3 = { …obj1, …obj2 };
    • console.log(obj3); // Output: { a: 1, b: 2, c: 3, d: 4 }
    • Object.assign():
    • The Object.assign() method is another way to merge the properties of one or more source objects into a target object. The first argument is the target object, and subsequent arguments are the source objects.
    • const obj1 = { a: 1, b: 2 };
    • const obj2 = { c: 3, d: 4 };
    • const obj4 = Object.assign({ }, obj1, obj2);
    • console.log(obj4); // Output: { a: 1, b: 2, c: 3, d: 4 }
    • Object.keys(), Object.values(), and Object.entries():
    • Object.keys(): Returns an array of the object’s property names (keys).
    • Object.values(): Returns an array of the object’s property values.
    • Object.entries(): Returns an array of the object’s key-value pairs as arrays.
    • const person = { name: “John”, age: 30 };
    • console.log(Object.keys(person)); // Output: [“name”, “age”]
    • console.log(Object.values(person)); // Output: [“John”, 30]
    • console.log(Object.entries(person)); // Output: [[“name”, “John”], [“age”, 30]]
    • hasOwnProperty():
    • The hasOwnProperty() method returns a boolean indicating whether the object has the specified property as its own property (not inherited).
    • const person = { name: “John” };
    • console.log(person.hasOwnProperty(“name”)); // Output: true
    • console.log(person.hasOwnProperty(“age”)); // Output: false

    Understanding object literals and how to manipulate objects is crucial for effective JavaScript programming. Object literals provide a flexible and readable way to create and work with complex data structures.

    JavaScript Array Methods: A Comprehensive Guide

    Arrays in JavaScript are special types of objects that are a data structure used to store multiple values. Array methods are built-in functions that can be used to manipulate arrays. There are many different array methods, but some of the most common and useful ones include push, pop, shift, unshift, slice, splice, concat, forEach, filter, map, and reduce.

    Here’s a discussion of array methods, drawing from the sources:

    • Creating Arrays:
    • Array Literal: An array can be created using bracket notation with values inside the brackets, such as =.
    • Array Constructor: An array can also be created using the array constructor by calling new array().
    • Basic Array Methods:
    • push(): Adds one or more elements to the end of an array. Modifies the original array.
    • pop(): Removes the last element from an array and returns that element. Modifies the original array.
    • shift(): Removes the first element from an array and returns that element. Modifies the original array.
    • unshift(): Adds one or more elements to the beginning of an array. Modifies the original array.
    • reverse(): Reverses the order of the elements in an array. Modifies the original array.
    • Methods to get information from an array:
    • includes(): Determines whether an array includes a certain value among its elements, returning true or false as appropriate.
    • indexOf(): Returns the first index at which a given element can be found in the array, or -1 if it is not present.
    • Methods to extract a section of an array:
    • slice(): Returns a new array containing a portion of the original array. Takes two arguments: the starting index and the ending index (exclusive). The original array is not modified.
    • splice(): Changes the contents of an array by removing or replacing existing elements and/or adding new elements in place. Takes two arguments: the starting index and the number of elements to remove. The original array is modified.
    • Methods to combine arrays
    • concat(): Returns a new array that is the result of merging two or more arrays. The original arrays are not modified.
    • Spread Operator: The spread operator (…) can also be used to concatenate arrays.
    • It can extract the items from both arrays and combine them.
    • Methods for looping through arrays:
    • forEach(): Executes a provided function once for each array element.
    • It does not create a new array or modify the original array.
    • It’s used to simply iterate through the array and perform an operation on each element.
    • High Order Array Methods:
    • These methods take a function as an argument (a callback function) and can be used to iterate through arrays and perform specific operations on each element.
    • filter(): Creates a new array with all elements that pass the test implemented by the provided function.
    • It returns a new array containing only the elements that satisfy the provided condition.
    • map(): Creates a new array with the results of calling a provided function on every element in the calling array.
    • It transforms each element of the array according to the provided function.
    • reduce(): Executes a reducer function (that you provide) on each element of the array, resulting in single output value.
    • It reduces the array to a single value by applying a function that accumulates the result.
    • It takes two arguments: an accumulator (previous value) and a current value.
    • Methods to flatten arrays:
    • flat(): Creates a new array with all sub-array elements concatenated into it recursively up to the specified depth.
    • It flattens nested arrays into a single array.
    • Static Methods on Array Object:
    • Array.isArray(): Determines whether the passed value is an array.
    • Array.from(): Creates a new array from an array-like or iterable object.
    • Array.of(): Creates a new array from a set of arguments.

    It is worth noting that some array methods modify the original array, while others create and return a new array. It is important to be aware of this distinction when using array methods, as it can affect the behavior of your code.

    Modern JavaScript From The Beginning | First 12 Hours

    The Original Text

    hey what’s going on guys so I know you haven’t seen much of me lately I’ve been just really busy between my personal life and also working on courses and ideas for travestymedia.com which is my biggest Focus right now and I will be making videos soon but I wanted to give you guys kind of a little treat so this is the first 13 hours of my modern JavaScript from the beginning course which is a 37 hour course so it is only a portion but it’s packed with fundamentals and we go pretty deep into those fundamentals so things like data types control structures functions Loops the Dom so I really hope you enjoy it and if you do want to go further and you want to watch the other 20 plus hours I will have a link to the course in the description uh with a promo code so obviously this is geared more towards beginners but even if you’re already a JavaScript developer I can guarantee you that there’s there’s something you’ll learn all right so let’s get into it [Music] all right guys so I just want to quickly go over what JavaScript is and why you should use it so JavaScript is essentially the Java programming language as the name implies I’m kidding JavaScript has nothing to do with Java other than they share a similar name and they’re both programming languages so JavaScript is one of the core Technologies of the web alongside HTML which is a mock-up language and is used to structure web page content as well as CSS which is used to style that content so JavaScript is what brings life to the front end or the user interface of a website or a web app and it allows us to make web pages Dynamic not only that but it can also be used on the server side to do things like interact with databases and work with the file system and this is with the help of the node.js runtime so JavaScript is a high level interpreted programming language used to create interactive and dynamic website experiences and when I say interpreted what I mean is that it’s executed line by line rather than being compiled into machine code first so the code is executed on the Fly making it a scripting language hence the name JavaScript so as far as what JavaScript is used for I wouldn’t be able to fit everything on this page so I’m going to go over just the general things that JavaScript is used for so first off it’s used to manipulate the Dom or the document object model and I’ll be going over the Dom in depth but you can basically think of it as a tree-like structure of nodes and everything on the page is a node including every HTML tag every attribute every piece of text and so on so JavaScript provides methods for dynamically changing that structure or changing the content or the styles of the elements in the Dom for example you can use JavaScript to add remove or change text of a heading or the content of a div or the styles of an element such as its color font and size so this is an important aspect of JavaScript as it allows developers to create Dynamic and interactive web pages that can respond to user actions now those user actions are called events and JavaScript gives us a way to handle events so we can respond to things like Mouse clicks or drags or hovers keyboard events form submissions and just about anything you can think of that you can do in the browser window and again this allows us to create very Dynamic interfaces and things like modals or drop downs collapsible content and so on so making asynchronous request is one of the most powerful uses of JavaScript and it’s used to interact with back-end servers whether it’s your own server that you created or a public API such as the GitHub or YouTube API so we can make HTTP requests right from our code to fetch data or submit data and this happens all behind the scenes without having to refresh the page and this is often used in what are called single page applications or Spas to dynamically load and update content without having to reload the entire page so as far as animations and effects there’s many different ways that we can create these using JavaScript we can use CSS Transitions and animations with JavaScript there’s the request animation frame method there’s different libraries like animate.css and gsap so these methods allow developers to create a wide range a wide range of animations such as fading moving elements along a path scaling rotating and so on now data manipulation which is the process of modifying or transforming data can be done with JavaScript because it’s a full-featured language with data structures like arrays and this allows us to sort filter and aggregate data so there’s all kinds of powerful array methods that we can use such as map filter reduce and we’re going to get into all of these later on so JavaScript can also be used to store data on the client or in the browser using things like local storage session storage and cookies we can also create single page applications or spas and these are applications that load a single HTML page and dynamically update the content without having to reload the entire page and this provides a really seamless and responsive user experience so no page reloading we can create different routes and so on and usually you would use a front-end framework for building Spas so you’d use something like react or view or angular but you can also create them with vanilla JavaScript now everything that I’ve said up until this point is all client-side or front-end JavaScript and that’s where it is used the most I would say but you can also use it on the server side with the node.js runtime as well as Dino so in addition to consuming apis from the front end we can also create apis that interact with databases on the back end and there’s a ton of Frameworks that you can use to help you with this including Express which is extremely popular and we’ll actually be creating a backend API with Express later on so the last thing I want to go over are some reasons why you should learn JavaScript so one is popularity JavaScript is one of the most widely used programming languages with millions of developers using it to build websites web applications browser-based games server-side apis and more so it makes it a very valuable skill to have and it opens up many job opportunities and allows for collaboration with other Developers so it’s also very versatile um it’s used like I said on both on the front end and back end of web development making it a full stack language this versatility allows developers to build complete web applications using only JavaScript not only that but there’s Technologies like react native which allow you to build complex mobile applications and Technologies like electron which allow you to even create desktop applications some of the most popular desktop apps are actually built on JavaScript and electron including vs code which is the text editor that we’ll be using as well as Postman which is the HTTP client that we’ll be using so I would say that JavaScript is relatively easy relative being the key term so if you compare it to other languages especially more low-level compile languages like C and C plus plus it’s much easier to get into and I think anyone who has a passion for coding can learn JavaScript and you don’t have to be some genius you don’t have to be great at math or anything like that you just have to have some drive and the willingness to learn and put the effort in so JavaScript also has a very very large and active Community which provides a wealth of resources support tutorials and tools for Learning and improving your skills from websites like stack Overflow to social media JavaScript just has a huge reach and when it comes to tools like actual development tools there’s just there’s so much open source software so you have npm which is the node package manager with I think it’s like 1.3 million packages that you can just download install and use so there’s just there’s there’s no shortage of resources or tools when it comes to JavaScript all right guys so in this video I want to go over the tools we’ll be using as well as our environment which is going to be very simple we’re writing vanilla front-end JavaScript so essentially all you need is a text editor and a browser but I do want to show you some of the extensions that I’ll be using and so on so as far as a text editor you can use whatever you want you probably already have a preference I’m going to be using visual studio code that’s what I recommend it’s very easy to use it’s intuitive it has great extensions and it’s very popular I would say the most popular for web development especially front-end web development and then there’s some extensions I’ll be using as well so I would suggest using it but you don’t have to if you use Sublime Text or atom or something else you can still follow along just fine so the next thing I’d say to install is git if you don’t have that already and git is Version Control so basically we can create repositories with our code and we can also push to third-party services like GitHub or git lab or bitbucket so this is not a git course but I will show you just the basics and we will need to push to a a service so that we can host some of our applications some of our projects because I do want to do a couple simple deployments all right and you can install get many different ways if you’re on Mac you can use Homebrew you can also go to get Dash scm.com and you can download and install it as well and then I’d also say install node.js just to have it on your system node.js is a it’s a JavaScript runtime so it essentially allows you to run JavaScript on your machine or on a server rather than just in the browser so you can actually use node.js as your your backend technology now this of course is not a node.js course but there are some things that I’d like to talk about especially with npm which is the node package manager and that comes with node.js so I would suggest installing that and you can install either the long-term support or the cut the most recent the the current version really doesn’t matter for this course so what I want to do now is just go into vs code and just show you the extensions that I’m using now I have a ton installed but the there’s really only two that I would highly recommend that you use with this course so one is called live server so if we scroll down here see right here live server so we we are we’re writing front-end JavaScript so we don’t really need any kind of server you could have an HTML file right on your desktop and have a Javascript file linked to it or just create the script tag in the HTML file and just open it run it in a browser and it works however live server gives you like a mini Dev server that you can run your uh your files with and it’ll Auto reload in the browser whenever you make any changes and that that includes making changes in the JavaScript the HTML the CSS if you change any of that code it auto reloads so you don’t have to keep reloading the browser yourself so I would definitely recommend using this that’s what I’ll be using throughout the course and then the other thing that I would suggest is prettier which is a code formatter it just keeps your your code nice and clean in fact I’m going to bring over a file real quick and you guys of course don’t have to do this but I’m just going to open this up it’s a file from from the course and I’m going to show you my settings in a minute but basically you’ll see if I tab a line way over here and then I go when I save it’ll put it right back okay so it keeps your your code nice and clean and then you can also set like the the spacing you can set if you want to use semicolons or not because in JavaScript semicolons actually are not you know they’re not mandatory so you can set those to on or off as you can see I have them set to on so if I miss a semicolon and I save it adds it automatically and you can also set it the other way around where if you have a semicolon and you save it gets rid of it and then the other thing that I want to show you are quotes so you can see this string is wrapped in single quotes I prefer to use single quotes so I have it set so that if I do if I have double quotes in here and then I save it automatically gets set to single quotes all right now where you can configure this stuff once you install prettier is if you go to the settings so right here settings and then just search for prettier and then you’ll find all these these options here but the ones I want to show you are right here so semi you can see I have this checked so it’s going to add semicolons if I forget if I uncheck it it’ll do the opposite and then down here I have single quote checked which by default I believe this is not checked but I prefer a single quotes So I do have it selected and then here my tab width I believe the default is four but I have mine set to two which makes it a little more Compact and neater in my opinion all right so those are the settings now to make sure that your code formats when you save just search for a format in the settings and right here format on Save just make sure that that’s checked all right so we can close that up close that but that’s it as far as the tools that I’m using and our environment so let’s move on to the next video okay so most of the code that we write is going to be within a JavaScript sandbox which is just a bunch of files and folders that are going to pertain to each section of the course but before we do that I just want to show you the very basics of just creating an HTML and a Javascript file and running the JavaScript in the browser Etc and for those of you that you know aren’t are pure beginners just kind of bear with me because I do want this course to be for everybody even if they’re just just starting out with JavaScript so you can skip some of these videos if you want or just you know watch them as a refresher so I’m just going to create a folder so go ahead and create a folder wherever you want I’m going to create it on my desktop and I’m just going to call it I’ll call it my Dash website again I’m going to delete this after so it doesn’t matter now you want to open the folder with your text editor and there’s multiple ways to do that you can open the text editor and you can open the folder from there or you can usually on Windows you can usually right click and if you’re using vs code you’ll see an option to open with code so you can go ahead and do that if you’re using Sublime text you I think you also have a context item if you’re on a Mac what you can do is drag the folder down to the vs code icon or whatever you’re using and it will open it up and you can see on the side here is our my website site folder so from here I’m going to create a new file just click this icon and let’s say index.html so now we have an HTML file and with vs code we have a tool called emit which is really great for for writing quick HTML and CSS so for instance I could do H1 enter gives me an H1 tag if I want to add a class I could say like my class so dot my class enter or Tab and then if I wanted an ID I could do you know my ID enter our Tab and let’s say I wanted like five each ones I could do times five there’s all types of stuff you can do so I do have a YouTube video on Emmett if you’re interested but another thing emit allows us to do is just create a kind of a boilerplate for our HTML so I’m just going to hit exclamation enter and you can see it gives us our head body tags Etc and again if I know a lot of you guys already know this most of you probably do but just bear with me so if I just hit tab a couple times I can go to the title and just change it to let’s say my website and then in the body for now I’m just going to put in H1 and then hello world and save that okay now since this is an HTML file I can just open it like I can just click on it make sure it opens with a browser and we’ll be able to see the hello world so you can just develop like this if you want for this course like I’m just going to make this smaller so if we change something like let’s say we put an exclamation here and I save obviously since I just opened it on my file system not on any kind of server I go over here and I have to reload now I don’t want to have to do that for everything so that’s where live server comes in so what we can do as long as you have it installed just search for live server so right here and get that installed and then you’ll see this go live button down here you could click that or you could right click and just say open with live server and what it’ll do is open up another Tab and you can see in the URL bar it’s this is our Local Host this is one two seven zero zero one that’s called our loopback address and it runs on Port 5500 by default now if I were to change something like let’s say get rid of this exclamation and save you’ll see it auto updates or Auto reloads in the browser so I don’t have to keep reloading and that and that is with HTML CSS and JavaScript now I expect that you guys know HTML you should know at least the basics of CSS so I’m not going to really get into that to start to write JavaScript there’s a couple ways we can do it one it one way is not really recommended but I’m going to show you it anyway and that is to just write it directly in the HTML so to do that what you would do is go down right above the ending body tag and create a script tag which is an HTML tag and then anything we write in here is gonna is gonna run as our JavaScript so for instance we could do alert which is just it’s a function that’s on the window object and I’m going to talk about that in a little bit and we can pass in here let’s put a string so we need our quotes and again I’m going to talk about data types and all that very soon but I’m just going to do a Hello and save and you’ll see that that’s going to automatically run because we are using live server so since the file changed the website reloaded and now received seeing this alert of hello all right now typically you’re not going to do this you’re not going to write your JavaScript directly in your HTML it’s just bad practice you want to have your JavaScript separate okay this is called inline JavaScript just like with your CSS you normally wouldn’t write your CSS in your HTML you’d create a separate file so let’s create a new file and you can call it whatever I like to use script JS for just general JavaScript files and this will show us our alert again because the the page reloaded and then in here let’s write something else we’ll do an alert and let’s say hello from the JS file now if I save this we’re still just seeing the hello that’s in the index.html because we haven’t specified that we actually want this file to run so to do that we’ll come over here let’s get rid of the inline JavaScript but we’re going to keep the script tags now to load this script.js file we can just add a source attribute much like you would do with an image tag so let’s just say script.js it’s in the same folder you might have it in a JavaScript folder or JS folder like that but ours is right there so we’ll go ahead and save and now we’re going to see this hello from JS file okay so that Javascript file is now being loaded very very very simple stuff I know ninety percent of you probably already know this but of course I need to think of people of all skill levels okay so what I’m going to do now is stop live server and you can do that by hitting this button right here you can also right click and say stop live server and now if I reload this it’s not going to work anymore okay so I’m going to close vs code and I’m just going to delete this this uh my website folder and then in the next video we’re going to start to learn about the console in the browser which is extremely important and we’re going to start working on our Java in our JavaScript sandbox all right guys so before we start learning JavaScript I just want to quickly talk about the JavaScript sandbox when I do a course I don’t like to just type out the code and and that’s that I want you guys to have uh Resources with all the code in the course so what I do is create something called The Sandbox which has a folder for each section and in each section folder you have a folder for each video with that code okay so as you can see I’m just starting out here so I have my variables and data type section with the first video which is going to be about the console and then in that is just an index.html which right now is empty and a script JS which is empty okay now for the most part most of the learning modules that aren’t part of a project in the beginning are only going to need these two files so you don’t have to use the sandbox you can create your own files now in the downloads for this video you will have the finished version of the sandbox which of course is all the finished JavaScript and then you’ll have a starter version which is going to be pretty much everything but the JavaScript you’ll have all the files and folders you’ll have the HTML any CSS if we used any CSS but the JavaScript will be empty and if you want to use that starter package you can or like I said you can create your own so right now what I’m going to do in this this console folder is just create a boilerplate so I’ll just do exclamation and I’m just going to put console in the title and I’m not going to create this in every video I’m just showing you just just for the beginning and then since we’re not dealing with you know the Dom or anything yet I’ll just have an H1 in here that says oh we’ll put the name of the say console the name of the video and then we just want to add a script tag we can do script colon SRC and we want to link in our script JS okay so essentially at the beginning all of all the videos will start like this in the HTML and then we’ll proceed in our JavaScript now one thing I want to mention is if you’re creating folders like if you create a folder inside of an empty folder by default it’s going to be compact so it’s going to be like data type slash and then zero one console now I don’t like that because it can be kind of confusing which you know to know which folder you’re in so if you want to disable that you can just click on settings so we’ll go to settings microphones in my way and then just search for compact and then right here compact folders I have it unchecked but if I check it you’ll see it goes in this this horizontal fashion which I don’t like so you can just uncheck that if you want all right so now that we have this set up I’m just going to open this index.html with live server and we have our script connected so we don’t even need that HTML anymore and we’ll just make this a little smaller and now in the next video we’ll start to look at the JavaScript console all right guys in this video I want to go over the console in the browser because this is something that we’ll be using throughout the entire course and you’ll be using throughout your entire career as a front end or full stack web developer now every browser no matter which browser it is I’m using Chrome they all have what are called developer tools or Dev tools and in Chrome you can go to the menu and you can go to more tools and then developer tools or you can on Windows I believe it’s F12 you can toggle the dev tools and then on a Mac you can do command option I now you’ll see there’s a bunch of tabs here you’re probably familiar with the elements tab where you can you know highlight elements you can see the CSS you can even edit uh page elements of course this is only on my machine if I reload it goes back but you can do a lot with the elements tab but that’s for HTML CSS the console is where we’ll see all of our front-end JavaScript warnings and errors and we can log things to the console that’s what I want to get into in this video now you can also go directly to the console with command or control I think on Windows it’s can it’s Control Alt J I know on Mac it’s command option J and that will open it’ll go right to the console now as I mentioned this is where you’re going to see your your warnings and errors for example if I go into my script here and I just put in an A and I save that and it runs we’re going to see this reference error it says a is not defined shows me the line number and the file where it’s coming from all right so very helpful with con with uh warnings and errors and of course we can log to the console from our script which I’ll show you in a second but we can also type JavaScript right in here so if I wanted to do an alert I could execute that and you’ll see that well we get this alert with one now we’re going to see undefined on the next line because what this is is if there’s a result of the expression then it will be put here and there’s no result to alert we’re just running an alert function if I were to do let’s say one plus one then it’s going to show me two all right I can also set variables so let’s say I wanted to set x to the value of 100 and and we’ll go over variables and data types and all that but I can do that here as well I get undefined because nothing there’s no result to that if I were to do let’s say X plus 10 then we’re going to get 110 because X is equal to 100 okay I could use the date function if I wanted to to get the date so there’s there’s all types of stuff we can do here but you’re not going to do that very often maybe to do some testing and you know see if something is available on a Dom element or something like that but it’s not too often you’ll type JavaScript in here now to clear your console there’s a few things you can do you can use the clear function so clear with some parentheses and that’ll clear it also you can do command or control L that’ll clear it up as well or you can just reload the page all right so I’m gonna come over here into my script and I’m going to show you how we can log to the console uh in a couple different ways now we do this with the console object in fact if we go over here and we type console in the console and hit enter we’re going to see the console object now objects are common in in just about every programming language and you can think of them as they’re an entity that have properties and methods a property is like an attribute or a value where a method is a function something that does something and you can see that these are actually all methods they have an F next to them they’re functions and functions are executed with parentheses and don’t worry if you don’t understand that we’ll get into functions in a little bit now there’s quite a bit here but don’t let that overwhelm you because you’re only going to use maybe five percent of these most of the time you’re going to be using console log or console.log so let’s come over to to our script I’m actually going to reload the page just to clear that up and let’s look at console.log now what this is is console is is an object and remember an object has properties and methods a method is a function so log is the method that I’m using and to execute a function or a method you have to use parentheses so I’m executing the log method that’s on the console object and we use this dot syntax in JavaScript to access properties and methods okay now we want to log something so in here in the method or in the function we want to pass in an argument so I’m going to pass in a number let’s say 100 and if I save that and it runs you’ll see that now in the console we’re seeing 100. now any piece of data in JavaScript or really in any programming language has a type and this is the type of number and I’m going to go over the data types in the video after the next one so let’s say we want to log a different type like a string so a string is just a string of characters so a string has to be wrapped in either double quotes or single quotes so I’ll just say hello world and I’ll save that and you’ll see that will log the string and notice they’re different colors so the number is purple the string is white now if you want to log more than one thing at the same time you can do that as well so let’s say we want to log a number we’ll say 20 and then a string and then let’s say a Boolean which is a true or false so if I go ahead and save that you’ll see that it’ll log those three things those three values now in in many cases or I’d say most cases you’re going to be logging variables or results to functions it’s not that often you’ll log straight strings like that unless it’s like it worked or something if you’re running a function or something like that and you want to see if it worked so let’s just create a variable and we’ll get into variables more soon but if I just set let’s say x to the value of 100 then I can come down here and console.log x and of course that’s going to give me 100. all right now there is another extension that I I don’t think I mentioned and that is let’s see where is it right here JavaScript es6 code Snippets and it just gives you some some convenient Snippets and one of which um that I use quite a bit is CLG so if I do CLG enter it gives me a console log so I’ll use that quite a bit there’s also some other ones I use like try catch you can do if statements you know and I don’t usually use it for like if statements and stuff but you will see me do CLG and maybe a few others now in addition to log we also have console.error so I’ll say just alert and that’ll log to the console but you can see it has this red background red border and it also shows you the scope so I mean it’s up to you if you want to use it I I typically don’t I usually use console.log for everything but remember the console is for the developer this isn’t for the user users don’t come to your website and open up the console now in addition to alert we also have con console.warn so I’ll just say warning save that you’ll see we get the the yellow background pretty much the same thing just a different color and then we can also do tables for objects so I’m going to do console.table and I know we haven’t gone over objects yet but there are object literals I should say which are key value Pairs and they’re wrapped in curly braces so I’ll just do a simple object with a name as the key Brad is the value and then email as the next key and then Brad at Gmail for the value and if I save it you’ll see this object is printed out as a table which is kind of nice and it also shows it as the object next one is groups so we can do console.group and give that group a name let’s call it simple and then we can add some let’s just take we’ll just take these three here and put those right underneath and then we want to end the group so we can say console dot group end and if I save that we check it out you’ll see that we have this simple with the this this collapsible arrow and the warning the alert and the log are now under that in that group all right now this isn’t really this isn’t something that I use but I just want you guys to know that this stuff is available you’ll probably only end up using console log 95 of the time but again I do want you to know some of the stuff that that’s available on this console object now another thing that we can do that’s kind of cool you probably won’t use it much but I do want to show it to you is adding CSS styles to your console logs so what we can do is is create a variable I’ll call it Styles and I’m assuming that you guys know CSS but we can put some Styles in here like let’s say padding 10 pixels we’ll say let’s do background Dash color and we’ll do white and then let’s do the color the text color which will be green okay so we just have a variable with some CSS now what we can do is a console log and I’ll put a string in here of hello world and the way that we apply the Styles is at the beginning of the string we can add a percent C and then as a second parameter we can pass in our Styles now if I save that and run it you’ll see down here we get the string of hello world with the CSS Styles applied now there are some other methods on the console object but I don’t want to spend too much time on stuff you’re probably never going to use so in the next video we’re going to look at code commenting we’re also going to talk about some of the helpful keyboard shortcuts that you can use while writing code all right guys so in this video I want to talk about commenting and also give you some helpful shortcuts to use while you’re coding now as far as the the code here it’s the same exact stuff that we did in the last video we’re not actually going to write any code in this video aside from comments but I am going to show you how to kind of navigate around and use some keyboard shortcuts Now comments are used for documenting your code and explaining things in a more human readable way oftentimes multiple developers work on the same code base and comments are used to explain what a certain piece of code does it’s especially important when you’re working on a project with a team of developers and comments are also used to disable code so if you have code that you don’t want to delete but you also don’t want to run then you would comment that block of code out you can even use commenting as like a to-do list for for yourself or for other developers so very helpful and commenting in JavaScript is very simple so I’m just going to go up to the top here and we can just add double forward slashes and this is a single line of code so say this is a single line of code if I go on to the next line and start typing you’ll see it’s not commented all right now in vs code and in most text editors if you just hit command or control and then forward slash it’ll put the double forward slash for you you can toggle it all right also if you want to comment out a line of code that’s already there like let’s say this one you can go anywhere on the line and just hit command or control forward slash and you can toggle it you know put it into a comment and toggle it so if you want to toggle multiple lines of code there’s a few ways you can do it what I would probably do what I usually do is go to either the beginning or the end hold shift and hit up or down depending on what which code I want to highlight and then I’ll go ahead and do command or control forward slash and it will comment all those lines out but when you do that every line has a comment on it there’s another way to add multi-line comments and that’s with the forward slash and asterisk and then you want to go to wherever you want the comment to end and put an asterisk forward slash so now you can see everything that’s in between that is is commented out in fact I’m just going to put right here we’ll say multi multi-line comment okay so those those are the two ways of commenting in JavaScript now as far as keyboard shortcuts I already showed you that if you hold shift you can go up or down and you can highlight code you can also hold shift and go right or left and highlight as well if you want to navigate a line of code I’m just going to go to this one actually let’s go to this this table right here so if we go to this table and I hold down command or control and I hit right now the right arrow it’s going to go all the way over to the end of the line if I hit left it’ll go to the beginning of the line okay now if you want to go in between and you don’t want to navigate every single character you just hold option or alt on Windows and you can see it’ll go from this console to the end the beginning of console to the end if I hit right again it goes to the end of table hit right again it goes to the beginning of the object and so on okay so it’s just a faster way to navigate across now you can also hold down shift and if you do option or alt right or left it’ll just highlight it’ll go across faster and you can highlight while you’re doing that and you can also hold shift and hold down command or control and you can highlight from where you are over either right or left okay now if you want to move a line of code up or down you can hold alt on Windows or option on a Mac and you’ll see this console.table I’m just moving it up and down the file okay that’s holding option or alt if you want to duplicate it then you could hold shift option or shift alt and hit the down arrow and you’ll see I’m just copying the the line of code down and of course undo is is a command or control Z all right now let’s see if you want to let’s say I want every instance of this log right here so I’m going to hold shift and just highlight it and then in vs code it’ll automatically highlight each one now if you want to a little it’s not actually highlighting it like with your cursor it’s just visually if you want to actually highlight with your cursor I can hold I can hit command or control D and you’ll see it selects the next DOT log if I hit command or control D again it selects the next one and I can edit those I’m editing you know all of the dot all the logs okay now if you want to select all of them instead of going one by one with command or control D you can do shift what is it command shift L will will highlight them all and you’ll see now I got all the dot logs and I can edit them all right you can also place your cursor so if I want to put my cursor at the beginning of the the log here I can hold either alt on Windows or option on a Mac and I can just click there click here and click here and then I can type in all where all the cursors are okay so you’re not going to remember these right now so don’t worry you know when you move to the next video and you forget all of these don’t worry about it use use one or two you know while you’re coding even in this course use one or two and learn them so that it kind of becomes second nature and then choose another one or two and start to use that you know and before you know it you’ll you’ll just do it without even thinking all right and then a couple others I wanted to show you if you do command shift o you can search for a file so if we do like index you’ll see that both of our index htmls if I do script you can see our script js’s and you can switch to those as well all right if you want to search you can do let’s see you can do command option f and if I want to look for you know console it’ll show me all those you can also do command shift F and you can search over here for um we’ll say console and it will show us all where console is in every file not just the file that we’re in all right and you can also just click on search here as well and if in vs code if you want to toggle the sidebar you can do command B so our control B that’ll just toggle the sidebar uh what else if you want to toggle the terminal you can do command or actually it’s control till day so I can toggle the terminal down here which we’re not going to get into maybe maybe we will later on in the course but yeah so those are the kind of the the most common shortcuts that at least at least that I use so hopefully that helps and in the next video we’re going to start to look more at variables so in this video we’re going to start to look at variables and variable declarations now variables are basically containers for pieces of data and that data can be one of many different types and it’s important to understand the different data types in JavaScript so we’re going to go over that in the next video now when we declare a variable we need to use one of three keywords so let’s just say ways to declare a variable so basically we have VAR let’s make sure we comment this out so we have VAR we have let and we have const okay so these are the three ways that you’ll see variables declared in JavaScript now you probably won’t see VAR very much anymore VAR was the original declaration but in es2015 which is the 2015 update of JavaScript or ecmascript also known as es6 it was a huge update to the language and they introduced let and const and the main reason for that is due to something called scope and I’m not going to get too much into scope right now because it’ll go over a lot of people’s heads that are just getting started we’re going to have a whole section on function scope execution context and stuff like that but for now just know that when you write code in just right in the file not inside of a function not inside of an if statement that’s the global scope all right now in the global scope VAR and let work in a very similar way now const is a little different because it’s for constants it’s for values that you that are not going to be reassigned at a later time okay and I’ll get I’ll I’ll show you const in a few minutes but let’s start by just creating some variables here I’m going to say first name and let’s set that to a string so we do need quotes so we’ll say John now notice I made this n capital so the basically the beginning of the second word I capitalize I’ll talk about that and some other ways you can format your variables in a few minutes but let’s say first name we’ll say last name and set that to do okay so we’re just creating some strings putting them into some variables and we’ll do a console log of first name and we can log more than one thing so we’ll do that here as well and you’ll see we get John Doe okay and if I wanted to create a variable with another data type like a number we could say let age equals 30. we can console log age okay now if I try to log age up here you’ll see that I’m going to get an error it says cannot access age before initialization when we do this right here let cons VAR this is initializing a variable okay and you want to initialize it before you use it now it does act a little different if we use VAR so if I say VAR here and I run this we don’t get an error but you’ll see that it is undefined and this is due to something called hoisting which is a little more advanced and we’ll we’ll talk about that in at a later time but yeah you want to initialize your variables first I’m just going to get rid of that now when it comes to naming your variables there’s a couple conventions that we need to follow so variable names can only be letters numbers underscores and dollar signs okay so you can’t have anything else you can’t have like a plus symbol or an asterisk or anything like that and even though that you can have numbers they can’t start with a number so if I were to say like let one name equals Brad that’s not going to work I’m going to get an error but if I move that one to the end here then that’s fine but if I try to add like a plus sign or something like that that’s not gonna that’s not gonna work okay now as far as the formatting of your variables for like multiple words just paste this in here what I did here with first name and last name this is called camel case where you start with a lowercase number for the first word and then every other word after that is uppercase okay so that’s camel case and that’s usually what you’re going to see now you have other ways to do it like you could use underscores to separate The Words which I don’t particularly like but I mean it is it’s all right I guess you see a lot of that in PHP and then we also have Pascal case where the the first word is also uppercase and there are conventions or there are certain times where this is the convention such as in react components or most front-end Frameworks when you create a component the file name is Pascal case so is the class or the function name of the component and then you might see all lower case which I really don’t like I don’t think that it’s very readable especially if you’re getting into like three and four words okay so let’s look at reassigning variables so we’ll say reassigning variables now we have a variable up here of age you we use let we set age to 30. so if I come down here I can then take age and then I can reassign it to let’s say 31 let’s say John had a birthday and then we’ll just console log age again and now it’s 31. all right now another thing I can do with let is just simply declare it and not actually assign a value so let’s say we want a variable called score but that’s it I’m just going to declare it okay I’m allowed to do that I don’t get any error and then I could take score and maybe add 1 to it let’s do a console log of score and we get 1 and then we might have like some kind of if statement I’ll just put true in here so that this runs and and don’t worry if you don’t understand this but let’s say we had we have something happen where the score and gets added one again we’ll say it equals score plus one and then down here we’ll console log again score and now we get two okay so that’s something that is very common using let now let’s try the kind of the same thing with const so we’ll go ahead and say const and I’ll just I’ll just call this X and I’m going to set that to 100 and then let’s say I want to take that X variable and then reassign it to 200. if I save that I’m going to get an error it says assignment to constant variable a type error okay so a constant cannot be directly reassigned like this another thing you can’t do with const is just declare it and not initialize so for instance if I were to say I already have score so I’ll say score one if I were to just do this you’ll see it’s already giving me an error here const declarations must be initialized if I save I’m going to see the same same error here okay If This Were A let though that I can do that okay so just know that const can’t be directly reassigned now where a lot of people get confused is when you’re using arrays or objects things that are not primitive values and I know I haven’t gotten into that stuff yet but I just want to show you a quick example that’s pretty easy to understand so if I use const and I have an array right and and an array is just multiple values so let’s say one two three four all right what I can’t do is directly reassign by taking array and saying well let’s do one two three four five if I do that I’m going to get an error because I’m using the equal sign directly reassigning but what I could do is with a raise you have a bunch of methods such as push and pushes is a method that will add on to the end so what I could do is say array dot push five and then if I console log my array that works so I manipulated this array I changed it to from one two three four to one two three four five by simply using a method to push five onto the end okay and then the same goes with objects if I say cons person and I set that to an object and I say name Brad and then we’ll come down here now if I were to just take person and directly reassignment you guys know that’s not going to work but I could do person.name and set that equal to John and that works because I’m not I’m not directly changing the variable I’m changing a property or a key inside the variable or not a key but a value of a key okay I could also do like person dot email and I could add on let’s say Brad at gmail okay and then if I do a console log of the entire person object you’ll see I have name John and email Brad Okay so when people ask me you know what should I use cons let or both or whatever I say it’s it’s it’s really preference now for me I always use const unless I know I’m going to directly reassign something like like this right here okay um now you’re gonna find that you don’t do this very often okay I shouldn’t say that I don’t do this very often we use a lot of the times we use objects and arrays and using Cons with that is just fine because there’s not too many you know you don’t directly reassign this very often you’re going to do stuff like this you’re going to use methods you know you’re going to assign properties and stuff like that so that’s my rules I always use cost unless I know it’s something that I’m going to change such as a score and a game you know you might add to that but you probably or what I would do is have it in an object and then just change that value so I could use const in that case so I mean you’re going to find a lot of this stuff is preference all right now another thing that I just wanted to mention is we can declare multiple let’s say multiple values at once or multiple variables so I’ll just go ahead and say actually let’s use let here let’s say let and I’ll say ABC so I could do that right I don’t even have to assign it because I’m using let and then I could also do like const I can’t just I have to assign it but I still can do multiple at once so I could say like a I can’t do a because I just used it up there but let’s say d equals 10 I could put a comma and say E equals 20 and let’s say f equals 30. okay and all of that is just fine so if I console log d down here you’re going to see we get 10. now I usually don’t do this I’ll just use a semicolon and then just do const d const d const f I just think it looks cleaner but that’s just again that’s just preference but you can assign you know multiple at the same time and if you don’t actually assign a value and you log it what we’re going to get is undefined okay which is one of the data types which is what we’re going to talk about in the next video all right guys so I want to spend a little bit of time on data types so when you’re dealing with code any any type of code any language and you’re dealing with data that data is associated with some kind of data type okay and it doesn’t matter which language you’re using they all have some kind of data types and they can be different language by language now in JavaScript you essentially have two types of types you have primitive data types and you have reference types or objects and I’ll talk about those in a second but I want to start off with primitive data types now I feel like a lot of JavaScript courses kind of skip over some important fundamentals and what I want to do is I’ll talk more about this in the next video but I want you to understand how these data types are stored and how primitive data types are different or are accessed differently than reference types but again I’ll talk more about that in the next video right now I just want you to know what these types are so the first is a string which we’ve dealt with so a string is essentially a sequence of characters and a string must be enclosed in either double quotes or single quotes or back ticks next we have a number which are integers which could be positive or negative numbers as well as floating Point numbers or decimals now in some languages you actually have either a decimal and or a float type in JavaScript we don’t what if it’s a integer or if it’s a decimal or floating Point number it’s they’re all the same they’re all going to be then the type of number okay so keep that in mind next we have a Boolean which represents a logical entity it can be either true or false next we have null which is the intentional absence of any object value and a lot of people get null confused with undefined which I’ll talk about next but just know that null is it’s always it’s intentional it’s supposed to be there but it’s supposed to be null it’s supposed to be empty you can essentially think of it as empty now the next one undefined is a variable that hasn’t been defined or assigned okay so null is purposeful undefined usually isn’t all right next we have a symbol which I’m not going to talk too much about right now because it’s it’s kind of advanced and and it was actually added in es2015 or es6 so a symbol is essentially a built-in object whose Constructor returns a sim a unique symbol or a symbol that is unique all right and and we’ll get into that later it’s not something you use very often at least I don’t and then the last one is a new data type that was just recently added called Big int okay and it just represents really really big integers really large numbers that the number type can’t handle all right and we will jump into some code in this video and just kind of show you how to how to store each of these in a variable so the next type of type is reference or objects now reference are objects they’re non-primitive and when we assign a reference type to a variable the variable is given a reference to that value and again I’m going to talk more about how reference types and primitive types are stored and accessed in the next video but object literals arrays functions these are all examples of reference types now in programming you have something called Static typing or statically typed and you have dynamically typed JavaScript is a dynamically typed language and what this means is that we don’t explicitly Define the types for our variables so if I say like const name equals Brad I don’t have to put const name String equals Brad it just knows it’s Dynamic with many languages you actually have to you have to add the types yourself those are statically typed languages like C C plus plus Java and I’m sure that some of you have worked with some of those languages in JavaScript you don’t explicitly set your types however there is something called typescript which is very very popular and it’s a superset of JavaScript meaning that it’s everything that JavaScript is it essentially is Javascript but it also has some additional features including static typing okay so there are reason to use static typing it is more code that you have to type but it can make your code more verbose and it can make it less prone to errors and a lot of people really love typescript so that might be something you want to look into once you really learn the fundamentals of JavaScript okay so I just want to jump into vs code and go over these types in the text editor and also show you how we can get the types of a specific variable so let’s start off with strings which are very simple just they’re just sequences of of characters so I’ll create a variable and I’m using const like I said in the last video I use cons for everything unless I know I’m I’m going to reassign it so we’ll say first name and we’ll set that to Sarah alright now I want to console log out the value so we’ll say first name but I also want to show you how we can get the actual type from this first name variable so as a second argument I’m going to pass in the type of operator okay so just type of and then a space and then whatever you want to get the type of sole first name and now you’ll see it’s logging out Sarah and string all right now there’s going to be a few variables that I want to show the value and the type and I don’t want to type it twice so I’m going to create another variable here we’ll just call it output and for now I’ll set it to first name and then let’s come down here and and put output now I just want to mention some little little tips and tricks as we go along I already went over some shortcuts but just to kind of remind you we can go to the the end of this first name hold shift and then highlight it and then we can do a command or control D to select the next instance of first name and then replace it with output and then save okay and we should get the same result so I’ll just mention little tips and tricks like that as we go along so the next type I want to look at is number so let’s do const we’ll say age equals 30. so that’s an example of a number if I change that to age we get 30 and it shows number from our type of operator now I also want to mention that decimals so if I do temp and set that to let’s say 98.9 and then we look at the type for that that’s also going to be a number there’s no specific float or decimal or anything like that everything is a number in JavaScript so the next type is Boolean which is really simple it’s just a true false value so maybe we want to say like has kids since we’re talking about a person and we’ll set that to true and then we’ll come down here we’ll change the output to has kids and we get true when it says Boolean so the next one is no which is basically like an intentional empty value so maybe we have like an apartment number but let’s say this person lives in a house so we set that to null there’s no apartment number there’s no need for one and this one is a little weird because if we set this to apartment number and we look at the value which is null and then we look at the the result of this type of we get object okay now this is a little confusing because null is not an object it’s not a reference type It’s A Primitive but there’s a reason for this it’s kind of in summary it’s kind of a mistake in fact I’m going to paste in the um the link right here if you’re interested and we can check it out real quick so let’s go to that link and it just kind of explains why this happens uh and it has to do with the first implementation of JavaScript values were represented as a type tag and value the type tag for object was Zero null is represented as the null pointer which was 0 x 0 0 consequently null had zero as a type tag hence the type of Return of object so in case you’re wondering why it says object and not null that’s why but it’s not it’s not that important honestly now the next is undefined and you’re probably not going to purposely set variables to undefined very much but just to show you if we were to do remember in the last video I showed you we can we can use let to just create a variable but not actually Define it to something so I’ll just say let’s score and then we’ll pass that in here to Output so we can see the value in the type and both are undefined the value and the type okay so if you just set a variable and you don’t Define it it’s going to be undefined now you can also explicitly set it to undefined you don’t do this very much but I could say cons score let’s just comment this out and I could just say set it to undefined and we get the same thing all right now a symbol is A Primitive type but it’s not something that you’re probably going to use very much especially in in you know your early career but just to show you we can create let’s say ID and let’s set that to a symbol so we’re going to say symbol with parentheses and then pass in a unique identifier of ID and then we’ll change this to ID and save and you’ll see we get symbol as our type and then the last one is although I should say the last primitive type is Big int which is just a really big number that is too big for the number type so I’ll say const n and I’m actually going to just copy or paste in this number here so it’s basically this long string of numbers and then n and if we were to put n right here and save we get the type of big end now as far as reference types let’s come down here and in the next video I’m going to talk about the difference in how these how primitive and reference types are stored and accessed but as far as what reference types are are arrays object literals functions so just to give you an example we’ll create a simple array I’ll call it numbers okay and then if I were to actually we want to put let’s grab this and let’s put this up here we want this above the output and then let’s change this to numbers okay if I save that it’s going to show the array as the value and object as the type okay any reference type is an object so an object literal of course is also an object is also a reference type so if I say person and we’re going to learn all about objects and arrays and get much more advanced but just to show you we’ll say Brad and then if we change this here to person you’ll see we also get object Now function is also a reference type so I’m just going to create a very simple function called say hello and just have it do a console log of hello and then down here let’s swap this out for say hello so you’ll see for the the value for the console log of the value it’s just the function itself I didn’t call it with parentheses and notice that instead of object it says function now it’s still an object it’s just defined as a function object and I’m going to put the documentation link here if you want to read more about that and in the final version of the sandbox I’ll label what these links are and stuff so I’ll make things a little neater but yeah that’s it as far as what the the types are the Primitive types and reference types or objects in the next video I just want to quickly go over how those are stored in memory all right guys so in this video we’re going to look at how primitive and reference type data is stored in memory and one thing I want to mention is if you’re a beginner and some of this is kind of confusing that’s okay that this is kind of like behind the scenes stuff and the reason I’m I’m putting it in the course at this point is just to give you a a bigger picture of not only the syntax to write for you know your JavaScript code but to also understand how JavaScript works so if you don’t completely soak in this video that’s that’s absolutely fine you can always come back to it later and we’ll talk more about this stuff later as well so when we store our data when we set a variable if it’s a primitive type it’s stored in an area in memory called the stack okay if we store reference type such as an array an object a function that’s stored in an area of memory called the Heap okay so you have the stack which is where your primitive data is stored and you have the Heap where your reference types are stored so just keep that in mind all right now to to kind of visualize how we store and access data I created this this diagram with kind of multiple scenes so first off let’s say we create a couple variables we have a name that’s equal to John which is a string which is a primitive type and then age equals 30 which is a number which is also a primitive type now this box over here represents the stack in memory so you can see age the name of the variable and 30 the value are stored on the stack same thing with name and John now if we were to create a variable called person and set that to an object which is a reference type you can see the variable is stored on the stack but it acts as accesses the data by reference and that data is stored in the Heap all right now just to kind of show you more about how this works if we create another variable called new name and we set it to name okay up here which is John then on the stack we have a new variable called new name and we have a new piece of data called John name is still equal to John and now new name is equal to John let’s say that we want to take that new name variable and reassign it remember when we use let we can reassign so now we have new name equals Jonathan so it overwrote the old value of John to Jonathan now let’s kind of do the same thing and say well we’re going to create a new person variable and set it to person which is this object right here Brad name Brad age 40 41 now but that’s fine so new person is put on the stack the variable and it points to the same reference that person does okay so it doesn’t create a whole new value like up here where we created John again it just points to that area in in the memory Heap so if we were to let’s come down here and let’s say new person dot name which is a property this property right here set that to Bradley now what’s going to happen is we’re changing in the Heap that name value of Brad to Bradley so new person.name is going to be Bradley but so is person.name in fact right here if we logged person.name it’s going to be Bradley even though we changed new person.name the reason for that is because they both point to the same reference all right so that’s kind of what I want to get across here is with primitive types the value is stored on the stack so even if you change new name to something name is going to stage on because John is there it’s solid on the stack with objects and arrays and so on you just you have a reference so if you set a variable to another variable and change something in that it changes the the reference so what I want to do now is jump into vs code and show you this this exact thing in the text editor so I have this empty script JS and we’re going to do the same thing let’s say const name equals we’ll set that to John and then we’re going to set the age equal to 30. so these are both primitive values in fact I’ll put a comment here let’s say these values are stored on the stack all right now let’s say reference values are stored on the Heap so let’s say const and we’ll say person equals and let’s set that to let’s say name and we’re going to have an entire section on object literals like this so don’t worry if you don’t fully understand the syntax so we’ll say age 40. all right so we have our permanent values and we have our reference values so I’m going to do what we did in the uh in the slide and let’s say new name and I’m using let here because I’m going to reassign it so say new name you set that to name and let’s just do a console log down here of both name and new name so now we get John and John for both the name and new name and don’t worry about this being crossed out it’s just because name is a deprecated property on the window object it has nothing to do with what we’re doing so now let’s go ahead and reassign we’ll say new name and we’ll set that now to Jonathan so if I save that now we get John and Jonathan now let’s try the same thing with the reference type so I’ll say let new person set that to person and then down here let’s console log person and new person and we get both they’re both the same right name Brad age 40. so now what I’m going to do is take new person which I got the value from uh from person but remember these are stored in the Heap and they’re accessed by reference so if I were to change the new person name to Bradley and I save that notice both person and new person both are now Bradley okay because these are both stored in the same spot in um in the Heap and they’re being accessed by reference and that diagram should really help you understand why it’s doing this right you can see they’re both pointing to the same spot but with the Primitive values the values are stored right on the stack all right so I hope that this made sense in the next video we’re going to look at type conversion because sometimes your types can change whether it’s implicitly or explicitly so we’re going to talk about that next all right guys in this video we’re going to talk about type conversion so type conversion or type casting is the process of explicitly converting a value from one type to another for instance you may have a string value of five so five with quotes around it and you want to convert it to a number of five so that you can maybe do some arithmetic operations on it or whatever you’re going to do now there’s also something called type coercion which can be explicit but it usually refers to having your types changed implicitly okay without you you know purposefully doing it so we’re going to talk about that in I think the video after the next one but in this one I’m going to show you how to explicitly convert types now let’s say we want to convert a string to a number so I’m going to say let amount and I’m using let because I’m going to reassign this but let’s set it to 100 wrapped in quotes and then let’s do a console log of the amount value as well as the type so we’ll say type of amount and if I save that you see we get 100 and string so there’s there’s a few reasons you might want to convert this to a number if let’s say someone’s submitting a form and the number comes in as a string but you want to run some operations on it you can’t do that with a string you want to change it to a number so there’s a couple ways we can do that the first is using the parse int function so we can say amount I’m just going to reassign it to let’s say parse int which is a function so we use our parentheses and this is going to take in the string okay which is in the variable of amount so now if I save that you can see we get 100 which is now a different color and we get number as the type now another way to do it is by using the the unary I think it’s called unary operator it’s just basically the plus sign and this is the method that I like to use it’s a newer way to do it so we can say amount equals and then just do plus amount so if I save that you can see that also converts it to a number and then the third way we can do it is with the number method or the number Constructor and we do that by just saying number with parentheses and then we can pass in a string and I save that you can see now we get it as a number so those are some different ways you can use to parse it to a string to a number and I’m just going to put a comment here let’s say change string to number all right now let’s look at some ways that we can change a number to a string so I’m going to come up here and change this to 100 which is a number if I save this you’ll see it’s a number and now I want to change this to a string so one way we could do it is say let’s say amount equals amount and then there’s actually a method called to string okay so a method is a function that’s attached to an object now if I save this you’ll see it’s now a string now this this actually brings up a question or it should bring up a question we know that this this right here is a number which is a primitive type which means it’s not an object now methods are properties on objects so so why does this work you know this should be a primitive it doesn’t have methods well the answer to that is Javascript actually creates a temporary wrapper if when we use two string it creates a temporary wrapper of the appropriate object type so this amount which is a primitive doesn’t intrinsically have any methods on it because it’s not an object but since we’re trying to use two string on it JavaScript creates a temporary uh wrapper of the associated type okay so hopefully that makes sense now that kind of stuff isn’t really beginner JavaScript but like I said I want to touch on some of the the fundamental concepts and how JavaScript works as you go through this course so you might not retain little things like that but that’s okay you know if as long as you remember the syntax and you know what’s going on that’s fine you don’t really have to know what happens under the hood but I will I do want to just talk about some of that stuff now another way we can do it is we can say amount equals let’s just comment that out so we’re going to say amount equals and then we can also use the string Constructor just like we have a number Constructor so I’ll pass in here Mount and now if I save that you can see that it is a string now if you have a decimal right so if let’s say this is amount is 99.5 and you want to let’s say it’s a string of 99.5 and you want to convert it to a number of 99.5 which is a decimal there’s a method you can use called parse float you don’t want to use parse int because that’s going to be an integer which is either a positive or negative number so let’s come down here and let’s say change string to decimal so what we can do is say amount equals and to use or to change it to a decimal we can say parse float and pass in the amount and then let’s save that now the actual type like within JavaScript is going to be number but let me show you what happens if we use parse int if I say Parts int and I save it’s going to be an inch it’s going to be 99. the the type underneath is still number either way but it’s going to screw up your formatting if you need this to actually be 99.5 so in that case you definitely want to use pass float all right I’m just going to change this to change change to convert okay so the next thing I want to show you is the Boolean Constructor which will turn a number into a Boolean now in JavaScript we have a concept of truthy and falsy values and I’m going to get into that soon but for now just know we can actually change a number so let’s make let’s make this back into 100 actually let’s make it into a one and then let’s come down here let’s say convert number two Boolean and I’m going to say amount and I’m going to set that to Boolean remember Boolean is a true or false value I’m going to set that to amount let’s see what we get so as you can see we get true and we get the type of Boolean now one is what we call a truthy value if we convert it to Boolean it’s going to be true if I set this amount to zero and we save we’re going to get false okay zero is a falsy value and I know that that sounds confusing but I’m going to have a whole video on truthy and falsy and then any other number like 10 or anything else is going to be true 0 is the only one that’s going to be false now let’s look at what happens if I’m just going to comment this out let’s look at what happens if we try to take a string that is not a number and or I should say is not a number in a string like something like hello and what if I try to parse that into a number let’s see what we get so we get a value of Nan or Nan and what this stands for is not a number okay it’s uh it’s actually a special number as you can see it does have the type of number but it’s a special number that represents not a number and it can this is kind of confusing um so there’s some really strange and quirky aspects of JavaScript the good news is most of it doesn’t get in your way in Practical development it’s just when we start to Dig Down Deeper if things can get a little weird so Nan is a property of the global window object and it’s a non-writable property and there’s actually five different types of operations that can return Nan and that’s when a number can’t be parched which is what we’re seeing here also math operations where the result is not a real number like trying to do like square root of negative one in fact I’ll just say console log and I know we haven’t talked about the math object yet but there’s a square root here and I’m going to do negative one if I save you’ll see that also gets Nan another one is if the operand of an argument is Nan like if I do one plus Nan let’s try that console log one plus n a n okay we get Nan also if we try to do like undefined let’s say undefined Plus undefined that gives us Nan and then the last way we can get it is any operation that involves a string and is not an addition operation so if I do like a string let’s say Foo and we’ll say divided by three I also get Nan so those are the five ways that you can end up with this but the most common thing you’re going to do here is convert a string to a number especially when you’re dealing with like form data because you might want to do some operations on a number that you can’t do on a string all right so that’s it in the next video we’re going to look at operators all right so in this video we’re going to take a look at operators so operators are symbols that we can use in Expressions to do certain things and there’s a few different categories of operators the first first one I want to look at is arithmetic so let’s say one and let’s say arithmetic operators all right so these are going to be pretty simple obviously you guys know addition and subtraction and all that but I’m just going to initialize a variable just to Output so I’ll say let X and then down here we’ll say just console log X and let’s say x equals and we’ll just do five and say five plus five so this is obviously the arithmetic the addition operator if I save that of course we get 10 copy that down let’s do minus we get zero let’s do we’ll copy that down again and we’ll do multiplication that gives us 25 and then we’ll do division that gives us one now in addition to those the you know the basic four we also have the modulus operator so if I say well if I do five and then the modulus which is the percent sign and 5 that’s going to give me zero because 5 goes into five once with no remainder so what this does is it gives us the remainder if I were to do 7 we know 5 goes into 7 once if I save that you’ll see we get 2 as the remainder so this this can come in handy for different things now the next thing I want to show you is concatenation I think you spell it concatenation so the concatenate concatenate operator is the plus sign so you can essentially think of the plus sign having two different functions in JavaScript one obviously is addition but one is to concatenate strings together so if I use the plus sign with two strings well let’s say X equals so I’ll say hello which is a string and then plus and then another string of world if I save that what it does is it just concatenates or puts the two together all right now if I wanted a space in between I could either put a space here that works or you might do another you might concatenate again just a set of quotes with a space but if I want to go back to another string then I would add another plus sign here so that’s concatenation I came to JavaScript from PHP like I learned PHP first and in PHP the period is the concatenate and concatenate operator so this does the same thing that the period does in PHP so the next one is the exponent operator which is a double asterisk so let’s say x equals and what we’re saying here is we want to get the result of the first operand to the power of the second so we’ll say two double asterisks 3 and that gives us 8. all right so that’s exponent then we have increment so increments there’s a couple ways that we can increment a number so let’s say we have X let’s set it to three actually we’ll set it to one and then let’s say I want to increment it by one I could do x equals X plus one if I do that we get 2 or I could use the increment operator which is double double plus sign if I save that I also get 2. and of course we can also do decrement so right now X is two so let’s say x equals x minus one so that’s one way that we could subtract one or we can just do x minus minus and that also gives us one so those are all the basic arithmetic operators now we’re going to look at assignment operators so the first is just a value assignment which is very simple we’ve been doing that all along so we can just say x equals 10 that’s just assigning a value now we also have addition multiplication subtraction basically all the stuff we did up here we can use those as assignment operators so what I mean is I can say x and then plus equals let’s say five and if I save that we get 15 because X was 10 but then this is the same as it’s the same as doing this x equals whatever X is Plus 5. and in fact if we did one that’s the same thing we did up here to increment right same thing as this as well and then we can also use other we can say like minus equals that gives us 10 because remember it was 15 but then we took 5 away then if we do the multiplication so we get 50 then we can do division we get 10 and we can also do modulus which gives us zero there’s even the exponent I’ve never used this but you can also do that so those are assignment operators now the next batch that I’m going to show you let’s say three these are comparison operators which you’re going to use quite a bit so the first one is is if something is equal to and I’ll comment these a little better for the final version but I don’t want to waste too much time with comments so let’s say x uh we’ll say x equals and then let’s say 2 and I’m going to use the equals operator which is double equals okay remember the single equal sign is assignment that’s what I’m doing right here I’m setting something to X but right here I’m evaluating an expression using the comparison operator of equals so what that’s going to give me is true it’s going to give me the result of this it’s going to put that into the variable and then I’m you know console logging that now if I were to change this to 4 then obviously that’s going to give me false so that’s equal to now we also have the equal value and equal type operator which is a triple equals so let’s say 2 and then let’s do triple equals two now that’s going to give me true obviously but I just want to show you if I were to comment this out for a second and then on the double equal change this to a string that’s going to give me true because the double equal does not test the type it only tests the actual value inside all right now if I were to uncomment this and make this to a string and save I’m going to get false because the triple equal not only evaluates the value but it evaluates the type as well so the types have to match and in this case this is a string this is a number now it’s really preference on what you use but what I do and what I’ve what I see a lot of people do is pretty much always use the triple equals I think that that’s going to save you some headaches and save you some hours if you just always use triple equals there are a couple situations where you might not want to there’s there’s quite a few where you don’t need to but it’s in the most in most cases it’s not going to hurt all right so that’s just what I do it’s up to you you’ll you’ll kind of find your groove as you as you move along all right so let me just put a space here now we also have not equals so I’m going to say x equals 2 and the knot is is represented with an exclamation so I’m going to say not equal but just one equal in this case so this is this is basically the opposite of this even though it only has one equal sign so I’m going to say 2 and save that and we get false and the reason we get false is because 2 is equal to 2. so obviously 2 not equal to 2 that expression is going to be false now same rule applies with the double equals as with this if we were to do a string that’s still going to be false because in this case 2 is equal to this if we’re using the double equals now we also have the not version of this so if I were to copy that down and then let’s just add another equals onto that if I save that we’re going to get true and that’s because it’s true that this is not equal to this when we’re checking the type as well if I remove these quotes and save that that’s going to be false because it’s false that this is not equal to 2 because they are equal all right now the next thing I want to show you is greater than less than which are pretty simple so let’s say x equals 10 let’s say greater than 5 and then of course that gives us true and we’ll just copy this down and let’s change this one to less than so that’s going to be false we also have greater than or equal to and we have less than let’s do yeah I’m sorry that’s less than or equal to then we also have greater than or equal to so very simple those don’t really need any explanation if you did like third grade math so that’s all I want to talk about in this video basically I needed to you guys to know this stuff in order to understand the next video of type coercion so a couple videos ago we looked at type conversion where you as a developer you want to change a string to a number or a number to a string in this video we’re going to look at type coercion which is more implicit and typically coercion happens when you apply operators to values that have different types so what I’m going to do is just create a variable of X and I want to console log the value of x and also the type and the reason I do this is just so we don’t have to create a bunch of different variables so let’s say we want X to equal the number five plus the string with 5 in it and let’s see what we get so if we look in the console you’ll see we get 55 but we get it as a string so this is an example of type coercion where JavaScript implicitly changed this to a string all right because what happened here is it was concatenated with the plus sign so if I were getting a string for some reason and I wanted to add it then I would convert this first so for example actually let’s just copy it down because I’d like you guys to have all the code we write and let’s just wrap this in a number and then that will obviously add them together because now this is a number now what if we were to say x equals five and then let’s multiply a string what do you think we’re going to get here so if I save that we get 25 which is a number so JavaScript in this case did the opposite it converted or coerced this string into a number and the reason for that is because if you use multiplication between strings that doesn’t make any sense you’re not going to get anything from that so JavaScript decided to coerce it to a number so it could be multiplied so let’s see what happens if we do x equals and let’s say 5 plus null in that case we just get 5 as a number so no is actually coerced into a zero and we can see that if we do let’s say x equals and we’ll use the number method here and pass null in and you’ll see we get 0. okay and you can use this on anything this number so if I say number let’s do copy that down we’ll do true and false I’m just going to comment out this one to see what we get for true you can see we get one so true as a number is one false as a number is zero so with that said what do you think happens if we say let’s add five plus true let’s go ahead and save that we get 6 because true is being coerced into a number and true as a number is one okay same if we do let’s say five plus false obviously we’re going to get 5 because false is zero as a number and again we’re going to talk about truthy and falsy values in a little bit so if we do let’s say x equals 5 plus undefined we get Nan which is not as a number now remember in the what was it was it the last I think it was the last video where we talked about Nan and if we add anything to undefined um then we’re going to get Nan okay including itself so now you should be pretty familiar with types we have our seven primitive types and then we also have reference types or objects and we talked about how they’re stored in memory we talked about implicit and explicit type conversion or coercion so what I want to do now is focus on individual types such as strings and numbers and start to look at how we can use them manipulate them use some of the methods that we can use with strings and numbers and just get you a little more familiar with that all right so we’ll look at strings next all right guys so we’ve looked at the different data types the Primitive types versus the reference types or objects we’ve looked at conversion and coercion and operators what I want to look at now is individual data types and just certain things we can do so in this video I want to look at strings so we’ll talk about concatenation a little bit more as well as template literals which are really really helpful and also some of the different methods that we can use on a string now like I said in a past video strings are primitive however they if we use a method like let’s say two uppercase on a string which is primitive JavaScript puts a wrapper around it and makes it a string object so in that case we can use methods all right so let’s start off here by initializing a variable I’m just going to say let X because I’m going to do a lot of output so let’s say console log X and then we’ll start off here with concatenation which we’ve already gone over we basically have our string actually you know what I’ll do is uh let’s let’s do like a sentence we’ll say hello my name is and then I want to put a variable and I’ll set those variables here let’s say name equals John or whatever you’d like and then let’s say const age equals 30. now here I want to use the name variable so what I would do is concatenate name and you don’t want to put quotes around this because it’s a variable and then we want to concatenate back into a string and never mind this strikethrough it’s just because the window object has a deprecated property of name but it doesn’t concern us and then I want to say and so my name is John and I am space concatenate on the age plus and then let’s do another space here in the quotes and years old so that is you know kind of kind of a pain in the ass but if I say we say hello my name is John and I’m 30 years old if we change this to let’s say 31 and save obviously that’s going to Output now I want to show you how to do this same thing using something called template literals also called template strings so I’m going to take X and just overwrite what we just did and I’m going to use back text this time okay so back ticks are used for template literals not quotes and then we can do the same thing we’ll say hello my name is now instead of having to you know put a space here and then concatenate here what we’ll do is use this syntax a money sign and then curly braces and then in here I can put my variable if I save that you’ll see it says hello my name is John now this isn’t just for variables the syntax it’s for any JavaScript expression in fact I could just do like one plus one and it’ll evaluate it to two so we can essentially write our JavaScript in here so I just wanted to say name and then I’m going to just space and then and I am I want to put my age here so again I’m going to use the syntax and say 30 31 years old and you can see that that output’s fine so this to me at least is much much easier and cleaner than this so you’ll be using template literals quite a bit now template literals didn’t come into JavaScript until 2015. it was the es2015 or es6 update was where template literals were were introduced before that you would have to do this so now what I want to do is look at properties and methods or let’s say string string properties and methods so if I say let’s say x equals and then hello world actually I’m going to give this a different variable let’s say const s equals hello world so we have a string of hello world and if I want to let’s say get the length there’s a length property for that we can use for Strings so I’m going to say x equals and then s which is our string and then dot length now since it’s a property we don’t add the parentheses methods use the parentheses because methods are functions properties are more like attributes so if I save that you’ll see we get 11. now as I S as I said earlier the strings are primitive but we can use properties and methods on them because of the wrapper that JavaScript gives it when we run these properties and methods so essentially what JavaScript does behind the scenes Let me just show you real quick if we were to do let’s say x equals type of and then we’ll do type of s and let’s just comment that out because that’ll overwrite it so we get string right but what the wrapper does when we run a property or method is it basically says new string and it creates this string object now if I save you’ll see I get object okay and I’ll just leave it like that you can leave it with just quotes hello world or you can use this new string but I’m just trying to let you know what happens kind of behind the scenes when we use a method or a property and we can also access the the the individual characters so for instance if I say let’s go down here if I say x equals and then S I can use this syntax and it starts at zero just like an array if I save that you’ll see I get H I get the first character if I do one I get e so I get the second character and so on okay and I’ll just put a comment here we’ll say access access value by key so we have number key numbered keys now another thing I want to show you and we’ll get much more into this later with object oriented programming is objects have what’s called a prototype and that’s where the methods are stored so if I do x equals and the way we access the Prototype is double underscore Proto double underscore and I’m setting that to X so I’m going to save and show you what we get here so if we look down here we have all these different methods so for instance we have two uppercase two lowercase we have split substring all these different methods that we can use with strings and I’m going to show you some of them not all of them I’ll show you some of them now some of them later and and some you’ll never use which I probably won’t won’t get to but you can see all these different methods that are available on the Prototype so and if we console log s and I save that if we look down here you’ll see prototype right here which has the same thing so this is is the same thing as this all right and it even shows you the different Keys the different numbered keys but let’s put that back to X and now we’re going to look at some of these these properties so if we want to change the case we could do x equals let’s say our string and then we’ll do two uppercase which is a method so of course we need our parentheses if I save that we get hello world and all uppercase I’m actually going to comment that down and we also have two lowercase okay so that will change the case there isn’t a method that will make like the first letter of each word uppercase but we can do that in JavaScript it just there’s no single method to do it I’ll show you that in a little bit so the next one is Char at and that will return the character at the specified index so if I say x equals s dot Char at and let’s say we want to get the first character that would be zero if I save that that gives us H which is essentially the same as as what we did up here where we were accessing by the key so this will give us the same as this now if we want to know the index of a specific character so kind of the the inverse of this we could say s equal x equals s and we can use index of so if we say index of and let’s say we want the index of H if I save that we get zero let’s say e now there’s more than one e what this will do is give us the first e which is the the number one index which is the second character so this right here because it’s 0 1 2 3 and so on if we put let’s say d that will give us 10 which is the the last index so the next one is substring which will search a string for a specified value so let me show you if we do s dot and then substring and then we can this will take in two indexes so let’s say we want to get from 0 to 4. if I save that we get hell because if we look at hello world and by the way this could be just a string you know just the quotes hello world if I change this s to that and save we get the same thing but I just did that to show you basically how to how to turn a string into a string object so we get hell because it’s 0 1 2 3 and then it ends at four all right if we want to get hello then it would be zero to five save that we get hello and we don’t have to start from zero if I do one and save we get lo you know Edo Governor if we do 2 to 5 we get llo all right so you can get any it’s it’s a substring it’s just basically a string inside of a string and another thing we could do is run substring with a single argument let’s say seven if I save that we get o r l d so what this did is it started at seven and then it just gets the rest of the string all right so zero one two three four five six seven so it started here o is seven and then just went to the end if I put a bunch of stuff on the end of this and save it’s gonna add that to it now the next one I want to show you is slice which is very similar to substring in fact I’m going to just copy this and we know that 0 to 4 will give us access to zero to five that’ll be hello and actually I’ll just save it you’ll see it get hello with substring and if we do slice we also get hello now there’s a few differences one of them is that with slice we can start from the end with negative numbers so for instance if I do let’s start we know that hello world altogether is 10 right it’s 10 characters or 0 through 10 I should say and if we want to start the beginning using negative we could do negative 11. so if I do that and then actually if I just do that we’ll get hello world because it starts at the beginning negative 11 all the way to the N now if I want to get the word hello we could do let’s see that would be negative 10 nine eight seven I think negative 6 should give us so if we save that yeah so that now we get hello so we’re basically just starting from the end yeah so I mean you could use substring or slice interchangeably in a lot of different situations another one that I want to show you is trim so let’s uh let’s say s dot trim and what this does is it trims the white space so what I’m going to do is set let’s just do this we’ll say hello world but I’m going to add you know a bunch of white space here and if I were to just do that you’ll see it it adds the white space here to the beginning but if I were to use trim and say x equals x dot trim and save it gets rid of that white space so that can be pretty helpful next let’s look at replace so I’m going to say x equals and let’s set um so we’ll take string and then we want to replace and let’s say we want to set the word world to I don’t know John so what we could do is search for a string within a string that’s going to be the first argument so we’re going to search for world and then the second is what we want to replace it with so let’s say John if I save that we console log X now we get hello John now let’s look at includes which will return true or false if a string is found within that string so if I say s dot includes and we want to let’s say we want to find hello if I save that we’re going to get true because this is found within that s string if I do hell that’s going to be true if I do Hal e or how I I save that that’s going to be false because this string is not found it’s not included in the hello world string okay so that’ll return true or false and then if we want to return the Primitive value of a variable so let’s say x equals s dot we can use value of and if I save that we’re just going to get the hello world okay even if we were to do this up here so this is a string object right if we console log s we get the string which is an object if we did type of acid should show object but if we want to get the true primitive of that which is a string we would use value of and then the last one I want to show you is split which you I use I’ve used quite a bit it’ll split a string into an array and it takes in a separator as an argument so let’s say s dot split and then if I just do that on its own it’ll just give me an array with the entire string inside of it now let’s say we want to split by the space because it’s hello space world then we would pass in here a space and now you’ll see I have an array with two strings and I know we haven’t really gone over a raise yet but we get an array with two strings okay if I wanted to split every character into an array item then I would just put just quotes if I do that now we have an array with 11 of items and each one is each character okay so that’s split now there’s a lot more methods so you can see here and I’m going to go over some of these in future videos some of them I won’t because they’re not really used that much but of course you can experiment on your own as well so I hope that this helped you understand some of the things we can do with strings now in the next video I’m actually going to give you guys a challenge based on the stuff we’ve already learned all right guys so we’ve arrived at our first challenge every once in a while I’m gonna ask you to figure out a problem or do something using the stuff that we’ve already learned okay I’m not going to ask you in any challenge to do something that involves something we haven’t done yet or haven’t learned yet now if you feel stuck or you can’t figure it out on your own that’s absolutely fine I’m gonna walk you through the solutions so that you can really understand how to solve the problem now this one is the capitalize challenge so basically what I want you to be able to do is take a string with a single word and just make the first letter uppercased we know we can do like so I could do my string dot two lowercase which would make it all lowercase or my string dot two upper two uppercase would make it all uppercase I want you to just uppercase the first letter now it doesn’t have to be a string with multiple words where you uppercase the first letter because in order to do that you have to to understand some type of iteration and I haven’t gone over any Loops or anything like that so I’m not going to ask you to do that if you already know that stuff and you want to do that that’s absolutely fine but yeah I just want you to basically take this my string which has a string of developer or it could be any word and when you console log my new string which should be a variable you create that has the uppercase D for developer or whatever the word is now just to give you some hints because this is all stuff we went over you can use the Char at method which will give you a character at a specific index you could also do this format where you have you know my string and then brackets and 0 1 2 3 Etc so you know how to access the first letter and then you also know how to make all of these everything uppercase and then you also know how to basically pluck out stuff from the string okay take strings from a string using either the substring or slice methods okay so using this stuff here you should be able to uh you know come up with this my new string which will have an uppercase for the first letter all right so go ahead and pause the video now and try and do that on your own so now what I’m going to do is close that up and we’re going to go ahead and solve this Challenge and I’m just I just want to open up my console over here as well so we know that we have a variable called my string and that’s set to a word a single word that’s all lower case we’re going to use developer and then I’m going to have multiple Solutions but they’re all going to be very very similar so I’m going to initialize my new string and let’s say this is going to be Solution One so we want to take my new string and then I want to set that to my solution now let’s remember the hints Char at is used to get the character at a certain index you can also use the bracket syntax and we know we want to get the first first thing here right first character so let’s say my string and then let’s use Char at and let’s say zero okay and then let’s just do a console log down here of my new string and the goal of this is to get my new string to be the word developer with with an uppercase D so we know that we can get the first character like this now let’s take that first character and make that uppercase so we can do that by chaining on to uppercase right so if I do that and I save now we have an uppercase d so what we need to do now is basically just take the rest of the string not including D and concatenate it onto it so let’s go ahead and I’m just going to close that up let’s concatenate and then I’m going to take my string which is developer with a lowercase D and I’m going to use substring okay so I’m going to say substring and I want to get just developer okay no D so what I can do is just put a 1 in here because what that’ll do is take the one position which which is e remember it starts with zero and it’ll get that over all right so now if I save this I’m going to get developer with an uppercase d now the other Solutions we can use are going to be very similar so let me just copy that down we’ll say solution two and then the only change I’m going to make here is instead of using Char at we can just use the bracket syntax so we can say my string and then we want to get 0. we’re going to uppercase that so that that makes the D uppercase and then again we’re just going to tack on or concatenate the substring which is the the rest of it the available if I save that we get the same thing so let’s grab these and copy these down and then this is going to be solution three and in this case what I want to do is instead of concatenating I want to use template literals so I’m going to get rid of the plus and basically what we have here are two different Expressions right the first one gives us uppercase D the next one gives us developer so I’m going to take the first expression and let’s put our back tick here and we’re going to wrap this first expression in curly braces okay and then the second one here we’re going to wrap that as well so that ends here and then we want to make sure we put the ending back tick on and we don’t need to put a space here so if I save that we get developer if I were to put a space here we’ll get this uppercase D and then available and another thing we could do is instead of using substring we could use slice okay so it just shows you that there’s multiple solutions for everything really and there’s a lot more solutions you could have including stuff that we haven’t gone into yet but as I said when I have a challenge for you guys it’s going to only include stuff that we’ve already gone over now if you wanted to uppercase every the first letter of every word you would have to iterate through it somehow and we haven’t gone over like for Loops or four each or any of that um so you know we have gone over turning a string into an array so you can take that as a clue as a hint if you do want to try it on your own but but that’s it for this challenge let’s go into the next video okay so just like we have string or methods and properties that we can use for Strings and we have string objects we have the same for numbers so let’s go ahead and create a variable here and I’ll set it to let’s say the number five and then I’m going to console log down here if I log number we get five if we look at the type of this variable it’s a number now we can also have number objects using the number Constructor so we can say new number and it probably won’t be too many times where you use this explicitly but like I said before it does JavaScript does put a wrapper around it and turn it to an object if you use methods but if we look at the type you’ll see now we get object and you can set this to five if you want or keep it like this I’m just going to keep it like this and then I’m going to just create a variable for our output because I just want to show you some of the methods that we can use now we’ve looked at two string so if we say num dot to string that’s going to give us the number as a string now there is no length property for numbers so if I were to say x equals num dot length you see I’m going to get undefined however if you want to get the length of a number like you want to know how many digits it is you could do two string right so just turn it to a string and then chain on length and now you’ll see I get one if I were to add let’s say let’s say 500 then it gives me 3. all right so that’s two string we also have two fixed which is going to give you or allow you to specify the number of decimal points so let’s say dot two fixed you can see we have the drop down of methods here so two fixed and I’ll say two and even though our number is 5 it’s just going to give us 5.00 now if we look at the type so if we look at the type of X you can see it is a string so if we take a number and then we use two fixed on it it’s going to turn it into a string representation of a decimal so let’s get rid of that and then if I were to let’s say this number I’ll make it 5.4567 if I save that I’m just going to get 5.46 now it gives me 6 because it rounded this up right if I were to do 4.52 and save that then I get 4.5 now we also have two Precision which is kind of similar but we count we we count the whole number so if we say three actually let’s do two and I save it then it doesn’t give me two decimal places it gives me two in total so we’ll do 5.5 and if I were to change this let’s say 4 5 to 4 2 and save that it’s going to give me 5.4 right if I say two Precision three then it’s going to give me three digits 5.42 so that’s two Precision we also have two exponential so say x equals nine dot nine num dot two exponential and that will get us the exponential of let’s say say two if I save that then we’re going to get that as a result let’s actually change this back to five so two precision and two exponential are ones that I don’t really use very much now you you might be working in a different location a different Locale so there is also two Locale string so if we do that and then I mean by default I think it’s going to do where you are so for me it would be en us since I’m in the US which just gives me five but let’s say you’re in Egypt which is I think AR Dash e g and save that’s the representation of the number five I guess I mean I don’t I don’t know the Egyptian numbers or whatever but I’m guessing that’s what it is all right so that’s two Locale string I’m just going to put that back to en dash us now there’s not too much else to look at as far as methods if we do num and we look at the Prototype I mean that’s pretty much it all the ones we looked at right I mean there is value of as well so if I do x equals num dot value of and we save that let’s console log X that just gives me the value right now there are on the number object itself there are properties so for instance we can get the largest possible number for the number type by doing number with a capital N Dot and then all capital Max underscore value so I’m going to set that to X so that’s the largest number possible that we can use with number and then if you want to get the lowest possible we can do x equals let’s say number Dot and then min value which is that number there okay so there’s not much else to look at in terms of methods that we can use on numbers so in the next video I want to look at the math object all right guys so JavaScript has a built-in object called math and this object has a bunch of methods on it that have to do with mathematical operations and it comes in handy when you need to do things like find the square root of something or round up or round down there’s also a helpful random method that you’ll probably use quite a bit so we’ll go ahead and take a look at that I’m just going to console log the math object itself and you’ll see that we have an object here that has some properties so it has pi for example and then a bunch of methods and I’m definitely not going to go over all of these and so some of them I don’t even know what they are or what they do and I’ve never used them but we’ll go over some of the common ones so let’s do let’s just create a variable to work with for our output so we’ll console log X and let’s say x equals let’s say we want to get the the um the square root of a number so we’ll do math Dot and then sqrt okay so that will get the square root of a number we’ll just pass in 9 here and if I save that we log out X you can see we get 3. so that’s the square root if we want to get the absolute number then we could use the ABS function so our method so we’ll say absolute and if I do 5 obviously that’s five if I do negative 5 we also get 5. that’s the absolute so we can also round let’s say x equals math dot round and let’s put in here let’s say 4.6 if I save that we get 5. if I put 4.2 and save it we get 4. now you can also round up or round down so for instance let’s do a round up and that’s going to be with the seal method so it’s going to be c e i l like ceiling and let’s put in 4.6 or I’m sorry let’s put in 4.2 and if I save it still goes to 5. okay so this will just round it like normally and then this will always round up so even though it’s 4.2 it’s rounding up to five now you can do the opposite and round down with the floor method so if I were to do math dot floor obviously that’s going to give me 4 but if I even if I do like 4.9 and I save that’s still going to give me 4. so these are pretty common seal and floor I use those in a lot of different situations um another one is pow so it will return the value of our number raised to a specific power so let’s say math Dot pow and let’s say we want to do 2 raised to three then we get eight okay we can also do the Min and Max so let’s say x equals math dot Min and what this will do is return the smallest of two or more numbers so if I do let’s say four and five and I save that’s going to give me four if I do another one pass in 3 that’s going to give me three and we can do the same thing with Max so if I were to do math dot Max and pass the same in we’re going to get 5 because that’s the largest of the three now a really common method is the random method so let’s say x equals math Dot random all right now if I run this what it gives me whoops it should be uppercase if you just use lowercase it’s going to look for uh just a variable called math so you have to use uppercase so what this will do is you’ll see I’ll keep reloading the page and every load it’s going to give me just a random decimal between 0 and 1. now that’s usually that’s not usually what you want usually you want to get like a number from say one to ten or one to a hundred so what you would do and what you’ll see a lot of let’s just um let’s use a variable of of Y here so I’ll say let y and we’re going to set that to math Dot random and then if we multiply that by 10 let’s see what we get we want a console log actually let’s just use x I don’t know why I did that okay let’s just do that now what that’s going to give us is a decimal between 1 and 10 right so if I keep reloading here actually I’m sorry not one and ten zero to nine now if I want it to be a decimal between 1 and 10 then what I would do is add 1 to this so let’s just put a plus sign here and then we’ll add one now it’s going to be one to ten let’s see if I can get 10. there it is so it’s going to be 1 to 10 as a decimal now what you want to do to make this a whole number is just round it down so we’re going to say math dot floor and we’re going to surround this whole thing and there we go so now we’re going to get a number between 1 and 10. if you want it to be between 1 and 100 we could just do that okay so you’ll see this this exact thing you’re going to see quite a bit because there are many times in programming in general where you need a random number and like I said there’s other methods on the math object if you want to check those out you can we might be looking at some of them later on but in the next video what I want to do is give you a little challenge that involves numbers as well as generating random numbers with with math.random all right so we’re going to do a little challenge here now keep in mind any challenge that I do it only involves stuff we’ve already worked with so I’m very limited with the types of challenges that I can create like I can’t have you guys create a function or anything because I haven’t gone over functions yet so some of these might be a little strange but it’s it’s all I could come up with with what we’ve gone over so far so basically what I want you guys to do is create a variable called X that is a random number between 1 and 100 along with a variable called y that is a random number between 1 and 50. and then I want you to create a variable for the sum the difference the product the quotient and the remainder of X and Y all right and then log the output in a string that shows the two numbers of X and Y along with the operator and result so basically you should have some variables like this that when you log it actually shows something like this 31 plus 15 equals 46 and along with the difference product quotient and remainder for a remainder you can use the modulus operator and then as far as hints the math.random function returns a floating Point pseudo random number in the range of zero to less than one so basically a random decimal and then the math.floor function will round a number down to the nearest integer so we talked about all that in the last lesson so go ahead and pause the video and see if you can just do this go ahead and create like I said X and Y random numbers between these ranges and then have these variables output these strings with the actual equation okay so let’s go ahead and get started so first thing I’m going to do is create my variables let’s say const and we’ll do x equals and remember X should be 1 through 100 a random number and Y should be one through I think it’s 150 I said I say 50 or 150. I think it was 150. so let’s say math dot floor because remember we want to round this down if we don’t use math.floor it’s going to be a decimal in fact let’s just let’s let’s do without it first just to see so we’ll say math.random and I’ll just log stuff as we go so we’ll say console log X and we get just a random decimal that’s going to be less than one basically and then if we want this to be between 1 and 100 what we could do is multiply it by 100 and that’s going to give us what 0 it’s that’s going to include zero so we want to do plus one if we do that then it’s going to be one between one and a hundred but it’s a decimal so that’s why we need to math.floor and round it down all right so now we have a number between one and 100 and then y I’m just going to copy this down Y is going to be between 1 and 150 so we’ll change this 100 to let me just check that did I say 50 or 150 oh I said 50 all right so we’ll change that to 50 and if we log X and Y then we’re going to get random numbers first one’s going to be 1 100 second is to 50. now we want to create variables that will show whatever X is plus whatever Y is equals whatever it equals we want to do the same for the difference in product and so on so what I’ll do is create a variable called sum and we want to get the value first so let’s say X Plus y and we can log out here some so we get 19 right so it’s just generating random numbers and adding them now let’s create another variable I’ll call this some output and by the way if you did something completely different as long as you get the same kind of output that’s absolutely fine there’s so many ways to do this so I’m going to set that to a template literal and in here I’m just going to take X and then say Plus and I’m wrapping these because they’re variables so I’m wrapping them in this money sign curly braces and then let’s say equals and then whatever the sum is okay and then let’s do just a console log because I want to log them all out we’ll say const output or console.log sum output and we can get rid of this and now you’ll see we get 34 plus 12 equals 46 which I think is true if I reload 19 plus 28 37 plus 3. all right so we we get the addition working now we’re going to do kind of the same thing for the difference let’s say this will get some or get the sum and what we can do is just copy this whole thing here and let’s say get the difference and let’s do we’ll call this um diff and we’ll do subtraction let’s say this is going to be our diff output and then this will be minus this will be diff and then diff output okay so if I save that then we get 78 minus 43 equals 35. all right now let’s go ahead and do the product so let’s call this um prod so like I said you just have to have the same time the same output not the same numbers obviously because it’s random but the same kind of output it doesn’t matter how you format this it’s still correct so prod output let’s do that and then that’s going to be the product and then this will be prod output there we go and then we want what else the quotient so we want to do division say quote q-u-o-t output and that’s going to be division so slash and quote and quote okay so we get 68 divided oh that’s not right oh I have a plus sign here make sure that we change that so 1 divided by 12. so we might get decimals here but that’s fine all right now the last one I want to do is the remainder so let’s say get the remainder and I’m going to use RM for the variable and then let’s change the plus to a modulus operator which is the percent sign we’ll say RM output and let’s make sure we change that to the percent sign this is going to be RM and then we want to log out the RM output and there we go so 543 modulo 5 is 3. good now like I said I know that this this is kind of a weird challenge so congrats if you got it but if you didn’t really understand it I I understand that because I only had so much to work with you know I couldn’t have you guys do something that I didn’t explain yet so that’s it in the next two videos the last two videos of this section we’re going to look at dates and times because those are something that are really important and in most areas of programming especially in web development where you have different resources like users and blog posts and all that and you want to have dates so you sign up dates and post dates so something that’s pretty important so we’re going to look at that in the next video all right guys so date dates and times are important in programming and JavaScript has a date object that represents a point in time and lets you do some basic operations on it so basically we can instantiate a new date object with the new keyword so I’m just going to create a variable here just so I don’t have to keep creating new ones we’ll just use this D variable and let’s set D to a new date now if I do this and I console log D you’ll see down here we get Friday October October 28 2022 it has the time it gives me the the time zone now this if we look at the type of this so if we say type of D we get object so the data is an object basically anything that’s not a primitive type is going to be an object now you can turn this to a string so I’ll say d dot to string if I do that then that’s going to be a string all right now if we want to set a specific date what we could do is say new date and then in here we can pass in a value so let’s say we want to do 20 20 we’ll do 20 21 and let’s say 6 10. and if I save that you’re going to see it’s Saturday July 10th now this might be confusing because we use 6 here but yet we’re getting July which is the seventh month so the caveat is that the month is zero based or zero index so if I put a 1 here then we’re going to get February if I put a 0 here then we’re going to get January okay so keep that in mind now if you want to add a time we could keep adding on to this let’s say we want 12 so that’ll be the hour and then we have and you can see right here we have the hour and then we can do minutes seconds so let’s say 12 for the hour we’ll do 30 for the minutes and 0 for the seconds if I save that you can see now we get 12 30. now instead of passing in arguments like that you can also pass in a string so are many different types of strings I should say formatted in many different ways so if I do a string so quotes here 20 21 let’s say Dash zero seven and let’s say 10. if I save that then we’re going to get July okay so set this is going to be correct so 7 is July if we do it like this and we pass in the separate arguments then the month is going to be zero based and if I wanted to add the time there’s a few ways I could do it I could do T and then let’s say 12 colon 30 colon zero zero if I do that now you’ll see the times 12 30. I could also do it this way so let’s clear this up and I could do let’s say 07 slash 10 slash 2021 and then I could do a space 12 30. like that and we get the same thing now there is a known issue if you use if you use hyphens and you use the year first then it could be off by a day due to the time zone so if I do let’s say do a string of 20 22 and let’s use hyphen so I’ll say 0 7 and 10. and then save that you’ll see it actually says July 9th even though I said July 10th so keep that in mind if you do the year first and hyphen it might be off by a day if your time zone is not set um if you put the month first it should work so if I were to do like seven 10 22 which is you know in the US is how we format dates then that does say July 10th and I’m going to put a link here to a stack Overflow that kind of explains why this uh why this happens so the next thing I want to look at are timestamps so the Unix timestamp is a system for describing a point in time and what it is it’s an integer that represents the number of seconds that’s elapsed that’s passed since the date of January 1st 1970 which is an arbitrary date so that that time stamp is expressed in milliseconds so or I should say the timestamp in JavaScript is expressed in milliseconds now you can always get the time stamp by using let’s say d so by using date dot now like that so if I save that we’re going to get the milliseconds that have passed if I reload you’ll see it’ll just keep updating right so that that gives you a way to always be able to mark an exact you know millisecond in time and we use timestamps for different things and we’ll probably use them throughout the course now to get a time stamp of a specific date you can use the get time function or method or you could use value of so for instance let’s say d equals and we’ll create a new date let’s just say we’ll do we’ll do the same thing seven we’ll do 10 in 2022. okay and then I’m going to get the time stamp by saying d dot get time actually I want to I want to log that so let’s how should I do this let’s set that to D so we can see that logged all right so this is the exact time stamp for this date now I didn’t put a time in here so we might want to do that so we could do like let’s say 12 30 0 0. okay so that’s always going to be that exact time stamp and then again you can also use value of so if I say d equals D dot value of and save I get the same thing if I want to get the exact time stamp for right now this date and time I could just clear that up and save and obviously that’s going to keep changing okay as time moves so you can also create date objects from a time stamp so let me just grab this right here which was a couple seconds ago and then I’m just going to say d equals new date and just like we can put in arguments or we can put in strings we can also put in a time stamp and then let’s save that you’ll see it’s October 28th and it’s going to be nine o’clock 49 seconds that’s what this time stamp represents right now it’s 901 okay so that was about a minute ago so let’s see the JavaScript timestamp is expressed in milliseconds if you want to convert it to seconds then what you could do is and just ignore the D equals for all these the only reason I’m setting it to the D is just so we can log it and see what what these actually give us but we could just do math dot floor and then we’ll take the date dot now which will give us the the time stamp of right now and then simply divide it by a thousand because there’s a thousand milliseconds in a second we save that and that’s the timestamp in seconds okay just remember in JavaScript by default the timestamps are milliseconds so in the next video I just want to look at some of the different methods that we can use on date objects and we already looked at the get time and value of but there’s a bunch of others as well that we’re going to look at all right so in this video we’re going to look at some of the methods on the date object now I just want to mention I I know that this isn’t the funnest stuff in the world but it’s really important to understand the basics and the fundamentals before moving on to you know building projects manipulating the Dom and fetching data and all that okay we’ll get to that but I think it’s important to know the basics so what I’m going to do here is just create a variable for our output and then I’m going to initialize a date variable so we’ll say new date and I’m just going to use today’s date so I’ll leave that I’ll leave that empty the argument’s empty and then let’s just do a console log of x now I know this might be a little confusing this new keyword we’ll get to that later we’re going to get to object oriented programming and get deeper into JavaScript but for now just know that what we’re doing here is we’re instantiating or initializing a date object into this D variable okay now with like the math object that we used a few videos back we would just do math dot whatever square root and we use the math object directly in this case where instantiating a date object into this variable okay so I guess that that’s a good enough explanation for now we’ll get more into it later so we already looked at some of the some of the the methods such as tostring okay so if we do two string it will just give us a string representation of the date we also looked at get time and also D dot let’s say value of okay so those will both give us a time stamp of the date in milliseconds now if you want to get specific parts of the date we can do that so let’s say we want to get the the year so we’ll do D dot and then there’s a get full year method and you can see it gives us 2022. now if I were to change the date up here by putting in let’s say 20 we’ll say 2020 slash 10 12. if I do that then the year is going to obviously change to 2020. all right now we can also get the the month so let’s say d dot get month now look what happened here uh oh I used a colon so notice that it says nine and right now it’s October so this is actually one month behind so when you use get month just like the caveat when we use the the arguments the month is going to be zero based okay so if I were to make this date January looks let’s say one two twenty twenty now you’ll see I get zero for the month so just just know that that’s zero based what you could do is just add a 1 to this and then that will give us the correct month all right and then if we want to get the day of the month so we’ll say d dot and that’s going to be get date if I do that I get 28 today’s October 28th if we want to get the day of the week then we do get day okay so get day or I keep putting a colon so get day will give us the day of the week get date will give us the day of the month now we also have some methods that have to do with time like if we want to get the the current hours we can do get hours if we do that you’ll see I get 9 it’s 9 37 right now if we want to get the minutes we could do get minutes so 37 if we want to do seconds we can get seconds so pretty self-explanatory and then we can also get milliseconds so we’ll say d dot get milliseconds all right now there might be times where you construct a date from these methods so for instance if I wanted to do let’s say create a template literal with back ticks and then I could use this syntax to put in my whatever whatever I want to put in here variable any JavaScript expression but let’s say we want to get the full year and then I’m going to go outside of that the curly braces and put a hyphen and then we’ll do D dot get let’s say get month but let’s add a 1 to it and then we’ll do another hyphen and then we want to get the day of the month so we’ll do D dot get date and if I save that um what did I oh I forgot the parentheses on the full year and there we go so now we have a string representation of the date using these methods so I I found myself doing stuff like this in real projects now there’s an API that we can use for dates it’s it’s called intl dot date time format and it’s a more modern and Powerful way to format dates in a Locale sensitive way because obviously you know different places they they interpret dates and times in different ways so we can actually pass in arguments like en-us for the United States or whatever the Locale is so let’s let me give you some examples of that so we’ll say x equals and it’s going to be I so capital i n t l dot and then date time format okay and then I’m gonna put in my Locale which is en-us and then let’s do Dot format and then I’m going to pass in my date my D variable so if I save that I get this 10 slash 28 22. now if you’re in the UK this might look a little weird to you so what we could do is instead of en US I could say Dash GB and then it’s going to put the day first which looks crazy to me but you know every country every area is different to get your default Locale you could just pass in default all right so if I do that it’s going to go back to the US because that’s where I’m located now if you wanted to just get like let’s say the month I’m just going to copy this down you could add options in here so after the default I’m just going to put a comma and then open up some curly braces and we could say month say we want to get the month and then let’s say we want the long format so we’ll just say long as a string if I save that it’ll just it’ll give me October all right and I’ll show you some of the other options in a minute but there’s a shorter way to do this right now what I’m doing is calling the API and then I’m passing in the date which is our D variable but on that D variable you have a method called two Locale date string and if we do that or actually you can just use two Locale string and then we can pass in the Locale I’ll just say default and then I could pass in options like for instance if I want to do let’s say month and get the short and I’ll paste the link in here to the documentation where you can see how you know more about this API but you’ll see I get ocked okay so instead of having to do this intl day format and then pass in your date you’re just calling a method on your date object and getting the same thing now I’m just going to put paste in here let’s see I’m just going to paste in this and let me just set X to that so we can log it and if I save that we get Friday October 28 2022 at 6 49 11 am which is not correct that’s not my time zone I don’t know why I have Los Angeles here I want to do I think it’s new underscore York there we go so that’s more like it but yeah so you can do weekday now if you just wanted for instance the weekday you could just pass that in like that and you get Friday so this is a newer way of doing things rather than this up here using the this this date time format API and that’s what I would probably suggest using uh you know it’s more location specific and you can format your dates and get whatever you want from the date pretty easily alright guys welcome to section two in this section we’re going to learn all about two really important data structures in JavaScript and that is arrays and objects or object literals I’m going to show you how to create them manipulate them using specific methods Nest them and some other stuff now since this is the beginning of the course I’m not going to get into really Advanced operations yet I’m not even going to get into like high order array methods for those of you that know what that is or any kind of iteration or Loops we’ll do that a few sections from now I just want you to really understand how to create and work with arrays and objects alright so let’s get started all right so the first few videos in this section are going to be on arrays and then we’ll move to object literals all right so arrays are a special type of object in JavaScript they’re also a data structure and they can store multiple values so this is how an array is formatted you can see we have a variable called ARR and arrays are surrounded in Brackets so the values inside of an array are surrounded in Brackets and the values are called elements okay so the each one of these is an element in this array now elements can be numbers they can be strings booleans any data type you can even have arrays within arrays and when it comes to accessing the values or the elements within the arrays we can use the index so arrays are zero based every language I’ve ever used they’re always zero based so they start at 0 1 2 3 and so on all right so I’ll show you how you can access whatever element you want using the specific certified index okay so let’s jump into vs code and start to just mess around with arrays so I’ll go ahead and create an array I’m going to just call it I’ll call it numbers and I’m going to set it to some brackets and in here we’ll just put some random numbers okay and and these it doesn’t have to be numbers I’ll create another one with a different type in a minute but let’s go ahead and console log out numbers and we should see in the console our five values now you also see the index and remember a razor zero base so the first one is always going to be at the zero index now there is another way to create an array object so this right here we just did this is called an array literal okay but we can also use the array Constructor okay just like we have like the date Constructor we used a few videos back where we said new date we can actually do this we can say I’ll call this numbers to actually let’s do a string here we’ll call we’ll call this uh fruits and I’m going to set it to a new array okay it has to be an uppercase a so new array and then in here I can put whatever I want in my array let’s say apple so they’re strings so they do have to have quotes we’ll say grape and orange so either of these are fine right I’ll say fruit console log fruits and you’ll see we get the same type of thing just an array with our with our strings now you’ll probably use and see this more the array literal more than the array Constructor it’s just more concise but you could use either they both create an array object now if we want to access a specific item let me just create a variable up here to Output and we’ll console log X and then I just want to show you how to access a specific item by the index so we’ll say x equals and let’s say numbers and we’ll get the first one so that’s going to be the zero index and you’ll see that’s going to log 12. and I could use this in any expression if I wanted to do like numbers and then get the first one and then maybe add on to that numbers and get the one that the three index and I get 41. I could also use them inside of a template literal so if I put back ticks in here and I’ll say my favorite fruit is and then I can access fruits and then let’s say I want to get the uh we’ll say orange that’s going to be the 2 index because it’s the third one so it says my favorite fruit is we’ll say is an orange all right now there is uh and by the way you can have different types I know these are all numbers these are all strings but I could do this like I could say we’ll call this mixed and I could set that to an array with a number with a string with a Boolean value null so you can put different types in here just to show you that now there is a property on a raise called length and you’ll probably use that quite a bit because there’s a lot of times where you need to know how many items are are in the array so let’s set x equal to we’ll say numbers dot length and if I save that you’ll see we get five if I were to add a new number onto this then we get six okay so that’s how we can get the length now if you want to change of value like let’s say we want to change let’s use the fruits array let’s say we want to change grape to I don’t know pear so we’ll take the fruit and we know that that’s at the one uh two position or two index and then we can set that to whatever we want let’s say pair and then I want to log fruits so I’ll just set X to fruits so if we save that we take a look you’ll see that now pair is in the the two index so arrays are they’re inherently mutable you can mutate them you can change them and also the length property is not read only so we have uh what three fruits but I could say fruits.length and I could say that that’s going to be 2 and if I save now you’ll see fruits only has two so you can do that as well but I’m not gonna I’m gonna comment that out now let’s say I wanted to add on to the end now there’s methods that we can use to do stuff like that and I’m going to show you that in the next video but we could so if we wanted to add a fruit we know that there’s three in there so it’s the index 0 1 2. I of course I could do like three a hard-coded three and I could set that to I don’t know strawberry and then if I log fruits you’ll see strawberries on the end but you’re not always going to know how how many items are in the array also that’s always changing so what you could do aside from using a method which I’ll show you in the next video what you could do is set the index to the length right so if I say fruits.length and then set that to let’s say blueberry if I save that now blueberry will get added to the end and the reason for that is the length is always going to be one more than the last because it’s this starts at zero if we look at the length it’s one two three four five and if I wanted to add one on to the next that would be five right in fact I could copy this down kind of running out of fruits here but let’s say peach and now that will get added to the end okay but but more commonly you’re going to use a method there’s a method called push I’m going to show you in the next video that does the same thing all right so yeah I mean that’s kind of the basics of arrays of creating them and getting the length and and finding the the values by index so in the next video we’ll go ahead and look at some methods all right so in the last video we looked at some array Basics how to create them how to access values by index and so on now I want to look at some of the methods that we can use so let’s create an array you can put whatever you want in it I’m just going to put some random numbers all right and then I’m going to just log out the array so in addition to the values here if we if we go ahead and click this Arrow you see there’s this prototype chain and this has all the different methods that we can use on this array which is quite there’s quite a bit here so obviously we’re not going to go over all of them right now we’re going to go over some of the really useful kind of simple ones just to mutate the array and get values from it and then later on we’ll we’ll look at some of the more advanced stuff including high order array methods so let’s start off with push which will just put a value on the end of the array in the last video I showed you how we could do that using the length property as an index but what you would probably do is just push on to it so you would say array dot push and then let’s say we want to add 100 and now you’ll see 100 gets added on to the end now if you want to take the value off of the very end off the last element then you would use the pop method so array dot pop and we wouldn’t pass anything in because it’s just going to pop off whatever is on the end now you’ll see that 100 is gone okay if we want to do the opposite and add on to the the beginning then we can use the unshift method and let’s say we want to add 99 now you’ll see 99 gets added to the zero index and if I want to take take it off of the beginning then we would use shift so array.shift and now 99 is gone okay we also can reverse the array with the reverse method pretty self-explanatory so now 15 which was at the end is now at the beginning now these methods that we just looked at these are used to manipulate the current array right so when we console log the array after they go through these methods it’s different right now it’s reversed and so on we did add some stuff on but then we took it back off so the next batch of methods I want to show you are ones that we can use to get something from the array either get a value from it or just get some information from it so I’m going to create a variable up here just like we’ve been doing just for our output and then let’s console log that variable and I want to show you the includes method which will allow you to to check and see if a specific value is in that array so I’m going to say x equals and then array dot includes and let’s see if we if we pass in 20 which 20 which we know is in there you’ll see it gives me true so you’re always going to get a true or false from this based on if the value is in there now if we put like 200 which we know is not in there then we’re going to get false all right so the next one I want to show you is index of and what that does is it’ll give you the index of a specific value so if I do let’s say index of and let’s pass in one of these values we’ll do 15. and I save that we get 0. now the reason it’s zero you can look up here and and it’s not zero here obviously but the reason it is is because we ran this reverse okay so the script runs top to bottom so since it’s reversed then it’s put in the zero position so what I’m going to do is just comment out these ones that we did that will that actually change the array just so we’re working with the same array we’re looking at up at the top all right so now if we look at the index of 15 it’s at four if we look at the index of 34 that should be the first one which is zero now if you put something in here that doesn’t exist like 340 you get a negative one okay so a lot of times you’ll you’ll run this through an if statement and just know that if whatever you pass in here is not there it’s going to give you a negative one now the next two I’m going to show you are pretty similar it’s slice and splice and both of them will return selected elements in the array so I’m going to start off with slice and I’ll kind of show you the differences as we go so array dot slice and what this takes in is the first is going to be the start index so where do I want to start in this array let’s say we want to start here which is the one index so we’ll pass that in now if I don’t pass anything else in what that’s going to give me is that value and everything after that as you can see here so 55 and everything after let’s say I want to get just um just 55.95 and 20 so that and the two after so then I would do one two four all right so how that works is we specify the one index and we want to go to the 4 so that’s going to be 1 2 3 and we stop at before the four okay um now this is this is returning this array okay the three that I selected into this x variable it’s not actually changing the array if I log the array in addition to that you’ll see it’s unchanged okay so keep that in mind about slice now splice you can do kind of the same thing but it does manipulate or it does change the original array so if I say x equals array dot splice and the the arguments we pass in or I should say the second argument is a little different the first is the start index just like with slice the second is the number of elements that we want to go over so let’s say I’m starting at one which is 55 and I want to go over four so one two three four I should get 55 to 15. so if I do 4 here and I save now look what we’re logging we’re logging X which is what we basically plucked out one to one and then four over so 55 to 15. now the array that I’m logging only has 34 in it because I basically plucked the rest out okay so slice doesn’t do that it doesn’t change the initial array splice does not only are you taking it out and putting whatever into the variable one one to four but you’re also changing the array so you’re not only getting the values you’re deleting them from the initial array all right now if you just wanna let’s say you just wanna delete one item then you can let’s comment that out so that we have our initial array what you could do is say x equals and then say array dot splice and let’s say we want to get rid of the 20. so we know that’s zero one two three so I’m going to put in the start at 3 and just 1. I only want to take out one and I’ll save that and now you can see we have the 20 in X so it’s set to X and then the array that we’re logging doesn’t have 20 in it anymore because we took it out so that’s how you can remove a single element from an array now the last thing I want to show you is how you can chain methods so I’m going to set X here equal to and let’s just comment out the splice because we know that that that changes our initial array and let’s move this down here so I’m going to set x equal to array and then I’m going to use slice here so slice let’s say one and we want to go 4 over from 1. so that’s going to basically give us again it’ll give us 55 through 15 right if I save this as it is and we look at the console log of x we don’t need array anymore if I look at the console log of x we get 55 well actually it’s I’m sorry I want to use splice if you use slice it’s only going to give you the three because it goes to the 4 index splice will actually go four over and then what I want to do is reverse that so I’m going to do dot reverse and if I save that now you’ll see it gives me that array that splice created and then reversed it if I wanted to change that to a string I could do two string and if I save that now I have it as a string and then I could use a method on a string remember the Char at so Char at you basically put in an index and it will give you that character so let’s say zero save that and I get one okay because the first one was 15 the first number so you can chain on methods like this and it’s not just with arrays as you can see it’s with strings it’s with anything anything that makes sense I mean it depends on what the method returns this splice we know that returns an array and I can run reverse on an array then I can turn an array into a string and then I can get a character from a string if I just run Char at on the Reversed array that’s not going to work it says reverse Char at it’s not a function okay what it really means is it’s not a function on whatever where we’re putting it on if I change that back and it’s a string then it is a function that works all right and you’ll see you’ll see chaining like this all throughout JavaScript so in the next video I want to get a little more uh acquainted with arrays so we’re going to look at things like nesting and concatenation with arrays we’re going to look at something called the spread operator and we’ll go from there all right guys so we’re gonna mess around a little bit more with arrays so I want to look at nesting concatenating and the spread operator and a couple other things so nesting an array is just it’s basically just having an array as an index inside of another array so let’s go ahead and create two separate arrays here I’m going to call this one fruits and we’ll put in here apple pear and let’s do uh Orange all right so that’s our first one and then we’ll do berries and yes I know berries are fruits so let’s say strawberry and blueberry and raspberry so we have two separate arrays now if I wanted to I could take fruits and we looked at the push method in the last video which will add something onto an array and let’s say we want to add on the berries array and then we’ll go ahead and console log fruits and let’s see what we get so we get an array with four items the first three are apple pear and orange and then we added berries which is another array so we have an array within an array so that’s how we can Nest them and you can go as many levels as you want now to access something in a nested array is pretty easy basically we can let’s let’s set this to an output variable so I’ll say let X and then let’s log let’s log X and we’ll say x is equal to and then fruits and let’s say I want to get blueberry which is nested in the the nested array so first of all I want the three Index right because it’s 0 1 2 and then we pushed on as the three index the whole berries array if I just log that what I get is the nested array if I want to get blueberry that’s going to be the one index on the nested array so I would just open another set of brackets and then put a 1 and that will give me blueberry all right now let’s say I wanted to create a whole new array called all fruits and I want to Nest both fruits and berries and we’ll just set X for now we’ll just set it to all fruits just so we can log it out and it’s an array with two items and both items are arrays okay so we just nested those two arrays and if I wanted to access let’s say strawberry I would say all fruits and I want the second array which is at the one index and then I want the first item in that array which is at the zero index save that and we get strawberry all right so hopefully that just helps you understand that you can Nest arrays inside of arrays as many levels as you want if I had a third level I could then access whoops I could access something within that you know so it you can Nest as far as you want now that’s nesting we can also concat arrays which is different it’s not to putting the array inside the array but it’s taking the items from one array and basically adding them into a different array okay as separate items on the same level so to do that we can use the concat method there’s actually a few ways to do it but concat is one of them so I can say fruits and let’s say we want to do Dot concat actually let’s comment this out because I want these to be two separate arrays again and yeah then the rest doesn’t really matter comment that out as well all right so I want to take fruits and then I’m going to concat onto that berries and let’s save that what we get is one single array that has everything from fruits and then everything from berries so the berries here they’re not put in as a as an array a nested array they’re just put in alongside of the rest of the fruits so they’re concatenated just like we concatenate strings with the plus sign we can concatenate array items using this method now that’s one way of doing it the other is using the spread operator and I’ll I’ll have comments throughout this I know I’ve said that a bunch of times I just don’t want to take the time to write comments for everything so the spread operator which is represented as three dots and this can be used with arrays as well as objects in fact you’ll probably use it more with objects and I’ll show you how to do that later but basically what we can do is let’s say we want X and instead of using concat what I could do basically what we did here was we created an array and then we put two arrays inside of it well let’s say I just want the items that are in fruits and berries not the actual array itself then we would use the spread operator with fruits and then the spread operator with berries and now I’m going to log X which is this right here we get the same exact result that we got with concat it just took the items from both arrays and put them basically combined them all right if I took the spread off of berries and I save now berries is going to be an array all right but there’s going to be a lot of times where you you want to take something from one or one array and spread those items across inside of another array so that’s where the spread operator comes in and same thing with objects but I’ll get to that in a little bit now there’s also a method we can use to flatten flatten flatten arrays and what I mean by that is if we have an array that has nested arrays let’s do this one two and then I’ll have another array here with three and four and then we’ll do five and then let’s do another array with six and seven and then eight all right so I have some nested arrays in here right if I set uh if I console log array then you can see that we have two nested arrays in here now let’s say I want to flatten this and just make it all one array that has one through eight for that let’s say x equals and we can set we can do array dot flat and now if I log X and I save that you’ll see now we just have a single array with one through eight so it just flatten this there’s no more nested arrays all right so that’s pretty much it for uh for some of the methods on the array itself now I want to show you some static methods that are on the actual array object um let me just put a comment in here we’ll say static methods on array object and what I mean is if we say capital A array and then dot there’s some methods we can use the first one I want to show you is is array so what this does is it checks to see if something is an array and I’m just going to set this to X so let’s say is array and we’ll pass in fruits and if I console log X we’re going to see true because yes fruits is an array up here if I were to pass in like a string then we’re going to get false so there will be some times where you have data structures that might act like arrays but aren’t quite especially when you get into like the Dom there’s like HTML Collections and things like that where you will you want to check to see if it’s an actual array and this is how you can do it so that is is array the next one I want to show you is from which will create an array from an array like value so if I say x equals and then array Dot from and this again this is pretty useful when it comes to like HTML collections or node lists or whatever but let’s put in here a string of one through five and let’s see what that gives us what it gives us is an array so it takes the string of one through five and gives us an array that has one through five in as an element okay so that’s from and then we also have uh of array dot of which will create an array from a set of values so maybe you have some variables where you want the values to all be inside of an array so I’ll just do this const a equals one V equals 2 C equals three and then I could say x equals array dot of and then we can pass in here A B and C if I save that it’s going to give us an array with one two three so basically just an array of the values of these variables and I know this is this might be a little Advanced for right now you might not be able to kind of visualize what you would use this for yet but I just wanted to throw some of this stuff in here so in the next video I want to test your knowledge or test what we’ve gone over with a couple fairly simple array challenges all right guys so now I’m going to give you a couple challenges and if you don’t get the challenges don’t worry about it I’m not that great at doing challenges where I can’t use resources and stuff like that either a lot of developers aren’t so don’t take it to heart if you can’t do it on your own now the first one I think is pretty easy I think a lot of you will get it so basically I just want you to create an array that has numbers one through five and then I want you to mutate that array using some of the methods that we’ve talked about and turn it into this which is six through zero all right so there’s just a couple methods that you can use I’m not going to give you any hints because this one’s pretty easy I’d encourage you to try to remember the methods rather than go back and look but if you have to look that’s fine too and then the second challenge is to combine or concatenate array one and array two but have the result not have the extra five because if you just concatenate these two you’re gonna have one through five and then you have another five through ten so I want you to concatenate but then take out the extra five and as a hint there’s many ways to do this but you can think of the concat method or the spread operator as well as the slice or splice methods and I’m going to give you two two solutions all right so pause the video now if you’re going to try this out and then just come back all right so let’s go ahead and do challenge one so we’re going to have an array with just one through five oops all right equals and then the result that we want to get is going to be an array that is six five four three two one and zero so that’s what we want the result to be so let’s console log array now there’s a couple methods that we need to use to achieve this hopefully you could remember them and not have to look back but if you did have to look back that’s that’s absolutely fine but we’re going to take the array and there’s a couple ways we can do this and there’s a couple different orders we can do this in so we could reverse it we know that you know this is is counting backwards so let’s say we want to reverse the array if I save that then we get five four three two one now we want to have a zero on the end so we could take the array and then we could push onto it a zero let me save that now we have five through zero and then to add on to the beginning we can use unshift and we can add on to the beginning a six and that’s it so pretty simple now you could have did it in a different order like you could have let’s save that you could have firsted the push so we could push a six on if I save that we get one through six and then you could do the unshift which pushes on to the beginning so you could put your zero and then you could do your reverse like that okay now you’re not going to be able to chain these because like push what that returns is it just Returns the number you push onto it so if I try to like uh if I try to do this some of you might might have tried this you know that that’s not going to work it says unshift is not a function and the reason is because this actually returns a number or it should let me just show you if I were to set let’s say let I’m not going to keep this but just to show you what this actually returns yeah Returns the the number six so you can’t chain those methods all right so that is my solution if you had a different solution and it worked then that’s that’s fine but let’s do challenge two so we’ll go ahead and say challenge two and this is going to be to concatenate these two arrays let’s say array one and that’s going to be one through five and then const array 2 is going to be 5 through 10. and then what you needed to do is concatenate these two arrays but they both have five so you need to get rid of that five and I’m going to give you two different solutions in each each one is in kind of the opposite order so let’s say solution one and I’m going to create a new array called array three and take array one and well basically what I’m going to do is slice that not slice the five out but slice these the ones that I want out and put that into array three so if I say dot slice and remember slice takes in the start index which I want to start at the beginning because I want one through four and then I’m going to put in 4 as the end if I save that oops we need to log this out array 3. if I save that now I have one through four in this array 3. so now what I need to do is basically just add the rest of this on right because I have one through four so I’m going to do that by chaining on concat and I’m going to concat array 2 and if I save that now I have 1 through 10 and there’s no double fives so that’s the first solution the second solution is kind of the the opposite of way around first I’m going to concatenate it so I’m going to say const array 4. and we’re going to use the spread operator here so let’s spread across array 1 values and let’s spread across array two values and if I were to console log array 4 you’ll see I’ll get 1 through 10 but I have my double fives here which I don’t want so then what I’ll do is use splice so I’ll take array 4 and then splice and I just want to take out one of those five so I’m going to start at the 4 index which is 0 1 2 3 4. so right here and I only want to take out one which is that that one so I’m going to put 1 as a second argument and then if I console log or A4 you’ll see I have one through ten and now that 5 is gone so two different approaches they both use different methods but they have they have the same result and you’ll see a lot of that in not only JavaScript but all programming all right so that’s it in the next video we’re going to look at object literals okay so now we’re going to get into another data structure and another type of object in JavaScript which is an object literal so basically these are key value pairs so I have a an example here we have a variable called person and then in curly braces we have just key value pairs that are separated by commas so basically we have the key on the left side then we have a colon and then we have the value which can be a string a number Boolean whatever and these are Keys these are values these are also called properties like this is the name property this is the age property and so on so let’s jump into vs code and let’s start to to work with objects so I’ll go ahead and just create the same one we just saw so we’ll say person and I’ll set that to a set of curly braces and then inside there we’re going to have a name let’s say John Doe and then we’ll do an age of 30. and we’ll do let’s say is admin and that will be a Boolean so we’ll say we’ll say true okay now as far as accessing data from this object first of all is just console log the whole thing see what we get so same thing just the key value pairs we also have our prototype chain which has some methods on it there’s a lot that we can do with objects in this section I’m gonna just go over some of the the basics and some of the easy stuff and then later on we’ll get into more complicated ways of working with objects now to access a specific property from an object we use the dot syntax so I’ll go ahead and actually you know what let’s create our X variable because there’s a few things I want to log out so let’s just do that and then let’s set X to person and then to access the name for instance I can say person.name now we can also use bracket notation so for for example I could say person and then I could use brackets and say I want the age I’m sorry this needs to be a string and I get 30. so this you’re going to see this a lot more the the dot syntax rather than the brackets but you can do it this way now let’s say we want to have an object within an object like maybe an address with some Fields so let’s say address and then we’re going to set that to another set of curly braces and then here we’ll have the street say 123 Main Street and then we’ll have the city let’s say Boston say for the state will do mass now if I want to access let’s say the state what I would do is say person Dot and then the address and then the state if we do that then I get Mass we could also have arrays in here like so if I wanted to do let’s say Hobbies set that to an array and we’ll say music and sports and then if I wanted to access that array I could of course just say person dot hobbies and that will give me the whole array if I wanted to access let’s say the first item or element in the array then I would use of course my my brackets just like I would with any array and that gives me music now we can also update properties so I can say person dot name and I’ll set that to let’s say Jane Doe and then if I log X we’ll just set it to person and you’ll see now the name is no longer John Doe it’s Jane Doe if I wanted to update let’s say is admin I could say person dot is admin or I could use this syntax is admin and what is it to begin with it’s true so I’ll set it to false and then if I log the person we should see is admin as false all right now if you want to remove completely remove a property from an object you can use delete so I could say delete and then person dot let’s delete the age if I do that and I log the object you’ll see there’s no more age now the next thing I’m going to show you is that we can add a function to as a property but I know we haven’t gone over functions so don’t worry about it if you don’t understand this but let’s say person and by the way I don’t think I mentioned you can not only change properties but you can add a new one like if I want to say person dot has children and set that to true and now if I save you’ll see that has children has been added okay so you can add properties as well now like I said about functions let’s say we want to create a function in this property called greet so I’ll say person.greet equals a function and this is just how we Define a function again I’ll get into this very soon and then I’m going to console log here uh template literal and say hello my name is and then I can actually access other properties in here with the this keyword so I could say this dot name and now if I want to call this function I’ll have to do person dot actually let’s just oh we’ll get nah we’ll just do that yeah person dot greet and we need to execute it with parentheses and you’ll see right here hello my name is Jane Doe all right so we we assigned a function to this greet property and we were able to access the name using the this keyword which I’ll talk much more about later now another thing that you can do but I really wouldn’t suggest it is when you’re creating your keys you can use like double more than one word so let’s say I wanted to use first name like first space name I wouldn’t recommend doing this but if you are going to do this then you can just surround it with quotes right so I could say first name and then set that to Brad and then we’ll do a last name so let’s say last space name and now if I want to access let’s say I want to access first name if I try to do this for a space name this is another reason I wouldn’t recommend doing this well right now it’s telling us person has already been defined so let’s change this to person two person two and it’s still going to give me an error because it says unexpected if I’d identifier name now if you’re going to do this again I wouldn’t recommend it using multiple words like this this should be in this form or even this form but if you do happen to come across this and you want to access it you have to use the bracket notation so you would do it like this first space name and you’ll see that will work all right so in the next video we’re going to look more at nesting objects within objects but I also want to show you how to use the spread operator with objects we saw how to use it with arrays but we can also use it with objects okay so now that you know what an object literal is I just want to get into a couple other things including using the spread operator with objects and some of the methods that we can use so and before we do that I just want to show you there is another way that we can create objects let’s say we want to create a to do object now we could do this which just creates an empty object and then we could add properties either in here or we could do like to do dot let’s say ID equals one right and then if we log that out let’s just create our X variable and then if we go ahead and set x equals two to do and we console log X we get an object with an ID of one now another way to do this this is an object literal but we could also use the object Constructor just like we did with arrays so we could say new object like that if I save we’re going to get the same thing so this line this is the same as just setting it to a literal and just an empty set of curly braces and I can continue to add on to this like if I say to do Dot name and we’ll set that to I don’t know buy milk and maybe to do completed not component completed and set that to false okay if we save that we take a look we’re just going to have our properties on that to do object now later on I’m going to show you how we can actually create our own Constructors for certain objects and we could do stuff like this like to do one and then set it to a new to do so you can create a custom Constructor for a custom to do object but we’ll get into that later on now I want to show you how to use the spread operator well actually before that let’s just let’s just go over nesting real quick I know we did in the last video but just to kind of remind you we could set person and then we could have address and then let’s say an address we have coordinates and maybe have a Latitude value of 42. something and then and then a longitude value of negative 71 dot something and then if we wanted to access the let’s say latitude we could do that by setting X to um person then we want to go into address then we want to go into chords and then we want the lat value all right so that’s nesting now as far as the spread operator goes it works very similarly to using it with arrays so what I’ll do here is just create two very simple objects it doesn’t really matter what you have for the Val the properties here but I’ll just do a one be two and then I’m going to create another object 2 and set this for the keys we’ll do c let’s say c 3 and then d 4. okay now if I create let’s say object three I could Nest those in here right so if I just pass in object one and then object two and then let’s just set X to just so we can see it we’ll set X to object three save that now what we have is an object that has two objects inside okay so the first one is object one second one object two now if I want to just take and you’ll you’ll find yourself doing this quite a bit in JavaScript if you want to just take the properties of object one and object two and put them in basically combine them into this single object three then you can just use the spread operator so we’ll just add three dots in front of each one and now when I log out object three we get all of these properties within both objects all on the the top level of object three because we we took them and spread them across all right now if I were to take the spread operator off object two and save you’ll see object one values are are on the top level spread across but object two is in there as a nested object all right so hopefully that makes sense now there’s uh there’s a few methods on the object object that we can use and one of them is called a sign and that does the same thing as the spread operator in fact the spread operator was introduced in es2015 before that you had to use object assign so let’s just say we want to create another object called object four and we’re going to set that to capital O object just like on the array object there’s methods there is here as well and the one we want to look at right now is called the sign so as the first argument we pass in is just going to be a set of empty curly braces that basically just gives us an empty object if I were to log obj4 you’ll see it’s just an empty object now if I want to add the properties from object 1 I would pass object 1 in as the second argument and if I save now you’ll see those are added to this obj4 if I want to take the properties of object 2 I would just add that as another argument save and now those get added okay so whatever I pass in here any objects I pass in here the properties of those are going to get assigned to this empty object okay so both of these lines do the same exact thing and it’s up to you on what you want to use the spread operator to me is easier and more concise and just more modern but if you want you can of course use this Okay so a lot of times we’re going to be dealing with arrays of objects anything any resources in the database like or from an API like to Do’s or users or blog posts you’re usually going to deal with arrays of objects for those resources so so let’s say um should we do here let’s say we want to do an array called to Do’s right so we’ll set that to an array and then in that array we’ll have our first to do so it’s going to be an object we’ll say id1 and then name we’ll say I don’t know buy milk again okay and I’m going to put a comma after that and copy it down a couple times and the second one second object is going to have an ID of 2 this will have an ID of three and here we’ll say I don’t know pick up kids from school and then we’ll have take out trash okay so now we have an array I’m yes an array of objects I’m going to set this x here to to Do’s if I do that we’re going to see our array of objects now if I want to access a specific object just like we do with any array we use our bracket syntax say we want to get the first one we use our zero index that gives us that object now if I want to access specific property like name I simply do dot name all right so those are arrays of objects now later on we’re going to get into iteration and looping and being able to you know go through each object and and do something to it or just display it but we’re gonna we’re gonna do that a little bit later now I want to show you a few other methods we have available on object so if you want to get all of the keys in an object and put those into an array we can use object keys so let’s say x equals object dot keys and what do I want to use this on let’s do the the to do object we created up here so say object dot keys and we’ll pass in the to do object and then we want to log X and you’ll see now we have an array that has the value of ID name and completed okay so it just took the keys from this to do object and put them into an array now there’s going to be times where you’re going to want to get the length of an object meaning how many you know how many properties does it have in it and we can’t use length on that like if I try to do x equals and let’s take our to do object and do length if I do that it’s going to say undefined so the way that we can get it is by first getting the keys and then getting the length of that so if I just take this and put that on there that’s going to give me an array right and we can use length on an array so we’ll simply do length and if I save we get three okay so up here you can see we have three and and I could have created an object literal as well so the next thing is uh if you want to get an array with all the values just the values we can use object.values just like we can use object dot keys so let’s say object dot values and we’ll pass in to do save that and now we just have an array of the values now if you want to get an array of the key value pairs you can do that with entries so let’s say x equals object Dot entries and then pass in our object save that and now we have an array with arrays that have the key value pairs and then the last one I’m going to show you is has own property which will give you a Boolean indicating if the object has a specific property so let’s say x equals and then we actually call this on the the actual object so for instance to do and then we can say has own property and let’s pass in name if I save that we get true because it does have a name property right if we put in I don’t know age and I save that then we get false because that to do object does not have a property of age so that’s it I just wanted you guys to get familiar with the spread operator and some of these these really helpful methods that you have on on your object so in the next video we’re going to look at something called destructuring and also naming because you do have a lot of properties inside of an object and sometimes you might not you might not want to do this because it’s pretty long I’m going to show you how you can destructure so that you don’t have to do as as many you know as much as this dot notation so we’ll get into that in the next video okay so now I just want to show you a couple things that you can do as far as naming and and destructuring variable names from object literals so first off if you’re creating an object where the key and the value are the same if the value is a variable then you don’t have to add both so let me show you what I mean if we have these variables here and let’s say I want to create an object so we’ll say const person and let’s say I want to set name or not name first name and I want to set that to the first name variable right so you would do that and then I’ll just copy that down and this one will be last name and this one last name and then we have our age okay so now if I come down here and do a console log of person Dot age and save that of course I get 30. so I’m setting the key of first name to the value of whatever is in the variable of first name if you do this and these are the same you don’t need to add the second one you don’t need to add the value you can simply do this get rid of the colon as well and now if I save that we still get 30. so it saves you some typing and uh and I just wanted to show you this because most most JavaScript developers will do this there’s no sense in in repeating yourself if you don’t have to so the next thing I want to look at is destructuring so basically what we can do here let’s say I wanted to get well let’s create another object so we’ll create a to-do object with an ID and let’s say title take out trash so if I want to create a variable of ID with the ID of that to do I could do this you know I could do that and then console.log the ID but what we what we can do is destructure properties from the object so we want to set this equal to the object itself and then any properties we want to extract or destructure are going to go into these curly braces so if I save that you’ll see I get one I get the same thing if I want to take out the name I can do that as well so you you can well let me log it so you can see so you can think of this as I’m sorry not name title the title and title so you can think of this as as pulling these variables out of the of the object and you can go multiple levels deep like let’s say we have a user in here and that’s an object that has a name so if I want to get that if I come down here and I destructure user I’m just going to log that for now and save that and you see that it’ll pull out the object to use this entire user object if I want to get the name or any other property what I could do is put a colon here open up another set of curly braces and we want to take the name from the user so now if I come down here I should be able to just console log name now another thing we can do is rename Properties or keys so let’s say I’m destructuring ID but let’s say I want to rename it to to do ID if I want to do that I can put a colon and then just do to do ID like that and then if I come down here and I console log to do ID I get one okay so this and this might might be a little confusing just keep in mind that when you use the curly braces you’re destructuring if you don’t then you’re just renaming now we can also destructure arrays and I know we’re talking about objects in these in the last few videos but I figured it’s relevant here to show you this stuff even though it does have to do with arrays so I’m going to create an array called numbers and we’ll set that to just whatever 33 and let’s do one more okay and I just want to put a comment here that we can destructure arrays oops that should be a comma all right so the way that we do this is we create variables for starting at the beginning for the first second third and so on all right so let’s say const and then the way we destructure arrays is going to be with brackets okay objects we use curly braces and arrays we use brackets we’re going to set that to the array name which is numbers and then in here I’m going to say first and second so what this will do you’ll see if I console log first and second it’s going to give me the first two elements the first two values in the array 23 and 67. and of course if I if I put third in here that would be the next one 33. now if you want to get the rest of the numbers and put them into a variable as an array we can use What’s called the rest operator now it’s a little confusing because the rest operator is is the same as the spread operator it’s the three dots but in this use case it’s often called the rest operator and the way we use that is instead of just putting third which would just get the next one we would do three dots and then a variable name oftentimes called rest and then what I’ll do here is log first second and rest now what you’ll see is we’re logging the first and second 2367 and then rest contains an array with the rest of the values in that array in this case is 33 and 49. if I put in 52 here and save that’s going to get added to the rest array and just to show you I can change this to anything I’ll just say we’ll say nums and then if I come down here and I do nums that’s going to give me the same thing but I’m just going to put that back to rest okay so I know it’s a little confusing spread operator rest operator it’s just when you use it in this instance or in this use case then you might see it called the rest operator all right so that’s it in the next video I want to talk a little bit about Json okay so since we’ve been talking about JavaScript objects I think that this is a good place to introduce Json okay which I get a lot of crap for saying it that way a lot of people say Json I say Jason but it really doesn’t matter it’s j j s o n now Jason is something that you’ll be working with a lot as a JavaScript developer and it stands for JavaScript object notation and it’s a lightweight data interchange format so it’s essentially a way of storing data in a simple human readable format now in web development especially in JavaScript we work a lot with with apis and you know apis to send and receive data to and from a server and several years ago XML which is extensible markup language was kind of the standard for sending data or getting data from a server but in recent years Jason has become the stand standard so you’ll very very rarely work with XML these days now Jason the syntax is very similar to JavaScript object literals which is what we’ve been working with now to give you kind of an example of an API that you may work with as a front-end developer you’re going to work with backend apis where you hit you know a URL and you fetch some data or you post some data and we’re going to get into all that later on apis and you know rest apis and stuff like that now just to give you an example GitHub has has a public API that we can use so I’m going to go to one of the URLs just to kind of show you an example of of some data we’ll get back so if we go to it’s actually API api.github.com and then we can go to slash users if I do that will get an array of like I think I think it’s like the first 20 users of GitHub so as you can see it’s an array of Json objects which are very similar to JavaScript objects right we have key value pairs now the difference here is that the keys are going to have double quotes around them as well and with JavaScript object literals we don’t have quotes around the keys and you have to have double quotes around the strings here as well numbers you don’t have to but strings you have to have double quotes around or it’s not going to be valid Json but this endpoint here API github.com users is an example of something you’d hit with with the fetch API which we’ll learn about later and you can make a request and get this data and bring it into your application you could even do user slash and then your username so I’ll put mine in here and then that gives me some information about my account my login my ID number it even gives me some other API URLs that I can hit to get other things all right so for example uh is the repos so this repos URL if I were to hit that end point I get an array of all my GitHub repositories okay so as Json objects so I just wanted to kind of show you an example of an API that gives us Json data now you can also have Json files like if I create a new file here and I’ll just say I don’t know to do dot Json the way that I would do this it usually a Json file is going to have an array of Json objects so you would have brackets just like in JavaScript and then each object would have curly braces but your keys have to have double quotes as well so say id1 this could be a number or a string and then let’s say title title say take out trash now vs code will automatically validate this like if I take those quotes off it’s going to give me an error if I hover over it says property Keys must be double quoted because it knows them in a Json file okay and then there are websites where you can validate Json as well you just paste it in and it will tell you if it’s correct but yeah it’s pretty much just a JavaScript object with some double quotes so what I want to do as far as JavaScript to show you how we can convert our objects to Json and the other way around so let’s create an object here let’s do something different we’ll do like uh which we do we’ll do posts like a blog post and we’ll set that to let’s say title say post one and this is just a JavaScript object literal so title actually let’s put an ID to so we’ll say id1 and then let’s put a body and I’ll just say this is the body okay so we have a JavaScript object right I can console log that post and if I want to convert this to a what we call a Json string there’s a Json object we can use so let’s say cons string so this Json object has a method called stringify so just stringify and Par so the two methods you’re going to be using quite a bit when dealing with this so stringify will turn an object into a Json string so I’m going to pass in here post and then let’s log Str and and notice it’s formatted differently it doesn’t have like the collapsible arrows and stuff like that it’s just a simple string okay and this is what you would send if you were sending data to a server this is what you would send okay now when you use like the fetch API or other libraries to make HTTP requests a lot of times it does this for you like you you can just send the post like this and it will automatically stringify it where you do end up using stringify and parse the next one I’m going to show you is with local storage and local storage is a way to store things on your client on in your browser and they can only store it can only store strings so you can’t store like an object like this so what you would do is stringify your object put it into local storage and then when you take it out you would parse it back into an object and we’ll we’re going to get all into local storage later so now that we have a Json string in the Str variable let’s parse that Json so we can do that and I’m going to put this in a new variable called obj and we’re going to set that to Json dot parse and then we’re going to pass the string Json string in there and then let’s go ahead and log obj and we’re going to get our initial post object literal okay so these are the two methods that you’ll be using quite a bit when dealing with this type of thing and then it doesn’t have to just be a single object it can be an array as well so if we say const let’s say posts and we set that to an array of objects I’ll just grab this one here and paste that in then we’ll put a comma and we’ll create another one and I’ll just change that to a 2 and we’ll say post 2. so now we have an array of objects let’s say down here const str2 and we’ll set that to Json Dot stringify and let’s pass in our posts and then if we log str2 you’ll see we have a Json string that has a couple array a couple arrays a couple objects inside of an array now one thing to keep in mind is if you have a Json string like this this Str right here you can’t take that Json string and then try to access like let’s say ID okay if I do that I’m going to get undefined all right if you need to access a specific property you first need to parse it so if I console log object dot ID that’s going to work but yeah I mean that’s that’s pretty much it as far as using JavaScript to parse Json strings or turning JavaScript objects into Json strings so in the next video we’re going to have just a pretty simple object challenge for you guys and then we’ll move on to functions and scope and things like that all right guys so I have a a challenge here for you that has to do with object literals and it has multiple steps but don’t get overwhelmed because it’s it’s pretty easy for those of you that already know the basics of JavaScript will have no problems with this but we’re going to take it step by step so I’m going to read step one you can pause the video and do it I’ll do it and then I’ll go to step two step three Etc so step one is to create an array of objects called Library so have a variable called Library set it to an array have three objects inside with the type the properties of title author and Status title and author Should Be Strings whatever you want whatever book title and author and then status should be another object so a nested object with the property of own reading and red which should all be Boolean values okay so do you if you own the book if you’re reading it and if you’ve read it so for all status set own to true and then set reading and red to false so basically you just need to construct an array of objects so pause the video now and go ahead and do that and I’m going to do that now as well so I’m going to create a library array here and then inside it says to do three objects with properties of title so I’ll just put that for now and then we also want author which is going to be a string and then we want the status which is going to be a nested object and status is going to have own which we want to set to true it’s going to have reading which we set to false and then red which we also set to false okay so I’m going to just copy this because we want three of these okay so we just want to make sure we had three and you can put whatever you want for the titles and authors I’m going to say the road ahead I’m just putting anything here and this is by Bill Gates and then we have the Steve Jobs biography by Walter Isaacson I think that’s ice palette and then we have Mockingjay and that’s by Suzanne Collins okay so here’s step one right we just created an array with three objects with the property specified so now let’s move on to step two so you finished reading all the books set the read value for all of them to True do not edit the initial objects at the values using dot notation so don’t just go in and change red to True here we’re going to come down here and set all of the the red values to true so you can pause the video and do it yourself but this is going to be pretty simple basically we just want to say library and there’s there’s multiple ways you could do this you could Loop through it but we haven’t gone over Loops or anything so let’s say library zero and we want to set status right and then we want to set red to true and we’re going to do that for all of them so let’s say one and two as well and then we’ll just go ahead and do a console log of library and if we take a look we should now see in status that read is true for all of these so read is true and status read is true so that’s step two step three is to destructure the title from the first book and rename the variable to First book so we went over destructuring and naming a couple videos back so let’s do that we’re going to go let’s just put a comment here and pause the video if you’re gonna do it on your own and say step two and this is step one okay so step three we’re gonna destructure so from the what was it the first destructs of the title from the first book and rename it to First book so we know the destruction object we use curly braces and we want to set this to the object name which is Library we want to destructure the title right so I’ll say title and then let’s console log title actually I’m going to get rid of this console log right here so I’ll save that we get undefined and that’s because we’re in an array it’s not a single object called Library so we want to get the first the first book if I save that we get the road ahead now to rename this variable we just use a colon so we can say colon and we’ll say first book and then we should be able to console log the first book variable and get the road ahead so that’s step three so step four is to Simply turn the library object into a Json string so you can pause the video and do that and that’s pretty simple say step four so we want to we’ll create a new variable we’ll call it Library Json and then let’s set that to Json Dot stringify and we want to pass in the library object and then we’ll go ahead and console log Library Json and now we should have our library as a Json string all right so that’s it I know that was pretty simple for those of you that already know JavaScript Basics but if you didn’t then hopefully this helped you out so in the next section we’re going to go ahead and start looking at functions and scope all right so now we’re going to start to get into functions which are really important part of any type of programming because you can create blocks of code that you can run anywhere and at any time so we’ll look at creating basic functions we’ll look at function declaration versus Expressions we’ll look at Arrow functions something called iffes or immediately invoked function Expressions we’re also going to look at scope which is really important in programming because this lets you know what what context your code is being run in if it’s the global scope or if it’s within a function scope or another type of block scope and then we’re also going to look at things like the execution context and the call stack which are might seem a little Advanced but like I said I want you to not only learn the syntax but understand kind of what’s going on under the hood in the browser what’s actually happening and execution context is something that I think you’ll benefit in learning now rather than you know two years down the road so it’s just the last I think two or three videos we’ll be talking about that stuff and you’re not gonna need to learn any any advanced code or anything like that in fact we’re going to look at very very simple code but just look at what is actually happening behind the scenes with the execution context with the call stack and so on all right so that’s it let’s go ahead and get started on functions all right so now we’re going to talk about functions and scope and I know a lot of you already understand functions and and that’s fine but I do want people that are new to JavaScript and new to programming to basically be able to start from scratch and learn what functions are and how to use them so let’s get started with some of the basics so first of all a function is it’s a way to group code together that you can run later you can run at any time and as many times as you want and it’s a way to make your your code more readable and easier to understand so to create a function there’s actually multiple ways and I’m going to show you multiple ways but for now we’re going to do kind of the the basic way to create a function and that’s using the function keyword so after that we can give a function any name we want let’s say we want to call it say hello and then we need to add in our parentheses okay now in the curly braces here is where the function body goes this is this is the code that will run when we run our function so I’m just going to have this function do a simple console log of hello world all right now if I save this nothing is going to happen because all I’ve done is defined or declared the function I haven’t run it to run it we have to put in the function name and then a set of parentheses so if I go ahead and save that and run it you’ll see that it’ll console log hello world so that’s that’s the absolute simplest function that you could write now when it comes to passing data into a function we do that with parameters okay and and there’s a difference between parameters and arguments a lot of times they’re used interchangeably which I think is fine but just to be really specific when you’re declaring a function like let’s say we have a function called add and when we’re putting in here the variables that we want to be able to be passed in like let’s say we want we want X and wire let’s be a little more specific we’ll say num1 and num2 so this function takes in two numbers these are the parameters okay that the function can take and then what I’m going to have this function do is just console log num1 plus num2 so it’ll evaluate that expression and log it to the console now when I call this function so I say add and then I pass in the numbers that I want to add let’s say 5 and 10. these are arguments okay when you’re declaring the function these are parameters when you pass in an uh a value here these are arguments but again people will say I’m passing in a parameter of five and I think that’s fine I’m not like you know one of those sticklers and just to be clear on the kind of the vocabulary when we run a function like this this is invoking a function or calling a function when we do this this is defining or declaring a function now most of the time when we create functions we’re returning some kind of value these particular functions that I just created they’re not returning anything they’re just simply doing a console log but usually we’ll return something so to give you an example let’s say function and we’ll call this subtract okay and this is going to take in again let’s say num1 and num2 and I’ll get to scope but just know that these variables even though these are the same it’s okay because they’re function parameters of in different functions so I can use num1 here and here I couldn’t use it like in the global scope I couldn’t create num1 and then create num1 again so in here let’s go ahead and return we do that with the return keyword and we’re going to return X not X num1 minus num2 now I’m going to go ahead and invoke this by saying subtract and then I’m going to pass in let’s say 10 and 2. now if I save this we don’t see anything in the console because we haven’t done any kind of console log what we did is returned uh the the result of this expression now I’ll get into why we return values in a second but just know that anything we do under this like let’s just console.log we’ll say after the return if I go ahead and run this you we don’t see the console log that’s because we’ve already returned we’ve already exited the function so it’s not going to run anything after an in vs code you can see it’s kind of a lighter lighter contrast now the reason we return something is because we want to do something with that value so in this case let’s say we want to put it into a variable so I can actually set let’s say right here we’ll say const and then say result equals subtract 10 from 2 or I should say 2 from 10. and then I can do what I want with that result so I’ll just console log it I’ll say console log result and now I get 8. I could also just console log the function I could say subtract and let’s say I don’t know 20 and 5. if I save that I get 15. all right so instead of console logging from here this this is going to hold whatever the value is it’s returned and there might be cases where you return with no value you just write return and that’s good for like um let’s say you’re you’re sending a request to a backend or an API and you’re updating something in a database and you’re not you don’t actually need to return anything you might just return with no value all right now in the next video I want to talk more about arguments and parameters I know I mentioned them here and and showed you you know the basics but I want to talk a little bit more about that in the next video all right guys so in the last video we saw that we can create functions and we can allow data to be passed in by creating parameters or params and then the data we pass in when we invoke the function are called arguments so I want to look a little more into that so let’s create a function here we’ll call it register user and let’s say it takes in a user which right now will just be a string and then I’m going to just return from this let’s say user and then I’ll just concatenate on and say is registered obviously in real life you would you would connect to a database and insert a user in this now but this is just for for example so we’re going to return that string and then I’m going to just console log register user and we’ll pass in a string of John and then in the console you can see we get John is registered okay so created a parameter of user we pass an argument of John now first off if it’s not obvious this user variable right here this is not available outside of the function it’s in what we call the function scope and I’m going to talk more about scope in a video very soon but just to clear that just to show you that if I console log user it says user is not defined so out here in the global scope it doesn’t see that user variable now if I were to console log register user without passing anything in even though I defined user you can see I get undefined as user because remember a variable that hasn’t been defined it has a data type of undefined and a value of undefined so what we could do to have a default value there’s actually a couple ways we could do that um the old way before es2015 actually let’s go in here was to have an if statement I know we haven’t gone over in conditionals yet but this is pretty simple we would just say if not remember the exclamation is basically the opposite so we could say if not user whoops meaning it didn’t get passed in then we could take that user variable and assign it so let’s call it bot and now if I save that and we run it you’ll see it says bot is registered now with the es2015 or es6 update there’s an easier way to have default parameters because you don’t want to have to do this for every parameter that you have so let’s comment that out and then up here what we can do is simply say user equals and then set it to whatever we want as the default and now ICDC bot is registered okay if I had another variable and I wanted to set it to a value I could do it just just like that just adding the equal sign so that’s default parameters let me just put a comment here so default params and then the next thing I want to show you are rest rest parameters and if you remember a few videos back when we looked at the structuring I showed you with arrays you can destructure values into variables and then you could use the rest operator to basically put the rest of them into an array and you can do kind of the same thing with your parameters or with your arguments so let’s create a function here we’ll call it sum and I’m going to use the rest operator here with a variable called numbers and that can be called whatever you want and then let’s just do uh I want you to get used to using return so we’ll just return from here numbers and I want to see show you what we get now since we use return we do have to just console log the function so we’ll say sum and then let’s pass in one two three and see what we get so it gives us an array with all of the arguments that we passed in okay and I could pass in just as many as I want here and it all gets put into an array called numbers okay a function scoped array called numbers now I know we haven’t gone over like for Loops or anything but I just want to show you that we could use a for Loop to take all the numbers that are passed in and then add them together so let’s go ahead and just initialize a variable here called total and we’re going to set that to zero and then I want to Loop through again I’ll I’m going to go over four Loops in depth later but let’s say const num so we’re going to say num of numbers so basically for each one of the numbers we’re going to call it num and then I’m going to take that total variable and I’m going to use the plus equals here so that I can add num onto each one after every iteration and then I’m just going to return the total okay so now if I console log sum and pass in one through five I get 15 because it’s just adding them all together okay if I add 6 21 if I add 100 121 and again this the body doesn’t matter I just want you to understand you can basically pass in unlimited number of arguments using the rest operator and that those all get put into an array all right now you’re not always going to get primitive values passed in as arguments in fact more often than not you pass in objects and arrays and stuff so let’s say objects as params and we’ll do we did register let’s do login user and say it takes in the user but this time it’s going to be an object so obviously you could use any of the properties that are on that object so for instance we could do a console let’s do a we’ll do a return so we’ll say return and I’ll use a template literal here and let’s say the user I guess yeah we’ll just put the user and let’s say that user has a a name property with the ID of and then we’ll do user dot ID is logged in okay and then down here what we could do is we could pass it in a few ways we could put it into a variable like this and we could give it an ID and then a name and then we could call login user and we could pass in that user and if I save actually we returned it so we need to actually console log it so if I do that we get the user John with the ID of 1 is logged in okay or you could pass it in let’s do another console log you could also just pass in like this let’s put the object and let’s say id2 and name Sarah and then we get the user Sarah with the ID of 2 is logged in so we can also pass in arrays let’s say arrays as params and now I’m going to actually create a function finally that’s semi useful so we’ll create a function that will get a random number from a specific array that we pass in and if you want to pause the video and try this on your own you can because we’ve already looked at how to get random numbers and stuff like that so you can do that if you want but I’m just going to create a function called let’s call it get random and it’s going to take in an array and then first thing I’ll do is is generate a random index for the array for the element that we’re getting because remember we access the element through indexes so let’s say random index and we’ll set that to math dot floor so we’re going to round down remember this from a couple sections back so we’re going to round down a random number let’s say math dot random that gives us a decimal between 0 and 1 so we want to multiply that by the length of the array okay so this is all stuff that we’ve looked at so that will give me a random index now I’m just going to create a variable called item and set it to the array and then the index is going to be random So Random index we want to use that here okay and then we’ll just return or we’ll just console log the item okay and then let’s just call down here get random and we just want to pass in an array and you can put whatever numbers you want in here we’ll do one through ten and you’ll see 9 if I reload 9 10 3 10 8 . so yeah it’ll just generate a random number that you pass in now remember the the the rest parameters that will give you an array of anything you pass in so another thing we could do here is just add on that and then automatically whatever we pass in gets put into an array so I could actually get rid of the brackets here and save and I should get the same result which will give me a random number between any of these numbers I pass in and I didn’t need to pass in an array because the rest rest operator will turn whatever I pass in into an array but I’m going to put it back to how I had it just because this is supposed to be showing you how to pass in an array all right cool so in the next video we’re going to look start to look at scope okay so in this video we’re going to talk about scope and in particular Global and function scope now scope it’s an important Concept in JavaScript and it refers to the current area or the context of a specific piece of code and there’s certain rules for what we can access in specific Scopes now global means just what it sounds like it means that your your Global variables are going to be accessible from absolutely anywhere in fact the browser has a window object if I go ahead and type in window in the console we’ll see the window object here that has a ton of methods and properties that we can access from anywhere whether we’re just in our Global page scope or if we’re in a function or in a block or whatever in fact alert the method alert is on that window object if I say window dot alert and I pass in here let’s say hello and I save that and run it then we’re going to see that pop up now since window is the the top most object it’s at the top level we don’t even need to do the the window dot we could just do alert which is what you’ll usually see okay um and then there’s other things like for instance we can do window dot inner width and that will give us the browser’s inner width so you’ll see down here it’s logging 455. and again we don’t need window but in this case on something like this on inner width I would keep the window but it’s it’s really preference but just to show you I could do it without it all right now we can access these these window object properties and methods from anywhere if I were to create a function and say run and then run that function and in here do let’s just do console log we’ll do window dot let’s say inner height which is another property if I do that it’s going to show down here my my window height is 136 and it’s measuring from here to the to the console all right now as far as creating our own variables in the global scope that’s really what we’ve been doing if if you’re creating a variable that’s not in a function or in a block or anything that’s in your Global scope so let’s say x equals 100 and obviously I can access it from the global scope if I do X I’m just going to also put a string in here that says we’ll just say in global save that we’re going to see 100 and in global now since that’s Global I can also access that in functions so I’ll say console log X and let’s say in function save it and you can see we can access it there as well if I have a block like an if statement which I know we haven’t talked about yet but just to show you real quick if I say if true so since I put true whatever I put in here is going to run I’ll do a console log of x and I’ll say in Block save that you can see we’re accessing it from there as well now functions have their own scope so what I’m going to do here is create another function called add and in here obviously we can access X I already showed you that we can create variables in our functions so we’ll say const Y and we’ll set that to 50. and then I’ll do a console log of Y and what we have to run it so if I save that and run it you’ll see that we’re logging Y which is 50. now since I defined this variable inside the function this is function scoped okay this is not a global variable if I go outside the function and I try to log y I’m going to get an error it says Y is not defined because it’s looking in the global scope it’s not going to go into this function and pull out variables and allow us to access them and of course since I created this this variable Y in this function I can’t go in this function and do it here either right if I do that now this error is running you can see at line 11 and that’s where I just did this console log all right so I’m just going to undo that and I’ll comment this out to get rid of that error now I can access the global variable X inside of any function I want so if I were to go right here let’s say console log X Plus Y and I’m going to get 150. all right now if I were to in this add function create a variable called X if I do that and save you’re going to see now we get 51 it’s adding this X and this y so what this is doing is overwriting the globally scoped x value and this is called variable shadowing now when you hear the term local scope that’s just that just refers to whatever scope you’re in whatever you’re talking about if we’re talking about you know this y variable right here then our local scope is this add function scope if we’re talking about this one then where the local scope is the global scope all right now that is global and function scope in the next video even though we haven’t gone over like if statements and loops and stuff like that which are blocks I think this is a good place to talk about block scope all right so we talked about global scope and function scope now we’re going to talk about Block Level scope and I’m also going to show you some of the differences between using VAR to create variables versus using Latin const because VAR is not Block Level scoped so I’m going to create a variable in the global scope called X and then I already showed you this in the last video that if we have a conditional which is a block and we try to access a global variable that’s fine right because Global variables we can access from anywhere now if inside of this block I create a variable let’s say Y and set it to 200 of course from here I could do like X Plus y that’s going to work but if I come out here and I try to do X Plus y that’s not going to work because y has not been defined on the global scope it’s defined inside of this block so it belongs to this block so I’m going to comment that out and I’m going to show you how this would work with VAR in a second but first I want to show you a loop example so you don’t have to understand for Loops yet to really see what I’m talking about here but I’m just going to create a simple for Loop I’m going to use let I’m going to say let I equals zero and then we’ll say as long as I is let’s say less than or equal to 10 and then we’re going to increment by 1 and then here I’m just going to do a console log of I so if I save that what it’s going to do is just start at 0 and it’s going to Loop through and console log each number until it gets to 10. so for very simple for Loop now if I were to come outside of this and do console log I you’ll see I’m going to get an reference error I is not defined so I is is scoped in this Loop in this block now I want to show you the difference between VAR versus Latin cons so I’m going to create a block here just an if statement and just say true and let’s create a cons variable of a so we’ll set that to let’s say 500 let’s say let B we’ll set that to 600 and then let’s use VAR C and set that to 700. okay now if I come outside of that block and I console log a we’re going to get an error by console log B we get an error and if I console log C it works you’ll see 700 so that’s the big difference between VAR versus let and const VAR is not block scoped so if you have a variable that you created with VAR inside of an if statement that can that’s accessible from outside and that’s not really good that’s not what you want you want your variables to be block scoped that’s how most programming languages work so in es2015 or es6 they decided to create let and const but of course you can still use VAR because if they they took VAR out that would break a lot of projects so yeah I would always say use Latin const now even with loops if if I used VAR here instead and then I come down and uncomment this console log I you’ll see that it’s actually giving me 11. so it’s not throwing any type of error it’s working and giving me 11 which obviously I don’t want that to happen now VAR is function scoped so I want to make sure that I explain that so if we come down here and I create a function called run and then in here I say VAR let’s say I don’t know D and set that to a hundred right so obviously I can use that here I’ll say console log d and of course I have to run the Run function and now at the bottom you’ll see a hundred and then if I try to come outside of here and console log d I’m going to get an error even though I use VAR because VAR is function scoped okay if you can’t access a VAR variable that’s inside of a function outside of a function but you can with other blocks like loops and and if statements now there’s one other thing that I want to mention about VAR so let’s say we have let’s say const Foo equals one and then let’s say VAR equals two so when we set a global variable with VAR let me just comment that out get rid of that error when we create a global variable with VAR if we look at the window object let’s take a look here you’ll see that it actually gets added to the window object when we use letter cons that does not get added to the window object so you can see here there’s no Foo so that’s another kind of difference between constant Latin VAR and you’re probably not going to want your Global variables on the window object all right guys so now we’re going to look at how scope works with nested functions and nested blocks now nested functions relate to something called closures and we’ll look at ways to use closures later on but I think it’s a bit too early to to learn them a lot of people are intimidated by them but we can at least look at how Scopes work with nested functions so let’s go ahead and create a function I’m going to call it first and then in first we’ll create a variable called X set it to 100 and then what I can do here is Nest another function so I’m going to call this one second okay so it’s nested inside first and here we’ll create a variable called Y and set that to 200 and then in second I’m going to console log X plus y now in order for a second to run I have to call it within first right so we’re going to run second here and in order for first to run I have to call it here so I’m going to go ahead and save that and you’ll see I get 300. so you can see I can access from the parent function from I should say from the child I can access any variables that are in the parent scope however it doesn’t work the other way around I can’t access from the parent variables in a child scope so if I if in first I try in console log y then that’s going to give me an error okay so remember you can access parent variables but you can’t access child variables so they’re two separate Scopes now it’s very similar with blocks so let’s go down here let’s say if we’ll just say if true and then in here I’m going to say const x and I’m on a different scope so I can use x and then let’s say we have another if a nested if and here we’ll say if x equals 100 and again I know we haven’t gone over if statements we’re going to get to that soon I just want to show you this this is kind of the same type of thing where we have let’s say Y and we can console log here um let’s say X Plus y and if I save that we have to comment this out because it’s giving us an error if I comment that out you’ll see we get 300 right because I’m able to access here I’m able to access the parent Scopes variable of X but if I go outside of this this child if or this nested if and I try to console log Y which is created in there then that’s not going to work okay because this is a separate scope that I can’t I can’t access but you can access the parent from within the child so hopefully that makes sense I know it’s a little confusing but I figured this was a good place to mention this since we’re talking about scope okay so up to this point we know how to declare functions and invoke them or call them or execute them however you want to put it there is another way that we can create functions and that’s with a function expression so let’s first declare a function just like we’ve been doing so I’ll say function this is called a function declaration right so we do that by just putting the function keyword first and then let’s call this add dollar sign and what this will do is take in a value and then just prefix it with a dollar sign so we’ll return from this a string with a dollar sign and then we’ll just concatenate the value and then if we want to invoke it we can just well let’s let’s do it in a console log since this is returning so we’ll say add dollar sign and let’s pass in here 100. so if I save that we get 100 so that’s a function declaration we start off with the word function and then name it and so on but we can also use a function expression where we actually create a variable so let’s call this add plus sign same idea of it with a plus sign and we set that equal to a function and that will take in a value and then we’ll go ahead and just return we’ll do a plus sign and then we’ll concatenate the value and then if we want to invoke it we can do a console log and say add plus sign and let’s do 200 and if I save that we get plus 200. so notice that we invoke them the same exact way we just call the function pass in a value but they’re declared differently the the expression is just a variable it’s a function assigned to a variable now in JavaScript you don’t have to use semicolons they’re optional but notice at the end of the expression we do have a semicolon we don’t add a semicolon to the end of a function declaration now there are some differences here and it comes down to something called hoisting now I’m not going to really go into hoisting as far as how it works right now I’ll do that later when we talk about something called the execution context but in very simple terms hoisting is the process of moving all the function and variable declarations to the top of the current scope before the code is run so you can think of it before your code is actually executed you can think of a step before that where it goes through and it looks for all your func function declarations and your expressions and your variables and puts it all at the put puts all those at the top of the page now even though this happens only function declarations are available before the code is executed so let me show you what I mean if I take this right here where I’m calling add dollar sign and I move it up above which whoops where it’s actually declared and I save that it works which might seem a little weird because we’re calling add dollar sign before we actually defined it so how does it know that and the reason for that is hoisting because again there’s you can think of it as a separate step before your code is actually executed where this is moved up top now like I said only declarations are available before the code is executed so if I do the same with an expression if I take this console log and I move it above where we where uh where we Define it and I save that it says uncut reference error I cannot access add plus sign before initialization okay so when you use a regular function declaration you can call it beforehand if you wanted to put all your functions at the bottom of your script you could do that although I really wouldn’t recommend it I think it’s much cleaner to have your functions declared or defined and then use them but uh but yeah I just wanted to go over declaration versus expression in the next video we’re going to look at another type of function expression and that’s Arrow functions so Arrow functions were introduced into JavaScript in 2015 they were part of the es2015 or es6 update and they there’s some advantages to using Arrow functions of course they’re more compact they also have an implicit return which I’ll show you and they also have a lexical scope which I’ll talk about a little later so let’s start off here by just creating a regular function declaration like we’ve been doing so just a simple add function that will return a plus b and then we’ll call that we’ll just do a console log of ADD and pass in one two so we get three now let’s let’s rewrite this as an arrow function so I’m going to go right underneath it and we’re going to say const add and remember in the last video I showed you we can also create function Expressions so I could do equals function like this now an arrow function we can actually get rid of the function keyword and then instead of using the function keyword after the parentheses we’re going to use an arrow or what we call a fat arrow and then we can pass in any parameters and then in the print curly braces here we can just same thing just return a plus b if I save that we get 3. so this is the just the regular Arrow function syntax now there are some things we can do to make this even shorter since we only have a single expression single just one line expression here that we’re returning something we can shorten this by getting rid of the return statement and the curly braces so instead of using add though I’m going to do subtract just so I don’t have to comment that 102 but we’ll say can’t subtract and it takes in A and B we have our Arrow now instead of putting my parentheses here I’m just going to directly say a minus B so this is saying I want to return this expression to the right of the arrow so this is the same as this of course except it’s it’s subtracting so I’ll go ahead and copy this down and let’s do we’ll say 10 5 and we’re going to call subtract and of course we get 5. so this is in PL it’s an implicit return because we’re not specifying the return keyword it’s just doing it so let’s say implicit return now there’s another way that we can shorten things up if your function only has a single parameter so let’s say we have a function called double and it takes in a single parameter and then what we want to return is whatever we pass in and then just multiply it by two so let me just run that down here real quick so if we do double him pass in 10 we get 20. now the way we can make this shorter just a little shorter but it’s important to know this is when we have a single parameter like this we don’t need to have parentheses around it okay now the way that I have my text editor set up and prettier and auto format if I save it puts it in automatically but what I can do is copy this I’m going to copy it and then comment it out and then over here in my console I’ll paste it in and you’ll see that that works so if I do double let’s say double um one we get two now if I try to Define this and leave off my parentheses but I have more than one param that’s not going to work okay so you can only emit the uh the parentheses when you have a single param so let’s uncomment these and just put a comment here and you can say can leave off parentheses with a single param now another thing that can cause a little bit of confusing of confusion is if you are returning an object so let’s say returning an object and this is due to the formatting of the you know having the arrow point to curly braces when you want to return an object with which also use Curl uses curly braces so to give you an example let’s say const we’ll call this function just create object and it doesn’t have to take anything in but let’s say I want this to return an object that has a name I’ll just do that and then if I save you’ll see that prettier automatically thinks to put a semicolon here which obviously isn’t what I want if I’m trying to make this an object so if I come down here and I do a console log of create object I’m going to get undefined so all you need to do is if you want to return an object this way you just surround the curly braces with parentheses and then of course we don’t want that semicolon so now if I save you can see we’re returning an object that has the name of Brad now I know we haven’t gone over high order array methods or callbacks or anything but that’s another great place to use Arrow functions so I’m just going to show you an example so let’s say we have an array which we’ll just call it numbers and let’s do one through five and on arrays there’s a method called for each and we haven’t gone over this yet but we’ll be getting deep into these types of methods later on but just to show you if we do numbers dot for each what you pass in here is a function okay and you could do it like this you could just pass in a regular Anonymous function and just pass in whatever you want to use for each number I’ll just use a variable called n and then I’ll just do a console log of n if I save that you’ll see it basically what this does is it Loops through and it just outputs logs each number okay I could do whatever I want with this number but I’m just choosing to log it out now this is a good place to use an arrow function because you can really shorten it up and make it neater so let’s say four each and instead of passing in the word function I can just put in my parentheses pass in actually in this case I wouldn’t even need parentheses since I’m using a single a single parameter but it’ll add it automatically in my case and then we have an arrow and since I just want to do a single console log I don’t even have to use curly braces I can just say I want to do a console log and Save like I said the parentheses get added but you really don’t need them and you can see it does the same thing so I think that this is you know more neater and short and concise than this but again it’s it’s all preference just like most things so this is let’s say Arrow function in a callback so callback is basically when we pass the function into another function and we’ll we’ll get into that later all right so hopefully this just gives you a basic understanding of how to format Arrow functions we’ll be using them throughout the course now in the next video I want to get into something called immediately invoked functions all right so when we deal with functions we usually Define them or declare them and then we invoke them when we need to run them however there is a way in JavaScript that lets us create a function or declare a function and invoke it at the same time and that’s using something called an immediately invoked function expression or an iffy for short iifi I’m sorry iife and there’s a few reasons why you might may want to do that one of the biggest is to avoid Global scope pollution so let me show you what I mean if we have in our folder here you can see I have a folder called iffy if I create another Javascript file I’m just going to call it other script dot JS and this could be like another library that we’re using or whatever it might be and let’s say in this script we have a global variable called user and I set that to Brad and I’ll just do a console log of the user and of course it’s not going to show yet because I haven’t linked it up to my HTML file so let’s go ahead and add that and we can say that this is coming from some other library that we didn’t even write so that another developer created so we’ll say another script.js if I include that now we’re seeing that that Brad value which is in this user variable now let’s say in our script well we want to have a variable called user as well so I’m going to set const user to John and as soon as I do that and save and it runs I’m going to get this user has already been declared okay because it was declared in the global scope of the other file and now I’m trying to declare it in this scope as well and there’s a few ways to handle this but one of the ways we could handle this is with an iffy so let’s go underneath here and I’m going to open up a set of parentheses the Syntax for an iffy is a little strange what we do is create an unnamed function in those parentheses and then whatever we want to happen so I’m going to actually bring bring this down into the iffy and then just do a console log of user now after the the first set of parentheses we need to open up another set to invoke it right because that’s a function we need this set of parentheses to invoke that so I’m going to go ahead and save this and you’ll see now we get we don’t get an error we’re able to have both of these variables of user because this this one here is not in the global scope okay it’s in the scope of the iffy and I could even create a function within here like let’s say we have a function called hello we’ll use Arrow function and we’ll just do let’s say console.log and we’ll say hello from the iffy now if I try to go outside here and execute hello I’m going to get an error that says hello is not defined because again it’s it’s scoped inside of this iffy so I would have to run it inside here like that now you can add parameters if you want so let’s say I’ll just create another one down here so it’s remember it’s 2 it’s parentheses side by side the first one has the function inside of it so I could pass in let’s say name and then let’s say I want to just do a console log of a string hello and then I want to concatenate onto that the name now where I pass that in is going to be right here so I’m going to pass in a string of let’s say Sean save that and we get hello Sean so that’s adding parameters to your to your iffy now you can have a named iffy because notice these are just Anonymous functions they don’t have any any name associated so if I wanted to I could say function and then give it a name like hello which I can do because the other hello is on a different scope and then whatever console log hello but you don’t really see this very much because you can’t call that function outside of of the iffy outside of that scope you can call it within it and that’s something called a recursion when you when you call a function from itself that’s recursion and it’s kind of an advanced topic which we’ll get into later much later and I wouldn’t recommend doing it if you run this you’re going to crash your browser because what’s going to happen is it’s going to run hello it’s going to console log hello then it’s going to call it again it’s going to console log again call it again and it’s just going to keep going until your browser crashes is going to cause what’s called what we call an infinite Loop so I wouldn’t recommend doing that but I wanted to show you you can create a named function I guess the other reason you might do it is for debugging reasons all right so that’s it for iffys we’ll we’ll probably get into these a little later in some projects but in the next video I want to give you a couple fairly easy function challenges all right guys so we have a couple challenges to do so there’s three of them here and basically I’ll just do one by one and you can pause the video after I explain each one and try it on your own so challenge one is to create a function called get Celsius that takes a temperature in fahrenheit as an argument and then Returns the temperature in Celsius for bonus points write it as a one line Arrow function so we’ll write it as a regular function first and then we’ll see if we can convert it and the expected result you just pass in a Fahrenheit like 32 and you get back the Celsius which would be zero and you can make the output look prettier by putting it into a string you can even add the the slash X B zero which is this this little degree symbol and you know put it in a template string like that and then hence the formula for Fahrenheit to Celsius is this right here so basically this Fahrenheit minus 32 times 5 divided by 9. you can read more about the formula here if you want so that kind of explains that all right and then what I’ll do is open up let’s search for a Fahrenheit I don’t even know how to spell Fahrenheit Fahrenheit to Celsius converter online okay so here we have an invert and this just shows you the formula right here so basically we just need to um I’ll put this in our JavaScript where the Fahrenheit temperature is the argument so if you want to pause the video and do that now go right ahead so I’m gonna just put in a comment here say challenge one and let’s create it as a regular function first so we’ll say get Celsius and then that’s going to take in a Fahrenheit temperature and then basically what we’re going to do let’s just do Celsius and let’s set that to the formula which we can probably yeah we’ll just grab it right from here definitely need to know that stuff like this I usually find on like stack Overflow or using the the GitHub copilot extension is really helpful because it’ll get you stuff like that so I’m just going to paste that in and then what we can do is replace that capital F with our lowercase f because that’s the argument that’s being passed in right and then let’s return Celsius cell CS right and then let’s do a console log here of get Celsius and let’s pass in 32. so if we look at down here we get zero so let’s try something else if we pass in 40 we get four point and then a bunch of fours so if I put in 40 here we get same thing we put in 50 we get 10 let’s put 50 in our function and we get 10. good now we can turn this into a one line Arrow function if you want to pause the video and do that you can go ahead but I’m going to just I’ll comment it out in a second but let’s do const get Celsius we’re going to set it to an arrow function that takes in Fahrenheit and then we know that basically we just want to return this right here right we didn’t have to put this in a variable name we could return it directly but down here we can use an implicit return so I’m just going to paste that in all right and then we’ll go ahead and comment this one out and let’s try it again I save we get 10 if I pass in 32 we get 0. all right so this is a nice clean function so I think that that’ll do it and we could put it inside of uh a template string with this little symbol so for example instead of just logging the answer we could say we could put in back ticks and say the temp for what do we do here yeah we’ll just say we’ll just say the temp attempt is and then put in our get Celsius with 32 and then outside of that the curly braces I can paste that in and then we’ll put an uppercase C actually let’s not have a space there so now it says the temp is zero degrees celsius if I pass in 50 and say we get the temp is 10 degrees Celsius so that’s the first challenge so the next one I I don’t even really remember what these are I did these quite a while ago so create an arrow function called min max that takes in an array of numbers and returns an object with the minimum and the maximum numbers in the array so we want to be able to pass in an array of numbers and then what we get back in return is a an object with the minimum and the maximum of you know of the numbers in that array so as far as hints you can use the math dot Min and math.max methods to get the Min and Max you can also use the spread operator to spread the values of an array into separate arguments okay so yeah let’s try that and if you want to pause the video and do it that’s fine as well um I’m just gonna put a comment in here challenge two and let’s create our function called min max and then that’s going to take in in Array so I’ll just call this ARR and then remember we can use the math object Min and Max methods so let’s say const min and we’ll set that to math.min and then I want to take basically this this doesn’t take in an array it takes in just a bunch of numbers like this one two three and so on so if we want to take just the values in the array remember we can use the spread operator and then we’ll go ahead and add our array and just to kind of test that out let’s do a console log of uh Min and then we should we can just call this because we we logged from the function erased oh we didn’t we need to pass in an array so let’s just do one through five and save and we get one which is the the minimum so now we can copy this down and let’s get the max So Max and then I’m just going to console log Max and we get five if I add to this 6 then I get 6. so we know we’re we’re halfway there we have that now we just need to create an object so let’s go down here and let’s return an object with Min now remember when if if your variable name is the same as your your key here you don’t need to have the variable name you can just do that and then same with Max all right so that should do it now we’re returning so we do need to wrap this in a console log if we want to print it out and we’ll save so we get min 1 Max 6. if I add let’s say 31 in here and I save we get min 1 Max 31 if I get rid of the one Min will now be 2 max 31. okay so that should pass the challenge now for our Challenge three it says create an iffy we talked about those in the last last video that takes in the length and width of a rectangle outputs it to the console in a message as soon as the page loads so we know that if we write it in iffy it runs right away when the page loads so on page load we should see this message an area of a rectangle with a length of 10 and a width of 5 is 50. okay so the hints the area of a rectangle is the length times the width okay so it takes in the length and the width that means we just need to multiply it and this should get passed into the ifeas arguments you do not have to return anything from this function just log to the console so that’s actually pretty easy um so it really just tests your skills to create an Effie so let’s come down here and you can pause the video right now if you want to so let’s say challenge three and we’re gonna create an iffy so remember we have a set of parentheses and in that is where we create our function now I don’t think I showed you in the last video that we can actually use an arrow function here like I could do just a regular function like this but you can also just do this so that’s what I’m going to do and it said to take in a length length and width and then inside the function body let’s get the area so we’ll say const area and then we can get that with length multiplied by the width and then let’s just do a variable for the output we want to log so that’ll be a template literal and we’re going to say the area let me just check this out again I’m actually going to just copy this so if we paste that in and we just need to replace these values so we know we have the length and the width passed in so we can replace this 10 right here with the length we can replace this 5 with the width and we can replace 50 with the area and then of course we need to add in our parentheses and then when we pass in the the arguments that goes in here so let’s say 10 and 5. and of course we need to Output this so let’s just do a console log and well we’re going to Output output so the area of a rectangle with a length of 10 and a width of 5 is 50. so if I were to change this now let’s say 20 and 10 save that length of 20 and a width of 10 is 200. all right guys so I hope that the the challenges I hope the description is good enough for you to kind of understand what I’m asking you to do I’m not the best at at doing challenges or creating them honestly so hopefully that’s sufficient all right so what I want to start to talk about next is the execution context which is more behind the scenes stuff and and how how things work behind the scenes which is a little Advanced especially for this stage in the course but I said it a million times already I want to give you a full picture of what’s what’s going on as we’re writing our code all right guys so now we’re going to talk about execution contacts which might sound a little intimidating especially if you’re a true beginner but just know that learning this stuff now and learning the the bigger picture of what’s happening when your code is running is going to benefit you more than if you learn this stuff two three years down the road like I did so execution context just think of this as something that’s going to happen behind the scenes we’re not looking at any new Advanced code or anything like that in fact the example code we’re going to use is just very simple stuff we’ve already done just creating a variable creating function running a function all right now as far as what this is the execution context is a special environment that’s created by the JavaScript engine in the browser or if you’re using node.js the the engine that node.js uses which is the V8 engine and this special environment this execution context includes the currently running code and everything that aids in its exit execution and when it’s first created that’s called the the global execution context okay you can think of it as like the global scope and then anytime you invoke a function that function will have its own execution context that’ll last for the span of the function okay when the function is done then that function execution context is done now to kind of visualize the execution context I created this box so you can think of it as a box with two sides where you have your variable What’s called the variable environment on one side and this is going to be all the variables and all the functions in your code stored in key value pairs in memory all right so that’s the memory and then we have the execution side which is the thread of execution so JavaScript is what we call a single threaded language a thread you can think of as like a process and your code is executed line by line on that thread or on that process all right so just to be clear JavaScript is single threaded and it’s synchronous so it’s executed line by line there are asynchronous capabilities which we’ll talk about later different web apis and stuff like that but just know that at its core JavaScript is single threaded and it is synchronous now there’s two phases when the execution context is created so the first phase the memory creation phase you can think of as like one swoop through before your code is actually run okay so the memory creation phase does not actually execute your code it does a couple things so the first thing it does is it creates the global object in the whether that’s in the browser or in node.js in the browser the global object is called window in fact if I go to Chrome real quick and I go into the console and I type in window and I hit enter it’s going to show me that window object and all the methods and properties on it and there’s a ton of them okay different apis and stuff and we’re going to get into a lot of this later on now and that’s created by the execution context in the memory phase now the second thing it does is it creates the this object and binds it to the global object that’s why if I come in the console and I type in this and I hit enter it’s going to show me the same exact thing the window object because that’s it binds it to that all right then what it does is it sets up the memory Heap for storing your variables and function references so remember this box right here all your variables and functions are going to get put into here during the memory creation phase and then the last thing it’s going to do is it’s going to set the value to all of those to undefined okay so if we look here these these values here these are all going to get set to undefined in the memory creation phase they don’t get filled with values until the code is actually executed okay which is the second phase the execution phase where it goes through line by line and if it hits a function a function invocation then it will create a new execution context for that function now to give you a better picture we’re going to go through we’re going to step through each line of this code and I’m going to show you exactly what’s happening within the execution context and like I said this code is very simple we’re just creating a couple variables we’re creating a function that returns a sum of two numbers and then we’re just creating some variables that will contain the return value of this get sum function so a couple things to keep in mind there’s two phases we’re going to go through the memory creation phase and the execution phase and whenever we invoke a function like this it creates a kind of a side function execution context so let’s get started so we go ahead and run them the memory creation phase or we don’t run and it just gets run and on line one it’s going to set the x variable in memory it’s going to allocate it and store it as undefined okay remember I said variables in the memory creation phase are they’re put into memory but they’re stored as undefined it’s going to do the same online 2 with the Y variable store that to undefine now line three it hits a function and functions are allocated to memory but they’re not stored as undefined I think I might have said that the the all the code within the function gets stored to memory okay it doesn’t get executed it just gets put in memory for now and then it’s going to skip to line seven where someone is going to get allocated to memory stored as undefined okay we’re not remember we’re not executing anything yet so the functions don’t get executed we’re simply putting the the variables into memory same thing with sum2 that’s put into memory stored as undefined now what’s going to happen is it’s going to go through the execution phase so it’s going to go back to line one and in line one it’s going to take 100 and put that into the X variable in memory remember X is already in memory as undefined from the creation phase but now that we’re executing it’s going to put 100 in for X okay next line 2 is going to place the value of 50 into the Y variable then it’s going to go to line three but it’s going to skip this function because there’s nothing to execute this is just a function a function definition then we go to line seven it’s going to now invoke get some because remember we’re in the execution phase so this is a function it’s going to get run and it’s going to create a new function execution context all right now remember when we when a new execution context is created it has two phases once again so now we’re going to be in the memory creation phase 4 the get sum function execution contacts so you can think of it as like a nested execution context so on line three what it’s going to do in the memory creation phase is it’s going to assign N1 and N2 to memory and store it as undefined okay remember we’re in the creation phase for the function execution context so it’s going to take these two and store them in memory as undefined then it’s going to go to line four it’s going to store sum as undefined it’s going to go to the execution phase now of the function so N1 and N2 are going to get a signed 150 and the reason for that is because we’re passing in here X and Y which are set to 150. okay and then on line four the calculation is done and 150 is put into this sum variable in memory then line five is going to return and tells the function execution context to return to the global execution context with the sum or the value of 150 okay and that’s going to get stored in here the return sum value is put into the sum 1 variable then it goes on to line eight it’s going to do the whole thing over again it’s going to open up another execution context for the function and do the same thing just with different parameters this time 10 and 5. all right so just to quickly recap because I really want you guys to get this we run this block of code it starts the the global execution context in the memory creation phase it goes through each line and it’s going to set all the variables to undefined in memory it’s going to set the function code into memory okay once it does that it starts the execution phase where 100 is put into x 50 into y it’s going to skip the function declaration because we’re in the execution context there’s nothing to execute once we 7 it sees there’s a function that opens up another execution context for the function okay and then it goes through the memory phase for the function then the execution phase for the function and then moves to line eight and it’ll have to do the same thing because we hit another function all right so this doesn’t really affect how you write your code right now but it will benefit you in the future just knowing how this works behind the scenes now in the next video I’m going to run this block of code and I’m going to use the the browser debugger to kind of put breaks in so we can see exactly what’s happening or as much as we can see within the browser so in the last video we talked about execution context and we stepped through a block of code and I showed you what happened during the memory creation phase and the execution phase well here I’m going to do the same thing you can see I have the same exact code in in my vs code and we’re going to do the same thing from within the browser and we can do that by using the sources tab in the dev tools and over here you’ll see our files and if I click on script.js we’re going to see this the same code right here now using the debugger I can put what we call a break point anywhere I want and that’s going to stop the code from running at that point so what I’m going to do is put it right at the beginning so it’s actually not going to execute the script so I’m going to reload the page and none of this is executed but the memory creation phase has been run so down here you can see all these variables X Y sum 1 some to there they’ve all been put into memory and set to undefined because remember with with the memory creation phase it puts your variables in memory and sets them to undefined okay before the execution now remember functions get stored in memory and the entire code in the function gets stored however that’s going to be down here in global so that’s called get sum so if we look down here we should see a get some function right here all right so that code is stored in memory as well now one interesting thing is if you used VAR instead of const or let then those variables would be put on the the global scope as well and and that we can get into hoisting and stuff later on but what I want to show you now is if I step through this so I can use this little arrow icon to to execute the line the code line by line and you’re going to see what happens over here so I’m going to click the arrow it’s going to run the first line const x equals 100 and now we’ve started the execution phase okay normally it just goes through and does it you know all together but uh or it does it real fast it doesn’t pause like this but now we’re pausing line by line and you can see that 100 has been put into X okay because we’ve started at the execution now I’m going to click this Arrow again and execute the second line and you’ll see that 50 has been put into y now it skips the function definition because there’s nothing to execute and goes right to this get sum where it where it’s being invoked now remember when we invoke a function it creates a new function execution context I’m going to click the arrow and now you’ll see this new area called local which is our function execution context and the first line has been has has Ran So N1 and N2 contain 150 because our first function call we passed in X and Y which are 150. now if I click this again and run this line right here it’s going to put 150 into sum so I’ll click it again and now you’ll see sum has 150 in it now if we step out of the function it’s going to go to the next get sum which is being passed in 10 and 5. so it’s going to open up a new execution context with 10 and 5 as the arguments here is the variables if I clicking again it’s going to add the sum click it again it’s going to go to the next line to the console log and now our script has been run all right so that’s what it looks like when you go through line by line but you saw even before we executed anything the creation phase ran and put our variables and our function into memory but if this is confusing to you don’t worry about it my my point of doing this is just to show you what’s going on under the hood and how this is actually run within the browser so in the next video we’re going to talk a little bit about something called the call stack and then after that we’ll get back to syntax creating conditionals and loops and so on okay so while we’re on topics that are kind of behind the scenes things that happen when we run our code we talked about the execution context I want to also talk about the call stack this is something that will be important later on when you get into more advanced JavaScript but I just want you to understand the basics of it so when we run a function we know that it opens up a new function execution context it also gets added to something called the call stack now a stack is a data structure in not just JavaScript but in in many programming languages and it operates in a very specific way it’s it’s last in first out or l-i-f-o meaning that the last thing to come on is the first thing to come off and the better the next slide will give you a better visualization of that but the call stack is you can think of it as a manager for your functions or a manager for your your execution contacts and at the bottom of the stack you have your Global execution contacts and then when a function is invoked that gets put on the call stack when it’s done it gets it gets popped off all right so if we look at this very basic piece of code here we’re running three functions or creating three functions for our second third and then running them okay and we’re doing this all in the global scope they’re all being run in the global scope so what happens here is the first function is invoked it gets pushed onto the the stack that’s the terminology just like with arrays push and pop so it gets pushed on first ends and then gets popped off then second runs gets pushed on popped off then third runs gets pushed on popped off so that’s how this piece of code would work with the call stack now this piece of code is a little different so we again we have first second third but we’re just running first in the in the global scope and then in first we’re running second and then in second we’re running third so what happens is we run first it gets pushed on while first is running second is run so that gets put put on top of first because first is still running it’s still open and then in second third gets called so second is still running so third gets pushed on when third ends third gets pushed off I’m sorry popped off and then second end gets popped off first popped off so it’s just it’s the same thing it’s last and first out so what I want to do now is show you that those same two pieces of code in the browser and show you the call stack in the sources tab so as you can see I have the first example I showed you here I have the second one commented out for now and I’m going to go to the sources tab and go to script.js and what I’m going to do is put my my break point right at the first function where it’s called and then I’m going to reload the page and right now it hasn’t run anything I’m going to once I click this Arrow it’ll run this line the first function and if you look down here there’s actually a tab called call stack and you can see right now first is on top of is is is first on top of the global execution context that’s what this Anonymous is all right so first gets put on the stack and then let’s step through it step through it again finish it up now we’re going to run second gets put pushed on the stack step through it it gets popped off let’s run third that gets pushed on WE step through it and then it gets popped off all right so that’s how this piece of code works just like I showed you in the slide now I’m going to just comment this out and the second example I’m going to uncomment that so remember this is where we’re actually running second in first and third and second so I just want to show you how this would work so we’ll come down here actually let’s uh let’s just reload this whole thing real quick and then I’m going to put my break point right here at first and then reload and then if we run the function you’ll see that first is put on the stack now it’s going to go to Second which is still in first okay and we’ll run that and now look second is on top of first inside second we run third so let’s do that and now third is on top of second so this looks exactly like the diagram that I just showed you all right and then if we step through third will end gets popped off now you can see second is on top we’ll run that that gets popped off first that gets popped off so I just wanted you to understand at the very at a very basic level how the call stack works so in the next section we’re going to start to look at control flow and logic and conditionals hey guys welcome to section four so I know that some of you might be getting a little antsy because you want to get into the the document object model stuff and creating things in the browser and events and all that and that’s coming soon I promise but this stuff is very very important these are the fundamentals these are things that you absolutely have to know to do anything in JavaScript so in this section we’re going to look at logic and control flow which is something that is very important not just in JavaScript but in any programming language because you need the ability to make decisions you need the ability to run certain blocks of code if something is is true or false so we’ll be looking of course at if statements or if else statements we’ll be looking at switches I want to get more into the truthy and falsy values I know we touched on that a few sections back but I really want to dive into that logical operators logical assignments shorthand if statements and the ternary operator so that’s the the type of of stuff I want to get to here we’re going to have a couple challenges as well alright so let’s get into it all right so one of the main ways to have control of the flow of your application is with if statements and if statements are in just about every programming language if they’re not then there’s there’s most likely something similar so the format of an if statement is very simple we just say if and then in here we can put either a value or an expression so I’m just going to put true in this one and then if that passes so if it’s true then whatever I put in here will run I’m just going to say this is true if I save that you’ll see that that runs now if I were to copy this down and change this to say false and then we’ll say this is not true if I save that that’s not this block of code right here line six is not going to run because this expression that I passed in is false all right now we can also evaluate expressions that with uh with operators like equals or less than so I actually have a chart right here so we can test if something is equal to with both double and triple equal signs or not equal to greater than less than and also greater than an e or equal to or less than or equal to so just to give you a quick example and let’s actually create a couple variables here we’ll say x equals 10 and let’s do y equals 5 and we’ll say if x is greater than y then let’s just do a console log put through some backticks in here and we could say x is greater than y save that and we get 10 is greater than 5. if I want to use an equal sign or our triple equals whatever not quadruple equals that’s not a thing and then here we’ll say x is equal to Y if I save that this block of code isn’t going to run because this is false right if I change y to 10 and I save then that will run now this one’s not going to run because 10 is not greater than 10. if I were to use greater than or equals that will run okay so we could say is greater than or equal to save that we get 10 is greater than or equal to 10. now as far as if else goes if I change y back to 5 this right here this block of code is not going to run but we might want something to happen if this is false so if this is true this line will run then we can add an else if we want and say let me just just copy this and I’ll say is not equal 2y so if I save that now we’re going to get 10 is not equal to 5. so the else is going to run because this expression is false now we talked a little bit about we talked quite a bit about scope in in the last section but I just wanted to remind you that blocks like if statements have their own scope so if I put it doesn’t really matter what I put in here I’ll just say if X is not equal to y and then I just want to show you in here if I were to create a variable like let’s do Z and set that to 20 and let’s say console log and let’s see X I’ll just say I don’t know we’ll just say Z is 20. it doesn’t really matter what I want to show you here if I save that we get 20 is 20. but if I were to try to access that Z variable I can’t do that Z is not defined and that’s because I use const if I use let here to Define Z I get the same thing if I use VAR it actually works because VAR is not Block Level scoped it’s function scoped like it you can’t use if I were to say VAR Z in a function I can’t use it outside of that in the global scope but with other blocks like loops and if statements it’s not scoped okay so and that’s it’s not a good thing that this is not scoped because then someone might want to access that Z variable somewhere else and they’ll be able to so that’s why Latin cons to are actually created was to keep Block Level scoping now the next thing I want to show you is some shorthands that we could use I don’t really do this and and recommend it but it is possible so let’s take this right here this if statement and let’s just say shorthand if so paste that in and I’m not talking about the ternary operator we’ll get to that later but I can actually get rid of the curly braces here so that is perfectly valid JavaScript if I save that we get 10 is greater than or equal to 5. all right and then if I wanted to use an else I could after the semicolon do else and without parentheses I’m sorry without curly braces we’ll say I don’t know it doesn’t matter we’ll say this is false and save that and if I change let’s say y to 50 and save that you can see this is false now this this looks cluttered to me I don’t like it I I would use parentheses but everyone has their own preference but I just want to show you that if you have multiple lines like right here we just had a console log if this was true you can do this with multiple Lines by using a comma so let’s say I also want to log let’s say console.log this this is true and if I save that you’ll see I’m not getting any errors if I change this back y back to 5 and I save it’s going to run both this line right here and this line right here this is this it’s true this is true so you can do this but I really don’t like the syntax and wouldn’t suggest it all right so that’s it for just the basics of of um if statements in the next video I want to get into else if as well as nesting okay in the last video we looked at if statements and if else where we said if something is true do something else do something else now you might have situations where you have multiple conditions that you want to test and do and run some block of code based on these multiple conditions and that’s where else if comes in so let’s make this a little bit more interesting we’ll create a date so we’ve already looked at the date object and I’m going to set it to a specific date let’s do 10 uh we’ll do 10 30 22 and then I want to put the time so eight we’ll do eight o’clock so eight zero and zero and remember you can pass a string in here if you want doesn’t have to be these um these arguments and then I want to get the hour because that’s what I want to test so I’ll say const hour and then on the date object we’ll run the get hours method and if we console log that so console log our then we’re going to get eight right because I set it to eight if you if you don’t pass anything in here it’s going to give you your current hour so mine would be 10. but we’re going to keep it at eight so we’re all on the same page and then let’s do an if statement here so we’re going to say if the hour is less than 12. all right so if the hour is less than 12 then let’s do a console log of good morning all right because it’s less than 12. now I could do else here so if I do else we could do console log and let’s say good night and if I run this I’m going to see good morning because it’s 8 right now what if I want to say good afternoon if it’s at a certain time in that case I would do an else if so I’m going to go where this else is where this uh this first ending curly braces and just put that on the next line and then say else space f and then open up a set of curly braces and we could put this here and let’s say if the if the um what is it our is less than 18 then let’s say console log and we’ll say good afternoon all right so basically if it’s less than 6 p.m it says good afternoon now we’re getting good morning even though it is less than 18 right we’re at eight but this ran first so it’s going to first look at this if the hour is less than 12 which ours is then this is going to run and it’s not going to do anything further if the if the time is let’s say 13 and I save now we’re going to see good afternoon because this doesn’t pass the first one right so it’s going to say else if the hour is less than 18 which it is it’s 13 so now that’s going to run if I change that so that this is also false so if this is false and this is false if like if we say 19 then the else the final else is going to run okay so that is the else if now we can also nest if statements let’s say nested if so I’m going to say if let’s say our is less than 12 and actually you know what we’ll just let’s just copy this because I’m doing kind of the same thing here but I want to show you how we can Nest this to get even more options so let’s say if the hour is equal to six if it’s 6 a.m then we want to console log wake up so we know that in here it’s going to be this this code is going to run if the hour is less than 12. obviously 6 is less than 12. so what I’ll do is in here I’ll Nest another if statement and we’ll say if the hour is equal to 6. then let’s console log let’s say wake up okay so that’s how we can nest and maybe maybe at night time let’s go down here and let’s Nest another if statement okay and we’ll say if the hour if the hour is greater than or equal to 20 then we should be sleeping so say console log and we’ll just put uh a bunch of Z’s in here all right so let’s save that and we’re still going to see good night because we’re at 19 right now if I were to put the hour to six and save then we’re going to see wake up if I put the hour to uh and we’re going to see good morning if I put the hour to let’s say 21 we should be asleep so now we see good night and we see the Z’s so that’s nested if and you can Nest as many levels as you want you could go in here and put another if statement but that’s when you when you get to that level you might want to think about something like a switch which I’ll talk about in the next video now another thing we can do is have multiple conditions in a single if statement so for instance let’s say if the hour we’ll say if the hour is greater than or equal to 7 but let’s say I will also want to test if it’s less than 15. in that case I could put a double Ampersand and that’s going to be the and operator so I could say and if the hour is less than 15. so let’s say that’s the work day so I’ll just do console log and say it it is work time all right so if I save that I don’t see it because right now the hour is at 21 but let’s set it to we’ll say 9 A.M and we’re going to see it is work time now this is just one operator the and we could also do or so maybe we want to say if the hour is let’s say equal to 6 or which is going to be the double pipe characters or the hour is equal to 20. then let’s say that’s the time we brush our teeth so we’ll say brush your teeth save that now if we put the hour at either 6 or 20 so at 6 we’re going to see wake up and brush your teeth okay the wake up is coming from right here and the brush your teeth is coming from here because the hour is 6 or 20. okay so that’s or and then this one is if the hour is greater than or equal to 7 and the hour is less than 15. all right so in the next video I’m going to show you another way that we can evaluate expressions and do certain things depending on the result with something called a switch all right so now we’re going to get into switches which is another way to evaluate expressions and values so let’s go ahead and create a new date just like we did in the last video so I’ll say new date and let’s just do 2022 yeah we’ll just do uh arguments so 2022 one so that’s the month and then whatever 10 and we’ll do eight zero zero so it’s eight o’clock and then I’m gonna get the month so let’s say const month equals get month D I’m sorry D dot get month and then let’s check that out so month and save and we get one so we’re in January all right now I’m gonna create a switch that takes in month and evaluates it so basically we we look at month and we can create different cases for the value so for instance the case of it being one so this is the syntax case then the value and then a colon and then this is the block of code we would run so I’m just going to do console log and we’ll say it is January and then once we’re done in this case we want to write a break statement so we just say break which is kind of like a return it just breaks out of this case and then we’ll do case two colon and do a console log here and say it is February and break and we’ll do one more case three and console log and say it is oops it is March okay now if it doesn’t match any of these what you want to do is have a default so whatever you put in this default will happen if it doesn’t match any one of those so I’ll say it is not January February or March and we don’t need to put a break on the default so I’m going to save this and you see we get it is January now if I come up here and I change the month to two it says this is February if I change it to three it is March and if I change it to four or anything else it’s going to say it is not January February or March all right but I’m just going to put it back to January so I mean switches are most commonly used with immediate values meaning it’s we’re checking the month directly you can use it with ranges though like we did with the hours in the last video so for example we could do switch and then what we would do in here is pass in true and then we could say case and say our actually we didn’t Define our yet didn’t did we so let’s go up here and let’s just do what we did in the last video we’ll say hour equals D dot get hours and then we’ll come back down here and let’s say case hour is less than 12. and then we’ll console log here good morning and then break and then we’ll do another case and this one will be our is less than 18. and we’ll console log good afternoon and then break and finally we’ll do case hour actually we’ll just do the default and for the default we’ll do good night because obviously it’s not going to match anything else so if I save that we see good morning if I change the time because right now it’s the time is eight if I change it to uh let’s see 13 and save we’re going to get good afternoon and if I change it to anything above 18 like 19 it’s going to say good night so we can do it like this as far as ranges so those are switch statements you don’t see them they’re not as common as if statements but if you have something where you have like you know five six seven plus else if I think a switch is uh that’s a good use case for a switch all right you see them in like reducer functions and stuff like that when it comes to like front-end Frameworks and State Management and all that so those are switches in the next video we’re going to do a little challenge all right guys so now that you know how to deal with functions and conditionals we’re going to do a little challenge so let me just open this up here so the calculator challenge basically what I want you to do is create a function called calculator that takes in three parameters num1 num2 and then an operator and the operator can be plus minus multiplication or Division and the function should return the result of the calculation so if anything other than the four operators are passed in then the function should return an error message like invalid operator so as an example if we pass in 5 2 and plus we should get 7 5 2 minus three five two asterisk 10 and 5 2 2.5 and then if we pass in anything else that’s not one of these four operators you should get an error message you can return it or console log it or both as a hint you can use an if statement for the operator but this is also a good example for using a switch statement so it’s really up to you or you could do both so go ahead and pause the video try it out and then come back so what I’m going to do is use a switch so let’s create our function first it takes in num1 num1 num2 and operator and then I’m going to just create a variable called result and then we’ll run a switch on the operator and for the first case we’re going to look at see if a plus sign is passed in and this should have quotes around it because it’s a string if that’s the case literally then we’re going to set the results to num1 plus num2 and then we’re going to break all right and then what I’ll do is copy this down we want four of these because we have four operators to test so this one will be minus minus and then this one will be multiplication make sure that you change both here and here all right and then what I’ll do is for the default we’ll set the result because obviously it’s not going to be any of those operators so I’ll say invalid operator and then outside of the switch I’m going to first console log the result and I’m also going to just return the result all right and that should do it so now to test it out we’ll come down here and let’s do calculator and let’s pass in we’ll just use the example five two so we’ll say five two and then we’re going to pass in plus as a string we’ll save that we get seven if we do a minus sign we get three if we do an asterisk we get 10 and if we do a slash we get 2.5 and if I do anything else like an ampersand then we get invalid operator all right so that is the result that we’re looking for now if you used an if statement if you used elseif or whatever that’s absolutely fine as long as you get the same result so in this video we’re going to look at truthy and falsy values this is something for you to it’s really important for you to understand so try and remember these at least the falsy values because anything that is not falsy is going to be truthy and what I mean by that is if you have something you pass into an if statement that’s not something equal to or is something greater than maybe you had just have a string like an email so we’ll say test at test.com and then I pass that in here so I want to evaluate email and then I’ll just console log here you passed in in an email and if I save that you’ll see that that runs so this was evaluated to true or I should say coerce to true if you remember we talked about about type coercion where JavaScript implicitly changes the type so when you pass something into an if statement it’s always going to be coerced into a Boolean okay and we can even do a console log here and say Boolean and pass in email and you’ll see we get true the reason for this is that a string with anything in it is a truthy value okay so it’s always going to result to true so what I want to do is paste in that will do the falsy values first so let’s uh we can just just get rid of this and I’m going to paste these in so there’s six falsy values and what I’m going to do is set a variable let’s say const x and I’m going to set it to the first one which is false and I’m going to do two things I’m going to pass it into Boolean to see what it evaluates to and then I’m gonna I’m sorry that should be X and then I’m going to do an if statement so I’ll say if x and then we’ll say uh console log this is we’ll say this is truthy if this is true right and then let’s say else then we’ll console log this is falsy if I save that we’re going to get this is falsy and false because obviously false which is already a Boolean is going to be a Boolean false now zero if I pass in 0 to X we get the same result because if we pass zero into an if statement that’s a falsy value so we’re going to get false for that if we pass in an empty string that’s also a falsy value that’s why a lot of times like with web forms when you’re doing validation you’ll check to see if the value is there or not so in in it’s passed in as an empty string if it’s submitted as an empty web form or an empty input all right so an empty string null is also going to be falsy undefined is going to be falsy and then Nan are not a number is also going to be falsy now anything that is not falsy is going to be truthy so anything other than these six values right here but there are some things that are a little confusing that you might think are falsy and even even developers after like a year still forget that these are falsy some of these so I’m going to paste in some of these truthy values like I said everything else is not falsy but let’s try some of these so obviously true is going to be truthy right if we do zero but within a string of course that’s truthy anything in a string is truthy even a space if I put a space here that’s truthy but if it has nothing then that’s going to be falsy all right if I put false in a string that’s truthy because that’s not an actual Boolean it’s a string with something in it it doesn’t matter what it is as long as it’s something another thing that can be confusing is an empty array if I do that that’s truthy you might think if we say if and then an empty array you might think that that’s going to be falsy because there’s nothing in it but it’s still an array if you want to get the the length I’m sorry if you want to check to see if there’s something in an array then you want to check the length same thing goes with objects if we have just an empty object that’s also truthy if we have a function that has nothing in it that’s going to be truthy as well so this is really important for you to remember that it’s going to be true unless it’s one of these things right here now let’s talk about some caveats so I’m going to say truthy and falsi caveats I was going to do this in a separate video but we’re only at four minutes and something so let’s say let’s say we have a web form that’s asking how many children we have and I’ll create a variable to represent that so I’ll say Khan’s children equals two let’s say that’s what we passed in and then we want to validate the form so we’re saying if children then whoops then we’ll do something let’s just say a console log with backticks and we’ll say you have whatever number children and then else then we want to tell them to enter their children right the number of children so we’ll console log and say please enter number of children okay um and this is something you commonly see in web forms if a field is required so I’m going to save that we get you have two children right they passed in two pass in one you have one children now what do you think is going to happen if we have no children and we choose zero let’s say it’s a select field and we select zero well it says please enter number of children or I have no children so I’m selecting zero the reason it’s doing this is because zero is being evaluated here and zero is a falsy value so you can run into some issues with this I’ve actually seen this same issue over and over so a solution here one thing you could do is say is children not equal to undefined if I do that now it says you have zero children another thing I could do is run children through it uh not is Nan so is Nan is is not a number and what I’m saying here is is it not not a number if I save that that works as well you have zero children if I put in three that’s going to work as well so that’s another solution you could do um but yeah you just want to make sure you know what you whatever you’re passing in make sure you know what that coerces or what that evaluates to now another caveat that we see is checking for empty arrays so maybe you have an array of blog posts and if there are no posts you want to say like no post to show or something like that so let me just show you if we do const yeah we’ll just call this posts and we’ll set that to an array and we’ll say post one and post two right and then we’ll console uh sorry we want to do an if statement so if we say if posts then I’m just going to console log here list posts else then we’ll console log no pose if I save that it says list posts so I mean in real life you’d probably list your posts in the Dom which will you know we’re going to get to soon but if you have no posts and save it still says less post it doesn’t say no posts I will say no posts to list it doesn’t say that because an empty array is truthy right if we go up here an empty array is a truthy value so that’s going to evaluate to true so again know what you’re passing in so what you could do here remember we have a length property on arrays you can see that the length is zero if I add something in here then it’s one okay one two without whatever however many is in there so what you could do is say if post dot length is greater than zero now if I do that it says no post to list if I go in there and I add in post one and save now we get list posts so if you want to check for an empty array you want to do it like this now with objects let’s say check checking for empty objects so we’ll say const and I don’t know just say user equals and let’s set it to say name and Brad and then we want to check say if user then console log and we’ll just say list user else then we’ll console log no user all right so if I save that we’re going to get list user now if I if I empty the properties and it’s just an empty object It also says list user so you might want to check to see if there’s anything in the object and doing it like this is not going to work because this is a truthy value now we can’t use length directly on an object so if I if I were to try to console log user dot length you can see it gives me undefined so we can’t use length what you would do I mean there’s a few ways you could do this but one of the most common things to do is to use object dot keys and we looked at this in a past section if we say object dot keys and we pass in our user that will give us an array of the keys right so then since that’s an array then we can call length on it and we can say if that is greater than zero or you might want to say if it’s equal to zero then you would do this you know you might do it the opposite way around so let’s save that and now we get no user if there’s nothing in here if I add in a name and save now it says list user now another thing that can be confusing is using Lucy quality which is the double equal sign and this is one of the reasons that I I just about always use a triple equal sign so if we were to do a console log and say false double equals zero okay so we’re comparing false to zero and we’re getting true and the reason for that is because 0 is a falsy value and obviously so is false so if I were to do let’s say an empty string equals zero again I get true if I do no equal to undefined I get true so there’s many cases if you’re trying to compare these you’re not going to want true so that’s where the strict equality comes in if we add another equal sign to all of these oops then we’re going to get false for all of them because this will check the type as well okay um so again I always use triple equals but everyone has their own preference so those are some of the caveats that that you might run into when you’re dealing with true truthy and false values I don’t know if caveat’s the right word but some some areas of confusion so hopefully that clears that confusion up all right so in this video we’re going to get more familiar with the logical operators especially the double Ampersand and the double pipes which are the and and or logical operators so first thing I want to do is just do a console log here with a couple Expressions let’s say if 10 we’ll say if 10 is greater than 20 which we know is false double Ampersand which is and and let’s say 30 is greater than 15 which is true if I save this we’re going to get false because when we use the double Ampersand in this in this way all everything here has to be true okay because it’s this this expression and this expression and we can add more in here as well like we’ll say uh let’s say 40 is greater than 30 which is true if I save this is still going to be false I could add a million more true things it’s still going to be false because this first one is not true if I change that to 10 is less than 20 which is true which makes them all true then we get true for this whole thing now when it comes to the or operator let’s say if 10 is let’s say 10 is greater than 20 which is false and then I’ll use the double pipes which is the or and then 30 is greater than 15 which is true if I save that we get true even though the first one is false one of these is true which is what matters it’s one or the other so if I make both of these Falls like say 30 is less than 15 then we get false okay so with the double Ampersand they all have to be true with the or just one of them has to be true now you’re going to see these used in in other ways as well so I’m going to create a variable here and actually let me just put a comment because we’re going to look at doubling ever since and this will return so if we add a bunch of values and we use this operator this will return the first falsy value or the last value so let me show you what I mean if I do a console log a and then I’m going to set here a equals let’s say 20 uh 10 double Ampersand 20. if I save that I get 20. so if we read this again we’ll return the first falsely value or the last value we have two values here 10 and 20 none of them are falsy so it’s giving us the last if we do another double Ampersand and we do 30 that’s going to give us 30 because again no falsy values so it gives us the last if I change this 20 to a zero which is falsy then we’re going to get that zero all right if I copy this down and I do before that zero let’s say an empty string which is also falsely then I’m going to get that empty string so that’s how that works now you might be saying well this doesn’t look you know when would I do this when would I use this so to give you uh kind of a a practical example let’s say we have some posts usually it’s an array of objects but let’s just say there there’s some strings post one pose two okay and let’s say we’re getting those from a database or from an API and we want to show them on the page right let’s say we want to show the first post so I’m gonna I’m just going to do a console log you’d probably show this on in the page but for now let’s just do a console log of posts and let’s get the first one all right so I get post one right I’m getting the zero index of this array now if this PO if this was empty like let’s say there’s no posts in the database or whatever and then I go to display this or in this case log it I get undefined so if we were displaying this on a web page you’re not going to want to display undefined so what we could do is before that is add a condition of let’s say posts dot length and let’s say if that is greater than zero then we’re going to use the double Ampersand here now if I save that it’s not going to show this if this if there is no post there right if the posts are empty then it’s not going to show it if I add in here post one post two and then I save now I see post one so this is a very common way of of using this operator we do this a lot in react in the front-end framework react when we’re working in jsx and we’re taking stuff from an API or wherever the the data is coming from and we want to we don’t want to display something that’s not there you want to check first to see if it’s there so if this is false it’s going to show it’s going to return the last value now as far as the double pipe the or operator the way this works is it will return the first truthy value or the last value so let’s say let B and then we’ll console log B and let’s set b equal to 10 and then we’ll use the double pipes and then 20. so in that case it gives us 10 because again it will return the first truthy value or the last value both of these are truthy so it’s going to return the first one if I were to set b equal to let’s say 0 which is falsy and then put 20 on this side then it’s going to return 20 because it will return the first truthy or the last value if I do let’s say b equals and then 0 and then null and then let’s do an empty string which are all falsy it’s going to return the last okay if I put on undefined which is also falsy then it’s going to return that which is the last now as far as other operators we have the What’s called the nullish coalescing operator which is the double question mark it’s not used as much but it is available so the way this work works is it Returns the right side operand so whatever’s on the right side when the left is either null or undefined so let’s say let’s let’s see and console log C and then we’ll do C equals and then 10. the knowledge coalescing operator 20 and it’s going to give me 10. so again it Returns the right side when the left is null or undefined 10 is not null or undefined so it’s going to return 20 the right side if we were to set the left side to either null or undefined then the right side gets returned you can see we get 20. let’s say 30 and let’s do undefined we get 30. now it’s not falsy on this side then it Returns the right it’s just null or undefined so if I do 0 here it’s going to return the zero it’s not looking for just falsy it’s looking for on null are undefined if I do an empty string then it’s going to return that empty string because it’s not null or undefined all right so the there’ll be places where you run into this stuff and keep this you know keep keep the documentation and the code that we write here so that you can look back at it if you need to all right now in the next video we’re going to look at logical assignment all right so now we’re going to look at logical assignment operators and in the last video we looked at logical operators like and and or but we also have assignment operators which look like this so we have the or equals the and equals and then we also have something called the nullish coalescing operator now some of these might not make a lot of sense to you right now because you you can’t really understand where you use them I think that the or the or assignment operator is the most useful here so basically the long version of this I’ll just do an if statement here and let’s define let a and we’re going to set that to any falsy value so we’ll just we’ll just set it to false all right and then in here I’m going to say if not a meaning if it is a falsy value right because it was saying not then let’s set a to whatever let’s say 20 or let’s say 10. okay so this can be useful because you want to check to see if a variable is false or null or anything falsy and if it is then you want to set that to a specific value so the shorthand way of doing this using just the or operator and like we did in the last video we could say a equals and then a or 10. so what we’re saying here is just the same thing we’re doing here if a is falsy then set the right hand side so as you can see it says assigns the right side value which is this only if the left is a falsy value which right now is set to false all right so if I comment this out and I run the if statement all we need to log it you’ll see we get 10. if I comment this out and then I run this it does the same thing we get 10. well there’s a shorter way of doing this using the assignment operator so instead of doing that I can just simply say a and then or equals and then 10. if I comment this out we get the same thing all right if I set this this a to null it’s going to it’s going to get set to 10. if I set it to 0 10 so anything falsy if I set a to 20 then it’s going to stay at 20. this isn’t going to set set it because it’s not a falsy value all right so that that can be pretty useful now with the and assign operator it will assign the right side value only if the left is a truthy value so you probably wouldn’t use this one as much but let me give you the the long version of what we’re doing so we’ll set a variable here let’s say let B and we’ll set that to 20 and we’re going to say if B so if it’s truthy then we’re going to set B to something something else let’s say well you know what we’ll do is we’ll set this one to 10. all right and then let’s console log B and it’s going to get set to 20 because B is truthy again this will assign the right side value only if the left is truthy so using a logical operator we would do B equals B and then the and operator and then 20. okay so if I save that we get 20. this is the same as this and then to make it even shorter we could use the assignment operator so we could say B double Ampersand equals 20. okay same thing but again this probably isn’t you’re not going to use this as much as this because this makes more sense right you’re checking to see if it’s if it’s falsy then you’re setting it here you’re checking to see if it’s truthy and then you’re setting it and there are cases where you could use that now the this right here the double question mark equal this is the nullish coalescing operator so this will assign the right side value only if the left is null or undefined with the or it’s if the left is um is falsy at all so zero an empty string no undefined false so it’s checking for falsy this will only check for null or undefined which you might want you know you might not want to check for zero or an empty string or whatever so the long version of this would be if let’s set up another variable here called C so you’ll say let’s C equals and we’ll set it to null and then we’re going to say if C is equal to null or c is equal to undefined then we want to set C to whatever we’ll say 20. okay and if we come down here we console log C we’re going to get 20 because C is null if we set C to undefined it’s going to be 20. if we set C to false which is a falsy value but it’s not null or undefined then we’re going to it’s going to stay false okay and then the shorter version for that would be C equals and then we want to say C and then the nullish coalescing operator and then whatever 20. so that’s still false if I change this to null then that’s going to change to 20. and then the shorter version of that would be to use the assignment operator like that okay so hopefully that makes sense and it’ll probably be a while before you use something like this in an actual project but I we’re going over you know logic and control and and conditionals so in in different operators so I wanted to include logical operators as well as these logical assignment operators all right so now we’re going to look at something called the ternary operator which you’re probably going to use all the time and it’s a shorter way for writing a conditional so what I’m going to do here first is do a just a basic condition using an if statement and then I’ll show you how to do it with uh with a ternary operator so let’s say using and if statement so I’m going to say if the age variable is greater than or let’s say greater than or equal to 18. then let’s do a console log and we’ll say you can vote else then we’ll console log and say you you can not vote all right so pretty simple if I run that we get you can vote because I set age to 19. if I set it to 13 and say if we get you cannot vote so I want to show you how to write this in a one line one liner using a ternary operator so let’s say using a ternary operator now this syntax is actually really simple but it can it does confuse a lot of people when they’re they’re first learning it so I’ll try to explain it the best I can so there’s basically three parts to it the first is going to be the condition so in this case we’re testing to see if age is greater than or equal to 18 okay so that’s what we want to evaluate then we want to use the ternary operator which is simply a question mark and you can think of this as the if because what comes after this is what you want to happen if this is true right so in this case we want a console log and we’re going to say you can vote right and then for the else is that’s going to be represented with a colon all right so else then let’s do a console log and we’ll say U can not vote if I save that we’re going to get the same result as this all right so three parts we have where we evaluate the condition we have what will happen if that’s true and then what will happen if that’s false so it’s really simple and if I change the age to 20 then both of those should say you can vote now in a lot of cases you’re going to set a value based on a condition you’re going to set a variable value based on it so let’s put a comment here we’ll say assigning a conditional value to a variable using the ternary operator so let’s say we have a variable we’ll call it can vote and we want this to contain we could set it to true well yeah we’ll set it to we’ll make it a Boolean but we want that to be true if the user is 18 or over and we want to be false if they’re under so first thing we want to put here is the condition so let’s say if the age is greater than or equal to 18 then we want our ternary and then next is what we want to put what we want to store in that variable so we could store a string that says you can vote but I’m just going to put a true here because I want that to contain a Boolean all right and then else then we want it to contain false so let’s go ahead and console log can vote and if I save that we get true and then if I change that to let’s say 17 then we get false and it doesn’t have to be a Boolean that you put here you could you could also let’s make this canvo 2. you could have a string that says you can vote and then if it’s if that condition doesn’t pass then we’ll have a string that says you can not vote okay so now if I console log can vote 2. then it has this string you cannot vote that string has been assigned to this variable so you’ll see you’ll see this a lot in all areas of JavaScript now we can also have multiple statements so if we want to do multiple things if we want to do multiple things within the if and the else we can do that as well so first thing I’m going to do is show you the long version of of what I want to accomplish with the ternary so I’m going to create a variable called auth that represents if we’re logged in or not or if we’re authenticated and then I’m going to just create a variable called redirect and I want to set that to something different based on if this is true or false so I’m going to go ahead and just do an if statement first and we’re going to say if off so that’s going to be either true or false if we’re authenticated then I want to do an alert and we’ll say welcome to the dashboard right and then I want to set that redirect variable I want to set that to slash dashboard else then we’re going to alert and let’s say access denied because we’re not logged in and then I want to set that redirect variable to slash login all right and then we’ll just do a console log of the redirect variable here so if I save that we see welcome to the dashboard alert because auth is true so this is going to run and then when I click OK this is going to continue and it’s going to set dashboard into the redirect variable right if I set this to false now if I save we get access denied and we get login put into the redirect variable so we can severely cut down this code using the ternary operator so I’m going to show you how to do that so let me just comment this out and then we’re going to go down here and say const redirect and we want to conditionally set this right so we’re going to evaluate off we’re going to use the well actually I can’t let me just comment that out too so we’re going to evaluate auth whether that’s true or false and if it’s true I want to I want to do two things I want to alert and set the variable so I’m going to put parentheses here and then else I’m also going to do an alert and set the variable so I’m going to put parentheses here so the first thing I want to do if it’s true is my alert so I’ll say alert welcome so I can’t type welcome to the dashboard okay and then I’m going to put a comma after the alert because I want to do multiple things here and I’m going to put in here my string that I want to set which is going to be slash dashboard so that’s the true if it’s false then in here I’m going to do an alert and I’m going to say access denied and then I’m going to put a comma after alert and what I want to set the variable to is slash login so let’s go ahead and save that and you’ll see since auth is false we’re getting an alert that says access denied and when I console log redirect it has login if I change this to true and save welcome to the dashboard and then we have slash dashboard so this does the same thing as this but shorter and its preference when and where you want to use the ternary so let’s see um the last thing I want to show you is that we can use a shorthand we can use the the and operator as a shorthand if there’s no else right because not every if statement not every conditional has an else you might just want to do one thing so let’s say for instance if I come down here um let’s say we want to evaluate off whether that’s true or false and if that’s true then I want to do a console log and just say welcome to the dashboard in my console else then nothing I don’t want to do anything else so in this case if we’re using the ternary oops I’m sorry that should be a colon if we’re using the ternary we need to have an else I can’t just do this if I do that I’m going to get a syntax error so I have to have an ounce but if I don’t want to anything to happen I could do this I could say no right so now it’s going to let me just comment this out because I don’t want to keep getting that alert okay so we see welcome to the dashboard because this is true if this is false then we’re not going to see anything because I just set this to null but a shorthand to this if you don’t want to do else null is to use the double ampersamp the and operator so I can say auth and then double Ampersand and then console.log and then welcome to the dashboard and then I’ll comment this line out and save doesn’t do anything right now but if I set this to true then we see welcome to the dashboard so this this comes in handy a lot I use this a lot when using react with jsx if you don’t know what that is don’t worry about it but it’s it’s very convenient and very compact all right so that is the ternary operator hopefully you understand this so let’s move on to the next video all right guys so most of the stuff that we’ve done has been pretty basic aside from a few things like scope and execution contacts Etc now we’re going to step it up a little bit and learn about loops and iteration as well as some high order array methods which are methods that we can use on arrays that take in a function as an argument and we can use these methods to Loop through or iterate through arrays and do specific operations on each element and these These are methods that you’ll be using all the time in JavaScript so this section is is really important and after this in the next section we’re finally going to get into you know being able to show stuff in the browser and get into the document object model events and all that stuff and now you’ll be more comfortable doing that where now you know the fundamentals of JavaScript syntax all right so let’s get started with loops all right so we’re going to be looking at Loops in the next few videos and a loop is a control structure that provides a way to do iteration in programming and iteration is a process where you repeat something over and over again until a certain condition is met or until a certain condition is not met and this can help automate tasks and so on and there’s many different kinds of Loops in programming what we’re going to look at right now is one of the more common ones and this is a for Loop all right so this is the syntax right here this is an actual code but this is how it’s formatted and I’ll create a real for Loop in a second but just to show you what goes in here so we have four and then we have some parentheses and three different Expressions that are separated by semicolons which are a little weird you probably mess up and use commas but it’s going to be semicolons here now the initial expression is where we initialize a variable or counter to use within the loop and then the condition expression is going to be the condition that the loop will continue to run as long as that condition is met so as long as this is true it’s going to run once it’s false then the loop will no longer run and then we have the increment expression which is going to be executed after each iteration of the loop okay every time it Loops that’s called an iteration it’s going to run after every one of those and it usually increments the variable because if you keep your your variable or your counter the same you’re going to have an infinite Loop you need to increment that and then the statement is just going to be your code executed and you need to use curly braces like you would a functioned to execute a code block all right so let’s just comment that out because that will break our script and then we’re going to come down here and let’s create a for Loop okay so just like a function parentheses and curly braces then we want our initial expression which I’m going to say let I I is very common very common variable to use in Loops so we’ll say set that to zero then we want to put our semicolon because these three expressions are separated with a semicolon the condition that I want this loot the code to run as long as this is met is going to be as long as I is less than or equal to 10. okay so as long as that condition is met this Loop will run and then lastly here I’m going to put in the increment expression which will be I plus plus so we learned about that in the past video this will just increment by one all right so basically it starts at zero it’s going to go through then it’s going to increment by one so I will then be equal to one it’s going to go through again it’s going to run whatever code we put in here every time up until this is no longer true so let’s just do a console log in here I’ll just put a string we’ll say number and then I’m just going to concatenate on the I variable and we’ll save that and run it and you’ll see we’re going to get number zero all the way up to number 10. now it stops here because it it no longer meets this condition it goes through the this last time and says well now I is is doesn’t match this it’s not less than or equal to 10 so we’re not going to run this again okay if I change this to 11 and save then it’s going to get it’s going to go up to 11. if I change this initialization here from 0 to let’s say five and then I save it then it’s going to start at 5. all right uh and it’s gonna it’s gonna just increment by one each time if I wanted to I could do something like I equals let’s say I plus two if I save that then we get 5 it’s going to skip six seven skip eight nine so it’s basically incrementing by two but most commonly you’re gonna see this and let’s just set that back to zero and let’s set this back to 10. now you might be asking why I’m using let because you know that I use const unless I I can’t so in this case if I were to use const here and save that I get assignment to constant variable because remember we’re initializing I here is zero but it’s going to get changed in every iteration so we can’t have this as a constant we use let now I also showed you in a past video that we have block scope here right so if I come outside of the loop and I console log I I’m going to get an error unless I use VAR because remember VAR is not block scoped so if I do that then I’m going to get 11 but I would highly recommend that you use let when you use when you you know create for Loops now you’re going to have situations where you check to see if I is is equal to something or greater than or less than something and maybe do something else based on that so for instance if I want to say put in an if statement here and if I say if I is equal to 7 and then let’s say I just want to output and say 7 is my lucky number so I want to Output that if it’s seven and then if I didn’t want number seven to show I just want this 7 is my lucky number then I could put an else and then move this into here so now if I save that it’s not going to show number seven it’s just going to show 7 is my lucky number instead now there will be times where you will Nest Loops so I’m just going to show you that real quick and it can get a little confusing when you have you know multiple levels of Loops but just to give you a simple example let’s do the same thing here where we set I but let’s set it to 1 and say as long as I is less than or equal to 10 and then I plus plus we want to increment by one and we’ll do the same kind of console log thing here but still within this Loop I’m going to open up another for Loop now when you do this you want to make sure you don’t use I again you want to use something different and it’s common to use J so we’ll say let J equals one I’m going to do the same condition here I’ll say as long as I is less than or equal to 10 and I’m sorry j you don’t want to do that you want to do J yeah or else you’re gonna get an infinite infinite Loop and then let’s increment J and then in here what I want to do is show I want this to do the console log like we already have here starting at one and under each number here I want to show that number times one that number times two all the way up to 10 that’s what this represents right here so let’s console log a string that actually says like one times one equals one in one times two equals two Etc so we’ll use a template string here and I’ll say I and then we’ll just put a asterisk here times J and then an equal sign and then the actual expression to to be evaluated is going to be I times J so if I save that what we’re going to see is the well actually let me comment this one out we’re going to see number one and then under it one times ever all the way up to 10 then 2 and then two times all the way up to 10 and that’s because of this if I change this 10 to a 5 then it’s going to show 1 times 1 all the way up to five for each of these all right and we could do as many as we want if I put this first one to a hundred it’s going to show me all the way up to 100 and it’s very fast so that’s a nested Loop so let me actually should say nested loops and what I want to show you now is how we can use a for Loop to Loop through an array now I don’t do this very much because there’s a for each method that we can use it’s a high order array method we’re going to get into in a couple videos from now that we can use to Loop through arrays and do the same thing but it is possible to use a for loop as well so let’s say we have names or whatever anything you want to put into an array I’m just going to put a bunch of strings here names and we’ll say John and I don’t know Tim okay so we have some names now to Loop through this I’m going to say four I’m going to initialize my variable so we’ll set let I set that to zero and then here for a condition we can say as long as I is less than is less than the length of the array so we’ll say names dot length and then we need to increment I so we’ll say I plus plus and then within here we can access each one by its index I is now going to represent its Index right because it starts at zero so this will be zero then that’ll be one two three and four so let’s just console log each one we’ll say names and then we’ll put the I as the index in here and I’ll save that and now you see it’s going to Loop through and it’s going to show each name now those of you that are just learning this for the first time I want you to try a little challenge so pick a name here let’s say Sarah and instead of just printing Sarah have it print Sarah is the best so if you want to pause the video and try that out you can do that now but basically all we have to do there’s a few ways we could do it if we know the index which we do we know Sarah is in the zero index so we could just say if I is equal I’m sorry the two index if I is equal to 2 then let’s do a console log and we’ll just say names I which is just going to say Sarah and then we’ll concatenate onto that a string and say is the best else then we just wanted to log the name so I’ll put this up here oops whoops and save and now it says Sarah is the best so you could do it like that you could test for the value so we could say if names and then I if that is equal to and then the value let’s say we want to do John is the best then we can check for John and now you see it says John is the best all right so that’s pretty much the basics of for Loops now you’re probably going to have times where you run into something called an infinite Loop that’s a loop that just keeps going and never stops until it crashes your browser in this case and that can happen if you mess up the condition or if you if you forget to increment if you want to test it I wouldn’t recommend it but if you want to test it you’ll just have to most likely force close your browser but you could put Infinity here so if I did that obviously I is always going to be less than infinity that means that this is always going to run but I’m not going to do that so you probably will run into Infinite Loop set some point or another but in the next video we’re going to talk about the break and continue statements all right so now we’re going to look at the break and continue statements so this should be a pretty quick video basically what break does is it allows us to do just that break out of the loop so usually you’re going to check for a specific condition and then you’re going to break out so let’s say we’ll set I to zero let’s say as long as I is less than or equal to 20 and increment by one and then let’s say we’ll just do a console log of I if I save that you’ll see it’ll just show 0 through 20. but let’s say we want to stop once we hit 15 so I’ll just do a check here and say if I is equal to 15 then we’ll console log and let’s just let’s just say breaking and then right under that we’re going to put our break statement so just break semicolon we’ll save and now you can see once it hits 15 it’s going to break and it it just doesn’t go on any longer alright so you might have cases where once you hit a certain condition there’s no need to keep going you just break out of the loop all right now I’ll continue is a little different so with continue continue basically you can you can skip uh the rest of the code in a current iteration and then continue to the next iteration so for instance if we do the same thing here we’ll say let I equals 20 and as long as I’m sorry let I equal zero and then as long as I is less than or equal to 20 we want to increment and we’ll do the same thing just console log I let me just uh let’s comment this out here okay so we just get 0 through 20 and let’s say where a superstitious hotel and we want to skip the 13th floor so let’s say if and say I is equal to 13. then let’s do a console log and we’ll say skipping 13 which I think is crazy and then we want to just continue all right so what’s going to happen here if I save this as you’ll see it’s going to skip 13. so instead of like I could I could have the same effect if I did this if had this console log and then else had this console log but here I’m I’m just going to skip the rest of this right so whatever is going on down here it’s going to skip because of this continue so here it breaks out of the entire Loop right here it breaks out of the iteration and then continues on okay so hopefully that makes sense all right so now we’re going to look at two more types of Loops the while loop and the do while loop and these along with the for Loop are kind of like old school ways of doing iteration now that we have high order array methods we have four each and then there’s also other Loops like four in and four of which I’m going to go over as well but it still is essential that you learn these because these are like fundamentals and not just in JavaScript in just about every language so with a while loop it’s a little different because all that we put in here is the condition when we initialize and increment the variable we don’t do it within these parentheses this is just the condition so I’m going to initialize the I variable outside of the while loop and then in here I’ll put the condition say less than or equal to 20. and then I’ll console log let’s just put a string number and then concatenate that number now this can be easy to forget the increment and then have an infinite Loop because it’s not as obvious whereas a for Loop you know you have the three parts to pass in here you just have to remember to increment so let’s save that and now it’s going to print out 0 to 20. okay so that’s the syntax of a while loop now for many cases you could use either a while or a for Loop and achieve the same result as you can see it’s very similar it’s just different syntax but a common rule that many programmers follow is to use a for Loop when you know the number of times that you want the loop to run and then to use a while loop when the number of times the loop will run is unknown okay that’s not a mandatory convention or anything but that’s something a lot of people do we can also use while Loops to Loop over arrays just like we could use for Loops I’m just going to comment this one out and then let’s say const array we’ll set that to let’s say 10 20 30 40 and then in here we want our condition expression so let’s say while I is less than the array Dot length then we’re going to console log and we’ll say array we want the index to be the I variable and then this is really important you want to add your increment are you going to get an infinite Loop so if we save that now we’re going to see 10 20 30 40. so it’s printing out the values of this array if I add 50 that’ll get added as well now another thing that we can do is Nest while Loops just like we can for Loops so let’s say Nest nesting while loops and we’ll do the same thing we did before we’ll have the multiplication thing so let’s use I so we’ll say as long as I is less than or equal to Let’s do 5. and then in here we’ll just console log we’ll say number and plus whatever that I variable is and then in here I need I’m going to Nest another while loop so I need another variable right so we need to initialize another variable so I’ll use J and set that to 1. and then let’s say while and we want to say while J is less than or equal to and this is for the multiplication part so let’s do five we’ll do up to times five and then in here we’ll do our console log and we’ll make this a string where we can say I times J is equal to the expression of I times J now this is really important we need to remember to increment both J and I so let’s say J plus plus and then back outside into the parent Loop we want to do I plus plus all right so let’s go ahead and try that and now you’ll see it’s going to Loop through five right one through five actually it’s going to start at zero because of this we can set that to one so now it’s going to start at 1 and it’s going to show one times one through five then two two times one through five three four and then 5. okay so that’s how we can Nest a while loop now do while Loops are a little different because the do while loop will always run at least once even if the condition is false so the answer to the question when would I want to use a do while loop is when you always want the the block of code to run at least once even if the condition is never met so let me show you what I mean I’m going to comment this out and then let’s do let’s say do so this is the syntax we we say do no parentheses after it just just uh curly braces and then whatever we want to happen let’s say console log and number and concatenate that and then we want to increment so I plus plus and then here is where we’re going to add while and then that’s where we want to add our condition so let’s say while I is less than or equal to 20. okay and I don’t know why I open parentheses here um for curly braces we don’t want those all right so this is a do while loop so let’s run this and as you can see we get we get 1 through 20. remember this is set to 1. now like I said the thing with this is this code right here is always going to run once even if this is never true so if I were to come up here and set I to 21 that this is this condition is never met however if I save this I get number 21. so it runs this code here no matter what so that’s that’s the big difference with this if I uncomment this uh where is it this right here where it says I is less than or equal to 21 and I comment out the do while and save we get nothing right because this condition here is never met this is 21 so this is not whoops this is 21 so this is never going to run or this code is never going to run do while it’s going to run once then it’s going to check and see if it’s to run again so that’s the big difference and and you can also use break and continue statements with these Loops as well just like you can with a for Loop all right so when you go to get a job as a web developer and you go to different interviews you may be given specific programming challenges to do on the computer or on a whiteboard and it’s good practice to do challenges like this not only for job interviews but it also just sharpens your skills in general and you’ll find that most challenges have some kind of iteration involved and one of the most common ones that you’ll run across is called fizzbuzz and this has to do with loops and conditionals so I think that this is a good point in the course to do the fizzbuzz challenge and it’s not very difficult we’ve we’ve already gone over everything that you need to know so as far as instructions you need to print or log the numbers from 1 to 100 you guys know how to do that easily and you can use different types of Loops if you want you can use for a while whatever and then for multiples of three you want to print Fizz the word Fizz in a string instead of the number for multiples of three for multiples of five you want to print the word Buzz okay instead of the number and then for numbers which are multiples of both three and five you want to print Fizz Buzz okay so as far as hints go if you’ve taken the course up to this point then you know how to write a loop and output or log something for each iteration right so you can print the numbers you also know how to check for a condition with if else else if you also know how to get a remainder of a number using the modulus operator which is the percent sign and this is really all you need to know to complete this challenge I probably already told you too much now if you don’t get it don’t worry about it some people including myself are not that great with these types of challenges especially if you can’t you know do any research so try not to go and and Google fizzbuzz challenge try this on your own and see if you you can figure it out all right so let’s get to the solution now I’m going to show you I’m going to show you how to do this with a for Loop and a while loop so first thing we want to do is print or log the numbers from 1 to 100 which is very simple so we’ll say 4 and let’s initialize I with one because we’re doing one to a hundred the condition is going to be if I is less than or equal to 100 and then we want to increment I by 1. all right and now in here for now let’s just console log I so it should just print 1 to 100. so the next step is to print uh print the word Fizz for multiples of three now the way that we can figure out if it’s a multiple of three is if if the remainder is zero and we can find the remainder using the modulus operator so here let’s say if and we’ll say if whatever that the current number is on the current iteration and then modulus 3 if that is equal to zero then we know it’s a multiple of three so in that case we’re going to console log Fizz and then let’s just do else and then we’ll move that console log of the number in there so if I save that and we come up here you’ll see that three is Fizz 6 9 12 15 and so on now if it’s a multiple of five we want to print the word Buzz so what we can do is put let’s go right here and say else if or l space f and then open up a curly brace and end our curly brace and then in here we want to say if I and then again we’ll use the modulus operator but 5 this time if that’s equal to zero then we want to console log the word Buzz so let’s save that and now if we look you’ll see that 5 is Buzz right 10 is Buzz but if we look at 15 it says Fizz and that’s because 15 is a multiple of three and five and since this conditional was first then it’s going to log Fizz so for the condition of of looking for them both we can’t do that under these ones because it’s going to check those first so we have to make sure that the first one we check is is for both right so what we’ll do is instead of putting this as an if we’re going to make that an else if and then we’re gonna it will just push that over and then we’ll have our initial if statement here like that and then we can say if I modulus 3 equals zero and if I modulus 5 is equal to 0 then we want a console log Fizz Buzz alright so save that and now if we look we’ll see 3 is Fizz 5 is Buzz 6 is Fizz nine is Fizz 10 is Buzz 12 is Fizz fifteen is fizzbuzz the next one after that should be 30 is fizzbuzz next one after that should be 45 is fizzbuzz all right now a shorter way to do this since 3 times 5 is 15 that means that any uh anything that’s divisible by 15 is is also going to be divisible by both three and five so we can actually shorten this to just say I’m sorry that’s not what we want we want that to be zero but we want this to be 15. all right if I save that we should get the same result so Fizz buzz and then 15 fizzbuzz 30 fizzbuzz 45 fizzbuzz 60 say and so on all right so that’s the solution with a for Loop now a while loop is going to pretty much be the same thing we’re going to have the same conditions it’s just formatted a little different so let’s say while loop and remember with a while loop we need to set the variable outside of the loop I’m going to use J for this since we already used I and I’ll say even though I was scoped but I’ll say let J equals 1. and then we’ll say while J is less than or equal to 100 then we want to do this this block right here so I’m going to grab that paste that in now remember with a while loop it’s it can be a little hard to remember that you have to increment so make sure that you go outside of that if and you just increment I by one so I plus plus all right so let’s save that uh whoops I’m sorry that should be J so here yeah let’s change that change that to J that and that and this all right so now actually let me comment out the for Loop so that doesn’t run and we should get the same result so three Fizz six five Buzz six Fizz get to 15 we get Fizz Buzz we get to 30. we get Fizz Buzz okay so this is how we would do it with a while loop but basically the same thing it’s just a structured in a different way all right so if if you got it great if you got it and it’s it’s a slight different slightly different from mine that’s fine if you didn’t get it that’s fine as well um you know you’ll you’ll learn more as we move along all right so in this video we’re going to look at a four of loop which is a newer way to basically Loop through iterable objects like arrays or any even strings and maps and sets which we haven’t talked about yet not object literals there’s actually another loop called a four in that we’re going to look at in the next video to show you how to Loop through objects but this is a cleaner way to Loop through an array than a standard for Loop or a while loop so let me just create an array here we’ll just do items and we’ll put some random items in here let’s say Book Table chair and kite and then I want to Loop over these now if you remember with a for Loop what we would do is we would initialize a variable here set it to zero and then we would do as long as I is less than whatever that array length so items dot length and then we would increment that I variable and then if we want to access each specific item we would have to do items and pass in the the variable as the index all right now A Cleaner way to do this is with four of so instead of doing all this in here we can simply do I’m using cons but you can use let if you want but we can simply say const and then give a variable name for each individual item which I’ll just call Item and then say of items all right and then in here I don’t need to do this because we can just simply access the item variable if I save that and run it we get the same result and this is much cleaner and just much more modern looking and if we wanted to have an array with objects in it like let’s say users and we’ll set that to let’s say an array of objects and we’ll just give these a name so we’ll say name Brad and a couple more here I’ll say Kate and say Steve all right and then let’s comment this out and we’ll say four and we’ll call we’ll say for const user of users and then I’ll console log user okay so now we have all of our objects if I want to access a specific property then I would do user Dot and then whatever that property in this case name now my first choice for looping through arrays is to use the for each method which is a high order array method that you can use on that you can use directly on arrays but I think this is a better way to do it than using a standard for Loop or a while loop or a do while loop or anything like that so we can also use this to Loop over strings okay let me just put a comment up here and I’ll say Loop through arrays all right now for Strings let’s say const and we’ll just say Str and we’ll set that to let’s say hello world and then if I want to Loop over that I can simply do four and then give a variable let’s just say letter because that’s what we’re going to get is a letter and then of our string and then if we console log here letter and save then you’ll see it’s going to Loop through and it’s going to Output each letter of that string another thing you can do is Loop over Maps which we haven’t talked about yet I’ll get into this later on but just to give you a quick example we can create a map a variable called map and set it to a new map not a nap although I could use one of those but we’ll set it to a new map and then we can add key value pairs so I could do map.set and we could set let’s say name to John and then I could Set Let’s do an age so we’ll say age 30 and if I wanted to Loop through these I could do a four of so I would do cons now we can get the key and the value by putting brackets in here and just saying key value of the map and now if I console log here I’ll go ahead and log both the key and the value and now you’ll see down here both the key value pairs name John and age 30. so you can use it to to Loop over Maps as well pretty much any iterable object now there is another type of loop called for in that allows you to Loop through object with object literal values which we’ll talk about in the next video all right now there may be times where you want to actually Loop through an object’s values and we can do that with the four in Loop so let’s go ahead and create an object here I’m just going to call this color object and set that to some curly braces and then we’re going to do color one set that to a string of red and we’ll do that for a few colors let’s say color 2 is going to be blue say orange would be color three color four we’ll do green all right and we want to Loop through and get these colors so a four in Loop is very similar to a four of loop so we would just say four and then inside here we’re going to say const and we can get the key so if I do key in color object and then we console log that key we get color one through color four so we get the keys now if we want to get the value all we have to do actually we’ll just log it here is take the color object variable and then pass in here the key if I do that then you can see we get the values red blue orange and green now let’s say we want to use this with an array because we can we can use four in loops with arrays so we’ll say const and say color array and we’ll set that to an array with red green blue and let’s say yellow all right so we have this array of colors and I’m going to do this so we’ll say four and then we’ll do cons let’s say color uh not of we’re going to do an in so in the color array and then let’s console log color if I save that we’re actually going to get 0 1 2 3 instead of this so what’s happening here is it’s giving us the keys okay it’s giving us the keys which are in this case these are going to be numeric Keys 0 1 2 3. so we can still get the values of an array here but what we have to do is let’s change color let’s change that to key and then we can say color array and then just pass in the key like that if I save that and run it now you can see we’re getting the values of the array so you can also there’s so many different ways to iterate through arrays but this is most commonly going to be used if you want to get the the either the keys and or the values of an object literal so now in the next video we’re going to start to look at high order array methods which are extremely helpful and you’re going to be using them all the time within JavaScript and we’re going to start with four each all right guys so now we’re going to get into high order array methods in this particular video we’re going to look at four each but there’s a lot of these that can do different things now they all work in a similar way in that they take in a function as an argument which this is called a callback function and in that callback function we can pass in a variable for each element in that array or each item in that array now what a 4-H does is it just simply Loops through it doesn’t return anything it just Loops through as if we were using a 4 or a four of loop to just go through the array and do something specific all right so let’s go ahead and jump in here and we just want to create an array of some sort I’m going to call this socials and I’m just going to have a bunch of strings in here so Twitter let’s say LinkedIn do Facebook and let’s do Instagram all right so we just have an array of strings and this could be an array of anything and before I show you the four each I just want to console log here socials and then the Prototype chain which is double underscore Proto double underscore and I think I showed you this back when we looked at some of the simple methods like push and pop so you can see that those are here as well so any any methods or properties like length on the array are going to get shown here and you can see we have four each right here we have map map filter find reduce these are all high order array methods and they work in a similar way so basically let’s go ahead and comment that out for now basically what happens is we call the method so in this case four each and then that method is going to take in a callback function okay an anonymous function it’s not going to be named and we can do that in a few different ways we could just use the standard function syntax and then what gets passed in here if we look at this documentation page here what gets passed in you can call it element like they did here but you can call it anything it just represents each item in the array okay so here we just have ABC for us we have these strings here so you can call it I mean a common thing I’ll do is call it the singular version of the array or I’ll call it item I don’t usually use element but again you can call it whatever you want and then you have access to that in here so we can do console log item okay so this this function right here that we pass in is going to get run for every element or every item that we have in the array so in this case it’s going to get run four times and what we’re doing is just logging it to the console so if I save that and we take a look we should see these in the console all right and if you want to kind of slow it down a little bit you could go to sources and go to script okay we looked at this debugger back when we looked at execution context and the call stack but what I’m going to do is put a break point right here on the four each and then I’m going to reload the page okay so it nothing is run yet but if I come down here to the step arrow and I I hit that and then it’s going to go into the function we’re going to run the four each I’m sorry run the console log and now we get Twitter okay if I go back again it’s going to run console log again because there’s another item in the array again Facebook again Instagram and then it’s going to end because there’s no more items in the array okay so that’s kind of a step-by-step of what’s Happening let me just remove I just want to remove that break point there all right and then we’ll go back into the console now like I said you could pass in a function this way or let’s actually comment that out or you could first of all get rid of the function keyword and then add on our Arrow so this is valid but since it’s just a one line expression we can actually take away the curly braces as well if I save that we get the same thing now in addition to the item that we pass into the Callback there are some other arguments that we can pass in so I just want to go back here and we’ll come down so these are the parameters right we have our callback function and then in that callback function we have the item our element but in addition to that we can also pass in the index of the current element being processed in the array and of course it’s going to start at zero the array so we can also get the entire array there might be times where you need that within your your function so let’s go ahead and pass in the index and then we’ll pass in the entire array so those are the additional parameters so here what I’ll do is I’ll console.log let’s just put in some backticks here and of course we need to wrap the item in that and then let’s also do before it will do the index and then slash so we’ll say index Dash and then the ice Dash not a slash and then if we look here you can see the index starts at zero and then increments and then let’s pass in after the back tick here we’ll just pass in the entire array so you can see that you have access to to that as well now you can also pass in a named function rather than an anonymous callback so for example let’s create a function called log socials and that’s going to take in an item or we can just say like social and then we just want to console log social so we want this function to run for every item that’s in the array so what we can do is just take socials call for each and then simply pass in log socials all right if I save that let’s just comment this one out if I save that you’ll see it’s going to log all the social items here now when you pass this in you don’t want to execute it right you don’t want to pass in the the parentheses you want to just pass in the definition of the function just like you do here you know you don’t you don’t execute this function here it’s a callback now the last thing I want to show you is with objects because usually when you pass when you use for each it’s usually on an array of objects so let’s say social objects and we’ll set that to an array and each object will have let’s say a name say Twitter and the URL say https twitter.com and then what we’ll do is copy this down a couple times and let’s change this one to Facebook and what else LinkedIn and Instagram all right and and you can have I think I think I mentioned this before but you can have trailing commas in your arrays in fact if I save prettier automatically keeps the trailing comma so I want to comment this one out and then I want to log each item here so let’s say social objects and then Dot for each and then we’re going to pass in our function which is we’ll say item and then let’s just do uh console log of that item so in this case it’s going to give us objects right each each item in the array is a social object so if we want to access a specific property specific property we would do item Dot and then whatever let’s say URL so now it will give us all the URLs and then of course we could do whatever we want to that array and we’ll be using for each a lot more but in the next video I want to show you an example of another high order array method called filter okay so now we’re going to look at filter which is another high order array method for each is usually the first one you learn now the difference between four each and a lot of these other ones we’re going to look at like filter and map is that filter along with a bunch of other high order array methods actually return something in most cases they’re going to return an array now our modified array so if we look at this example at on mdn you can see we have some words in an array and then we have this variable result set to words.filter so this is something that you’re going to do because this returns something right for each does not so you’re typically not going to see a variable equal to something dot four each you just run that for each and then you do whatever you want in the function in this case what’s going to happen is we pass in a function okay this is a function I know it looks a little weird because there’s no parentheses around this but remember with arrow functions you don’t need to have parentheses if it’s just one parameter so what we’re saying here is We’re looping through we get can get each word and then we’re testing that word and seeing if the length is greater than six Okay now what’s this is going to return this line right here is an array with only the words that pass this test or only the elements in the array that pass this test so the result will be these words right here because they’re greater than six if they’re not then they’re not going to be put into that array so we’re filtering out the words that don’t pass this test okay so let’s uh let’s try this on our own so that it’s more clear so we’ll say cons numbers and I’m going to set this to let’s just do one through ten nine and ten and then let’s say I want to filter out and I only filter out all the odd numbers so I just want the even numbers now I’m going to create a variable because it’s going to return something so we’ll say let’s say even even numbers and we’re going to set it to the numbers array dot filter and again this will take in a function I’ll just do a long form for now so we can say function and pass in here whatever whatever variable we want to use for each individual element or number so I’ll just say number in this case you could use item or whatever now what we want to do here is return from this function some kind of condition now if I want to get the even numbers I can do this I can say if the number and then modulus operator and then 2 if that is equal to zero so if it’s divisible by 2 then obviously it’s even right if we have zero remainder then it’s divisible by 2. so this is going to Loop through run this test on each of these and whichever ones pass will be put into a new array in this variable so let’s go ahead and console.l log here even numbers and if we take a look in our console you can see we get 2 4 6 8 10. if I add on to this 11 and 12 then 12 should be added now this is kind of the long way of doing this the shorter way let’s say short version and then I’m just going to comment this out so the short version would be to do even numbers equals numbers Dot filter and then we could pass in here just number use an arrow and then we just want uh the condition which is if the number modulus 2 equals zero save that we get the same thing okay now if you wanted to do this with a 4 each let’s say same with four each it’d be a little more complicated right if you want to pause the video and try it you can but let’s um let’s take numbers right and then do a four each so we can’t we’re not going to set like anything equal to this this is just to Loop through so what we can do is initialize a variable here we’ll just say let even numbers and then we can Loop through here and say number and then we’re going to have to do an if statement here if we want to test right so we’ll say if the number modulus 2 equals zero then we’re going to take the even numbers uh even numbers variable which is is uh you know we want to set this to an empty array so you can see how much more complicated this is then we would have to push onto it the number if it was even right so now if I save and we’ll get the same result so this right here this one line is the same giving us the same as this right here all right and we could use const here since we’re just pushing on we’re not reassigning anything yeah so that’s filter now I want to do this with uh an array that’s slightly more complicated with some other conditions other than just testing for an even number so let’s comment this out and then what I’m going to do is grab the array so we’re just going to use an array of of company objects all right so each company has a name a category a start date and an end date so if you want you can look at this as a challenge and pause the video and try to try to do this they’re all just using filter but the first one the first thing I want to do is get only retail companies okay so I just want companies where the category is equal to retail so if you want to pause the video and try that go ahead and do it now but what we’ll do is create a variable let’s say retail companies and you you can you can imagine how useful this is you know if you think about a UI where you’re filtering things this comes in handy so let’s say companies okay we want the company’s array and we want to filter and then we’re going to use a short form Arrow function so let’s say company so for each company we want to test if the company Dot category because it’s an object so we want to access the category and say if that is equal to the string of retail all right so now if we console log retail companies we should get three three values and let’s take a look here so we have company two company four and Company nine all right so if we look here company two is retail company four is retail and Company 9 is retail so let’s do another one let’s say let’s say we want to get get the companies that started in or after 1980 and ended in or before 2005. okay so companies get companies that started in or after 1980 and ended in or before 2005. okay if you again if you want to try it you can do that I’m going to create a variable we’ll just call it early companies put a space there early companies and we’re going to set that to again companies Dot filter and we should probably comment this console log out all right so companies filter and in here we’re going to have a function pass in our variable of company that’s our item and then we want to test to see if the company dot start is greater than or equal to 1980 right and then is that a string no it’s not a string and okay so we want to use the the double Ampersand the company dot end is less than or equal to 2005. so that should do it so let’s console log early companies and save and we get three so if we look at these it’s company 1 7 and 9. so company one was 1981 to 2004 company seven uh was 86 to 96 and Company 9 was 89 to uh what was it I’m sorry 80 81 to 89. so those were all in the in the realm of 1980 to 2005. these are the ones like this was the 2008 um this one was 2007 2010 so it filtered out by this this condition right here this truth test and then the last one we’re going to do is to get companies that lasted let’s say lasted 10 years or more so to do that we’ll say const and I’ll just say long companies and set that to companies dot filter and we want our function here and it’s gonna I’m gonna say company and then the truth test we want is the company dot end minus the company dot start is greater than or equal to 10 that means that it lasted 10 years or more so let’s console log long companies and let’s let’s comment this log out and you can see we get nine one two three four five six seven eight nine uh oh this should be minus okay so we get five one two four six seven so if we look at like three that only lasted what 99 to 2007 so that’s not quite 10 years what else uh four or five didn’t last 10 years 2009 to 2014. so yeah so hopefully this gives you an idea of how Filter Works this is very useful and we’ll you’ll use it all the time in your interfaces you know when you have a a search box and you’re filtering down by whatever it is location or anything like that this is going to come in handy all right now in the next video we’re going to look at map which allows us to basically return an array just like filter but we can return we can modify anything we want and return an array of anything we want all right so in the last video we looked at filter which is a high order array method and we saw how it returns a new array and it that’s based on a function that returns true or false anything that was true would be put into that array with map this works a little differently where the function what that we pass in can return anything that we want to be put into this new array in this example let’s make it a little bigger in this example we have some numbers in this array one variable and then we’re setting this new variable of map 1 to that array dot map and we’re saying for each value they’re using X here but you could use anything we’re taking that value and multiplying it by two so they’re doubling it and then that will get put into this new array so essentially what we’re doing is taking this array and then we run it through map and then we have an array of these numbers doubled okay so what I’m going to do is give you a similar example and then we’ll we’ll use the same companies array that we used in the last video and do some stuff with that so let’s just create a numbers variable and we’ll set this to we’ll just do one through five and then let’s create a variable here we’ll call it doubled numbers make it a little bit more specific than the the docs and then we’ll take the original numbers array and do a DOT map that’s going to take in a function and we’ll say for each number then we want to return and you could either do the short syntax or you could have curly braces and you could use the return keyword but this is shorter and cleaner so let’s say number times two all right then we’ll go ahead and console log here the doubled numbers and if we go and we look we should see 2 4 6 8 10. now the what I’m returning from eat from this function for each of these elements is each one times two but it could be anything like for instance if I wanted to return a string that had number space and then concatenate the number if I do that you’ll see now it’s going to run through the array it’s going to Loop through and take each one and just prefix it with the string of number so now I have an array of that so you can do absolutely anything here if I wanted to multiply it by 3 and triple it we could do that as well all right now if you wanted to do this with a four each I think it’s useful to know how to do that so let’s say same same with four each so just like we did with Filter when we used a 4-H we have to first just create a variable let’s say double we’ll say double numbers two set it to an empty array and then we could take the original numbers array and loop through so in here we want to say for each number then we’re going to take the double numbers to variable which is an empty array and push onto it the number times two and then if we console log double numbers two uh oh I said doubled oh yeah let’s do double numbers too and now you see it’s the same exact thing so this this line is a shorthand for doing this but now what I want to do is use that companies array that we used in the last video to do a couple things and again if you want to pause the video and do some of this on your own you can do that as well I would encourage that so let’s say we want to get or let’s say create an array of company names okay so just us an array with just the company name no objects or anything just strings so let’s say const company names and we’ll set that to companies which is our array of objects and then we want to map through and have a function where we say for each company we just want to return the company dot name okay so that’ll run for each element each object in the array and get put into a new array so then let’s console log that new array and there we go so now we have just a simple array that has all of those company names inside an array with just numbered indexes now let’s say we want to create a new object that has just the the company and the category so let’s say create an array with just company and category so if you want to pause and try it now you can do that so I’m going to call this company info and let’s set that to companies dot map and say for each company Let’s uh I’m just gonna put a code block here because I’m going to return an object I could just use parentheses and put my object in that but instead I’m just going to say return an object and then name is going to be the company dot name and then category is going to be the company Dot category okay and then we’ll go ahead and console.l log company info and let me just cut let me comment that one out and you can see now we have an array with all of the companies but only the category and the name okay because that’s all we chose and there’ll be plenty of times where you’ll have uh you’ll have a bunch of data but you want to strip some of it out like maybe you don’t need the start and end dates so you can simply manipulate that array or I mean this this will create a shallow copy and then you can manipulate that array to have whatever you want in it now let’s create an array of the length of each company in years so let’s try that we’ll say create an array of the length of each company in years so it’ll just be an array of numbers so for that let’s say const company years and let’s set that to companies.map and we’ll say for each company for each company I just want to take the company dot end date and just subtract the company Dot start date actually you know what let’s make this a little more complicated let’s say create an array of objects with the name and the length of company in years so instead of doing what I just did I think this is a little better this will yeah so we’ll do that we’ll say return an object with the name so we have access to company with all the properties so name and then let’s create a new property called length and that’s where we’ll take the company Dot what is it company dot end subtract the company dot start okay so now let’s do a console log of company years and now we should have objects with the name and the length of year so 23 16 all right and we could even just concatenate in here space years so 23 years 16 years and just to validate that if we look at company one it was from 81 to 2004 so 2001 would be 20 and then we have three more two three four yep so that is correct all right now another thing that you can do is chain let’s say chain map method so you can have more than one map method let’s say we want to square root we want to take a number we want to get the square root and then double it so I’ll call this Square we’ll say square and double and what we’ll do is we’ll set that to numbers dot map and the first thing I’m going to do is is square it so we’ll say for each number we want to use the math object and then we’ll use sqrt so square root that number right so right now if I console log this let’s say Square and double so if I do this right now it’s just going to give me the square root right now I want to double it so what I could do is add an additional map so this map which ends right here just to make this a little cleaner looking I’m going to put this dot map on the next line this is what you’ll commonly see get rid of that semicolon and continue on with a new map which will take in the square root and I could call this number if I want but let’s call it square root because whatever you return from the first map so this is going to be put into this parameter right here so now I’m going to take that square root and I’m going to double it so times two so now if we save that we now have the the square the number square root and then we take that square root and then we double it we multiply it by two all right so hopefully that makes sense and you can have as many of these as you want now just to kind of make it clear on what’s going on here I’m going to do I’m going to give you the long version as well so let’s say const square and double two set that to numbers dot map and what’s going on with passing in a function so I’m just going to put a long version in here and pass in here number right and then what we’re doing from this first function is returning math dot square root and passing in the number okay for each element in the array and then when we we can add the other map so here we’ll say you know I’m going to put this on a new line as well and then we’ll add our new DOT map our next dot map and in here we’re going to put a function and this is going to be the result of the last map which will be the square root so then here we’re going to return the square root multiplied by 2. okay so now if I console log square and double 2 and save we’re going to get the same result so this right here is just a shorter version of this just remember whatever you’ve returned from this map we’ll go in here if I were to have another dot map whatever I return from here we’ll go into there in fact I could say map again and pass in a function and here let’s just say square root doubled and then we’ll return let’s say I don’t know we’ll just let’s multiply that yeah we’ll just multiply that by three and Save oops this should be square root doubled okay I can’t access like this variable this right here the square root I can’t access it here what happens is whatever is returned is going to be put into here square root doubled and there we go all right so you can also chain with other methods it doesn’t just have to be map so let’s say that we want to first of all filter out and just get the even numbers then we want to double those even numbers so let’s say chaining multiple or chaining different methods so let’s say we still have we still have this numbers right here right this numbers array so that’s what I want to use so I’m going to say const and then even double so first I want to take numbers and I’m going to filter you know what let’s make this 10. so 5 6 7 8 9 10. okay so I’m going to say numbers filter and then for each number I want to remember we’re using filters so we want to say number and then we’re going to use modulus 2 equals zero so that should just filter out and give us the even number so let’s console log even double so right now it’s just going to give us 2 4 6 8 10 but now I want to add on a DOT map so I’m going to put this on a new line get rid of that semicolon and then do a DOT map so I’m chaining these these methods here I’m going to get let’s say number and it’s going to be the result of this this which is going to be an array of you know an array with the even numbers so now I’m going to take those numbers each one and multiply it by two save that now they’ve been doubled and you can do this as much as you want you can have 10 chained methods and they can all be different all right as long as it makes sense so hopefully this is giving you an idea of how these these methods work and there’s there’s a lot more we’re not going to look at all of them right now one more I do want to look at in the next video is reduce all right so now we’re going to look at a method called reduce which is used to reduce your array down to a single value and this can be a little tricky to grasp at least for me it was a little trickier than some of the others but a good use case for this and a good example is a shopping cart where you have you might have an array of products with different prices and you want to reduce that down to a total of the prices for your shopping cart that’s somewhere where you’ll see reduce a lot so if we look at this example here a very simple example there’s three arguments that I want you to understand here so basically reduce takes in a function just like the rest of them and there’s two arguments here previous value and current value so previous value is basically what’s returned from the last iteration or the last function that ran last callback this is also called the accumulator so if you hear accumulator in previous value those are both usually mean the same thing and then the current value is whatever the current element we’re on okay and then you can also pass in as an additional argument here the initial value which is whatever you want the initial previous value to be because obviously your first Loop through you’re not going to have a previous value so you can set that here and in most cases it’s going to be set to zero all right so let’s let’s look at a very similar example and then I’ll show you a like a shopping cart example so let’s say we have an array of just numbers and we’ll just use one to ten okay and then I want to get the sum of all of these numbers so I’m going to create a variable called sum and let’s use reduce on the numbers array and like I said it’s going to take in a function just like the rest of these array methods and actually Let’s do let’s do a long version of the function first just to kind of give you a better idea of what’s going on so the function will take in the either the previous value or accumulator I usually use accumulator and then the current value all right and then to set the initial value which isn’t actually required but if you want to set that you can add it after the the curly braces here and let’s say zero set to set that to zero oops and then in here what I want to do is return the accumulator so every time this runs I’m going to take the accumulator or the previous value and add it to the current value and that should in the end give us a sum of all the numbers so let’s come down here and console log sum and let’s go to our console and you see we get 55. so basically it started at zero because that’s what we set here then it went through ran a function for each element took the previous value so for instance when it was on 2 it took one and then added the current value so it added two then it the function ran again for the next element and it took 3 and added the previous item or value which is two and I kept doing that until we’re done with the array all right and then of course you can shorten it up and we could say const sum equals numbers Dot numbers dot reduce and pass in here an arrow function and you could shorten it up to like ACC is is commonly used and then c u r r c u r for current value and then we could just say we want the accumulator plus the current value and then for the initial value we’ll pass in zero and let’s just change the variable name to sum2 and we’ll console log sum2 and we should get the same thing now if I take this initial value and I set that to let’s say 10 and then I save that and run it you’ll see we get 65 and the reason for that is because now we’re starting at 10 okay before we do anything we’re starting at 10 and that’s what this accumulator is going to be on the first run through so now we’re going to get 10 more than than we normally would okay so I just want you to understand what these these arguments are now to make this even a little more clear I’m going to do this with a for Loop so we’ll say using a for Loop because there’s so many different ways to do the same thing and if you were to use a for Loop instead of reduce that’s not wrong at all it’s just a little longer so I’ll even put this into a function we’ll use a function expression so I’ll say const sum 3 and then set that to to a function so I’m going to initialize the accumulator so we’ll initialize that at zero and then we’ll do a for Loop and I’m actually going to use a 4 of since we’re going through an array so we can say const and we can call this number or we can even call it Cur like like we did above of numbers because that’s the name of the array and then all we have to do is set the accumulator equal to the accumulator Plus the current value okay now an easier way to do this or a shorter way to do this is to use the plus equals syntax we can just do that all right and then outside of the for Loop we’ll go ahead and return whatever the accumulator is and now if I come down here and I run a console log of sum 3 uh whoops this is a function I need to make sure we add the parentheses and now you can see we get 55. okay and there’s just so many ways to do this you could even do this same kind of thing within a four each so hopefully that kind of puts us into perspective a little bit now a more realistic example would to be to have a shopping cart so let’s do that I’ll say we have this cart which is an array of products we’ll say let’s give it an ID we’ll say ID and then name product one and then a price price will say 130 and then let’s say we have three products so this will be two three and product two product three and then the pricing let’s do 150 and then 175. all right so if you want to pause the video and try to get use reduced to get the total of these prices then you can do that now so we’re going to go ahead and create a variable of total and set that to cart dot reduce and we could we could either pass in a short Arrow function or we could do the long way which I’m going to do here and this is going to take in the accumulator and it’s going to take in the current value now instead of using like Cur or current value I’m just going to put in product because that’s that’s what it is right where We’re looping through these products and each value is going to be a product so that makes more sense to me and then we’re going to just return from here the accumulator plus now if I just do product right because that’s what we did up here we just plus the current value it’s not going to work here because these are objects these the the actual elements that We’re looping through and running the function on were the numbers we were adding in this case it’s a property of price so you want to make sure that here you add dot price all right and then for the initial value we’ll set that to zero and now if I go ahead and console log the total we get 455. okay if I add let’s say let’s make this 200 and save now it’s 480. so this is something that’s extremely common with things like shopping carts all right so that’s reduced now there there are other high order array methods and I want to get to those but I know that some of you are dying to just start to work with the Dom and actually put things in the browser and work with events and stuff so we’ll get to some of the other ones later when we can actually Implement Dom elements but before we do that I just want to give you a couple challenges in the next video okay so now we’re going to do a couple challenges with array methods and these aren’t too difficult if you watch the past three or four videos then you should be able to to get this at least one of them so the first challenge is to you can see we have an array of people has a first name last name email phone and age so the instruction is to take the people array and create an array called young people that stores objects with only the a name and email property of all the people that are under 25 or 25 and under and the name property should have their first and last name so basically we need to convert this into an array that has just a single name property with both their first and last name and only the people that are on over what is it no 25 and under okay and you should just have a name and email property and again the name should have both the first and last name so that’s what we want to get from this array is the the expected result so if we console log young people then we’re only going to get these three because they’re all 25 or under you can see we have a name property all right so if you want to try that out go ahead and pause the video and you can do it on your own all right so I’m going to copy this array so we can use this and then let’s come over here and let’s paste that in all right so we need to first of all I mean you can do this in different in a different order and you can use different methods I’m going to go ahead and filter out the the young people or I should say filter out the older people so that I only have young people so let’s say const young people and we’re going to set that to the people array we want to filter through that right so in filter let’s pass in a function and we’ll say for each person we want to return only if the person is less than or equal to 25 all right so we can go ahead and console log that let’s say Young people and save that and I get nothing let’s see what did I do wrong here people.filter person we’re going to return if they’re less than oh I forgot the age so I’m saying just person which is the entire object of course we want the age and if we check it out we get Jane Sarah and Jose that looks correct so Bob is 45 Jane is 25 so she’s included John is 30. he’s not included so it looks like we haven’t filtered down now we still have all the properties we want to narrow this down to only have a single name property with both first and last name and email so so what I’m going to do is is chain on a map method here so let’s say map and in here we’re going to pass in the person and remember what I’m passing in here is going to be the return from this so it’ll be the filtered persons that I’m accessing here and then I just want to basically rearrange it to just have the name and email so I could do a couple things I could do this and then and then use return return the object or since I’m just returning a straight object I could put parentheses here and use my curly braces and do it this way and say name and we’re going to set that to the person Dot first name and then I’ll just concatenate you can use template strings if you want but I’m just going to concatenate a space and then add on the person dot last name and we also want the email so we’ll set email to person Dot email so we’ll save that again and let’s see what we get so now we have an array and it only has the name and email and the name has the first and last name all right so that’s the first challenge so the Second Challenge is to add all the positive numbers in the array so here we have an array called numbers it has both positive and negative we want to be able to console log our our variable that has you know our solution and we should get 79 so 50 plus 20 plus 2 plus 7. all right so you don’t want to add the negative numbers so again if you want to pause the video and go for it then you can do that now so I’m just going to add comment here say this is challenge one and then let’s go down here and here is a challenge two so we have our numbers let’s actually just copy let’s grab this okay we’ll paste that in there all right so we want to be able to add we want to add all these numbers so let’s create a variable here called positive sum and again we’re going to be filtering out some stuff here so let’s say numbers and I’m going to go on to the next line and filter and what we want to filter let’s pass in our function and say for each number we want to let’s say we’re going to say if the number is if the number is greater than zero so that’s the truth test right if it’s if the number is greater than zero then it’s going to get put into the array now if we console log this positive sum I get 250 27 so right now we just have an array of the positive numbers now we need to get the sum of those prettier fix this for me I didn’t want it fixed but it’s all right now I’m going to come down here and I’m going to use reduce to add them together so remember reduce is going to take in the accumulator or the initial value and then the current value and then oops and then we want to run our function which is just going to take the accumulator and add on the current value and we’ll pass in zero as the initial value so now I’ll save that and there we go we get the single value of 79. all right for the next one we’re going to create so we have this this words array coder programmer developer all lowercase and now we want to create a new array called capitalized words with the words from this array but have the first letter capitalize so this is the result that we should get okay so shouldn’t be too difficult let’s go ahead and say challenge three and we want the words so let’s create that array first so the words are coder and programmer and these are all lower case and then developer okay so now I’m going to create a new variable just call it c word so capitalize words we want to set that to the original words array and we want to map through because that’s what we want to do is we want to map through and manipulate this and and create a new array with the capitalized words so this takes in a function I’ll use curly braces here and pass in word because for each word we want to then return and this is similar to a challenge we had I think in the first section where I had you uppercase the first letter of of a single word now we’re doing it in Array but what we did then was we used two uppercase now if I were to add to uppercase to the whole word then and then let’s return this I’m sorry console log this c words and save then all the letters are uppercase which we don’t want we just want the first one uppercase so there’s a few ways we can do this we could use the Char um uh method here or we could just use the index because even though it’s a string we can still use the index to get a specific character and we want to get the first character so if I save that now you’ll see that we’re just getting the first character in its uppercase now we just want to add on concatenate on the rest of the word and we can do that with slice remember if we take the word and we we use dot slice we can return a specific part of the word and this goes by index so I’m just going to put a 1 in here not a 2 a 1 and that will get basically from the one index which is the second starts at zero and it will get that over okay from there on or you could pass in a second argument to where you want to go which would be the entire length of the word so I could say word dot length as the second argument so if we save that now you’ll see we get Coda Pro grammar and developer and we have the first word uppercased all right so that’s it in the next section we’re finally going to get into working with the document object model and actually doing stuff within the body of the web page I know we’ve been doing a ton of console stuff but I think that this what we’ve been doing is really really important for you to understand before we move on to button events and doing you know moving things around in the browser or whatever I think the the fundamentals including iteration and control structures and data types that’s all really really important for you to understand all right so let’s move on to the next section all right guys so in this section we’re going to start to look at the Dom or the document object model and I’m sure that a lot of you have been waiting for this section many of you may have even started the course here I just want to mention that before you jump into the Dom you should have a good understanding of the fundamentals so things we’ve talked about like data types functions flow control loops even array methods I would suggest that you have a basic understanding of that stuff first now I’ll talk more about what the Dom is in the next video but it’s essentially an interface that allows us to interact with page elements dynamically from a language like JavaScript and in this section we’re going to look at things like the properties and methods available on the document object including methods to select elements we’re going to look at how to Traverse the Dom and navigate it so that we can change and add and remove elements from the page dynamically also change Styles and attributes so there’s a lot of different methods and functions that you’re going to learn so I would suggest following along and keeping the sandbox handy so that you can reference it at any time now after we learn how to manipulate the Dom in the next section we’re going to start to get into events so that we can have even more Dynamic functionality alright so let’s get started okay so now we’re going to jump into the document object model and we’re going to spend half the half this video in some slides and trying to give you like a visualization of the Dom and then I want to jump into some code and we’ll look at the the window object which has a child object called the document object now as far as what the Dom is it is essentially a programming interface for web or HTML elements we already know we can display the content of web pages using HTML tags with text and we can style it using CSS you guys should definitely know that at this point and the Dom is is the structure of the web page that we can interact with we can interface with using JavaScript and you can use other languages as well but for the most part you’re going to be using JavaScript and it generally includes all the HTML tags so you have access to those attributes the text between Queen tags those are called text nodes and when you visualize the Dom you usually visualize it as like a tree structure similar to what you see here on the right and what you see on the right is a tree structure of this web page here which is very simple so we just have our HTML tags head and body tags we have a div an H1 a paragraph so over here I’m going to talk about window and document in a few minutes so let’s just look at HTML now this HTML element here represents this HTML tag in our page structure okay and we will be able to access that through the document object and in that HTML tag we have two children or child tags or elements we have the head and then we have the body now in the head we have another title element and in that title element is a text node so a lot of people when they start out a lot of them think that the Dom just it just refers to the tags right the elements well it also refers to text nodes it also refers to attributes so you can see in the head tag we have a meta tag and that has a character set a Char set attribute on it which we can easily access and and do things to add to remove or whatever on the bot in the body we have a div and that div has an attribute on it of ID and then in that in the div with the ID of main we have an H1 that H1 has both an attribute has a class on it and it has a text node in it all right and then the paragraph has a text node in it as well so when you look at HTML structure you should be able to kind of picture this type of thing in your head when you’re dealing with the Dom all right now I want to just jump into vs code now and just kind of look at some of this real quick so in the console I’ve already showed you this if we type in window it’s going to show us that the window object which is the the topmost or the global object in the browser that has a ton of stuff on it including the document object and we can of course access that from within our code as well all right that’s going to give us the same thing and in that window object is the document object so right here and that has a bunch of properties and a bunch of helpful methods that we can use as well so we could do a console log window dot document and I’m just going to comment this out so now you’ll see document and since we did a console log to the document it’s going to just show us the element if we want to see like the properties and methods and stuff then we can do a console.dir and now if we take a look you can see all this stuff here and I’m going to go over a lot of the different properties in the next video now I’m just going to show you a couple things and we’re going to touch on all this stuff much more later on but let’s just do a console log here and we’ll say document now we don’t have to prefix it with window you can because it is on the window object but since window is the top level object you don’t need to prefix this stuff with window in fact you’ll very rarely see window dot document so as you can see over here there’s a body property here and that that references the body element so if I say document.body and save that it’s going to show me the actual element okay so you see the body element you can see the H1 and the script tag some of this stuff is injected by live server but we can see everything in the body right and then there’s properties we can use on this like let’s say we just want the HTML in the body we could use inner HTML save that and now you can see we have an H1 and our script tag and if we look at the HTML page that’s exactly what’s there if we wanted to get let’s say just the text we could use in our text save that and we just get Dom intro all right if I were to add something else in here and just put a paragraph with hello just the text is going to show here if I go back to using in our HTML it’s going to show the paragraph as well all right now typically you don’t access elements with direct properties like this because there’s methods like like get element by D and query selector that I’m going to show you very soon that helps you target what you want much more easily I but I do want to just show you some of the I guess the the more difficult ways of doing it first so let’s say we want to get all the links on a page all right and I shouldn’t say more difficult but but using properties rather than using the the methods so let’s create a link here and I’ll just have it go to my site travestymedia.com and say Traverse media for the text all right and then let’s say I wanted to access all the links I could say console log and then document and if we look over here in the properties there should be a link so you can see there’s images to access all the images and then you also have links now since there’s more than one link on the page what this gives us is something called an HTML collection which is very similar to an array you can access each link by index just like you could in Array so let’s say document.links and we’ll console log that in fact let’s comment out this stuff here so as you can see I get an HTML collection and there’s a single Link in there it has an index of zero so if I want to access that I can simply put brackets just like I would with an array and then put the zero and there it shows me the link okay and if there were if there was another link I could use one as the index there’s not so it’s going to just be undefined now this for instance this document.body this is not read only I can change that from here I could say document.body equals or actually let’s say document.body dot in our HTML equals and then we’ll just put an H1 in here and we’ll say hello world all right so if I go ahead and save that it’s going to replace everything that’s in the body with just this H1 even if we had you know a ton of content on the page if I set the body in our HTML to this H1 it just replaces it now I’m going to show you all kinds of methods to insert things where you want but this is just saying well I just want the entire page to show this H1 which is something you’re not going to do now there’s also methods I’m just going to comment that out there’s also methods on the document on the document object so one of them which you don’t see very much is right so right will actually take whatever you put in here and write it to the browser so if I say hello from JS and I save it gets added now the reason you don’t see this used very much is because there’s no targeting it just basically puts it at the whatever at the end of the file and it’s not it’s just not very helpful but this is a method right it’s a function now there there’s also methods to select certain elements in the Dom and those are very very helpful and we’ll be going over those you know in depth but just to give you an idea let’s go to the HTML and let’s wrap I’m going to wrap all this the H1 and the link with an ID of main okay so I have this div with the ID of Main and I’m going to move the H1 and the link inside of that and let’s say I want to select that Main that main ID so I’m going to just console.log document Dot and then the method I want to use is get element by ID okay so we’ll say get element by D and in here is going to be the ID I want to grab which is main if I save that and you see it grabs that div with the ID of main now I can do what I want with that I could say document Dot get element by D main I could also put this into a variable so for instance const main equals that and then I could say main dot inner HTML equals and then we’ll put an H1 and we’ll say hello from Main okay save that and it’s going to replace everything within that that div with the ID of main with this H1 okay just like I replaced it up here I replace the body this is just replacing this specific element okay and there’s there’s even better selectors like query selector where you can select anything you want so for example if I wanted to select just the H1 I could say document dot query and don’t worry we’re going to go over this much much more in depth so I could say query selector uh and let’s say I want the ID of main so I would use the number sign here because you can choose classes or or just straight elements whatever and then I want the H1 so it’s basically like if you were styling this with CSS you can put any selector in here and let’s say I want to take the inner we’ll do the inner text of that H1 and let’s set it to hello save that and now just the H1 gets changed so this is just a very very high level example of some of the things that we can do all right so in the next video I want to look more at some of the properties on this document object all right so in the last video we looked at the document object model and what that is we looked at the actual document object that we have access to within the window object and some of its properties and some of the methods we can use so I want to take a look at some more properties that’s on that object that you have accessible to you that you can you can access you can also use to overwrite and you know add things through JavaScript so a lot of these you’re not really going to use because instead of selecting them the elements with these properties you’re going to use methods like get element by D and query selector but I do want you to at least know that they exist all right so you’ll notice that we actually have some life in the browser finally so this is a UI for the shopping list application that we’re going to build in a little bit and it’s not functioning you’ll see I cannot add anything I can’t delete anything that’s because there’s no JavaScript at all it’s just HTML and CSS and you’ll have this in the sandbox you’ll also have it in you should have it in this the current video module that you’re watching all right and just to take a quick look at the HTML we’re just bringing in font awesome which is a library to use icons like this right here I believe is actually no that’s not how to font awesome the think just the delete buttons are here but yeah so we’re just bringing that in the bringing the CDN and then we’re linking in our style sheet so this is just custom CSS so very simple we’re not using like Tailwind or any CSS framework and then we have our header our container with our header just has this little image and and heading and then the form here with the input to add an item the button to add an item then we have a filter input as well so we’ll be able to filter these items down then we have the unordered list which is the item list and then we have the clear all button so that’s pretty much it and then we’re linking in a script JS which is completely empty That’s why nothing works okay and and a little later on we’ll create this whole application and get it functioning but I want to use it just as an example UI for the next few videos so that I can show you how to manipulate the Dom and you know access certain elements change things and so on so again I want to look at some of the properties on the document object so I’m going to just initialize a variable here called output so that I can console logs different things and let’s open up our console over here so the first property I’m going to show you is actually deprecated but I still think you should know it and that’s document.all so I want to set output to that so we can log it now you’ll see it actually has a strike through in vs code because it says it is deprecated but if we look over here what it gives us is an HTML all collection so this is similar to an array and you can see it has brackets and it’s basically an array or a collection of all of the different parts of the this page the Dom for this page so HTML tags a script tag head tag everything in here the form the inputs everything is going to be in this HTML all collection and we can even access axis Elements by index so if I do 10 that gives us the body if I do 11 that gives us the container so you can access items or elements like this but this is not like the way you want to do it this is not very convenient and this is the reason I wanted to to teach you like what arrays are and how to use them and stuff because if if you didn’t know what an array is you wouldn’t understand an index or what this is right so it’s important to learn the basics now you can also use like the length property just like you can on a regular array so you can see there’s 38 items in there but it is deprecated I wouldn’t suggest using it but I want you to know what it is just in case you run into it now we also have if you want to get everything that’s in the HTML element or tag you can use document element and that will just give us the HTML tag and then everything in it head body and so on then we can also access just the head or just the body so if we say document dot head and we save that that gives us the head we can do the body I showed you that in the last video as well now if you want to get the children in the head or the body so if you want to get the children in a collection you can it’s actually do that so you can just do dot children and now what we have here is a collection of everything that’s in the head the script tag meta tag link tag we can do the same with the body so if I do that that gives us everything that’s in directly in the body that’s why there’s only a single div here because if we look there’s a this div with the class of container everything else all the other HTML is inside of that so it’s only going to give you the the parent I should say the direct child of the body if I were to put an H1 in here and save that that H1 will get added to this collection because it’s at the top level right where container is so that is dot children which you can use on the header body now some other properties we can get are the the doctype so let’s say output equals document dot doctype if for some reason you need to get that we also have the domain domain I believe is deprecated as well but as you can see we can get the domain which for me is my Local Host we can get the URL the full URL as well so that’s going to be the domain plus any page that we’re on we can get the character set so character set which is utf-8 so just some things that you can get for your application if you need them the content type so we can say document dot content type which is going to be Text slash HTML now I showed you that we could get links as an HTML collection in the last video and I’ll go over that again in a minute but we can also do that with forms so I could say document dot forms and save that you see that gives me an HTML collection of the forms if I want to access a specific form I could use an index because again an HTML collection it works like an array as far as indexes go so you’ll see I get my my item form here now I can also get specific attributes on elements as well so let’s say I want to get the ID I can say dot ID and you’ll see I get item form okay I could get the method of the form so we can say method save that and it’s going to be get because we don’t have a method described here but a form is always going to it’s always it’s always going to be get as the method unless you set it specifically like if I set it to post so if I say method post and save then it’s going to be post and we’ll get into what that means later on there’s also no action which is where it submits to if there isn’t an action it’s going to submit to that page but I could get the action with DOT action and it should just be the same page so the page that I’m on now if I wanted to change the ID of the form I could do that by saying document dot forms and grab the first form in the document and take the ID and set it to let’s say new Dash ID right so if I save that now and I come over let’s go to the elements Tab and take a look at the form I’m going to close that up and you’ll see form has an ID of new ID so I set that from my JavaScript all right um I’m just going to comment that out though now I could do the same thing with links as I showed you in the last video so I could say document dot links which do I even have any links in here let’s go back to the console here yeah so it’s just an empty collection because I don’t have any links if I did if I put like let’s say https google.com and I’m going to get rid of this after but just to show you if I have a link then that’s going to get added to the collection and then I can access the first and only link with the index of zero and if I want to access just the just the link the href I can use the href property so I’ll say dot href all right if I wanted to set an ID onto this link I could say dot ID and set that to let’s say Google Dash link and if we go back into elements and we look at the link which is let’s see where is it um I think it’s in here yeah so ID Google link I could even change the href so let’s copy that down and set that to https facebook.com and save and now if we look again at the link right here you’ll see the ahref is now Facebook okay and then for classes like um for those CSS classes you could change now you can’t do this you can’t say dot class but you can do class name and I’ll set it to I don’t know Google class and save and now you’ll see we have a class of Google class and then if we want to access all of the classes we can get a collection of those with class list so let’s say dot class list and I’m not going to set this I just want to log it so we’ll save that and go to our console and you’ll see that now we have it’s actually called a Dom token list so any classes on that element will be in this list all right now we can do the same with Let’s see we did forms links we can also do images so let’s say output equals document dot images which will give us an HTML collection if I can spell this right document so that gives us an HTML collection of images let’s get the first image so this index of zero and that’s going to be this right here this note PNG which is the first and and only image if I wanted to get the source of that image we could use the source property all right so I just want you guys to know these these different properties that we can use to access these elements now the this is not the best way to do this if you want to access a form if you want to select it for something you don’t really want to do this or this for links or this for images but I want you to know that this does exist because you might run into it and there might be some reason why you do have to use it now I’m just going to get rid of this Google link it’s going to throw an error because it’s looking for links and I don’t have any so I’m just going to comment this block of code out and then the last thing I want to mention is that what we’re getting back when we do this document forms document images is an HTML collection which is array like we can access the specific uh forms for instance using an index just like an array but if we try to use a for each on it it’s not going to work so let’s actually try that out if we say document let’s use form so we’ll say document.forms.4h you guys should know this we went over this in the last section and this takes in a function we’ll say for each form then we just want to console.log the form right now if I save that it’s going to say that for each or forms.4h is not a function okay because 4H is not a function for what we have here which is an HTML collection okay later on when we use Query selector that actually gives us something called the node list which is different than an HTML collection and we can use for each on that but for an HTML collection if you do want to use four each you would have to first convert it to an array and you can do that with the array from method that we looked at a while back so I could say const forms right create a variable called forms and set it to array capital a DOT from and then pass in our document dot forms HTML collection and then I should be able to take that forms array and then Loop through it and now you can see it’s outputting this uh this form here okay because we only have one form if we had more it would show them here because it’s looping through and logging it okay so I just want you to understand an HTML collection is array like but it’s not actually an array and this is how you can turn it into one now in the next video we’re going to start to look at methods that we can use to to more easily select elements from the Dom all right guys so in the last video we looked at many of the properties available on the document object including properties that allowed us to select elements from the Dom in the form of HTML collections now in this video we’re going to look at a much more common and practical way to select elements and the methods that we’re going to use here are to select single elements on the page so if you want to get let’s say all of the paragraphs on the page you wouldn’t use these methods we’re going to look at those in the next video methods to select multiple elements for this is like if I wanted to select this particular H1 or this particular input then we would use these methods all right so the first one has been around for a while and it’s going to be document.getelement by ID so basically it does just that it’ll allow us to get any element in the Dom by its ID so if we look at let’s see if we look at the elements tab here and in the dev tools you’ll see that this H1 has an ID of app title so I want to get that let’s go ahead and we’ll do a console log of it first so document dot get element by ID and it has an ID of app dash title so if I were to log that in the console we’re going to see that H1 now there’s going to be cases where you want to get a specific attribute so what we could do is there are properties available such as ID and there is an ID on this element so I could just add on dot ID now that doesn’t work for every single attribute for instance if I do dot class I get undefined and I know there isn’t actually a class on here but I’ll show you real quick if I were to add a class onto this H1 of say hello if I do that we still get undefined because class is not a property now there is a class name property and you’ll see that does get it but there’s no that’s not always going to be the case get rid of that so what you can do is use a method called get attribute so I’m going to copy this down and instead of this dot class name I’m going to say dot get attribute and that’s a method so it takes parentheses and then we can pass in whatever attribute we want I’ll pass in ID and you’ll see now we get app title now there’s going to be cases where you want to set attributes not just get them so there’s a few ways to do that so one is to grab the element so let’s say app dash title and let’s say I wanted to change the ID I could say dot ID and set that to let’s say new Dash ID and if we look at the element now it has an ID of new ID now if I keep this here and then I try to select by ID and I use app title again it’s not going to work because that’s been changed so let’s change this to something else we’ll add a title attribute and we’ll just say shopping list and a title will typically you know if you hover over this it’ll whatever the title is will show all right now like I said there’s not always a property for that that we can use so there’s also a set attribute method so let’s copy this down and what we’ll do is get rid of this and we just want to do dot set attribute and that’s going to take in two things the first is going to be the attribute you want to set let’s just use class and then what you want to set it to so I’ll say title and if we look here you see now class is equal to title I could have said dot class name equals title so there’s many ways to do the same thing but I just want to show you that there’s both a get attribute and set attribute and we’ll talk more about this later as well now there’s going to be times where you don’t want to type all this out like if you have to use this selector more than once you might want to put it into a variable so we can do that by just setting a variable and then setting this to get element by D and app dash title so now if I were to console log title then that’s going to give us the element now I know that this video is showing you these different selectors and we’ve only looked at get element by D we’re going to look at query selector next but I want to show you some of the things that we can do when we bring these in when we when we grab an element from the Dom all right and and we’ll go into some of this stuff more in depth later on but one of the things you’ll do is either you either want to get or change or add the content that’s within that element right so what we could do is say well it’s console log first title which is our element our title element and we could do text content which is a property that will get the content inside of it in this case you can see shopping list okay now we can also change it as well by saying title dot text content and setting that to something else let’s just say hello world save that now you see we’ve changed change that element’s text there also is intertext so if I say inner text like that and we’ll just set it to hello again that’ll basically do the same thing there are some differences between these two but I’m not going to get into that right now you’ll most commonly see in our text at least in my experience now if you want to use HTML tags then there’s a property called inner HTML so you’ll use this a lot with vanilla JavaScript but with this I could set it to let’s add some strong tags and we’ll just set it back to shopping list so let’s say shopping list let’s close our strong tag and save that and now you can see now it’s strong or bold so another thing we can do is change Styles so we can actually edit our CSS from here so for example if I say title Dot and then we use style and then whatever CSS property we want so for instance color I’m going to set that to red and you’ll see I can change that color to Red now it’s important to know that if you’re if your style has if your property has two words like let’s say background color in CSS you would do this right bat Dash color background Dash color you can’t have a hyphen here so in JavaScript what you do is just use camel case like that and then let’s just set that to we’ll say black okay and then maybe you want to add some padding so we could change the property here to padding and set that to let’s say 10 pixels right and then we’ll just do a border radius it’s a border radius so it’s two words so it’s camel case now you might be saying why the hell would I want to use JavaScript to edit Styles well you wouldn’t do it like this just to edit a static page styles on a static page when you want to have your your interface be dynamic that’s when you you do this type of thing so for example if you want to have a pop-up if I were to hit this button and have something pop on the screen a modal you would be changing your yours or adding CSS to your JavaScript okay or you would just change classes you would change a class to like show or hidden or whatever and we’ll get into that later but I just want to show you now that you can select elements from the Dom and then you can change things or add or remove whatever you want okay so you have full control of your interface through JavaScript and the Dom so now we’re going to move on to the other selector that you’ll use for for single elements and that is document Dot query selector now this was a game changer when it came out before that if you’re using vanilla JavaScript we had to use get element by D so whatever you selected you had to have an ID on uh and in some cases you didn’t have full control of the HTML so that’s where jQuery came in and gave us a big Advantage because we could select anything we could just select an H1 with no class or attribute we could select by class we could select by anything at all so that’s really what query selector gives us and this came along with the es6 or es2015 update and kind of put jQuery out of business as as like a Dom manipulator so let’s start off by just we’ll do a console log here and let’s say document Dot and then query selector there’s also query selector all which is for multiple elements and we’ll get into that next in the next video but if I if I want to select just by the selector I can do that so H1 and you’ll see it’s showing our H1 along with all the styling and all the stuff we did up here to it now remember this only selects single elements that’s kind of the difference between jQuery and this if I did this with jQuery it would select I believe it would select all H1s I haven’t used it in so long but I believe it would select all of them in this case it’s going to select only the first one if there are multiple on the page all right but usually you’re going to use this to select like a class or something like that something that you know there’s only one of otherwise you’ll use Query selector all so another thing we could select by is ID so we could say app dash title okay so that’s going to log the same thing the H1 with that that ID we can select by class so if I say dot container and we select that you can see that we get the container and you can do all the same stuff with Doc query selector right you can change Styles content and all that we could even do it by attributes so for instance if we want to get the input that has a type of text we could say input and then in Brackets here I could say type equals text actually that takes takes quotes I believe okay and if I go ahead and log that you can see now it’s it’s grabbing this input here now we can even use pseudo selectors so basically anything you can use within CSS so let’s get rid of this and instead I’m going to say an A List item if I do this it’ll just give me the first list item by default let’s say I want the second list item so I could say Li and I could use the pseudo selector of nth Dash child and pass in here two so that should give me the second list item which is orange juice and let’s actually we’ll do the inner text save that and there we go orange juice so you can select and you can Target anything on the page you want so let’s do this let’s take the document query selector and the inner text and let’s put that into a variable so we’ll say const and I’ll call it second item and we’ll set it to that okay so that’ll give us the inner text actually you know what let’s not do the inner text because I just want the element and then let’s set the inner text so we’ll say second item and then dot enter text and let’s set that to let’s say apple juice if I save now we get apple juice okay if I wanted to change the color of it then I could take the second item and change the color I’m sorry we need style so style Dot color and set that to red all right and I would encourage you to maybe you know after this video try and change some things around with what you’ve learned try to change this this interface up maybe change the color of the button change the text of the button things like that now another thing that I want to mention is that you can use you can use these use these methods on other elements other than the document so for example let’s select the entire UL so we’ll say list and then we’ll set this to let’s say document dot query selector and we’re going to select the unordered list okay which is just this right here right apples apple juice Oreos Etc so that gives us the the entire UL if I console log list it gives us the UL now if I want to select something in that list like say the first item we can use Query selector on list okay it doesn’t have to be on the the document so let’s take list and then let’s say query selector and let’s say we want to get we’ll just get the first list item and yeah we’ll just do that and then let’s actually put that into a variable we’ll just call it uh we’ll call it first item so first item equals that and then we’ll take first item and let’s change the we’ll just change the color we’ll say dot style dot color and set that to Blue save and ioc apples is now blue so you can use Query selector on any element it doesn’t have to be just on the document all right now in the next video like I said we’re going to get into selecting multiple items all right so in the last video we looked at get element by D and we looked at query selector which are the two methods you can use to select single elements now if you want to select multiple elements like let’s say all of these list items then there’s some other methods you can use now query selector all is the method that you’ll use probably a hundred percent of the time there’s some older ones like get Elements by class name and get Elements by tag name which I will show you just so you know but you’re probably just going to use Query selector all so you can get by just using this and query selector for multiple elements now as far as what this gives us let’s go ahead and I’m just gonna I’m gonna create a variable here called list items and what I want to put in here is all of these these Li tags all of these list items if I go to my elements tab here and click on that you’ll see that we have these these Li tags and they have a class of item I could use that as well for my selector but let’s say we want this to equal document dot query selector all and I can put Li in here I could also like I said I could do class item and that will select all of those let’s leave it at that because if you were to add other allies on the page somewhere else those would also get included if you just use Li now if I console log list items I just want to show you what that gives us so let’s go to our console and what what it gives us is a node list and a node list is an array-like structure much like an HTML collection which we saw in the past in fact the older methods I’m going to show you do return an HTML collection as opposed to a node list now there are some differences one key difference is you can use high order array methods on a node list you can’t do it with an HTML collection with an HTML collection you would have to first convert it to an array and I’ll show you a for each Loop in a minute but I want to show you you can also get if you want an individual item just like an array you can use the bracket syntax if I put a 1 in here that gives me the the second element let’s say I just want the text I could do let’s say inner tab okay and that gives me orange juice because it’s zero one two three and I’m getting the one the index of one getting the inner text you can access individual elements like that like an array now if I were to let’s say I want to make all the the I want to make the color of these red so I couldn’t just do list items.style dot color and set that to red if I try that that’s not going to work because I’m trying to run I’m trying to access Style on a node list okay style is is for a specific element now I could do this I could say one and change that’ll change just that but what I would do if I wanted to change all of them is is a for each Loop right so I could say list items dot for each and in here we’ll say for each item and then we’ll take the that specific item and let’s take the style set the color to Red save that and now they’re all red okay now this is different from jQuery for those of you that that have worked with jQuery because with jQuery you could in fact take the you know list items variable and do dot style color and they would all turn red but it’s a little different with vanilla JavaScript and you can do whatever you want in here like we could say if let’s say if item and remember we can access the index so I could actually do this because we already know how four each works we can pass in an index and we’ll say if the index is equal to one then let’s take the item and let’s remove it so we’ll say dot remove and we’ll get into methods like this later but now you can see that that has been removed now let’s say we wanted to change the the text of the first one from apples to oranges so we could do if and then say if the index is equal to zero then let’s take this particular item and change the inner text we’ll change it to oranges save that now notice the text does change but the delete button is also gone whenever you’re working with elements you have to know exactly what you’re working with if we look at a list item here it doesn’t only include the text it also includes a delete button so you have to take that into an account into account so what we could do is just take everything that’s in the list item and copy it and then here this there is HTML in this so we would say enter HTML and then I’ll use a template string just so it’s easier so use some backticks here and paste this in and then change apples two oranges save and now we have oranges and the delete button is also there so you see a lot of stuff like this template strings um within your in vanilla JavaScript all right now I want to show you some of the other methods that we can use that you probably won’t but I do just want to show them to you so I’m going to comment this out just so we have our original our original list back and then let’s say we want to select all these with the get Elements by class name so I’m going to say cons list items we’ll call it list items two and say document Dot and then it’s get Elements by class name okay and then we know that they all have a class of item and this is kind of restrictive because you can only do classes and you don’t want the dot actually because it’s always going to be a class just like with get element by D you don’t put the the number sign now if I console log list items two we get an HTML collection as opposed to a node list okay we can still access individual items like like we would with an array like if I put a 2 here and save actually let’s do two and then Dot in our text and we get Oreos okay so you can use you can pass in an index like this but if I were to do a four each so let’s say list items two dot four each say for each item then we’re going to just let’s just do a console log of that item and the enter text save that and it says for each is not a function because it’s not a function for this list items two which is an array I’m sorry an HTML collection now what we could do is use array Dot from to convert it to an array so I could say const list items let’s just call it list items array and then set it to array Dot from and then pass in our list items two which is an HTML collection and then if we run the four each on list items array then we’re going to see that that works all right so just keep that in mind if you have an HTML collection and you want to use for each or any other method you want to First convert it to an array now the um and then the last one I want to show you is similar to this but it’s called get Elements by tag name so I’ll call this one list item three and let’s say get Elements by tag name and then you would put in the tag like Li list item so if I console log list items three again it’s an HTML collection so if you wanted to use a four each you would have to first turn it into an array but you can access specific things like let’s say we wanted the first item that gives us the first item if we want to get the inner text we get apples okay and I’m not going to do much more with these because I’m pretty sure that this is the only time we’re using these in the course okay you want to stick with query selector all for most cases so you can get by with just using query selector and query selector all all right so in the last few videos we looked at how to select elements from the Dom and do whatever we want with them now in this video I want to start to look at the relationships between element nodes okay everything in the Dom is a node and there’s other types of nodes like text node comments nodes we’re going to talk about those in the next video because there’s certain properties if you want to work with those types of nodes in this video we’re specifically going to look at element nodes okay so any HTML tag on the page is an element and I also want you to just be familiar with relationships which you should you should be if you know HTML if we look at this basically it’s pretty simple to tell that this div is a parent of these three divs inside of it and I even gave them the class names of parent and child and then any div that is on the same level such as these three children are siblings right so these are sibling nodes or sibling elements and I didn’t want to use the the shopping list UI just because I want something very very simple so that I can explain these methods and and show you how to use them I’m sorry not methods these are actually properties and the properties I’m talking about are these ones here okay so we’re going to look at all these so we have our parent element which we just saw it was a div with the class of parent and then we have our three child elements and there’s different properties for us to basically Traverse the Dom move up and down so we have we have a property called parent element which does just that we have a first element child a last element child next element sibling previous element sibling and then we also have a property of children which gives us I believe it’s a node list of all the children alright so let’s start to look at this in our code so I’m going to just close that up and I have this open I’m going to open up my script.js here which is completely empty and we’re going to start to look at some of these so what we’re doing here is still just selecting stuff from the Dom but in a way where we do we’re not directly selecting it we’re using elements we’ve already selected we’re using properties on those to kind of navigate and Traverse to the children the parent the siblings Etc so the first thing I want to show you is how we can get child elements from the parent so let’s create a variable here I guess we’ll we can call it parent and let’s say document Dot and then query selector and I want to get the div with the class of parent okay so that gives me if I console log parent gives me that div all right now I just want to create an output variable so let’s say output just because I’m going to be console logging quite a few things so we can just then set it to Output all right and what I want to show you is how to get the the children property so if we look at this diagram here there’s this children property that gives us an HTML collection of all the children so let’s say output and set that to parent and then children now this is a property or an attribute it’s not a method if I put parentheses here it’s going to tell me that children is not a function because it’s not it’s a property and what it gives me is an HTML collection which is an array-like structure of all the divs in here all the child divs now since this is an array-like structure I can access each individual element here with an index so I put if I put a 1 in here I’m going to get child 2 right because it’s zero base so child two would be the one index and I just want to show you if I instead of logging this if I do a console dir it’ll show me like all the properties and methods that I can use on this so we can access like the ID with DOT ID the class list um even the children of this we can access just all this stuff here so just to give you kind of an example let’s put this back to console.log and let’s uh let’s get the inner text save that we get child two right if I do let’s say class name I get child because remember it has a class of child we could even do like the node name which will give us a div because that’s what this is if I take the second one here and change it to An Li then node name is going to be Li all right so we can treat it just like we could treat a directly selected element now I can change things as well so if I want to grab let’s say parent Dot children and then one and let’s set um we’ll say text not text inner text or text content whichever one let’s set that to I’ll just uh we’ll say child and then we’ll spell out the word two so that should replace the child number two and I could also add styles to this so I could say one dot style Dot color and set that to Red so we could do that as well now in addition to the children HTML collection there’s also two other properties that we can use on our parent and that is first element child and last element child now there is just a first child that’s not what you want because that isn’t just element nodes that’s other nodes as well which I’ll talk about in the next video what we want to use is first element child okay so and it’s a property it’s not a method so don’t put uh parentheses and let’s just change this let’s say dot text our inner text and we’ll set that to child one save that and you’ll see it change the first one here and again just to look just to reference this diagram from the parent we called this right here first element child and as you can see there’s also a last element child so if we come back here let’s copy this down let’s change this one to child three and change the property from first element child to last element child and now you can see that that’s been changed so now what I want to show you is how we can get parent elements so get parent elements from a child because if we look at the diagram again it goes the other way as well these child has they have a property of parent element okay and we can also access siblings as well which I’ll get to so let’s go ahead and select from the Dom let’s select it we’ll say child and set that to document Dot and let’s use Query selector and we’re just going to select the first child we’re not going to use Query selector all because I don’t want that I just want to get one of these elements and show you how we can access the parent from it okay so we have the child now let’s set output because I want to show you how we can access let’s say child and then we can use the parent element property so if I save that we output now you’ll see we’re outputting the parent by using the child by using this property on the child now let’s say we wanted to add a border around the parent div from the child so I could say parent element and let’s set dot style dot border and we’ll set that to let’s say one pixel solid and we’ll do Triple C for the color and then let’s say we wanted to add some padding so we’ll say 10 pixels and change this padding and save and now you can see there’s a border around the div with the class of parent and I didn’t apply that to parent directly that I selected I selected a child but then I used the parent element property to access and change the style of the parent so now let’s look at sibling elements so sibling elements oops put two L’s in there all right so let’s grab let’s grab the second item right so I’m going to create a variable called second item and we’re going to use document Dot query selector and remember we can use we can put any selector we want in here so I’m going to say I want the class of child now remember there’s three of those I want the second one so I’m going to use this the CSS pseudo selector of nth Dash child and pass in a 2 here so that will give me the second item all right and just to show you let’s do output set that to second item and save that and you’ll see that now this gives us child two this one right here now if I want to access the next sibling from second item which would be the third one that I could use next sibling right so let’s set output equal to second item and then we’re going to do dot next I’m sorry it’s not next sibling that will do the next node no matter what it is next element sibling will give you the next element sibling so let’s do that now you see it’s we get child three and if I wanted to let’s see let’s just grab this and copy it and we could do something to this like I don’t know let’s set we’ll say style dot color and we’ll set that to Green okay so what I’ve done here is I’ve selected the second item directly using query selector and then I use the next element sibling property to get the next sibling and then I turned it green now we also have previous elements sibling so let’s copy this down and this one let’s say orange and I’m going to change next element sibling to previous element sibling and now you’ll see that first one is now orange because that’s the previous to the second item okay so hopefully this just gives you an idea of how to kind of how to navigate around if you select an item but then you want to get it sibling or its parent or its child there’s different ways to do that now as I said there’s other types of elements I’m sorry other types of nodes other than elements so we’re going to start to look at that in the next video okay now as I mentioned in the last video when it comes to Dom nodes there’s different types and in the last video we strictly worked with element nodes and that’s the most common type of node basically an HTML tag now if we look at this chart here this is actually from w3schools and you can see these are the different types of node types there’s 12 of them now a lot of these you’re not even going to need to know or work with but as you can see the first one here is an element node it represents an element and that’s what we were looking at in the last video and there’s specific properties that we can use that pertain to element nodes now some other types of nodes are attributes okay an attribute like an ID or whatever it might be an attribute on an HTML tag those are attribute nodes we also have text nodes which represent textual content okay so any text written within some HTML tags would be a text node we also have this C data section which represents a c data section in a document which is text that will not be parched by a parser we also have entities and entity references this stuff isn’t really that important to you right now comments so if you have a comment that is also a separate type of node so what I want to do is look at some of these other methods that are available to use with with not just element nodes but other types of nodes as well and this looks pretty similar to what we already saw but these are actually different methods okay same structure we have a parent with three children but we have for instance first child instead of first element child last child instead of last element child parent node instead of parent element node next sibling in previous sibling instead of next element in previous element sibling and there’s also a property it’s kind of cut off here but it’s child nodes instead of children okay so just remember that this works with all nodes while this works with just element nodes which is usually what you’re going to be working with what I’m going to show you here in this video probably you’re probably not going to use too much but I do want to mention it I want this to be a front to back course all right so the only difference between this HTML and the last is I simply have a comment here that says children because I want to show you that a comment is looked at as a specific type of node all right so let’s jump into the JavaScript here and I think the first thing we’ll do is look at the child nodes property just like we had a children property but we want to do that on the parent so let’s go ahead and again create parent document we’re going to query selector and we want to select the class of parent okay and then I’m also going to create a variable called output and then oops and then we’re going to console log that output and let’s just open up our console here okay so right now that’s undefined but I’m going to set output equal to and then take that parent element that we selected and look at not children but child nodes and it’s a property not a method so no parentheses and now you’ll see what we get back is not an HTML collection but a node list and that node list includes all different types of nodes so we have a text node a comment so what I want to do is is go back here and kind of go through and show you what what this pertains to and this goes from the where the parent class as it did with the parent class starts which is right here to where it ends which is right here so all of these nodes are in between that and you might be saying well how I mean where the first one is a text node where is this I don’t see any text well white space actually counts as text so this comment goes on to the next line so this right here is actually that first text node okay if I were to I mean I’m going to have to disable format on Save so if I search for format yeah right here format on Save otherwise it’ll knock it on to the next line but if I take this comment and I put this right here and then get rid of that white space see how right now this is 0 to 8 which is a length of nine because the text node if I save this and look at it now there’s no more text node and it’s a length of eight zero to seven so that text node is gone because that white space is gone if I put that back and I save it then that text node is there again so that’s the first thing next is the comment okay comments of their own nodes if I get rid of this and save then you can see that that com not only is the comment node gone but also is the white space after it okay this right here if I put that back it’s going to go back to a length of 9 and the comment and the white space after it okay this right here then we have our element node which is a div with a child okay div with the class of child then we have our white space which is the text then another div element then another white space with text then another div and then another white space okay so that’s what this is so as you can see this navigating this instead of just the elements like in the last video is much more difficult so you probably won’t be doing this that much unless you specifically need to access text nodes all right let me just put format on Save back on okay so now what I want to look at is we’ll we’ll stick with child nodes just just for a bit just to kind of see how we what we can access here so if I say output and set that to parent dot child nodes and we grab zero that’s going to be that the white space the text node as you can see gives us this text node and we can get all this this stuff from it right like we can get um let’s say text content not with a zero and that just it’s just nothing right if we look at let’s say node name that’s going to be text right so we have we have access to all these properties let’s look at a different one so we’ll copy this down and let’s do three I believe was the first element so if we do three yeah three node name is div if we just look at let’s say the text content we get child one if we look at the we know that that’s the element so we can get the inner HTML which is still child one because there’s no HTML in it if we want the HTML that surrounds it we can use out our HTML which is one t so now it gives us the div with the class of child and child one all right so we’re essentially doing the same thing we just have access to all of the nodes and not just element nodes if I wanted to change let’s say um let’s say dot in our text and I believe this should be the first one so let’s change it to child one spelled out yep so if I if it’s just it’s more difficult to figure out what you need to access because there’s so many of these other types of nodes um what else we could change we could change the color so we could do I think six would be the second one so six dot style dot color equals red or maybe not forget which one was it seven or was it five yeah it was five so that’s the second element all right now in addition to child nodes we also have first child and last child so let’s say output equals parent DOT first child just like we had remember we had first element child but that’s going to give us the text node the white space right if I were to I’m not going to turn off my format on Save again but if I were to put this up here uh not that if I were to put this up here that would get rid of the text node and the comment would be the first one but if I save I have format on save so it’s not going to allow me to do that all right we also have last child which is also a text node um what else let’s see and I could since it’s a text note I could say parent dot last child Dot text content and set that to hello so that’ll replace the text node which was originally white space with hello so now I want to look at parent nodes or getting parent nodes from the child right so what we’ll do is create just like we did in the last video create a child we’ll use document.query selector and we want to select a class of child okay so what we’re doing is selecting this right here now to get its parent node we can use the parent node property so let’s say output equals child dot parent node and that’s going to be the the actual div all right and if we look back at this chart what we’re doing is accessing this parent node now it’s going to be the same as parent element right even though we have these other types of node like text and comment the parent is still going to be the same so if we were to for instance do here parent element and I say we’re going to get the same exact thing so you could use either in in this case and if I wanted to say like child Dot parent node dot style Dot uh back we’ll say background color and set that to hex value actually let’s do let’s do something a little darker yeah so we could do that all right so that’s pretty much it as far as accessing the parent because there’s only one parent node right when it comes to children you have multiple children nodes now as far as siblings siblings I’m gonna once again get the second item so I’m going to do that with document Dot query selector and we’re going to get the class child but we want to get the nth so nth child two that’ll give us the second one so just a make sure that’s correct let’s set output equal to second item okay so we have the second item now if we were to get the oops Let’s uh let’s bring this up here so if we were to get the um next sibling right not next element sibling but next sibling it’s a text node okay because of that white space because we’re right here right now and the next node not the next element would be this but the next node would be the white space here if I were to take this and and close that white space then yes the next one would be the element and then just like we have next sibling we also have previous sibling which is also going to be a text node so hopefully this gives you a good understanding of nodes in general versus element nodes which is what we looked at in the last video and for the most part you’re going to be working with element nodes so the other properties we looked at like next element sibling previous element sibling parent element uh what else children as the as the an HTML collection as opposed to these child nodes so that stuff you’ll probably be working with more but again I want this to be a front to back course I want you to know everything you know as far as I know all right so that’s it in the next video we’re going to be looking at actually creating elements from our JavaScript okay so we can select elements from the Dom using multiple methods we can navigate to related elements using certain properties and we can manipulate Elements by changing their inner text in our HTML we can change the Styles now I want to show you how we can create elements in JavaScript so we can create any Dom element that we want and then insert it into the document wherever we want using specific methods so in many cases you’ll want to create a new element and then insert it into the document on some kind of event so an example would be with this shopping list ultimately we want to type something in here click the button add item and have it get added to the list now we’re going to go over events in the next section but the next few videos in this section we’re going to do some of the stuff that usually would happen after an event is fired off all right I just want you to know how to insert thing to remove things Etc create things alright so let’s jump into our script JS for this section and what I’m going to do is create a variable here called div because that’s what I want to do is I want to create a new div so we can take our document object and there’s a method called create element so we’re going to run that but we need to pass in the type of element that we want to create and of course it’s going to be a div judging by the name of the variable now we can console log that div and this doesn’t do anything to the page just yet all it does is basically just creates it in memory from our JavaScript it’s not placed in the page just yet now we can add attributes to this div so I’ll go right here and I’ll say let’s do div Dot and we’ve already looked at some of these like class name so let’s say I want to add a class name of my element and if I save now you’ll see that I have a div and it now has a class attribute of my element if I wanted to add an ID I could say div ID and set that to we’ll just use my element again so now it has a class and an ID we can also use the set attribute remember that set attribute method so we can say div dot set attribute and let’s say we wanted to add a title to the div and we’ll just say my element and if I save that now you can see it also has a title so you can create it and then you can add whatever you want to it now as far as what I want to put in it because right now that it’s just an empty div so we can add something to it by using well there’s a few ways to do it the the easy way to do it would be to use inner text so we could do like div Dot enter text and set that to whatever hello world if I save that now you’ll see in the console this div has the text of hello world however using inner text is not the best way to do this when creating a new element it is it’s really meant to Inner text is really meant to get and change the text of an already existing element it’s better to create a new text node with the create text node method and then append it to the element okay because remember when we talked about nodes there’s element nodes there’s also text nodes and we can create those so what I’m going to do is just comment that out and let’s create a new variable called text and set that to document Dot and then let’s say create text node and then in here we’ll put the text that we want in it which will be hello world okay and then we need to add that text node to our div and we can do that by using the append child method so we can say a pen child and then text I save and now down here you can see that hello world has been put into this div now a pen child is a very important method that you’re going to need to understand because you’re going to use it all the time and it’s it’s easy to understand it appends a child to whether that’s an element or whether that’s a tech node a tech node a text node it appends it to or inserts it into whatever this is so in this case we’re putting the text inside of the div now we want to use a pen child to put it on the page as well and where you want to put it or what you want to append it to is is up to you it could be anything so let’s get rid of this console log and let’s say we just want to put it at the at the end of the body or you know at the end of inside of the body we could just do document.body append child and then pass in our div and if I save that you’ll see that hello world is now put at the very bottom so if we were to inspect our element here it’s right before the the ending body tag okay it’s above the scripts and stuff and the live server stuff but it’s after everything else all right now if you wanted to put it let’s say at the end of this UL this this unordered list then instead of document.body we could do document and then we could select let’s say query selector and select the UL and then we could just uh just say a pen child and then append the div there I save and now it’s it’s going to be inside of the UL at the very end now what I want to do in the next video is actually insert an item that looks just like this with the the text and the the button so I’m going to actually give that to you as a challenge because everything you need to know we’ve already gone through and and most of it is right here for you to be able to do that so we can do it as a challenge if you don’t want to you just want to follow along that’s absolutely fine but that’s what we’ll do next all right guys in the last video we scratched the surface on creating elements and adding them to the Dom and there’s two main methods for that one is create element which allows us to do just that and then also a pen child which will allow us to append whatever we want to any element that we want now in this video I want to show you I want to get more deeper into that and show you how we can create a function to add a new list item to this shopping list and it has to include not only the the title of the the item but also the button this is a button that has an icon within it so it has to be the title the title and then the button and then also this I tag with along with these classes and I’m going to show you two ways to do it one is kind of a quick and dirty way of doing it which is using inner HTML and the second is a cleaner and more performant way of doing it where you’re creating all your elements not only the Li but also the button and and the eye tag here all right so and I’m not saying using enter HTML and doing it this the quick and dirty way is horrible it’s not you see it all the time but there is a better way to do it so ultimately we want to have a function which I’ll run down here called create list item and we want to be able to pass in whatever we want like let’s say eggs all right so let’s create the quick and dirty way first so we’ll say function create list item it’s going to take in an item now at the very least you have to create your Li element right I can’t do this I can’t say Li and set that to a string of let’s say Li at our Li tags here and then put in um actually we would use backticks here right because we want to put our item in here okay so we just have a string with list items and the item and then I want to append that to the to the unordered list so I would say document Dot and then we’ll use Query selector to get the UL uh we could do UL but it has a class of items so that’s more specific and then we can do append child and if I put the LI variable in here which is this this string let’s see what happens and this is this is what messes a lot of people up in the beginning it says fail to execute a pen child on node because the parameter one is not the type of node okay what I passed in here this Li is not a node it’s simply a string so this has to be a node meaning we have to actually create the element node and we do that with create element so we want to pass in here Li now the easy thing to do here the cheap thing to do is to just take Li and then set the inner HTML of that to a string or a template string and then I could just copy like all of this everything inside one of these Li tags and then replace apples with whatever that item is all right if I save that let’s see create element oh I forgot document all right so now if we look at the list you see eggs has now been added so we created an ally element node and then we just said well we want the inner HTML to be this and then we simply appended that Li node so next I’m going to show you a better way of doing this a cleaner way and that is to create all of the elements not just the LI but also the button also the I tag here and add the classes so let’s uh let’s call this something different so that we can run both we’ll just say create we’ll say create new item instead of create list item and it’s going to take in an item and let’s just call that down here so we’ll pass in say cheese and we’re going to call create new item all right now to start off here it’s going to start off the same we need to create our list item all right so we’ll say document Dot create element and we’re going to create our list item now we also have a button and an icon so let’s create the button as well I’ll say button equals document dot create element and we’re going to create a button all right and then that button has classes so we can say button dot class name and set that to a string of classes which are going to be these so I’ll grab those and paste those in and we should be able to console log here if we want the button just to see so we have a button with classes on it right now we also want an icon so let’s say const icon and set that to document Dot create element and that’s going to just be an I tag and then that also has classes on it so we’ll say I dot class name and set that to let’s see these two classes right here so we get the x mark all right so we’re setting that I’m sorry that should be icon I was wondering why it was white so now uh oh and one thing we I forgot to do is the text the text for the the LI is going to be a text node right so we’re we’re creating the LI element we’re creating the text node we’re creating the button element and we’re creating the icon element instead of just setting the inner HTML to whatever so for the text node let’s do we’ll just take the list item and then append we’re going to append child because the text node goes inside of it and then we can say document dot create text node we could put this in a variable if you wanted to and the text node is just going to be whatever the item that’s passed in here all right so now we need to put the icon right the I tag needs to be appended inside of the button so we can just say button dot append child and we’re going to pass in here the icon and then the button needs to go inside the list item right we have the list item the button will be appended inside that so let’s say list item dot append child and we want to pass in the button all right and if we do a console log right now of the list item well actually let’s look at the inner HTML in our HTML of the list item and that’s that’s the text node then we have the button with the classes and then the I tag with the classes so the only thing left to do now is to append that to the Dom to uh to the UL which is what we did at the end right here so let’s just paste that in and save and now you see cheese is added now is this a huge deal in this situation no it’s not just know that using inner HTML so using this this first method causes the web browser to re-pass and recreate all the Dom nodes inside the UL element so this is less efficient than creating new elements and appending them so the second way is going to be more performant also setting in our HTML HTML will not automatically reattach event handlers to the new elements it creates so you would have to keep track of them manually I know we haven’t gotten into events yet but it can cause some issues with uh with attaching event handlers but again I’m not going to sit here and tell you that this is a horrible way of doing it and you will see this quite a bit all right now in the next video I want to take it a step further and instead of having just a single function I want to create a separate function for creating the button and creating the icon making it pretty reusable if you want to create other buttons and icons and also just making it more readable all right guys in the last video I showed you a couple ways to add a new list item to our shopping list and one of the ways was kind of a quick and dirty where we just used in our HTML On An Li node and then we also had this function here where we create the LI element the button element icon text node and we just append them all and then ultimately append to the Dom so when it comes to clean code I think a lot of it is preference you know so obviously some things are objectively wrong or right but I think a lot of it most of it comes down to the developer’s preference so in this case if you wanted to keep this as one function that’s fine but to me I think it’s cleaner to cut it down where a function does one thing so we’ll have this create the item but then we’ll also have another function to create the button and another function to create the icon and then it makes it more reusable if you want to create a button or an icon somewhere else all right so this is completely optional what I’m doing here I just want to give you a couple different points of view you know so it’s up to you on on how you choose to write your code but I want to give you the options so so let’s create a function called create button okay because I want this to be a separate function that takes in the classes because each button has classes and then also the same thing with icons so let’s create another function called create icon all right and then basically all we want to do these two lines here we’re creating the button and then we’re adding the classes I’m going to cut that put this into here and then the classes we’re going to cut and then set button dot class name to the classes that are passed in as arguments all right and then ultimately from here we just want to return return the button and then what we can do in the create new item is just set a new variable of button to the return value of uh create button and then we can pass our classes in if I save that we’re going to get the same exact thing now I want to do the same thing with icons with the icon so I’m going to grab those two lines and in our create icon let’s paste that in and I’m going to cut these classes set that to the classes that come in as arguments and then return the icon and then that way we could come up here now this is another thing that you can you have preference on if you want to have the icon or create icon function called in here or in the button because the icon is inside the button so I’m going to choose to actually do it within here so I’ll say const icon set that to create icon and then pass in the classes and then this line here where we’re taking the the icon and appending it to the button that is going to go down here in this function okay so now if I save this we get the same result but to me it’s a little cleaner okay we have a separate create button and a separate create icon we’re just setting the button to the return value of of the create button we’re appending it to the list item and then ultimately we’re appending the list item to the the UL and the Dom all right so if I were to call another function here create new item and we’ll put in I don’t know sauce save that and you’ll see that gets added so it’s completely up to you I’ll talk about like clean code practices and stuff throughout the course but like I said I think a lot of it is preference all right guys so when it comes to inserting elements into the Dom we’ve looked at a pen child which is very common you’ll probably be using that a lot but there are other methods as well that you can use and I want to show you those in this video so the first three are they’re all related it just it’s the only difference is what you’re inserting so we have this insert adjacent element if you’re inserting a new custom element insert a Json text if you’re inserting text and insert a Json HTML if you’re inserting HTML so the way these work is they take in a position which is going to be one of these four so here I just put this example of a paragraph and if you choose to insert before begin it’s going to go above the paragraph okay or whatever element you’re using as a reference and then after begin would be directly inside of it at the top above all the content and then before end would be after the content but still within the paragraph and after n would be after the entire paragraph or whatever element all right so let’s start off with the insert adjacent element and I’m just going to create separate functions to run for each of these so this one will call insert element just so we’re not in the global scope and first thing we need is a reference element on the page so where do we want to insert our new element let’s say we want to do it before this filter items input so we need to bring in that filter items input so let’s say document Dot query selector and I believe that has a div around it with the class of filter so we want to choose that all right then we want to create our new element and this could be whatever anything you want to put on the page whether it’s a new list item or it’s some data from an API whatever it might be in our case I’m just going to create an H1 so let’s say document dot create element and we’re going to create a new H1 and then I’m just going to add some text to that with text content so let’s set this I’ll just put the the name of the method we’re looking at as the text all right and then to insert it we’re going to take the filter and then that’s where we call insert a Json element and it’s going to take in two things the first is going to be the position which is going to be one of these four I’m going to choose before begin all right so that that’ll put it right above it and the second is the element we want to insert all right so now let’s just run this function so that this code runs and we’ll say insert element save that oops and you can see that my H1 has been put above the filter form if I change this to let’s say after end it’s going to be put below it all right so it’s just another way to insert content onto the page through JavaScript now the text insert adjacent text works in a very similar way so let’s create a function here called insert text and we’re going to figure out what text do we want to choose or what element do we want to choose to put our text before or after I’m going to choose the first list item here so let’s say const and say item and document dot query selector and we’ll just put an Li here we could do Li colon first Dash child either one is going to give us the first one and then on that item we’re going to run the insert adjacent text method and that’s going to take in a position let’s say we’ll do after end and then we can put in I’m sorry not item whatever text we want which I’ll just do I’ll just do the name of the method save that actually we have to run it so let’s come down here insert text save that and now you can see that it’s after the first list item if I change it to before begin then it goes above it I can also do after begin that will put it inside or before end which will put it inside at the bottom and this is similar to what a pen child does right so for HTML that’s just pretty much the same thing we’ll say insert HTML and let’s choose let’s choose the clear button down at the bottom so we’ll say clear BTN and document dot query selector and it has an ID of clear and then on the clear button let’s say dot insert adjacent HTML and it’s going to take in a position so let’s say before begin and then we can just pass in basically a string with HTML so let’s put an H2 and we’ll say insert uh insert adjacent HTML and close our H2 save that I keep forgetting to run it insert HTML there we go so it’s put before if I do after then it’s put after okay so again these all work and they work the same way it just depends on what you’re inserting an element a text just regular text or HTML and this is insert HTML or insert a Json HTML works like in our HTML now there’s another function or method that I want to show you called insert before which is similar to a pen child and how it works but it’s a little more complicated because you what you do is you define a parent or you bring in a parent and then you choose the item inside that parent that you want to insert your item before all right so let’s create a function called insert before item and we’ll create the parent or select the parent which I’ll use the unordered list so let’s say document Dot um query query selector and then we’ll choose the UL so that’s the parent now we want to create the element we want to insert which will be a list item so we’ll say document Dot create element and create a list item and I’m just going to add some text to that so we’ll say text content and set that to set it to the name of the function method we’re looking at and then what we do is Select an item inside the parent where we want to insert before so let’s select the let’s get the the third item so I’ll say const third third item and we can do that with document dot query selector and then I’m going to do Li and then we’ll use nth Dash child three okay so that will give me the third one and what I want to do is insert my my li I want to put it before this third item insert before that what’s weird about this is you call it on the parent so on the UL is where I do my insert before uh insert oops insert before and then that will take in your element whatever you know we’re putting in which is our Li and then it takes in the reference which is the third item so if we run this insert before text or what is it insert before item okay and now you’ll see that Oreos was the third one right this is the first one second one third one and I chose to insert before that third item so it put that this is my element my new Li it put it before that third item what’s kind of strange is that you call it on the parent with a pen child you don’t do that you just basically select you know the item that you want to put it inside of and then you call a pen child on that now you might think that since there’s an insert before where is it right here insert before that there’d be an insert after but there isn’t so what we’re going to do in the next video and you guys can look at it as a challenge if you want to try it beforehand is to create our own custom insert after all right so we’ll do that next all right guys so this video can be looked at as a challenge if you want to try it yourself or you can just follow along like you would any other video so we saw in the last video the last lesson that there’s a bunch of different methods we can use to insert elements and other things like text and HTML onto the page and insert before was one of those now you might think that because there’s an insert before there’s an insert after but there isn’t so what I want you to do is create a custom insert after function where you can pass in a new element if you look down here at this example code here if you pass in a new element like this Li that we created and then some item that already exists in the Dom your new item should get put after the the existing so in this case I’m selecting the first li as the existing item and I’m passing my li here in as the new item so it should get put after the after apples okay after the first item and you can use new L for your first uh parameter and then existing L for the second now as far as hints you can remember some of the properties to get parent and sibling elements okay remember we looked at that a few videos back and you can combine some of those I’m not going to say which one with insert before so if you combine these together there is a pretty simple way that you can make this work and you can insert a new element after an existing element all right so if you want to pause the video and try it you can if not just follow along and I’m actually going to copy let’s see I want to go back to that because I just want to copy the this code right here because I want to run this exact code so paste that in and now we want to create our function which is called insert after so insert after and that’s being called right here which is getting passed in this custom element that I want to add to the page so we’ll call that new element and then the next thing we’re passing in is an existing element which is the first list item so let’s say existing element all right now remember some of the the properties we looked at such as parent element so if I were to console log my existing element and then the parent element of that I’m going to get the UL okay so I have access to that unordered list and you could use parent node in this case as well if I do parent node that’ll give me the same thing so what I want to do is take the the parent element so existing l dot parent element and then I’m going to call on that insert before okay so remember this from the last video what insert before takes in it gets called on the parent and then what it takes in is the new element that you want to insert and then whatever you want to put it before now obviously we want to put it after that’s what this function is supposed to do but we can go ahead and take the existing element now if I run that and save it insert me after it gets put it actually gets put before apples which obviously isn’t what we want we want this to insert it after but all we have to do is simply add on to the existing element the next sibling property save that and there we go now it’s put after because if we put our new element before the the existing elements next sibling which is the next one orange juice that’s the same as putting it after apples okay so hopefully that makes sense and that’s why it’s important to understand these properties like parent element and next sibling and methods like insert before now I’m not saying you have to remember all these right now but at least know that that they exist and know that you can go on the mdn docs and you can look them up if you need to and and I still need to reference this stuff even for this course there’s plenty of stuff that I had to go and reference but I know it’s there and I know that these things are possible and I’m sure that for some of you this this challenge seemed like really difficult where you didn’t even know where to start but then you see the answer and it’s like one line it’s it’s easy so hopefully this this helps some of you guys out let’s see in the next video we’re going to start to look at replacing elements in the Dom all right guys so we know how to insert elements into the Dom Now using multiple methods now we’re going to look at replacing elements and some of the methods that we can use for that so we’re going to be working with our shopping list UI again and we’re going to be replacing some of the list item elements in this in this shopping list and there’s of course more than one way to do this so I’m going to show you a couple now I’m going to create a couple functions just because we’re doing a few things so I want to be able to to run separate functions so let’s create a function and we’ll say replace first item okay so I want this function to replace the first item which right now is apples so first we want to bring in the item we want to replace so we’ll call this first item and we’ll select that from the Dom with query selector and just put in here you could do LI or you could do first child either way it’s going to select the first one and then we want to create our new element so document dot create element and notice we’ve been kind of repeating ourselves quite a bit throughout the this section and that’s a good thing because it’s drilling into your head how do I select elements how do I create them and start them and so on now we want to create a list item to replace it and I’m just going to add some text content and you can use text content or inner text and let’s just make that say replaced first now to replace and this again this is just one way we’re going to use the replace with function or replace with method so we call that on our first item because that’s what we want to replace and we’re going to call replace with and then simply pass in our new element all right so let’s run this function save that and you’ll see replaced first okay so that’s the first way of doing this is using replace with the next one let’s call this function replace second item and in this in this function we’re going to use outer HTML okay we’ve used inner HTML quite a bit and that pertains to the HTML that’s in the element outer HTML will also include the HTML for that element so in this case the LI tags so let’s get the second item first of all so second item and we want to get that let’s say query selector and to get the second one we could do Li and then use nth child and two so that’ll get the second item and then on the second item we’re going to set the outer HTML and set that let’s say Li and then replaced second Li okay so it’s it’s similar to setting the inner HTML except we’re also setting the outer tags if I save that actually I have to run it of course so let’s say replace second item and now you’ll see replace second now the next one I want to show you is is how we can replace all of the items in the list and there’s not a specific method we’re going to use for it what we’re going to do is Loop through all the Li’s with a four each and then change the outer HTML for each one and if you want to try this on your own of course you can do that as well so let’s call this replace all items and what we want to do is get all of the list items so we’ll just call this Li’s and then we’re going to use Query query selector all since we’re getting more than one and we want to get all the LI tags all right now since query selector all returns a node list we can use for each on that so let’s say for each and we pass in our function here and we’re going to pass in we’ll call this item but I also want to get the index as well okay and then here what we’ll do is just set the let’s say item for each item we’re going to set the outer HTML and let’s just set it to replace all okay and then if we run that down here let’s say replace all items and oh I forgot the Li tags okay so we could do that we could also use inner HTML like I could do item dot enter HTML and in that case I would just do replace all because I’m not replacing the the LI tags so you can see that does the same thing um if I wanted to choose a specific item and and do something else I could do that so for instance let’s say if the index is equal to let’s do the second one so we’ll choose the index one then Let’s uh let’s see we’ll put this actually I’ll just copy that and then let’s say this is the second second item else then we’re going to have replace all so if I save that now you’ll see second item now why don’t you guys go ahead and shorten this up so this for each right here we can have an implicit return we don’t need to use curly braces and we can use a ternary instead of an if okay so if you want to pause the video and try that you can but uh actually let’s go under the four each but all we have to do is say for each and pass in here function we’ll say for each item and we also want to get the index and then here we’ll we’ll just say the item Dot we’ll use outer outer HTML so we want to set that to a condition okay or a ternary so we’ll say if the index is equal to is equal to one then we want this this outer HTML to be list item and then second item okay else then we want this to be a list item and just say replace all or we’ll just say item like that okay so if I comment this one out and save then we get the same result it’s just a little cleaner and a little shorter now another way that we can replace something is by selecting the parent element and then using a method called replace child so I’m going to create another function here let’s call this replace child heading and what I want to do if we look at the HTML here in the header there’s an H1 that says shopping list so I actually want to replace that with an H2 so the way this works is we select the parent which is the header we select the item we want to replace and then we replace it with a new item so let’s go ahead and first of all select header so that’s going to be let’s say document dot query selector and that has I will just select it by the the element itself which is header and then let’s get the H1 so H1 and we’ll say header H1 and then let’s create a new element we’ll call this variable H2 say document dot create element create an H2 and let’s add an ID because I believe that has an ID or it doesn’t okay but we can still add an ID we’ll say dot ID equals app dash title and then for the content let’s say text content and I’m just going to keep the same shopping list okay and then all you have to do is on the header we can do replace child and we want to replace we want the H2 to replace the H1 all right so let’s run that function replace child heading save that and now this should be an H2 so if we check it out there we go H2 and it has the ID of app title okay so those are some of the ways that we can replace elements in the next video I want to show you how we can remove elements okay so now we’re going to look at removing Dom elements now just like with most of the stuff that we’ve talked about in this section the things we’re doing we’re usually going to do when we fire off an event such as click this delete button right here then we would remove this all right but I just want to show you that the methods to manipulate the Dom before we get into events and we’ll get into events in the next section so so there’s basically two methods I want to show you remove and remove child so they’re pretty self-explanatory remove is going to be called on the element you want to remove remove child is called on the parent element and then you pass in the item you want to remove so I’m going to give you a couple examples in the form of functions so let’s say we want to remove the clear button so all we have to do here is Select say query selector and we’ll select the clear button which has an ID of clear and then we can just call remove okay and then if I come down here and I say remove clear button and now it’s gone and you could put this you know you could put this into a variable like say clear button and then what you could do is just call on clear button variable removed same thing all right now the next one is remove child so I’m going to create a function called let’s say remove first we’ll say remove first item and we want to since we’re moving using remove child we want to get the parent which is the UL so let’s set that to document dot query selector and select the UL and then select the item we want to remove I’m going to call this variable Li and then as a selector we’ll pass in Li and we’ll do first child or you could just do Li so that’ll select the first one and then we want to call on the parent on UL we want to call remove child and then we’ll pass in our Li and then if I call that let’s say remove first item and now you’ll see apples is gone so that’s remove and remove child now we’ll do a couple other things just to you know explain it a little bit further so let’s create a function and let’s just call it remove we’ll just call it remove item and then I wanna I wanna pass in an item number or index and it’ll delete that item right so if you want to try this yourself then you can pause the video and do that but I’m going to comment out this remove first item so we have our apples back and what we’ll do is I’m going to show you a couple ways to do it we’ll use remove child in this one so we’ll get the UL so UL equals document dot query selector we want to get the UL and then for the LI let’s see I’ll just copy this down the LI we want it to be the specific item number and I want the item to be one two three four so so what we could do one of the ways we could do this is to put in backticks here for our selector and then do Li and then say nth Dash child and then in here we can put our variable of item number so that way if we come down here and we call remove item and we pass in one and save let’s see that didn’t work oh we did I didn’t actually call the remove so UL dot remove child and pass in the LI variable and now apples is gone if I pass in 2 then orange is gone all right now another way to do it is let’s see I’m gonna I’ll just copy this but I’m going to call this remove item 2 I guess and instead of we’ll still use remove child but instead of passing the variable into this pseudo selector I’m going to query selector all because remember what that gives us if I select all Li’s is an array-like structure called a node list and we can access the index so I can do this and what this will do is put the very first one the zero index which is Apples into this Li and then I I’ll remove that so to give you example let’s say remove item two and it doesn’t matter what I pass in just yet I’ll pass in one but Apple’s is still gone because I have 0 here so what I want to do is this item number I’m going to put that in here however remember it’s zero base so if I pass in one here like I am right now and I save it gets rid of the second one which is orange juice because this is zero base but I’m not making this like I don’t want to pass in zero so all we have to do is take that item number and just subtract one from it so now if I pass in one apples is gone if I pass in two then orange juice is gone all right now I’m going to give you one more example so let’s say function remove item and we’ll call this remove item three it’s going to take in item number now I don’t I’m going to use remove in this one instead of remove child so I don’t need to get the parent so what I’ll do is uh I’ll just copy this line here and I’m going to get all of the list items so I’m going to just get rid of these brackets here so we’re getting all the list items and then we can simply do Li which is a node list which is array like so we can say item number subtract one because it’s zero based and then on that item or on that element we’re going to just call remove so let’s go ahead and say remove three we’ll put pass in a one here and that should get rid of apples if I pass in 2 gets rid of orange juice pass in three gets rid of Oreos all right and uh and we can really shorten this up actually we could say const remove item three let’s call it four so remove item four and let’s make that an arrow function that takes in the item number and then it’s gonna return let’s say document dot query selector all right so query selector all and then we’re going to pass in here item number minus one and then call Dot remove so if I come down here we call remove item four and I pass in one that didn’t work let’s see oh I forgot to put the actual Li in here and there we go so now apples has gone now orange juice is gone so this is just a shorter way of doing this all right so that’s it in the next section we’re going to start to look at events which I’m sure a lot of you have been waiting for all right so what I want to do in this video is look at some of the properties we can use to manipulate CSS classes and just our CSS directly which we’ve done a little bit of this already but I want to really just just drill it down here so we’re not using the shopping list UI we just have uh we have a paragraph that has a class of card I have just this background and border and then a UL that has a class of item lists and items because I wanted to have something that has multiple classes and then a button that says run now we’re going to go over events in the next section but I wanted to have an event a button click here because 99 of the time when you’re changing classes and changing Styles it’s going to be on some kind of vent it’s not just when the page loads you would use CSS to just simply add Styles when you use JavaScript with CSS is when you want to have Dynamic functionality if you click on something like if you wanna display a menu or something on click like a hamburger menu that’s where you would use these kind of classes and and style manipulation as far as the style sheet I just have just I just changed the font I have a class of hidden with display none you’ll commonly see this if you want to hide something then we have a class of card that just designs this background here with the border and a class of dark which will give it a darker background and I haven’t used that yet anywhere in here so let’s jump into the script and I just want to bring in what we need so I’m going to bring in the paragraph so let’s say document dot query selector and we’ll select the paragraph all right then we’re going to Let’s copy this down we’re going to grab the item list so we could either put UL in here but it’s better to Target a class or an ID so let’s say item list and we’ll call this item list and then I also want to get all of the items so we’ll call this items and then what I’ll do is on the item list I’ll call query selector all and we’ll select all of the list items all right now as far as the The Click event goes I’m going to select the button so we’ll say query selector and select button usually you should have some kind of ID because you probably have multiple buttons on your page but in this case it’s fine and then I’m going to do dot on click okay and again I’m going to talk about events all in the next section that’s what the next section is based on so don’t worry about it right now if you don’t understand it but we’re just going to set the on click event to run a function called run and you don’t want to put parentheses here because that will automatically execute it so up here let’s create a function called run and if I just do a console log here and then let’s open up our console if I click it you should see a one all right now this is where I want to show you the different properties so the first one is class name so if I do a console log here of let’s take the item list and let’s say class name and I click this it’s going to show me all of the class names okay it’s just basically it gives you a string of all the class names now you can set the class name as well like I can say item list and let’s say dot class name and let’s say I set it to that dark class all right now actually you know what I want to use the the paragraph for this so the text so if I click on run notice it applies the dark class and we can check that out right here but it took the card class away so this is always going to overwrite whatever classes you have there so if you do do it this way you need to make sure that you also put the existing classes so in that case I could do that and then that would keep the Cod class as well all right now A Better Way for dealing with this is to use the classless property the classless object which has different methods you can use on it to add and remove classes or even toggle classes so let’s look at class list all right now if I were to console log here let’s say item list Dot class list okay so I’ll click let me just um we’ll comment this stuff out for now so if I click that you’ll see what we get is a it’s actually called a Dom token list which is similar to an array it’s basically an array of our classes all right and I could even Loop through that with a Dom token list you can use methods like for each so if we say item list Dot classlist dot for each and I’ll say for each class then let’s do a console.log of that class so now if I let me just comment this this one out so if I click run now you’ll see it’s just going to log each class so you can take each class and do whatever you want with it in this case I’m just logging it out now to add a class like let’s say we want to do this same thing we want to add the class of Doc but we also want to keep the class of card so I could take the text and say dot class list and then there’s an ad method that we can use and I want to add the class of Doc so now if I click that and that runs you can see it still has the formatting from the card class it just added the new class of Doc all right now we also have a remove so if we do let’s say dot remove and let’s remove the card class which will take away the padding and the the border and stuff so what happened is it added the dot class and then it removed the card class so there’s no more padding now we also have a toggle class which is very useful so let’s comment that out and Let’s uh let’s say text Dot class list and then we’re going to use toggle and let’s toggle the doc class so this is good if you want to have like a a doc light switcher a lot of websites have those so if I click on run it turns dock if I click it again it then removes the class in fact let’s go ahead and take a look at that you see this paragraph click run and dark it’s added click it again it gets removed so that that’s something that is very useful when you’re creating dynamic dynamic websites now I could also do let’s say we want to toggle the hidden class so what that’ll do is when I click it it goes away click it again it comes back so pretty cool now there’s also a replace class so if I wanted to do let’s say text.classlist I don’t use this one as much but it is available so if we wanted to replace let’s say we want to replace card with Doc so it’s going to take in two arguments so if I click now you can see the card is gone there’s no padding and the dot class has been applied so it just replaced it now if I want to change the style directly let’s say change Style then we could use the style property and we’ve already done this a few times but let’s say we want to take the I don’t know take the item list and let’s say Style and let’s change the line height now in normal CSS you would do line Dash height but we can’t do that here so if you have multiple words we just use camel case so it would be line height like that and we’ll set that to let’s set it to three so now when I click the button you’ll see that the line height is applied so you can do that with any CSS style or any CSS property if I wanted to change let’s say I wanted to um do something to all of these list items what I could do is there’s a few ways to do this but I could Loop through these right so item list I’m sorry not item list items which is the query selector all and let’s say for each actually I’ll put some parentheses in here because I want the item and the index and then for each item you can do whatever you want so let’s say we want to style the color and set that to Red all right so now I click that and all the items turn red and you can Target specific ones like let’s say we want to say if the index is equal to two then let’s make that item Style color we’ll make that one blue so now if I click it you’ll see that the third item is blue because that’s the index of two all right so that’s really the basics of of just dealing with uh classes and style in JavaScript all right guys so now that we’ve looked at all kinds of methods and properties on the document object to be able to add change and remove things from the Dom now we need to learn about the actions that the user takes to make these things happen and those are called events and any interaction that the user has with your web page all the way down to the actual loading of the page is an event and we can listen for those events and create something called event handlers so in this section we’re going to learn about all kinds of events most and keyboard events form submissions event delegation and bubbling and and much more so with the knowledge between this section and the last section you’ll be able to create some cool little front-end applications and then after this section we’re going to start on the shopping list project and we’re going to build that from scratch all right so in this video I want to show you how to listen for events but first of all what are events so the official mdn explanation is that events are actions or occurrences that happen in the system you are programming which the system tells you about so your code can react to them so that’s kind of uh an Overkill of an explanation basically an event is just when something happens okay or an action and that could be anything from the web page loading to clicking on an element typing into a text field hovering over an element submitting a form closing a window dragging an element resizing an element etc etc so just about anything is an event and you can listen for those events so that’s what I want to show you how to do now so I’m going to close that up and I just have our our good old shopping list UI here with an empty Javascript file and there’s a few ways that we can add an event listener onto an element so the first way I’m going to show you is is not recommended I don’t think any JavaScript developer would recommend it because it’s not flexible it can also pose a security risk and that is to put the listener in the HTML file as an attribute so for example this this clear button that’s what I want to work with so we could put in here an on click attribute and then I could actually put a JavaScript expression right in here like I could say alert and say clear and now if I come down here and click the button I’m going to get an alert box with clear all right now obviously you can only put so much JavaScript in here so you could actually put a function like on click or let’s call it on clear and as long as I have my script file linked to my HTML here I can create a function called on clear and then I can alert and we’ll say clear items all right so if I come over here and I click again we get an alert box with clear items but again this is not recommended you don’t want to have your HTML cluttered up with what are called inline listen event listeners so we’re going to get rid of that and then I’m going to show you the second way which is to use a JavaScript event listener so with this we can select our element let’s see I’m going to keep the on clear here but I want to comment it out but I’m going to bring in the clear button because I’m going to use it in a few different places so let’s say clear BTN we’re going to select it with query selector and it has an ID of clear all right so what we can do to add an event listener within our JavaScript is to say clear button and then just do a DOT on click and on click is one of many event listeners and then you would set that to a function and then do what you want in here so let’s do uh we’ll do we’ll do an alert so we’ll say alert and clear items okay so if I come over here I click and I get my alert box and I didn’t have to do anything in the HTML so that’s the second way the Third Way is what I would recommend it’s the most modern way and it’s what we’re going to do in this for the rest of this course and that is to use the add event listener method and what that does is it just allows you to do just that you take an HTML element or a Dom element and you add a listener for a specific type of event so let’s comment this out for the moment and let me just say add event listener so we would once again just take the clear button or whatever we want to put the listener on and simply say add event listener and then this takes in two arguments it’s going to take in the type of event which in this case I want it to be a click and then it takes in a callback function so I’ll just put an anonymous function in here and then I’ll do an alert and we’ll say clear items save that and if I come over here and click I get the same thing all right gives us the same result now you can shorten this up we can go ahead and turn this into an arrow function so we can do that and since it’s just a one liner we can even get rid of the curly braces like that and that should still work all right so this is what I would recommend and another kind of Advantage with this is you can have as many event listeners as you want on the same event and let me just show you if I uncomment this and then I copy it and then let’s say I want to do I want another event listener on the clear button and this time I’m going to just console.log clear items all right I’m going to comment this out for a minute so we have two event listeners same event same element but they do two different things so now come down here and let’s open our console and let’s click and you’ll see we get our console log but I never get that alert okay if I comment the second one oh then we should get the alert now with add event listener we can have as many as we want so I’m going to just copy this down and let’s see instead of on this for on the second one instead of alert let’s do console.log and now if I click this you’ll see we do get the alert and then when it once I clear that up then the it console logs all right and the reason that it doesn’t run at the same time like you don’t see the log at the same time is because an alert is a blocking operation and I’ll talk more about that when we get into synchronous versus asynchronous code but just know that an alert is it’s synchronous and it’s blocking so nothing is going to happen until that’s cleared up all right but it does run both of them so that’s an advantage of add event listener now for these we put in just an anonymous function but we can use a named function such as on clear so I’m going to just uncomment that and I’ll just comment one of these and then instead of passing in this Arrow function as the second argument let’s pass in the on clear function now when you do this you don’t want to put parentheses if I do that it’s just going to execute okay the function gets invoked because we’re using parentheses so you just want to pass in the Callback you want to pass in the function name so that way it only fires off when you fire the event all right now there is a remove event listener method and you don’t have to use it every time you add an event listener where you do want to use it is when you have an element that you’re removing from the Dom like we learned about the remove method remove child if you’re doing that then it’s a good idea to remove the event listener first so what I want to do is is call remove event listener but I want to call it five seconds after the browser low after the page loads and I’m going to use a function called set timeout to do that which we haven’t used yet so it might be a little confusing but we will get into set timeout which is an asynchronous JavaScript function and we’ll get into that later but basically it takes in two things a function and then it also takes in the number of milliseconds that I want to wait to fire this function off and I’m going to say 5000 which is five seconds and then in here is where I want to remove the event listener so I’ll say clear BTN dot remove event listener and what I’m going to pass into this is the event which is click and then I also need the reference function which is on clear okay and which we we have up here okay so that’s the function being passed in to add event listener also the function being passed in to remove out of uh event listener so if I save that you’ll see that this works fine I’m clicking it it’s it’s you know the box is popping up but once we get to five seconds you can see I can no longer click it because that event listener has been removed now the last thing I want to show you before we make this actually function and clear these items is that we can trigger an event programmatically so if I wanted to have my script actually do the click instead of coming over here and clicking I can do that so I’m going to actually use set time mode again because I want this to happen after a certain amount of time I’m going to comment this set timeout and once again we pass in a function and also the length of time we’ll do five seconds and I’m going to take the clear button and then from here I can do dot click like that okay so if I save that and then we just wait five seconds there we go we see the the alert box okay so we have this this event to this click event and here we’re waiting five seconds and then we’re basically clicking this just from within our script rather than coming over to the browser and clicking the button all right because there might be some cases where you need to do that where you need to actually fire off an event from um you know from your script so now what I want to do instead of just having this alert clear items is make this actually work or we click clear and all of these go away so what I want you guys to do is pause the video and see if you can do it and see how many different ways you can make that happen just for from what we’ve learned so far there’s there’s many ways you could do it so just pause the video and see if you can do that all right so the the easiest way would be to just take the uh not the clear button we need to have the the unordered list so we’ll say query selector and we’ll select the uh unordered list actually I’m going to put this in a variable let’s say item list okay now when it comes to setting these in variables it’s all preference if you’re just using it once in one function then I mean I would probably just use document query selector and not put it in a variable if you’re using it a bunch of times in your function then do something like this if we’re using it a bunch of times in the script then put it at the top you know in the global scope but different people have different preferences so what we could do is simply take that item list and set the inner HTML to nothing that would be the easiest way to do this clear it all right it isn’t the most performant but you’re not even going to notice a difference because this it’s such a simple task so that’s the first way of doing this second is to bring in the the actual list items so we’ll say items and we can set that to item list and then use Query selector all and select all of the list items and then we could Loop through the list items so items dot we could use a four each and that’s going to take in function we’ll say for each item then we want to do an item dot remove okay so if I do that I click clear they’re all going to go away all right and then the last way I want to show you is using a while loop and I I guess this is the most performant way to delete multiple items like this so we’ll say while it’s it’s a it’s a way that I didn’t really use before a little while ago so we can say item list and then we can use the first child property to just check to see if there’s a first child if there’s a first child that means that there’s there’s a list item and then we can take the item list and use remove child let’s say remove child and then we can pass in the first child with item list Dot first child all right so we’re basically checking for the first li if it’s there then we’re going to remove it and it’s going to do that until there’s no more children and that just fired off because of this let me just comment that out okay so I click and they go away all right so that’s it in the next video I want to start to look at some other Mouse events other than just click okay so now we’re going to get into some of the mouse events that we have that we can listen for and we’ve already looked at click but there’s many others as well so I’m going to just pick something on the page to assign these event listeners to I’m going to use the logo so I’ll say document dot query selector and I’ll just select the IMG because it’s the only IMG on the page and then I’m going to put all my event listeners at the bottom of the page which is my preference if I have my event listeners hooked to a function I like to put the functions up top and the event listeners at in the bottom so let’s do a click just so just to be consistent and have all the mouse events I know we’ve already looked at it but we’re going to say add event listener and we’re going to listen for a click and then we’ll have a function called on click all right and then we’ll create that function up here I’m going to use Arrow functions just to keep them shorter so I’ll say const on click and then I’m just going to do a console.log and say click event all right so if I come over here to the logo and I click I’m going to see click event so the next one I’m going to show you is double click now what we call the function like right here I can call it anything we’ll call this on double click this is is where you need to be specific so double click is DBL click and it’s all lower case it’s not like this right if you if you’ve used jQuery before and used events there it was camel case but in this case it’s going to be all lower so let’s copy this down and we’ll say on uh double click then let’s say double click event so now if I come over here and I if I click once I get click event if I double click I’m still going to get my my two click events but it’s also going to fire off the double click event all right and just to make this a little more fun let’s actually put some curly braces here make a code block and let’s have it do something else so I would encourage you if you’re just learning this stuff I’d encourage you to to just create events and just do some weird stuff you know like maybe we can take the body uh background color and change it so we’ll say style Dot uh background color and we’ll set that to purple so now if I come over here onto the logo and I double click we get a background of purple and maybe we want to toggle it so what we could do is put an if statement around this and say if it’s not equal to purple then we’re going to make it purple and we’re also going to make the text White so go like that and then set the style color to white else because we want to be able to toggle it so else then we’re going to set the background to White and we’ll set the we’ll set the text color to Black all right so now if I come over here and I double click changes the background in the text color I double click again it goes back to White and I can toggle it right because we just we have an if statement we’re checking that background color all right so I mean I know that’s kind of pointless and stupid but it helps you learn so I would encourage you to just do stuff like this as you’re learning all right the next I know that was kind of a tangent but the next one is to if you want to right click and the event is not called right click it’s called context menu because that’s what it usually does is open up a context menu but I’m going to call the function here on right click and then I’ll just um we’ll grab that and let’s change this to on right click and we’ll say right click event and again if you want to do something else other than just a console log you can but you’ll see now if I right click the context menu opens up but it also shows me the the console log okay the next one is the mouse down and mouse up so let’s do mouse down and then we’ll call this on Mouse down now oh we need to create our function say mouse Mouse down event and we’ll call this on Mouse down okay so what this pertains to is when you when you take your mouse and you just click and hold see I’m holding the the the left button down right now that’s the mouse down okay when I let go then it’ll say click event because the click consists of down and up a mouse down is just when you hold it down because you might have something maybe you’re creating a game where you like click and drag or something like that and you want to have something happen when that as soon as that mouse goes down and at the same time you can also have a mouse up so let’s say on Mouse up and we’re going to listen for Mouse up and we’ll just copy that up on Mouse up and Mouse up alright so now if I come over here and I click and hold I can see the mouse down event when I let go we’re going to see The Click but we also see the mouse up okay so most down Mouse up next one is wheel so if you want to have an event on the mouse wheel and the event is is called wheel so bring this down and let’s say on Mouse wheel okay so now if I just if I scroll and I’m not over that the the logo the the item with this that this is on then it’s not going to do anything down here but if I come over it and I scroll now we’ll see the mouse wheel event and it’s going to fire every time I do a little you know a little scroll or whatever so those are are the events for the buttons now we also have events for hovering there isn’t an actual hover event that I know that for me back in the day when I learned JavaScript I also learned jQuery at the same time which I wouldn’t recommend and there’s a hover event in jQuery but with JavaScript you have Mouse over and mouse out so let’s say let’s copy this down and let’s say mouse over and then we’ll say on Mouse over and then let’s copy this down and say mouse over event on Mouse over all right so now you’ll see that when I go into the logo that Mouse over event fires off okay if I come out it doesn’t do anything if I go back in again so every time I go in then it’s going to fire that off now the out does the opposite so let’s say on Mouse out and the event is called Mouse out and out all right so now if I go in I get mouse over if I come out I get mouse out all right so that’s how that works and then the last couple I want to show you have to do with dragging so let’s do we’ll get more into drag and drop later but the first one I want to show you is drag start so we’re going to say on drag start and the event name is drag drag start oops and then let’s go up here and copy that down we’ll call this on drag start drag start event okay so now what I’m going to do is come over to the logo I’m going to click and hold and then move it okay so you see that it only fires off when I click and I drag it it only fires once it doesn’t like keep going when I’m when I’m holding it and moving it around that’s the drag event so that’s what I want to show you next so if we do let’s say on drag and just drag and then we come up here and just say on drag and drag events so now as soon as I grab it and I pull it’s going to say drag star but as long as I’m holding on to it even if I don’t move barely it still is just going to keep firing off and the faster I go the faster you know the event is going to go off so that’s drag and then you also have drag end for when it ends so let’s say on drag end and say drag and drag and all right so now if I grab it so we can see drag and then when I Let Go we should get that drag end oh I put I did camel case here so if I let go there we go drag end event so it’ll just keep dragging until I let go and then we get the drag end all right so those are Mouse events in the next video I want to before we move on to like keyboard events and stuff I want to look at the event object so there’s actually an object when we fire off an event that we can get as uh as a parameter here that we can use to to get all kinds of information so I want to look at that in the next video all right guys so in this video I want to take a look at the event object that’s available to us when we add an event listener and then we run a function so these right here are just some of the properties on the event object that I want to take a look at we’ll get to that in a second but first let’s go ahead and take an element from the Dom let’s just do the logo again so that’s the image and I’m gonna add an event listener onto that so logo dot add event listener we’ll just use a click event and then I’ll pass in a function here now these functions that we pass in can take in an optional event object and you might see it as e you might see it as event you might see it as EVT e is usually what I use it’s just preference but it could it could technically be anything and then let’s just do a console log of that event object so now if I come over here and I click on the logo we’re going to see this in the console so this is the event object with a bunch of different properties and methods on it okay and these these are all in here but it’s not all of them I’m not going to go over every single one right now some of these you just will never use anyway now this doesn’t matter if you pass in an anonymous function like this or if we create a separate function like let’s say function on click so even if we do it this way we’re still going to have access to that event object so what I’ll do is just replace let’s replace this with that named function of on click and if I click on the logo we get the same thing all right now the first two that I want to show you are Target and current Target so Target is the element that triggered the event all right so basically the element that you click on so let’s go ahead and log e dot Target in this case when we click on the logo we’re going to see the image tag because that’s that’s what we clicked on now the current Target is the element that the event listener is attached to now in this case these are the same right so whether I do current Target or if I do current Target so if I do that I’m going to see image twice because it’s the same thing right it’s I clicked on the image and the event is also attached to the image now it can be different I’m going to show you that in a second but I just want to mention that you can use this e dot Target or current Target most of the time you’ll probably be using Target but you can use this to do certain things to that element so for instance I could take e dot Target and then take the style and change let’s say the background color and set that to Black so if I click this now you’ll see that the background turns black so if you need to access the event that’s clicked on you can use e dot Target and you can do anything to it as if it were just an element you brought in with query selector all right now as far as the difference here I want to show you I want to show you where it would be different so if we put on the body just document.body and then we add an event listener right so add event listener and we do a click event and then we have a function and then I’m going to copy both of these console logs here and paste this in now if I click on let’s say this this list item right here if I click on that oops I forgot to pass in the the event object if I click on that you’ll see I get two different things here because the the event is put onto the body and that’s what current Target is it’s whatever the event is attached to the Target is whatever I clicked and then in this case I click the LI which is in the body so basically what happens is events bubble up if I click on the list item that event bubbles up to the to the parent which would be the UL and then bubbles up to that pattern and that parent all the way up to the body up to the HTML and I’m going to go over event bubbling soon but that causes us to get two different things for Target and current Target if we put a listener on something like the body when we put it on the image there’s obviously nothing is is like is nested inside of that that would click on we’re clicking on the image and that’s where the event is but there is a difference between those two all right so let’s look at some of these other ones we have type so I’ll uh let’s see I’ll just comment these out and let’s console log e DOT type so now if I go and I click on the logo the type is a click so that’s that’s the type of event that was triggered okay so if you want to access that the timestamp so I guess we’ll just copy that down and let’s say time stamp if I click on it that gave me undefined that’s because it should be an uppercase s okay so it gives us a time stamp and that’s going to change obviously whenever I click on it but if you need to access that for some reason then we also have these positioning coordinates so client X and client y this is the X and Y position of the mouse click relative to the window all right so let’s try that let’s uh let’s do e dot client X so the x-axis is always going to be horizontal okay so it’s from right to left and then Y is going to be top to bottom so if we save that and let’s click on the corner of this this image right here and you might get something slightly different but what we get is 27 and 58. so what that means is my cursor my my arrow when I click is 27 over from the left on the x-axis and 58 down from the y-axis if I move down a little bit you’ll see now I get 26 for the X and I get 105 for the Y because I’m further down okay so that’s what that those coordinates are now we have some other ones as well like offset X and offset y that’s going to be the mouse click relative to the element all right so what I’ll do is um let’s copy these and then what are we looking at offset so we’ll take these and change that to offset and now if I click in the corner here I get 10 and 11 so I’m slightly over to the left and down if I go up a little bit and over to the left 3 and 8 if I come way down here to this corner 42.53 so it’s the coordinates of where I click within this element okay not from the page like the client but the offset is going to be within within that element then we have the page X and Y which is going to be the position of the mouse click relative to the page okay not the window but the page which is going to be very similar so uh if we were to let’s go let’s change this and this to page and if we come over here and click if I click Like right here it’s going to be from the page you know from the the y or the x is 29 and the Y is 61. now if I make this bigger to where this is pushed way over and I click now you see we get 503 on the X so there’s a lot of space right here and still 62 here that that’s not going to change unless I resize the browser the other way all right so that’s getting the page now you can also do the screen there’s a screen X and Screen Y and that’s going to be your entire monitor so if we were to do that and this is going to be different depending on the size of your screen I have a Ultra wide so the x is going to be pretty large so if I do that so we get 366 from the top and 2916 from the from the left all right so and there’s others those other properties on here but I’m not going to go over every single one right now let’s see I wanted to talk about the method prevent default that’s something that you’re going to use quite a bit when you’re dealing with forms and what that does is it stops the prevent default of the behavior and with a form when if you’re if you’re dealing with front-end JavaScript for validation or maybe you’re making a fetch request or whatever it might be and you don’t want the form to actually submit to the page then you would use prevent default okay you could even use it on a link so if we come over here to the HTML and they’ll just put a temporary link somewhere in here all right so let’s just say we have a link to say Google Google and save so right now if I click on that obviously it takes me to Google but let’s say I want to put an event on that link and I want to stop that that behavior of bringing me to google.com so I’ll say document dot query selector and it’s the only link on the page so I’m just going to use a and then let’s add an event listener oops let’s say we want a click event and then we have our function pass in our event object and then instead of going to the page I want to stop it with prevent default which is a method so we want our parentheses okay and then let’s say I just want to have a console log instead and just say link was clicked so if I save that now and I come over here and I click the Google link you’ll see it doesn’t take me anywhere because of this it’s it prevents the default behavior and then it will do whatever JavaScript I have underneath okay so like I said that’s really common when you have when you have a form that you don’t actually want to submit to a page because you’ll see it actually submits to this page you see how that changes to the the spinner you can stop that with event e dot prevent default which we’ll be doing quite a bit throughout the course now some of these values can be dynamic like the the client X client y if we have let’s say a drag event then that will constantly change so let me just give you uh give you an example here so I’m gonna see we’ll just add another event listener to the logo let’s say logo dot add event listener and this time I’m going to listen for a drag event remember we looked at that in the LA I think it was yeah the last video and then we’ll do on drag oops I don’t want to do that so we’ll create a function here called on drag and we’ll pass in our event object and then what I want to do here we could console log but let’s go ahead and add it to the page so we’ll select let’s say query selector and we’ll select the H1 and then let’s set the text content and set it to some back ticks so a template string and then we can say we’ll say x and then we’ll give the x value by putting in a variable or a JavaScript expression here of e dot client X remember because we have access to that event object so we can use that for anything all right then we’ll do y and let’s put in here e dot client y so now if I save and then I click on this and drag it you’ll see that the H1 now changes to the X and Y values so that’s how you can create really Dynamic stuff within the browser like games and and so on is tracking positions and using events but this is what I mean when I say just try out like stupid little things like this which obviously doesn’t make much sense you wouldn’t have this in a real project but it gives you practice on everything really creating events selecting items or elements using the event object whatever okay so that is the event object we’ll be using much more of it throughout the course in the next video we’re going to look at some keyboard events all right guys so now we’re going to look at some keyboard events we’re also going to look at certain properties on the event object when we use these keyboard events and the element that I’m going to work with is this item input right here so when we type in here we want to basically detect these keyboard events and there’s three main ones that I’m going to show you key down key up and key press so let’s start off by bringing in that input I’m going to call this item input and I’m just going to use get element by D just to switch things up a little bit because it has an ID of item input item Dash input all right so we have this element and now I’m going to take that item input and add an event listener onto it and let’s listen for the key press event and when that fires off then we’re going to run a function called on key press all right we’ll come up here and let’s create a function I’m just going to use an arrow function and we’ll say on key press and remember when you use an arrow function if you only have one parameter here you don’t need you don’t need parentheses around it although my editor will add them automatically when I save but let’s go ahead and just console log here for now we’ll just say key press so we know when that’s fired off and I’m going to go in here I’m going to just hit any key and hold it down so hit the letter K and you’ll see it it fires off if I Let Go nothing else happens it’s basically as when you tap any key and it doesn’t matter if you just tap it quickly or hold it down it fires off that event just once all right now the next two key up and key down let’s comment this one out and let’s look at let’s look at Key up first so we’ll say on key up it’s the key up event and then I’m just going to copy this down say whoops on key up and key up okay so now what I’m going to do is again just just hit a key and hold it and nothing happens yet but when I release then that fires the key up event all right and that function gets called so when you release is when this is this event now let’s go ahead and do the key down so key down and I’ll just whoops that’s not what we want I want to copy this down and we’ll call this on key down key down okay now I’m going to choose a key I’ll just do the letter H and I’m going to hold it down now notice it fires off but it keeps firing off as I’m holding it down until I release and then it stops so that’s the difference between key press and key down key press is basically just it as if you were to tap it once where key down it’s going to keep going if you hold it down now there’s a couple properties on this event object where you can get the key that’s pressed because in many cases you’re going to need to know that let’s say you’re creating a game where you can hit the arrow keys and you can move something in different directions so obviously you need to know what what arrows which keys are being pressed or you might simply have an input field without a submit button and you want to know when they hit enter so that you can do something so there’s many cases where you’ll need to do this so what we’re going to do is first of all let me just put the comments in here so this there’s actually three we can use there’s key there’s key code and there’s code all right now key is probably the easiest however there are some older browsers that don’t support this um I think you you’d probably be fine using it but you might want to use another one in combination or instead of it but let’s just do a console log here of e dot key so I’ll just type in let’s say B so you can see it’s logging in the console whatever I’m typing and you could do whatever you want with this like we could say uh document Dot I’m not going to keep this but just to show you real quick if I select the H1 and then we could set the let’s say in our text equal to e dot key and now if I type in here b r a d it’s gonna it’s gonna replace it it’s not going to append it we could have it appended if we wanted to but it’s just going to replace with whatever I type all right so again just something kind of cool you can experiment with but let’s get rid of this and I just want to show you if you want to test for a certain key what you could do is you could just put this in an if statement and we could say if key equals let’s say enter capital E enter and then we want to do an alert and we’ll say you pressed you pressed enter all right now in this case if I hit enter it actually is going to submit the the form to the page however alerts are they’re blocking they’re blocking events so it will fire the alert before it actually tries to submit so if I hit enter you’ll see that I get the alert if I type anything else it doesn’t until I hit enter all right so that’s key now for key code it’s a little bit different it’s going to give you an actual number a key code so I’m going to paste this link in here and this is a link to a page that will give you the key codes so you can see like enter is 13 shift is 16. so every key on the keyboard has one of these codes these key codes so if I wanted to for instance check for enter I could say if and then say e Dot key code so if e key code is equal to the number 13 then we’ll just same thing we’ll just alert and say you pressed enter and I’m just going to comment this one out all right so if I save that I type in here and I hit enter you can see that’s another way we can test it and then we also have code so for this it’s going to look like let me just we’ll console log e dot code so if I hit like the letter F it says key f key D if I hit the number one we get digit one so of course if we wanted to check for that we could say if and let’s say we want to check for if we hit the number one so we could say equal to and then the string of Digit one and then we’ll just we’ll do a console log and say you pressed one so now if I hit in here if I go two three four but if I hit one then we get the console log all right now there’s also a repeat property and you’re gonna usually use this on the key down because what it does is it it lets your script know if you’re holding a key down or not all right so if you just tap a key it’s going to be false if you hold the key down then it’s going to be true so what we can do is let’s just do an if here and we’ll say if e dot repeat and that’s going to be true or false so we can just pass that in then we’ll console log and we’ll say you are holding down and then I’m just going to concatenate on that e dot key so now if I click in here and I just tap let’s say the letter L you’ll see that nothing happens in the console however if I if I hit and hold l we get you are holding down L because that repeat property is true as long as I’m holding a key down so you can really just tell like whatever whatever the user’s pressing as well as how they’re pressing it you can also test to see if they’re holding shift or control or alt so let’s come down here and I’m just going to console log these so these are properties we have shift key control key and ALT key so let’s console log and I’m just going to put the text shift and we’ll do shift colon and then I’m going to just concatenate on the shift so shift key property all right so now if I come over here if I just hit the letter D we get shift false if I hold shift and hit D we get shift true okay so that you can tell if they’re doing these combinations same thing with control and ALT so if we say um what is it Ctrl so control and then we also have alt which would be option on a Mac so this will be ALT key all right so come over here and I’ll do just hit L everything’s false if I do control L you can see control is true if I do option or alt L true so you can tell that the key combinations and you can you could do an if statement here as well and of course you could say if e Dot say e dot shift key and we want to check if let’s say e dot key is equal to K and then we’ll just do a console log here and say you hit shift plus k so now I’m going to come in here and I’m going to hold shift and hit K it says you hit shift plus k all right so those are keyboard events along with these different properties you can use to to figure out which key is actually being pressed all right guys so now we’re going to actually build a little project using the the key code information that we learned in the last video so this is actually a production application at toptel.com developer key code and it says press any key to get the JavaScript event key code info which is the stuff we looked at in the last video so I’m just going to hit a random key I’ll use the letter L and what it’s going to give us this 76 this is actually the event dot key code remember we have a number for every every key and then down here you can see what you get for event dot key which would be L you have event dot code which would be key L we’re not going to do these other things which you could because these are also on the event object but what I want to do is kind of recreate this application and just show the event dot key the event dot keycode and the event dot code all right now what you’ll have in the starter file is simply the HTML and CSS if I hit a key nothing’s going to happen right now because it’s just HTML and CSS now this is actually from my 50 projects in 50 days course however in the course we did it kind of the quick and dirty way where we just used in our HTML and then set these three basically these three divs okay I’m going to show you that way but I’m also going to show you a better cleaner more performant way where we actually create each of these key elements in the Dom and then we insert them and we’re going to be using a 4 in loop we’re going to be using an object we’re going to be you know doing stuff we’re going to use pretty much everything we’ve been talking about up to this point so I think it’s a good project for this point in time now if we go to the HTML you can see I just have everything hard coded right and there is some styling just some very basic styling here I didn’t want to go through the CSS or type out the CSS but just a background color on the body and then each of these boxes are going to be a div with the class of key so I have the border the background and then we have a small tag which is going to be each of these so if we look at our HTML each of those those titles are in small tags okay but what we want this to do is be dynamic so that this changes this changes and this changes based on whatever key we hit now if you want to pause the video and try this on your own I would encourage you to do that but it’s understandable if you know if you’re just learning this stuff you might not be able to do that just yet so and again I’m going to show you two ways of doing it the first way is is really simple but I would actually recommend the second way so let’s say I’m just going to call this method one of doing this and there’s so many different ways you could do it so we’re going to take what I’m going to do is just listen on the window for an event all right because I don’t want we’re not going to have a specific element where you push a key like we did in the last video with the input form as long as it’s on the window then we want to fire this off so let’s say window dot add event listener and we want to listen for a key down event and then I’m going to call a function actually for this one I’ll just put the function right in here and I’ll use an arrow function so we want to pass in our event object and then what I’m going to do is take the insert element this right here and pretty much just create all this HTML but with have having this Dynamic these three items here these should be all com they should come from those those key code properties so let’s uh I guess yeah we’ll just bring the insert in right here so let’s say insert equals document Dot and we’ll use we’ll just use get element by D and insert and then I’m simply going to take insert and just edit the inner HTML so I’m going to set that to some back text and then all we really have to do is bring in this stuff as a template so I’m going to just grab these three divs with the class of key and cut those and for now as far as when you just come first come to the page we’ll just have a message that says press any key to get the key code okay so when we come to this to the to the website it’ll just show us this all right and then I’m gonna just paste in those three divs here and you might just have to kind of format this a little bit to uh to look a little better so we’ll just push these over all right now we just want to replace these three so the first one is going to be the E dot key so let’s simply replace that with our syntax our dollar sign curly braces and just say e dot key and then we’ll come down here and replace this and make this Dynamic so this will be e Dot key code and then this one will be whoops that should be money sign this should be e dot code all right and that should actually do it and if I come over here and I hit let’s say the F key you see I get f for the the key property 70 for the key code and key f for the code if I hit W if I hit n if I hit enter if I hit the the digit one now the one thing that you want to look out for is with the space so with the space button the key is actually just an empty string or a space in the string so what we can do here is just say right in here we’ll say if the uh we’ll we’ll have a condition so we’ll say if this is equal to a space like that then let’s just have the word space else then we’ll show whatever the key is so now if we hit space now space will get put in there instead of just an empty string I shouldn’t say an empty string but a space all right so that’s kind of the easy quick and dirty way of doing it and there’s nothing wrong with this I’m I’m not like one of those sticklers that thinks everything has to be perfect this works just fine but I do want to show you an alternate way of doing it as well so let’s go ahead and just comment this out and then I’m going to come down here and we’ll say method two and this is going to show us not just we’re going to touch on a lot of things that we’ve talked about so far so again we’re going to add on the window object we’re going to add an event listener and we want to listen for our key down and then I’ll put this in a separate function let’s call it show key codes if you want to keep it in uh you know just a regular Anonymous function that’s fine oops we definitely don’t want those so let’s come up here and let’s say function and show key codes okay we want to pass in our event object and then we want to select the insert again so I’m just going to grab that okay so we have our insert that’s what we’re obviously where we want to insert these Keys into and then the way that I’m going to do this remember there’s so many ways to do the same thing but what I’m going to do is create an object kind of a map I could even use a JavaScript map but we haven’t gone over that yet so let’s say key codes set that to an object literal and then for the key I want to use you know e dot key e dot key code Etc but since there’s a DOT we have to if we want this to work as an object with key value pairs we have to put quotes around that okay because that’s that’s the key it’s the title the actual key is going to go in here so e dot key now we do want to test for space again so basically we can do this same thing that we did right here so I’ll just put that in there it’s just going to test to see if it’s a empty space if it is it’ll just replace it with a string space so next we want the key code property so for the for the title here we’ll just say key code make sure you put quotes around that and the value is going to be e dot key code which will be the actual value and then we also want e dot code the value for that is going to be e dot code so what we’ll do now is let’s just do a console log of key codes and see what that gives us so if I come over here and we open up our console and if I just type something in I’ll hit the letter F so now we’re going to get an object that has our key our key code and our code if I hit the enter and so any key it’s going to just give us this object now I want to actually Loop through this object and remember to do that we can use a 4 in Loop because the idea here is to Loop through them and create one of those divs but one of these divs for each of these all right so I did with the class of key for each of these we want to create that we want to insert the text node which will be the whatever the value is also will create a small tag and append that into the key and add a text node to small as well so we’re just we’re basically like it we’re building it up okay we’re building it from scratch rather than just replacing the HTML so to do that let’s say four and what we want to have in here is let’s say let key in key codes which is the name of the object and I want to start to build up our our elements so let’s say cons div and we’ll set that to document Dot and we want to create a new element so create element we want to create a div element okay and then let’s add the key class to that so we’ll say div dot class name and we’ll set that to key right now we also want a small element so I’m going to create that as well say small equals document Dot and then create element and that’s going to be a small tag all right now for the text for that we want to put in here I’m going to create a variable for let’s say key text okay so this is basically um uh let’s see it’s it’s it’s this right here so what we want to be in the small text okay so let’s say key text and set that to document Dot and we want to create a text node and then pass in here just key okay because remember when we say let’s key and key code that pertains to this and this is a little confusing because when you look at an object it’s a key value but these are we’re also looking at Key Properties so it is a little confusing you could call this something else if you want now we also want the text for the actual key code that comes from the event object so that will be the value right it’ll be this the value of the object this is the key this is the value so let’s call this one we’ll call this one value text and then what we want to pass in here to get the value we can say key codes and then use the index of the key right so we could say key codes and then in Brackets put any of these and it will give us the value and that’s going to go in here now we just want to append the text nodes to the elements so let’s take the small element and let’s say a pen child and we want to append into the small the key text which is like the title which is this right here okay then we want to put the actual value into the key div so let’s say div Dot a pen child and we’re going to add in here the value text all right and then we need to append the small element into the div element so let’s say div a pen child again and we want to pass in here small and then the last thing to do is to add the div to the Dom so we’re going to take that insert element and we’re going to append child and then we’re going to put the div in there all right so let’s try that I’m going to save come over here I’m going to hit just uh we’ll hit the letter k now a couple things one we don’t want this to show two if I hit another key it just adds to it right every time it’s just going to keep adding so what I’m going to do is just clear the inner HTML of insert before we do anything so we’ll say insert Dot in our HTML and we’ll set that to just nothing okay so now when I hit a key let’s say the letter L the the welcome message goes away also if I hit another one it replaces it okay because what we’re doing is clearing everything before we actually before we go on and do any of this all right now obviously this is much easier than doing this but here we created you know we looped through what we need the data here and then we just created a new div element for each one and then inserted it into the Dom so in my opinion this is a better way of doing it but again I’m not bashing this this way either alright so hopefully you enjoyed this little project and we’ll do more of these throughout the course as we go all right guys so now we’re going to look at input events and how you can get the values for a form input and just for this video I’ve added a couple additional inputs so we had the text field right here which is this input and then I added this select list so just for a priority like a shopping item priority and basically I just have an ID of priority input and each option has a value 0 1 2 3 and then I also just added a check box here so we want to be able to tell if this is checked or not now if you’re submitting a form to some kind of backend technology like like PHP or node.js you would probably have like an action in your form and then submit to a page and then to access the value from the back end you would usually use this name attribute so whatever you have assigned to that now in front-end JavaScript it’s a little bit different you would not have have it submit to a back end because you would basically take over in your JavaScript and and do whatever and in that case you need to be able to get these these inputs all right so let’s go into our script JS here and I’m going to bring in those inputs so let’s say item input and I’m just I’m going to use document dot get element by D that has an ID of item Dash input okay and then I’ll just copy this down a few times the next one has an ID of priority input that’s going to be the select list so we’ll call this priority input and then this one here let’s call it check box and that has an ID I believe of check blocks and then I’m also going to select the heading the shopping list heading just so we can use it to output something if we need so we’ll call this heading and that I don’t think it has an ID so I’m going to use Query selector on that one and just select the the H1 all right so let’s start off with the text input or the item input so we’ll say item input and I’m going to add an event listener onto it now there’s a few different types of events or different events that you can use to be able to get the value and work with this input so you may see key down used so I’ll say key down I’m going to create a function called on input and run that so let’s say function on input pass in our event object and then for now we’ll just console log input so now when I come in here and I start to type you’ll see it’s going to fire off every time I hit a key every time I type in the field all right now you can use key down but I would suggest not I’d suggest using the input event which in this case will do the same thing it fires off whenever we type in but you can also use this on other other input Fields like a select list like a key down isn’t going to work for a select list because you’re not pushing any key so I would suggest using input for your your most your input Fields now to get the value remember we have we have access to e dot Target which will give us the actual Target so if I start to type every time I hit a key it gives me the Target element which is the the input tag itself now of course we don’t want that we want the value that’s typed in so there’s a value property that we can access with e.target.value so now if I start to type in here you’ll see that it’ll give me whatever is in the the form field and it’s giving me the entire input it’s not just giving me the key that I press like we saw in in the LA or the video before a last in fact if I were to do e dot key here shouldn’t even yeah it gives me undefined because it’s an input event if I do like a key press event then I can get the individual keys but see how it’s not like accumulating it’s not appending on to the last because it’s just giving me the key with this e dot Target value it’s giving me whatever is in the input so that’s what you want to use in this case all right now before I move on to the next input let’s just we’ll set the heading just to show you we can take this heading and let’s take the text content and let’s bind whatever isn’t whatever is typed in that form which will make this Dynamic where we can type and it gets put into the heading in real time which is which is cool but not very useful I mean it might be useful in some cases um but yeah and obviously that’s only on your own machine and that’s only you know in your browser and if you reload that’s going to come back now the next thing let’s look at the priority input which is the select list so let’s change this to priority uh priority input and then change actually no I’ll just leave it like that uh oh I spelled those wrong okay so now if I select something here what’s going to happen is it’s going to fire this input event and this is going to run and I can still get the target dot value with this with the select list so if I choose 2 you’ll see now the H1 is actually outputting two three so whatever I choose and it’s always going to be the value obviously you know in the HTML it’s not going to be what you put in the middle here that’s just for the user to see this is the actual value that’s being chosen okay now you can use input for this but there’s also a and that’s probably what I would recommend but there’s also a change event that you can use on a select list as well which will do the same thing in this case okay but uh I would I I’d suggest using input but I’ll just leave it at change just so it’s there and you know you can come back to it now check boxes work a little differently instead of using e.target.value there’s actually an uh checked E dot Target dot checked so what I’m going to do is on the check box say check box and we’re going to listen for an event so let’s listen for um we’re going to use input here but I’m not going to do the on input I’m going to do on checked okay and then we’ll come over here and we’ll say function on checked pass in our event object and then I’m just going to console log here e dot Target Dot checked okay now when I select it you’ll see that it would get true if I unselect it then we get false so it’s as simple as that to get if the check box is checked or not so what we could do is we could take the let’s say heading and we’ll say text content and let’s say if the check box [Music] um how should we do this we could put this in a variable we could say caused is checked and set that to that value and then say if is checked then we’ll say checked else we’ll say not checked so let’s save that and then I’m going to go ahead and check it and now you’ll see the H1 changes to checked uncheck it we get not checked all right now there’s two other input events that I want to show you and that’s focus and blur which has to do with clicking in and activating the input and clicking out of it and unactivating so clicking in it is going to be focus and and clicking outside will be blur so let’s use this on the item input so what I’ll do is change Let’s do let’s do Focus and I’ll change this to say on Focus and we’ll actually just copy this down and let’s say on blur and let’s change that to blur and then we’ll come up here and create a function called on Focus and usually the reason that you would use this is like if you want to have a specific outline or something like that and I’ll just do a console log here first and say input is focused right so oh I have to create my own blur as well so we’ll say function on blur and we’ll say do a console log and say input input is not focused okay so if I click inside I get input as Focus if I click outside I get input is not focused but again usually what you would use this for is for styling so I could say item input and say Style and we’ll say outline style and let’s set that to solid okay and then we’ll do let’s copy that down and then in addition to outline style let’s do the outline with and we’ll set that to say one pixel and then we can also set the outline color and let’s set that to Green and then on blur what I’m going to do is just set the outline Style so outline style we’re going to set that to none all right so now if I come over here and I click in here now you see I get this green outline if I click out of it then it goes away we can change it to red okay so it’s it this is good for for just visual effects and UI um and this is what I mean earlier when I said you know you’re not going to use JavaScript just to change the style of a web page a static web page that doesn’t do anything but you use it to make your page Dynamic to have things happen to have styles change and borders at it and stuff like that um but yeah so that’s focus and blur now in the next video I want to look at form submission so when we how do we you know catch when we submit this because if I just submit it as is it actually submits it to the page which you could you know you could have it submit to like a backend PHP page or something like that but of course we’re dealing with front-end JavaScript so I’m going to show you how to prevent it from doing that and then doing what you want all right guys so now we’re going to look at form submission in the last video we looked at events on specific inputs so that you could do something when something in that input changed now we’re dealing with actually submitting the form now as I mentioned in the end of the last video if you’re working with a back-end technology like let’s say node.js or PHP or something like that then your form tag may have an action that submits to you know some file on your back end it could be node.js it could be PHP or whatever it might be but we’re dealing with front-end JavaScript so what we want to do is go into our script file and let’s uh let’s get the form and I think the form has an ID yeah it has an ID of item form so let’s say const and we’ll get our form we’ll set that to document Dot get element by D and it has an ID of item Dash form all right so now we just want to add an event listener to that form and we want to listen for the submit event and when that happens we’ll have a function called on submit fire off so let’s add that let’s say function on submit pass in our event object okay now I’m just going to do a console log here and we’ll say submit and I’m going to open up the console and by the way I add I still have the priority select list here because I want to use that as well but you’ll see if I put something in here and I click add item watch down here so notice how it just flashed submit real quick that’s because it did do the console log but then it’s submitted to the actual file if you don’t have an action attribute on your form where you’re submitting to some kind of backend then it’s going to submit to this the same page all right now to stop that you can just say e dot prevent default okay we looked at this a while back this prevents the default Behavior so now if I put something in here and I click add item it doesn’t submit to the file okay it just it stops and then it does whatever I want in the front-end JavaScript which in this case is just a console log now obviously if you’re doing this you’re going to want to get the values that are being submitted to the form so there’s actually a few ways to do that I’m going to show you the first way which I really already showed you and that’s to use the the value Target dot value but there’s also a form data object that you can use as well so to use the the value what I’ll do is I’ll put the basically we have the item and we have the priority so we have two Fields so I’m going to set item to document Dot and we’ll say get element by D and that has an ID of item Dash input and then we also want the priority input and I’ll just set this variable to priority Okay so to get the value now obviously like if I console log here let’s do item and priority whoops okay and if I put something in here milk one so it’s giving me the actual element which I don’t want so we can just add on to this dot value you could do it like this where you set the initial variable to value and then print it or you can set it this to the element and then when you’re ready to use it you can then say dot value so both of these will work if I put milk one and add we get milk in one so it’s up to you on how you how you want to do this I usually do it this way but of course there’s all kinds of different use different uh scenarios now this is where you know your front end JavaScript this is where you do you’ll do some validation and you you should have both front end and back end validation if you’re submitting to some kind of backend API you should do validation here but you should also do it on the server side so whatever route you’re submitting to you want to check your form fields and and stuff like that on the server as well I’m just going to add dot value here just to be consistent all right and then what I want to do is just check let’s say if and we’ll say if item we just want to make sure it’s filled so we’ll say if item equals nothing and then we also want to check we want to do an or here not an and because we want to check either or and priority if that is equal to in this case let’s say 0 because it has an initial value right if we look at the form here select priority we don’t want this to be selected and that has a value of zero so we want to just check for that and then if if either of those are true then let’s just alert and we’ll say let’s say please fill in all fields and then we’re just going to return from that okay so if I leave both empty and I click add item I get please fill in all Fields if I just do milk and I don’t select the priority I get the fill in all fields and notice it’s not console logging these because I returned from the function here so let’s choose a priority and make sure we have that filled in and now we don’t get the alert and we get the console log so this is just very very simple form validation now I also want to show you how to use the form data object so what I’m going to do is create another function and I’ll call this on submit to and let’s have this now submit to that function and we do we still want to prevent the default Behavior and then what I’ll do is initialize a form data variable and set that to new and then form data with a capital f okay and then we want to pass in our form which we have up here so it this is in the global scope meaning I can access it anywhere else so I’ll just pass in my form here and then what I want to do is just console log that form data and see and show you what that gives us all right so if we submit this with milk Priority One and if we look in here it might not work how you how you may think we don’t just have direct access to the values like an object of values but in the Prototype you can see that there’s a bunch of methods here so if you just want to get each individual entry then you can use the the get method so let’s do that let’s set let’s say const item and we’re going to set that to our form data variable and then there’s a get method and what we’ll do is pass in the item into here all right now this item is actually the name so if we look at the input here the name so if you if you’re using the form data object you want to make sure you have a name for these the name for this one is priority so the next one just copy that down and set that to priority because that’s the name that we assigned and this is a this is a newer way of doing this and getting values so console log item and priority so now I’m going to again just choose milk choose one and add item and now I’m getting those values now we can also get all of the entries using the entries method which which is a little weird but I’ll show you how that works so let’s say const entries and we’re going to set that to our form data variable and then dot entries with parentheses because it’s a method and I’m just going to comment these out and then let’s console log What entries gives us so again I’ll choose milk one and add and what we get is an iterator so this iterator basically it allows us to to Loop through it or to iterate through it so an easy way of doing this is to use a four of so we could come down here and say four and let’s say let entry so we’ll call each entry of and then the iterator which is entries okay and then in here if I console log entry comment this one out and select milk and one so what it gives me is for each input or each item it gives me an array that has both the name and the value so if I wanted to access the value I could do let’s say entry and one because this is just a simple array with a zero index and a one index so if I do that and I submit this again then I get milk and I get one and of course you can get the title as well I should say the name so item and priority so you can get either one of those and there’s a lot more to the form data object that we might get into later but I wanted to show you at least the the basics of that but in most cases for something simple like this I mean just using dot value is fine now in the next video we’re going to get into something that’s pretty important and that’s called event bubbling so in this video we’re going to talk about something that is pretty important when it comes to handling events and that’s event bubbling so when we add an event listener onto an element that event moves up the Dom tree and if it finds a parent element that has a listener for that event it’ll fire that as well so even if we click on the the button it’ll bubble all the way up to the document okay now it’s a little hard to understand with just me explaining it so let’s I’m going to show you how that works so let’s grab the the this button right here in the form so we’ll say const and we’ll just call this button and we’ll set document Dot query selector and I’ll just say form and then I want to grab the button in the form all right and then I want to add an event listener onto that button so add event listener and we’re going to listen for a click and then we’ll just put the function right in here and let’s do an alert and say the button was clicked all right so very simple if we click that we get button was clicked now what we’re going to do is bring in the parent to that button so if we go to our index.html and we look at that button so right here this is the button that we clicked and the parent to that would be this div which is the second it’s the second div in the form so we can Target it like that I’m going to come up here and I’ll say const and we’ll just call this div and set that to document Dot query selector and let’s say in the form we want the second div so we’ll say div and then nth Dash child and pass in two so that’ll give us that second div and then what I’m going to do is add an event listener onto that so click we want to click event and then let’s just do an alert here and this time we’ll say div div was clicked all right so now what I’m going to do is come over here to just to the right of the button and I’m going to click that because that’s the parent says div was clicked but now you’ll see if I click the button I get button was clicked if I click OK I get div was clicked so what’s happening here is we’re firing off this this click event here and then it’s bubbling up and then any any of its parents that have a click event listener it’s going to fire that as well okay now to show demonstrate this even further let’s bring in the form because the form is apparent to the the div so let’s say form and set that to document Dot query selector and we’ll get the form and then I’m going to do the same thing I’ll just change that to form and let’s say form was clicked so now if I click on the form I get forms clicked if I click on the button I get button was clicked it’s going to Bubble Up div was clicked it’s going to Bubble Up form was clicked okay so we can even go a step further and say document.body and add an event listener onto that and say click and then we’ll say let’s do uh alert and say body was clicked so now if I click on the button we get button was clicked div was clicked form was clicked body was clicked so this pertains to this diagram right here where we click the button and that event is going to Bubble Up through all of its parents and anything that has a click event on it that will also get fired off now there might be cases where you don’t want this to happen because it will just kind of mess your application up so that’s where the stop propagation method comes in and that’s part of the event object so if we go back up to where we have our button let’s pass in our event object here and I’m just going to go after the alert and say e dot stop propagation okay so now if I come over here and I click the button we get button was clicked and then nothing happens after that okay so event bubbling is is really not that difficult to understand I know it does intimidate a lot of people that are getting started with with JavaScript but it’s just that it just bubbles up and if you have another click event on a parent that’s going to fire off unless you stop propagation now you should only call stock propagation if you have a reason for it for instance if we actually had a parent and child with that with the same event listener and don’t just call it for the hell of it and then there’s also a method called stop immediate propagation and this is used if you have multiple handlers on a single event and you want to stop the event for all of them but yeah so that’s event bubbling now in the next video I want to talk about something called event delegation all right so we’ve talked about events quite a bit and we know how to add an event listener onto a single element but what about when there’s multiple elements and a good example is for these list items if you want to delete these we have multiple delete buttons where we would want to add an event listener to now there’s a few ways we can do this we could basically select all of the LI tags or all of the buttons whatever it is we want to click on and then add an event listener for every single one which isn’t really efficient so this is where event delegation comes into play which is a a powerful event handling pattern so so I’m going to show you the the first way which is to basically just add an event listener on to everyone so let’s do that by selecting the list items and we’re going to say document we want to use Query selector all because we’re selecting all of the all of the LI tags all right and then what we can do is we can list through our Loop through the list items and say for each item and then just to show you if I console log here um we’re actually going to want to well no let’s add the list let’s add the event listener first so I’ll say for each item let’s add an event listener for click and then we’ll have our function here and I’m going to just console log e Dot Target so if I click on these you’ll see it’ll give me whatever list item I’m clicking on so now I can take that Target and I can remove whatever I whatever that element is whatever I’m clicking on so I can say e dot Target dot remove and we learned about the remove method a couple sections back so now if I click on let’s say orange juice goes away click on milk Oreos apples and of course this is just in the Dom it’s just in the in our browser if I reload that all comes back that’s because we’re not persisting that we’re not persisting the data or persisting those actions to any database or anything like that all right now as I said this isn’t really efficient especially if you have a ton of of elements that you’re putting a listener on instead we can use event delegation to basically add just a single event listener onto the parent and then Target whichever one we want to delete so let me just show you what that looks like so we’re going to select the parent which is the UL so let’s say document Dot query selector and we’re going to select the UL and I’m just going to comment this this out for now and we want to put the event listener on the parent so list dot add event listener and listen for click and then we’ll have a function all right so now I’m going to go ahead and just console log here and then I want to log e dot Target so I’m going to come in here and click and notice it’s still giving me the list item right I have the event listener on the UL so even if I click Like right here then it gives me the UL if I’m not clicking on the list item so what I can do is just Target the list item that I’m clicking on this e dot Target and remember Target is going to give you what you click on current Target is going to give you what the uh what the event listener is on so if I do current if we say e dot current Target and I click on the list item it’s still going to give me the UL so you want to make sure that you’re dealing with Target and we what we can do is just test and say if e dot Target dot tag name or class or whatever it is that you want to check if that is equal to in this case Li then we can just take that e dot Target which is what we click on and we can remove it from the Dom so now if I click on any one of these it just deletes them and now instead of adding multiple event listeners I’m just simply adding one and then I’m testing whatever it is I’m clicking on and then deleting that and and of course you’re not limited to just deleting if I wanted to let’s say let’s say instead of a click we do a mouse over and again we just want to check to make sure it’s a list item and then instead of removing it let’s change the style dot color and we’ll set that to Red so now if I come over here and I hover over a list item you see it will only it’ll change the ones that I hover over to red all right so that’s how you want to handle adding an event listener onto multiple elements is using event delegation now in this case we just use the list item so if I click anywhere it deletes when we actually build our project which is very soon we’re going to have to Target the button which is going to be a little bit more difficult because we have to kind of navigate to the child to the button and then there’s an icon in the button so it’ll be a little more difficult but it’ll it’ll be fun and we’ll you’ll learn quite a bit going through this project in the next video though I want to talk a little bit about some of the the events that we can use on the window and about just the window object in general all right so the window object we’ve we’ve looked at a few times and I think it was the execution context section where I showed you that that’s the first thing the execution context does is it loads This Global window object that has a ton of properties and methods and apis and also events now the first events that I want to talk about are page loading events on this window object so you’ll notice that in the HTML for this section or for this lesson I have the script tag in the head and this was something that was very common practice back in like the 2000s so I just want to show you if we if we keep the script tag in the head and then we select let’s say query selector and all I have on this page is just an H1 and and some paragraphs so I’m going to select the H1 and I’ll set the text content to hello world and I’m going to save so you’ll notice that we get an error in the console it says cannot set properties of null setting text content so what it’s saying is that this is null and the reason for that is when we put our script tag in the head like this where we’re do we’re running our JavaScript before the page is loaded and before the Dom is loaded so it doesn’t know what this is yet so a common practice would be to use the load event so we could say on window we could say dot add actually I’ll show you the the on load which was what we saw a lot of back then so window dot on load and this was kind of a hack to do window on load set it to function and then put our code in there so you’ll see if I save now the H1 is replaced and we don’t get an error anymore so by using on load we’re waiting for the entire page to load and that includes resources like images and stuff like that and of course we could use add event listener which wasn’t around back then what I’m talking about but you can use this with load as well so we’ll just put a function in here and let’s just copy that and paste that in I’ll comment that out and you’ll see that just get rid of that semicolon that does the same thing now there’s also an event called Dom content loaded so what I’m going to do is copy this and then paste it in I’m going to change load to Dom all caps and then content loaded and then I’ll save and we get the same result now the difference between load and Dom content loaded is load waits for the the entire page to load including all resources such as images where Dom content loaded runs as soon as the Dom is parsed and loaded so if I were to run both of these let’s actually you know what we’ll do is uh let’s just replace this with a console log so I’m going to say console log and we’ll say page loaded and then I’m going to replace this one with a console log and we’ll say here Dom uh what happened here let’s say Dom loaded and notice that the Dom gets loaded first obviously because the page load includes the Dom and everything else any obviously there’s no images here but any other resources that need to be loaded now if I were to do a console log in the global scope down here and we’ll just say run me if I save that that gets run before either of these because we’re not in any of these events where we’re waiting for the page to load which is fine when the script is down you know under the page down above the ending body tag but if you have to access any Dom elements from the global scope then you’re going to get an error if the script tag is in the head now the exception to this is if you use the fairly new defer attribute so if I come to the script that’s in the head here and then I add on to it defer like that and I save and then let’s come over here and we’ll take I will not take let’s just go in back into the global scope here and say document and we’ll select the H1 and then let’s set the inner text and set that to hello world and if I save that you’ll notice that it works okay so I’m not getting the error even though my script is in the head but I use this defer attribute which basically will do just that it will defer the JavaScript code from running until it can run until the pages are the Dom is loaded so this is this is pretty new I don’t know when exactly this was available but if you want to do it this way and put your scripts in the head that’s absolutely fine just make sure you use defer I still prefer to keep my my scripts down above the ending body tag but from this point on if you want to use defer and put them in the head that’s fine now there’s just a couple other events that I want to show you that we can use on the windows so let’s say window dot add event listener and we can listen for a resize okay so there’s a resize event and what I’m going to do here is I’m gonna actually take this and move this into here but I’m going to set the the text to show the size of the window so we’ll put some backticks in here and we’ll say resized resized two and we can remember we can get the inner width and the inner height on the window object so let’s say window Dot in our width and then we’ll also put the window Dot inner height so I’m going to save that and now if I resize it’s going to change the H1 to show the the inner width and inner height and you’ll see it’s just it keeps changing because that event just fires off every time the browser is resized also it stayed at 276 because we didn’t change the height if I move this console then that’s going to change the height also listen for a scroll event so this can be helpful for certain UI effects that you want to create so I’m going to add an event listener onto the window and I’m going to listen for scroll and of course you could do window dot on scroll equals a function if you want to do it like that and then let’s create a function and what I’m going to do is console log and we’ll use some back ticks and we’ll say scrolled and let’s add in here because on the window object we have access to scroll X which is the position when you’re you know scrolling horizontal and then we also have the um scroll y so window Dot scroll Y and now if I scroll down you’ll see the the x is going to stay at zero because I’m not scrolling horizontal at all but the more I scroll down you’ll see the higher that that scroll X I’m sorry scroll y value gets and we could do some cool stuff here like if you have a navigation bar at the top and you want to have it be like translucent or something when you start to scroll you can just test where that scroll y value is so in fact we could do something like this we could say if the window Dot scroll Y is let’s say greater than 70. then let’s take the document body and on the style we’ll take the color or let’s do background so background color and we’ll set that to Black and then we’ll set the color to white the text color change that to color all right if I do that and then I start to scroll as soon as it hits 70 the background turns black now it’s going to stay black because I didn’t specify anything else but I could put an else on here and then we could take this and then just change this back to White and change the text Back to Black so now if I come down I hit 70 it turns black I go back up it turns White so this is the start of learning how to create really cool Dynamic functionality or dynamic effects within your UI so what else we also have focus in blur and just to give you a quick example of that we’ll say window dot add event listener and just like you have on inputs we focus in blur it’s just when you click in and when you click out so let’s just mess around with this for a second and let’s take document Dot query selector and we’ll select the paragraph actually let’s select all paragraphs so we’ll say all and then let’s look through those so we’ll say four each P so for each paragraph then let’s say p dot Style dot color and set that to Blue and then let’s put one for blur so on blur which is when you click out of the window then we’ll set it to bla Back to Black so now if I click in here you can see the scroll thing’s still working too but you can see that they’re all it’s all blue if I click outside of the window so anywhere else then it turns black Back to Black and there’s other events on the window object as well if you want to check the mdn docs of course you can do that but yeah so that those are window events and also the the page loading events

    By Amjad Izhar
    Contact: amjad.izhar@gmail.com
    https://amjadizhar.blog