Difference between revisions of "Sequence"

Line 3: Line 3:
 
[[Category:Doc Status C]] <!-- For Lumina use, do not change -->
 
[[Category:Doc Status C]] <!-- For Lumina use, do not change -->
 
   
 
   
 
 
 
 
== Sequence(start, end, ''step'') ==
 
== Sequence(start, end, ''step'') ==
 
Creates a list of numbers from «start» to «end» by equal increments (or decrements) of «step». You may omit «step», which defaults to 1. «step» must be a positive number.  «start», «end», and «step» must be deterministic scalar numbers, not arrays and not uncertain. See [[Expressions that don't array-abstract]].
 
Creates a list of numbers from «start» to «end» by equal increments (or decrements) of «step». You may omit «step», which defaults to 1. «step» must be a positive number.  «start», «end», and «step» must be deterministic scalar numbers, not arrays and not uncertain. See [[Expressions that don't array-abstract]].
Line 20: Line 17:
  
 
If «start» is greater than «end», the sequence is decreasing:
 
If «start» is greater than «end», the sequence is decreasing:
  Sequence(5,1) → [5, 4, 3, 2, 1]
+
  Sequence(5, 1) → [5, 4, 3, 2, 1]
  
 
If «start» and «end» are not integers, and you omit «step», it rounds them:
 
If «start» and «end» are not integers, and you omit «step», it rounds them:
Line 65: Line 62:
 
==Spreadsheet Column Name Sequences==
 
==Spreadsheet Column Name Sequences==
 
You can also use Sequence to generate a sequence of spreadsheet column names -- which go from 'A' to 'Z', then  'AA' to 'AZ', 'BA' to 'BZ', ... 'ZA' to 'ZZ', then 'AAA'..'ZZZ', 'AAAA'..'ZZZZ', etc., up to six letters total. In this case, «start» and «end» must contain one or more letters, either all uppercase or all lowercase:
 
You can also use Sequence to generate a sequence of spreadsheet column names -- which go from 'A' to 'Z', then  'AA' to 'AZ', 'BA' to 'BZ', ... 'ZA' to 'ZZ', then 'AAA'..'ZZZ', 'AAAA'..'ZZZZ', etc., up to six letters total. In this case, «start» and «end» must contain one or more letters, either all uppercase or all lowercase:
  Sequence('W','AF') &rarr; ['W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF']
+
  Sequence('W', 'AF') &rarr; ['W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF']
  
 
==History==
 
==History==

Revision as of 01:01, 21 November 2015


Sequence(start, end, step)

Creates a list of numbers from «start» to «end» by equal increments (or decrements) of «step». You may omit «step», which defaults to 1. «step» must be a positive number. «start», «end», and «step» must be deterministic scalar numbers, not arrays and not uncertain. See Expressions that don't array-abstract.

You can also select this function using the Sequence option from the expr menu.

The expression m .. n using the operator ".." is equivalent to Sequence(m, n, 1).

Examples

If «end» is greater than «start», the sequence is increasing:

Sequence(1, 5) → [1, 2, 3, 4, 5]

Chapter11 77.jpg

If «start» is greater than «end», the sequence is decreasing:

Sequence(5, 1) → [5, 4, 3, 2, 1]

If «start» and «end» are not integers, and you omit «step», it rounds them:

Sequence(1.2, 4.8) → [1, 2, 3, 4, 5]

If you specify «step», it can create non-integer values:

Sequence(0.5, 2.5, 0.5) → [0.5, 1, 1.5, 2, 2.5]

Optional parameters

Strict

Normally, if «start» is larger than «end», and «step» is positive, the sequence decrements by «step». As a result of this convention, a sequence will always have at least one element.

There are cases where a strict sequence is desired, such that the sequence proceeds from «start» in increments of «step», according to the sign of «step». When «step» proceeds in the direction away from «end», then a zero-length sequence results. For example, in a For..Do loop, you may want zero iterations when «end» is less than «start». Specifying the optional parameter «strict» as true obtains a strict Sequence, for example:

Sequence(x1, x2, strict: True)

When «strict» is specified as True, the step may be negative, and must be negative to obtain a decreasing sequence. For example:

Sequence(5, 1, strict: True) → []
Sequence(5, 1, -2, strict: True)  → [5, 3, 1]

DateUnit

You can use Sequence to create a sequence of dates or times, successive days or hours, the first day of each week, month, or year, and so on. You specify the units with the optional «dateUnit» parameter. For example:

Sequence(MakeDate(2009, 1, 1), MakeDate(2010, 12, 31), 4, dateUnit: "M") → 
[1-Jan-2009, 1-May-2009, 1-Sep-2009, 1-Jan-2010, 1-May-2010, 1-Sep-2010]

These are the characters defining each date and time unit:

  • Years (dateUnit: 'Y')
  • Months ('M')
  • Days ('D' this is the default if «dateUnit» is omitted)
  • Weekdays ('WD')
  • Hours ('h')
  • Minutes ('m')
  • Seconds ('s').

Character Sequences

You can specify «start» and «end» each as a character, and it will generate a sequence of characters in ASCII order:

Sequence('T', 'f') → 
['T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f']
Sequence('!', '@') → 
['!', '""', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', 
'7', '8', '9', ':', ';', '<', '=', '>', '?', '@']

Spreadsheet Column Name Sequences

You can also use Sequence to generate a sequence of spreadsheet column names -- which go from 'A' to 'Z', then 'AA' to 'AZ', 'BA' to 'BZ', ... 'ZA' to 'ZZ', then 'AAA'..'ZZZ', 'AAAA'..'ZZZZ', etc., up to six letters total. In this case, «start» and «end» must contain one or more letters, either all uppercase or all lowercase:

Sequence('W', 'AF') → ['W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF']

History

  • Analytica 4.4
    • Spreadsheet column name sequences
    • Character sequences
  • Analytica 4.2
    • Strict sequences
    • Date sequences
Comments


You are not allowed to post comments.