Gauche

GaucheでFizzBuzzその2

前に作ったFizzBuzzをもうちょっとSchemeぽくしてみる. 以前は「関数型言語⇒再帰呼び出し」と思ってたので,再帰呼び出しで実装したけど,mapとか使えばさらにすっきり書ける.というわけで. #!/usr/bin/env gosh (use srfi-1) (define (fizzbuzz max) (ma…

Gaucheで文字列操作できるの?

というわけでいろいろ試してみた. まずはじめに文字の扱い. 文字は#\のあとにその文字を書く.h,e,l,l,oからなるリストは, '(#\h #\e #\l #\l #\o) でできる.で,文字列. 文字列はほかのプログラミング言語と一緒で""で囲めばよい.helloという文字列は…

バブルソートは諦めて選択ソート

さっきのやつを修正した.今回はちゃんと動いているぽい. #!/usr/bin/env gosh (define (selectsort listdata) (define (exceptmax lst) (if (pair? lst) (if (= (fold max -1 lst) (car lst)) (cdr lst) (append (list (car lst)) (exceptmax (cdr lst))) …

Gauche3日目にして

さっきまでのプログラムをよく見たら(別データで試したら)全然ソーティングできてなかった(恥 というかめちゃくちゃだった. 直します….

Gauche3日目

注:このプログラムは間違えています. 昨日のBubbleSortをもうちょっと修正. letを使って複数出てくる(bsort-swap (car lstdata) (cdr lstdata))をまとめた. #!/usr/bin/env gosh (define (bsort lstdata) (define (bsort-swap x lst) (if (pair? lst) (i…

Gaucheメモ

Gaucheユーザリファレンス

さらにGauche2日目

defineの中でさらにdefineできるらしい.ある関数Aからしか呼ばれないようなローカルな関数(?)Bを作る場合は,関数Aの定義内でBを定義する方が良い. そこで,バブルソートを修正. 注:このプログラムは間違えています. #!/usr/bin/env gosh (define (b…

Gauche2日目

昨日の件で,HelloWorldを書いたんですが,どうもlambdaとかいらないらしい. そこで,書き直してみた. #!/usr/bin/env gosh (define (HelloOnce) (print "Hello World!") ) (define (HelloNTimes x) (if (> x 0) (cons (HelloNTimes (- x 1)) (print x ":H…

Gaucheでバブルソート

FizzBuzzしたし,とりあえずソーティングでもやってみるか〜と思ってバブルソートしてみた. ら,鬼のようにむずかった(涙 Gauche1日目にして無茶した.注:このプログラムは間違えています. #!/usr/bin/env gosh (define bsort-swap (lambda (x lst) (if …

GaucheでFizzBuzz

だいたい分かってきた. で,FizzBuzz.3の倍数のときにFizz,5の倍数のときにBuzz,3と5の倍数のときにはFizzBuzzを表示するプログラム. #!/usr/bin/env gosh (define fizzbuzz ( lambda (x) (if (> x 1) (fizzbuzz (- x 1))) (cond ((= ( modulo x (* 3 5…

はじめてのGauche

今日,プログラミングGaucheという本を買った.話題のScheme処理系,Gaucheに関するオライリーの本.プログラミングGauche作者: Kahuaプロジェクト,川合史朗出版社/メーカー: オライリージャパン発売日: 2008/03/14メディア: 大型本購入: 22人 クリック: 713…