Julia: рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЖрдпрд╛рдд рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рд╕рд┐рддре░ 2012  ┬╖  96рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: JuliaLang/julia

рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рд╣рдо рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import ArgParse
... 
    ArgParse.add_argument(p, "--opt1") 
...

рдпрд╣ рдиреЗрдорд╕реНрдкреЗрд╕ рдкреНрд░рджреВрд╖рдг рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рдХреА рд╡рд╛рдЪрд╛рд▓рддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЙрдбреНрдпреВрд▓ рдЙрдкрдирд╛рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:

import ArgParse as ap 
... 
    ap.add_argument(p, "--opt1") 
...
design modules speculative

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдореБрджреНрджрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИ, рднрд▓реЗ рд╣реА рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░реЛрдВ рдкрд░ рдЕрднреА рднреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП,

import LongPackage as longpkg

рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рд╕рднреА 96 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдХреБрдЫ рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

import ArgParse
ap = ArgParse

ap.add_argument(...)

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рдХреЗ рд░реВрдк рдореЗрдВ "рдЖрдпрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ" рдиреЛрдЯреЗрд╢рди рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЬрдм рдореИрдВ рдпрд╣рд╛рдВ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рд╣реА рдЖрдпрд╛рдд рд▓рд╛рдЗрди рдореЗрдВ рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛ, рдЬреИрд╕рд╛ рдХрд┐ @JeffreySarnoff рдХреЗ рдлрд╝реЛрд░рдо рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрджреНрджреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЦреЛрдЬ рдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣

# from the forum post
import Module.(export1,export2,export3)
# or
import Module.[export1,export2,export3]
# or maybe
import Module.{export1,export2,export3}

рдпрд╣ рдЗрд╕ рд╕реЗ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

  1. рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдпрд╛
  2. рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдПрдВ

(рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдирд╣реАрдВ рд╣реИ ...)

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдпрд╣ рдЕрдм import Module: export1, export2, export3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рднреА рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЙрджрд╛

import ArgParse.add_argument as addarg

рдЖрдпрд╛рдд рдкрд░ рдореЙрдбреНрдпреВрд▓ рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдирд╛рдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдкреНрд░реЗрд╖рдг рдореЗрдВ рдХреИрд╕реЗ рднрд╛рдЧ рд▓реЗрдВрдЧреЗ?

рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ const foo = Base.bar рдХреЗ рдмрд░рд╛рдмрд░ рдЙрдкрдирд╛рдо рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕реЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЙрдкрдирд╛рдо рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ const foo = . рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
рдмреЗрд╕ рдмрд╛рд░ред

рдЬрдм рд╣рдо рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╛ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВред рджрд┐рдпрд╛ рдЧрдпрд╛
рдКрдкрд░, рд╕рд╛рде

рдмреЗрд╕.рдмрд╛рд░ рдХреЛ рдлреВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ

рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ foo рдХреЛ Base.bar рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди foo рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдЧрд╛
рдмреЗрд╕ рдмрд╛рд░? рдЗрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдПрдХ рдкреБрд░рд╛рдирд╛ рдореБрджреНрджрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо 0.2 . рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рд░рд╣реЗ рд╣реИрдВ

рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕реЗ import NumericExtensions as ne рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рдЦреБрдж рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЬреНрдпрд╛рджрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ

import NumericExtensions
const ne = NumericExtensions

+1

+1

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ? рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд foo = Foo рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЪреАрдиреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрдо рд╕рд╣рдорддрд┐ рдереАред рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕реНрд╡рдпрдВ рдкреАрдЖрд░ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ x as y #1470 рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд convert(y,x) рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдордЬрдмреВрдд рджрд╛рд╡реЗрджрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдзреНрдпрд╛рди рджреЗрдирд╛ред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдорд╣рддреНрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдореВрд▓ рдирд╛рдо рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред

+1
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

+1

рдПрдХ рдирдпрд╛ рдХреАрд╡рд░реНрдб as рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, => рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

import Tlahuixcalpantecuhtli => Venus: xxxxxxxxx => x9, yyyyyyyy => y8, zzz

рдпрд╣ рдСрд░реНрдереЛрдЧреЛрдирд▓реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдФрд░ рдПрдХ рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдЪрд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдмрд╕реЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдмрджрд╕реВрд░рдд рд▓рдЧрддрд╛ рд╣реИред

import Tlahuixcalpantecuhtli as Venus: xxxxxxxxx as x9, yyyyyyyy as y8, zzz

рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рдмрд╣реБрдд рдХрдо рдкрдардиреАрдп рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ as рдХреЛ => рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрддреНрдо-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдорд╛рдирддрд╛ рд╣реВрдВ, рдЬреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдХрд┐рд╕реА рднреА рдЪреАрдЬ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреВрд░реНрдг рдкреНрд░рдХрдЯреАрдХрд░рдг: рдкрд╛рдпрдерди рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ред

рдореБрдЭреЗ => рд╕рд┐рдВрдЯреИрдХреНрд╕ as рд╕реЗ рдмреЗрд╣рддрд░ рдкрд╕рдВрдж рд╣реИред

рдореБрдЭреЗ рдРрд╕реЗ рдмрд╛рдЗрдХрд╢реЗрдб рдкрд╕рдВрдж рд╣реИрдВ рдЬреЛ рдиреИрд╢ рдЗрдХреНрд╡рд┐рд▓рд┐рдмреНрд░рд┐рдпрд╛ рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддреЗ рд╣реИрдВред

рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрдпреЛрдВ рдмрд╛рдВрдзреЗрдВрдЧреЗ? рдпрд╣ рдмрджрд╕реВрд░рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛ рдЖрдпрд╛рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╕рдВрдж рд╣реИ ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╛рдпрдерди рдХреЗ рдирд╛рдорд╕реНрдерд╛рди рдЕрдзрд┐рдХ рджрд╛рдиреЗрджрд╛рд░ рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИрдХреЗрд▓ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рд╣рдореЗрдВ рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ @ssfrr рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, as рдХреАрд╡рд░реНрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрддреНрдо-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рд╣реИ, рдФрд░ рдкрд╛рдЗрдерди/рд╣рд╛рд╕реНрдХреЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рднреА рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдкрдардиреАрдпрддрд╛ рдХреЗ рд╕рд╛рде @StefanKarpinski рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЬрдЧрд░ рдЬреИрд╕рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рдорджрдж рдХрд░реЗрдЧрд╛:

