このページはまだ翻訳されていません。原文の内容が表示されています。
array
A sequence of values.
You can construct an array by enclosing a comma-separated sequence of values in parentheses. The values do not have to be of the same type.
You can access and update array items with the .at() method. Indices are
zero-based and negative indices wrap around to the end of the array. You can
iterate over an array using a for loop. Arrays can be
added together with the + operator, joined together
and multiplied with integers.
Note: An array of length one needs a trailing comma, as in (1,).
This is to disambiguate from a simple parenthesized expressions like (1 + 2) * 3. An empty array is written as ().
Example
#let values = (1, 7, 4, -3, 2)
#values.at(0) \
#(values.at(0) = 3)
#values.at(-1) \
#values.find(calc.even) \
#values.filter(calc.odd) \
#values.map(calc.abs) \
#values.rev() \
#(1, (2, 3)).flatten() \
#(("A", "B", "C")
    .join(", ", last: " and "))

コンストラクタ引数引数は関数への入力値です。関数名の後に括弧で囲んで指定します。
Converts a value to an array.
Note that this function is only intended for conversion of a collection-like
value to an array, not for creation of an array from individual items. Use
the array syntax (1, 2, 3) (or (1,) for a single-element array) instead.
#let hi = "Hello 😃"
#array(bytes(hi))

array()->定義定義これらの関数や型には、関連する定義を持たせることができます。定義にアクセスするには、対象の関数や型の名前を指定した後に、ピリオド区切りで定義名を記述します。
first
firstReturns the first item in the array. May be used on the left-hand side of an assignment. Fails with an error if the array is empty.
self.first()->anylast
lastReturns the last item in the array. May be used on the left-hand side of an assignment. Fails with an error if the array is empty.
self.last()->anyat
atReturns the item at the specified index in the array. May be used on the left-hand side of an assignment. Returns the default value if the index is out of bounds or fails with an error if no default value was specified.
self.at(,any)->anyindex
indexThe index at which to retrieve the item. If negative, indexes from the back.
defaultany
defaultA default value to return if the index is out of bounds.
push
pushAdds a value to the end of the array.
self.push(any)valueany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
valueThe value to insert at the end of the array.
pop
popRemoves the last item from the array and returns it. Fails with an error if the array is empty.
self.pop()->anyinsert
insertInserts a value into the array at the specified index, shifting all subsequent elements to the right. Fails with an error if the index is out of bounds.
To replace an element of an array, use at.
self.insert(,any)index
indexThe index at which to insert the item. If negative, indexes from the back.
valueany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
valueThe value to insert into the array.
remove
removeRemoves the value at the specified index from the array and return it.
self.remove(,any)->anyindex
indexThe index at which to remove the item. If negative, indexes from the back.
defaultany
defaultA default value to return if the index is out of bounds.
slice
sliceExtracts a subslice of the array. Fails with an error if the start or end index is out of bounds.
self.slice(,,)->start
startThe start index (inclusive). If negative, indexes from the back.
The end index (exclusive). If omitted, the whole slice until the end of the array is extracted. If negative, indexes from the back.
nonecount
countThe number of items to extract. This is equivalent to passing
start + count as the end position. Mutually exclusive with end.
contains
containsWhether the array contains the specified value.
This method also has dedicated syntax: You can write 2 in (1, 2, 3)
instead of (1, 2, 3).contains(2).
self.contains(any)->valueany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
valueThe value to search for.
find
findSearches for an item for which the given function returns true and
returns the first match or none if there is no match.
self.find()->anynonesearcher
searcherThe function to apply to each item. Must return a boolean.
position
positionSearches for an item for which the given function returns true and
returns the index of the first match or none if there is no match.
self.position()->searcher
searcherThe function to apply to each item. Must return a boolean.
range
rangeCreate an array consisting of a sequence of numbers.
If you pass just one positional parameter, it is interpreted as the
end of the range. If you pass two, they describe the start and end
of the range.
This function is available both in the array function's scope and globally.
例を表示
#range(5) \
#range(2, 5) \
#range(20, step: 4) \
#range(21, step: 4) \
#range(5, 2, step: -1)

