Portland 13 String Trimmer User Manual

  

  • Auto feed line advance with dual .065 in. line

  • Adjustable handle with variable height adjustment

  • Increased Durability & Performance: 4.0 amp motor

Find many great new & used options and get the best deals for Craftsman 30378 13' Electric Corded String Trimmer at the best online prices at eBay! Free shipping for many products!

Else britannia tattoo tardy for the party season 4 e38 black trim seringai individu. It bes 136v yonan air conditioner user manual automezzi usati. Portland 62567 13 in. Corded Electric String Trimmer Owner's Manual Portland 62630 22 in. Corded Electric Hedge Trimmer Owner's Manual Vanguard 62952 40 ft. Retractable Cord Reel Owner's Manual. Download dolmar backpack blower manual instruction iPod on 13.shl56.site. Product Page: http://www.greenworkstools.com/outdoor-power-equipment/string-trimmers/corded-string-trimmer-21212/.

Features

  • Increased Durability & Performance: Powerful 4.0 amp motor
  • Versatility: 2-in-1 Timmer/Edger
  • Ease of Use: Adjustable handle with variable height adjustment
  • Increased Cut Capacity:13' cutting swath
  • Ease of Use: Auto feed line advance with dual .065 in. line
  • Ease of Use: Cord retention hook to prevent unwanted power disconnect
  • 5.2 lbs.
  • Two-year warranty

Specifications

  • Engine Size:4.0 Amp
  • Weight:5.2 lbs
  • Cutting Swath :13'

Includes

13' String Trimmer
Guard
Operator's Manual

Documents

Добавил:
AndreyОпубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:Предмет:Файл:
.pdf
Скачиваний:Добавлен:
23.08.2013
Размер:Скачать
<<<< Предыдущая1234 / 44456789101112131415161718>Следующая >>>

15

writes 3 and 13.

If the argument of an expression is a generator, the results produced by the generator are provided to the enclosing exmpression­the sequence of results is inherited. Consequently, the previous expression can be written more compactly as

every write(find('e', 'They sit like bumps on a log.'))

Unlike iteration, which resumes a generator repeatedly to produce all its results, goal­ directed evaluation resumes a generator only as necessary, in an attempt to cause an enclosing expression to succeed. While iteration is explicit and occurs only where specified, goal­directed evaluation is implicit and is an inherent aspect of Icon's expression­evaluation mechanism.

Goal­directed evaluation is illustrated by

if find('e', 'They sit like bumps on a log') > 10 then write('found')

The first result produced by find is 3, and the comparison operation fails. Because of goal­directed evaluation, find is automatically resumed to produce another value. Since this value, 13, is greater than 10, the comparison succeeds, and found is written. On the other hand, in

if find('e', 'They sit like bumps on a log.') > 20 then write('found')

the comparison fails for 3 and 13. When find is resumed again, it does not produce another result, the control clause of if­then fails, and nothing is written.

There are several expressions in Icon that are generators, including string analysis functions that are similar in nature to find. Another generator is

i to j by k

which generates the integers from i to j by increments of k. If the by clause is omitted, the increment defaults to one.

The operation !x is polymorphic, generating the elements of x for various types. The meaning of 'element' depends on the type of x. If x is a string, !x generates the one­ character substrings of x, so that !'hello' generates 'h', 'e', 'l', 'l', and 'o'. If x is a file, !x generates the lines of the file, and so on.

Generative Control Structures. There are several control structures related to generators. The alternation control structure,

expr1 | expr2

generates the results of expr1 followed by the results of expr2. For example,

every write('hello' | 'howdy')

writes two lines, hello and howdy.

Since alternation succeeds if either of its arguments succeeds, it can be used to produce the effect of logical disjunction. An example is

if (i > j) | (j > k) then expr

which evaluates expr if i is greater than j or if j is greater than k.

Logical conjunction followes as a natural consequence of goal­directed evaluation. The operation

16

is similar to other binary operations, such as expr1 + expr2, except that it performs no computation. Instead, it produces the result of expr2, provided that both expr1 and expr2 succeed. For example,

if (i > j) & (j > k) then expr

evaluates expr only if i is greater than j and j is greater than k. Repeated alternation,

|expr

generates the results of expr repeatedly and is roughly equivalent to

expr | expr | expr | ...

String

However, if expr fails, the repeated alternation control structure stops generating results. For example,

