適当に勉強したコードを貼り付ける。
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" value
let printNumber = printfn "%d"
まぁ使い方が変わったワケではないのだが、、、。