Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    callmekohei
    @callmekohei
    ifの条件x + y + z = 7でいけるんですね。なるほどです!リストのリストでいいです!(^_^)/ 条件変わってすみません、、、。
    This message was deleted
    omanuke
    @omanuke
    PatternMatchでunionの名前とか間違えた時、UpperCaseほにゃららがーと警告は出るんだけどコンパイルは通るのってなんでなんですかね?
    そのパターンマッチにほかのケースあったら型が違うとかでエラーになりそうなんだけど、そもどういう扱いになっている?
    bleis-tift
    @bleis-tift
    名前付きのパターンと認識される感じですね
    omanuke
    @omanuke
    名前付きのパターン・・・
    bleis-tift
    @bleis-tift
    match x with
    | Hoge -> ... // Hogeという変数パターンとして認識
    omanuke
    @omanuke
    んーActivePatternではなく?
    変数パターンとは
    bleis-tift
    @bleis-tift
    対応するActivePatternがあればそっちでしょうけど、なければ変数パターンですね
    match x with
    | y -> ... // 変数パターン(変数名はy)
    omanuke
    @omanuke
    ああ、そういうことか
    いわれてみればそうですね。これたまにやらかすんですよね…警告見ろって話ですが(´・ω・`)
    Yukitoshi Suzuki
    @yukitos
    全然違う話題ですがこのチャンネルの履歴はこちら。
    https://gitter.im/fsugjp/public/archives/all
    Matsushima, Kazuhiro
    @Gab-km
    面白い、ぎっはぶの草で表現してるのか…!
    Kouji Matsui
    @kekyo
    おおーだんだん濃くなってる
    pocketberserker
    @pocketberserker
    これの F# 版を気が向いたらちゃちゃっと作るか http://dwango.github.io/scala_text/typeclass.html
    callmekohei
    @callmekohei
    ペンギンさんに期待😄
    Kouji Matsui
    @kekyo
    :+1:
    pocketberserker
    @pocketberserker
    これ、試してもらったんですけどダメでした><。
    ReSharperが頑張ったのかな・・・?
    残念
    callmekohei
    @callmekohei

    <2次元表をリストでつくる>

    たびたびすみません。お手すきのときにでも。。。
    リストから2次元表を作りたいです。dt0, dt1, dt2とかなり
    不恰好な作り方をしてますがこの部分を多分reduce/fold
    出来る気がしてるのですが、どうすればいいかわかりません。
    ヒントをいただけるとうれしいです。(^_^)
    name      age       gender    
    ------------------------------
    kohei     32        Male      
    taro      28        Male      
    tomoko    31        Female
    module create_2Dtable =
    
        // data
        let Name   = ["kohei" ; "taro" ; "tomoko"]
        let Age    = [32;28;31]
        let Gender = ["Male"  ; "Male" ; "Female"]
    
        let Index  = ["name"  ; "age"  ; "gender"]
        let Age' = Age |> List.map ( fun x -> string x)
        // ここが不恰好、、、な気がします。。。
        let dt0 = [Name.Item 0; Age'.Item 0; Gender.Item 0]
        let dt1 = [Name.Item 1; Age'.Item 1; Gender.Item 1]
        let dt2 = [Name.Item 2; Age'.Item 2; Gender.Item 2]
    
        let prettyPrint idx dt =
    
            Index |> List.iter ( printf "%-10s" )
    
            let dashline =
                List.replicate 30 "-"
                |> List.reduce (+)
                |> printfn "\n%s"
    
            dt
            |> List.map ( List.map (sprintf "%-10s") )
            |> List.map ( List.reduce (+) )
            |> List.iter ( printfn "%s" )
    
        [dt0; dt1; dt2] |> prettyPrint Index
    Yukitoshi Suzuki
    @yukitos
    List.zip3 とか?
    callmekohei
    @callmekohei
    なるほどです!この場合zip3便利です〜(^_^)/
    タプルなんですね。[("kohei", 32, "Male"); ("taro", 28, "Male"); ("tomoko", 31, "Female")]
    あ、以前にペンギンさんに教えていただいた分でいけるかも、、、。
    callmekohei
    @callmekohei
    できました〜。これでいいはず。。ユキトスさん(とペンギンさん)ありがとうございます!
        let ListBind lst =
            List.init (List.length lst) id
            |> List.map (fun i -> lst |> List.map (fun l -> List.item i l))
    
        [Name; Age'; Gender]
        |> ListBind
        |> prettyPrint Index
    callmekohei
    @callmekohei

    <文字を足す行為に関して>

    たびたびすみません。文字を足すと数字になります。文字列だと足せます。文字を足すことはできないのでしょうか?
    'A' + 'B'
    |> printfn "%A"
    // '\131'
    
    ['A';'B']
    |> List.reduce (+)
    |> printfn "%A"
    // '\131'
    
    "A" + "B"
    |> printfn "%A"
    // "AB"
    
    ["A";"B"]
    |> List.reduce (+)
    |> printfn "%A"
    // "AB"
    bleis-tift
    @bleis-tift
    文字を足してどうなってほしいんですか?
    callmekohei
    @callmekohei
    単純にABになるかと思ったのですが、、、。
    bleis-tift
    @bleis-tift
    '0' + '1' // => 'a'
    int '0' + int 'a' // => 97
    int 'a' // => 97
    char 97 // => 'a'
    「文字」と言うように、charが表すのは1文字ですので、足して2文字になったりはしませんよ
    それとも、文字と文字を足して文字列が出てきてほしい?
    callmekohei
    @callmekohei
    おおおおお。'0' + '1'aになるんですね!初めて知りました!!!!不思議な感じがします!
    Matsushima, Kazuhiro
    @Gab-km
    char型の値は、実は文字であって文字でないのです。
    裏側は、整数になっています。
    (* 最近流行ったアレ *)
    char(int('生') &&& int('死'))
    bleis-tift
    @bleis-tift
    let inline (+++) a b = string a + string b
    と定義すると、
    'a' +++ 'b' // => "ab"
    とできますね
    MIYAZAKI Shohei
    @hafuu
    > char(int('生') &&& int('死'));;
    val it : char = '愛'
    callmekohei
    @callmekohei
    ガブさん 愛!
    ブレイスさん!おおお。なるほどです!
    charstringは別物なんですね!で、charintみたいなものなんですね、実際は。理解しました!
    Yukitoshi Suzuki
    @yukitos
    > [|'a';'b';'c';'d'|] |> System.String.Concat;;
    val it : string = "abcd"
    callmekohei
    @callmekohei
    ???ユキトスさん、、、なぜに???string
    Yukitoshi Suzuki
    @yukitos
    複数のcharを足して文字列にしたいならこういう方法もありますね
    callmekohei
    @callmekohei
    なるほどです!