|read(f)

generates the lines from the file f (one line for each repetition of the alternation) but stops when read(f) fails.

Note that a generator may be capable of producing an infinite number of results. For example,

|(1 to 3)

can produce 1, 2, 3, 1, 2, 3, 1, 2, 3, However, only as many results as are required by context are actually produced. Thus,

i := | (1 to 3)

only assigns the value 1 to i, since there is no context to cause the repeated alternation control structure to be resumed for a second result.

The limitation control structure

expr1 expr2

limits expr1 to at most expr2 results. Consequently,

| (1 to 3) 5

Portland 13 String Trimmer User Manuals Pdf

is only capable of producing 1, 2, 3, 1, 2.

The Order of Evaluation. With the exception of the limitation control structure, argument evaluation in Icon is strictly left­to­right. The resumption of expressions to produce additional results is in last­in, first­out order. The result is 'cross­product' generation of results in expressions that contain several generators. For example,

every write((10 to 30 by 10) + (1 to 3))

writes 11, 12, 13, 21, 22, 23, 31, 32, 33.

Control Backtracking. Goal­directed evaluation results in control backtracking to obtain additional results from expressions that have previously produced results, as in

if find('e', 'They sit like bumps on a log.') > 10 then write('found')

Portland 13 String Trimmer User Manual

Control backtracking is limited by a number of syntactic constructions. For example, in

if expr1 then expr2 else expr3

if expr1 succeeds, but expr2 fails, expr1 is not resumed for another result. (If it were, the semantics of this control structure would not correspond to what 'if­then­else' suggests.)

17

Such an expression is called a bounded expression. The control clauses of loops also are bounded, as are the expressions within compound expressions:

{ expr1; expr2; expr3; ...; exprn }

These expressions are evaluated in sequence, but once the evaluation of one is complete (whether it succeeds or fails), and the evaluation of another begins, there is no possibility of backtracking into the preceding one. The last expression in a compound expression is not bounded, however.

Except in such specific situations, expressions are not bounded. For example, in

if expr1 then expr2 else expr3

neither expr2 nor expr3 is bounded. Since Icon control structures are expressions that may return results, it is possible to write expressions such as

every write(if i > j then j to i else i to j)

which writes the integers from i to j in ascending sequence.

Data Backtracking. While control backtracking is a fundamental part of expression evaluation in Icon, data backtracking is not performed except in a few specific operations. For example, in

(i := 3) & read(f)

the value of 3 is assigned to i. Even if read(f) fails, the former value of i is not restored.

There are, however, specific operations in which data backtracking is performed. For example, the reversible assignment operation

x <- y

assigns the value of y to x, but it restores the former value of x if control backtracking into this expression occurs. Thus,

(i <- 3) & read(f)

assigns 3 to i but restores the previous value of i if read(f) fails.

2.1.3 Csets and Strings

Csets are unordered sets of characters, while strings are sequences of characters. There are 256 different ccharacters, the first 128 of which are interpreted as ASCII. The number and interpretation of characters is independent of the architecture of the computer on which Icon is implemented.

Csets. Csets are represented literally by surrounding their characters by single quotation marks. For example,

vowels := 'aeiouAEIOU'

assigns a cset of 10 characters to vowels.

There are several built­in csets that are the values of keywords. These include &lcase, &ucase, and &cset, which contain the lowercase letters, the uppercase letters, and all 256 characters, respectively.

Operations on csets include union, intersection, difference, and complement with respect to &cset. Csets are used in lexical analysis. For example, the function upto(c, s) is analogous to find(s1, s2), except that it generates the positions at which any character of c occurs in s. Thus,

18

upto(vowels, 'They sit like bumps on a log.')

is capable of producing 3, 7, 11, 13, 16, 21, 24, and 27.

Strings. Strings are represented literally by surrounding their characters with double quotation marks instead of single quotation marks. The empty string, which contains no characters, is given by'. The size of a string is given by *s. For example, if

command := 'Sit still!'

then the value of *command is 10. The value of *' is 0. Space for strings is provided automatically and there is no inherent limit to the size of a string.

There are several operations that construct strings. The principal one is concatenation, denoted by

s1 || s2

The function repl(s, i) produces the result of concatenating s i times. Thus,

write(repl('*!',3))

writes *!*!*!.

