mirror of
https://github.com/erg-lang/erg.git
synced 2025-07-07 21:25:31 +00:00
233 lines
8.7 KiB
Python
233 lines
8.7 KiB
Python
'''
|
|
Return the absolute value of the argument.
|
|
'''
|
|
'''japanese
|
|
引数の絶対値を返す。
|
|
'''
|
|
'''erg
|
|
assert abs(-1) == 1
|
|
assert abs(3+4Im) == 5
|
|
'''
|
|
.abs: (x: Num) -> Nat
|
|
|
|
'''
|
|
Return `True` if `x == True` for all values `x` in the `iterable`.
|
|
|
|
If the `iterable` is empty, return `True`.
|
|
'''
|
|
'''erg
|
|
assert all [1, 2].map(x -> x > 0)
|
|
assert all []
|
|
'''
|
|
.all: (iterable: Iterable Bool) -> Bool
|
|
|
|
'''
|
|
Return `True` if `x == True` for any value `x` in the `iterable`.
|
|
|
|
If the `iterable` is empty, return `False`.
|
|
'''
|
|
'''erg
|
|
assert any [-1, 1, 2].map(x -> x < 0)
|
|
assert not any []
|
|
'''
|
|
.any: (iterable: Iterable Bool) -> Bool
|
|
|
|
'''
|
|
Return an ASCII-only representation of an object.
|
|
|
|
As repr(), return a string containing a printable representation of an
|
|
object, but escape the non-ASCII characters in the string returned by
|
|
repr() using \\x, \\u or \\U escapes. This generates a string similar
|
|
to that returned by repr() in Python 2.
|
|
'''
|
|
'''japanese
|
|
オブジェクトのASCII表現を返す。
|
|
|
|
repr()と同じように、オブジェクトの表現を文字列で返すが、repr()で返される文字列の非ASCII文字は\\x、\\u、\\Uエスケープでエスケープされる。
|
|
これはPython 2でのrepr()と似た文字列を生成する。
|
|
'''
|
|
'''erg
|
|
assert ascii("a") == "'a'"
|
|
assert ascii("あ") == "'\\u3042'"
|
|
'''
|
|
.ascii: (obj: Obj) -> Str
|
|
|
|
'''
|
|
Prints the values to a stream, or to `sys.stdout` by default.
|
|
|
|
Parameters:
|
|
* `sep`:
|
|
string inserted between values, default a space.
|
|
* `end`:
|
|
string appended after the last value, default a newline.
|
|
* `file`:
|
|
a file-like object (stream); defaults to the current `sys.stdout`.
|
|
* `flush`:
|
|
whether to forcibly flush the stream.
|
|
'''
|
|
'''japanese
|
|
値をストリームに書き出す。デフォルトでは`sys.stdout`に表示する。
|
|
|
|
引数:
|
|
* `sep`:
|
|
値を区切る文字列。デフォルトではスペース。
|
|
* `end`:
|
|
最後の値の後に追加される文字列。デフォルトでは改行。
|
|
* `file`:
|
|
ストリームとしてのfile-likeなオブジェクト。デフォルトでは現在の`sys.stdout`。
|
|
* `flush`:
|
|
ストリームを強制的にフラッシュするかどうか。
|
|
'''
|
|
.print!: (*args: Ref(Obj), sep := Str, end := Str, file := Writable!, flush := Bool) => NoneType
|
|
|
|
'''
|
|
Open file and return a stream.
|
|
|
|
`file` is either a text or byte string giving the name (and the path
|
|
if the file isn't in the current working directory) of the file to
|
|
be opened or an integer file descriptor of the file to be
|
|
wrapped. (If a file descriptor is given, it is closed when the
|
|
returned I/O object is closed, unless closefd is set to False.)
|
|
|
|
`mode` is an optional string that specifies the mode in which the file
|
|
is opened. It defaults to 'r' which means open for reading in text
|
|
mode. Other common values are 'w' for writing (truncating the file if
|
|
it already exists), 'x' for creating and writing to a new file, and
|
|
'a' for appending (which on some Unix systems, means that all writes
|
|
append to the end of the file regardless of the current seek position).
|
|
In text mode, if encoding is not specified the encoding used is platform
|
|
dependent: locale.getencoding() is called to get the current locale encoding.
|
|
(For reading and writing raw bytes use binary mode and leave encoding
|
|
unspecified.) The available modes are:
|
|
|
|
========= ===============================================================
|
|
Character Meaning
|
|
--------- ---------------------------------------------------------------
|
|
'r' open for reading (default)
|
|
'w' open for writing, truncating the file first
|
|
'x' create a new file and open it for writing
|
|
'a' open for writing, appending to the end of the file if it exists
|
|
'b' binary mode
|
|
't' text mode (default)
|
|
'+' open a disk file for updating (reading and writing)
|
|
========= ===============================================================
|
|
|
|
The default mode is 'rt' (open for reading text). For binary random
|
|
access, the mode 'w+b' opens and truncates the file to 0 bytes, while
|
|
'r+b' opens the file without truncation. The 'x' mode implies 'w' and
|
|
raises an `FileExistsError` if the file already exists.
|
|
|
|
Python distinguishes between files opened in binary and text modes,
|
|
even when the underlying operating system doesn't. Files opened in
|
|
binary mode (appending 'b' to the mode argument) return contents as
|
|
bytes objects without any decoding. In text mode (the default, or when
|
|
't' is appended to the mode argument), the contents of the file are
|
|
returned as strings, the bytes having been first decoded using a
|
|
platform-dependent encoding or using the specified encoding if given.
|
|
|
|
buffering is an optional integer used to set the buffering policy.
|
|
Pass 0 to switch buffering off (only allowed in binary mode), 1 to select
|
|
line buffering (only usable in text mode), and an integer > 1 to indicate
|
|
the size of a fixed-size chunk buffer. When no buffering argument is
|
|
given, the default buffering policy works as follows:
|
|
|
|
* Binary files are buffered in fixed-size chunks; the size of the buffer
|
|
is chosen using a heuristic trying to determine the underlying device's
|
|
"block size" and falling back on `io.DEFAULT_BUFFER_SIZE`.
|
|
On many systems, the buffer will typically be 4096 or 8192 bytes long.
|
|
|
|
* "Interactive" text files (files for which isatty() returns True)
|
|
use line buffering. Other text files use the policy described above
|
|
for binary files.
|
|
|
|
`encoding` is the name of the encoding used to decode or encode the
|
|
file. This should only be used in text mode. The default encoding is
|
|
platform dependent, but any encoding supported by Python can be
|
|
passed. See the codecs module for the list of supported encodings.
|
|
|
|
`errors` is an optional string that specifies how encoding errors are to
|
|
be handled---this argument should not be used in binary mode. Pass
|
|
'strict' to raise a ValueError exception if there is an encoding error
|
|
(the default of None has the same effect), or pass 'ignore' to ignore
|
|
errors. (Note that ignoring encoding errors can lead to data loss.)
|
|
See the documentation for codecs.register or run 'help(codecs.Codec)'
|
|
for a list of the permitted encoding error strings.
|
|
|
|
`newline` controls how universal newlines works (it only applies to text
|
|
mode). It can be None, '', '\n', '\r', and '\r\n'. It works as
|
|
follows:
|
|
|
|
* On input, if newline is None, universal newlines mode is
|
|
enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
|
|
these are translated into '\n' before being returned to the
|
|
caller. If it is '', universal newline mode is enabled, but line
|
|
endings are returned to the caller untranslated. If it has any of
|
|
the other legal values, input lines are only terminated by the given
|
|
string, and the line ending is returned to the caller untranslated.
|
|
|
|
* On output, if newline is None, any '\n' characters written are
|
|
translated to the system default line separator, os.linesep. If
|
|
newline is '' or '\n', no translation takes place. If newline is any
|
|
of the other legal values, any '\n' characters written are translated
|
|
to the given string.
|
|
|
|
If `closefd` is False, the underlying file descriptor will be kept open
|
|
when the file is closed. This does not work when a file name is given
|
|
and must be True in that case.
|
|
|
|
A custom opener can be used by passing a callable as *opener*. The
|
|
underlying file descriptor for the file object is then obtained by
|
|
calling *opener* with (*file*, *flags*). *opener* must return an open
|
|
file descriptor (passing os.open as *opener* results in functionality
|
|
similar to passing None).
|
|
|
|
open() returns a file object whose type depends on the mode, and
|
|
through which the standard file operations such as reading and writing
|
|
are performed. When open() is used to open a file in a text mode ('w',
|
|
'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open
|
|
a file in a binary mode, the returned class varies: in read binary
|
|
mode, it returns a BufferedReader; in write binary and append binary
|
|
modes, it returns a BufferedWriter, and in read/write mode, it returns
|
|
a BufferedRandom.
|
|
|
|
It is also possible to use a string or bytearray as a file for both
|
|
reading and writing. For strings StringIO can be used like a file
|
|
opened in a text mode, and for bytes a BytesIO can be used like a file
|
|
opened in a binary mode.
|
|
'''
|
|
.open!: (
|
|
file: PathLike,
|
|
mode := Str,
|
|
buffering := Int,
|
|
encoding := Str or NoneType,
|
|
errors := Str or NoneType,
|
|
newline := Str or NoneType,
|
|
closefd := Bool,
|
|
) => File!
|
|
|
|
'''
|
|
Convert `iterable` into a list.
|
|
'''
|
|
'''erg
|
|
assert list() == []
|
|
assert list((1, 2)) == [1, 2]
|
|
'''
|
|
.list: |T| (iterable := Iterable(T)) -> [T; _]
|
|
|
|
'''
|
|
Convert `iterable` into a dict.
|
|
'''
|
|
'''erg
|
|
assert dict() == {:}
|
|
assert dict([("a", 1), ("b": 2)]) == {"a": 1, "b": 2}
|
|
'''
|
|
.dict: |K, V| (iterable := Iterable((K, V))) -> {K: V}
|
|
|
|
'''
|
|
Convert `iterable` into a set.
|
|
'''
|
|
'''erg
|
|
assert set() == {}
|
|
assert set([1, 2]) == {1, 2}
|
|
'''
|
|
.set: |T| (iterable := Iterable(T)) -> {T; _}
|