【Scheme】mapの定義

mapを定義してみた。 ;;; リストの最初の要素を集めてリストにする (define (first-elems lss) (let loop ((ls0 lss) (ls1 '())) (if (null? ls0) (reverse ls1) (loop (cdr ls0) (if (null? (car ls0)) ls1 (cons (car (car ls0)) ls1)))))) ;;; リストのcd…

【Prolog】Prologへの入門 3章

% Prologへの入門 3章 p.72, p.73の練習問題をやってみました % 3.1 (a) conc([], L, L). conc([X|L1], L2, [X|L3]) :- conc(L1, L2, L3). rm_back3(L, L1) :- conc(L1, [_, _, _], L). % 3.1 (b) rm_top3(L, L1) :- conc([_, _, _], L1, L). rm_top3_back3(…

【Prolog】Prologへの入門 3章(続き)

% 3.3 evenlength([]). evenlength([X|L]) :- oddlength(L). oddlength([_]). oddlength([X|L]) :- evenlength(L). % 3.4 conc([], L, L). conc([X|L1], L2, [X|L3]) :- conc(L1, L2, L3). reverse([], []). reverse([X|L1], L) :- reverse(L1, L2), conc(L2…

【Prolog】Prologへの入門 1章

/* はじめてのprolog */ parent(pam, bob). % コメント parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat, jim). female(pam). male(tom). female(liz). female(pat). female(ann). male(jim). offspring(Y, X) :- pare…

【Prolog】はじめてのProlog

■起動 $prolog■ソース読み込み | ?- ['test.pl'].■終了 | ?- halt.

【Ruby】emacs上でirbを走らせる

emacsくわしくありません。全然理解していません。備忘録的に書きます。 ★emacs上でirbを動かせたらいいな 以下、やったことです。 ■~/.emacs.d/init.elに以下を追加 (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.…

【Haskell】すごいHaskellたのしく学ぼう 第14章演習問題

import Data.List import Data.Ratio newtype Prob a = Prob {getProb :: [(a, Rational)]} deriving Show flatten :: Prob (Prob a) -> Prob a flatten (Prob xs) = Prob $ concat $ map multAll xs where multAll (Prob innerxs, p) = map (\(x, r) -> (x,…

【C++】vectorの連結【滅びろ】

C++ってめんどくしゃい。 vectorの連結やってみた。 #include <iostream> #include <vector> using namespace std; int main(int argc, char* argv[]){ vector<int> v1; vector<int> v2; v1.push_back(1); v1.push_back(2); v1.push_back(3); v2.push_back(4); v2.push_back(5); v2.push_</int></int></vector></iostream>…

モナド則は<=<という演算子で簡単になる

演算子を以下のように定義する。 (<=<) :: (Monad m) => (b -> m c) -> (a -> m b) -> (a -> m c) f <=< g = (\x -> g x >>= f) するとモナド則は以下のようになる。 return <=< f = f f <=< return = f (f <=< g) <=< h = f <=< (g <=< h)

【Haskell】モノイドで畳み込む

import Data.Monoid import qualified Data.Foldable as F data Tree a = EmptyTree | Node a (Tree a) (Tree a) deriving (Show) instance F.Foldable Tree where foldMap f EmptyTree = mempty foldMap f (Node x l r) = F.foldMap f l `mappend` f x `map…

【Haskell】アプリカティブむずかしい

sequenceA [(+3), (*4)]を計算してみようと思います。 sequenceA [(+3), (*4)] = (:) <$> (+3) <*> sequenceA [(*4)] = (:) <$> (+3) <*> ((:) <$> (*4) <*> pure []) = (:) <$> (+3) <*> ((:) <$> (*4) <*> (\_ -> [])) = (:) <$> (+3) <*> ((\_ -> (:)) <*…

【数学】youtubeで見つけた圏論勉強会の動画

これ見て勉強しようっと。

【Haskell】Parsecで文字列置換してみた

青木峰郎著「ふつうのHaskellプログラミング」を読み終わったので、Parsecで文字列置換するプログラムをつくってみました。「yyyy/mm/dd」→「日付」と置換するプログラムです。 import Text.Parsec import Text.Parsec.String main :: IO () main = do cs <-…

【Haskell】モナドとは何か

Haskellにおけるモナドとは以下のようなものです。 ・モナドとはMonadという型クラスのインスタンス ・IOやMaybe、リストがモナドの実例(Monadのインスタンスは型ではなく、型コンストラクタであることに注意) ・Monadクラスには(>>=)とreturnという2つのク…

cshでハッシュみたいなことをするにはどうしたらよいか

以下のようなhash.txtというファイルがあります。名前と身長を列挙しています。 naoki 173 sayaka 171 taro 168 funmatsu 158このデータからcshを用いてハッシュのようなものをつくりたいです。例えば、sayakaさんの身長を表示させてみましょう。 #!/bin/csh…

【Perl】cpanminusのインストール

【Windowsの場合】 Strawberry Perl 5.18.2.2(64bit)を使った場合です。cpanminusのインストール方法は以下のようにします。 >cpan App::cpanminus これでOKです。 cpanminusを使ってTkをインストールします。 >cpanm Tk Tkのインストール面白いです。これで…

【Haskell】MapをFunctor型クラスのインスタンスにする

import qualified Data.Map as Map class MyFunctor f where myFmap :: (a -> b) -> f a -> f b instance (Ord k) => MyFunctor (Map.Map k) where myFmap f = Map.fromList.map (\(k, v) -> (k, f v)).Map.toList

SystemCでカウンターつくってみた(Makefile, DUT, TB)

SystemC Japan 2014が近くなってきましたね。僕は家のPCにSystemCをインストールして、はじめてカウンターをつくってみたよ。ディレクトリ構成はこんなかんじ。 ./Makefile ./src/counter.h ./src/counter.cpp ./testbench/tb.h ./testbench/tb.cpp ./testbe…

GHC7.6.3とHaskell Platformをインストールする前にやること

GHC7.6.3とHaskell Platformをソースからビルドしてインストールしてみた。 いくつかひっかかったところがある。 GHC7.6.3のビルドでlibgmp.so.3が無いといわれたり、Haskell Platformのビルドで、ファイルが無いといわれたりした。 インストールする前に以…

【量子論】スペクトル分解と量子論の確率

エルミート演算子の固有ベクトルは、縮退しているものも含めて、完全系をなす。任意のが以下のように展開できる。 完全系をなすとは、以下が成り立つことである。 [tex:\sum_{a}\sum_{l=1}^{m_{a}}|a, l>=\sum_{l=1}^{m_{a}}] ここで [tex:Tr\hat{P}(a)|\psi…

【通信方式】周期信号は偶数次信号と奇数次信号の和で書ける

守倉正博編著「OHM大学テキスト 通信方式」で勉強している。今日の勉強のまとめを書いてみる。 周期の複素信号は以下のフーリエ級数で表せる。 ここでは偶数次の信号と奇数次の信号の和で書ける。 , はそれぞれ以下の性質をもつ。 これらの式より、以下が成…

【Perl】再帰的にファイルを置換

僕が「Perlって楽しいな」と感じたのは、再帰的にファイルを置換するスクリプトを書いたときだった。 こんなかんじに、実行する。 ソースは以下。 use strict; use warnings; use File::Find; my $top_dir; my $previous; my $next; if(@ARGV != 3){ die "Us…

【Haskell】再帰でpivot選択付きLU分解 ついに完成!

import Data.Array -- MatrixとVectorの定義 type Matrix a = Array (Int, Int) a type Vector a = Array Int a -- リストからMatrixをつくる makeMatrix :: [[a]] -> Matrix a makeMatrix xs = listArray ((1, 1), (m, n)) $ concat xs where m = length xs…

【Haskell】再帰でpivot選択付きLU分解

import Data.Array type Matrix a = Array (Int, Int) a makeMatrix :: [[a]] -> Matrix a makeMatrix xs = listArray ((1, 1), (m, n)) $ concat xs where m = length xs n = length $ head xs swapRows :: Int -> Int -> Matrix a -> Matrix a swapRows i …

Marcan Dede Nar-i Ask

Nexus7(2012)にUbuntu 13.10 Touch Previewを入れた

以下は導入手順です。 - 1.Google USB DriverをPCにダウンロード&インストール(http://developer.android.com/sdk/win-usb.html) 2.nexusのUSBデバッグをON ->nexusの「設定」->「タブレット情報」に「ビルド番号」という項目がある 「ビルド番号」を7回タッ…

小数を2進数で表す

import Numeric -- 1未満の小数を2進数で表す shosuToBin :: Float -> [Int] shosuToBin n = shosuToBin' (n * 10^(keta n)) (keta n) shosuToBin' :: Float -> Int -> [Int] shosuToBin' n i | n == 0 = [] | n*2 >= 10^i = 1:shosuToBin' (n*2 - 10^i) i |…

新しい時代は本当にやってくるのか

先ほど、即席焼きそばを食べ終え、今、コーヒーを飲みながら、youtubeでglen gouldのゴールドベルクをかけながらこれを書いている。耳には、昨日購入した、sonyの白いヘッドホンから良質なbachが流れ、私のこころは、17世紀ヨーロッパ、バッハ、ニュートン、…

ロリイタのお店でかかっていた曲

Spritual Vibes Pupa

これの元のやつがほしい。