by shigemk2

当面は技術的なことしか書かない

Guraプログラミング言語の紹介 #lldiver

イテレータ + イテレータ = 足し算をするイテレータ
強化・発展させたイテレータ演算機能によって繰り返し処理を効率化するプログラミング言語 Gura の紹介をします。

プログラミング言語の紹介

テキストファイルを読み込み、行番号つきで表示

printf('%d: %s',
  1.., readlines('hello.c'))

要素ごとに関数を実行するイテレータ

イテレータからイテレータを生成して演算と評価を行う

  1. 繰り返し処理が簡単に書ける
  2. 並列処理が容易になるかも

  3. イテレータ生成の負荷は軽い

  4. 負荷が重いのは評価の段階

基本的な仕様

Gura Programming Language (グラ プログラミングランゲージ) プロジェクト日本語トップページ - SourceForge.JP

関数

  • block式を関数オブジェクトで受け取る
  • {block?}ならオプショナル

オブジェクト指向

コレクション リストと辞書が使える

スコープ管理 クロージャ 関数内はレキシカルスコープ

イテレータ処理

イテレータ処理 マッピングと生成

イテレータからイテレータを作るのがマッピング 暗黙的マッピングとメンバマッピング

リスト 要素がすべてメモリ上に用意 ランダムアクセスが可能

イテレータ 要素をひとつずつ生成

イテレータとリストは交換可能

イテレータを評価してリストを生成する。リストを評価してイテレータを生成。

暗黙的マッピング

普通の関数

マッピング対応関数 アトリビュート :mapをつける

暗黙的マッピング

  • 数値
  • リスト
  • イテレータ
  • 数値とイテレータ

いろいろなルールがある

メンバマッピング

関数

リストが欲しいときはアトリビュート:listをつけて呼出し

繰り返し制御構文

:iter アトリビュート

繰り返し処理の評価値がイテレータの要素値になる

for文を書いても何も実行しないで、printlnとかをはさむと実行される

拡張モジュール

  • インタプリタ本体はOSに依存しない
  • importで呼び出す

Gura Shot

www.gura-lang.org