Other string construction functions include reverse(s), which produces a string with the characters of s in reverse order, and trim(s, c), which produces a string in which any trailing characters of s that occur in c are omitted. There also are functions for positioning a string in a field of a fixed width. For example, the function left(s1, i, s2) produces a string of length i with s1 positioned at the left and padded with copies of s2 as needed.

Substrings are produced by subscripting a string with the beginning and ending positions of the desired substring. Positions in strings are between characters, and the position before the first character of a string is numbered 1. For example,

verb := command[1:4]

assigns the string 'Sit' to verb. Substrings also can be specified by the beginning position and a length, as in

verb := command[1+:3]

If the length of a substring is 1, only the first position need be given, so that the value of command[2] is 'i'.

Assignment can be made to a subscripted string to produce a new string. For example,

command[1:4] := 'Remain'

changes the value of command to 'Remain still!'.

String operations are applicative; no operation on a string in Icon changes the characters in it. The preceding example may appear to contradict this, but in fact

command[1:4] := 'Remain'

is an abbreviation for

command := 'Remain' || command[5:11]

Thus, a new string is constructed and then assigned to command.

Nonpositive values can be used to specify a position with respect to the right end of a string. For example, the value of command[­1] is '!'. The value 0 refers to the position after the last character of a string, so that if the value of command is 'Sit still!',

19

is equivalent to command[5:11]

The subscript positions can be given in either order. Thus,

command[11:5]

produces the same result as command[5:11]

String­analysis functions like find and upto have optional third and fourth arguments that allow their range to be restricted to a particular portion of a string. For example,

upto(vowels, 'They sit like bumps on a log.', 10, 20)

only produces positions of vowels between positions 10 and 20 of its second argument: 11, 13, and 16. If these arguments are omitted, they default to 1 and 0, so that the entire string is included in the analysis.

Mapping. One of the more interesting string­valued functions in Icon is map(s1, s2, s3). This function produces a string obtained from a character substitution on s1. Each character of s1 that occurs in s2 is replaced by the corresponding character in s3. For example,

write(map('Remain still!', 'aeiou', '*****'))

writes R*m**n St*ll!. Characters in s1 that do not appear in s2 are unchanged, as this example shows. If a character occurs more than once in s2, its right­most correspondence in s3 applies. Consequently,

s2 := &lcase || &ucase || 'aeiou'

s3 := repl('|',26) || repl('u',26) || '*****' write(map('Remain still!', s2, s3))

writes u*|**| ||*||!.

2.1.4 String Scanning

String scanning is a high­level facility for string analysis that suppresses the computational details associated with the explicit location of positions and substring specifications. In string scanning, a subject serves as a focus of attention. A position in this subject is maintained automatically.

A string­scanning expression has the form

expr1 ? expr2

in which the evaluation of expr1 provides the subject. The position in the subject is 1 initially. The expression expr2 is then evaluated in the context of this subject and position.

Although expr2 can contain any operation, two matching functions are useful in analyzing the subject:

tab(i)

set the position in the subject to i

move(i)

increment the position in the subject by i

20

Both of these functions return the substring of the subject between the old and new positions. If the position is out of the range of the subject, the matching function fails and the position is not changed. The position can be increased or decreased. Nonpositive values can be used to refer to positions relative to the end of the subject. Thus, tab(0) moves the position to the end of the subject, matching the remainder of the subject.

An example of string scanning is

line ? while write(move(2))

which writes successive two­character substrings of line, stopping when there are not two characters remaining.

In string scanning, the trailing arguments of string analysis functions such as find and upto are omitted; the functions apply to the subject at the current position. Therefore, such functions can be used to provide arguments for matching functions. An example is

line ? write(tab(find('::=')))

which writes the initial portion of line up to an occurrence of the string '::='.

If a matching function is resumed, it restores the position in the subject to the value that it had before the matching function was evaluated. For example, suppose that line contains the substring '::='. Then

line ?

((tab(find('::=') + 3)) & write(move(10)) | write(tab(0)))

writes the 10 characters after '::=', provided there are 10 more characters. However, if there are not 10 characters remaining, move(10) fails and tab(find('::=')) is resumed. It restores the position to the beginning of the subject, and the alternative, tab(0), matches the entire subject, which is written.

Data backtracking of the position in the subject is important, since it allows matches to be performed with the assurance that any previous alternatives that failed to match left the position where it was before they were evaluated.

