フォールドの観点からリストの長さを定義することについて

それ

これは単なる演習です(以下で説明する機能はすでにで実装されていることを認識していますList)。

次の行を含むインターフェイスがあるとします

val length : 'a list -> int
val fold   : init:'acc -> f:('acc -> 'a -> 'acc) -> 'a list -> 'acc

...そして私foldはこのように実装します:

let rec fold ~init ~f l =
  match l with
  | []     -> init
  | h :: t -> fold ~init:(f init h) ~f:f t

私は今length、このように実装できると期待していました

let length = fold ~init:0 ~f:(fun c _ -> (c + 1))

...しかしコンパイラは文句を言う

   Values do not match:
     val length : '_a list -> int
   is not included in
     val length : 'a list -> int

もちろん、私はlengthこのように実装できることを知っています

let length l = fold ~init:0 ~f:(fun c _ -> (c + 1)) l

...しかし、なぜl両側から末尾削除できないのかわかりません=

どこが間違っているのですか?

ジェフリー・スコフィールド

これが値の制限です。長さの定義は、非常に技術的な意味での値ではありません。Stack Overflowには、この問題に関するいくつかの良い議論がすでにあります。良いものを探します。

これはかなり良いものです:

部分適用に値制限があるのはなぜですか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コンソールの「Command」フォルダをデフォルトのディレクトリから移動して、例外を回避することは可能ですか?コマンド「name」が定義されていませんか?

分類Dev

コンピュータメモリとC ++の観点から「バイト」を定義することの違いは何ですか?

分類Dev

メモリの観点から、リストをイテレータに変換することは理にかなっていますか?

分類Dev

定義されたフィールドのセットから少なくとも1つのフィールドを要求することは可能ですか?

分類Dev

遅いIOを処理しない場合、パフォーマンスの観点からリアクティブプログラミングを使用することは理にかなっていますか?

分類Dev

依存関係ツリーの観点から、.netコアサービスの作成をどのように処理することになっていますか?

分類Dev

リストを渡し、Pythonのデフォルトパラメータとして長さを設定する

分類Dev

numpyを使用して、他の行列の観点から行列を定義することは可能ですか?

分類Dev

dynamoDBフィールド名の長さは価格設定の観点から重要ですか?

分類Dev

GRUBをスケジュールすることはできますか?つまり、定義された期間にデフォルトの「エントリ」(自動ログイン)を自動的に変更しますか?

分類Dev

GRUBをスケジュールすることはできますか?つまり、定義された期間にデフォルトの「エントリ」(自動ログイン)を自動的に変更しますか?

分類Dev

パフォーマンスの観点から、Pygameで長方形を移動するか、新しい長方形を作成する方が速いですか?

分類Dev

PHPを使用するときに、フィールドの文字長/セット長が特定の数値に設定されていることを確認するにはどうすればよいですか?

分類Dev

ui-router状態定義を置き換える/上書きすることは可能ですか?(デフォルトの状態は別のモジュールによって「カスタマイズ」されています)

分類Dev

配列の長さに基づいてフォルダとコンテンツをコピーするスクリプトを作成しますか?

分類Dev

JavaRMIレジストリポートとして使用される明確に定義されたデフォルトのポート番号はありますか

分類Dev

それは彼らの定義されたフィールドへのアクセスを維持しながら、多くのクラスに同じコンストラクタを割り当てることは可能ですか?

分類Dev

データベースのパフォーマンスの観点から、どちらのアプローチが優れていますか?操作ごとの1つのテーブルグループまたは複数のテーブルのシリアル化可能なトランザクションですか?

分類Dev

2つのデータフレーム間のハミング距離の観点から行を一致させるために1に設定されているビット数を計算します

分類Dev

レコードセットフィールドを読み取ろうとしたときに、Access vbaがサブまたは関数をスローすることが定義されていないのはなぜですか?

分類Dev

jquery fullcalendarに定義されているデフォルトのスロットカラーはどこにありますか?

分類Dev

Linux上のOpenjdk Java用に定義/インストールされているフォントはどこにありますか

分類Dev

が見つからなかったタイプのBeanが必要なフィールドに、構成でタイプのBeanを定義することを検討してください

分類Dev

フィールドが特定の値に設定されていることをテストするにはどうすればよいですか?