from Tlahuixcalpantecuhtli as Venus import xxxxxxxxx as x9, yyyyyyyy as y8, zzz

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрд░рдИрдкреАрдПрд▓ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

from Tlahuixcalpantecuhtli as Venus import xxxxxxxxx as x9, yyyyyyyy as y8, zzz

рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ рдореЗрд░реЗ рд╕рдмрд╕реЗ рдХрдо рдкрд╕рдВрджреАрджрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрд░реНрде рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреВрд░реА рд▓рд╛рдЗрди рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреАрд╡рд░реНрдб рдФрд░ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдХреНрд░рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдиреНрдп рдЖрдпрд╛рддреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╡реЗ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рднрдпрд╛рдирдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рд╣реИ, рдЖрдИрдПрдордУ, рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреА рддрд░рд╣ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рдЬрди рджреЗ рд░рд╣рд╛ рд╣реИред

:+1: as рдХреЗ рд▓рд┐рдП, :-1: from рдХреЗ рд▓рд┐рдП

import a => b: c => d, e => f рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдмрд╣реБрдд рдкрд░реНрд▓-рдПрд╕реНрдХреНрдпреВ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдиреИрд╢ рд╕рдВрддреБрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдирд╣реАрдВ рд╕реБрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╣реИред рд▓реЗрдХрд┐рди рдордЬреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рдЗрдХрд╢реЗрдб рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ 10 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, #6984 рдкрд░ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг (рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХрдард┐рди) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ 4 рдШрдВрдЯреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ!

as рдмрдирд╛рдо => рдХреЗ рд▓рд┐рдП: рдпрд╛ рддреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред

рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ @BobPortmann # 6984 рдкрд░ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ => рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВред

рд▓реЗрдХрд┐рди рдордЬреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рдЗрдХрд╢реЗрдб рдореЗрдВ рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ 10 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, #6984 рдкрд░ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг (рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХрдард┐рди) рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ 4 рдШрдВрдЯреЗ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ!

рдкрд╛рд░реНрдХрд┐рдВрд╕рдВрд╕ рдХреЗ рдореВрд▓ рд╕рд╛рджреГрд╢реНрдп рдореЗрдВ, рдпрд╣ рдореБрджреНрджрд╛ рдмрд╛рдЗрдХ рд╢реЗрдб рд╣реИ рдФрд░ #6984 рдкрд░рдорд╛рдгреБ рд░рд┐рдПрдХреНрдЯрд░ рд╣реИред

:)

рдореБрдЭреЗ рдЗрд╕ рдмрд░реНрддрди рдХреЛ рд╣рд┐рд▓рд╛рдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрд╕рдВрдж рд╣реИ as ред => рдереЛрдбрд╝рд╛ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЕрдЬреАрдм рд╣реИред рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл = рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ: import Foo: x = y , const x = Foo.y рдХреЗ рдЕрдиреБрд░реВрдк рдЖрдк рдЕрднреА рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ, рддреЛ рд╣рд╛рд╕реНрдХреЗрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╡рд╣ рддрд╛рд▓рд┐рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реИред рдореИрдВ рдЕрдХреНрд╕рд░ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдЬреВрд▓рд┐рдпрд╛ рд╕реАрдЦ рд░рд╣рд╛ рдерд╛) рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ рдерд╛ рдХрд┐ import / using / require рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ, рдпрд╛ рдХрдм рдХрд░рдирд╛ рд╣реИ import Mod.thing рдмрдирд╛рдо import Mod: thing ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдпрд╛рдд рдкрд░ рдХреЛрд▓рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ рдФрд░ рдЗрд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

@jakebolewski рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИ, рдЬреВрд▓рд┐рдпрд╛ рдХреЗ using рд╣рд╛рд╕реНрдХреЗрд▓ (рдЧреИрд░-рдпреЛрдЧреНрдп) import рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ import рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ import qualified рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ


рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдХреЛрдИ рдмреЗрд╣рддрд░ рдЬрд╛рдирддрд╛ рд╣реИ рд╡рд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЖрдпрд╛рдд/рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ? рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ Mod рдЬреЛ x рдФрд░ y рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдЧреИрд░-рдирд┐рд░реНрдпрд╛рддрд┐рдд рдХрд╛рд░реНрдп рднреА рд╣реИрдВ p рдФрд░ q ред

import Mod рд▓рд╛рддрд╛ рд╣реИ Mod.x , Mod.y , Mod.p , рдФрд░ Mod.q ред рдЖрдпрд╛рддрд┐рдд рдХрд╛рд░реНрдп рд╡рд┐рдзрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ

using Mod рд▓рд╛рддрд╛ рд╣реИ x , y , Mod.x , Mod.y , Mod.p , рдФрд░ Mod.q . x рдФрд░ y рд╡рд┐рдзрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди Mod.* рд╣реИрдВред

import Mod.x, Mod.p рд▓рд╛рддрд╛ рд╣реИ x , p , Mod.x , Mod.y , Mod.p , рдФрд░ Mod.q . рд╡реЗ рд╕рднреА рд╡рд┐рдзрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

import Mod: x, p import Mod.x, Mod.p . рдХреЗ рд╕рдорд╛рди рд╣реИ

using Mod.x, Mod.p рд▓рд╛рддрд╛ рд╣реИ x , p , Mod.x , Mod.y , Mod.p , рдФрд░ Mod.q . x рдФрд░ p рд╡рд┐рдзрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди Mod.* рд╣реИрдВред

using Mod: x, p using Mod.x, Mod.p . рдХреЗ рд╕рдорд╛рди рд╣реИ

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ using Mod рд╣реА рдПрдХрдорд╛рддреНрд░ рдЙрдкрдпреЛрдЧ рд╣реИ рдЬреЛ рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ Mod ред

рдЗрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рд░рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛! рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдореИрдВ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХреВрдВ?

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

import Tlahuixcalpantecuhtli as Venus: xxxxxxxxx as x9, yyyyyyyy as y8, zzz

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реВрдБред рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рдВрд╕реНрдХрд░рдг рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛:

