Julia中的代數係數

weixin_33850890發表於2018-08-29

歡迎關注Julia語言微信公眾賬號 julia_language

原文連結:http://suo.im/4wAxk6

微信公眾號:Julia語言
每週一三五更新,其他時間隨機加餐;
問題或建議,請公眾號留言;

代數係數

Julia 允許在變數前緊跟著數值文字,來表示乘法。這有助於寫多項式表示式:

julia> x = 3
3

julia> 2x^2 - 3x + 1
10

julia> 1.5x^2 - .5x + 1
13.0

指數也可以直接表示:

julia> 2^2x
64

數值文字系數同單目運算子一樣。因此 2^3x 被解析為 2^(3x) , 2x^3 被解析為 2*(x^3) 。
數值文字也可以作為括號表示式的因子:

julia> 2(x-1)^2 - 3(x-1) + 1
3

注意

用於隱式乘法的數字文字係數的優先順序高於其他二元運算子,如乘法(*)和除法(/,\,和//)。 這意味著,例如,1 / 2im等於-0.5im和6 // 2(2 + 1)等於1 // 1。

括號表示式可作為變數的因子:

julia> (x-1)x
6

不要接著寫兩個變數括號表示式,也不要把變數放在括號表示式之前。它們不能被用來指代乘法運算:

julia> (x-1)(x+1)
ERROR: MethodError: objects of type Int64 are not callable

julia> x(x+1)
ERROR: MethodError: objects of type Int64 are not callable

這兩個表示式都被解析為函式呼叫:任何非數值文字的表示式,如果後面跟著括號,代表呼叫函式來處理括號內的數值(詳見函式)。因此,由於左面的值不是函式,這兩個例子都出錯了。

需要注意,代數因子和變數或括號表示式之間不能有空格。

語法衝突

文字因子與兩個數值表示式語法衝突: 十六進位制整數文字和浮點數文字的科學計數法:

  • 十六進位制整數文字表示式 0xff 可以被解析為數值文字 0 乘以變數 xff
  • 浮點數文字表示式 1e10 可以被解析為數值文字 1 乘以變數 e10 。 E 格式也同樣。
  • 32位浮點數文字表示式 1.5f22可以被解析為數值文字1.5乘以變數 f22 。

這三種情況下,我們都把表示式解析為數值文字

  • 以 0x 開頭的表示式,都被解析為十六進位制文字
  • 以數字文字開頭,後面跟著 e 或 E ,都被解析為浮點數文字
  • 以數字文字開頭,後面跟著 f ,都被解析為32位浮點數文字
2016416-efc5993d9a07e6dc.jpg
歡迎關注微信公眾賬號Julia語言.jpg

相關文章