分類Dev

デフォルト値でダーツのリストの長さを設定するにはどうすればよいですか?

分類Dev

Kubectl getdeploymentsがデフォルトの名前空間にリソースが見つからないことを示しています

分類Dev

バイナリモードでテキストファイルにアクセスすることにはいくつかの利点がありますか?

分類Dev

jsファイルをロードし、クライアント側でjsを使用してページ全体を作成することはページのロードの観点から良いですか?

分類Dev

不要なusing \ imports宣言を使用することによるパフォーマンスの観点から、何か意味はありますか

Related 関連記事

  1. 1

    コンソールの「Command」フォルダをデフォルトのディレクトリから移動して、例外を回避することは可能ですか?コマンド「name」が定義されていませんか?

  2. 2

    コンピュータメモリとC ++の観点から「バイト」を定義することの違いは何ですか?

  3. 3

    メモリの観点から、リストをイテレータに変換することは理にかなっていますか?

  4. 4

    定義されたフィールドのセットから少なくとも1つのフィールドを要求することは可能ですか?

  5. 5

    遅いIOを処理しない場合、パフォーマンスの観点からリアクティブプログラミングを使用することは理にかなっていますか?

  6. 6

    依存関係ツリーの観点から、.netコアサービスの作成をどのように処理することになっていますか?

  7. 7

    リストを渡し、Pythonのデフォルトパラメータとして長さを設定する

  8. 8

    numpyを使用して、他の行列の観点から行列を定義することは可能ですか?

  9. 9

    dynamoDBフィールド名の長さは価格設定の観点から重要ですか?

  10. 10

    GRUBをスケジュールすることはできますか?つまり、定義された期間にデフォルトの「エントリ」(自動ログイン)を自動的に変更しますか?

  11. 11

    GRUBをスケジュールすることはできますか?つまり、定義された期間にデフォルトの「エントリ」(自動ログイン)を自動的に変更しますか?

  12. 12

    パフォーマンスの観点から、Pygameで長方形を移動するか、新しい長方形を作成する方が速いですか?

  13. 13

    PHPを使用するときに、フィールドの文字長/セット長が特定の数値に設定されていることを確認するにはどうすればよいですか?

  14. 14

    ui-router状態定義を置き換える/上書きすることは可能ですか?(デフォルトの状態は別のモジュールによって「カスタマイズ」されています)

  15. 15

    配列の長さに基づいてフォルダとコンテンツをコピーするスクリプトを作成しますか?

  16. 16

    JavaRMIレジストリポートとして使用される明確に定義されたデフォルトのポート番号はありますか

  17. 17

    それは彼らの定義されたフィールドへのアクセスを維持しながら、多くのクラスに同じコンストラクタを割り当てることは可能ですか?

  18. 18

    データベースのパフォーマンスの観点から、どちらのアプローチが優れていますか?操作ごとの1つのテーブルグループまたは複数のテーブルのシリアル化可能なトランザクションですか?

  19. 19

    2つのデータフレーム間のハミング距離の観点から行を一致させるために1に設定されているビット数を計算します

  20. 20

    レコードセットフィールドを読み取ろうとしたときに、Access vbaがサブまたは関数をスローすることが定義されていないのはなぜですか?

  21. 21

    jquery fullcalendarに定義されているデフォルトのスロットカラーはどこにありますか?

  22. 22

    Linux上のOpenjdk Java用に定義/インストールされているフォントはどこにありますか

  23. 23

    が見つからなかったタイプのBeanが必要なフィールドに、構成でタイプのBeanを定義することを検討してください

  24. 24

    フィールドが特定の値に設定されていることをテストするにはどうすればよいですか?

  25. 25

    デフォルト値でダーツのリストの長さを設定するにはどうすればよいですか?

  26. 26

    Kubectl getdeploymentsがデフォルトの名前空間にリソースが見つからないことを示しています

  27. 27

    バイナリモードでテキストファイルにアクセスすることにはいくつかの利点がありますか?

  28. 28

    jsファイルをロードし、クライアント側でjsを使用してページ全体を作成することはページのロードの観点から良いですか?

  29. 29

    不要なusing \ imports宣言を使用することによるパフォーマンスの観点から、何か意味はありますか

ホットタグ

アーカイブ