import Venus = Tlahuixcalpantecuhtli: x9 = xxxxxxxxx, y8 = yyyyyyyy, zzz

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рдирдлрд░рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдирд╛рдо рдкрд╣рд▓реЗ рдЖрддреЗ рд╣реИрдВ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рдореБрдЦ рд╣реИрдВ - рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИред

@ рдЬреЗрдХрдмреЛрд▓реЗрд╡реНрд╕реНрдХреА : рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрдпреЛрдВ рдмрд╛рдВрдзреЗрдВрдЧреЗ? рдпрд╣ рдмрджрд╕реВрд░рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдк рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЯрдХрд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдЫ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд░рдЦреА рдЧрдИ рдирдИ рд▓рд╛рдЗрдиреЗрдВ рдпрд╛ рддреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп рдмрдирд╛рддреА рд╣реИрдВ, рдЖрдИрдПрдордУ:

import Tlahuixcalpantecuhtli as Venus:
    xxxxxxxxx as x9, 
    yyyyyyyy as y8,
    zzz

рдпрд╛

import Venus = Tlahuixcalpantecuhtli: 
    x9 = xxxxxxxxx, 
    y8 = yyyyyyyy, 
    zzz

рдореБрдЭреЗ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрд╛рдлреА рджреГрдврд╝рддрд╛ рд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЖрдпрд╛рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдПрдХ рд░реВрдк рд╣реИ, рдЖрдЦрд┐рд░ред

рдЗрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдкрд░ рд░рдЦрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛! рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдореИрдВ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХреВрдВ?

@ brk00 , рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ!

@kmsquire , рдореИрдВ рдЖрдЬ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдБрдЧрд╛!

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рдордЭрддрд╛ рд╣реВрдВред @ssfrr рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдЖрд░рдИрдкреАрдПрд▓ рдкрд░ рд╣реВрдВ рдФрд░ using Mod рдЯрд╛рдЗрдк рдХрд░реЗрдВред рд╡рд┐рдзрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рддрд┐рдд рдлрд╝рдВрдХреНрд╢рди x рдФрд░ y рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐, рдЕрдЧрд░ рдореИрдВ рдПрдХ рдФрд░ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдЕрдм Mod рдХреА рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдерд╛, рдХреЗрд╡рд▓ рдирдП рдХреЗ рд▓рд┐рдП?

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЙрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ:

julia> module Mod

       export x, y

       x() = "x"
       y() = "y"
       p() = "p"
       q() = "q"

       end

julia> using Mod

julia> x()
"x"

julia> p()
ERROR: p not defined

julia> x(n) = n
ERROR: error in method definition: function Mod.x must be explicitly imported to be extended

рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

julia> import Mod: x # or import Mod.x

julia> x(n) = n
x (generic function with 2 methods)

julia> methods(x)
# 2 methods for generic function "x":
x() at none:5
x(n) at none:1

рдЦреИрд░, рдореИрдВ рдирд╛рдо рд╕рдорд╛рдзрд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рднреНрд░рдорд┐рдд рдерд╛:

julia> module Mod

       export x, y

       x() = "x"
       y() = "y"
       p() = "p"
       q() = "q"

       end

julia> using Mod

julia> x(n) = n
x (generic function with 1 method)

рдЕрдЧрд░ рдореИрдВ _use_ рд╕реЗ рдкрд╣рд▓реЗ x рдХреЛ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рд╣реИ using Mod , рддреЛ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдЙрдард╛рдИ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ x() рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ (рдЬреИрд╕реЗ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛), рддреНрд░реБрдЯрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдард╛рдИ рдЬрд╛рддреА рд╣реИред

рдЖрд╣, рджрд┐рд▓рдЪрд╕реНрдк! рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛ред рдореБрдЭреЗ $#$1 using #$ рдХреЗ рдмрд╛рдж рдиреЗрдорд╕реНрдкреЗрд╕рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП x рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░ рджреЗрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд╕рдХреЗред рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрдм x рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ?

рдореБрдЭреЗ @carlobaldassi рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ import рд╕рд┐рд░реНрдл рдореЙрдбреНрдпреВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЗрд╕реЗ const рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдЕрд▓рд┐рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

const Shortname = import ModuleWithLongName

рдХреЗ рдмрдЬрд╛рдп

import ModuleWithLongName
const Shortname = ModuleWithLongName

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдмрд╕ рдореМрдЬреВрджрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ import рдПрдХ "рдХрдерди" рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдкрд╛рд░реНрд╕рд░ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдореИрдВ import("Module") рдпрд╛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд░реНрдл тАЛтАЛтАЛтАЛрдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХрд┐рд╕реА рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ: рдпрд╣ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдХреЛрдб рд░реАрдбрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдирд╛рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреБрдЪреНрдЫ? рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕рдВрднрд╡рддрдГ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреИрдХреЗрдЬ рдЬреИрд╕реЗ np рдХреЗ рд▓рд┐рдП numpy рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреАрдХреГрдд рд╣реЛрдВрдЧреЗред

рдореИрдВ рдЕрдм рднреА numpy рдХреЛ np рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Arrays рд╕реЗ numpy $ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред numpy 1950 рдХреЗ рдбрд╛рдВрд╕ рдореВрд╡ рдФрд░ рдПрдХ рдШрд╛рддрдХ рдкреНрд▓реЗрдЧ рдХреЗ рдмреАрдЪ рдПрдХ рдХреНрд░реЙрд╕ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╕ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

Base.require("ArgParse")
const ap = Main.ArgParse

рдЗрд╕реЗ 1.0 . рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рд╣рдо рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк require рдФрд░ const рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди require рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╣реИ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдХрдореА рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреАрдЬреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреА рд╣реИред рдЬреИрд╕рд╛ рд╡реЗ рдЪрд╛рд╣рддреЗ/рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рдВрджрд░реНрдн https://github.com/fredrikekre/ImportMacros.jl

const рдЯреНрд░рд┐рдХ рдЖрд╕рд╛рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдЬрдм рдХрд┐рд╕реА рдХреЛ рдореИрдХреНрд░реЛ рдХреЛ рдЕрдиреНрдп рдирд╛рдо рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛:

julia> macro foo(a, b, c)                                  
           a, b, c                                         
       end                                                 
<strong i="8">@foo</strong> (macro with 1 method)                                 