The subject and position are directly accessible as the values of the keywords &subject and &pos, respectively. For example,

&subject := 'Hello'

assigns the string 'Hello' to the subject. Whenever a value is assigned to the subject, &pos is set to 1 automatically.

The values of &subject and &pos are saved at the beginning of a string­scanning expression and are restored when it completes. Consequently, scanning expressions can be nested.

2.1.5 Lists

A list is a linear aggregate of values ('elements'). For example,

Portland 13 String Trimmer User Manual Pdf

cities := ['Portland', 'Toledo', 'Tampa']

assigns a list of three strings to cities. Lists can be heterogeneous, as in

language := ['Icon', 1978, 'The University of Arizona']

An empty list, containing no elements, is produced by []. The function

21

produces a list of i elements, each of which has the value of x. The size operation *x also applies to lists. The value of *cities is 3, for example.

An element of a list is referenced by a subscripting expression that has the same form as the one for strings. For example,

cities[3] := 'Miami'

changes the value of cities to

['Portland', 'Toledo', 'Miami']

The function sort (a) produces a sorted copy of a. For example, sort(cities) produces

['Miami', 'Portland', 'Toledo']

List operations, unlike string operations, are not applicative. While assignment to a substring is an abbreviation for concatenation, assignment to a subscripted list changes the value of the subscripted element.

A list value is a pointer to a structure that contains the elements of the list. Assignment of a list value copies this pointer, but it does not copy the structure. Consequently, in

states := ['Nevada', 'Texas', 'Maine', 'Georgia'] slist := states

both states and slist point to the same structure. Because of this,

states[2] := 'Arkansas'

Portland 13 String Trimmer User Manual Pdf

changes the second element of slist as well as the second element of states. The elements of a list may be of any type, including lists, as in

tree := ['a', ['b', ['c'], ['d']]]

which can be depicted as

Structures also can be used to represent loops, as in

