{ "metadata": { "language": "Julia", "name": "", "signature": "sha256:02b924840b3b7cf639d77ccfb719a1f09b4036c0a31d9ed4888e09c905264f64" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# JuliaTokyo #2 \u5c0e\u5165\u30bb\u30c3\u30b7\u30e7\u30f3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2014\u5e749\u670827\u65e5\u958b\u50ac" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Julia\u3068\u306f\uff1f\n", "\n", "\u6280\u8853\u8a08\u7b97\u306e\u305f\u3081\u306e\u65b0\u3057\u3044\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u3059\u3002\n", "\n", "c.f. [Julia\u306e\u3053\u308c\u307e\u3067\u3068\u3053\u308c\u304b\u3089 // SpeakersDeck](https://speakerdeck.com/sorami/juliafalsekoremadetokorekara)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### JuliaTokyo \u3068\u306f\uff1f\n", "\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u300cJulia\u300d\u306e\u96c6\u3044\u3067\u3059\u3002\u307e\u3060\u307e\u3060\u5229\u7528\u8005\u306e\u5c11\u306a\u3044Julia\u306b\u3064\u3044\u3066\u3001\u69d8\u3005\u306a\u77e5\u898b\u3092\u5171\u6709\u3059\u308b\u3053\u3068\u3092\u76ee\u7684\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n", "\n", "* [JuliaTokyo #1](http://juliatokyo.connpass.com/event/6891/)\n", "* [JuliaTokyo #2](http://juliatokyo.connpass.com/event/8010/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### JuliaTokyo #2 \u30a2\u30f3\u30b1\u30fc\u30c8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "JuliaTokyo #2 \u3067\u306f\u3001\u53c2\u52a0\u8005\u306e\u65b9\u3005\u3078\u5229\u7528\u8a00\u8a9e\u306b\u3064\u3044\u3066\u306e\u30a2\u30f3\u30b1\u30fc\u30c8\u3092\u884c\u3044\u307e\u3057\u305f\u3002\u4ee5\u4e0b\u304c\u7d50\u679c\u3067\u3059;\n", "\n", "\u7dcf\u56de\u7b54\u8005\u6570 81\u540d \uff08\u8907\u6570\u56de\u7b54\u53ef\uff09\n", "\n", "```\n", " 50 Python\n", " 36 R\n", " 25 Java\n", " 20 Ruby\n", " 20 C++\n", " 19 \u305d\u306e\u4ed6\n", " 18 Excel\n", " 15 C\n", " 14 Julia\n", " 6 Visual Basic\n", " 6 Perl\n", " 6 Matlab / Octave\n", " 5 Scala\n", " 2 Fortran\n", " 2 Clojure\n", " 1 F#\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## \u74b0\u5883\u69cb\u7bc9\n", "\n", "\u3053\u306e\u5c0e\u5165\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u306f\u3001[**IJulia**](https://github.com/JuliaLang/IJulia.jl)\u306enotebook\u3092\u4f7f\u3063\u3066\u8aac\u660e\u3092\u884c\u3044\u307e\u3059\u3002IJulia\u306f\u3001iPython\u3092Julia\u3067\u5229\u7528\u3059\u308b\u305f\u3081\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u3059\u3002\n", "\n", "IJulia\uff08iPython\uff09\u306e\u4ed6\u306b\u3082\n", "\n", "* [**Light Table**](http://www.lighttable.com/)\uff08[\u30d7\u30e9\u30b0\u30a4\u30f3](https://github.com/one-more-minute/Julia-LT)\u3001[Juno](https://github.com/one-more-minute/Juno-LT)\uff09\n", "* [**Julia Studio**](http://forio.com/labs/julia-studio/)\n", "* [**LiClipse**](http://brainwy.github.io/liclipse/) Eclipse\u3092\u30d9\u30fc\u30b9\u306b\u3057\u305f\u7d71\u5408\u958b\u767a\u74b0\n", "* [**ESS**](https://github.com/emacs-ess/ESS/wiki/Julia) (Emacs Speaks Statistics)\n", "\n", "\u3068\u3044\u3063\u305f\u74b0\u5883\u3067\u5229\u7528\u3067\u304d\u307e\u3059\u3002\n", "\n", "Vim\u3001Emacs\u3001Sublime Text\u3001Textmate\u3001Notepad++\u3001Kate\u3068\u3044\u3063\u305f\u30a8\u30c7\u30a3\u30bf\u306b\u306f\u3001[Julia\u306e\u7de8\u96c6\u30e2\u30fc\u30c9\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059](https://github.com/JuliaLang/julia/tree/master/contrib)\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Julia\u672c\u4f53\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[\u516c\u5f0f\u30b5\u30a4\u30c8](http://julialang.org/downloads/)\u3067\u3001\u5b89\u5b9a\u7248\u304a\u3088\u3073\u958b\u767a\u7248\uff08Nightly builds\uff09\u306e\u30d0\u30a4\u30ca\u30ea\u304c\u3001Windows\u3001Mac OS X\u3001Ubuntu\u5411\u3051\u306b\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n", "\n", "Max OS X\u306ehomebrew\u3084Debian\u306eapt\u3068\u3044\u3063\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u6700\u65b0\u5b89\u5b9a\u7248\u3088\u308a\u53e4\u3044\u53ef\u80fd\u6027\u3082\u3042\u308b\u306e\u3067\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\u3002\n", "\n", "\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u5b9f\u65bd\u6642\u306e\u6700\u65b0\u5b89\u5b9a\u7248\u306f\u30012014\u5e748\u6708\u306b\u516c\u958b\u3055\u308c\u305f **v0.3** \u3067\u3059\u3002\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u4e00\u90e8\u4e92\u63db\u6027\u306e\u306a\u3044\u90e8\u5206\u3082\u3042\u308a\u307e\u3059\u306e\u3067\u3001\u3054\u6ce8\u610f\u304f\u3060\u3055\u3044\u3002\n", "\n", "\u30d0\u30a4\u30ca\u30ea\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u6a19\u6e96REPL\u304c\u8d77\u52d5\u3057\u307e\u3059\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```\n", "$ julia # Julia\u3092\u8d77\u52d5\n", " _\n", " _ _ _(_)_ | A fresh approach to technical computing\n", " (_) | (_) (_) | Documentation: http://docs.julialang.org\n", " _ _ _| |_ __ _ | Type \"help()\" for help.\n", " | | | | | | |/ _` | |\n", " | | |_| | | | (_| | | Version 0.3.0 (2014-08-20 20:43 UTC)\n", " _/ |\\__'_|_|_|\\__'_| | Official http://julialang.org/ release\n", "|__/ | x86_64-apple-darwin13.3.0\n", "\n", "julia>\n", "\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### IJulia\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u307e\u305a\u3001iPython\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u8272\u3005\u306aPython\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u307e\u3068\u3081\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u308c\u308b[Anaconda](http://continuum.io/downloads)\u3092\u4f7f\u3046\u3068\u4fbf\u5229\u3067\u3059\u3002\n", "\n", "\u6b21\u306b\u3001Julia\u306eREPL\u304b\u3089\n", "```\n", "Pkg.add(\"IJulia\")\n", "```\n", "\u3068\u3059\u308b\u3068\u3001IJulia\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\u3002\n", "\n", "\n", "\u30a8\u30e9\u30fc\u306e\u5834\u5408\u306f\n", "```\n", "Pkg.update(\"IJulia\")\n", "```\n", "\u3084\n", "```\n", "Pkg.build(\"IJulia\")\n", "```\n", "\u3092\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\n", "\n", "\n", "IJulia\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b\u3068\u3001\u30b7\u30a7\u30eb\u304b\u3089\n", "```\n", "$ ipython notebook --profile julia\n", "```\n", "\u3068\u5b9f\u884c\u3059\u308b\u304b\u3001Julia\u306eREPL\u304b\u3089\n", "```\n", "julia> using IJulia\n", "julia> notebook()\n", "```\n", "\u3068\u3059\u308b\u3053\u3068\u3067IJulia notebook\u3092\u8d77\u52d5\u3067\u304d\u307e\u3059\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3061\u306a\u307f\u306b\u3053\u308c\u304b\u3089\u306f\u3001iPython\u304b\u3089Python\u90e8\u5206\u3092\u9664\u3044\u305f\u3082\u306e\u304c[**Jupyter**](http://jupyter.org/)\u3068\u3044\u3046\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306a\u308b\u306e\u3067\u3001Julia\u3082\u3053\u3061\u3089\u3092\u4f7f\u3046\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## \u57fa\u790e\u6587\u6cd5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u7c21\u5358\u306a\u8a08\u7b97" ] }, { "cell_type": "code", "collapsed": false, "input": [ "1 + 1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "2" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "+(1, 1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "2" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": true, "input": [ "methods(+)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "125 methods for generic function +:" ], "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "# 125 methods for generic function \"+\":\n", "+(x::Bool) at bool.jl:36\n", "+(x::Bool,y::Bool) at bool.jl:39\n", "+(y::FloatingPoint,x::Bool) at bool.jl:49\n", "+(A::BitArray{N},B::BitArray{N}) at bitarray.jl:848\n", "+(A::Union(SubArray{Bool,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)},DenseArray{Bool,N}),B::Union(SubArray{Bool,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)},DenseArray{Bool,N})) at array.jl:797\n", "+{S,T}(A::Union(DenseArray{S,N},SubArray{S,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)}),B::Union(SubArray{T,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)},DenseArray{T,N})) at array.jl:719\n", "+{T<:Union(Int8,Int16,Int32)}(x::T<:Union(Int8,Int16,Int32),y::T<:Union(Int8,Int16,Int32)) at int.jl:16\n", "+{T<:Union(Uint8,Uint16,Uint32)}(x::T<:Union(Uint8,Uint16,Uint32),y::T<:Union(Uint8,Uint16,Uint32)) at int.jl:20\n", "+(x::Int64,y::Int64) at int.jl:33\n", "+(x::Uint64,y::Uint64) at int.jl:34\n", "+(x::Int128,y::Int128) at int.jl:35\n", "+(x::Uint128,y::Uint128) at int.jl:36\n", "+(x::Float32,y::Float32) at float.jl:119\n", "+(x::Float64,y::Float64) at float.jl:120\n", "+(z::Complex{T<:Real},w::Complex{T<:Real}) at complex.jl:110\n", "+(x::Real,z::Complex{T<:Real}) at complex.jl:120\n", "+(z::Complex{T<:Real},x::Real) at complex.jl:121\n", "+(x::Rational{T<:Integer},y::Rational{T<:Integer}) at rational.jl:113\n", "+(x::Char,y::Char) at char.jl:23\n", "+(x::Char,y::Integer) at char.jl:26\n", "+(x::Integer,y::Char) at char.jl:27\n", "+(a::Float16,b::Float16) at float16.jl:132\n", "+(x::BigInt,y::BigInt) at gmp.jl:194\n", "+(a::BigInt,b::BigInt,c::BigInt) at gmp.jl:217\n", "+(a::BigInt,b::BigInt,c::BigInt,d::BigInt) at gmp.jl:223\n", "+(a::BigInt,b::BigInt,c::BigInt,d::BigInt,e::BigInt) at gmp.jl:230\n", "+(x::BigInt,c::Uint64) at gmp.jl:242\n", "+(c::Uint64,x::BigInt) at gmp.jl:246\n", "+(c::Union(Uint64,Uint8,Uint16,Uint32),x::BigInt) at gmp.jl:247\n", "+(x::BigInt,c::Union(Uint64,Uint8,Uint16,Uint32)) at gmp.jl:248\n", "+(x::BigInt,c::Union(Int8,Int16,Int32,Int64)) at gmp.jl:249\n", "+(c::Union(Int8,Int16,Int32,Int64),x::BigInt) at gmp.jl:250\n", "+(x::BigFloat,c::Uint64) at mpfr.jl:147\n", "+(c::Uint64,x::BigFloat) at mpfr.jl:151\n", "+(c::Union(Uint64,Uint8,Uint16,Uint32),x::BigFloat) at mpfr.jl:152\n", "+(x::BigFloat,c::Union(Uint64,Uint8,Uint16,Uint32)) at mpfr.jl:153\n", "+(x::BigFloat,c::Int64) at mpfr.jl:157\n", "+(c::Int64,x::BigFloat) at mpfr.jl:161\n", "+(x::BigFloat,c::Union(Int8,Int16,Int32,Int64)) at mpfr.jl:162\n", "+(c::Union(Int8,Int16,Int32,Int64),x::BigFloat) at mpfr.jl:163\n", "+(x::BigFloat,c::Float64) at mpfr.jl:167\n", "+(c::Float64,x::BigFloat) at mpfr.jl:171\n", "+(c::Float32,x::BigFloat) at mpfr.jl:172\n", "+(x::BigFloat,c::Float32) at mpfr.jl:173\n", "+(x::BigFloat,c::BigInt) at mpfr.jl:177\n", "+(c::BigInt,x::BigFloat) at mpfr.jl:181\n", "+(x::BigFloat,y::BigFloat) at mpfr.jl:328\n", "+(a::BigFloat,b::BigFloat,c::BigFloat) at mpfr.jl:339\n", "+(a::BigFloat,b::BigFloat,c::BigFloat,d::BigFloat) at mpfr.jl:345\n", "+(a::BigFloat,b::BigFloat,c::BigFloat,d::BigFloat,e::BigFloat) at mpfr.jl:352\n", "+(x::MathConst{sym},y::MathConst{sym}) at constants.jl:23\n", "+{T<:Number}(x::T<:Number,y::T<:Number) at promotion.jl:188\n", "+{T<:FloatingPoint}(x::Bool,y::T<:FloatingPoint) at bool.jl:46\n", "+(x::Number,y::Number) at promotion.jl:158\n", "+(x::Integer,y::Ptr{T}) at pointer.jl:68\n", "+(x::Bool,A::AbstractArray{Bool,N}) at array.jl:767\n", "+(x::Number) at operators.jl:71\n", "+(r1::OrdinalRange{T,S},r2::OrdinalRange{T,S}) at operators.jl:325\n", "+{T<:FloatingPoint}(r1::FloatRange{T<:FloatingPoint},r2::FloatRange{T<:FloatingPoint}) at operators.jl:331\n", "+(r1::FloatRange{T<:FloatingPoint},r2::FloatRange{T<:FloatingPoint}) at operators.jl:348\n", "+(r1::FloatRange{T<:FloatingPoint},r2::OrdinalRange{T,S}) at operators.jl:349\n", "+(r1::OrdinalRange{T,S},r2::FloatRange{T<:FloatingPoint}) at operators.jl:350\n", "+(x::Ptr{T},y::Integer) at pointer.jl:66\n", "+{S,T<:Real}(A::Union(DenseArray{S,N},SubArray{S,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)}),B::Range{T<:Real}) at array.jl:727\n", "+{S<:Real,T}(A::Range{S<:Real},B::Union(SubArray{T,N,A<:DenseArray{T,N},I<:(Union(Range{Int64},Int64)...,)},DenseArray{T,N})) at array.jl:736\n", "+(A::AbstractArray{Bool,N},x::Bool) at array.jl:766\n", "+{Tv,Ti}(A::SparseMatrixCSC{Tv,Ti},B::SparseMatrixCSC{Tv,Ti}) at sparse/sparsematrix.jl:530\n", "+{TvA,TiA,TvB,TiB}(A::SparseMatrixCSC{TvA,TiA},B::SparseMatrixCSC{TvB,TiB}) at sparse/sparsematrix.jl:522\n", "+(A::SparseMatrixCSC{Tv,Ti<:Integer},B::Array{T,N}) at sparse/sparsematrix.jl:621\n", "+(A::Array{T,N},B::SparseMatrixCSC{Tv,Ti<:Integer}) at sparse/sparsematrix.jl:623\n", "+(A::SymTridiagonal{T},B::SymTridiagonal{T}) at linalg/tridiag.jl:45\n", "+(A::Tridiagonal{T},B::Tridiagonal{T}) at linalg/tridiag.jl:207\n", "+(A::Tridiagonal{T},B::SymTridiagonal{T}) at linalg/special.jl:99\n", "+(A::SymTridiagonal{T},B::Tridiagonal{T}) at linalg/special.jl:98\n", "+{T,MT,uplo}(A::Triangular{T,MT,uplo,IsUnit},B::Triangular{T,MT,uplo,IsUnit}) at linalg/triangular.jl:10\n", "+{T,MT,uplo1,uplo2}(A::Triangular{T,MT,uplo1,IsUnit},B::Triangular{T,MT,uplo2,IsUnit}) at linalg/triangular.jl:11\n", "+(Da::Diagonal{T},Db::Diagonal{T}) at linalg/diagonal.jl:44\n", "+(A::Bidiagonal{T},B::Bidiagonal{T}) at linalg/bidiag.jl:92\n", "+{T}(B::BitArray{2},J::UniformScaling{T}) at linalg/uniformscaling.jl:26\n", "+(A::Diagonal{T},B::Bidiagonal{T}) at linalg/special.jl:89\n", "+(A::Bidiagonal{T},B::Diagonal{T}) at linalg/special.jl:90\n", "+(A::Diagonal{T},B::Tridiagonal{T}) at linalg/special.jl:89\n", "+(A::Tridiagonal{T},B::Diagonal{T}) at linalg/special.jl:90\n", "+(A::Diagonal{T},B::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit}) at linalg/special.jl:89\n", "+(A::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit},B::Diagonal{T}) at linalg/special.jl:90\n", "+(A::Diagonal{T},B::Array{T,2}) at linalg/special.jl:89\n", "+(A::Array{T,2},B::Diagonal{T}) at linalg/special.jl:90\n", "+(A::Bidiagonal{T},B::Tridiagonal{T}) at linalg/special.jl:89\n", "+(A::Tridiagonal{T},B::Bidiagonal{T}) at linalg/special.jl:90\n", "+(A::Bidiagonal{T},B::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit}) at linalg/special.jl:89\n", "+(A::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit},B::Bidiagonal{T}) at linalg/special.jl:90\n", "+(A::Bidiagonal{T},B::Array{T,2}) at linalg/special.jl:89\n", "+(A::Array{T,2},B::Bidiagonal{T}) at linalg/special.jl:90\n", "+(A::Tridiagonal{T},B::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit}) at linalg/special.jl:89\n", "+(A::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit},B::Tridiagonal{T}) at linalg/special.jl:90\n", "+(A::Tridiagonal{T},B::Array{T,2}) at linalg/special.jl:89\n", "+(A::Array{T,2},B::Tridiagonal{T}) at linalg/special.jl:90\n", "+(A::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit},B::Array{T,2}) at linalg/special.jl:89\n", "+(A::Array{T,2},B::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit}) at linalg/special.jl:90\n", "+(A::SymTridiagonal{T},B::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit}) at linalg/special.jl:98\n", "+(A::Triangular{T,S<:AbstractArray{T,2},UpLo,IsUnit},B::SymTridiagonal{T}) at linalg/special.jl:99\n", "+(A::SymTridiagonal{T},B::Array{T,2}) at linalg/special.jl:98\n", "+(A::Array{T,2},B::SymTridiagonal{T}) at linalg/special.jl:99\n", "+(A::Diagonal{T},B::SymTridiagonal{T}) at linalg/special.jl:107\n", "+(A::SymTridiagonal{T},B::Diagonal{T}) at linalg/special.jl:108\n", "+(A::Bidiagonal{T},B::SymTridiagonal{T}) at linalg/special.jl:107\n", "+(A::SymTridiagonal{T},B::Bidiagonal{T}) at linalg/special.jl:108\n", "+{T<:Number}(x::AbstractArray{T<:Number,N}) at abstractarray.jl:362\n", "+(A::AbstractArray{T,N},x::Number) at array.jl:770\n", "+(x::Number,A::AbstractArray{T,N}) at array.jl:771\n", "+(J1::UniformScaling{T<:Number},J2::UniformScaling{T<:Number}) at linalg/uniformscaling.jl:25\n", "+(J::UniformScaling{T<:Number},B::BitArray{2}) at linalg/uniformscaling.jl:27\n", "+(J::UniformScaling{T<:Number},A::AbstractArray{T,2}) at linalg/uniformscaling.jl:28\n", "+(J::UniformScaling{T<:Number},x::Number) at linalg/uniformscaling.jl:29\n", "+(x::Number,J::UniformScaling{T<:Number}) at linalg/uniformscaling.jl:30\n", "+{TA,TJ}(A::AbstractArray{TA,2},J::UniformScaling{TJ}) at linalg/uniformscaling.jl:33\n", "+{T}(a::HierarchicalValue{T},b::HierarchicalValue{T}) at pkg/resolve/versionweight.jl:19\n", "+(a::VWPreBuildItem,b::VWPreBuildItem) at pkg/resolve/versionweight.jl:82\n", "+(a::VWPreBuild,b::VWPreBuild) at pkg/resolve/versionweight.jl:120\n", "+(a::VersionWeight,b::VersionWeight) at pkg/resolve/versionweight.jl:164\n", "+(a::FieldValue,b::FieldValue) at pkg/resolve/fieldvalue.jl:41\n", "+(a::Vec2,b::Vec2) at graphics.jl:60\n", "+(bb1::BoundingBox,bb2::BoundingBox) at graphics.jl:123\n", "+(a,b,c) at operators.jl:82\n", "+(a,b,c,xs...) at operators.jl:83" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": true, "input": [ "1 + 2 * 3" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "7" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(1) # \u578b\u3092\u8abf\u3079\u308b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "Int64" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(1.0)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "Float64" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "1 / 3 # \u9664\u7b97\u306e\u7d50\u679c\u306f\u5fc5\u305a\u6d6e\u52d5\u5c0f\u6570\u70b9\u6570" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "0.3333333333333333" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "3 \\ 1 # \u53f3\u8fba\u3092\u5de6\u8fba\u304c\u5272\u308b\u9664\u7b97" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "0.3333333333333333" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "1 // 3 # \u6709\u7406\u6570" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "1//3" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(1 // 3)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "Rational{Int64} (constructor with 1 method)" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "names(1 // 3) # \u578b\u306e\u69cb\u9020\u3092\u8abf\u3079\u308b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 11, "text": [ "2-element Array{Symbol,1}:\n", " :num\n", " :den" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "(1 + 2im) * (2 - 3im) # \u8907\u7d20\u6570" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 12, "text": [ "8 + 1im" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(1 + 2im)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "Complex{Int64} (constructor with 1 method)" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "names(1 + 2im)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "2-element Array{Symbol,1}:\n", " :re\n", " :im" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "sqrt(-1 + 0im)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "0.0 + 1.0im" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "2 ^ 8 # \u3079\u304d\u4e57" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "256" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "0.314e1 # \u79d1\u5b66\u6280\u8853\u8868\u8a18" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 17, "text": [ "3.14" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "1_000_000 # \u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306b\u3088\u308b\u6570\u5024\u306e\u533a\u5207\u308a\u304c\u53ef\u80fd" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "1000000" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "e # \u3042\u3089\u304b\u3058\u3081\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u6570\u5024" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "e = 2.7182818284590..." ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "\u03c0" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "\u03c0 = 3.1415926535897..." ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "golden" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "\u03c6 = 1.6180339887498..." ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(golden)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "MathConst{:\u03c6} (constructor with 1 method)" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "pi" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "\u03c0 = 3.1415926535897..." ] } ], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u3061\u306a\u307f\u306b\u30bf\u30d6\u30ad\u30fc\u3067\u88dc\u5b8c\u304c\u884c\u3048\u308b\u304c\u3001\u3053\u308c\u306fLaTex\u8a18\u6cd5\u306e\u5909\u63db\u306b\u3082\u4f7f\u3048\u308b\u3002\n", "```\n", "> \\pi TAB\n", "```" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\\pi" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Unicode Input \u2014 Julia Language 0.4.0-dev documentation](http://docs.julialang.org/en/latest/manual/unicode-input/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u5909\u6570" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = 10" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "10" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "\u3042 = 10" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "10" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "pi = 3" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "3" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "Warning: imported binding for pi overwritten in module Main\n" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "pi" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 28, "text": [ "3" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "2pi # *\u3092\u7701\u7565\u3067\u304d\u308b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "6" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "2x^2 + 4x + 1 # \u30b7\u30f3\u30d7\u30eb\u306b\u591a\u9805\u5f0f\u3092\u8a18\u8ff0\u3067\u304d\u308b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "241" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u30b9\u30bf\u30a4\u30eb\u898f\u5247\n", "\n", "* \u5909\u6570\u540d\u306f\u5c0f\u6587\u5b57\u3002\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306e\u4f7f\u7528\u306f\u63a8\u5968\u3055\u308c\u306a\u3044\n", "* \u578b\u306e\u540d\u524d\u306f\u3001\u5927\u6587\u5b57\u3067\u59cb\u307e\u308b\u30ad\u30e3\u30e1\u30eb\u30b1\u30fc\u30b9\n", "* \u95a2\u6570\u3084\u30de\u30af\u30ed\u306e\u540d\u524d\u306f\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306a\u3057\u306e\u5c0f\u6587\u5b57\n", "* \u7834\u58ca\u7684\u306a\u95a2\u6570\u306b\u306f\u3001\u540d\u524d\u306e\u6700\u5f8c\u306b!\u3092\u3064\u3051\u308b\n", "\n", "c.f. \n", "* [Style Guide \u2014 Julia Language documentation](http://julia.readthedocs.org/en/latest/manual/style-guide/)\n", "* [Variables \u2014 Julia Language documentation](http://julia.readthedocs.org/en/latest/manual/variables/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u6587\u5b57\u5217\u3001\u8f9e\u66f8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "str1 = \"This is a string.\"" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "\"This is a string.\"" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(str1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "ASCIIString (constructor with 2 methods)" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "str2 = \"\u3053\u308c\u306f\u6587\u5b57\u5217\u3067\u3059\u3002\"" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "\"\u3053\u308c\u306f\u6587\u5b57\u5217\u3067\u3059\u3002\"" ] } ], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "str2[1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "'\u3053'" ] } ], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "typeof(str2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "UTF8String (constructor with 2 methods)" ] } ], "prompt_number": 35 }, { "cell_type": "code", "collapsed": false, "input": [ "str3 = \"\\u2200 x \\u2203 y s.t. f(y) > x\"" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 36, "text": [ "\"\u2200 x \u2203 y s.t. f(y) > x\"" ] } ], "prompt_number": 36 }, { "cell_type": "code", "collapsed": false, "input": [ "str4 = \"1 + 1 = $(1 + 1)\" # \u30a4\u30f3\u30bf\u30fc\u30dd\u30ec\u30fc\u30b7\u30e7\u30f3" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "\"1 + 1 = 2\"" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "print(\"Hello World!\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Hello World!" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "println(\"Hello Julia!\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Hello Julia!\n" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "dict = [\"one\"=> 1, \"two\"=> 2, \"three\"=> 3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 40, "text": [ "Dict{ASCIIString,Int64} with 3 entries:\n", " \"two\" => 2\n", " \"one\" => 1\n", " \"three\" => 3" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "dict = [\"one\"=> 1, \"two\"=> 2, \"three\"=> 3.0]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "Dict{ASCIIString,Any} with 3 entries:\n", " \"two\" => 2\n", " \"one\" => 1\n", " \"three\" => 3.0" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "dict[\"one\"]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "1" ] } ], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u914d\u5217\u306a\u3069" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = [1, 2, 3] # Int64" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 43, "text": [ "3-element Array{Int64,1}:\n", " 1\n", " 2\n", " 3" ] } ], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "x[1] # Index\u306f1\u304b\u3089\u59cb\u307e\u308b" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "1" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "x[0]" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "BoundsError()\nwhile loading In[45], in expression starting on line 1", "output_type": "pyerr", "traceback": [ "BoundsError()\nwhile loading In[45], in expression starting on line 1", "", " in getindex at /opt/homebrew-cask/Caskroom/julia/0.3.0/Julia-0.3.0.app/Contents/Resources/julia/lib/julia/sys.dylib (repeats 2 times)" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "x[2:3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "2-element Array{Int64,1}:\n", " 2\n", " 3" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "x[end]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 47, "text": [ "3" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "[1, 2, \"Hello\"] # Any" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 48, "text": [ "3-element Array{Any,1}:\n", " 1 \n", " 2 \n", " \"Hello\"" ] } ], "prompt_number": 48 }, { "cell_type": "code", "collapsed": false, "input": [ "[1 2 3] # 1x3" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 49, "text": [ "1x3 Array{Int64,2}:\n", " 1 2 3" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "matrix = [1 4 7; 2 5 8; 3 6 9]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 50, "text": [ "3x3 Array{Int64,2}:\n", " 1 4 7\n", " 2 5 8\n", " 3 6 9" ] } ], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [ "matrix[1,3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 51, "text": [ "7" ] } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [ "[1 2 3] * [1,2,3]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 52, "text": [ "1-element Array{Int64,1}:\n", " 14" ] } ], "prompt_number": 52 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Multi-dimensional Arrays \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/arrays/)\n", "* [Linear algebra \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/linear-algebra/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u5236\u5fa1\u69cb\u6587" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# if /else\n", "\n", "x = 1\n", "\n", "if x == 1\n", " println(\"One!\")\n", "elseif x == 2\n", " println(\"Two!\")\n", "else\n", " println(\"Not One or Two!\")\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "One!\n" ] } ], "prompt_number": 53 }, { "cell_type": "code", "collapsed": false, "input": [ "# for\n", "\n", "for i = 1:5\n", " println(i)\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "2\n", "3\n", "4\n", "5\n" ] } ], "prompt_number": 54 }, { "cell_type": "code", "collapsed": false, "input": [ "for str in [\"foo\",\"bar\",\"baz\"]\n", " println(str)\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "foo\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "bar\n", "baz\n" ] } ], "prompt_number": 55 }, { "cell_type": "code", "collapsed": false, "input": [ "for i = 1:2, j = 3:4\n", " println((i, j))\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "(1" ] }, { "output_type": "stream", "stream": "stdout", "text": [ ",3)\n", "(1,4)\n", "(2,3)\n", "(2,4)\n" ] } ], "prompt_number": 56 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Control Flow \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/control-flow/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u95a2\u6570" ] }, { "cell_type": "code", "collapsed": false, "input": [ "square(x) = x * x" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 57, "text": [ "square (generic function with 1 method)" ] } ], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": [ "square(3)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 58, "text": [ "9" ] } ], "prompt_number": 58 }, { "cell_type": "code", "collapsed": false, "input": [ "f = (x) -> 2x^2 + 4x + 1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 59, "text": [ "(anonymous function)" ] } ], "prompt_number": 59 }, { "cell_type": "code", "collapsed": false, "input": [ "f(2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 60, "text": [ "17" ] } ], "prompt_number": 60 }, { "cell_type": "code", "collapsed": false, "input": [ "# FizzBuzz\n", "\n", "function fizzbuzz(x::Int64) # \u5f15\u6570\u306e\u578b\u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\n", " println(\"This is Int64 fizzbuzz\")\n", " for i = 1:x\n", " if (i % 3 == 0) && (i % 5 == 0)\n", " println(\"FizzBuzz\")\n", " elseif i % 3 == 0\n", " println(\"Fizz\")\n", " elseif i % 5 == 0\n", " println(\"Buzz\")\n", " else\n", " println(i)\n", " end\n", " end\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "fizzbuzz (generic function with 1 method)" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "# \u540c\u3058\u540d\u524d\u3067\u9055\u3046\u5f15\u6570\u578b\u306e\u95a2\u6570\n", "function fizzbuzz(x::Float64)\n", " println(\"This is Float64 fizzbuzz\")\n", " for i = 1:x\n", " if (i % 3 == 0) && (i % 5 == 0)\n", " println(\"FizzBuzz\")\n", " elseif i % 3 == 0\n", " println(\"Fizz\")\n", " elseif i % 5 == 0\n", " println(\"Buzz\")\n", " else\n", " println(i)\n", " end\n", " end\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "fizzbuzz (generic function with 2 methods)" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "function fizzbuzz(x)\n", " println(\"$(x) is neither Int or Float.\")\n", "end" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "fizzbuzz (generic function with 3 methods)" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "fizzbuzz(10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "This is Int64 fizzbuzz\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "2\n", "Fizz\n", "4\n", "Buzz\n", "Fizz\n", "7\n", "8\n", "Fizz\n", "Buzz\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "fizzbuzz(10.0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "This is Float64 fizzbuzz\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "1.0\n", "2.0\n", "Fizz\n", "4.0\n", "Buzz\n", "Fizz\n", "7.0\n", "8.0\n", "Fizz\n", "Buzz\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "fizzbuzz(10 + 10im)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 + 10im is neither Int or Float.\n" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "fizzbuzz(\"String\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "String is neither Int or Float.\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Functions \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/functions/)\n", "* [Methods \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/methods/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Performance Tips \u2014 Julia Language 0.3.2-pre documentation](http://docs.julialang.org/en/release-0.3/manual/performance-tips/)\n", "* [Fast Numeric Computation in Julia](http://julialang.org/blog/2013/09/fast-numeric/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u767a\u5c55\u7684\u306a\u8a71\u984c" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Types \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/types/)\n", "* http://nbviewer.ipython.org/gist/StefanKarpinski/b8fe9dbb36c1427b9f22\n", "* [Metaprogramming \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/metaprogramming/)\n", "* [Parallel Computing \u2014 Julia Language documentation](http://docs.julialang.org/en/release-0.3/manual/parallel-computing/)\n", "* [JuliaCon 2014](http://juliacon.org/)\n", "* ..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Appendix" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Julia\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](http://docs.julialang.org/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306a\u3069\n", "\n", "* [Julia \u672cVol.1](http://yomichi.hateblo.jp/entry/2014/01/05/160714)\n", "* [The Julia Express](http://bogumilkaminski.pl/files/julia_express.pdf)\n", "* [Introduction to Julia - Part 1 | SciPy 2014 | David Sanders](https://www.youtube.com/watch?v=vWkgEddb4-A) *video*\n", "* [SciPy 2014 Tutorial](https://www.youtube.com/watch?v=vWkgEddb4-A)\n", "* [Learn julia in Y Minutes](http://learnxinyminutes.com/docs/julia/)\n", "* [Julia Studio \u2013 Forio](http://forio.com/labs/julia-studio/tutorials/)\n", "* [\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e Julia \u63a2\u8a2a - Moriturus te saluto](http://dsng.hatenablog.com/entry/2014/01/27/173154)\n", "* [Julia tutorial at MIT](http://julialang.org/blog/2013/03/julia-tutorial-MIT/) *video*\n", "* [johnmyleswhite/DataGotham.jl](https://github.com/johnmyleswhite/DataGotham.jl) *iPython Notebook*\n", "* [JuliaX/JuliaTutorial](https://github.com/JuliaX/JuliaTutorial) *iPython Notebook*\n", "* [Julia Helps](http://blog.leahhanson.us/julia-helps.html) *\u4fbf\u5229\u306a\u6a5f\u80fd\u306e\u7d39\u4ecb*\n", "* [Noteworthy Differences from other Languages](http://docs.julialang.org/en/release-0.3/manual/noteworthy-differences/) *MATLAB, R, Python\u3068\u306e\u7279\u7b46\u3059\u3079\u304d\u9055\u3044*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### \u60c5\u5831\u6e90\n", "\n", "* [juliabloggers.com - A Julia Language Blog Aggregator](http://www.juliabloggers.com/)\n", "* [The Julia Language Subreddit](http://www.reddit.com/r/Julia/)\n", "\n", "#### Q&A\n", "* [Newest 'julia-lang' Questions - Stack Overflow](http://stackoverflow.com/questions/tagged/julia-lang)\n", "* [Julia - Qiita](http://qiita.com/tags/julia)\n", "* [Julia (programming language) - Quora](http://www.quora.com/Julia-programming-language)\n", "\n", "#### SNS\n", "* [Twitter / Search - julialang](https://twitter.com/search?q=julialang&src=typd&f=realtime)\n", "* [Julia - Community - Google+](https://plus.google.com/communities/111295162646766639102)\n", "\n", "#### GitHub\n", "\n", "* [Issues \u00b7 JuliaLang/julia](https://github.com/JuliaLang/julia/issues)\n", "* [Pull Requests \u00b7 JuliaLang/julia](https://github.com/JuliaLang/julia/pulls)\n", "\n", "#### \u30e1\u30fc\u30ea\u30f3\u30b0\u30ea\u30b9\u30c8\n", "\n", "* [julia-users - Google Groups](https://groups.google.com/forum/?fromgroups=#!forum/julia-users)\n", "* [julia-dev - Google Groups](https://groups.google.com/forum/?fromgroups=#!forum/julia-dev)\n", "* [julia-stats - Google Groups](https://groups.google.com/forum/?fromgroups=#!forum/julia-stats)\n", "* [julia-opt - Google Groups](https://groups.google.com/forum/?fromgroups=#!forum/julia-opt)\n", "* [julia-tokyo - Google Groups](https://groups.google.com/forum/#!forum/julia-tokyo)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Julia Logo](logo.png)" ] } ], "metadata": {} } ] }