julia> macro f(args...)                                    
           Expr(:macrocall, Symbol("@foo"), args...) |> esc
       end                                                 
<strong i="9">@f</strong> (macro with 1 method)                                   

julia> <strong i="10">@f</strong> 1 2 3                                            
(1,2,3)                                                    

ImportMacros.jl рдореЗрдВ рдореИрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

  • <strong i="15">@from</strong> Foo.Bar use foo as f
  • <strong i="18">@from</strong> Foo.Bar use <strong i="19">@foo</strong> as @f

рджреЗрдЦреЗрдВ: https://github.com/fredrikekre/ImportMacros.jl/pull/3

@ рдЗрд╕реНрдорд╛рдЗрд▓-рд╡реАрд╕реА

рдХреЛрд╢рд┐рд╢

<strong i="7">@eval</strong> const $(Symbol("@foo")) = $(Symbol("@bar"))

рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореИрдХреНрд░реЛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрджрд╕реВрд░рдд, рд▓реЗрдХрд┐рди рдЫреЛрдЯрд╛ рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ

@TotalVerb рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ + рдЗрдореНрдкреЛрд░реНрдЯрдореИрдХреНрд░реЛрд╕ рд╕реЗ рдЧрд╛рдпрдм рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЯреБрдХрдбрд╝рд╛ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЪрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рдХреЛ рдмрд┐рдирд╛ рдЙрдкрдирд╛рдо рдХреЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИ:

  • <strong i="9">@from</strong> Foo.Bar as B use foo as f, <strong i="10">@bar</strong> as <strong i="11">@b</strong>, baz

рдпрд╛ рдмрд┐рдирд╛ from :

  • import Foo.Bar as B: foo as f, <strong i="17">@bar</strong> as <strong i="18">@b</strong>, baz
  • import B = Foo.Bar: f = foo, <strong i="21">@b</strong> = <strong i="22">@bar</strong>, baz

рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рд╕рдВрднрд╡ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ:

julia> parse("<strong i="26">@from</strong> Foo.Bar as B use foo as f, <strong i="27">@bar</strong> as <strong i="28">@b</strong>, baz")
:(<strong i="29">@from</strong> Foo.Bar as B use foo as (f,@bar(as,(@b(),baz))))

julia> parse("<strong i="30">@import</strong> Foo.Bar as B: foo as f, <strong i="31">@bar</strong> as <strong i="32">@b</strong>, baz")
:(<strong i="33">@import</strong> Foo.Bar as B:foo as (f,@bar(as,(@b(),baz))))

