Content deleted Content added
SilverLocust (talk | contribs) substituting most {{code| }} calls with {{subst:codenowiki| }} to go under the expensive parser limit Tag: nowiki added |
m →Functions: {{codett}} |
||
(28 intermediate revisions by 7 users not shown) | |||
Line 34:
|-
| [[Ada (programming language)|Ada]]<ref name="Ada_RM_2012">Ada Reference Manual – Language and Standard Libraries; ISO/IEC 8652:201x (E), {{cite web |url=http://www.ada-auth.org/standards/12rm/RM-Final.pdf |title=Reference Manual |access-date=2013-07-19 |url-status=dead |archive-url=https://web.archive.org/web/20110427190723/http://www.ada-auth.org/standards/12rm/RM-Final.pdf |archive-date=2011-04-27 }}</ref>
|
|
|
|
|
|
|
|
| <code
|
| {{n/a}}
|-
| rowspan=2| [[ALGOL 68]] (variable-width)
| rowspan=2| <code
| rowspan=2 {{n/a}}
| rowspan=2| <code
| rowspan=2 {{n/a}}
| rowspan=2| <code
| rowspan=2 {{n/a}}
| rowspan=2| <code
| rowspan=2 {{n/a}}
| <code
| {{n/a}}
| rowspan=2| <code
|-
| colspan=2 align=center|<code
|-
| [[C (programming language)|C]] ([[C99]] fixed-width)
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=5 {{n/a}}
|-
Line 77:
|-
| [[C (programming language)|C]] ([[C99]] variable-width)
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
| rowspan=2| <code
|-
| [[C++]] ([[C++11]] variable-width)
|-
| [[Objective-C]] ([[Cocoa (API)|Cocoa]])
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[C Sharp (programming language)|C#]]
| <code
| <code
| rowspan=2| <code
| <code
| rowspan=2| <code
| <code
| rowspan=2| <code
| <code
| <code
| <code
| <code>System.Numerics.<wbr/>BigInteger</code><br/>(.NET 4.0)
|-
| [[Java (programming language)|Java]]
| <code
| {{n/a}}
| <code
| {{n/a}}
| {{n/a}}
Line 126:
|-
| [[Go (programming language)|Go]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[Rust (programming language)|Rust]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
|-
| [[Swift (programming language)|Swift]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[D (programming language)|D]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Common Lisp]]<ref name="HyperSpec">{{cite web|url=http://www.lispworks.com/documentation/HyperSpec/Front/index.htm|title=Common Lisp HyperSpec (TM)|work=lispworks.com|access-date=30 January 2017}}</ref>
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|
|
| <code
|-
| [[Scheme (programming language)|Scheme]]
Line 213:
|
|
| <code
|-
| [[Pascal (programming language)|Pascal]] ([[Free Pascal|FPC]])
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
|-
| [[Visual Basic (classic)|Visual Basic]]
| {{n/a}}
| rowspan=2|<code
| <code
| {{n/a}}
| <code
| {{n/a}}
| colspan=2 {{n/a}}
Line 240:
|-
| [[Visual Basic .NET]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code>System.Numerics<wbr/>.BigInteger</code><br/>(.NET 4.0)
|-
| [[FreeBasic]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
|-
Line 267:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| <code
|-
| [[Python (programming language)|Python]] 3.x
Line 277:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
|-
| [[
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
Line 288:
|-
| [[Fortran]]
|
| {{n/a}}
|
| {{n/a}}
|
| {{n/a}}
|
| {{n/a}}
|
Line 303:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| <code
| {{n/a}}
| colspan=2 {{n/a}}
Line 316:
| colspan=2 {{n/a}}{{ref|scalars|[d]}}
| colspan=2 {{n/a}}{{ref|scalars|[d]}}
| <code
|-
| [[Raku (programming language)|Raku]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| colspan=2 {{n/a}}
|-
Line 335:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| <code
|-
| [[Erlang (programming language)|Erlang]]{{ref|Erlang_int|[n]}}
Line 344:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| <code
|-
| [[Scala (programming language)|Scala]]
| <code
| {{n/a}}
| <code
| <code
| <code
| {{n/a}}
| <code
| {{n/a}}
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Seed7]]
Line 368:
| {{n/a}}
| {{n/a}}
| <code
| {{n/a}}
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Smalltalk]]
Line 379:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| <code
|-
| [[Windows PowerShell]]
Line 394:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
| {{n/a}}
| rowspan=2| <code
| {{n/a}}
| <code
|
| <code
|-
| [[F Sharp (programming language)|F#]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[Standard ML]]
| {{n/a}}
| <code
| colspan=2 {{n/a}}
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[Haskell]] ([[Glasgow Haskell Compiler|GHC]])
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
|-
| [[Eiffel (programming language)|Eiffel]]
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
|-
| [[COBOL]]{{ref|Cobol|[h]}}
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| <code
| {{n/a}}
| {{n/a}}
Line 471:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
|-
| [[Wolfram Language]]
Line 479:
| colspan=2 {{n/a}}
| colspan=2 {{n/a}}
| <code
|}
* {{note|a68|a}} The ''standard'' constants <code
* {{note|Java char|b}} Commonly used for characters.
* {{note|CInt|c}} The ALGOL 68, C and C++ languages do not specify the exact width of the integer types <code
* {{note|scalars|d}} Perl 5 does not have distinct types. Integers, floating point numbers, strings, etc. are all considered "scalars".
* {{note|PHP bignum|e}} PHP has two arbitrary-precision libraries. The BCMath library just uses strings as datatype. The GMP library uses an internal "resource" type.
* {{note|Kinds|f}} The value of <code
* {{note|a68g|g}} [[ALGOL 68]]G's runtime option <code
* {{note|Cobol|h}} [[COBOL]] allows the specification of a required precision and will automatically select an available type capable of representing the specified precision. "<code
* {{note|Smalltalk|i}} [[Smalltalk]] automatically chooses an appropriate representation for integral numbers. Typically, two representations are present, one for integers fitting the native word size minus any tag bit ({{mono|SmallInteger}}) and one supporting arbitrary sized integers ({{mono|LargeInteger}}). Arithmetic operations support polymorphic arguments and return the result in the most appropriate compact representation.
* {{note|Ada_range|j}} [[Ada (programming language)|Ada]] range types are checked for boundary violations at run-time (as well as at compile-time for static expressions). Run-time boundary violations raise a "constraint error" exception. Ranges are not restricted to powers of two. Commonly predefined Integer subtypes are: Positive (
* {{note|Ada mod|k}} [[Ada (programming language)|Ada]] modulo types implement modulo arithmetic in all operations, i.e. no range violations are possible. Modulos are not restricted to powers of two.
* {{note|Scala char|l}} Commonly used for characters like Java's char.
* {{note|PHP 32/64 bit long|m}} <code
* {{note|Erlang int|n}} [[Erlang (programming language)|Erlang]] is dynamically typed. The type identifiers are usually used to specify types of record fields and the argument and return types of functions.<ref>{{cite web|url=http://www.erlang.org/doc/reference_manual/typespec.html|title=Erlang {{--}} Types and Function Specifications|work=erlang.org|access-date=30 January 2017}}</ref>
* {{note|Erlang arb|o}} When it exceeds one word.<ref>{{cite web|url=http://www.erlang.org/doc/efficiency_guide/advanced.html|title=Erlang {{--}} Advanced|work=erlang.org|access-date=30 January 2017}}</ref>
Line 507:
|-
| [[Ada (programming language)|Ada]]<ref name="Ada_RM_2012" />
| <code
| <code
| {{n/a}}
|-
| [[ALGOL 68]]
| <code
| <code
| <code
|-
| [[C (programming language)|C]]
| rowspan=3| <code
| rowspan=5| <code
| rowspan=3| <code
|-
| [[C++]] (STL)
|-
| [[Objective-C]] ([[Cocoa (API)|Cocoa]])
| <code
|-
| [[C Sharp (programming language)|C#]]
| rowspan=2| <code
| rowspan=
|-
| [[Java (programming language)|Java]]
|-
| [[Go (programming language)|Go]]
| <code
| <code
|-
| [[Rust (programming language)|Rust]]
| <code
| <code
| <code>f16, f128</code>
|-
| [[Swift (programming language)|Swift]]
| <code
| <code
| <code
| <code
|-
| [[D (programming language)|D]]
| <code
| <code
|
| <code
|-
| [[Common Lisp]]
| <code
| <code
| <code
|-
| [[Scheme (programming language)|Scheme]]
Line 568 ⟶ 569:
|-
| [[Pascal (programming language)|Pascal]] ([[Free Pascal|FPC]])
| <code
| <code
|
| <code
|-
| [[Visual Basic (classic)|Visual Basic]]
| rowspan=3| <code
| rowspan=3| <code
| rowspan=3 {{n/a}}
|-
Line 584 ⟶ 585:
| [[Python (programming language)|Python]]
| rowspan=2 {{n/a}}
| <code
|
|-
| [[JavaScript]]
| <code
| {{n/a}}
|-
| [[
| <!-- ''x'' = ''value f''; -->
| <!-- ''x'' = ''value''; -->
Line 602 ⟶ 603:
| [[PHP]]
|
| <code
|
|-
Line 611 ⟶ 612:
|-
| [[Raku (programming language)|Raku]]
| <code
| <code
|
| <code
|-
| [[Ruby (programming language)|Ruby]]
| {{n/a}}
| <code
| rowspan=4 {{n/a}}
|-
| [[Scala (programming language)|Scala]]
| <code
| <code
|-
| [[Seed7]]
| {{n/a}}
| <code
|-
| [[Smalltalk]]
| <code
| <code
|-
| [[Windows PowerShell]]
Line 640 ⟶ 641:
| [[OCaml]]
| {{n/a}}
| rowspan=2| <code
| rowspan=3 {{n/a}}
|-
| [[F Sharp (programming language)|F#]]
| <code
|-
| [[Standard ML]]
| {{n/a}}
|
| <code
|-
| [[Haskell]] ([[Glasgow Haskell Compiler|GHC]])
| <code
| <code
|
|-
| [[Eiffel (programming language)|Eiffel]]
| <code
| <code
|
|-
| [[COBOL]]
| <code
| <code
| <code
|-
| [[Mathematica]]
Line 670 ⟶ 671:
| {{n/a}}
|
| <code
|}
* {{note|a68_real|a}} The ''standard'' constants <code
* {{note|lax floats|b}} declarations of single precision often are not honored
* {{note|real kinds|c}} The value of <code
* {{note|a68g-real|d}} [[ALGOL 68]]G's runtime option <code
* {{note|Cobol-ieee|e}} These [[IEEE]] floating-point types will be introduced in the next COBOL standard.
* {{note|C-long-double|f}} Same size as <code
* {{note|Swift-long-double|g}} Swift supports 80-bit [[Extended precision#Language support|extended precision]] floating point type, equivalent to <code
=== [[Complex number]]s ===
Line 691 ⟶ 692:
| [[Ada (programming language)|Ada]]<ref name="Ada_RM_2012" />
| {{n/a}}
| <code
| <code
| <code
|-
| [[ALGOL 68]]
| {{n/a}}
| <code
| <code
| <code
|-
| [[C (programming language)|C]] ([[C99]])<ref>{{cite web|url=https://www.gnu.org/software/libc/manual/html_node/Complex-Numbers.html#Complex-Numbers|title=The GNU C Library: Complex Numbers|work=gnu.org|access-date=30 January 2017}}</ref>
| {{n/a}}
| <code
| <code
| rowspan=7 {{n/a}}
|-
Line 715 ⟶ 716:
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Java (programming language)|Java]]
Line 724 ⟶ 725:
| [[Go (programming language)|Go]]
| {{n/a}}
| <code
| <code
|-
| [[D (programming language)|D]]
| {{n/a}}
| <code
| <code
|-
| [[Objective-C]]
Line 762 ⟶ 763:
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Perl]]
|
|
| <code
|
|-
| [[Raku (programming language)|Raku]]
|
| <code
| <code
| <code
|-
| [[Python (programming language)|Python]]
|
|
| <code
| rowspan=15 {{n/a}}
|-
Line 787 ⟶ 788:
|
|-
| [[
| {{n/a}}
| {{n/a}}
Line 797 ⟶ 798:
|-
| [[Ruby (programming language)|Ruby]]
| <code
| {{n/a}}
| <code
|-
| [[Scala (programming language)|Scala]]
Line 809 ⟶ 810:
| {{n/a}}
| {{n/a}}
| <code
|-
| [[Smalltalk]]
| <code
| <code
| <code
|-
| [[Windows PowerShell]]
Line 824 ⟶ 825:
| {{n/a}}
| {{n/a}}
| <code
|-
| [[F Sharp (programming language)|F#]]
|
|
| <code
|-
| [[Standard ML]]
Line 838 ⟶ 839:
| [[Haskell]] ([[Glasgow Haskell Compiler|GHC]])
| {{n/a}}
| <code
| <code
|-
| [[Eiffel (programming language)|Eiffel]]
Line 852 ⟶ 853:
|-
| [[Mathematica]]
| <code
| {{n/a}}
| {{n/a}}
| <code
|}
* {{note|complex kinds|a}} The value of <code
* {{note|generic type|b}} Generic type which can be instantiated with any base floating point type.
Line 865 ⟶ 866:
! rowspan=2|
! colspan=2| Text
! rowspan=2| [[Boolean
! rowspan=2| [[Enumerated type|Enumeration]]
! rowspan=2| [[Object (computer science)|Object]]/[[Top type|Universal]]
Line 873 ⟶ 874:
|-
| [[Ada (programming language)|Ada]]<ref name="Ada_RM_2012" />
| <code
| <code
| <code
| <code>(''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'')</code>
| <code
|-
| [[ALGOL 68]]
| <code
| <code
| <code
| {{
| {{
|-
| [[C (programming language)|C]] ([[C99]])
| rowspan=2| <code
| {{
| rowspan=2| <code
| rowspan=3| <code>enum ''«name»'' { ''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'' };</code>
| rowspan=2| <code>[[void type|void]] [[pointer (computer programming)|*]]</code>
|-
| [[C++]] (STL)
| [[C++ string handling|<code
|-
| [[Objective-C]]
| <code
| <code
| <code
| <code
|-
| [[C Sharp (programming language)|C#]]
| rowspan=2| <code
| <code
| <code
| <code>enum ''name'' { ''item<sub>1</sub>''« = ''value''», ''item<sub>2</sub>''« = ''value''», ''...'' }</code>
| object
|-
| [[Java (programming language)|Java]]
| <code
| <code
| <code>enum ''name'' { ''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'' }</code>
| <code
|-
| [[Go (programming language)|Go]]
| <code
| <code
| <code
| <code>const (<br/>{{Spaces|3}}''item{{sub|1}}'' = ''iota''<br/>{{Spaces|3}}''item{{sub|2}}''<br/>{{Spaces|3}}''...''<br/>)</code>
| <code>interface{}</code>
|-
| [[Rust (programming language)|Rust]]
| <code
| <code
| <code
| <code>enum ''name'' { ''item{{sub|1}}''« = ''value''», ''item{{sub|2}}''« = ''value''», ''...'' }</code>
| <code
|-
| [[Swift (programming language)|Swift]]
| <code
| <code
| <code
| <code>enum ''name'' { case ''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'' }</code>
| <code
|-
| [[D (programming language)|D]]
| <code
| <code
| <code
| <code>enum ''name'' { ''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'' }</code>
| <code
|-
| [[Common Lisp]]
| <code
| <code
| <code
| <code>(member ''item<sub>1</sub>'' ''item<sub>2</sub>'' ''...'')</code>
| <code
|-
| [[Scheme (programming language)|Scheme]]
Line 965 ⟶ 966:
|-
| Pascal (ISO)
| rowspan=2| <code
| {{
| rowspan=2| <code
| rowspan=2| <code>( ''item<sub>1</sub>'', ''item<sub>2</sub>'', ''...'' )</code>
| {{
|-
| [[Object Pascal]] ([[Delphi (software)|Delphi]])
| <code
| <code
|-
| [[Visual Basic (classic)|Visual Basic]]
| {{
| rowspan=3| <code
| rowspan=3| <code
| rowspan=3| <code>Enum ''name''<br/>{{Spaces|3}}''item{{sub|1}}'' «= ''value''»<br/>{{Spaces|3}}''item{{sub|2}}'' «= ''value»<br/>{{Spaces|3}}...''<br/>End Enum</code>
|
|-
| [[Visual Basic .NET]]
| <code
| <code
|-
| [[Xojo]]
| {{
| <code
|-
| [[Python (programming language)|Python]]
| {{
| <code
| <code
| {{pre|1=
{{codett|2=python|import enum}}
| <code><nowiki>object</nowiki></code>▼
{{codett|2=python|class Name(enum.Enum):}}
''item{{sub|1}}'' = ''value''
''item{{sub|2}}'' = ''value''
''...''
}}
|-
| [[JavaScript]]
| {{
| <code
| <code
|
| <code
|-
| [[
|
|
Line 1,012 ⟶ 1,020:
|-
| [[Fortran]]
|
|
|
|
| <code
|-
| [[PHP]]
| {{
| <code
| <code
|
| (type declaration omitted)
|-
| [[Perl]]
| {{
|
|
|
| <code
|-
| [[Raku (programming language)|Raku]]
| <code
| <code
| <code
| <code>enum ''name<item<sub>1</sub> item<sub>2</sub> ...>''</code><br/><code>enum ''name <<:item<sub>1</sub>(value) :item<sub>2</sub>(value) ..>>''</code>
| <code
|-
| [[Ruby (programming language)|Ruby]]
| {{
| <code
| <code
|
| <code
|-
| [[Scala (programming language)|Scala]]
| <code
| <code
| <code
| <code>object ''name'' extends Enumeration {<br/>{{Spaces|3}}''val item{{sub|1}}, item{{sub|2}}, ... = Value''<br/>}</code>
| <code
|-
| [[Seed7]]
| <code
| <code
| <code
| <code>const type'': name'' is new enum<br/>{{Spaces|3}}''item{{sub|1}},''<br/>{{Spaces|3}}''item{{sub|2}},''<br/>{{Spaces|3}}''...''<br/>end enum;</code>
|
Line 1,068 ⟶ 1,076:
|-
| [[OCaml]]
| rowspan=3| <code
| rowspan=3| <code
| rowspan=3| <code
| {{
| {{
|-
| [[F Sharp (programming language)|F#]]
| <code>type ''name'' = ''item<sub>1</sub>'' = ''value'' {{pipe}}''item<sub>2</sub>'' = ''value'' {{pipe}} ''...''</code>
| <code
|-
| [[Standard ML]]
| {{
| {{
|-
| [[Haskell]] ([[Glasgow Haskell Compiler|GHC]])
| <code
| <code
| <code
| {{
| {{
|-
| [[Eiffel (programming language)|Eiffel]]
| <code
| <code
| <code
| {{
| <code
|-
| [[COBOL]]
| <code
| <code>''PIC X(''string length'')''</code> or <code>PIC X«X...»</code>
| <code>''PIC 1«(''number of digits'')»''</code> or <code>PIC 1«1...»</code>
| {{
| <code
|-
| [[Mathematica]]
| {{
| <code
|
|
| {{
|}
* {{note|string|a}} specifically, strings of arbitrary length and automatically managed.
* {{note|int bool|b}} This language represents a boolean as an integer where false is represented as a value of zero and true by a non-zero value.
* {{note|Ruby's bool|c}} All values evaluate to either true or false. Everything in ''<code
* {{note|string as char|d}}This language does not have a separate character type. Characters are represented as strings of length 1.
* {{note|enum|e}} Enumerations in this language are algebraic types with only nullary constructors
* {{note|logical kinds|f}} The value of ''<code
== Derived types ==
Line 1,181 ⟶ 1,189:
| [[Rust (programming language)|Rust]]
| <code>[''type; size'']</code>
| <code>
| <code>Vec<''type''></code>
| <code>Vec<Vec<''type''>></code>
Line 1,203 ⟶ 1,211:
|- valign="top"
| [[Common Lisp]]
|
|
|
|
|- valign="top"
| [[Scheme (programming language)|Scheme]]
Line 1,226 ⟶ 1,234:
| {{n/a}}
|- valign="top"
| [[Object Pascal]] ([[Delphi (software)|Delphi]])
| <code>array of'' type''</code>
| <code>array of array ''...'' of ''type''</code>
Line 1,248 ⟶ 1,256:
|
|- valign="top"
| [[
| <code>x = ''type''[''size''];</code>
| <code>x = ''type''[''size<sub>1</sub>'','' size<sub>2</sub>'', ''...''];</code>
Line 1,327 ⟶ 1,335:
|- valign="top"
| [[Haskell]] ([[Glasgow Haskell Compiler|GHC]])
| <code>{{codett|2=haskell|1=x = Array.array (0,}} ''size''-1) ''list_of_association_pairs''</code>
| <code>{{codett|2=haskell|1=x = Array.array ((0, 0,}}''...''), (''size<sub>1</sub>''-1, ''size<sub>2</sub>''-1,''...'')) ''list_of_association_pairs''</code>
|
|
Line 1,335 ⟶ 1,343:
| <code>''level-number type'' OCCURS ''size'' «TIMES».</code>
| {{em|one-dimensional array definition...}}
| <code>''level-number type'' OCCURS ''min-size'' TO ''max-size'' {{codett|2=cobolfree|1=«TIMES» DEPENDING «ON»}} ''size''.</code>{{ref|COBOL DEPENDING ON clause|[e]}}
| {{n/a}}
|}
* {{note|C's array|a}}In most expressions (except the <code>[[sizeof]]</code> and <code
* {{note|Java's array|b}} The C-like <code>''type'' x[]</code> works in Java, however <code>''type''[] x</code> is the preferred form of array declaration.
* {{note|subrange|c}} Subranges are used to define the bounds of the array.
* {{note|JavaScript's array|d}} JavaScript's array are a special kind of object. <!-- explain array(size) thing -->
* {{note|COBOL DEPENDING ON clause|e}} The <code
=== Other types ===
Line 1,357 ⟶ 1,365:
| [[Ada (programming language)|Ada]]<ref name="Ada_RM_2012" />
| <code>type ''name'' is «abstract» «tagged» «limited» ''[''record{{indent|2}}''field{{sub|1}}'' : ''type'';{{indent|2}}''field{{sub|2}}'' : ''type'';{{indent|2}}''...''<br/>end record ''{{pipe}}'' null record'']''</code>
| {{
| {{Any}} combination of records, unions, and enumerations (as well as references to those, enabling recursive types).
| <code>type ''name'' (''variation'' : ''discrete_type'') is record{{indent|2}}case ''variation'' is{{indent|4}}when ''choice_list{{sub|1}}'' =>{{indent|6}}''fieldname{{sub|1}}'' : ''type'';{{indent|6}}''...''{{indent|4}}when ''choice_list{{sub|2}}'' =>{{indent|6}}''fieldname{{sub|2}}'' : ''type'';{{indent|6}}''...''{{indent|4}}''...''{{indent|2}}end case;<br/>end record</code>
|-
Line 1,368 ⟶ 1,376:
| [[C (programming language)|C]] ([[C99]])
| rowspan=2| <code>struct ''«name»'' {''type name'';''...''};</code>
| rowspan=2 {{
| rowspan=3 {{
| rowspan=3| <code>union {''type name'';''...''};</code>
|-
Line 1,382 ⟶ 1,390:
| <code>(''val{{sub|1}}'', ''val{{sub|2}}'', ''...'' )</code>
|
| rowspan=3 {{
|-
| [[Java (programming language)|Java]]
| {{
|
|
Line 1,391 ⟶ 1,399:
| [[JavaScript]]
|
| {{
|
|-
Line 1,419 ⟶ 1,427:
|-
| [[Common Lisp]]
|
| rowspan=3| <code>(cons ''val{{sub|1}} val{{sub|2}}'')</code>{{ref|pair only|[c]}}
|
Line 1,425 ⟶ 1,433:
|-
| [[Scheme (programming language)|Scheme]]
| {{
|
|
Line 1,436 ⟶ 1,444:
| [[Pascal (programming language)|Pascal]]
| <code>record{{indent|2}}''name'': ''type'';{{indent|2}}''...<br/>''end</code>
| {{
| {{
| <code>record{{indent|2}}case ''type'' of{{indent|2}}''value'': (''types'');{{indent|2}}''...''<br/>end</code>
|-
Line 1,453 ⟶ 1,461:
|-
| [[Python (programming language)|Python]]
| {{
| <code>«(''»val{{sub|1}}'', ''val{{sub|2}}'', ''val{{sub|3}}'', ''...'' «)»</code>
|
| {{
|-
| [[
| <code>struct {''name [=value], ...''}</code>
|
Line 1,471 ⟶ 1,479:
|-
| [[PHP]]
| {{
|
|
Line 1,477 ⟶ 1,485:
|-
| [[Perl]]
| {{
|
|
| rowspan=3 {{
|-
| [[Raku (programming language)|Raku]]
| {{
|
|
Line 1,508 ⟶ 1,516:
| rowspan=2| <code>«(»''val{{sub|1}}'', ''val{{sub|2}}'', ''val{{sub|3}}'', ''...'' «)»</code>
| rowspan=2| <code>type ''name'' = ''Foo'' «of ''type''» {{pipe}} ''Bar'' «of ''type''» {{pipe}} ''...''</code>
| rowspan=4 {{
|-
| [[F Sharp (programming language)|F#]]
Line 1,522 ⟶ 1,530:
|-
| [[COBOL]]
| <code>''{{codett|2=cobolfree|level-number name type clauses}}''.{{indent|2}}''{{codett|2=cobolfree|level-number+n name type clauses}}''.{{indent|2}}''...''</code>
| {{
| {{
| <code>''name'' REDEFINES ''variable type''.</code>
|}
* {{note|just classes|a}} Only classes are supported.
* {{note|C++'s struct|b}} <code
* {{note|pair only|c}} pair only
* {{note|Perl's records|d}} Although Perl doesn't have records, because Perl's type system allows different data types to be in an array, "hashes" (associative arrays) that don't have a variable index would effectively be the same as records.
Line 1,619 ⟶ 1,627:
| rowspan=3| See notes to left.
Constants use the same syntax, and:
* use <code
* have a restriction to only certain primitive types<br/><code>Const ''name<sub>1</sub>'' «As ''type''» = ''value'', ''name<sub>2</sub>'' «As ''type»'' = ''value, ...''</code>
|
Line 1,626 ⟶ 1,634:
| The variable declaration syntax of VB.NET is unusually difficult to precisely describe.
Given that there exist the identifier suffixes ("modifiers"):
* <code
* <code
* <code
and that
* a <code
* a <code
* a <code
** <code>''identifier'' As ''object_creation_expression''</code>'' (object initializer declarator)'',
** <code>''modified_identifier'' «As ''non_array_type''«''array_rank_specifier''»»« = ''initial_value»''</code> ''(single declarator)'', or
Line 1,638 ⟶ 1,646:
valid declaration statements are of the form
{{In5}}<code>Dim ''declarator_list''</code>,
where, for the purpose of semantic analysis, to convert the <code
* The <code
* The <code>As New ''type...''</code> of each ''object initializer declarator'' is replaced with <code>As ''type'' = New ''type...''</code>
and for which, for each <code
* a <code
* if an <code
** an <code
* an <code
** if a <code
*** <code
** and that otherwise,
*** either <code
*** <code
* its <code
* its <code
* if an <code
** either <code
** <code
If <code
<
| <code>Imports ''synonym'' = ''type''</code>
|-
Line 1,672 ⟶ 1,680:
| <code>''name'' = ''initial_value''</code>| <code>''name'' = ''initial_value''</code>
|-
| [[
| <code>''name'' = ''initial_value'';</code>
|
Line 1,678 ⟶ 1,686:
|-
| [[Fortran]]
| <code>''type'' :: ''name''</code>
| <code>''type'', PARAMETER :: ''name'' = ''value''</code>
|
Line 1,752 ⟶ 1,760:
* {{note|variable types|b}}Types are just regular objects, so you can just assign them.
* {{note|Perl's my keyword|c}} In Perl, the "my" keyword scopes the variable into the block.
* {{note|ML ref|d}} Technically, this does not declare ''name'' to be a mutable variable—in ML, all names can only be bound once; rather, it declares ''name'' to point to a "reference" data structure, which is a simple mutable cell. The data structure can then be read and written to using the <code
* {{note|Ada declaration|e}} If no initial value is given, an invalid value is automatically assigned (which will trigger a run-time exception if it used before a valid value has been assigned). While this behaviour can be suppressed it is recommended in the interest of predictability. If no invalid value can be found for a type (for example in case of an unconstraint integer type), a valid, yet predictable value is chosen instead.
* {{note|Rust declaration|f}} In Rust, if no initial value is given to a <code
== [[Control flow]] ==
Line 1,803 ⟶ 1,811:
|- valign="top"
| [[C (programming language)|C]] ([[C99]])
| rowspan=7| <code>if (''condition'') ''instructions''<br/>«else ''instructions''»</code><br/><code
| rowspan=7| <code>if (''condition'') ''instructions''<br/>else if (''condition'') ''instructions''<br/>''...''<br/>«else ''instructions»''</code><br/>or<br/><code>if (''condition'') ''instructions''<br/>else { if (''condition'') ''instructions'' }</code>
| rowspan=7| <code>switch (''variable'') { {{indent|2}}case ''case1'': ''instructions'' «; break;»{{indent|2}}''...''{{indent|2}}«default: ''instructions''»<br/>}</code>
Line 1,822 ⟶ 1,830:
| [[C Sharp (programming language)|C#]]
| <code>if (''condition'') ''instructions''<br/>«else ''instructions''»</code>
<code
| <code>if (''condition'') ''instructions''<br/>else if (''condition'') ''instructions''<br/>''...''<br/>«else ''instructions''»</code>
| <code>switch (''variable'')<br/>{ {{indent|2}}case ''case{{sub|1}}'':{{indent|4}}''instructions''{{indent|4}}«''break_or_jump_statement''»{{indent|2}}''...''{{indent|2}}«default:{{indent|4}}''instructions''{{indent|4}}''break_or_jump_statement''»<br/>}</code>
All non-empty cases must end with a <code
The <code
| <code>''condition'' [[?:|?]] ''valueIfTrue'' [[?:|:]] ''valueIfFalse''</code>
|- valign="top"
Line 1,901 ⟶ 1,909:
|- valign="top"
| [[Visual Basic (classic)|Visual Basic]]
| rowspan=3| <code>If ''condition'' Then{{indent|2}}''instructions''<br/>«Else{{indent|2}}''instructions''»<br/>End If</code><br/>Single-line, when <code
| rowspan=3| <code>If ''condition'' Then{{indent|2}}''instructions''<br/>ElseIf ''condition'' Then{{indent|2}}''instructions''<br/>''...''<br/>«Else{{indent|2}}''instructions''»<br/>End If</code><br/>Single-line:<br/>See note about C-like languages; the <code
| rowspan=3| <code>Select« Case» ''variable''{{indent|2}}Case ''case_pattern{{sub|1}}''{{indent|4}}''instructions''{{indent|2}}''...''{{indent|2}}«Case Else{{indent|4}}''instructions''»<br/>End Select</code>
| <code>[[IIf]](''condition'', ''valueIfTrue'', ''valueIfFalse'')</code>
Line 1,917 ⟶ 1,925:
| Python 2.5+:<br/><code>''valueIfTrue'' if ''condition'' else ''valueIfFalse''</code>
|- valign="top"
| [[
| <code>if (''condition'') { ''instructions'' } «else { ''instructions'' }»</code>
| <code>if (''condition'') { ''instructions'' } else if (''condition'') { ''instructions'' } ''...'' «else { ''instructions'' }»</code>
Line 1,992 ⟶ 2,000:
* {{note|pascal semicolon|c}} In languages of the Pascal family, the semicolon is not part of the statement. It is a separator between statements, not a terminator.
* {{note|COBOL END-IF|d}} <code>END-IF</code> may be used instead of the period at the end.
* {{note|Rust match expression|e}} In Rust, the comma (<code
=== [[Control flow#Loops|Loop statements]] ===
Line 2,023 ⟶ 2,031:
|-
| [[C (programming language)|C]] ([[C99]])
| rowspan=9| <code
| rowspan=9| <code>do ''instructions'' while (''condition'');</code>
| rowspan=5| <code>for (''«type» i'' = ''first''; ''i'' <= ''last''; ''i''++) ''instructions''</code>
Line 2,066 ⟶ 2,074:
| <code>while ''condition'' { ''instructions'' }</code>
| 2.x:<br/><code>repeat { ''instructions'' } while ''condition''</code><br/>1.x:<br/><code>do { ''instructions'' } while ''condition''</code>
| <code>for ''i'' = ''first'' ... ''last'' { ''instructions'' }</code><br/>or<br/><code>for ''i'' = ''first'' ..< ''last
| <code>for ''item'' in ''set'' { ''instructions'' }</code>
|-
Line 2,108 ⟶ 2,116:
| <code>(loop{{indent|2}}while ''condition''{{indent|2}}do{{indent|2}}''instructions'')</code><br/>or<br/><code>(do () (''notcondition''){{indent|2}}''instructions'')</code>
| <code>(loop{{indent|2}}do{{indent|2}}''instructions''{{indent|2}}while ''condition'')</code>
| <code>(loop{{indent|2}}for i from ''first'' to ''last «by 1»''{{indent|2}}do{{indent|2}}''instructions'')</code><br/>or<br/><code>(dotimes (i N){{indent|2}}''instructions'')</code><br/>or<br/><code>(do ((i ''first'' {{codett|2=lisp|1=(1+ i))) ((>=i}} ''last''))<br/>{{indent|2}}''instructions'')</code>
| <code>(loop{{indent|2}}for ''item'' in ''list''{{indent|2}}do{{indent|2}}''instructions'')</code><br/>or<br/><code>(loop{{indent|2}}for ''item'' across ''vector''{{indent|2}}do{{indent|2}}''instructions'')</code><br/>or<br/><code>(dolist (''item list''){{indent|2}}''instructions'')</code><br/>or<br/><code>(mapc ''function list'')</code><br/>or<br/><code>(map ''type function sequence'')</code>
|-
| [[Scheme (programming language)|Scheme]]
| <code>(do () (''notcondition'') ''instructions'')</code><br/>or<br/><code>{{codett|2=scheme|(let loop () (if}} ''condition'' (begin ''instructions'' (loop))))</code>
| <code>{{codett|2=scheme|(let loop () (}}''instructions'' (if ''condition'' (loop))))</code>
| <code>(do ((i ''first'' {{codett|2=scheme|1=(+ i 1))) ((>= i}} ''last'')) ''instructions'')</code><br/>or<br/><code>{{codett|2=scheme|(let loop ((i}} ''first''{{codett|2=scheme|1)) (if (< i}} ''last'') (begin ''instructions'' {{codett|2=scheme|(loop (+ i 1)))))}}</code>
| <code>{{codett|2=scheme|(for-each (lambda (}}''item'') ''instructions'') ''list'')</code>
|-
| [[ISLISP]]
| <code>(while ''condition instructions'')</code>
| <code>{{codett|2=lisp|1=(tagbody loop}} ''instructions'' (if ''condition'' {{codett|2=lisp|1=(go loop))}}</code>
| <code>{{codett|2=lisp|1=(for ((i}} ''first'' {{codett|2=lisp|1=(+ i 1))) ((>= i}} ''last'')) ''instructions'')</code>
| <code>{{codett|2=lisp|1=(mapc (lambda (}}''item'') ''instructions'') ''list'')</code>
|-
| [[Pascal (programming language)|Pascal]]
Line 2,130 ⟶ 2,138:
|-
| [[Visual Basic (classic)|Visual Basic]]
| rowspan=2| <code>Do While ''condition''{{indent|2}}''instructions''<br/>Loop</code><br/>or<br/><code>Do Until ''notcondition''{{indent|2}}''instructions''<br/>Loop</code><br/>or<br/><code>While ''condition''{{indent|2}}''instructions''<br/>Wend</code> (Visual Basic .NET uses <code
| rowspan=2| <code>Do{{indent|2}}''instructions''<br/>Loop While ''condition''</code><br/>or<br/><code>Do{{indent|2}}''instructions''<br/>Loop Until ''notcondition''</code>
| <code
<code>For ''i'' = ''first'' To ''last'' «Step ''1»{{indent|2}}instructions''<br/>Next i</code>
| <code>For Each ''item'' In ''set''{{indent|2}}''instructions''<br/>Next ''item''</code>
Line 2,150 ⟶ 2,158:
| <code>for ''item'' in ''set'':<br/>{{keypress|Tab}}''instructions''<br/>«else:<br/>{{keypress|Tab}}''instructions»''</code>
|-
| [[
| <code>while (''condition'') { ''instructions'' } «then ''optional-block»''</code>
| <code>do { ''instructions'' } while (''condition'') «then ''optional-block»''</code>
Line 2,200 ⟶ 2,208:
|-
| [[COBOL]]
| <code>PERFORM ''procedure-1'' «THROUGH ''procedure-2''» ««WITH» TEST BEFORE» UNTIL ''condition''</code>{{ref|COBOL THRU|[c]}}<br/>or<br/><code>{{codett|2=cobolfree|PERFORM ««WITH» TEST BEFORE» UNTIL}} ''condition''{{indent|2}}''expression''<br/>END-PERFORM</code>
| <code>PERFORM ''procedure-1'' «THROUGH ''procedure-2''» «WITH» TEST AFTER UNTIL ''condition''</code>{{ref|COBOL THRU|[c]}}<br/>or<br/><code>{{codett|2=cobolfree|PERFORM «WITH» TEST AFTER UNTIL}} ''condition''{{indent|2}}''expression''<br/>END-PERFORM</code>
| <code>PERFORM ''procedure-1'' «THROUGH ''procedure-2»'' VARYING ''i'' FROM ''first'' BY ''increment'' UNTIL ''i'' > ''last''</code>{{ref|COBOL GREATER THAN|[d]}}<br/>or<br/><code>PERFORM VARYING ''i'' FROM ''first'' BY ''increment'' UNTIL ''i'' > ''last''{{indent|2}}''expression''<br/>END-PERFORM</code>{{ref|COBOL GREATER THAN|[d]}}
| {{n/a}}
Line 2,213 ⟶ 2,221:
* {{note|step|a}} "<code>step</code> n" is used to change the loop interval. If "<code>step</code>" is omitted, then the loop interval is 1.
* {{note|Ada_quantifiers|b}} This implements the [[universal quantifier]] ("for all" or
* {{note|COBOL THRU|c}} <code>THRU</code> may be used instead of <code>THROUGH</code>.
* {{note|COBOL GREATER THAN|d}}
* {{note|Rust FOREACH|e}} Type of set expression must implement trait <code>std::iter::IntoIterator</code>.
Line 2,230 ⟶ 2,238:
| <code>raise ''exception_name'' «with ''string_expression»''</code>
| <code>begin{{indent|2}}''statements''<br/>exception{{indent|2}}when ''exception_list<sub>1</sub>'' <nowiki>=></nowiki> ''statements;''{{indent|2}}when ''exception_list<sub>2</sub>'' <nowiki>=></nowiki> ''statements;''<br/>''...''{{indent|2}}«when others <nowiki>=></nowiki> ''statements;''»<br/>end</code>{{ref|Ada_uncaught_exceptions|[b]}}
| <code>{{codett|2=ada|1=pragma Assert}} («Check <nowiki>=></nowiki>» ''boolean_expression'' ««Message =>» ''string_expression''»)<br/>''[function {{pipe}} procedure {{pipe}} entry]'' with{{indent|2}}Pre <nowiki>=></nowiki> ''boolean_expression''{{indent|2}}Post <nowiki>=></nowiki> ''boolean_expression''<br/>''any_type'' with Type_Invariant <nowiki>=></nowiki> ''boolean_expression''</code>
|-
| [[APL (programming language)|APL]]
| <code>''«string_expression»'' ⎕SIGNAL ''number_expression''</code>
| <code>:Trap ''number«s»_expression''{{indent|2}}''statements''<br/>«:Case ''number«s»_expression''{{indent|2}}''statements''»<br/>''...''<br/>«:Else ''number«s»_expression''{{indent|2}}''statements''»<br/>:EndTrap</code>
| <code>''«string_expression»'' {{codett|⎕SIGNAL 98/⍨~|apl}}''condition''</code>
|-
| [[C (programming language)|C]] ([[C99]])
Line 2,266 ⟶ 2,274:
| <code>assert(''condition'');</code>
|-
| [[
| <code>try { ''instructions'' } catch ''«exception»'' { ''instructions'' } ''...'' «finally { ''instructions'' }»</code>
| {{dunno}}
Line 2,272 ⟶ 2,280:
| [[Windows PowerShell]]
| <code>trap «[''exception'']» { ''instructions'' } ''... instructions''</code><br/>or<br/><code>try { ''instructions'' } catch «[''exception'']» { ''instructions'' } ''...'' «finally { ''instructions'' }»</code>
| <code>{{codett|[Debug]::Assert(|ps1}}''condition'')</code>
|-
| [[Objective-C]]
Line 2,286 ⟶ 2,294:
| [[Perl]]
| rowspan=2| <code>die ''exception'';</code>
| <code>eval { ''instructions'' {{codett|}; if ($@) {|perl}} ''instructions'' }</code>
| {{dunno}}
|-
Line 2,325 ⟶ 2,333:
| [[Visual Basic (classic)|Visual Basic]]
| <code>Err.Raise ''ERRORNUMBER''</code>
| <code>{{codett|2=vbnet|With New}} ''Try''{{codett|2=vbnet|: On Error Resume Next}}{{indent|2}}''OneInstruction<br/>.Catch''{{codett|2=vbnet|: On Error GoTo 0: Select Case}} ''.Number''{{indent|2}}Case ''SOME_ERRORNUMBER''{{indent|4}}''instructions''<br/>{{codett|2=vbnet|End Select: End With}}</code><syntaxhighlight lang="vbnet">
'*** Try class ***
Private mstrDescription As String
Line 2,347 ⟶ 2,355:
| <code>Throw ''exception''</code><br/>or<br/><code>Error ''errorcode''</code>
| <code>Try{{indent|2}}''instructions''<br/>Catch« ''name'' As ''exception''»« When ''condition''»{{indent|2}}''instructions''<br/>''...''<br/>«Finally{{indent|2}}''instructions''»<br/>End Try</code>
| <code>System.Diagnostics.<wbr/
|-
| [[Xojo]]
Line 2,386 ⟶ 2,394:
|-
| [[COBOL]]
| <code>{{codett|2=cobolfree|RAISE «EXCEPTION»}} ''exception''</code>
| <code>{{codett|2=cobolfree|USE «AFTER» EXCEPTION OBJECT}} ''class-name''.</code><br/>or<br/><code>{{codett|2=cobolfree|USE «AFTER» EO}} ''class-name''.</code><br/>or<br/><code>{{codett|2=cobolfree|USE «AFTER» EXCEPTION CONDITION}} ''exception-name'' «FILE ''file-name»''.</code><br/>or<br/><code>{{codett|2=cobolfree|USE «AFTER» EC}} ''exception-name'' «FILE ''file-name»''.</code>
| {{n/a}}
|-
Line 2,395 ⟶ 2,403:
|}
* {{note|common lisp restarts|a}} Common Lisp allows <code
* {{note|Ada uncaught exceptions|b}} Uncaught exceptions are propagated to the innermost dynamically enclosing execution. Exceptions are not propagated across tasks (unless these tasks are currently synchronised in a rendezvous).
Line 2,418 ⟶ 2,426:
| <code>''value'' exit;</code> ...
| <code>do ''statements;'' skip exit; ''label: statements'' od</code>
| <code
| <code>go to ''label; ...''<br/>goto ''label; ...<br/>label; ...''</code>
| <code>yield(value)</code>
Line 2,520 ⟶ 2,528:
|-
| [[Visual Basic (classic)|Visual Basic]]
| rowspan=3| <code>Exit ''block''</code>Alternatively, for methods,<br/><code
| {{n/a}}
| rowspan=3| <code>''label'':</code>
Line 2,544 ⟶ 2,552:
|
|-
| [[
| <code>break;</code>
| <code>continue;</code>
Line 2,554 ⟶ 2,562:
| <code>EXIT</code>
| <code>CYCLE</code>
| <code
| <code>GOTO ''label''</code>
| {{n/a}}
Line 2,596 ⟶ 2,604:
== [[Subroutine|Function]]s ==
See ''[[
{{sort-under}}
{| class="wikitable sortable sort-under"
|- valign="top"
!
Line 2,627 ⟶ 2,636:
| rowspan="5" | <code>[[void type|void]] ''foo''(''«parameters»'') { ''instructions'' }</code>
| rowspan="5" | <code>''type'' ''foo''(''«parameters»'') { ''instructions ...'' return ''value''; }</code>
| rowspan=3| <code>''«global declarations»''<br/>{{codett|2=c|int main(«int argc, char *argv[]»)}} { {{indent|2}}''instructions''<br/>}</code>
|- valign="top"
| [[Objective-C]]
Line 2,634 ⟶ 2,643:
|- valign="top"
| [[Java (programming language)|Java]]
| <code>{{codett|2=java|public static void main(String[] args)}} { ''instructions'' }</code><br/>or<br/><code>{{codett|2=java|public static void main(String}}[[variadic function|...]] args) { ''instructions'' }</code>
|- valign="top"
| [[D (programming language)|D]]
| <code>{{codett|2=d|int main(«char[][] args»)}} { ''instructions''}</code><br/>or<br/><code>{{codett|2=d|int main(«string[] args»)}} { ''instructions''}</code><br/>or<br/><code>{{codett|2=d|void main(«char[][] args»)}} { ''instructions''}</code><br/>or<br/><code>{{codett|2=d|void main(«string[] args»)}} { ''instructions''}</code>
|- valign="top"
| [[C Sharp (programming language)|C#]]
Line 2,644 ⟶ 2,653:
| Same as above; alternatively, if simple enough to be an expression:
<code>[[void type|void]] foo(''«parameters»'') => ''expression'';</code>
|
|- valign="top"
| [[JavaScript]]
| <code>function foo(''«parameters»'') { ''instructions'' }</code><br/>or<br/><code>{{codett|2=javascript|1=var foo = function (}}''«parameters»'') { ''instructions'' }</code><br/>or<br/><code>{{codett|2=javascript|1=var foo = new Function (}}''"«parameter»"'', ''...'', ''"«last parameter»"'' "''instructions''");</code>
| <code>function foo(''«parameters»'') { ''instructions ...'' return ''value''; }</code>
| {{n/a}}
Line 2,663 ⟶ 2,672:
| [[Common Lisp]]
| rowspan=3| <code>(foo ''«parameters»'')</code>
| <code>([[defun]] foo (''«parameters»''){{indent|2}}''instructions'')</code><br/>or<br/><code>{{codett|2=lisp|1=(setf (symbol-function
| <code>([[defun]] foo (''«parameters»''){{indent|2}}''...{{indent|2}}value'')</code>
| rowspan=3 {{n/a}}
Line 2,689 ⟶ 2,698:
| [[Visual Basic .NET]]
| rowspan=2| Same as above; alternatively:
<code>Function Foo«(''parameters'')»« As ''type»''{{indent|2}}''instructions''{{indent|2}}Return ''value''<br/>End Function</code><br/>The <code
| rowspan=2| <code>{{codett|2=vbnet|Sub Main(««ByVal »args() As String»)}}{{indent|2}}''instructions''<br/>End Sub</code>or<br/><code>{{codett|2=vbnet|Function Main(««ByVal »args() As String») As Integer}}{{indent|2}}''instructions''<br/>End Function</code>
|- valign="top"
| [[Xojo]]
Line 2,700 ⟶ 2,709:
| {{n/a}}
|- valign="top"
| [[
| <code>foo(''«parameters» «;qualifiers»'')</code>
| <code>define foo (''«parameters»'') { ''instructions'' }</code>
Line 2,714 ⟶ 2,723:
| [[Forth (programming language)|Forth]]
| <code>''«parameters» ''FOO</code>
| <code>{{codett|2=forth|: FOO « stack effect comment:}} ('' before'' -- ) »{{indent|2}}''instructions''<br/>;</code>
| <code>{{codett|2=forth|: FOO « stack effect comment:}} ('' before'' -- ''after'' ) »{{indent|2}}''instructions''<br/>;</code>
| {{n/a}}
|- valign="top"
Line 2,726 ⟶ 2,735:
| [[Perl]]
| <code>foo(''«parameters»'')</code><br/>or<br/><code>&foo«(''parameters'')»</code>
| <code>{{codett|2=perl|sub foo { «my (}}''parameters'') = @_;» ''instructions ''}</code>
| <code>{{codett|2=perl|sub foo { «my (}}''parameters'') = @_;» ''instructions''... «return» ''value''; }</code>
|- valign="top"
| [[Raku (programming language)|Raku]]
| <code>foo(''«parameters»'')</code><br/>or<br/><code>&foo«(''parameters'')»</code>
| <code>{{codett|2=raku|«multi »sub foo(}}''parameters'') { ''instructions'' }</code>
| <code>«our «''
|- valign="top"
| [[Ruby (programming language)|Ruby]]
Line 2,749 ⟶ 2,758:
| <code>def ''foo''«(''parameters'')»«: Unit =» { ''instructions'' }</code>
| <code>def ''foo''«(''parameters'')»«: ''type»'' = { ''instructions ...'' «return» ''value'' }</code>
| <code>{{codett|2=scala|1=def main(args: Array[String])}} { ''instructions'' }</code>
|- valign="top"
| [[Windows PowerShell]]
Line 2,776 ⟶ 2,785:
|- valign="top"
| [[F Sharp (programming language)|F#]]
| <code>{{codett|2=f#|[<EntryPoint>] let main args}} ='' instructions''</code>
|- valign="top"
| [[Standard ML]]
Line 2,796 ⟶ 2,805:
| rowspan=2| [[CoffeeScript]]
| <code>foo()</code>
|
| <code>{{codett|2=coffeescript|1=foo =
| rowspan=2 {{n/a}}
|- valign="top"
| <code>foo ''parameters''</code>
|
| <code>foo = ( ''parameters'' ) <nowiki>-></nowiki> ''value''</code>
|- valign="top"
Line 2,814 ⟶ 2,823:
|}
* {{note|forward declaration|a}} Pascal requires "<code
* {{note|root class and feature|b}} Eiffel allows the specification of an application's root class and feature.
* {{note|Fortran arguments|c}} In Fortran, function/subroutine parameters are called arguments (since <code
* {{note|COBOL calling programs|d}} Instead of using <code
== [[Type conversion]]s{{anchor|Data conversions}} ==
Where ''string'' is a signed decimal number:
{| class="wikitable sortable sort-under"
|-
!
Line 2,840 ⟶ 2,849:
| colspan=5 align=center| With prior declarations and association of: <code>string ''buf := "12345678.9012e34 ";'' file ''proxy; associate(proxy, buf);''</code>
|-
| <code
| <code
| <code
| <code
| <code
|-
| <code
| <code
| <code
| <code
| <code
|-
| [[APL (programming language)|APL]]
Line 2,870 ⟶ 2,879:
| <code>''long'' = [''string'' longLongValue];</code>
| <code>''float'' = [''string'' doubleValue];</code>
| <code>''string'' = {{codett|2=objc|[NSString stringWithFormat
| <code>''string'' = {{codett|2=objc|[NSString stringWithFormat
|-
| [[C++]] (STL)
Line 2,967 ⟶ 2,976:
| colspan=2| <code>''string'' = str(''number'')</code>
|-
| [[
| <code>''integer'' = [[atoi]](''string'');</code>
| <code>''long'' = [[atol (programming)|atol]](''string'');</code>
Line 3,037 ⟶ 3,046:
|-
| [[COBOL]]
| colspan=3 | <code>{{codett|2=cobolfree|MOVE «FUNCTION» NUMVAL(}}''string''){{ref|COBOL's NUMVAL alternatives|[c]}} TO ''number''</code>
| colspan=2 | <code>MOVE ''number'' TO ''numeric-edited''</code>
|-
Line 3,044 ⟶ 3,053:
* {{note|JavaScript's technicalities|a}} JavaScript only uses floating point numbers so there are some technicalities.<ref name="Javascript numbers" />
* {{note|Perl's technicalities|b}} Perl doesn't have separate types. Strings and numbers are interchangeable.
* {{note|COBOL's NUMVAL alternatives|c}} <code
* {{note|Rust type conversion}} [https://doc.rust-lang.org/stable/std/primitive.str.html#method.parse <code
== [[Standard streams|Standard stream I/O]] ==
Line 3,099 ⟶ 3,108:
|-
| [[Java (programming language)|Java]]
| <
| <code>System.out.print(''x'');</code><br/>or<br/><code>System.out.[[printf]](''format'', ''x'');</code><br/>or<br/><code>System.out.println(''x'');</code>
| <code>System.err.print(''x'');</code><br/>or<br/><code>System.err.[[printf]](''format'', ''x'');</code><br/>or<br/><code>System.err.println(''x'');</code>
|-
| [[Go (programming language)|Go]]
| <code>fmt.Scan(&''x'')</code><br/>or<br/><code>fmt.[[Scanf]](''format'', &''x'')</code><br/>or<br/><
| <code>fmt.Println(''x'')</code><br/>or<br/><code>fmt.[[Printf]](''format'', ''x'')</code>
| <code>fmt.Fprintln(os{{Not a typo|.}}Stderr, x)</code><br/>or<br/><code>fmt.[[Fprintf]](os{{Not a typo|.}}Stderr, ''format'', ''x'')</code>
Line 3,129 ⟶ 3,138:
|-
| [[Common Lisp]]
| <
| <code>(princ ''x'')</code><br/>or<br/><code>(format t ''format x'')</code>
| <
|-
| [[Scheme (programming language)|Scheme]] ([[R6RS|R<sup>6</sup>RS]])
| <
| <code>(display ''x'')</code><br/>or<br/><code>{{codett|(format #t|scheme}} ''format x'')</code>
| <
|-
| [[ISLISP]]
| <code
| <code>{{codett|(format (standard-output)|lisp}} ''format x'')</code>
| <code>{{codett|(format (error-output)|lisp}} ''format x'')</code>
Line 3,173 ⟶ 3,182:
| <code>print(''x«'', end=""», file=sys.stderr)</code>
|-
| [[
| <code>[[fgets]] (&''x'', stdin)</code>
| <code>[[fputs]] (''x'', stdout)</code>
Line 3,199 ⟶ 3,208:
|-
| [[Raku (programming language)|Raku]]
| <
| <code>''x''.print</code><br/>or<br/><code>''x''.say</code>
| <code>''x''.note</code><br/>or<br/><
|-
| [[Ruby (programming language)|Ruby]]
| <code>''x'' = gets</code>
| <code>puts ''x''</code><br/>or<br/><code>[[printf]](''format'', ''x'')</code>
| <code
|-
| [[Windows PowerShell]]
| <code>''$x'' = Read-Host«« -Prompt» ''text''»;</code><br/>or<br/><
| <code>''x'';</code><br/>or<br/><code>Write-Output ''x'';</code><br/>or<br/><code>echo ''x''</code>
| <code>Write-Error ''x''</code>
Line 3,219 ⟶ 3,228:
|-
| [[F Sharp (programming language)|F#]]
| <
| <code>[[printf]] ''format x ...''</code><br/>or<br/><code>[[printf]]n ''format x ...''</code>
| <code>[[fprintf|eprintf]] ''format x ...''</code><br/>or<br/><code>[[fprintf|eprintf]]n ''format x ...''</code>
|-
| [[Standard ML]]
| <
| <code>print ''str''</code>
| <code>{{codett|TextIO.output (TextIO.stdErr,|sml}}'' str'')</code>
Line 3,292 ⟶ 3,301:
| [[Rust (programming language)|Rust]]{{ref|Rust args|[a]}}
| <code>std::env::args().nth(''n'')</code><br/><code>std::env::args_os().nth(''n'')</code>
|
|
|-
| [[Swift (programming language)|Swift]]
Line 3,306 ⟶ 3,315:
|-
| [[Scheme (programming language)|Scheme]] ([[R6RS|R<sup>6</sup>RS]])
|
|
| first argument
|-
Line 3,328 ⟶ 3,337:
| <code>CmdArgs(''n'')</code>
| <code>CmdArgs.Length</code>
|
|-
| [[Xojo]]
Line 3,340 ⟶ 3,349:
| first argument
|-
| [[
| <code>__argv[''n'']</code>
| <code>__argc</code>
Line 3,362 ⟶ 3,371:
| [[Perl]]
| <code>$ARGV[''n'']</code>
|
| <code>$0</code>
|-
| [[Raku (programming language)|Raku]]
| <code>@*ARGS[''n'']</code>
|
| <code>$PROGRAM_NAME</code>
|-
Line 3,405 ⟶ 3,414:
|}
* {{note|Rust args|a}} In Rust, <code
* {{note|unseparated|b}} In Visual Basic, command-line arguments are not separated. Separating them requires a split function <code>Split(''string'')</code>.
* {{note|COBOL Arguments|c}} The COBOL standard includes no means to access command-line arguments, but common compiler extensions to access them include defining parameters for the main program or using <code
== Execution of commands ==
Line 3,428 ⟶ 3,437:
|-
| [[Objective-C]]
| <
|
|-
Line 3,467 ⟶ 3,476:
| [[Java (programming language)|Java]]
|
| <code>Runtime.exec(''command'');</code><br/>or<br/><code
|
|-
Line 3,496 ⟶ 3,505:
|-
| [[OCaml]]
| <code>Sys.command ''command
| <code>Unix.create_process ''prog args new_stdin new_stdout new_stderr, ...''</code>
| <code>Unix.execv ''prog args''</code><br/>or<br/><code>Unix.execve ''prog args env''</code>
Line 3,530 ⟶ 3,539:
| <code>os.execv(''path'', ''args'')</code>
|-
| [[
| <code>system(''command'')</code>
|
Line 3,541 ⟶ 3,550:
|-
| [[Windows PowerShell]]
| <
| <code>«Invoke-Item »''program arg1 arg2 ...''</code>
|
Line 3,547 ⟶ 3,556:
| [[Bash shell]]
| <code>''output''=`''command''`</code><br/>or<br/><code>''output''=$(''command'')</code>
| <code
|
|}
{{note|Fortran 2008|a}} Fortran 2008 or newer.<ref>{{cite web|url=https://gcc.gnu.org/onlinedocs/gfortran/EXECUTE_005fCOMMAND_005fLINE.html|title=EXECUTE_COMMAND_LINE – The GNU Fortran Compiler|work=gnu.org|access-date=30 January 2017}}</ref>
==See also==
* [[List of open-source programming languages]]
== References ==
|