graph := ['a', '] graph[2] := graph

which can be depicted as

Lists are not fixed in size. Elements can be added to them or removed from them at their ends by queue and stack functions.

The function put(a, x) adds the value of x to the right end of the increasing its size by one. Similarly, push(a, x) adds the value of x to the left end of a. For example,

22

Portland 13 String Trimmer User Manual Pdf

lines := []

while put(lines, read(f))

constructs a list of the lines from the file f. Conversely,

lines := []

while push(lines, read(f)) constructs a list of lines in reverse order.

The functions pop(a) and get(a) are the same. They both remove an element from the left end of a and return it as the value of the function call, but they fail if a is empty. Consequently,

Portland String Trimmer Manual

lines := []

while push(lines, read(f)) while write(pop(lines))

writes out the lines of f in reverse order. The function pull(a) is similar, but it removes an element from the right end of a.

Other operations on lists include concatenation, which is denoted by

a1 ||| a2

where a1 and a2 are lists. There is no automatic conversion of other types to lists. List sectioning is denoted by

a[i:j]

The result is a new list containing values i through j of a.

There is no inherent limit to the size of a list, either when it is originally created or as a result of adding elements to it.

2.1.6 Sets

A set is an unordered collection of values. Unlike csets, which contain only characters, sets are collections of Icon values that can be of any type. A set is constructed from a list by set(a). For example,

states := set(['Virginia', 'Rhode Island', 'Kansas', 'Illinois'])

assigns a set of four elements to states. The operation

member(s, x)

succeeds if the value of x is a member of s but fails otherwise. The operation

insert(s, x)

adds the value of x to s if it is not already a member of s, while

delete(s, x)

deletes the value of x from s. The operations of union, intersection, and difference for sets also are provided.

Like other structures, sets can be heterogeneous. A set can even be a member of itself, as in

insert(s, s)

There is no contradiction here, since a set value is a pointer to the structure for the set.

23

2.1.7 Tables

A table is a set of pairs of values. Tables provide an associative look mechanism as contrasted with positional references to lists. They can be subscripted with an entry value to which a value can be assigned to make up a pair called a table element.

A table is created by

table(x)

Tables are empty initially. The value of x is an assigned default value that is produced if the table is subscripted with an entry value to which no value has been assigned (that is, for an element that is not in the table). For example,

states := table(0)

assigns to states a table with a default value of 0. An element can be added to states by an assignment such as

states['Oregon'] := 1

which adds a table element for 'Oregon' with the value 1 to states. On the other hand,

write(states ['Utah'])

writes 0, the default value, if there is no element in the table for 'Utah'.

Tables can be heterogeneous and have a mixture of types for entry and assigned values. Tables grow automatically in size as new elements are added and there is no inherent limit on the size of a table.

2.1.8 Records

A record is an aggregate of values that is referenced by named fields. Each record type has a separate name. A record type and the names of its fields are given in a declaration. For example,

record rational(numerator, denominator)

declares a record of type rational with two fields: numerator and denominator.

An instance of a record is created by calling a record­constructor function corresponding to the form of the declaration for the record type. Thus,

r := rational(3,5)

assigns to r a record of type rational with a numerator field of 3 and a denominator field of 5. Fields are referenced by name, as in

write(r.numerator)

which writes 3. Fields can also be referred to by position; r[1] is equivalent to r.numerator.

There is no inherent limit to the number of different record types. The same field names can be given for different record types, and such fields need not be in the same position for all such record types.

2.1.9 Input and Output

Input and output in Icon are sequential and comparatively simple. The standard input, standard output, and standard error output files are the values of &input, &output, and &errout, respectively. The function

24

opens the file whose name is s1 according to options given by s2 and produces a value of type file. Typical options are 'r' for opening for reading and 'w' for opening for writing. The default is 'r'. For example,

log := open('grade.log', 'w')

assigns a value of type file to log, corresponding to the data file grade.log, which is opened for writing. The function open fails if the specified file cannot be opened according to the options given. The function close(f) closes the file f.

The function read(f) reads a line from the file f but fails if an end of file is encountered. The default is standard input if f is omitted.

The result of

write(x1,x2, ..., xn)

depends on the types of x1, x2, ..., xn. Strings and types convertible to strings are written, but if one of the arguments is a file, subsequent strings are written to that file. The default file is standard output. Thus,

write(s1,s2)

writes the concatenation of s1 and s2 to standard output, but

write(log,s)

Portland 13 String Trimmer Manual

writes s to the file grade.log. In any event, write returns the string value of the last argument written.

The function

stop(x1, x2, ..., xn)

produces the same output as write, but it then terminates program execution.

2.1.10 Procedures

Procedure Declarations. The executable portions of an Icon program are contained in procedure declarations. Program execution begins with a call of the procedure main.

An example of a procedure declaration is:

procedure maxstr(slist) local max, value max := 0

every value := *!slist do

Portland 13 String Trimmer User Manual Online

if value> max then max := value return max

end

This procedure computes the longest string in a list of strings. The formal parameter slist and the identifiers max and value are local to calls of the procedure maxstr. Storage for them is allocated when maxstr is called and deallocated when maxstr returns.

A procedure call has the same form as a function call. For example,

lines := []

while put(lines, read(f)) write(maxstr(lines))

writes the length of the longest line in the file f.

<<<< Предыдущая1234 / 44456789101112131415161718>Следующая >>>

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в предмете Электротехника
  • #
    23.08.2013178.08 Кб7Jackson M.JSP in perspective.2001.pdf
  • #
    23.08.2013306.57 Кб9Jain J., Narayan A., Fujita M. - A survey of techniques for formal verification of combinational circuits (1997)(en).pdf
  • #
    23.08.20133.85 Mб7Janssens S.Bluetooth tools.2005.pdf
  • #
    23.08.2013255.49 Кб18Jantzen J.Tuning of fuzzy PID controllers.pdf
  • #
    23.08.2013166.76 Кб18Jantzen J.Tutorial on fuzzy logic.pdf
  • #
    23.08.20133.05 Mб7Jeffery C.The implementation of Icon and Unicon.2004.pdf
  • #
    23.08.201319.66 Mб9Johnson H.W.High-speed digital design.A handbook of black magic.1993.pdf
  • #
    23.08.2013100.03 Кб10Johnson S.C.Yacc - yet another compiler-compiler.pdf
  • #
    23.08.20131.36 Mб12Jones D.M.The new C standard (C90 and C++).An economic and cultural commentary.2005.pdf
  • #
    23.08.201310.62 Mб3Jones D.M.The new C standard.An economic and cultural commentary.2005.pdf
  • #
    23.08.20131.11 Mб3Jones D.M.The new C standard.An economic and cultural commentary.Sentence 0.2005.pdf