2014-01-01から1年間の記事一覧
Monadのチュートリアルでほとんど語られることがないfailについて確認します。 Monadの情報を確認すると: Prelude> :i Control.Monad Top level: Failed to load interface for `Control' Use -v to see a list of the files searched for. Prelude> :i Mon…
書評が出来る程のスキルがあるわけではないので、つらつらと感想を: 関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus)作者: 大川徳之出版社/メーカー: 技術評論社発売日: 2014/11/14メディア: 単行本(ソフトカバー)こ…
Stateモナド,Writerモナド,Readerモナドは、型の中に関数が「隠れている」感じがします。 どのような関数が型の中に「隠れている」かを見抜くことがポイントなのかなぁと思っています。 もっと単純な(役に立たない)コードで示すと: test15.hs: data AB = …
Javaやっていて、Haskellを学んでいると、なにか原落ちしない感覚、違和感のある感覚があり、それがうまく言葉に表せないことが多々あります。 こういうところが、腹落ちしてなかったのだなぁと感じたことのメモ。 データ構造としてMapはどの言語でも使いま…
多分こんな感じではないかと思っています。 通常は関数を定義して、それに値を与えます。例えばこんな感じ: Prelude> let f1 = \x -> x * 2 Prelude> :t f1 f1 :: Integer -> Integer Prelude> f1 4 8 Prelude> 関数が第一級のクラスであるとは、関数の引数…
モノイドを学習をしているときに、モノイドのインスタンスがあれば、複数のモノイドを同時に計算ができて、スゲーなと思いました。じゃあ、minとmaxのモノイドを作れば同時に求めることができるだろうと思って試行錯誤したことがあります。こちらのエントリ…
本に載っていたサンプルを参考に、 import java.io.File; public class Main { public static void main(String[] args) { File[] files = new File(".").listFiles(File::isHidden); for (File f :files) { System.out.println(f.getAbsoluteFile()); } } }…
Intellijなれるのに苦労しますね。 プロジェクトの各種設定 デフォルトでプロジェクトを作ったらコンパイラの指定がJava6でした。Java8に変えたかったのですが、プロジェクトの設定場所が分からず暫し悩む。上部にアイコンがありました。ここから設定画面に…
なんか早速嵌りました。 いろいろ試行錯誤していて正確な記憶は薄れてしまったのですが、初期起動時にJDKを自動では認識してくれないようでした。JDKを設定するダイアログでJDK8を指定したのですが、javafx.jarへのパスが通ってなくて生成されたコードがコン…
Lazyの有無に関係ないようですね。 Prelude> :i Control.Monad.State.State type Control.Monad.Trans.State.Lazy.State s = Control.Monad.Trans.State.Lazy.StateT s Data.Functor.Identity.Identity -- Defined in `Control.Monad.Trans.State.Lazy' http…
require File.expand_path(File.dirname(__FILE__) + '/../samples_config') instances = AWS::EC2.new.instances # p instances instances.each { |i| puts i.id + " " + (i.ip_address ? i.ip_address : "") + " " + (i.tags["Name"] ? i.tags["Name"] : "…
参考情報 https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager RHEL/CentOS/Scientific Linux 6 インストール [ec2-user]# yum update [ec2-user]# yum install nodejs npm --enablerepo=epel Loaded plugins: amazon-id, rhui-lb,…
悲しいことにAWS上に作っていたHaskell環境のインスタンスを誤ってTerminateしてしまいました。 なので、再度環境を作成しました。 環境はamzn-ami-pv-2014.03.2.x86_64-ebs (ami-25dd9324)です。 コマンドのログは下記です。 yum update yum install gcc yu…
バイナリデータの扱いを例として、モナドの使い方の練習を引き続き行っています。 work03$ ghci GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking .…
JavaScriptの勉強のためインストールしてみました。 コードのダウンロード [ec2-user]# mkdir V8 [ec2-user]# cd V8/ # svnが入ってなかったのでインストール [V8]# yum install svn # レポジトリからチェックアウト [V8]# svn checkout http://v8.googlecod…
Int型の数値の確認 Prelude> 1 1 Prelude> :t 1 1 :: Num a => a Int型の配列の型の確認 Prelude> :t [1] [1] :: Num t => [t] Maybe Int型の型の確認 Prelude> :t Just 1 Just 1 :: Num a => Maybe a returnしたときの型の確認 このでは何のMonadであるかは…
adbでsqliteの操作の練習 adbツールの場所の確認 test$ ls NOTICE.txt adb api fastboot source.properties systrace 接続 test$ ./adb shell 該当アプリのデータベースのディレクトリへ移動 root@generic:/ # cd /data/data/com.example.test02 root@generi…
まずは、型の確認。 Prelude> :t Data.ByteString.Lazy.putStr Data.ByteString.Lazy.putStr :: Data.ByteString.Lazy.Internal.ByteString -> IO () Prelude> :t Data.Binary.Put.runPut Data.Binary.Put.runPut :: Data.Binary.Put.Put -> Data.ByteString…
BinaryパッケージにlookAhead関数があります。 https://hackage.haskell.org/package/binary-0.5.0.2/docs/src/Data-Binary-Get.html#lookAhead Prelude> :t Data.Binary.Get.lookAhead Data.Binary.Get.lookAhead :: Data.Binary.Get.Get a -> Data.Binary.…
もうちょっときれいにまとめたかったのですが。。 アクティビティ package com.example.sensor01; import java.util.HashMap; import java.util.List; import java.util.Map; import android.annotation.SuppressLint; import android.content.Context; impo…
今回も嵌りました。単純にログでHello Chef!を出力したかったのですが、出来ず。あとruby覚えるのが辛い。 参考にさせて頂いた資料 http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/ http://www.slideshare.net/marcyterui/aws-2 http://tsuch…
ソースコードをダウンロードします。 ソースコードをダウンロードしているかどうかは、SDKマネージャで確認できます。 規約に同意してインストールを開始します。 インストール中です。(ここでは他のものもインストールしています) "Peer not authenticated"…
Read a bite from a binary file Prelude> :l test01.hs [1 of 1] Compiling Main ( test01.hs, interpreted ) Ok, modules loaded: Main. *Main> test_binary Loading package array-0.4.0.1 ... linking ... done. Loading package deepseq-1.3.0.1 ... li…
ADTをダウンロードして解凍し、Eclipse.appを起動します。 なんとJava6が必要とのこと。確かに、システム用件を確認するとJava6が必要と書いてありますが、他のサイトとかみるとJDK7でもできているみたいですが。。。 指示に従ってインストールを進めます。 …
HoogleでのsplitAt検索結果 http://www.haskell.org/hoogle/?hoogle=splitAt 比べてみると理解が深まりますね。 配列 Prelude> :t splitAt splitAt :: Int -> [a] -> ([a], [a]) Prelude> splitAt 5 "abcdefghijklmnopqrstuvwxyz" ("abcde","fghijklmnopqrst…
もう必要ない情報ですが。 [tmp]# wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//struts/binaries/struts-1.3.10-all.zip --2014-03-26 09:02:04-- http://ftp.meisei-u.ac.jp/mirror/apache/dist//struts/binaries/struts-1.3.10-all.zip ftp.meisei…
Log Monad Log Monad
サイトよりダウンロードしたファイルです。 ダブルクリックするとインストーラが起動します。 上記の画像で箱の部分をダブルクリックすると始まります。 確認画面です。 インストール中です。結構時間がかかりました。 インストール終了。 インストールされ…
State Monadの写経をしてみました。 実際に計算をしていると、状態というよりs->(x, s)という関数をずっと使い回しているイメージでした。 State Monad ふぅ。計算に疲れました。。。
EC2のインスタンスの情報を確認する小さなサンプル 1 require File.expand_path(File.dirname(__FILE__) + '/../samples_config') 2 3 instance_id = "i-XXXXXXXX" 4 instance = nil 5 begin 6 instance = AWS::EC2.new.instances[instance_id] 7 p instance…