julia> parse("<strong i="34">@import</strong> B = Foo.Bar: f = foo, <strong i="35">@b</strong> = <strong i="36">@bar</strong>, baz")
ERROR: ParseError("unexpected \"=\"")
 in #parse#310(::Bool, ::Bool, ::Function, ::String, ::Int64) at .\parse.jl:184
 in (::Base.#kw##parse)(::Array{Any,1}, ::Base.#parse, ::String, ::Int64) at .\<missing>:0
 in #parse#311(::Bool, ::Function, ::String) at .\parse.jl:194
 in parse(::String) at .\parse.jl:194

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 1.0 рдХреЗ рд▓рд┐рдП рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдпрд╛ рддреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ рдпрд╛ рдХреБрд▓ рдмрдХрд╡рд╛рд╕ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рдЙрдкрдирд╛рдо рдХрд╛ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░рдИрдкреАрдПрд▓ рдкрд░ reload("...") рджреНрд╡рд╛рд░рд╛? const M = MyModule рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, M рдЕрднреА рднреА рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкреБрд░рд╛рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП MyModule рдореЗрдВ рдХреЛрдИ рднреА рдирдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╛рдо рдХреЗрд╡рд▓ MyModule.name рддрдХ рд╣реА рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдирд╣реАрдВ M.name ред

рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдЙрдкрдирд╛рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ const M = Module рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ M рд╣рдореЗрд╢рд╛ MyModule рдЬреИрд╕реА рд╣реА рдЪреАрдЬрд╝ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдЖрд░рдИрдкреАрдПрд▓ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рднреА рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдореЙрдбреНрдпреВрд▓ import рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдПрдХ (рдЧреИрд░- const ) рдЙрдкрдирд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рдЙрдкрдирд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред reload ред

рдлрд╝рд┐рд▓рд╣рд╛рд▓, reload рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЪрд┐рдВрддрд╛ рдЕрдм рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред

рдпрд╣ include рдХреЗ рд▓рд┐рдП рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ? рдЖрдо рддреМрд░ рдкрд░, рдЬрдм рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ import рдПрдб рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдирдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЙрдкрдирд╛рдо рдкреБрд░рд╛рдиреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╣реИ рдирд╛?

рдирд╣реАрдВ, рдпрд╣ рдЪрд┐рдВрддрд╛ рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп import рд╕рд╣рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рдЖрдпрд╛рддрд┐рдд рдирд╛рдо рдХрднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдпрд╛рддрд┐рдд рд╣рдореЗрд╢рд╛ рдПрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд░рд╣рд╛ рд╣реИред

рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде test.jl рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ

module Tst
f() = 1
end

рдЖрдк рдЗрд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, Tst рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЙрдкрдирд╛рдо рдХреЛ Tst рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ:

julia> include("test.jl")
Tst

julia> import Tst

julia> const Tst2 = Tst
Tst

julia> Tst.f()
1

julia> Tst2.f()
1

рдЕрдЧрд░ рдЖрдк рдЕрдм test.jl рдХреЛ . рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ

module Tst
f() = 2
end

рдФрд░ рдлрд┐рд░ рд╕реЗ- include рдЗрд╕реЗ рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдирд╛рдо рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:

julia> include("test.jl")
WARNING: replacing module Tst
Tst

julia> Tst.f()
2

julia> Tst2.f()
1

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рддрдм рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк import Tst as Tst2 рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЙрдкрдирд╛рдо рдмрдирд╛рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЗрд╕реЗ 0.6.2 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ 0.7 рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдм рдирд╣реАрдВ рдХрд░рддрд╛ рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдорд╛рдорд▓рд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред import рдПрдХ рдиреЛ-рдСрдк рд╣реИред

рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдХрд╛рд▓реНрдкрдирд┐рдХ import Tst as Tst2 рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рддрдм рдпрд╣ рдХрдерди рдиреЛ-рдСрдк рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдПрдХ рдЙрдкрдирд╛рдо рдмрдирд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдЙрдкрдирд╛рдо const Tst2 = Tst рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореЙрдбреНрдпреВрд▓ Tst рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрдкрдирд╛рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХрд┐рд╕реА рднреА рд╕реВрд░рдд рдореЗрдВ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдпрд╛ рддреЛ рдЙрдкрдирд╛рдо рдХреЛ Tst рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдкрдирд╛рдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреБрд░рд╛рдиреЗ рдЙрдкрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдкреБрд░рд╛рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдиреА рдЪрд╛рд╣рд┐рдПред

рдкреВрд░реА рдмрд╛рдд рдпрд╣реА рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ import рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХрд╛ import рдиреЛ-рдСрдк рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХреЛрдИ import рдпрд╛ using рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдореЙрдбреНрдпреВрд▓ import рдХреЗ рд╕рдорд╛рди рджрд╛рдпрд░реЗ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рди рд╣реЛред

import Tst as Tst2 рдЙрд╕ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ import Tst рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬреЛ рд╣рдореЗрд╢рд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдЬрд╛рджреВ рдирд╣реАрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд░рдЦреЗрдВ, рдЖрдкрдХрд╛ рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИ,

a = Ref(1) # include
a = a # import
b = a # alias
a = Ref(2) # include again

рдФрд░ b = a рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ a a = a #$ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИред рдЬреЛ рдХреБрдЫ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдЦрд░рд╛рдм рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЖрдпрд╛рдд (рдпрд╛рдиреА a = a рдФрд░ a = Ref(...) рд╕рдорд╛рди рджрд╛рдпрд░реЗ рдореЗрдВ) рдХреЗ рд╕рдорд╛рди рджрд╛рдпрд░реЗ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИред

рдареАрдХ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХ рдЙрдкрдирд╛рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдПрдХ рдмреБрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдЪреБрдирд╛ред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЙрдкрдирд╛рдо рдмрдирд╛рддрд╛ рд╣реИ (рдЪрд╛рд╣реЗ рд╡рд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рдпрд╛ рдирд╣реАрдВ import ), рд▓реЗрдХрд┐рди рдЕрднреА рдпрд╣ рд╡реИрд╕реЗ рднреА рдХрд╛рд▓реНрдкрдирд┐рдХ рд╣реИред рд╢реЛрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдпрд╣ рдореБрджреНрджрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╣реИ, рднрд▓реЗ рд╣реА рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░реЛрдВ рдкрд░ рдЕрднреА рднреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП,

import LongPackage as longpkg

рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдЯрдХреНрдХрд░ред рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ - рдЕрднреА рдХреЗ рд▓рд┐рдП - рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ? рдпрд╣рд╛рдБ рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

import LinearAlgebra
const linalg = LinearAlgebra

рдЕрдЧрд░ рдХреЛрдИ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ!

рдпрд╣реА рд╡рд░реНрддрдорд╛рди рдорд╛рдирдХ рд╣реИред

~ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдореИрдВ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реМрдВрджрд░реНрдп рд╣реИред рд╕рд╛рде рд╣реА, ~ рдХрд╛ рдкреНрд░рдпреЛрдЧ рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рдкреНрд░рддреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

import LongPackage ~ lp

@JeffreySarnoff рд╕реНрдЯреАрдлрди рдХреЗ рд╣рд╡рд╛рд▓реЗ рд╕реЗ

@StefanKarpinski

рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ рдореЗрд░реЗ рд╕рдмрд╕реЗ рдХрдо рдкрд╕рдВрджреАрджрд╛ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрд░реНрде рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреВрд░реА рд▓рд╛рдЗрди рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреАрд╡рд░реНрдб рдФрд░ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдХреНрд░рдо рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЕрдиреНрдп рдЖрдпрд╛рддреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╡реЗ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рднрдпрд╛рдирдХ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рд╣реИ, рдЖрдИрдПрдордУ, рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреА рддрд░рд╣ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рдЬрди рджреЗ рд░рд╣рд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, ~ рдХрд╛ рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдЕрдВрдЧреНрд░реЗрдЬреА-рдЬреИрд╕реЗ рдкрд╣рд▓реВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ ~ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЕрдиреБрдорд╛рдирд┐рдд рдХреА рдЧрдгрд┐рддреАрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реВрдВред 10.001 ~ 10.

рддреЛ, рдЙрд╕ рдЕрд░реНрде рдореЗрдВ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ~ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

import LongPackage ~ lp
import HugePackage ~ hp
import MassivePackage ~ mp
import GiantPackage ~ gp

:-)

рдареАрдХ рд╣реИ - рдЕрдЬрдЧрд░ рдХреЛ рднреВрд▓ рдЬрд╛рдУ - рдореИрдВ рдЙрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реВрдВ

lp imports LongPlayingRecords
hp imports HewlettPackard
mp imports MilitaryPolice
gp imports PariForNumberTheory

рдореБрдЭреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ as рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХреГрдд рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ рдХреАрд╡рд░реНрдб рдпрд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдВрджрд░реНрдн рд╣реИред

рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЬреЛ _trys_ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ!?!

@ рдЬреЗрдлрд░реА рд╕рд░рдиреЙрдл

рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЬреЛ рдкрд╛рдпрдерди рд╕реЗ рдмреЗрд╣рддрд░ рдмрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ !!!

@neilpanchal рдЬреВрд▓рд┐рдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рдкрд╛рдпрдерди рд╕реЗ рдмреЗрд╣рддрд░ рдмрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рдЗрдерди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ _рднрд┐рдиреНрди_ рд╣реЛрдиреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкрд╛рдпрдерди рдХреЛ рдХреБрдЫ рд╕рд╣реА рдорд┐рд▓рд╛ред рдЬреВрд▓рд┐рдпрд╛ рдиреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрд╛рдпрдерди рд╕реЗ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ред

рдХреГрдкрдпрд╛ рдЕрдЬрдЧрд░ as рдХреЛ рдЕрдкрдирд╛рдПрдВред рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдареАрдХ рд▓рдЧрд╛ред

