2017-10-01から1ヶ月間の記事一覧

Haskell演算子、中置記法の記号の読み方

--Haskell演算子、中置記法の記号の読み方! -> アレーのインデクス。(!) :: Ix i => Array i e -> i -> e! -> 正格(strict)フラグ。foo !x -> foo strict x。とか!! -> リストのインデクス。(!!) :: [a] -> Int -> a$ -> カッコのかわり ($) :: (a -> b) -> …

Haskell : タプルとリストの相互変換

-- convertlist.hs-- 各種convertのプログラム。-> 練習問題-- 1.タプルとリストの相互変換 -> [[1,2],[3,4]] -> [(1,2),(3,4)]-- 2.タプルから2つのリストへ相互変換 -> [(1,'a'),(2,'b')] -> [1,2]['a','b']-- 3.タプルからフラットリストへ相互変換 -> [(…

Haskellで行番号をつける

問題 : 任意のテキストファイルの各行に行番号をつけて画面に出すプログラムを作れ。 解答例 -- numberlines.hs-- runghc numberlines.hs filename import Data.Listimport System.Environmentimport Text.Printf main :: IO ()main = do args <- getArgs co…

Haskellのランダムについて

Hakellは関数型言語で参照透過性とかを保証するために、同じことをやったら同じ結果が出ることが保証されているために、randomについてはちょっとというか相当ややこしい。 いまの私の理解は以下のようなものですが、これで合ってるか。 import System.Rando…

Ubuntuのマウスポインターを大きくする

マウスのポインターを大きくする方法です。 目が悪くなってきたのと、起動時に無線マウスの反応が悪くて、マウスの矢印がすこしでも大きいといいかな、と思い探してやってみました。うまく行ったのでご報告。 環境はUbuntu 16.04です。 echo "Xcursor.size: …

SageMathとグラフ理論(オイラーの公式)

問題 車輪グラフついて、オイラーの公式(Euler's formula)が成り立つことを確認せよ。 オイラーの公式: $$ n - m + f = 2 $$ : 頂点の数、: 辺の数、: 面の数 %histG=graphs.WheelGraph(8)show(G)len(list(G.vertex_iterator())) # -> 8len(list(G.edge_ite…

アイデア: エレキギターハンガー

ダイソー 車のシートフック という自動車のヘッドレストのポールにつける二連のフックがあります。 これがギターハンガーにならないか、というアイデアです。 みかけはギターハンガーにそっくりです。 とりあえず買ってきて、合わせてみたところ自分のエレキ…

SageMathでグラフ理論(TABの使い方)

SageMathでグラフに関係してどんな関数があるか、とか調べるときにタブ補完(Tab completion)を使います。 たとえば、グラフを書きたいとき、 G=graphs.<TAB> と押すと、200個ほどの関数がある。 また、G=Graph()としたうえで、 G.<TAB> と押すと、グラフに使える関数が</tab></tab>…