大森敏行
プログラミング雑誌の編集
短いサンプルコードしか書けないので、きちんとした長いプログラムを書けるようになりたいため
import qualified System.Random as Random | |
import Data.Time.Clock.POSIX | |
shuffle :: Int -> String -> String | |
shuffle seed [] = [] | |
shuffle seed xs = | |
let a = length xs | |
r = fst $ Random.randomR (0, a - 1) (Random.mkStdGen seed) | |
in (xs !! r):(shuffle seed $ (take r xs) ++ (drop (r + 1) xs)) |
require 'minitest/unit' | |
require 'minitest/autorun' | |
class MyKebun | |
def kebun(s) | |
s[0] + s[1..-2].chars.shuffle.join("") + s[-1] | |
end | |
def kebun_with_check(s) | |
if s.length < 4 |
;; 第1回 Scheme コードバトン | |
;; | |
;; ■ これは何か? | |
;; Scheme のコードをバトンのように回していき面白い物ができあがるのを楽しむ遊びです。 | |
;; 次回 Shibuya.lisp で成果を発表します。 | |
;; Scheme 初心者のコードを書くきっかけに、中級者には他人のコードを読む機会になればと思います。 | |
;; | |
;; ■ 2 つのルール | |
;; | |
;; (1)自分がこれだと思える変更をコードに加えて2日以内に次の人にまわしてください。 |