タグ

ブックマーク / qiita.com/tanakh (5)

  • Haskellのビルドツール"stack"の紹介 - Qiita

    Stackとは? つい先日のことですが、Stackage界隈からstackというツールがリリースされました。リリースされたとはいえ、開発され始めたのがちょっと前のことですし、現在も盛んに機能が追加されているので、絶賛開発中であるとかそういったほうがいいかもしれません。 まだ開発の始まったばかりのツールなのに、なぜこんな紹介記事を書こうと思ったのかというと、このツールがHaskellの開発において極めて有用になることが確定的に明らかであって、すでに荒削りながらも、大変便利に使えているからなのです。そしてここで紹介することで、多くの読者の方に興味を持ってもらって、それで開発がさらに盛り上がっていくと嬉しいなあと、そう思った次第であります。 なお、stackの開発が始まる少し前に、stackage-cliを始めとするいくつかのツールがリリースされましたが、今後開発はstackに一化されるような

    Haskellのビルドツール"stack"の紹介 - Qiita
  • Rustで競技プログラミングの入力をスッキリ記述するマクロ - Qiita

    モチベーション Rustで標準入力から望みのデータを入力するのは意外と面倒で、標準ライブラリにあるものを使って素直に書こうとすると、結構コード量がかさみます。例えば、文字列を一行読み込むのに、 let s = { let mut s = String::new(); // バッファを確保 std::io::stdin().read_line(&mut s).unwrap(); // 一行読む。失敗を無視 s.trim_right().to_owned() // 改行コードが末尾にくっついてくるので削る };

    Rustで競技プログラミングの入力をスッキリ記述するマクロ - Qiita
  • Rustの二次元配列の要素のswap - Qiita

    ボローチェッカーは、GCに頼ることなくメモリ安全性を保障してくれたりデータレースの不在を保障してくれたりするRustのユニークで有用な機能ですが、現在のボローチェッカーはずいぶん保守的な型検査を行うので、普通に考えるとどう考えても安全なコードが型検査を通せなかったりすることがちょくちょくあります。そんなものの一つとして、今日は二次元配列の要素のswapを考えてみようと思います。

    Rustの二次元配列の要素のswap - Qiita
  • 継続モナドによるリソース管理 - Qiita

    継続モナドって何に使うんだ問題に対する一つの例。 リソース管理の問題 プログラミングをやっていると必ずまとわり付いてくるのがリソース管理の問題です。ここで指すリソースというのは、ファイルのハンドルだとか、ソケットだとか、排他処理のためのロックだとか、グラフィックのハンドルだとかそういう話で、GCのない言語だとメモリの管理もこれに含まれるでしょうか。 言うまでもなく、リソースを確保した後はしかるべきタイミングで確実に解放してやる必要があります。しかし往々にして、現実のプログラムではリソースの解放漏れが発生してしまいます。単に解放するコードを書き忘れると言うのが一番単純でしょうもない理由ですが、それでも、C言語のようにリソース解放のための特別な仕組みを持たない言語では、これを徹底するのも結構骨の折れることだったりします。それはともかく、もう少し高尚な悩みとしては、例外との組み合わせで発生する解

    継続モナドによるリソース管理 - Qiita
  • 開発者がSurfacePro3を買ったらまずやること - Qiita

    SurfacePro3買いました。なかなか面白いデバイスですね。 こころがぴょんぴょんするんじゃ~~ SurfacePro3を機に久しぶりにWindowsを触るという方もいらっしゃるかと思うので、Windowsでの開発環境構築まとめを書いてみます。タイミング的にタイトルにSurfacePro3を入れましたが、SurfacePro3特有の話はありません。 アカウント作成 いきなりですが、アカウント作成のときに注意点があります。ユーザー名に日語を使ってはいけません。GNUツールの中には日語パスやスペースを含むパスを考慮していないものが割とあります。あるいはemacsのように、プログラム自体は対応していても、プラグインの中に対応していないものがあるというケースもあります。それはそういうプログラムの問題ではあるのですが、使いたいプログラムが動かないと仕方がないですので、あらかじめユーザー名を英

    開発者がSurfacePro3を買ったらまずやること - Qiita
  • 1