рдЖрдЧреЗ рдХрд╛ рдкрд╛рда рдореЗрд░рд╛ рдирдЬрд╝рд░рд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдкрд░ рдПрдХ рдирдпрд╛ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ "рднрд╛рд╖рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдереЛрдбрд╝реА рджреЗрд░ рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП", рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред PS рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдЕрдкрдиреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереА, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╡ рдХрд╛ рдкреНрд░рднрд╛рд╡
рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рд▓реЗрдЦрдХ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛, рдФрд░ рдпрд╣ рднрд╛рд╖рд╛ рдЗрд╕рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд┐: рд╢реБрд▓реНрдХ рдкрд╛рд╕реНрдХрд▓ рдХреЗ рд╕рдорд╛рди рд╕рдВрджрд┐рдЧреНрдз рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдИ, рдЬрд┐рд╕ рдкрд░ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╡реАрдПрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдпрд╣ рдХреЛрдИ рд╕рдВрдпреЛрдЧ рдирд╣реАрдВ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдЬреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦреА рдереА, рд╡рд╣ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реА рдереАред рд╣рдо рд╕реНрд╡рдпрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдПрдХ рдмрд╛рд╣рд░реА рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЛрдЪ рдХрд╛ рдврд╛рдВрдЪрд╛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рднрд╛рд╖рд╛ рдП рдореЗрдВ, рдЖрдк рдмреА рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреА рддрд╛рдХрдд рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдЧрд░реВрдХрддрд╛ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВрдиреЗ рдЕрдкрдиреА рднрд╛рд╖рд╛ рдмрдирд╛рдиреЗ рдФрд░ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдКрдкрд░ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдереЗред рдореИрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╢рд░реНрддреЛрдВ рдХреЗ рднреАрддрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдиреАрдЪреЗ рдореИрдВ рдЙрд╕ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рдореИрдВ "рдЖрджрд░реНрд╢" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рдЕрдиреБрднрд╡: рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдкрд╛рд╕реНрдХрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА рдереА, рдмрд╛рдж рдореЗрдВ рдореИрдВ рдЬрд╛рд╡рд╛, рдХреЛрдЯрд▓рд┐рди, рд╕реА ++, рдкрд╛рдпрдерди, рд╕реНрдХреАрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдЖ, рдФрд░ рдореИрдВ рд╕реНрдХрд╛рд▓рд╛ рдХреЛ рдореБрдЦреНрдп рднрд╛рд╖рд╛ рдорд╛рдирддрд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реА "рдкрд░рд┐рдкреВрд░реНрдг" рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╛рдирддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ)
рдХреЛрдб рд╢реИрд▓реА рдкрд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рднрд╛рд╡
"рдЖрдк рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдлреЛрд░рдЯреНрд░рд╛рди рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ"
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рднрд╛рд╖рд╛ рдХрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рдФрд░ рдЫреЛрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рджреВрд╕рд░реЛрдВ рдкрд░ рд╣рд╛рд╡реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХреЛрдб рдЙрджрд╛рд╣рд░рдг (рдореИрдВрдиреЗ рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИ)
рдЕрдЬрдЧрд░:
filtered_lst = [elem for elem in lst if elem.y > 2]
filtered_lst = list(filter(lambda elem: elem.y > 2, lst))
, . , .
Scala:
val filteredLst = lst.filter(_.y > 2)
, . . , it => it.y > 2
, .
, lst.map(_.x).filter(_>0).distinct()
, , . , .
[elem for elem in
, . , - .
... = set(filter(lambda it: it > 2, map(lambda it: it.x, lst))))
!
lst.filter(...).map(...) , , . , numpy max тАФ . , , - .
, java:
int x = func();
final int x = func();
, , , . Rust , .
let x = 1;
let mut x = 1;
, , . . ++, , template, typename, inline, virtual, override, const, constexpr
"" .
, , , , .
. , , , . , . , - , , .
, , . , hashmap -.
, . - , . (, - , , )
тАФ must have . , , . тАФ , .
Unit, void
/delphi ( ) (- ). , . . ? , . , Java, ++ . : " void!" , void , , . , Java HashSet<T>
HashMap<T, Boolean>. boolean тАФ , . , HashMap , , . /++ sizeof(void).
, Unit, 0 ( , , Unit, ). , , . HashSet<T>
HashMap<T, Unit>
.
- , , , . , . ?! , :
, "" тАФ , , .
std::tuple
++, , , , , (T1, T2)
. (, Unit ). T => U
, T U тАФ - . , - Unit, , . , , . , .
Union, / , - . scala/kotlin/rust тАФ .
val a = 10 * 24 * 60 * 60
val b = {
val secondsInDay = 24 * 60 * 60
val daysCount = 10
daysCount * secondsInDay
}
Enums, Union Tagged Union
, , , ,
go.
-, -. , . , 0 , true (1) false (0) . . , , - success | fail
ok|failReason1 | failReason2
.
, -, . , ok | error(code)
Pointer[MyAwesomeClass] |null
.
-. . Union Tagged Union , , int | int
. Union int | int == int
, . - union . int | int
tagged union , int тАФ .
, - (Union), .
List(x) = Unit | (x, List(x))
.
- ( ), , :
f(x) = 1 + x * f(x)
, f(x) = 1 + x + x*x + x*x*x + ...
, - () -
List(x) = Unit | (x, Unit) | (x, (x, Unit)) | ... = Unit | x | (x, x) | (x, x, x) | ...
C x = , x, , ...
, (x, Unit) == x
, x * 1 = x
, (x, (x, (x, Unit)))
(x, x, x)
.
, , , , , ( ), . , . , тАФ , ++ -, .
, - , , - (). (A, B | C) == (A, B) | (A, C)
, , . .
- , "" , - (, )
- , .
- , .
2 3 , : , ++ . - , , .
тАФ , -, . - . тАФ final java.
, 1-2 /. , , . , "" тАФ , , , , .
( , jvm , const)
, тАФ . , D. - static value = func(42);
.
- gradle, , , build "wtf? ?"
android {
compileSdkVersion 28
}
Groovy. android { compileSdkVersion 28}
, - - , . groovy тАФ , .
, , -
class UnderlyingAndroid(){
compileSdkVersion: Int = 42
}
fun android(func: UndelyingAndroid.() -> Unit) ....
, -, / UnderlyingAndroid, .
, :
android { it =>
it.compileSdkVersion = 28
}
! ? + DSL. , gradle , . , .
extension . , . , . - . тАФ . , T, , sum, , T .
Call-by-name
, , . , map.getOrElse(key, new Smth())
, . , assert(cond, makeLogMessage())
.
, тАФ , assert if (cond) { log(makeLogMessage())}
, .
, must have , .
----
. "" , "" , , . , .
, . , , . , , . , int long.
?
. ,
. ( , ++). , ( ) .
, ,
. ++ , T
- . , , rvalue-, const. , , , . - Scala Kotlin, "" , .
# тАФ , - . ( , # Unity) , , . 3 ! , , , - . , тАФ .
kotlin/scala тАФ , . , . , .
тАФ inline C++/Kotlin. ! inline , inline , (++) return (kotlin). forced_inline__, noinline, crossinline, - . , , inline , .
, . . , ++ , , . lisp scheme, , .
. - - , тАФ , - . : , "" .
Substructural type system
, . , , , .
? Move- , . , . , , - /, . , () .
- , - , .
, , , . , , , , 5, 3, , .
-, . -, (, ), . , ( ++ ).
, , , . - , .
, , :
/ , , .
, . , .
, тАФ .