Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    IndexerName属性が付いてますね
    Yukitoshi Suzuki
    @yukitos
    :+1:
    callmekohei
    @callmekohei
    :+1:
    Yukitoshi Suzuki
    @yukitos
    なるほど。
    callmekohei
    @callmekohei
    ビギナーな僕ならではのまとめ記事かいてみました〜。(と、途中ですけど)まつがい等あればご指摘ください〜。
    https://github.com/callmekohei/FSharpMonkey
    Matsushima, Kazuhiro
    @Gab-km
    :+1:
    本文とは関係ないんですが、ライセンスで"software"となっていますが、ドキュメントだけでしょうかね……?
    callmekohei
    @callmekohei
    あ、です ;^_^A
    Matsushima, Kazuhiro
    @Gab-km
    そうであれば、MIT License はソフトウェア用のライセンスになるので、ドキュメント用のライセンスとしてクリエイティブ・コモンズとかもありますね。
    callmekohei
    @callmekohei
    なるほどです!勉強になります!ありがとうございます!
    Yukitoshi Suzuki
    @yukitos
    Microsoft/visualfsharp#1193
    新しいプロジェクトシステムが出てきたけど、F#はどういう予定?という話
    callmekohei
    @callmekohei

    <iframeの中身の要素を取り出したいです>

    たびたびすみません。お手すきの時にでも。。。
    この掲示板の過去の僕の質問を取得したいと思いまして、htmlをみてみると
    iframeというのにあるのがわかりましたが取り出し方がわかりません。
    もしご存知の方いましたらヒントをいただけるとうれしいです。
    まずは<div class="chat-item__username js-chat-item-from">@callmekohei</div>
    とりだしたいです。
    .
    いまできてること。1番目のhtmlは取り出せる。
    #r @"./packages/FSharp.Data/lib/net40/FSharp.Data.dll"
    open FSharp.Data
    
    module Test_iframe =
    
        let element name ``class`` node =
                HtmlNode.name node = name && HtmlNode.attributeValue "class" node = ``class``
    
        HtmlDocument.Load "https://gitter.im/fsugjp/public"
        |> HtmlDocument.descendants false ( element "iframe" "" )
        |> printfn "%A"
    Yukitoshi Suzuki
    @yukitos
    iframeということは完全に別ページとして表示できるので、そっちにアクセスして探せばいい気がしますが。
    callmekohei
    @callmekohei
    なるほどです!やってみます!
    callmekohei
    @callmekohei
    できました〜!!ありがとうございます(^_^)/
    #r @"./packages/FSharp.Data/lib/net40/FSharp.Data.dll"
    open FSharp.Data
    
    module Test_iframe =
    
        let element name ``class`` node =
                HtmlNode.name node = name && HtmlNode.attributeValue "class" node = ``class``
    
        HtmlDocument.Load "https://gitter.im/fsugjp/public/~chat/#initial"
        |> printfn "%A"
    Yukitoshi Suzuki
    @yukitos
    :clap:
    callmekohei
    @callmekohei

    <文字列の最初の3文字をとりだしたい>

    本当にたびたびすみません。文字列あいうえおからあいうを取り出したいです。なにかいい方法ありますでしょうか?ヒントを頂けると嬉しいです(^_^)/
    MIYAZAKI Shohei
    @hafuu
    StringクラスのSbstringメソッド使ってみては
    callmekohei
    @callmekohei
    hafuuさん!ありがとうございます!できました!!!
        let str = "あいうえお"
        str.[0..2]
        |> printfn "%A"
    MIYAZAKI Shohei
    @hafuu
    お、stringにもslice使えたんだ
    Kouji Matsui
    @kekyo
    ぐえぇ、"match 式 (F#)"とかでググってジャンプすると、全部英語のサイトに飛んでしまう... 日本語訳は捨てられてしまったのか? その代わり最新のようだけど
    omanuke
    @omanuke
    MSKK(ry
    Kouji Matsui
    @kekyo
    callmekohei
    @callmekohei
    :thumbsup:
    bleis-tift
    @bleis-tift
    This message was deleted
    ちなみに、判別共用体で複数の値をタプルを使わずに定義した場合、タプルによる構築はできるけど、タプルによる分解はできないという違いがあります
    > type t = Hoge of int * int;;
    
    type t = | Hoge of int * int
    
    > let tpl = 1, 2;;
    
    val tpl : int * int = (1, 2)
    
    > Hoge tpl;;
    val it : t = Hoge (1,2)
    > let (Hoge tpl) = it;;
    
      let (Hoge tpl) = it;;
      -----^^^^^^^^
    
    stdin(5,6): error FS0019: このコンストラクターには 1 個の引数が適用されていますが、必要なのは 2 個です
    つらい
    あ、ミスって消しちゃった・・・
    omanuke
    @omanuke
    読んでる目の前で消えた…(´・_・`)
    bleis-tift
    @bleis-tift
    ごめんなさい><。
    editしようとしてdeleteおしてしもた
    上記エントリに関しての指摘をいくつか連投します。
    まず、パターンマッチの網羅チェックについてですが、「不足の検出」を前面に押し出していますが、個人的には「到達しないケースの検出」も不足の検出と同じくらいに重要だと思っています
    不足している場合は実行時に例外がでますが、到達しないケースの検出は実行時に例外も出ないためより重要と言えるかも
    次に、enumの定義としてtype Modes = LightMode | StandardMode | ...としていますが、これだとenumではなく判別共用体(すべてのケースが値を持たない判別共用体)になります。
    F#ではenumはすべての値を=で指定する必要があります。
    bleis-tift
    @bleis-tift
    enumの網羅性ですが、enumは本体が数値なので、指定したケース以外の値も数値をキャストしたりビット演算することで作り出せます。そのため、0に対応するケースがあったとしても結局網羅性は担保されません
    つまり、コンパイラは他の値の考慮が足りないとして警告を出します。
    次に、F#のタプルですが、Item1Item2によるアクセスはできません
    System.Tuple<...>で表されてはいるのですが、別物と考えておいた方が色々といいかもしれません。
    次は細かいところですが、F#のリストは読み取り専用の順方向リンクリストのようなものではなく、読み取り専用の順方向リンクリストそのものです。
    type 'a list =
      | []
      | (::) of 'a * 'a list
    こんな定義のイメージです
    bleis-tift
    @bleis-tift
    次に「演算子」という言葉の使い方ですが、:?[| ... |]も演算子ではありません。
    演算子であれば( <op> )のようにして関数化可能ですが、どちらも不可能です
    :?はパターン、[| ... |]は配列式を構成する文法です
    Kouji Matsui
    @kekyo
    うほぉ... 詰め甘 enumが判別共用体になっているというのは、あのエラーメッセージから信じ込んでいたんですが、判別共用体が0とみなされる場合があるという事?