рдЬреВрд▓рд┐рдпрд╛> рд▓рд╛рдЗрдЯрдЧреНрд░рд╛рдл рдХреЛ рдПрд▓рдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рддреНрд░реБрдЯрд┐: рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреЛрдХрди "рдХреЗ рд░реВрдк рдореЗрдВ"

as рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд╕ рдПрдХ рдФрд░ $0.02 рдЯрд┐рдкреНрдкрдгреА рдЬреЛ рдкрд╛рдпрдерди рд╕реЗ рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИред fwiw, рдЕрдм рдЬрдм рдореИрдВ рдЬреВрд▓рд┐рдпрд╛ w/рдХреБрдЫ рдирд┐рдпрдорд┐рддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдпрд╛рдж рдЖрддреА рд╣реИред рдкрд╛рдЗрдерди рдХреА рддрд░рд╣ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреНрд▓реЛрдЬрд░ рдХреА рддрд░рд╣ ( рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ), рдЬрд╣рд╛рдВ рдкреИрдХреЗрдЬ рд╕реНрдХреЛрдкреНрдб рдиреЗрдорд╕реНрдкреЗрд╕ (рдЬреЛ рдХрд┐ рдЕрд╕рдВрдмрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВ) рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЪреВрдБрдХрд┐ рдореБрдЭреЗ using (рдпрд╛рдиреА рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдЖрдпрд╛рдд) рд╕реЗ рдмрдЪрдиреЗ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ import Gadlfy as gf рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг const gf = рд▓рд╛рдЗрди (рдЬреЛ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ) рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ рдЖрд╕рд╛рди рд╣реЛред

рдлрд┐рд░ рднреА as рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдЯрд┐рдкреНрдкрдгреА: рджрд┐рд▓: рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЬреВрд▓рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рднреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рдирд╣реАрдВ рд╣реИ (рджрд╛рдПрдВ?)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдореИрдВ рд╕рдордп рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЦреБрдж рдХреЛ рдЖрдЬрдорд╛рдЙрдВрдЧрд╛), рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ, ImportMacros рдкреИрдХреЗрдЬ рдореЗрдВ рдпрд╣рд╛рдВ рдЕрдиреБрд░реЛрдз рдХреА рдЧрдИ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЧреБрдо рд╣реИ) :

<strong i="8">@import</strong> ModuleA as ma
<strong i="9">@using</strong> ModuleB as mb
<strong i="10">@from</strong> ModuleC use long_function_name as func
<strong i="11">@from</strong> Module use <strong i="12">@macroname</strong> as <strong i="13">@alias</strong>

рдореБрдЭреЗ ImportMacros .jl рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрджрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреИрдХреЗрдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореВрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рд░рдЦрдирд╛ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЕрдм рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЖрдпрд╛рдд IMO рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рд▓рдЧрднрдЧ _always_ рдореВрд▓ рднрд╛рд╖рд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред import ... const рдлреЙрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рдЪреАрдЬ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ) рдпрджрд┐ рдореВрд▓ рднрд╛рд╖рд╛ рдХреЛ рдХрднреА рднреА рджреЛ рдЪрд░рдгреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд╕реВрд░рдд рд╣реИ

using ImportMacros
<strong i="6">@using</strong> OtherPackage as ...
<strong i="7">@using</strong> ThirdPackage as ...

рдХреНрдпреЛрдВрдХрд┐ рдЧреИрд░-рдореИрдХреНрд░реЛ using рдЪрд┐рдкрдХ рдЬрд╛рддрд╛ рд╣реИред

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ import рдореЙрдбреНрдпреВрд▓/рдлрд╝рдВрдХреНрд╢рди/рдЬреЛ рдХреБрдЫ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓рд╛рддрд╛ рд╣реИ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рддрдм рдЖрдк рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
lg = import LightGraphs
baz = import foo.bar
baz, kit, kat = import foo : bar1, bar2, bar3
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ рдЖрдпрд╛рдд рдХрд╛рд░реНрдп

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @DhruvaSambrani рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рдордЧреНрд░ "рд╕рдм рдХреБрдЫ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐, рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдпрд╛рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрднреА рднреА рдкреВрд░реЗ рдирд╛рдо рдХреЛ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╢рд╛рдпрдж рдХреЛрдИ рдЖрдкрджрд╛ рдирд╣реАрдВ)ред рдпрд╣ рдкреВрд░рд╛ рдирд╛рдо рдЖрдпрд╛рдд рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рд╕рдХрд▓ рд╣реИред

OCaml рдореЗрдВ (рд╕рд░реНрд╡реЛрддреНрддрдо рдореЙрдбреНрдпреВрд▓ рд╡рд╛рд▓реА рднрд╛рд╖рд╛!), рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

module LG = LightGraphs

рдпрд╣рд╛рдБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ OCaml рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдпреЛрдЧреНрдп рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИред

рдмреЗрд╢рдХ, import LightGraphs as LG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рд▓рд╛рдн рд╣реИ рдХрд┐ "рд╣рд░ рдХреЛрдИ" рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдпрдерди рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реНрд╡рд╛рдж рдпрд╣ рд╣реИ рдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдЬреЛ рд╕рдЪрдореБрдЪ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╣реИред

рдпрд╛ рдПрдХ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ "рдиреЗрдорд╕реНрдкреЗрд╕" рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЖрдИрдбреАрдХреЗ рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛ рдЪреБрдХрд╛ рд╣реИ)ред рдлрд┐рд░ import рдореЙрдбреНрдпреВрд▓/рдЬреЛ рдХреБрдЫ рднреА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╛рдорд╕реНрдерд╛рди рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ import mod_name рдХрд░рдиреЗ рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ mod_name рдирд╛рдорд╕реНрдерд╛рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рдХрд┐рд╕реА рддрд░рд╣ mod_name рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╛ рдмрд╕ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди import_as_ns(mod_name) :: Namespace рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдПрдХ рд╢реБрджреНрдз рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рд╣реА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди/рдореЙрдбреНрдпреВрд▓ рдЗрддреНрдпрд╛рджрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд╕рдордЧреНрд░ "рд╕рдм рдХреБрдЫ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ

рд╣рд╛рд▓рд╛рдВрдХрд┐, import рдФрд░ using рд╡рд┐рд╢реЗрд╖ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ред

