関数型まつり2025
スタッフセッション50分

Julia という言語について

antimon2 後藤 俊介 antimon2

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 言語処理系(コンパイラー、インタープリターなど)
  • 入門

セッションの概要

2018年にver.1.0がリリースされた新言語 Julia について、自己の経緯をベースに関数型プログラミング(以降 FP と略記)の観点で紹介・解説します。

Julia はマルチパラダイムを謳っており、特別 FP に特化した言語というわけではありません。所謂『関数型言語』と呼ばれる他言語にはよくあるけれど Julia にはない機能・言語仕様もあります。一方で、動的言語でありながら構造的に設計された型システムを持ち、多重ディスパッチという機構とそこから導かれる強力なポリモーフィズム、また
Lisp 由来の『真のマクロ』などのメタプログラミング機構を持っています。その辺りを足がかりに、以下のような内容について紹介・解説します。

  • FP の観点で見る Julia の言語仕様(Julia の型システム、Julia の関数、イテレータ、並行・並列プログラミング、メタプログラミング等)
  • Julia で FP するためのエッセンス(関数合成、高階関数、パイプライン、等)
  • Julia でより FP するためのサードパーティライブラリ(パッケージ)の紹介(部品化+組み立て機構、モナドのエミュレーション、パターンマッチング、等)