GlueLangをHaskell化していこうと

Sat Dec 27 11:59:34 JST 2014 (modified: Sat Sep 30 16:15:34 JST 2017)
views: 1108, keywords: GlueLang,Haskell,グルー言語を作る

  このエントリーをはてなブックマークに追加 

昨日のGlueLangへのパイプライン実装ですが、実装後、パイプは「>>=」で書いたほうが良いんじゃないかという行き当たりばったりなアイデアを思いついたので、やってみました。

これがサンプルスクリプトです。

uedambp:TEST ueda$ cat pipeline_mac4.glue 
   /usr/bin/seq '1' '5' >>=
   /usr/bin/tail '-r' >>=
   /usr/bin/tr '\\n' ' ' >>=
   /usr/local/bin/awk '{print}'
   ###実行###
   uedambp:TEST ueda$ ../main pipeline_mac4.glue 
   5 4 3 2 1 

うん、「, . 」よりも見やすい(主観)。

ということで、READMEのサンプルコードも次のように書き直しました。Haskellもどきです。READMEはGitHubで読めます。READMEには、コンパイルして試す方法も追記しましたので、ちょっと試していただけたらと。

import /bin/ as b
   import /usr/bin/ as ub
   
   main infile = do
    file tmp = cattac infile 
    b.cat tmp
   
   cattac file = b.cat file >>= ub.tail '-r'

型の考え方も、テーブルの列数とかちょっとしたデータの縛りを作るのに利用できそうです。

Haskell風にしたことで数学のコワイお兄さんたちにトラップされそうですが、やっぱりシェルスクリプトは関数型だという持論を表現しやすいので、こっちの方向で開発を進めます。



prev:パイプラインを実装できた next:【問題】年末年始シェル芸問題集

やり散らかし一覧

記事いろいろ




このサイトではGoogle Analyticsやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.