--euler #001 / recursion let fizzbuzz a = (a `mod` 3 == 0) || (a `mod` 5 == 0) putStrLn(show(sum(filter (fizzbuzz) [1..999])))
referring Problem 1 - Project Euler
--euler #001 / recursion let fizzbuzz a = (a `mod` 3 == 0) || (a `mod` 5 == 0) putStrLn(show(sum(filter (fizzbuzz) [1..999])))
Original Key Db / Capo. 1 / Play in C / Tempo 97 [intro] C " " " | G " " " | Am7 " " " | F " " " | C " C/B " | G/A# " Am " | F " " " | G# " " " | C " " " | F " G " | [verse] C " " " | C " " " | Am7 " " " | Am7 " " " | F " " " | Fm " " " | C " " " | E7 " " " | F " " " | F " " " | C " " " | Am7 " " " | F " " " | F " " " | G " " " | G " " " | [chorus] C " " " | C " " " | Am7 " " " | E7 " " " | F " " " | G " " " | C " " " | C " " " | [bridge] F " " " | G " " " | C " " " | C " " " | F " " " | G " " " | C " " " | F " G " | (1st: go back to [verse]) [chorus2] C " " " | C " " " | Am7 " " " | E7 " " " | F " " " | G " " " | C " " " | C " " " | Am7 " " " | E7 " " " | F " " " | G " " " | C " " " | C " " " | [pre-outro] F " " " | G " " " | C " " " | Am7 " " " | F " " " | E7 " " " | Am7 " " " | G " " " | F " " " | E7 " " " | ( Am7 " " " | G " " " | F " " " | G " " " | ) C " C/B " | G/A# " Am " | F " G " | C " C/B " | G/A# " Am " | F " G " | C " C/B " | G/A# " Am " | F " G " | C " C/B " | G/A# " Am " | F " G " | [outro] C " " " | G " " " | Am7 " " " | F " " " | C " " " | G " " " | Am7 " " " | F " " " | C " " " | G " " " | Am7 " " " | F " " " | ...
class Door private bool isShut private bool isLocked
!isShut && isLockedという状態は有り得ないので、Doorクラスを扱う際は『常に』気を使う必要がある。
if(newval==true){ this.isShut = true } else{ this.isShut = false if(this.isLocked){ this.isLocked = false } }
class Person private string FirstName private string MiddleName private string LastName
let TotalNumCharsInPersonsName(p:Person) = p.FirstName.Length + p.MiddleName.Length + p.LastName.Length
let TotalNumCharsInPersonsName(p:Person) = (if p.FirstName=null then 0 else p.FirstName.Length) + (if p.MiddleName=null then 0 else p.MiddleName.Length) + (if p.LastName=null then 0 else p.LastName.Length)
type DoorState = | Open | ShutAndUnlocked | ShutAndLocked # then I could define class Door private DoorState state
class Person private string FirstName private Option<string>MiddleName private string LastName let TotalNumCharsInPersonsName(p:Person) = let middleLen = match p.MiddleName with | None -> 0 | Some(s) -> s.Length p.FirstName.Length + middleLen + p.LastName.Length