Edited, memorised or added to reading list

on 02-Jan-2017 (Mon)

Do you want BuboFlash to help you learning these things? Click here to log in or create user.

Flashcard 1435113229580

Tags
#six-tips-for-working-with-the-brain #tip-4-aim-for-retrievals
Question
Research has shown that it is most effective to get to at least [...].
Answer
three retrievals


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Research has shown that it is most effective to get to at least three retrievals.

Original toplevel document

Unknown title
ult. This activates not only those specific memories, but also their individual schemas of change. When I pair this with hands-on activities for leading change effectively, the result is powerful and lasting. Advertisement <span>Tip #4: Aim for three retrievals One of the biggest insights from brain science has to do with how our memories are made. For conceptual learning, the evidence is clear that it's through the act of retrieval—having to recall something we have learned—that makes learning memorable for the long run. For example, I could teach you about neuroscience today (reading is certainly one of the ways we learn). I can activate your schemas and you might even have an "aha moment." But if you don't have to retrieve that learning again, it eventually will get dumped from your brain. Retrieval can occur through a variety of methods such as sharing what you learned with someone else, reflecting on how it relates to a past experience, doing an activity with hands-on application, quizzing yourself on your understanding, and a host of other learning activities. As instructional designers, we can easily build retrievals into our learning events and empower our learners to do that for themselves. This is what distinguishes great presenters from excellent instructors. Great presenters can create a feel-good experience that activates our schemas and that we thoroughly enjoy. And we will give those presenters or programs high ratings for satisfaction and raving reviews. But if no retrieval occurs, that learning will disappear in the following weeks and months. Sure, people will still say that they loved it, but they won't be able to remember much of what they learned, nor will their behavior change as a result. Research has shown that it is most effective to get to at least three retrievals. Memory studies have shown that three retrievals yield the best accuracy and retention. Although you can go on to more, the benefit seems to be better at three, so I focus on that number of retrievals in my own learning design. You can certainly build three retrievals into one learning event, but retention will be even more powerful if you add sleep to the mix. Tip #5: Build in sleep between learning It turns out that the sleeping brain plays a large role in how long-term memories are formed. While we sleep, the brain pushes information th







Flashcard 1435531611404

Tags
#cfa #cfa-level-1 #economics #introduction #lol #microeconomics #reading-15-demand-and-supply-analysis-the-firm #study-session-4
Question
The main focus of this reading is the [...] equation for companies competing in market economies under [...]
Answer
cost side of the profit

perfect competition.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The main focus of this reading is the cost side of the profit equation for companies competing in market economies under perfect competition.

Original toplevel document

1. INTRODUCTION
ined by the demand and supply behavior in the markets into which the firm sells/provides its goods or services. Costs are a function of the demand and supply interactions in resource markets, such as markets for labor and for physical inputs. <span>The main focus of this reading is the cost side of the profit equation for companies competing in market economies under perfect competition. A subsequent reading will examine the different types of markets into which a firm may sell its output. The study of the profit-maximizing firm in a single time period is t







Flashcard 1435738180876



Tags
#2-1-3-economic-rent #2-1-types-of-profit-measures #cfa-level-1 #economics #has-images #microeconomics #reading-15-demand-and-supply-analysis-the-firm #section-2-objectives-of-the-firm #study-session-4
Question
P1 is the price level that yields a [...] to the business that supplies the item.

When demand increases from Demand1 to Demand2, price rises to P2, where at this higher price level [...] is created.
Answer
normal profit

economic rent

The firm has not done anything to get it: It benefits from an increase in demand in conjunction with a supply curve that does not fully adjust with an increase in quantity when price rises.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Economic rent
ng the resource or good onto the market and sustain its use . Demand determines the price level and the magnitude of economic rent that is coming from the market. Exhibit 1 shows it. P 1 is the price level that yields a <span>normal profit to the business that supplies the item. When demand increases from Demand 1 to Demand 2 , price rises to P 2 , where at this higher price level economic rent is created.&#13







Flashcard 1435929545996

Tags
#eximbank #export-dot-gov #octopus #usa
Question
In Fiscal Year 2015Ex-Im Bank’s total exposure in Mexico was [...] and guarantees authorizations were [...] . Mexico remains the largest market in Ex-Im Bank’s portfolio.
Answer
$9.45 billion

$1.7 billion


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
In Fiscal Year 2015Ex-Im Bank’s total exposure in Mexico was $9.45 billion and guarantees authorizations were $1.7 billion. Mexico remains the largest market in Ex-Im Bank’s portfolio.

Original toplevel document

