<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 實例 ``` require('../../support'); var Task = require('data.task'); var _ = require('ramda'); // 練習 1 // ========== // 使用 _.add(x,y) 和 _.map(f,x) 創建一個能讓 functor 里的值增加的函數 var ex1 = _.map(_.add(1)); //練習 2 // ========== // 使用 _.head 獲取列表的第一個元素 var xs = Identity.of(['do', 'ray', 'me', 'fa', 'so', 'la', 'ti', 'do']); var ex2 = _.map(_.head) // 練習 3 // ========== // 使用 safeProp 和 _.head 找到 user 的名字的首字母 var safeProp = _.curry(function (x, o) { return Maybe.of(o[x]); }); var user = { id: 2, name: "Albert" }; var ex3 = _.compose(_.map(_.head), safeProp('name')); // 練習 4 // ========== // 使用 Maybe 重寫 ex4,不要有 if 語句 var ex4 = function (n) { if (n) { return parseInt(n); } }; var ex4 = _.compose(_.map(parseInt), Maybe.of); // 練習 5 // ========== // 寫一個函數,先 getPost 獲取一篇文章,然后 toUpperCase 讓這片文章標題變為大寫 // getPost :: Int -> Future({id: Int, title: String}) var getPost = function (i) { return new Task(function(rej, res) { setTimeout(function(){ res({id: i, title: 'Love them futures'}) }, 300) }); } var upperTitle = _.compose(toUpperCase, _.prop('title')); var ex5 = _.compose(_.map(upperTitle), getPost); // 練習 6 // ========== // 寫一個函數,使用 checkActive() 和 showWelcome() 分別允許訪問或返回錯誤 var showWelcome = _.compose(_.add( "Welcome "), _.prop('name')) var checkActive = function(user) { return user.active ? Right.of(user) : Left.of('Your account is not active') } var ex6 = _.compose(_.map(showWelcome),checkActive) // 練習 7 // ========== // 寫一個驗證函數,檢查參數是否 length > 3。如果是就返回 Right(x),否則就返回 // Left("You need > 3") var ex7 = function(x) { return x.length > 3 ? Right.of(x) : Left.of("You need > 3"); } // 練習 8 // ========== // 使用練習 7 的 ex7 和 Either 構造一個 functor,如果一個 user 合法就保存它,否則 // 返回錯誤消息。別忘了 either 的兩個參數必須返回同一類型的數據。 var save = function(x){ return new IO(function(){ console.log("SAVED USER!"); return x + '-saved'; }); } var ex8 = _.compose(either(IO.of, save), ex7) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看