array.range(,,step:)->filter
filterProduces a new array with only the items from the original one for which the given function returns true.
self.filter()->test
testThe function to apply to each item. Must return a boolean.
map
mapProduces a new array in which all items from the original one were transformed with the given function.
self.map()->mapper
mapperThe function to apply to each item.
enumerate
enumerateReturns a new array with the values alongside their indices.
The returned array consists of (index, value) pairs in the form of
length-2 arrays. These can be destructured with
a let binding or for loop.
self.enumerate()->zip
zipZips the array with other arrays.
Returns an array of arrays, where the ith inner array contains all the
ith elements from each original array.
If the arrays to be zipped have different lengths, they are zipped up to the last element of the shortest array and all remaining elements are ignored.
This function is variadic, meaning that you can zip multiple arrays
together at once: (1, 2).zip(("A", "B"), (10, 20)) yields
((1, "A", 10), (2, "B", 20)).
self.zip(,)->fold
foldFolds all items into a single value using an accumulator function.
self.fold(any,)->anyinitany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
initThe initial value to start with.
folder
folderThe folding function. Must have two parameters: One for the accumulated value and one for an item.
sum
sumSums all items (works for all types that can be added).
self.sum(any)->anydefaultany
defaultWhat to return if the array is empty. Must be set if the array can be empty.
product
productCalculates the product all items (works for all types that can be multiplied).
self.product(any)->anydefaultany
defaultWhat to return if the array is empty. Must be set if the array can be empty.
any
anyWhether the given function returns true for any item in the array.
self.any()->test
testThe function to apply to each item. Must return a boolean.
all
allWhether the given function returns true for all items in the array.
self.all()->test
testThe function to apply to each item. Must return a boolean.
split
splitSplit the array at occurrences of the specified value.
self.split(any)->atany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
atThe value to split at.
join
joinCombine all items in the array into one.
self.join(anynone,last:any)->anyseparatoranynone位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
separatorA value to insert between each item of the array.
nonelastany
lastAn alternative separator between the last two items.
intersperse
intersperseReturns an array with a copy of the separator value placed between adjacent elements.
self.intersperse(any)->separatorany必須引数必須引数必須引数は、関数を呼び出す際に必ず指定しなければなりません。位置引数位置引数位置引数は順序通りに指定することで、引数名を省略して設定できます。
separatorThe value that will be placed between each adjacent element.
chunks
chunksSplits an array into non-overlapping chunks, starting at the beginning, ending with a single remainder chunk.
All chunks but the last have chunk-size elements.
If exact is set to true, the remainder is dropped if it
contains less than chunk-size elements.
例を表示
#let array = (1, 2, 3, 4, 5, 6, 7, 8)
#array.chunks(3) \
#array.chunks(3, exact: true)

self.chunks(,)->windows
windowsReturns sliding windows of window-size elements over an array.
If the array length is less than window-size, this will return an empty array.
例を表示
#let array = (1, 2, 3, 4, 5, 6, 7, 8)
#array.windows(5)

self.windows()->window-size
window-sizeHow many elements each window will contain.
sorted
sortedReturn a sorted version of this array, optionally by a given key function. The sorting algorithm used is stable.
Returns an error if two values could not be compared or if the key function (if given) yields an error.
To sort according to multiple criteria at once, e.g. in case of equality between some criteria, the key function can return an array. The results are in lexicographic order.
例を表示
#let array = (
  (a: 2, b: 4),
  (a: 1, b: 5),
  (a: 2, b: 3),
)
#array.sorted(key: it => (it.a, it.b))

self.sorted(key:)->key
keyIf given, applies this function to the elements in the array to determine the keys to sort by.
dedup
dedupDeduplicates all items in the array.
Returns a new array with all duplicate items removed. Only the first element of each duplicate is kept.
例を表示
#(1, 1, 2, 3, 1).dedup()

self.dedup(key:)->key
keyIf given, applies this function to the elements in the array to determine the keys to deduplicate by.
to-dict
to-dictConverts an array of pairs into a dictionary. The first value of each pair is the key, the second the value.
If the same key occurs multiple times, the last value is selected.
例を表示
#(
  ("apples", 2),
  ("peaches", 3),
  ("apples", 5),
).to-dict()

self.to-dict()->reduce
reduceReduces the elements to a single one, by repeatedly applying a reducing operation.
If the array is empty, returns none, otherwise, returns the result
of the reduction.
The reducing function is a closure with two arguments: an "accumulator", and an element.
For arrays with at least one element, this is the same as array.fold
with the first element of the array as the initial accumulator value,
folding every subsequent element into it.
self.reduce()->anyreducer
reducerThe reducing function. Must have two parameters: One for the accumulated value and one for an item.