рд╕рдВрдпреЛрдЧ рд╕реЗ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЯреНрд░рд╛рдЗрдПрдЬ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ред рдореИрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╡рдХрд╛рд▓рдд рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐

  1. import Foo; const Bar = Foo рдПрдХ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд╛рдо рд╕реНрдерд╛рди рдореЗрдВ Foo рд╕реЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ,
  2. ImportMacros.jl рдХреЛ рдмрд╛рдХреА рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП,
  3. рди рддреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЛрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╡рд╛рд░рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЗрддрдиреЗ рд╕рдордп рдХреЗ рдмрд╛рдж рднреА, рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╣ рдпрд╛рдж рдЖрддреА рд╣реИ (рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ ImportMacros рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЬрд╛ рд░рд╣реА рдХреЙрдлреА рдХреА рд╢реИрд▓реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ (рдпрд╛ рдЗрдЪреНрдЫрд╛) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред рдЬрдм рдореИрдВ рдПрдордПрд▓ рдпрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХреЛрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ред рдЬрдм рдореИрдВрдиреЗ рдЕрдиреНрдп рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рд╡рд╛рд▓реЗ рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрдВрдкреЛрд░реНрдЯрдореИрдХреНрд░реЛрд╕ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрдВрдкреЛрд░реНрдЯрдореИрдХреНрд░реЛрдЬрд╝ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдЙрддрдирд╛ рд╕рд╛рдл рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдореИрдВ рдЙрд╕ рджрд┐рди рдХрд╛ рднреА рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдЖрдпрд╛рдд рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рдСрдЯреЛрдлреЙрд░реНрдореЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ... рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИ рдХрд┐ @using рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ ...

рдореИрдВ @kmsquire рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ ImportMacros рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЬреЛ рднреА рддрд░реАрдХрд╛ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рд╕рд╛рдордиреЗ рди рдЖрдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА m=import Module рдЪреАрдиреА рдкрд╕рдВрдж рд╣реИ

рдореИрдВ рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдЗрдВрдкреЛрд░реНрдЯрдореИрдХреНрд░реЛрдЬрд╝ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдпрд╣ рдЙрддрдирд╛ рд╕рд╛рдл рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВред рдХреЗ рд▓рд┐рдП рднреА:

using ImportMacros
<strong i="8">@using</strong> OtherPackage as ...

рдирд╡рд╛рдЧрдВрддреБрдХреЛрдВ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рднрд╛рд╖рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдЕрд╕рдВрдЧрддрд┐ рд╕реЗ рдХреНрдпреЛрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИ рдФрд░ рд╢рд┐рдХреНрд╖рдг рдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреА рд╣реИред

рди рддреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЛрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рд▓реЛрдЧ рдЗрдореНрдкреЛрд░реНрдЯрдореИрдХреНрд░реЛрд╕ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдПрдХ рдЯреНрд░реЗрдбрдСрдлрд╝ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рд▓рдЧрднрдЧ рд╣рд░ рдмрд╛рд░ import ... as ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рдд: рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреАрдордд рдкрд░ рдирд╣реАрдВред рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЕрдзрд┐рдХ, рдЗрд╕рдХрд╛ "рдлреАрд▓" рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреА рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ (рдФрд░ рдХреБрдЫ рд▓реЛрдЧ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЪрд┐рдХрдирд╛ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЕрдЬрдЧрд░ рдпрд╛ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ) тАНтЩВя╕П , рдФрд░ рдпрд╣ using/@using рдмрд▓реНрдХрд┐ " рд╣реИрдХреА" рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рд▓рд┐рдП рдЦрд┐рдВрдЪрд╛рд╡)ред

