Pure

Pureの「reduce」がすごい

Pure言語には、「reduce」というマクロがあります。(PureではLispのようなマクロが使える)これは、「与えられた式をもう一度評価する」というマクロです。一見単純なようですが、たくさんの応用ができそうです。 簡単な使い方を紹介します。 foo expr = redu…

括弧ゴルフにPureで挑んでみた

「どれだけ括弧を使わずに書けるか」を競う「括弧ゴルフに、Pureを使って挑戦してみました。括弧は、「()」も「[]」も全く出てきません。0個です。階乗は大きい数(intだとオーバーフローしてしまうもの)も普通に出てくるので、それに対応するのに苦労しまし…

Pure言語邪道テクニック? Whileを作る

この方法はあまり使うべきではないと思いますが、Pure言語で手続き型言語的なプログラムを書く方法として書いておきます。 まず最初に、While関数の定義です。 while expr body = body () $$ while expr body if expr (); = () otherwise;普通に、「exprを実…

Pure言語例文 FizzBuzz

例文になるのかどうかはわかりませんが、とりあえず、PureでFizzBuzzをやってみました。 こんなコードです。 check x = "FizzBuzz" if ~(x mod 3) && ~(x mod 5); = "Fizz" if ~(x mod 3); = "Buzz" if ~(x mod 5); = x otherwise; fizzbuzz n = map check (…

Pure言語についてのメモなど

Pureの、機能や構文などについて、わかったことを書いておきます。 Pureマニュアル日本語版(http://d.hatena.ne.jp/cu39/20100609/1276102382)などを参考にしました。 この記事は未完成です。ずっと完成しないかもしれません。これからさらに追加される可能…

プログラミング言語「Pure」をインストール

最近知ったプログラミング言語「Pure」をインストールしてみます。 http://d.hatena.ne.jp/Dubhead/20100312/p1 ここも参考にして書きました。 Ubuntu 9.10でやっています。 Pureについて 動的型付けの言語らしいです。インタプリタとコンパイラ、どっちも使…