基礎プログラム練習
適当に勉強したコードを貼り付ける。
Haskell も多少齧ったけど、やっぱ関数型言語は世界観が違いすぎる。
逆に面白いが、道が長そうね。結局は書いて覚えるしかなさげ。
open System
let nagate x = -x
let nagateArray args =
List.map nagate args
let nagateInlineArray args =
List.map (fun x -> -x) args
let printNumber value =
printfn "%d" value
[<EntryPoint>]
let main (args:String[]) =
let numbers = [1..10]
// let reverses = nagateArray numbers
let reverses = nagateInlineArray numbers
List.iter printNumber reverses
ignore(Console.ReadKey())
0集合計算でListとSeqがあるけど、Listのほうは確定要素の演算だけど、Seqは遅延評価型のようだ。
関数をパイプで接続する際に、おそらくは関数スタックが出来るのだろうと予測。
open System
let square x = x * x
let sum numbers =
numbers
|> Seq.map square
|> Seq.sum
[<EntryPoint>]
let main (args : String[]) =
let nums = [1..10]
printfn "%d" (sum nums)
ignore(Console.ReadKey())
0
そしてカリー化
let printNumber value =
printfn "%d" valuelet printNumber =
printfn "%d"まぁ使い方が変わったワケではないのだが、、、。