рддреЛ рд╣рд╛рдБ, "ImportMacros рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ"ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдд рд╣реИ, рдпрд╣ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд▓реЛрдЧ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣рд░рд╣рд╛рд▓, рдореЗрд░рд╛ рджреГрдврд╝ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдпреЗ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд░рд╛рдХреНрд╖рд╕-рдзрд╛рдЧрд╛ рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ import ... as ... рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рд╣реИ рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧреА, рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдФрд░ рд╕рдордЭрд╛рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреВрд▓рд┐рдпрд╛ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬ рдореЗрдВ рд▓рдВрдмреЗ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВ (рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдХреЗрд╡рд▓ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдХрд┐ рд▓реЛрдЧ using ... рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

рдФрд░ рдпрд╣ рддрдереНрдп рдХрд┐ рдкрд╛рдпрдерди рдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдЦреБрдж рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдФрд░/рдпрд╛ рдЕрдкрдиреА рдкрд╣рдЪрд╛рди рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рдореНрдореЗрд▓рди (рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ import numpy as np рдФрд░ import matplotlib.pyplot as plt рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ) using SuchAndSuch рдХрд░рдиреЗ рдФрд░ export рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рдХрд▓реНрдк рднреА рджреЗрдЧрд╛

@DominiqueMakowski :

рдирд╡рд╛рдЧрдВрддреБрдХреЛрдВ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдХрд┐ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рдВрдЧрддрд┐ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдирд╛рдо рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрди рд╣реИ, рдЬреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдирд╡рд╛рдЧрдВрддреБрдХреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд╛ рдХреЛрдИ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреАрд╡рд░реНрдб рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдирд╛ рджреБрд░реНрд▓рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, using ImportMacros рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдкрд░ Github рдкрд░ <10 рдЕрджреНрд╡рд┐рддреАрдп рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВред

рдореИрдВ рд▓рдЧрднрдЧ рд╣рд░ рдмрд╛рд░ рдЖрдпрд╛рдд ... рдХреЗ рд░реВрдк рдореЗрдВ ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреАрдордд рдкрд░ рдирд╣реАрдВ

рдпрд╣ рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрдЯреМрддреА рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ ImportMacros рдпрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддреАрдХ ( import LongFoo; const Foo = LongFoo ) рдЬреИрд╕реЗ рд▓рд╛рдЗрдЯрд╡реЗрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА (рдмрд╣реБрдд рдорд╛рдореВрд▓реА) рд▓рд╛рдЧрдд рд▓рд╛рдн рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓рд╛рдн рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ .

рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдЦреБрдж рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдФрд░/рдпрд╛ рдЕрдкрдиреА рдкрд╣рдЪрд╛рди рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдПрдХ рдкреНрд░реЗрд░рдгрд╛ рд╣реИред

рдРрд╕реЗ рдХреБрдЫ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк as рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬрд╣рд╛рдВ const рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛рдлреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

julia> using Distributed

julia> import Future; const future = Future
Future

julia> Future === Distributed.Future # oops, this is what we wanted
false

julia> Future === future # not what we wanted `Future` to mean
true

рд╣рд╛рдВ, рдЖрдк рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЬреАрдм рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЕрдХреНрд╕рд░ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ import FooBar as FB рдЖрдо рддреМрд░ рдкрд░ "рдХрдо рд╕реЗ рдХрдо рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ" рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рд╕рд╣рдордд рд╣реЛрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕рдм рдЬрд░реВрд░рдд рд╣реИ рдХрд┐рд╕реА рдХреЛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреАред

рдиреНрдпреВ рдЬреВрд▓рд┐рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣рд╛рдБред
рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЖрддрд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рдкрд╛рдпрдерди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдкреИрдХреЗрдЬ рдХреЙрдорди рдиреЗрдо рд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде рдмреБрд░реЗ рдЕрдиреБрднрд╡ рд╣реИрдВ рдЬреЛ using рдЬреИрд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЯрдХрд░рд╛рд╡ рдХрд╛ рдЬреЛрдЦрд┐рдо рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рдкрдардиреАрдпрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕реЛрдЪрдиреЗ рдХрд╛ рдЙрдирдХрд╛ рдорд╛рдирд╕рд┐рдХ рдмреЛрдЭ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдХрд┐рддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ?

рд╢рд╛рдпрдж рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдЗрд╕рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рдХреЛрдб рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рдЬреЛ рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдПрд╕рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддрд╛рд░-рддрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕реА рдХреЛрдб рдХреЛ рднреА рдЫреВ рд░рд╣рд╛ рд╣реИред

рдПрдХрд╛рдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред

рд╕реБрд╕реНрдд рдкрд░ рдЪрд░реНрдЪрд╛ рд╕реЗ, рдореИрдВ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдЪреБрдирдиреЗ рдФрд░ рд╕рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХрдо рд╕рд╛рд╡рдзрд╛рди рдХрд░реЗрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдЙрджрд╛ред

numpy.sin
sympy.sin

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдФрд░ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рджреЛрдиреЛрдВ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗ рддреЛ рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдиреЗрдорд╕реНрдкреЗрд╕рд┐рдВрдЧ рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рд╕реЗ рдЪреВрдХ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛рдиреА, рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ " рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ" рдХрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд▓рд┐рдВрдбрди рдиреЗ https://www.oxinabox.net/2020/02/09/whycompositionaljulia.html рдореЗрдВ рд░рдЦрд╛ рдерд╛ред

@baggepinnen рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИред

рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдХреЗ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

julia> module Foo
           export sin
           sin(s::String) = uppercase(s)
       end
Main.Foo

julia> sin(1)
0.8414709848078965

julia> using .Foo
WARNING: using Foo.sin in module Main conflicts with an existing identifier.

julia> sin("wat")
ERROR: MethodError: no method matching sin(::String)
Closest candidates are:
  sin(::BigFloat) at mpfr.jl:727
  sin(::Missing) at math.jl:1197
  sin(::Complex{Float16}) at math.jl:1145
  ...
Stacktrace:
 [1] top-level scope at REPL[4]:1
 [2] run_repl(::REPL.AbstractREPL, ::Any) at /build/julia/src/julia-1.5.1/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288

julia> Foo.sin("wat")
"WAT"

рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рдореВрд▓ рдХрд╛рд░реНрдп рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░реЗрд╖рдг рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

julia> Base.sin(s::String) = Foo.sin(s)

julia> sin("wat")
"WAT"

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдореЙрдбреНрдпреВрд▓ рдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдФрд░ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдп _ should_ рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ find_delta рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдлрд╝рд╛рдЗрд▓ рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ find_delta рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХрд╛ рдХреЛрдб рдЗрддрдирд╛ рдмрд╣реБрд░реВрдкреА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯреВрдЯреЗ рд╣реБрдП рдЗрдирдкреБрдЯ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬ рд▓реЗрдЧрд╛, рддреЛ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИред

@ninjaaron рдореИрдВ рдКрдкрд░ рдЕрдкрдиреА рдЪрд┐рдВрддрд╛ рдореЗрдВ рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реВрдБред рдореБрдЭреЗ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдХреЛрдИ рд╕рд░реЛрдХрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЬреЛ рд░рдгрдиреАрддрд┐ рдЪреБрдирддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдмрджрд▓ рдЬрд╛рдПред
Foo рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ

julia> using .Foo
WARNING: using Foo.sin in module Main conflicts with an existing identifier.

рдпрд╛ рддреЛ рдмрд╕ import .Foo.sin as sin2 рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Base.sin рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░реЗрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдореЗрд░рд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЙрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднреА рдЬрдм рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐, рдЬрд╣рд╛рдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЕрдЬреАрдм рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдЪреНрдЫрд╛ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдард╛рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

@baggepinnen рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд▓рд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рдмреБрд░рд╛рдИ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдЖрдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбреНрдпреВрд▓ рдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрд╕рд╛рди рдореЙрдбреНрдпреВрд▓ рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рд╣реЛрдиреЗ рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ _complaining_ рдирд╛рдордХрд░рдг рд╕рдВрдШрд░реНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдПрдкреАрдЖрдИ рдкрд░ рдЬрдмрд░рджрд╕реНрдд рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИред

рдЬрдм рдореИрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдЪреЗрдд рд░рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдмреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░реЗрд╖рдг рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЕрд▓рдЧ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рднреА рд╣реИрдВред

@ninjaaron рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╡рд░реНрддрдорд╛рди рд╕рдореНрдореЗрд▓рди рдкреНрд░реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕реЗ

numpy.sin
sympy.sin

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ import numpy.sin as np_sin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдХреЛрдб рдЖрдзрд╛рд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХрдорд╛рддреНрд░ рдЪрд┐рдВрддрд╛ рдХреЗрд╡рд▓ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдлрд╝рдВрдХреНрд╢рди/рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧреАред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

iamed2 picture iamed2  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

m-j-w picture m-j-w  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dpsanders picture dpsanders  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TotalVerb picture TotalVerb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

felixrehren picture felixrehren  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