欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Julia
来自开放百科 - 灰狐
您可以在Wikipedia上了解到此条目的英文信息 Julia Thanks, Wikipedia. |
Julia是一个面向科学计算的高性能动态高级程序设计语言,其语法与其他科学计算语言相似,在许多情况下拥有能与编译型语言相媲美的性能,主要用于数值计算,但不仅仅只有这些,它有着广泛的生态系统。
目录 |
新闻
- 集Python、C++、R为一体!Julia 1.0重磅发布 (2018.08)
简介
我们想要的是一个自由开源的语言,并且它同时拥有C的速度和Ruby的动态性;我们想要一个具有同像性(可以将语言的脚本本身当作数据进行处理)的语言, 它有着真正的和lisp一样的宏,但是却像MATLAB一样有着显然的,类似于数学表达式的标记;我们想要一个既可以像Python一样作为通用编程语言的工具, 又可以像R那样适用于统计分析,能像Perl那样自然地处理字符串,能像MATLAB那样给力地处理矩阵运算,它还要能像shell一样作为胶水将各种程序粘合在一起;我们想要一个简单易学的语言,同时它还能让最苛刻的魔法师们(hackers)开心。我们希望它是交互式的,但我们也希望它能被编译。
受MATLAB和MathematicaWolfram等编程语言启发,Julia可简单看作数值计算和科学计算领域一个开源的编程语言,Julia采用MIT许可协议。
除了语言本身的优点,Julia 还拥有非常强大的生态系统,主要应用于数据可视化、通用计算、数据科学、机器学习、科学领域、并行计算六大领域。
特点
- 核心语言非常小,标准库用的是Julia语言本身写的;
- 擅长于数值计算,其语法非常适合数学;
- 调用许多其它成熟的高性能基础代码:如线性代数、随机数生成、快速傅里叶变换、字符串处理等;
- 丰富的用于建立或描述对象的类型语法;
- 高性能,接近于静态编译型语言,包括用户自定义类型等;
- 为并行计算和分布式计算而设计;
- 轻量级协程;
- 优雅的可扩展的类型转换/提升;
- 支持Unicode,包括但不限于UTF-8
- 可直接调用C函数(不需要包装或是借助特殊的API);
- 有类似shell的进程管理能力;
- 有类似Lisp的宏以及其它元编程工具。
版本
指南
$ brew cask install julia // macOS julia> x = typemax(Int64) 9223372036854775807 julia> for T in [Int8,Int16,Int32,Int64,Int128,UInt8,UInt16,UInt32,UInt64,UInt128] println("$(lpad(T,7)): [$(typemin(T)),$(typemax(T))]") end Int8: [-128,127] Int16: [-32768,32767] Int32: [-2147483648,2147483647] Int64: [-9223372036854775808,9223372036854775807] Int128: [-170141183460469231731687303715884105728,170141183460469231731687303715884105727] UInt8: [0,255] UInt16: [0,65535] UInt32: [0,4294967295] UInt64: [0,18446744073709551615] UInt128: [0,340282366920938463463374607431768211455] julia> function f(x,y) x + y end julia> f(2,3) 5
Jupyter
IJulia Julia kernel for Jupyter
julia> using Pkg julia> Pkg.add("IJulia") julia> using IJulia julia> notebook()
项目
- Awesome Julia
- Julia Mathematical
- Juno is built on Atom.
- The GNU MPFR Library
- The GNU MP Bignum Library
- Jupyter
- Light Table
- JuliaStats Statistics and Machine learning made easy in Julia.
C/C++
数学物理
包
图集
链接
分享您的观点