プログラミング

昆布だしで美味しいお雑煮を作ろう

Mochi 0.2.5 以降では、メールボックスを指定してアクター起動できます。 また、アクターではなくメールボックスに直接メッセージ送信できます。 下記の種類のメールボックスを指定可能です。 KombuMailbox(Kombu の SimpleQueue ベース) ZmqInbox(ZeroMQ…

Mochi 0.2.0 をリリースしました。

(7月27日追記)0.2.5以降はこの記事で紹介した機能は削除され、それを代替する機能が追加されています。追加された機能はhttp://i2y.hatenablog.com/entry/2015/07/27/090724を参照してください。 Mochi 0.2.0 をリリースしました。 このバージョンでは、シ…

Mochi で使える便利なツールと Python ライブラリ

sloc flosse/sloc flosse/sloc · GitHub sloc はソースコード行数をカウントするツールです。多数の言語に対応しており、githubリポジトリ上の最新バージョンでは Mochi にも対応しています。 現在のgithubリポジトリ上の最新バージョンの対応言語は下記の通…

Devvr という名前のブログで Mochi が紹介されていました。

嬉しいのでリンクを貼っておきます(^_^) Mochi | Devvr

Mochi supports trailing closures from version 0.1.2

Mochi supports trailing closures from version 0.1.2. Example 1 def rmap(seq, closure): map(closure, seq) result = rmap([1, 2, 3]) -> print($1) $1 * 2 print(doall(result)) # -> 1 # -> 2 # -> 3 # => pvector([2, 4, 6]) Example 2 def foreach(s…

Mochi用のエディタモード、プラグインを誰か作ってくれないかな。。

Vim、Emacs、Sublime Text、Atom、Light Table などで Mochi が使えるようになると嬉しいです。 どなたか、作ってくれないかな。。 あと、はてなブログでシンタックスハイライトできるようになると嬉しいです。

Mochiの開発経緯

たしか1年半1年くらい前に、何がきっかけかは忘れましたが、ふと、所謂オレオレ言語を作りたいと思いました。 非常に簡単な Scheme 処理系を作ったことがあったので、 Lisp 方言を作ろうと考えました。 Lisp 方言を作る過程で、新しいプログラミング言語を習…

Mochi が Infoworld とソフトアンテナブログで紹介されました。

Mochi が Infoworld とソフトアンテナブログで紹介されました。 Functional programming piques Ruby founder, picks up Python compiler この季節にぴったりのプログラミング言語「Mochi」 Infoworld の記事では、Ruby の開発者、まつもとさんの新言語、Str…

Mochi 0.0.9 をPyPIに登録しました。

Mochi 0.0.9 を PyPI に登録しました。 mochi 0.1.2 : Python Package Index Mochi 0.0.9 では、シーケンスの各要素を順番に、メッセージとしてアクターに送信する!>演算子と!&>演算子を導入しています。 !>演算子は、右辺のアクターに左辺の値をメッセージ…

PythonプログラマのためのMochi入門

# 元ネタはPythonプログラマのためのErlang入門←Erlang for Python Programmersの翻訳 MochiはPythonとよく似た構文の「Python上で動作する」、動的型付けの関数型言語だ。 この文章では、PythonとMochiで書いた階乗を計算する関数をとりあげ、関数型言語の…

Mochi を PyPI に登録

Mochi を PyPI に登録しました。 mochi 0.0.1 : Python Package Index mochi 0.0.1 : Python Package Index これにより、 $ pip install mochi でインストールできるようになりました。 インストール後は $ mochi >>> で REPL が立ち上がります。 気が向いた…

Mochi

Pythonと似た構文を持つプログラミング言語Mochiを作りました。 Purpleと同様にPython仮想マシン上で動作します。 i2y/mochi i2y/mochi · GitHub Purpleでシダを描いてみて、やっぱり前置記法では数式中心のコードは書きづらいなぁと思い、Purpleとは別にPyt…

Python Cookbook のオンラインバージョン

めも。 Python Cookbook

「プログラムでシダを描画する」を Purple で描画する

「プログラムでシダを描画する」をPythonで描画する の写経です。 上記ページに記載の再帰呼び出し版を、そのまま Purple で書いてみました。 コード (import random) (from-import PIL Image) (val N 20) (val xm 0) (val ym 0.5) (val h 0.6) (val width 5…

Purple で FizzBuzz

Purple で FizzBuzz を書くとこんな感じです。 (def fizzbuzz (n) (match [(% n 3) (% n 5)] (0 0) "fizzbuzz" (0 _) "fizz" (_ 0) "buzz" _ n)) (->> (range 1 31) (map fizzbuzz) tuple print) ->> は Clojure のスレッディングマクロ(のひとつ)と同じで…

Purple でフィボナッチ数

Rubyistが始めるElixir - フィボナッチ編 に掲載されているコードを Purple で書くと以下のようになります。 (defm fib (0) 0 (1) 1 ((and (int n) |> _ 0|)) (+ (fib (- n 1)) (fib (- n 2)))) 上記は下記と同じ意味です。 (def fib (n) (match n 0 0 1 1 (…

ぱいぱいJS

PyPy.js なんてあったんだ! 知らなかった。 https://rfk.id.au/static/pypyjs/ https://github.com/rfk/pypyjs/

Python で実装された Lisp 処理系

Purple をある程度実装したところで、同じようなものはきっと沢山あるよねと思い、 Python で実装された Lisp 処理系をぐぐってみたところやはり沢山ありました。 以下、そのリストです。 Python のバイトコードやASTに変換するタイプのもの(初リリース時期…