2020-01-01から1年間の記事一覧

【Haskell】llvm-hs-pureのサンプルコードで出るパターンマッチ排他警告を修正する

github.com llvm-hs-pureのREADMEに書いてあるこちらのコードですが、GHCのincomplete-uni-patternsオプションを有効にすると警告が出ます。 {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecursiveDo #-} import Data.Text.Lazy.IO as T import LLVM.P…

【Haskell】cabal runで表示される余計なメッセージを非表示にする

cabal runでHaskellプログラムを実行するとビルドの情報などが表示されますが、実行結果を標準出力として他のプログラムに渡したい場合はこれだと困ると思います。 例 ビルドが走った場合 $ echo 42 | cabal run kagla-hs Build profile: -w ghc-8.8.4 -O1 I…

【Haskell】cabal runでプログラムを実行する際に標準入力を渡す

プログラム module Main where main :: IO () main = do name <- getLine putStrLn $ "Hello, " ++ name ++ "!" 実行方法 $ echo Bob | cabal run greet これでOK。 ※greetはプログラム名

Tonbly開発日記 #2 -アーキテクチャやライブラリなどの紹介-

はじめに 絶賛開発停滞中のTonblyというQiitaクローン的なアプリについての記事第二弾。 github.com 前回の記事では開発の背景について記したが、今回はTonblyの構成について紹介する。 尚、文体が前回とまるで異なるのはキャラ付けを模索しているからだ。 …

Scrapboxの外部リンク記法でクリップボードにURLをコピーするブックマークレット

適当なページをブックマークした後にURLを以下のコードに置き換えればOK。 javascript:(()=>{const tmp = document.createElement('p');const pre = document.createElement('p');pre.style.userSelect = 'auto';tmp.appendChild(pre).textContent = '['+doc…

TOAST UIのMarkdownエディタのReact版にTypeScriptの型が付いたよ

TOAST UIというWebのUIツールキットにMarkdownエディタがあるのですが、これがかなり便利で、以前記事を書いたQiitaクローンで使っています。 ↓こんなエディタが簡単に作れます ただ、このエディタのReact版はTypeScriptの型定義がなかったので自分で型を付…

【参考になりません】Haskellの型クラスをScalaに移植する #1

モナドについて学ぶべくすごいH本を読んだので復習として型クラスをScalaに移植してみます。 www.ohmsha.co.jp 本と同じようにFunctor -> Applicative Functor -> Monadという順番で進めていこうと思います。 ちなみにScalaは趣味で少し書いたことがある程度…

Tonbly開発日記 #1 -開発の背景-

ハロー! 去年の12月くらいから作っているツールが多少形になってきたので開発日記をつけることにしました。 github.com どんなツールかというと、Qiitaもどきみたいなやつです。 UIは調整しますがこんな感じ ※テストデータはQiitaのAPIを使って放り込んでい…