Mexico - Project Financing
cluding those related to the production of renewable sources of energy. ExIm Bank’s annual renewable energy authorizations in the past two years were: $121 million in the first three quarters of FY2015, $198 million in FY2014.[1] <span>In Fiscal Year 2015Ex-Im Bank’s total exposure in Mexico was $9.45 billion and guarantees authorizations were $1.7 billion. Mexico remains the largest market in Ex-Im Bank’s portfolio. Overseas Private Investment Corporation (http://www.opic.gov) OPIC is the U.S. Government’s development finance institution. It mobilizes private capita







#python #scip

Every powerful language has three such mechanisms:

  • primitive expressions and statements, which represent the simplest building blocks that the language provides,
  • means of combination, by which compound elements are built from simpler ones, and
  • means of abstraction, by which compound elements can be named and manipulated as units.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
ust be written for people to read, and only incidentally for machines to execute. When we describe a language, we should pay particular attention to the means that the language provides for combining simple ideas to form more complex ideas. <span>Every powerful language has three such mechanisms: primitive expressions and statements , which represent the simplest building blocks that the language provides, means of combination , by which compound elements are built from simpler ones, and means of abstraction , by which compound elements can be named and manipulated as units. In programming, we deal with two kinds of elements: functions and data. (Soon we will discover that they are really not so distinct.) Informally, data is stuff that we want to manipul




#python #scip
data is stuff that we want to manipulate, and functions describe the rules for manipulating the data

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
d means of abstraction , by which compound elements can be named and manipulated as units. In programming, we deal with two kinds of elements: functions and data. (Soon we will discover that they are really not so distinct.) Informally, <span>data is stuff that we want to manipulate, and functions describe the rules for manipulating the data. Thus, any powerful programming language should be able to describe primitive data and primitive functions, as well as have some methods for combining and abstracting both functions and




#python #scip
One kind of primitive expression is a number. More precisely, the expression that you type consists of the numerals that represent the number in base 10

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
terpreter in the previous section, we now start anew, methodically developing the Python language element by element. Be patient if the examples seem simplistic — more exciting material is soon to come. We begin with primitive expressions. <span>One kind of primitive expression is a number. More precisely, the expression that you type consists of the numerals that represent the number in base 10. >>> 42 42 Expressions representing numbers may be combined with mathematical operators to form a compound expression, which the interpreter will evaluate: >>>




#python #scip
The most important kind of compound expression is a call expression, which applies a function to some arguments.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
ways to form compound expressions. Rather than attempt to enumerate them all immediately, we will introduce new expression forms as we go, along with the language features that they support. 1.2.2 Call Expressions Video: Show Hide <span>The most important kind of compound expression is a call expression, which applies a function to some arguments. Recall from algebra that the mathematical notion of a function is a mapping from some input arguments to an output value. For instance, the max function maps its inputs to a single ou




#python #scip
the operator is an expression that precedes parentheses, which enclose a comma-delimited list of operand expressions.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
s inputs to a single output, which is the largest of the inputs. The way in which Python expresses function application is the same as in conventional mathematics. >>> max(7.5, 9.5) 9.5 This call expression has subexpressions: <span>the operator is an expression that precedes parentheses, which enclose a comma-delimited list of operand expressions. The operator specifies a function. When this call expression is evaluated, we say that the function max is called with arguments 7.5 and 9.5, and returns a value of 9.5. The




#python #scip

The operator specifies a function. When this call expression is evaluated, we say that the function max is called with arguments 7.5 and 9.5, and returns a value of 9.5.

The order of the arguments in a call expression matters. For instance, the function pow raises its first argument to the power of its second argument.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
he same as in conventional mathematics. >>> max(7.5, 9.5) 9.5 This call expression has subexpressions: the operator is an expression that precedes parentheses, which enclose a comma-delimited list of operand expressions. <span>The operator specifies a function. When this call expression is evaluated, we say that the function max is called with arguments 7.5 and 9.5, and returns a value of 9.5. The order of the arguments in a call expression matters. For instance, the function pow raises its first argument to the power of its second argument. >>> pow(100, 2) 10000 >>> pow(2, 100) 1267650600228229401496703205376 Function notation has three principal advantages over the mathematical convention of infix




#python #scip

Function notation has three principal advantages over the mathematical convention of infix notation. First, functions may take an arbitrary number of arguments:

 >>> max ( 1 , - 2 , 3 , - 4 ) 3 

No ambiguity can arise, because the function name always precedes its arguments.

Second, function notation extends in a straightforward way to nested expressions, where the elements are themselves compound expressions. In nested call expressions, unlike compound infix expressions, the structure of the nesting is entirely explicit in the parentheses.

 >>> max ( min ( 1 , - 2 ), min ( pow ( 3 , 5 ), - 4 )) -2 

There is no limit (in principle) to the depth of such nesting and to the overall complexity of the expressions that the Python interpreter can evaluate. However, humans quickly get confused by multi-level nesting. An important role for you as a programmer is to structure expressions so that they remain interpretable by yourself, your programming partners, and other people who may read your expressions in the future.

Third, mathematical notation has a great variety of forms: multiplication appears between terms, exponents appear as superscripts, division as a horizontal bar, and a square root as a roof with slanted siding. Some of this notation is very hard to type! However, all of this complexity can be unified via the notation of call expressions. While Python supports common mathematical operators using infix notation (like + and - ), any operator can be expressed as a function with a name.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
order of the arguments in a call expression matters. For instance, the function pow raises its first argument to the power of its second argument. >>> pow(100, 2) 10000 >>> pow(2, 100) 1267650600228229401496703205376 <span>Function notation has three principal advantages over the mathematical convention of infix notation. First, functions may take an arbitrary number of arguments: >>> max(1, -2, 3, -4) 3 No ambiguity can arise, because the function name always precedes its arguments. Second, function notation extends in a straightforward way to nested expressions, where the elements are themselves compound expressions. In nested call expressions, unlike compound infix expressions, the structure of the nesting is entirely explicit in the parentheses. >>> max(min(1, -2), min(pow(3, 5), -4)) -2 There is no limit (in principle) to the depth of such nesting and to the overall complexity of the expressions that the Python interpreter can evaluate. However, humans quickly get confused by multi-level nesting. An important role for you as a programmer is to structure expressions so that they remain interpretable by yourself, your programming partners, and other people who may read your expressions in the future. Third, mathematical notation has a great variety of forms: multiplication appears between terms, exponents appear as superscripts, division as a horizontal bar, and a square root as a roof with slanted siding. Some of this notation is very hard to type! However, all of this complexity can be unified via the notation of call expressions. While Python supports common mathematical operators using infix notation (like + and - ), any operator can be expressed as a function with a name. 1.2.3 Importing Library Functions Python defines a very large number of functions, including the operator functions mentioned in the preceding section, but does not make all o




#python #scip
If a value has been given a name, we say that the name binds to the value

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
y, this documentation will become a valuable reference source. 1.2.4 Names and the Environment Video: Show Hide A critical aspect of a programming language is the means it provides for using names to refer to computational objects. <span>If a value has been given a name, we say that the name binds to the value. In Python, we can establish new bindings using the assignment statement, which contains a name to the left of = and a value to the right: >>> radius = 10 >>> ra




#python #scip
we can establish new bindings using the assignment statement, which contains a name to the left of = and a value to the right:

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
he Environment Video: Show Hide A critical aspect of a programming language is the means it provides for using names to refer to computational objects. If a value has been given a name, we say that the name binds to the value. In Python, <span>we can establish new bindings using the assignment statement, which contains a name to the left of = and a value to the right: >>> radius = 10 >>> radius 10 >>> 2 * radius 20 Names are also bound via import statements. >>> from math import pi >>> pi * 71 /




#python #scip
he = symbol is called the assignment operator in Python (and many other languages)

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
= and a value to the right: >>> radius = 10 >>> radius 10 >>> 2 * radius 20 Names are also bound via import statements. >>> from math import pi >>> pi * 71 / 223 1.0002380197528042 T<span>he = symbol is called the assignment operator in Python (and many other languages). Assignment is our simplest means of abstraction, for it allows us to use simple names to refer to the results of compound operations, such as the area computed above. In this way, co




#python #scip
Assignment is our simplest means of abstraction, for it allows us to use simple names to refer to the results of compound operations

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
t;> 2 * radius 20 Names are also bound via import statements. >>> from math import pi >>> pi * 71 / 223 1.0002380197528042 The = symbol is called the assignment operator in Python (and many other languages). <span>Assignment is our simplest means of abstraction, for it allows us to use simple names to refer to the results of compound operations, such as the area computed above. In this way, complex programs are constructed by building, step by step, computational objects of increasing complexity. The possibility of binding




#python #scip
memory that keeps track of the names, values, and bindings. This memory is called an environment.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
x programs are constructed by building, step by step, computational objects of increasing complexity. The possibility of binding names to values and later retrieving those values by name means that the interpreter must maintain some sort of <span>memory that keeps track of the names, values, and bindings. This memory is called an environment. Names can also be bound to functions. For instance, the name max is bound to the max function we have been using. Functions, unlike numbers, are tricky to render as text, so Python




#python #scip

To evaluate a call expression, Python will do the following:

  1. Evaluate the operator and operand subexpressions, then
  2. Apply the function that is the value of the operator subexpression to the arguments that are the values of the operand subexpressions.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
uating Nested Expressions One of our goals in this chapter is to isolate issues about thinking procedurally. As a case in point, let us consider that, in evaluating nested call expressions, the interpreter is itself following a procedure. <span>To evaluate a call expression, Python will do the following: Evaluate the operator and operand subexpressions, then Apply the function that is the value of the operator subexpression to the arguments that are the values of the operand subexpressions. Even this simple procedure illustrates some important points about processes in general. The first step dictates that in order to accomplish the evaluation process for a call expressi




#python #scip

Next, observe that the repeated application of the first step brings us to the point where we need to evaluate, not call expressions, but primitive expressions such as numerals (e.g., 2) and names (e.g., add ). We take care of the primitive cases by stipulating that

  • A numeral evaluates to the number it names,
  • A name evaluates to the value associated with that name in the current environment.

Notice the important role of an environment in determining the meaning of the symbols in expressions

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
rule is applied, and the result of that expression. Viewing evaluation in terms of this tree, we can imagine that the values of the operands percolate upward, starting from the terminal nodes and then combining at higher and higher levels. <span>Next, observe that the repeated application of the first step brings us to the point where we need to evaluate, not call expressions, but primitive expressions such as numerals (e.g., 2) and names (e.g., add ). We take care of the primitive cases by stipulating that A numeral evaluates to the number it names, A name evaluates to the value associated with that name in the current environment. Notice the important role of an environment in determining the meaning of the symbols in expressions. In Python, it is meaningless to speak of the value of an expression such as >>> add(x, 1) without specifying any information about the environment that would provide a m




#python #scip
A pedantic note: when we say that "a numeral evaluates to a number," we actually mean that the Python interpreter evaluates a numeral to a number. It is the interpreter which endows meaning to the programming language.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
ment is instead to bind a name to a value. In general, statements are not evaluated but executed; they do not produce a value but instead make some change. Each type of expression or statement has its own evaluation or execution procedure. <span>A pedantic note: when we say that "a numeral evaluates to a number," we actually mean that the Python interpreter evaluates a numeral to a number. It is the interpreter which endows meaning to the programming language. Given that the interpreter is a fixed program that always behaves consistently, we can say that numerals (and expressions) themselves evaluate to values in the context of Python progra




#python #scip
Pure functions. Functions have some input (their arguments) and return some output (the result of applying them).

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
can say that numerals (and expressions) themselves evaluate to values in the context of Python programs. 1.2.6 The Non-Pure Print Function Video: Show Hide Throughout this text, we will distinguish between two types of functions. <span>Pure functions. Functions have some input (their arguments) and return some output (the result of applying them). The built-in function >>> abs(-2) 2 can be depicted as a small machine that takes input and produces output. The function abs is pure. Pure functions have the p




#python #scip
Pure functions have the property that applying them has no effects beyond returning a value. Moreover, a pure function must always return the same value when called twice with the same arguments.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
some input (their arguments) and return some output (the result of applying them). The built-in function >>> abs(-2) 2 can be depicted as a small machine that takes input and produces output. The function abs is pure. <span>Pure functions have the property that applying them has no effects beyond returning a value. Moreover, a pure function must always return the same value when called twice with the same arguments. Non-pure functions. In addition to returning a value, applying a non-pure function can generate side effects, which make some change to the state of the interpreter or computer. A co




#python #scip
Non-pure functions. In addition to returning a value, applying a non-pure function can generate side effects, which make some change to the state of the interpreter or computer. A common side effect is to generate additional output beyond the return value, using the print function.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
s output. The function abs is pure. Pure functions have the property that applying them has no effects beyond returning a value. Moreover, a pure function must always return the same value when called twice with the same arguments. <span>Non-pure functions. In addition to returning a value, applying a non-pure function can generate side effects, which make some change to the state of the interpreter or computer. A common side effect is to generate additional output beyond the return value, using the print function. >>> print(1, 2, 3) 1 2 3 While print and abs may appear to be similar in these examples, they work in fundamentally different ways. The value that print returns is




#python #scip
Pure functions are restricted in that they cannot have side effects or change behavior over time.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
this expression produces this peculiar output. Be careful with print ! The fact that it returns None means that it should not be the expression in an assignment statement. >>> two = print(2) 2 >>> print(two) None <span>Pure functions are restricted in that they cannot have side effects or change behavior over time. Imposing these restrictions yields substantial benefits. First, pure functions can be composed more reliably into compound call expressions. We can see in the non-pure function example




#python #scip
Second, pure functions tend to be simpler to test.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
non-pure function example above that print does not return a useful result when used in an operand expression. On the other hand, we have seen that functions such as max , pow and sqrt can be used effectively in nested expressions. <span>Second, pure functions tend to be simpler to test. A list of arguments will always lead to the same return value, which can be compared to the expected return value. Testing is discussed in more detail later in this chapter. Third, Ch




#python #scip
Third, Chapter 4 will illustrate that pure functions are essential for writing concurrent programs, in which multiple call expressions may be evaluated simultaneously.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.2 Elements of Programming
expressions. Second, pure functions tend to be simpler to test. A list of arguments will always lead to the same return value, which can be compared to the expected return value. Testing is discussed in more detail later in this chapter. <span>Third, Chapter 4 will illustrate that pure functions are essential for writing concurrent programs, in which multiple call expressions may be evaluated simultaneously. By contrast, Chapter 2 investigates a range of non-pure functions and describes their uses. For these reasons, we concentrate heavily on creating and using pure functions in the rem




We have identified in Python some of the elements that must appear in any powerful programming language:

  1. Numbers and arithmetic operations are primitive built-in data values and functions.
  2. Nested function application provides a means of combining operations.
  3. Binding names to values provides a limited means of abstraction.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
1.7.1 The Anatomy of Recursive Functions 1.7.2 Mutual Recursion 1.7.3 Printing in Recursive Functions 1.7.4 Tree Recursion 1.7.5 Example: Partitions 1.3 Defining New Functions Video: Show Hide <span>We have identified in Python some of the elements that must appear in any powerful programming language: Numbers and arithmetic operations are primitive built-in data values and functions. Nested function application provides a means of combining operations. Binding names to values provides a limited means of abstraction. Now we will learn about function definitions, a much more powerful abstraction technique by which a name can be bound to compound operation, which can then be referred to as a unit.




How to define a function. Function definitions consist of a def statement that indicates a <name> and a comma-separated list of named <formal parameters> , then a return statement, called the function body, that specifies the <return expression> of the function, which is an expression to be evaluated whenever the function is applied:

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on




An environment in which an expression is evaluated consists of a sequence of frames, depicted as boxes. Each frame contains bindings, each of which associates a name with its corresponding value. There is a single global frame. Assignment and import statements add entries to the first frame of the current environment.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
gh that the meaning of programs is non-obvious. What if a formal parameter has the same name as a built-in function? Can two functions share names without confusion? To resolve such questions, we must describe environments in more detail. <span>An environment in which an expression is evaluated consists of a sequence of frames, depicted as boxes. Each frame contains bindings, each of which associates a name with its corresponding value. There is a single global frame. Assignment and import statements add entries to the first frame of the current environment. So far, our environment consists only of the global frame. 1 from math import pi 2 tau = 2 * pi Edit code in Online Python Tutor




#python #sicp
The name of a function is repeated twice, once in the frame and again as part of the function itself. The name appearing in the function is called the intrinsic name. The name in a frame is a bound name. There is a difference between the two: different names may refer to the same function, but that function itself has only one intrinsic name.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
nc square(x) Each function is a line that starts with func , followed by the function name and formal parameters. Built-in functions such as mul do not have formal parameter names, and so ... is always used instead. <span>The name of a function is repeated twice, once in the frame and again as part of the function itself. The name appearing in the function is called the intrinsic name. The name in a frame is a bound name. There is a difference between the two: different names may refer to the same function, but that function itself has only one intrinsic name. The name bound to a function in a frame is the one used during evaluation. The intrinsic name of a function does not play a role in evaluation. Step through the example below using th




#python #sicp
This principle -- that the meaning of a function should be independent of the parameter names chosen by its author -- has important consequences for programming languages. The simplest consequence is that the parameter names of a function must remain local to the body of the function.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
mplementer's choice of names for the function's formal parameters. Thus, the following functions should provide the same behavior: >>> def square(x): return mul(x, x) >>> def square(y): return mul(y, y) <span>This principle -- that the meaning of a function should be independent of the parameter names chosen by its author -- has important consequences for programming languages. The simplest consequence is that the parameter names of a function must remain local to the body of the function. If the parameters were not local to the bodies of their respective functions, then the parameter x in square could be confused with the parameter x in sum_squares . Critically,




#python #sicp
the scope of a local name is limited to the body of the user-defined function that defines it. When a name is no longer accessible, it is out of scope.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
ould be confused with the parameter x in sum_squares . Critically, this is not the case: the binding for x in different local frames are unrelated. The model of computation is carefully designed to ensure this independence. We say that <span>the scope of a local name is limited to the body of the user-defined function that defines it. When a name is no longer accessible, it is out of scope. This scoping behavior isn't a new fact about our model; it is a consequence of the way environments work. 1.3.5 Choosing Names The interchangeability of names does not imply t




#python #sicp
Function names are lowercase, with words separated by underscores. Descriptive names are encouraged. Function names typically evoke operations applied to arguments by the interpreter (e.g., print , add , square ) or the name of the quantity that results (e.g., max , abs , sum ). Parameter names are lowercase, with words separated by underscores. Single-word names are preferred. Parameter names should evoke the role of the parameter in the function, not just the kind of argument that is allowed. Single letter parameter names are acceptable when their role is obvious, but avoid "l" (lowercase ell), "O" (capital oh), or "I" (capital i) to avoid confusion with numerals.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
(non-rebellious) Python programmers. A shared set of conventions smooths communication among members of a developer community. As a side effect of following these conventions, you will find that your code becomes more internally consistent. <span>Function names are lowercase, with words separated by underscores. Descriptive names are encouraged. Function names typically evoke operations applied to arguments by the interpreter (e.g., print , add , square ) or the name of the quantity that results (e.g., max , abs , sum ). Parameter names are lowercase, with words separated by underscores. Single-word names are preferred. Parameter names should evoke the role of the parameter in the function, not just the kind of argument that is allowed. Single letter parameter names are acceptable when their role is obvious, but avoid "l" (lowercase ell), "O" (capital oh), or "I" (capital i) to avoid confusion with numerals. There are many exceptions to these guidelines, even in the Python standard library. Like the vocabulary of the English language, Python has inherited words from a variety of contribut




#python #sicp
Indeed, as far as sum_squares is concerned, square is not a particular function body, but rather an abstraction of a function, a so-called functional abstraction.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
defines between its input arguments and its output values. We can write sum_squares without concerning ourselves with how to square a number. The details of how the square is computed can be suppressed, to be considered at a later time. <span>Indeed, as far as sum_squares is concerned, square is not a particular function body, but rather an abstraction of a function, a so-called functional abstraction. At this level of abstraction, any function that computes the square is equally good. Thus, considering only the values they return, the following two functions for squaring a number s




#python #sicp
Aspects of a functional abstraction. To master the use of a functional abstraction, it is often useful to consider its three core attributes. The domain of a function is the set of arguments it can take. The range of a function is the set of values it can return. The intent of a function is the relationship it computes between inputs and output (as well as any side effects it might generate).

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.3 Defining New Functions
uot;black box". A programmer should not need to know how the function is implemented in order to use it. The Python Library has this property. Many developers use the functions defined there, but few ever inspect their implementation. <span>Aspects of a functional abstraction. To master the use of a functional abstraction, it is often useful to consider its three core attributes. The domain of a function is the set of arguments it can take. The range of a function is the set of values it can return. The intent of a function is the relationship it computes between inputs and output (as well as any side effects it might generate). Understanding functional abstractions via their domain, range, and intent is critical to using them correctly in a complex program. For example, any square function that we use to i




#python #sicp

Fundamentally, the qualities of good functions all reinforce the idea that functions are abstractions.

  • Each function should have exactly one job. That job should be identifiable with a short name and characterizable in a single line of text. Functions that perform multiple jobs in sequence should be divided into multiple functions.
  • Don't repeat yourself is a central tenet of software engineering. The so-called DRY principle states that multiple fragments of code should not describe redundant logic. Instead, that logic should be implemented once, given a name, and applied multiple times. If you find yourself copying and pasting a block of code, you have probably found an opportunity for functional abstraction.
  • Functions should be defined generally. Squaring is not in the Python Library precisely because it is a special case of the pow function, which raises numbers to arbitrary powers.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.4 Designing Functions
mall, and serve as our primary medium to express computational processes in a programming language. So far, we have discussed the formal properties of functions and how they are applied. We now turn to the topic of what makes a good function. <span>Fundamentally, the qualities of good functions all reinforce the idea that functions are abstractions. Each function should have exactly one job. That job should be identifiable with a short name and characterizable in a single line of text. Functions that perform multiple jobs in sequence should be divided into multiple functions. Don't repeat yourself is a central tenet of software engineering. The so-called DRY principle states that multiple fragments of code should not describe redundant logic. Instead, that logic should be implemented once, given a name, and applied multiple times. If you find yourself copying and pasting a block of code, you have probably found an opportunity for functional abstraction. Functions should be defined generally. Squaring is not in the Python Library precisely because it is a special case of the pow function, which raises numbers to arbitrary powers. These guidelines improve the readability of code, reduce the number of errors, and often minimize the total amount of code written. Decomposing a complex task into concise functions i




#python #sicp
As a guideline, most data values used in a function's body should be expressed as default values to named arguments, so that they are easy to inspect and can be changed by the function caller. Some values that never change, such as the fundamental constant k , can be bound in the function body or in the global frame.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.4 Designing Functions
function is defined to take three arguments, but only two are provided in the first call expression above. In this case, the value for n is taken from the def statement default. If a third argument is provided, the default is ignored. <span>As a guideline, most data values used in a function's body should be expressed as default values to named arguments, so that they are easy to inspect and can be changed by the function caller. Some values that never change, such as the fundamental constant k , can be bound in the function body or in the global frame. Continue: 1.5 Control Composing Programs by John DeNero, based on the textbook Structure and Interpretation




Control statements will give us this ability. They are statements that control the flow of a program's execution based on the results of logical comparisons.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
1.5 Control The expressive power of the functions that we can define at this point is very limited, because we have not introduced a way to make comparisons and to perform different operations depending on the result of a comparison. <span>Control statements will give us this ability. They are statements that control the flow of a program's execution based on the results of logical comparisons. Statements differ fundamentally from the expressions that we have studied so far. They have no value. Instead of computing something, executing a control statement determines what th




Rather than being evaluated, statements are executed. Each statement describes some change to the interpreter state, and executing a statement applies that change. As we have seen for return and assignment statements, executing statements can involve evaluating subexpressions contained within them.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ow to evaluate expressions. However, we have seen three kinds of statements already: assignment, def , and return statements. These lines of Python code are not themselves expressions, although they all contain expressions as components. <span>Rather than being evaluated, statements are executed. Each statement describes some change to the interpreter state, and executing a statement applies that change. As we have seen for return and assignment statements, executing statements can involve evaluating subexpressions contained within them. Expressions can also be executed as statements, in which case they are evaluated, but their value is discarded. Executing a pure function has no effect, but executing a non-pure funct




Expressions can also be executed as statements, in which case they are evaluated, but their value is discarded. Executing a pure function has no effect, but executing a non-pure function can cause effects as a consequence of function application.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
atement describes some change to the interpreter state, and executing a statement applies that change. As we have seen for return and assignment statements, executing statements can involve evaluating subexpressions contained within them. <span>Expressions can also be executed as statements, in which case they are evaluated, but their value is discarded. Executing a pure function has no effect, but executing a non-pure function can cause effects as a consequence of function application. Consider, for instance, >>> def square(x): mul(x, x) # Watch out! This call doesn't return a value. This example is valid Python, but probably not what was inte




At its highest level, the Python interpreter's job is to execute programs, composed of statements. However, much of the interesting work of computation comes from evaluating expressions. Statements govern the relationship among different expressions in a program and what happens to their results.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
gt;> def square(x): return mul(x, x) Sometimes it does make sense to have a function whose body is an expression, when a non-pure function like print is called. >>> def print_square(x): print(square(x)) <span>At its highest level, the Python interpreter's job is to execute programs, composed of statements. However, much of the interesting work of computation comes from evaluating expressions. Statements govern the relationship among different expressions in a program and what happens to their results. 1.5.2 Compound Statements In general, Python code is a sequence of statements. A simple statement is a single line that doesn't end in a colon. A compound statement is so call




Python code is a sequence of statements. A simple statement is a single line that doesn't end in a colon. A compound statement is so called because it is composed of other statements (simple and compound). Compound statements typically span multiple lines and start with a one-line header ending in a colon, which identifies the type of statement. Together, a header and an indented suite of statements is called a clause. A compound statement consists of one or more clauses:

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ver, much of the interesting work of computation comes from evaluating expressions. Statements govern the relationship among different expressions in a program and what happens to their results. 1.5.2 Compound Statements In general, <span>Python code is a sequence of statements. A simple statement is a single line that doesn't end in a colon. A compound statement is so called because it is composed of other statements (simple and compound). Compound statements typically span multiple lines and start with a one-line header ending in a colon, which identifies the type of statement. Together, a header and an indented suite of statements is called a clause. A compound statement consists of one or more clauses: <span>
: ... : ... ... We can understand t




#python #sicp
Specialized evaluation rules for each kind of header dictate when and if the statements in its suite are executed. We say that the header controls its suite.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ents we have already introduced in these terms. Expressions, return statements, and assignment statements are simple statements. A def statement is a compound statement. The suite that follows the def header defines the function body. <span>Specialized evaluation rules for each kind of header dictate when and if the statements in its suite are executed. We say that the header controls its suite. For example, in the case of def statements, we saw that the return expression is not evaluated immediately, but instead stored for later use when the defined function is eventually ca




#python #sicp
To execute a sequence of statements, execute the first statement. If that statement does not redirect control, then proceed to execute the rest of the sequence of statements, if any remain.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
For example, in the case of def statements, we saw that the return expression is not evaluated immediately, but instead stored for later use when the defined function is eventually called. We can also understand multi-line programs now. <span>To execute a sequence of statements, execute the first statement. If that statement does not redirect control, then proceed to execute the rest of the sequence of statements, if any remain. This definition exposes the essential structure of a recursively defined sequence: a sequence can be decomposed into its first element and the rest of its elements. The "rest&quo




#python #sicp
This definition exposes the essential structure of a recursively defined sequence: a sequence can be decomposed into its first element and the rest of its elements.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
e can also understand multi-line programs now. To execute a sequence of statements, execute the first statement. If that statement does not redirect control, then proceed to execute the rest of the sequence of statements, if any remain. <span>This definition exposes the essential structure of a recursively defined sequence: a sequence can be decomposed into its first element and the rest of its elements. The "rest" of a sequence of statements is itself a sequence of statements! Thus, we can recursively apply this execution rule. This view of sequences as recursive data struct




#python #sicp
The effect of an assignment statement is to bind a name to a value in the first frame of the current environment. As a consequence, assignment statements within a function body cannot affect the global frame. The fact that functions can only manipulate their local environment is critical to creating modular programs, in which pure functions interact only via the values they take and return.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
put: Global percent_difference result 25.0 percent_difference x 40 y 50 difference 10 Returnvalue 25.0 func percent_difference(x, y) <span>The effect of an assignment statement is to bind a name to a value in the first frame of the current environment. As a consequence, assignment statements within a function body cannot affect the global frame. The fact that functions can only manipulate their local environment is critical to creating modular programs, in which pure functions interact only via the values they take and return. Of course, the percent_difference function could be written as a single expression, as shown below, but the return expression is more complex. >>> def percent_difference(




#python #sicp
So far, local assignment hasn't increased the expressive power of our function definitions. It will do so, when combined with other control statements. In addition, local assignment also plays a critical role in clarifying the meaning of complex expressions by assigning names to intermediate quantities.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ence function could be written as a single expression, as shown below, but the return expression is more complex. >>> def percent_difference(x, y): return 100 * abs(x-y) / x >>> percent_difference(40, 50) 25.0 <span>So far, local assignment hasn't increased the expressive power of our function definitions. It will do so, when combined with other control statements. In addition, local assignment also plays a critical role in clarifying the meaning of complex expressions by assigning names to intermediate quantities. 1.5.4 Conditional Statements Video: Show Hide Python has a built-in function for computing absolute values. >>> abs(-2) 2 We would like to be able to implement




#python #sicp
Conditional statements. A conditional statement in Python consists of a series of headers and suites: a required if clause, an optional sequence of elif clauses, and finally an optional else clause:

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
Global absolute_value result 2 absolute_value x -2 Returnvalue 2 func absolute_value(x) This implementation of absolute_value raises several important issues: <span>Conditional statements . A conditional statement in Python consists of a series of headers and suites: a required if clause, an optional sequence of elif clauses, and finally an optional else clause: if : elif : else: When executing a conditional statement, each clause is considered in order. The computational process of executing a conditional clause follows.




#python #sicp

When executing a conditional statement, each clause is considered in order. The computational process of executing a conditional clause follows.

  1. Evaluate the header's expression.
  2. If it is a true value, execute the suite. Then, skip over all subsequent clauses in the conditional statement.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
onditional statements . A conditional statement in Python consists of a series of headers and suites: a required if clause, an optional sequence of elif clauses, and finally an optional else clause: if : elif : else: <span>When executing a conditional statement, each clause is considered in order. The computational process of executing a conditional clause follows. Evaluate the header's expression. If it is a true value, execute the suite. Then, skip over all subsequent clauses in the conditional statement. If the else clause is reached (which only happens if all if and elif expressions evaluate to false values), its suite is executed. Boolean contexts . Above, the execution proc




#python #sicp
Boolean contexts. Above, the execution procedures mention "a false value" and "a true value." The expressions inside the header statements of conditional blocks are said to be in boolean contexts: their truth values matter to control flow, but otherwise their values are not assigned or returned.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
true value, execute the suite. Then, skip over all subsequent clauses in the conditional statement. If the else clause is reached (which only happens if all if and elif expressions evaluate to false values), its suite is executed. <span>Boolean contexts . Above, the execution procedures mention "a false value" and "a true value." The expressions inside the header statements of conditional blocks are said to be in boolean contexts: their truth values matter to control flow, but otherwise their values are not assigned or returned. Python includes several false values, including 0, None , and the boolean value False . All other numbers are true values. In Chapter 2, we will see that every built-in kind of data




#python #sicp
every built-in kind of data in Python has both true and false values.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ues matter to control flow, but otherwise their values are not assigned or returned. Python includes several false values, including 0, None , and the boolean value False . All other numbers are true values. In Chapter 2, we will see that <span>every built-in kind of data in Python has both true and false values. Boolean values . Python has two boolean values, called True and False . Boolean values represent truth values in logical expressions. The built-in comparison operations, >, &l




#python #sicp
Boolean values. Python has two boolean values, called True and False . Boolean values represent truth values in logical expressions. The built-in comparison operations, >, <, >=, <=, ==, != , return these values.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
or returned. Python includes several false values, including 0, None , and the boolean value False . All other numbers are true values. In Chapter 2, we will see that every built-in kind of data in Python has both true and false values. <span>Boolean values . Python has two boolean values, called True and False . Boolean values represent truth values in logical expressions. The built-in comparison operations, >, <, >=, <=, ==, != , return these values. >>> 4 < 2 False >>> 5 >= 5 True This second example reads "5 is greater than or equal to 5", and corresponds to the function ge in the operato




#python #sicp
Logical expressions have corresponding evaluation procedures. These procedures exploit the fact that the truth value of a logical expression can sometimes be determined without evaluating all of its subexpressions, a feature called short-circuiting.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
( == ), a convention shared across many programming languages. Boolean operators . Three basic logical operators are also built into Python: >>> True and False False >>> True or False True >>> not False True <span>Logical expressions have corresponding evaluation procedures. These procedures exploit the fact that the truth value of a logical expression can sometimes be determined without evaluating all of its subexpressions, a feature called short-circuiting. To evaluate the expression and : Evaluate the subexpression . If the result is a false value v , then the expression evaluates to v . Otherwise, the expression evaluates to t




#python #sicp

To evaluate the expression <left> and <right> :

  1. Evaluate the subexpression <left> .
  2. If the result is a false value v , then the expression evaluates to v .
  3. Otherwise, the expression evaluates to the value of the subexpression <right> .

To evaluate the expression <left> or <right> :

  1. Evaluate the subexpression <left> .
  2. If the result is a true value v , then the expression evaluates to v .
  3. Otherwise, the expression evaluates to the value of the subexpression <right> .

To evaluate the expression not <exp> :

  1. Evaluate <exp> ; The value is True if the result is a false value, and False otherwise.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on




#python #sicp
Functions that perform comparisons and return boolean values typically begin with is , not followed by an underscore (e.g., isfinite , isdigit , isinstance , etc.).

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
ession . To evaluate the expression not : Evaluate ; The value is True if the result is a false value, and False otherwise. These values, rules, and operators provide us with a way to combine the results of comparisons. <span>Functions that perform comparisons and return boolean values typically begin with is , not followed by an underscore (e.g., isfinite , isdigit , isinstance , etc.). 1.5.5 Iteration Video: Show Hide In addition to selecting which statements to execute, control statements are used to express repetition. If each line of code we wrote were o




#python #sicp

To execute a while clause:

  1. Evaluate the header's expression.
  2. If it is a true value, execute the suite, then return to step 1.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
his order of events -- evaluating everything on the right of = before updating any bindings on the left -- is essential for correctness of this function. A while clause contains a header expression followed by a suite: while : <span>To execute a while clause: Evaluate the header's expression. If it is a true value, execute the suite, then return to step 1. In step 2, the entire suite of the while clause is executed before the header expression is evaluated again. In order to prevent the suite of a while clause from being executed




#python #sicp
Testing a function is the act of verifying that the function's behavior matches expectations.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
clause from being executed indefinitely, the suite should always change some binding in each pass. A while statement that does not terminate is called an infinite loop. Press -C to force Python to stop looping. 1.5.6 Testing <span>Testing a function is the act of verifying that the function's behavior matches expectations. Our language of functions is now sufficiently complex that we need to start testing our implementations. A test is a mechanism for systematically performing this verification. Tests




#python #sicp
Tests typically take the form of another function that contains one or more sample calls to the function being tested. The returned value is then verified against an expected result. Unlike most functions, which are meant to be general, tests involve selecting and validating calls with specific argument values. Tests also serve as documentation: they demonstrate how to call a function and what argument values are appropriate.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
of verifying that the function's behavior matches expectations. Our language of functions is now sufficiently complex that we need to start testing our implementations. A test is a mechanism for systematically performing this verification. <span>Tests typically take the form of another function that contains one or more sample calls to the function being tested. The returned value is then verified against an expected result. Unlike most functions, which are meant to be general, tests involve selecting and validating calls with specific argument values. Tests also serve as documentation: they demonstrate how to call a function and what argument values are appropriate. Assertions. Programmers use assert statements to verify expectations, such as the output of a function being tested. An assert statement has an expression in a boolean context,




#python #sicp
Assertions. Programmers use assert statements to verify expectations, such as the output of a function being tested. An assert statement has an expression in a boolean context, followed by a quoted line of text (single or double quotes are both fine, but be consistent) that will be displayed if the expression evaluates to a false value.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
most functions, which are meant to be general, tests involve selecting and validating calls with specific argument values. Tests also serve as documentation: they demonstrate how to call a function and what argument values are appropriate. <span>Assertions. Programmers use assert statements to verify expectations, such as the output of a function being tested. An assert statement has an expression in a boolean context, followed by a quoted line of text (single or double quotes are both fine, but be consistent) that will be displayed if the expression evaluates to a false value. >>> assert fib(8) == 13, 'The 8th Fibonacci number should be 13' When the expression being asserted evaluates to a true value, executing an assert statement has no effect




#python #sicp
When the expression being asserted evaluates to a true value, executing an assert statement has no effect. When it is a false value, assert causes an error that halts execution.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
followed by a quoted line of text (single or double quotes are both fine, but be consistent) that will be displayed if the expression evaluates to a false value. >>> assert fib(8) == 13, 'The 8th Fibonacci number should be 13' <span>When the expression being asserted evaluates to a true value, executing an assert statement has no effect. When it is a false value, assert causes an error that halts execution. A test function for fib should test several arguments, including extreme values of n . >>> def fib_test(): assert fib(2) == 1, 'The 2nd Fibonacci number should b




#python #sicp
When writing Python in files, rather than directly into the interpreter, tests are typically written in the same file or a neighboring file with the suffix _test.py .

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
>>> def fib_test(): assert fib(2) == 1, 'The 2nd Fibonacci number should be 1' assert fib(3) == 1, 'The 3rd Fibonacci number should be 1' assert fib(50) == 7778742049, 'Error at the 50th Fibonacci number' <span>When writing Python in files, rather than directly into the interpreter, tests are typically written in the same file or a neighboring file with the suffix _test.py . Doctests. Python provides a convenient method for placing simple tests directly in the docstring of a function. The first line of a docstring should contain a one-line description of




#python #sicp
Doctests. Python provides a convenient method for placing simple tests directly in the docstring of a function. The first line of a docstring should contain a one-line description of the function, followed by a blank line. A detailed description of arguments and behavior may follow. In addition, the docstring may include a sample interactive session that calls the function:

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
assert fib(50) == 7778742049, 'Error at the 50th Fibonacci number' When writing Python in files, rather than directly into the interpreter, tests are typically written in the same file or a neighboring file with the suffix _test.py . <span>Doctests. Python provides a convenient method for placing simple tests directly in the docstring of a function. The first line of a docstring should contain a one-line description of the function, followed by a blank line. A detailed description of arguments and behavior may follow. In addition, the docstring may include a sample interactive session that calls the function: >>> def sum_naturals(n): """Return the sum of the first n natural numbers. >>> sum_naturals(10) 55 >>> sum_n




#python #sicp
To verify the doctest interactions for only a single function, we use a doctest function called run_docstring_examples . This function is (unfortunately) a bit complicated to call. Its first argument is the function to test. The second should always be the result of the expression globals() , a built-in function that returns the global environment. The third argument is True to indicate that we would like "verbose" output: a catalog of all tests run.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
the globals function returns a representation of the global environment, which the interpreter needs in order to evaluate expressions. >>> from doctest import testmod >>> testmod() TestResults(failed=0, attempted=2) <span>To verify the doctest interactions for only a single function, we use a doctest function called run_docstring_examples . This function is (unfortunately) a bit complicated to call. Its first argument is the function to test. The second should always be the result of the expression globals() , a built-in function that returns the global environment. The third argument is True to indicate that we would like "verbose" output: a catalog of all tests run. >>> from doctest import run_docstring_examples >>> run_docstring_examples(sum_naturals, globals(), True) Finding tests in NoName Trying: sum_naturals(10) Expecti




#python #sicp
The key to effective testing is to write (and run) tests immediately after implementing new functions. It is even good practice to write some tests before you implement, in order to have some example inputs and outputs in your mind. A test that applies a single function is called a unit test. Exhaustive unit testing is a hallmark of good program design.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

1.5 Control
cted result, the run_docstring_examples function will report this problem as a test failure. When writing Python in files, all doctests in a file can be run by starting Python with the doctest command line option: python3 -m doctest <span>The key to effective testing is to write (and run) tests immediately after implementing new functions. It is even good practice to write some tests before you implement, in order to have some example inputs and outputs in your mind. A test that applies a single function is called a unit test. Exhaustive unit testing is a hallmark of good program design. Continue: 1.6 Higher-Order Functions Composing Programs by John DeNero, based on the textbook Structure and




Flashcard 1438011755788

Question
What are the 5 core x in NeruoAffect Rel Model
Answer
  1. Connect
  2. Attunement
  3. Trust
  4. Autonomy
  5. Love/Sex


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill






Article 1438013590796

NARM
#developmental #healing #heller #laurence #narm #trauma





Flashcard 1438016474380

Tags
#developmental #healing #narm #trauma
Question
What Does NARM stand for?
Answer
NeuroAffective Relational Model


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill






Flashcard 1438021192972

Tags
#italian #italian-grammar
Question
Italian has three types of article: the definite article il, lo; the indefinite article un, una; and the [...] dei, delle, degli ‘some, any’. (For example: il ragazzo ‘the boy’; una lezione ‘a lesson’; dei bambini ‘some children’.)
Answer
partitive


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Italian has three types of article: the definite article il, lo (etc.) ‘the’; the indefinite article un, una (etc.) ‘a’; and the partitive dei, delle, degli (etc.) ‘some, any’. (For example: il ragazzo ‘the boy’; una lezione ‘a lesson’; dei bambini ‘some children’.)

Original toplevel document (pdf)

cannot see any pdfs







Flashcard 1438023552268

Tags
#italian #italian-grammar
Question
An idiomatic expression is one that [...],
Answer
cannot normally be translated literally

ubriaco fradicio literally ‘soaking drunk’ but more idiomatically ‘dead drunk’.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
An idiomatic expression is one that cannot normally be translated literally, for exam- ple ubriaco fradicio literally ‘soaking drunk’ but more idiomatically ‘dead drunk’.

Original toplevel document (pdf)

cannot see any pdfs







Flashcard 1438025911564

Tags
#citychef #munchery
Question
The company is in [...] cities
Answer
four

—San Francisco, Los Angeles, New York, and Seattle—operating industrial kitchens in each.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The company is in four cities—San Francisco, Los Angeles, New York, and Seattle—operating industrial kitchens in each.

Original toplevel document

How an immigrant motherfucker made munchery
ct Internet users with restaurants and their takeout menus. Critics derisively call the proliferation of these businesses the “lazy food economy,” but Munchery is different. It cooks and delivers its own rela-tively healthy fare. <span>The company is in four cities—San Francisco, Los Angeles, New York, and Seattle—operating industrial kitchens in each. One recent afternoon in San Francisco, chefs and their assistants, wearing white caps and long-sleeved smocks, toiled over trays of grilled salmon atop brown rice with edamame and sweet







Flashcard 1438085156108

Tags
#italian #italian-grammar
Question
[...] One which refers to a concept or quality rather than a person or object. Examples are: la felicità ‘happiness’; la miseria ‘poverty’.
Answer
Abstract noun


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Abstract noun One which refers to a concept or quality rather than a person or object. Examples are: la felicità ‘happiness’; la miseria ‘poverty’.

Original toplevel document (pdf)

cannot see any pdfs







Flashcard 1438086728972

Tags
#italian #italian-grammar
Question
The [...] of a verb is the form always given in a dictionary and is recognised by its endings -are, -ere, -ire: for example chiacchierare ‘to chat’; sorridere ‘to smile’; and partire ‘to leave’.
Answer
infinitive

It cannot be used on its own but depends on a finite verb form, often a modal verb: vorrei ringraziare i telespettatori ‘I would like to thank the television audience’; or else is found linked with a preposition: abbiamo fatto un salto in centro per comprare dei regali ‘we took a quick trip into town to buy some presents’.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The infinitive of a verb is the form always given in a dictionary and is recognised by its endings -are, -ere, -ire: for example chiacchierare ‘to chat’; sorridere ‘to smile’; and partire ‘to leave’.

Original toplevel document (pdf)

cannot see any pdfs







Flashcard 1438089088268

Tags
#italian #italian-grammar
Question
Intransitive verbs are verbs that cannot be used with a [...].
Answer
direct object


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Intransitive verbs are verbs that cannot be used with a direct object. Some intransitive verbs can be used with an indirect object: ho telefonato a Maria Teresa ‘I telephoned to Maria Teresa’. Some can only be used without any object: siamo arrivati alla

Original toplevel document (pdf)

cannot see any pdfs







Flashcard 1438091709708

Tags
#italian #italian-grammar
Question
The (how many) [...] main ways in which verbs can express actions or events are known as moods.
Answer
seven


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The seven main ways in which verbs can express actions or events are known as moods. The four finite moods – all of which, except the imperative, have a full range of tenses – are: the indicative

Original toplevel document (pdf)

cannot see any pdfs







#biochem
A DNA molecule of this length (4.5 million) corresponds to ~10^2,700,000 possible sequences

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
A typical protein molecule is made from ~300 amino acids. Th e total number of different sequences possible for proteins of this length is 20^300 ≈ 10^390

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
There are two central themes underlying the concepts in this book. The first is that the function of a molecule depends on its structure and that biological macromolecules can assemble spontaneously into functional structures. The second theme is that any biological macromolecule must work together with other molecules to carry out its particular functions in the cell, and this depends on the ability of molecules to recognize each other specifically. Clearly, to understand the molecular mechanism of any biological process, we must understand the energy of the physical and chemical interactions that drive the formation of specific structures and promote molecular recognition

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
entropy, which is a measure of the likeli- hood of a particular arrangement of molecules.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
From Genes to RNA and Proteins CHAPTER 1 T here are four main types of macromolecules in the cell: two kinds of nucleic acids [deoxyribonucleic acid (DNA) and ribonucleic acid (RNA)], proteins, and glycans (carbohydrates).

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
For the atoms commonly found in biological molecules, van der Waals attractions are optimal at distances between 3 and 4 Å. Th ey are of negligible strength beyond 5 Å

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
The van der Waals radius is a measure of the size of an atom. The energy due to the van der Waals attraction between two atoms is optimal when they are separated from each other by the sum of their van der Waals radii. If they move closer, the energy increases sharply

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
when two atoms are in van der Waals contact, the stabilization energy is about −1 kJ•mol −1 . Th e stabilization energy is the amount by which the energy at the optimal distance is lower than when the atoms are far apart

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
At room temperature (which we shall take to be ~300 K), the value of the thermal energy is ~2.5 kJ•mol −1 . Th is means that if an interaction between two atoms is stabilized by less than ~2.5 kJ•mol −1 , then this interaction is very easily disrupted by collisions at room tem- perature. It is by this criterion that the van der Waals attraction is very weak

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
the foot pads of geckos contain millions of tiny hair-like protrusions with fl at tips, called spatulae.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
When two oppositely charged groups are close to each other, the interaction is called an ion pair or a salt bridge,

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
the interaction energy for a negative charge that is sepa- rated from a positive charge by 3 Å in vacuum turns out to be about −500 kJ•mol −1 (Figure 1.10A; we shall explain how such a calculation is done in Chapter 6). Th is result might make it appear that electrostatic interactions are extremely strong (this value is 200 times larger than the value of thermal energy at room temperature

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
Water and ions can weaken electrostatic interactions, reducing both their strength and the distance over which they operate. If the same two ions are separated by 3 Å in water, the interaction energy is reduced by a factor of 80, to about −6 kJ•mol −1

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
two charges separated by 3 Å in the interior of a protein can be very large, reduced by only a factor of two compared with the energy in vacuum

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
however, that fully charged groups are very rarely found in the interior of proteins because there is an energetic penalty associated with separating them from strongly bound water molecules

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
Th e interaction energy depends on the extent to which they are exposed to water and, for a 3 Å separation, is expected to be in the range of −6 to −20 kJ•mol −1 .

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
When a polar group in a biological molecule forms hydrogen bonds with another polar group, it gives up hydrogen bonds with water (Figure 1.13). Th is leads to a reduction in the eff ective strength of the hydrogen bond, which is the diff erence in energy between the actual hydrogen bond and the hydrogen bonds that these groups form with water.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
Hydrogen bonds between polar groups that are net neutral are typically 5–20 times stronger than van der Waals attractions, after accounting for attenuation by water

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




#biochem
a nucleotide consists of a sugar covalently bonded to a phosphate group and to a heterocyclic aromatic ring system.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




Article 1438133914892

Subject 1. Capital Budgeting: Introduction
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting

Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budg



#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

Subject 1. Capital Budgeting: Introduction
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. &#1




Flashcard 1438136274188

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
Capital budgeting is the process of [...] on [...] whose cash flows are expected to extend beyond one year.
Answer
planning expenditures

assets (fixed assets)


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. <

Original toplevel document

Subject 1. Capital Budgeting: Introduction
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. &#1







Flashcard 1438138633484

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
Managers analyze projects and decide which ones to include in the [...].

Answer
capital budget


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget.

Original toplevel document

Subject 1. Capital Budgeting: Introduction
Capital budgeting is the process of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. &#1







Flashcard 1438140992780

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

"Capital" refers to [...]

Answer
long-term assets.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill
Subject 1. Capital Budgeting: Introduction
ss of planning expenditures on assets (fixed assets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to <span>long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. The typical steps in the capital budgeting







Flashcard 1438143352076

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
The "budget" is aplan which details [...] during a future period.
Answer
projected cash inflows and outflows


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill
Subject 1. Capital Budgeting: Introduction
ssets) whose cash flows are expected to extend beyond one year. Managers analyze projects and decide which ones to include in the capital budget. "Capital" refers to long-term assets. The "budget" is a <span>plan which details projected cash inflows and outflows during a future period. The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual pro







#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
The typical steps in the capital budgeting process:

  • Generating good investment ideas to consider.
  • Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.).
  • Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority?
  • Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

Subject 1. Capital Budgeting: Introduction
include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. <span>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. Project classifications: Replacement projects. There are two types of replacement d




Flashcard 1438147284236

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
The first two typical steps in the capital budgeting process are:

  • [...]
  • Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.).
Answer
Generating good investment ideas to consider.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? W

Original toplevel document

Subject 1. Capital Budgeting: Introduction
include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. <span>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. Project classifications: Replacement projects. There are two types of replacement d







Flashcard 1438149643532

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
The last 2 steps in the typical capital budgeting process:

  • [...]
  • Monitoring and post-auditing.

Answer
Planning the capital budget.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
ead><head>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results

Original toplevel document

Subject 1. Capital Budgeting: Introduction
include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. <span>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. Project classifications: Replacement projects. There are two types of replacement d







Flashcard 1438152002828

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
Which questions should you ask in the "Planning the capital budget" step?

How does the project [...]

What's the [...]
Answer
fit within the company's overall strategies?

timeline and priority?


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. <span>How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results

Original toplevel document

Subject 1. Capital Budgeting: Introduction
include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. <span>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. Project classifications: Replacement projects. There are two types of replacement d







Flashcard 1438156721420

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

The post-audit is a [...] of capital budgeting. (regarding importance)

Answer
key element


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
ility, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a <span>key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (base

Original toplevel document

Subject 1. Capital Budgeting: Introduction
include in the capital budget. "Capital" refers to long-term assets. The "budget" is a plan which details projected cash inflows and outflows during a future period. <span>The typical steps in the capital budgeting process: Generating good investment ideas to consider. Analyzing individual proposals (forecasting cash flows, evaluating profitability, etc.). Planning the capital budget. How does the project fit within the company's overall strategies? What's the timeline and priority? Monitoring and post-auditing. The post-audit is a follow-up of capital budgeting decisions. It is a key element of capital budgeting. By comparing actual results with predicted results and then determining why differences occurred, decision-makers can: Improve forecasts (based on which good capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. Project classifications: Replacement projects. There are two types of replacement d







Flashcard 1438162488588

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question
Project classifications:
  • Replacement projects.
  • Expansion projects.
  • [...]
  • Others.
Answer
Regulatory, safety and environmental projects.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
e cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. <span>Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These proj

Original toplevel document

Subject 1. Capital Budgeting: Introduction
ood capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. <span>Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research project in which cash flows cannot be reliably forecast). LOS a. describe the capital budgeting process and distinguish among the various categories of capital projects; <span><body><html>







Flashcard 1438164847884

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

Replacement projects.

There are two types of replacement decisions:

  • to [...]
  • to reduce costs.
Answer
to maintain a business.


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysi

Original toplevel document

Subject 1. Capital Budgeting: Introduction
ood capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. <span>Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research project in which cash flows cannot be reliably forecast). LOS a. describe the capital budgeting process and distinguish among the various categories of capital projects; <span><body><html>







#biochem
Th e 2ʹ-OH group in an RNA nucleotide can attack and break the phosphodiester linkage at the 3ʹ position, as shown in Figure 1.26. DNA lacks the 2ʹ-OH group, and so DNA is more chemically stable

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




Flashcard 1438175857932

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

Replacement decisions to reduce costs. These decisions are discretionary and a [...] is usually required.

Answer
detailed analysis


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a <span>detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from sell

Original toplevel document

Subject 1. Capital Budgeting: Introduction
ood capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. <span>Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research project in which cash flows cannot be reliably forecast). LOS a. describe the capital budgeting process and distinguish among the various categories of capital projects; <span><body><html>







Flashcard 1438178217228

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

The [...] from the old asset must be considered in replacement decisions.


Answer
cash flows


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The <span>cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial inves

Original toplevel document

Subject 1. Capital Budgeting: Introduction
ood capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. <span>Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research project in which cash flows cannot be reliably forecast). LOS a. describe the capital budgeting process and distinguish among the various categories of capital projects; <span><body><html>







#biochem
Glycine (Gly, G), with just a hydrogen atom as its sidechain, is the simplest of the 20 amino acids. It can be grouped with the hydrophobic amino acids or treated as the sole member of a fourth class because of its special properties. Th ese arise from the absence of a bulky sidechain, which allows glycine to adopt three- dimensional conformations that are energetically unfavorable for other amino acids, so that segments of protein chains that contain glycine can be much more fl exible than those that do not.

statusnot read reprioritisations
last reprioritisation on reading queue position [%]
started reading on finished reading on

pdf

cannot see any pdfs




Flashcard 1438191848716

Tags
#analyst-notes #cfa-level-1 #corporate-finance #introduction #reading-35-capital-budgeting
Question

  • Regulatory, safety and environmental projects are [...], and are often non-revenue-producing.

Answer
mandatory investments


statusnot learnedmeasured difficulty37% [default]last interval [days]               
repetition number in this series0memorised on               scheduled repetition               
scheduled repetition interval               last repetition or drill

Parent (intermediate) annotation

Open it
olve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are <span>mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research

Original toplevel document

Subject 1. Capital Budgeting: Introduction
ood capital budgeting decisions can be made). Otherwise, you will have the GIGO (garbage in, garbage out) problem. Improve operations, thus making capital decisions well-implemented. <span>Project classifications: Replacement projects. There are two types of replacement decisions: Replacement decisions to maintain a business. The issue is twofold: should the existing operations be continued? If yes, should the same processes continue to be used? Maintenance decisions are usually made without detailed analysis. Replacement decisions to reduce costs. Cost reduction projects determine whether to replace serviceable but obsolete equipment. These decisions are discretionary and a detailed analysis is usually required. The cash flows from the old asset must be considered in replacement decisions. Specifically, in a replacement project, the cash flows from selling old assets should be used to offset the initial investment outlay. Analysts also need to compare revenue/cost/depreciation before and after the replacement to identify changes in these elements. Expansion projects. Projects concerning expansion into new products, services, or markets involve strategic decisions and explicit forecasts of future demand, and thus require detailed analysis. These projects are more complex than replacement projects. Regulatory, safety and environmental projects. These projects are mandatory investments, and are often non-revenue-producing. Others. Some projects need special considerations beyond traditional capital budgeting analysis (for example, a very risky research project in which cash flows cannot be reliably forecast). LOS a. describe the capital budgeting process and distinguish among the various categories of capital projects; <span><body><html>