categoryプログラミング覚書

プログラミングの本

trackback0  comment0
「やさしいLisp入門」 カットシステム
          (株)ニコラテスラ 酒井 皇治著
          2004/4/10

categoryCSS

FC2共有テンプレートに登録しました

trackback0  comment0
追記の表示を行い、再登録しました。
categoryCSS

3カラムテンプレート4

trackback0  comment3
シンプルにまとめてみました。

...Open more

categoryCSS

3カラムテンプレート3

trackback0  comment0
タイトルに背景を付けてみました。
categoryCSS

3カラムテンプレート2

trackback0  comment0
マイナーチェンジ
categoryCSS

3カラムテンプレート

trackback0  comment0
 再度挑戦して、レイアウト崩れなしで成功しました。
position:absoluteを使いました。


...Open more

categoryCSS

FC2テンプレート

trackback0  comment0
 FC2のテンプレートを作ろうとしています。2カラムのはfloat:left等でうまく行ったのですが、3カラムの方はレイアウトが崩れてしまって、バラバラになってしっまいます。1日試して無理だったので、諦めます。
categoryCSS

tr:nth-child(odd) 奇数行に薄墨

trackback0  comment0
1行目
2行目
3行目
4行目
5行目
1行目
2行目
3行目
4行目
5行目
<html><head> <style type="text/css"> .css-test01 tr:nth-child(odd) { background: #eeeeee; } </style> </head> <body> <table class="css-test01"> <tr><td>1行目</td></tr> <tr><td>2行目</td></tr> <tr><td>3行目</td></tr> <tr><td>4行目</td></tr> <tr><td>5行目</td></tr> </table> <table> <tr><td>1行目</td></tr> <tr><td>2行目</td></tr> <tr><td>3行目</td></tr> <tr><td>4行目</td></tr> <tr><td>5行目</td></tr> </table> </body>
categoryJavaScript

document.write

trackback0  comment0
<script> document.write(navigator.appName); document.write(navigator.appVersion); document.write(document.title); document.write(document.URL); </script>
categoryJavaScript

JacaScript エラーの表示方法

trackback0  comment0
<script> //var b = 0; var a = b + 89; document.write(a) </script> ツールメニューから b is not defined のエラーメッセージを表示できる。
categoryJavaScript

location.href

trackback0  comment0
<script> var opURL = new Array( "http://blog.livedoor.jp/greenwind888-888/", "http://greenwind888.web.fc2.com/" ); function idou(){ var num; num = document.urlName.contents.selectedIndex; location.href = opURL[num]; } </script> <form name="urlName"> <select name="contents" onchange="idou()"> <option>アイドル</option> <option>動画</option> </select> </form>
categoryJavaScript

input type="text"

trackback0  comment0
お名前:

<form name="namae"> お名前:<input type="text" name="simei" value=""><br> <input type="button" value="挨拶" onclick="aisatu()"><br> </form> <script> function aisatu(){ var str=document.namae.simei.value; alert("ようこそ"+str+"さん!"); } </script>
categoryJavaScript

document.getElementById

trackback0  comment0
このタグの中身を書き換えます。
<form> <input type="button" value="書き換え" onclick="reWrite()"> </form> <div id="str">このタグの中身を書き換えます。</div> <script> function reWrite() { document.getElementById("str").textContent=               "テキストを書換えました。"; } </script>
categoryJavaScript

自作シンプル時計

trackback0  comment0
ブログ記事内では失敗のようです。普通のHTML・プラグインならうまくいくのですが?
ブログパーツとしてそのまま貼り付ければOKです。ダウンロード
categoryプログラミング覚書

初歩的なプログラミング覚書HP

trackback1  comment0
初歩的なプログラミング覚書HPとブログをつくりました。

ぜひ見てください。



初歩的なプログラミング覚書



プログラミング入門


categoryHaskell

関数定義

trackback1  comment0
プログラミング覚書 Haskell-007

関数定義
----------------------------------------------------------------------

module Main where

factorial n = if n == 0 then 1 else n * factorial (n - 1)

main = do putStrLn "What is 5! ?"
x <- readLn
if x == factorial 5
then putStrLn "You're right!"
else putStrLn "You're wrong!"

----------------------------------------------------------------------
categoryHaskell

入出力 readLn putStrLn

trackback1  comment0
プログラミング覚書 Haskell-006

入出力 readLn putStrLn
----------------------------------------------------------------------

main = do putStrLn "What is 2 + 2?"
x <- readLn
if x == 4
then putStrLn "You're right!"
else putStrLn "You're wrong!"

----------------------------------------------------------------------
=
categoryHaskell

tail.hs

trackback1  comment0
プログラミング覚書 Haskell-005

tail.hs
 標準入力の最後の10行を出力
----------------------------------------------------------------------

main = do cs <- getContents
putStr $ lastNLines 10 cs

lastNLines n cs = unlines $ takeLast n $ lines cs

takeLast n ss = reverse $ take n $ reverse ss

----------------------------------------------------------------------
 ・reverse関数:リストを逆順にする
categoryHaskell

head.hs

trackback1  comment0
プログラミング覚書 Haskell-004

head.hs
 標準入力の最初の10行を出力
----------------------------------------------------------------------

main = do cs <- getContents
putStr $ firstNLines 10 cs

firstNLines n cs = unlines $ take n $ lines cs

 ・4行目は関数firstNLinesの定義
 ・take関数:リストの先頭からn要素をとったリストを返す
----------------------------------------------------------------------
categoryHaskell

countline.hs

trackback1  comment0
プログラミング覚書 Haskell-003

countline.hs
 標準入力の行数を数える
----------------------------------------------------------------------

main = do cs <- getContents
print (length (lines cs))

----------------------------------------------------------------------
 ・lines関数:文字列を行のリストに分割
 ・length関数:リストの長さ(要素の数)を返す
categoryHaskell

cat.hs

trackback1  comment0
プログラミング覚書 Haskell-002

cat.hs
 標準入力をそのまま標準出力へ出力する
 ファイルのリダイレクトで内容を簡単に見るのに便利
----------------------------------------------------------------------

main = do cs <- getContents
putStr cs

----------------------------------------------------------------------
 ・「cs <- getContents」と「putStr cs」の頭を揃えるのをレイアウトと云う。
   これでdo式は2つの式をまとまりとみなす。
 ・変数csをgetContentsアクションの結果に束縛する。
categoryHaskell

good.hs

trackback1  comment0
プログラミング覚書 Haskell-001

good.hs
----------------------------------------------------------------------

main = putStrLn "Good Morning!!"

コンパイル
ghc good.hs -o good
実行例
good
Good Morning!!

----------------------------------------------------------------------
 ・Haskellプログラムはmainアクションから始まる。
 ・「main = ... 」は変数mainの定義
categoryF#

rec 再帰

trackback1  comment0
プログラミング覚書 F#-008

rec 再帰
----------------------------------------------------------------------

let rec loop i =
printf "%d " i;
if i <= 0 then 0 else loop (i-1);;

loop 5;;
// 5 4 3 2 1 0

----------------------------------------------------------------------
categoryF#

for

trackback1  comment0
プログラミング覚書 F#-007

for
----------------------------------------------------------------------

for i = 1 to 10 do
printf "%d " i
done;;

----------------------------------------------------------------------
categoryF#

fold

trackback1  comment0
プログラミング覚書 F#-006

fold
----------------------------------------------------------------------

printf "%d\n" (List.fold (fun acc x -> acc + x) 0 [1..10]);;
// 55

----------------------------------------------------------------------
categoryF#

レコード

trackback1  comment0
プログラミング覚書 F#-005

レコード
----------------------------------------------------------------------

// 本を表すレコードを定義します。
type book =
{
title: string;
kakaku: int;
};;

// book型の値を作成してみます。
let hoge_book =
{
title = "hoge";
kakaku = 2600;
};;

// レコードのそれぞれのフィールドにアクセスしてみます。
printf "title=%s,kakaku=%d\n" hoge_book.title hoge_book.kakaku;;

----------------------------------------------------------------------
categoryF#

match

trackback1  comment0
プログラミング覚書 F#-004

match
----------------------------------------------------------------------

let NumToString n =
match n with
| 1 -> "one"
| 2 -> "two"
| _ -> "another number"

printf "%s\n" (NumToString 2);;
printf "%s\n" (NumToString 1);;
printf "%s\n" (NumToString 3);;

----------------------------------------------------------------------
categoryF#

if

trackback1  comment0
プログラミング覚書 F#-003

if
----------------------------------------------------------------------

let compare x y =
if x > y then x else y

let a = compare 6 8;;

printfn "%d" a;;

----------------------------------------------------------------------
categoryF#

関数

trackback1  comment0
プログラミング覚書 F#-002

関数
----------------------------------------------------------------------

let sum x y = x + y;;
let a = sum 3 5;;
printfn "%d" a;;

----------------------------------------------------------------------
categoryF#

F#で、はろー

trackback1  comment0
プログラミング覚書 F#-001

F#で、はろー
----------------------------------------------------------------------

printfn "はろーわーるど";;

----------------------------------------------------------------------
categoryML

複数の値を返す関数

trackback1  comment0
プログラミング覚書 ML-009

複数の値を返す関数
----------------------------------------------------------------------

- fun bar(x, y) =
= if x = y then (0, 0)
= else if x > y then (1, x - y)
= else (~1, y - x);
val bar = fn : int * int -> int * int
- bar( 20, 10);
val it = (1,10) : int * int
- bar( 10, 20);
val it = (~1,10) : int * int
- bar( 10, 10);
val it = (0,0) : int * int

----------------------------------------------------------------------
categoryML

複数の引数

trackback1  comment0
プログラミング覚書 ML-008

複数の引数
----------------------------------------------------------------------

- fun f(x, y) = 3 * x + 4 * y;
val f = fn : int * int -> int
- f(2, 3);
val it = 18 : int

----------------------------------------------------------------------
categoryML

リスト

trackback1  comment0
プログラミング覚書 ML-007

リスト
----------------------------------------------------------------------

- val a = [1, 2, 3, 4];
val a = [1,2,3,4] : int list
- val b = ["abc", "def", "ghi"];
val b = ["abc","def","ghi"] : string list
- a;
val it = [1,2,3,4] : int list
- hd( a );
val it = 1 : int
- tl( a );
val it = [2,3,4] : int list
- val c = 0 :: a;
val c = [0,1,2,3,4] : int list
- val d= [1, 2, 3] @ [4, 5, 6];
val d = [1,2,3,4,5,6] : int list

----------------------------------------------------------------------
categoryML

タプル tuple 組

trackback1  comment0
プログラミング覚書 ML-006

タプル tuple 組
----------------------------------------------------------------------

val a = (1,2) : int * int
- val b = (10, 89.7);
val b = (10,89.7) : int * real
- val c = ("hello", 45.6, 12);
val c = ("hello",45.6,12) : string * real * int
- #2(a);
val it = 2 : int
- #1(c);
val it = "hello" : string

----------------------------------------------------------------------
categoryML

if

trackback0  comment0
プログラミング覚書 ML-005

if
----------------------------------------------------------------------

- if 1 < 2 then 3 * 4 else 5 * 6;
val it = 12 : int
- if 1 > 2 then 3 * 4 else 5 * 6;
val it = 30 : int

----------------------------------------------------------------------
categoryML

関数定義

trackback1  comment0
プログラミング覚書 ML-004

関数定義
----------------------------------------------------------------------

- fun NiBai x = x * 2;
val NiBai = fn : int -> int
- NiBai 20;
val it = 40 : int
- NiBai( 30 );
val it = 60 : int

----------------------------------------------------------------------

categoryML

size関数

trackback1  comment0
プログラミング覚書 ML-003

size関数
----------------------------------------------------------------------

- size;
val it = fn : string -> int

----------------------------------------------------------------------
categoryML

^:文字の連結

trackback0  comment0
プログラミング覚書 ML-002

^:文字の連結
----------------------------------------------------------------------

- 23.5 + 45.6;
val it = 69.1 : real
- val test = "Hello";
val test = "Hello" : string
- val aisatu = test ^ " " ^ "World!";
val aisatu = "Hello World!" : string
- size aisatu;
val it = 12 : int
- aisatu;
val it = "Hello World!" : string

----------------------------------------------------------------------
categoryML

型推論

trackback0  comment0
プログラミング覚書 ML-001

型推論
----------------------------------------------------------------------

D:\pd>sml
Standard ML of New Jersey v110.72
[built: Fri Feb :57:49 2010]
- 10 + 3;
val it = 13 : int

----------------------------------------------------------------------
categoryPerl覚書

localtime関数

trackback1  comment0
プログラミング覚書 Perl-029

localtime関数
 現在の日時を求める
----------------------------------------------------------------------

@youbi = ('日', '月', '火', '水', '木', '金', '土');
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon += 1;
print "$year年$mon月$mday日($youbi[$wday]) $hour時$min分$sec秒\n";

----------------------------------------------------------------------
categoryPerl覚書

引数の受け取り方

trackback1  comment0
プログラミング覚書 Perl-028

引数の受け取り方
----------------------------------------------------------------------

($total, $mean) = &answer(80, 55, 75);
print "合計点数は$total点で、平均点数は$mean点です。\n";

sub answer {
($x, $y, $z) = @_;
$total = $x + $y + $z;
$mean = $total / 3;

return ($total, $mean);
}

# 合計点数は210点で、平均点数は70点です。
# 配列 @_ で引数を受け取る。
# 戻り値は多値でもOK。

----------------------------------------------------------------------
categoryPerl覚書

変換演算子

trackback1  comment0
プログラミング覚書 Perl-027

変換演算子
----------------------------------------------------------------------

$word = 'apple';
$word =~ tr/a-z/A-Z/;
print "$word\n"; # APPLE

----------------------------------------------------------------------
categoryPerl覚書

s/パターン/置換文字列/

trackback1  comment0
プログラミング覚書 Perl-026

s/パターン/置換文字列/
 「パターン」にマッチする文字列を「置換文字列」に置き換える
----------------------------------------------------------------------

$word = "This is a pen.";
$word =~ s/pen/book/;
print "$word\n"; # This is a book.

----------------------------------------------------------------------
categoryPerl覚書

関数

trackback1  comment0
プログラミング覚書 Perl-025

関数
----------------------------------------------------------------------

$wa = &tasu(66, 99);
print "$wa\n"; # 155

sub tasu {
$a = $_[0];
$b = $_[1];
$c = $a + $b;
return $c;
}

----------------------------------------------------------------------
categoryPerl覚書

平均

trackback1  comment0
プログラミング覚書 Perl-024

平均
----------------------------------------------------------------------

$sum = 0;
@a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
foreach $b (@a) {
$sum += $b;
}
$sum /= @a;
print "平均は $sum です。\n";
# 平均は 5.5 です。

----------------------------------------------------------------------
categoryPerl覚書

map関数

trackback1  comment0
プログラミング覚書 Perl-023

map関数
----------------------------------------------------------------------

my @values = ( 53, 39, 42, 88, 15 );

# @values の各要素を 2乗したリストを作る
my @ret = map{
$_ ** 2;
} @values;

print "@values\n"; # こちらは元の値のまま
print "@ret\n"; # 2乗された結果

----------------------------------------------------------------------
categoryPerl覚書

置換

trackback1  comment0
プログラミング覚書 Perl-022

置換
----------------------------------------------------------------------

my $word = 'bcabcdaa';

# abc を *** に置換する
$word =~ s/abc/***/;

print "$word\n";
# bc***daa

categoryPerl覚書

パターン修飾子

trackback1  comment0
プログラミング覚書 Perl-021

----------------------------------------------------------------------

#
my @words = ( 'abcde', 'ABCDE', 'AAA' );

foreach( @words ){
# aかA で始まり、eかE で終わる文字列を探す
if( m/^A.*E$/i ){
print "$_\n";
}
}

categoryPerl覚書

クラスタ化とキャプチャ

trackback1  comment0
プログラミング覚書 Perl-020

クラスタ化とキャプチャ
----------------------------------------------------------------------

# クラスタ化とキャプチャ
my @filename = (
'file000.txt',
'file001.txt',
'file002.txt',
'dummy003.txt',
'file004.txt',
'file005.txt'
);

foreach( @filename ){
# file\d{3}\.txt にマッチするか調べ、\d{3} の部分をキャプチャする
if( m/file(\d{3})\.txt/ ){
print "$1\n"; # キャプチャした部分を出力
}
} # 000
# 001
# 002
# 004
# 005

----------------------------------------------------------------------
categoryPerl覚書

文字クラス

trackback1  comment0
プログラミング覚書 Perl-019

文字クラス
----------------------------------------------------------------------

my @words = ( 'aaa', 'bbb', 'ccc', 'aba' );

foreach my $word (@words){
if( $word =~ m/^[ab]{3}/ ){ # 先頭に a か b が 3文字続く
print "$word\n";
}
} # aaa
# bbb
# aba

----------------------------------------------------------------------
New «‡Top» Old