github.com llvm-hs-pureのREADMEに書いてあるこちらのコードですが、GHCのincomplete-uni-patternsオプションを有効にすると警告が出ます。 {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecursiveDo #-} import Data.Text.Lazy.IO as T import LLVM.P…
cabal runでHaskellプログラムを実行するとビルドの情報などが表示されますが、実行結果を標準出力として他のプログラムに渡したい場合はこれだと困ると思います。 例 ビルドが走った場合 $ echo 42 | cabal run kagla-hs Build profile: -w ghc-8.8.4 -O1 I…
プログラム module Main where main :: IO () main = do name <- getLine putStrLn $ "Hello, " ++ name ++ "!" 実行方法 $ echo Bob | cabal run greet これでOK。 ※greetはプログラム名
はじめに 絶賛開発停滞中のTonblyというQiitaクローン的なアプリについての記事第二弾。 github.com 前回の記事では開発の背景について記したが、今回はTonblyの構成について紹介する。 尚、文体が前回とまるで異なるのはキャラ付けを模索しているからだ。 …
適当なページをブックマークした後にURLを以下のコードに置き換えればOK。 javascript:(()=>{const tmp = document.createElement('p');const pre = document.createElement('p');pre.style.userSelect = 'auto';tmp.appendChild(pre).textContent = '['+doc…
TOAST UIというWebのUIツールキットにMarkdownエディタがあるのですが、これがかなり便利で、以前記事を書いたQiitaクローンで使っています。 ↓こんなエディタが簡単に作れます ただ、このエディタのReact版はTypeScriptの型定義がなかったので自分で型を付…
モナドについて学ぶべくすごいH本を読んだので復習として型クラスをScalaに移植してみます。 www.ohmsha.co.jp 本と同じようにFunctor -> Applicative Functor -> Monadという順番で進めていこうと思います。 ちなみにScalaは趣味で少し書いたことがある程度…
ハロー! 去年の12月くらいから作っているツールが多少形になってきたので開発日記をつけることにしました。 github.com どんなツールかというと、Qiitaもどきみたいなやつです。 UIは調整しますがこんな感じ ※テストデータはQiitaのAPIを使って放り込んでい…
こちらの本を読んだので感想をば www.oreilly.co.jp ※Scalaに移植しました github.com 結論 言語自作に関する前提知識無しでインタプリタ実装を学べる良書 プログラミング言語を作ってみたいけど何から…という人には是非オススメ Goがわからなくても大丈夫 …
まとめ ある日突然、Dockerのasciidoctor/docker-asciidoctorを使ってAsciiDoc文書の変換と成果物(HTML)のアップロードを行っているGitLab CIのジョブが落ちるようになった 原因は、アップロードに使っていたftpputコマンドがAlpine Linuxのバージョン3.7か…
// (1) これは... Array(1, 2, 3, 1).groupBy(i => i) // (2) こう書ける(意味は同じだけどスッキリ!) Array(1, 2, 3, 1).groupBy(identity) 最初は↓のように書いていたのですが、コンパイルが通らず、結局上記(1)のように書いていました。 Array(1, 2, 3, …