Haskellで再帰呼び出しを制限するにはどうすればよいですか?

TimzyPatzy

コードに問題があります。次のとおりです。

import Data.List

splitat _ [] = ([],[])
splitat element (head:tail)
  | element == head = ([],(head:tail))
  | otherwise = ([head]++fst(splitat element tail), snd(splitat element tail))

'element'でリストを分割し、次に左右のサブリストをタプルに結合します。ただし、3行目では、「splitat elementtail」コマンドが2回呼び出されます。1回は「fst」を介して、もう1回は「snd」を介して呼び出されます。再帰ツリーを狭く保つために、この項を1回だけ評価する方法はありますか?

前もって感謝します。

ウィレムヴァンオンセム

はいlet式またはwhereを利用できます。例えば:

splitat :: Eq a => a -> [a] -> ([a], [a])
splitat _ [] = ([],[])
splitat x' xa@(x:xs) | x == x' = ([], xa)
                     | otherwise = (x:ys1, ys2)
    where (ys1, ys2) = splitat x' xs

:くださいません使用しhead :: [a] -> aたりtail :: [a] -> [a]、またはこれらがあろうから、変数として定義されている他の機能シャドウ既存のバインディング。人はそれを考えるかもしれないので、それは、コードに関する理由に難しく、それを作るheadtail、これらの機能ではなく、変数を参照してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

再帰呼び出しの数を同時に2つの関数に制限するにはどうすればよいですか?-Python

分類Dev

再帰呼び出しで無限ループを検出するにはどうすればよいですか?

分類Dev

クローラーに再帰呼び出しをさせるにはどうすればよいですか?

分類Dev

このHaskell関数で発生した再帰呼び出しの数を計算するにはどうすればよいですか?

分類Dev

API呼び出しの数を制限するにはどうすればよいですか?

分類Dev

useQueryによるAPI呼び出しを1回だけ呼び出されるように制限するにはどうすればよいですか?

分類Dev

DB2 SQLで、すでに無限ループに陥っている再帰関数呼び出しを強制終了するにはどうすればよいですか。

分類Dev

定期的に呼び出すサービスへの再帰呼び出しをコーディングするにはどうすればよいですか?

分類Dev

関数への再帰呼び出しを返すにはどうすればよいですか?

分類Dev

再帰を使用して、Pythonで別の関数を繰り返し呼び出す関数を作成するにはどうすればよいですか?

分類Dev

条件を満たした場合、最後に再帰呼び出しを呼び出すにはどうすればよいですか?

分類Dev

再帰(階乗)を適切に呼び出すにはどうすればよいですか

分類Dev

Pythonでの再帰的な関数呼び出しが原因で発生したUnboundLocalErrorを修正するにはどうすればよいですか?

分類Dev

再帰的なJavaScript呼び出しでreturnステートメントを適切に設定するにはどうすればよいですか?

分類Dev

remove()を呼び出した後に要素を再追加するにはどうすればよいですか?

分類Dev

再帰的なテンプレート関数の最初の呼び出しで関数を実行するにはどうすればよいですか?

分類Dev

特定の回数の再帰呼び出しの後で関数を停止するにはどうすればよいですか?

分類Dev

gulp呼び出しを強制的に同期的に実行するにはどうすればよいですか?

分類Dev

再帰呼び出し内にあるステートメントを1回だけ印刷するにはどうすればよいですか?Python

分類Dev

再帰呼び出し内にあるステートメントを1回だけ印刷するにはどうすればよいですか?Python

分類Dev

クライアントによるメソッドの呼び出しを制限するにはどうすればよいですか?

分類Dev

jprofilerまたはその他:再帰的なメソッド呼び出しをロールアップするにはどうすればよいですか?

分類Dev

このJavaメソッドの最初のforループを再帰呼び出しに変更するにはどうすればよいですか?

分類Dev

PythonスクリプトでAPI呼び出しの制限を適切に管理するにはどうすればよいですか?

分類Dev

RxJを使用して間隔ごとのAPI呼び出しの数を制限するにはどうすればよいですか?

分類Dev

Numbaで、GPUで実行されている再帰関数を呼び出すにはどうすればよいですか?

分類Dev

Mongoose Save()呼び出しを強制的に同期させるにはどうすればよいですか?

分類Dev

適切な応答が返されるまで、サーバーを再帰的かつ効率的に呼び出すにはどうすればよいですか?

分類Dev

java-scriptで5万回以上呼び出す再帰関数を呼び出すにはどうすればよいですか?

Related 関連記事

  1. 1

    再帰呼び出しの数を同時に2つの関数に制限するにはどうすればよいですか?-Python

  2. 2

    再帰呼び出しで無限ループを検出するにはどうすればよいですか?

  3. 3

    クローラーに再帰呼び出しをさせるにはどうすればよいですか?

  4. 4

    このHaskell関数で発生した再帰呼び出しの数を計算するにはどうすればよいですか?

  5. 5

    API呼び出しの数を制限するにはどうすればよいですか?

  6. 6

    useQueryによるAPI呼び出しを1回だけ呼び出されるように制限するにはどうすればよいですか?

  7. 7

    DB2 SQLで、すでに無限ループに陥っている再帰関数呼び出しを強制終了するにはどうすればよいですか。

  8. 8

    定期的に呼び出すサービスへの再帰呼び出しをコーディングするにはどうすればよいですか?

  9. 9

    関数への再帰呼び出しを返すにはどうすればよいですか?

  10. 10

    再帰を使用して、Pythonで別の関数を繰り返し呼び出す関数を作成するにはどうすればよいですか?

  11. 11

    条件を満たした場合、最後に再帰呼び出しを呼び出すにはどうすればよいですか?

  12. 12

    再帰(階乗)を適切に呼び出すにはどうすればよいですか

  13. 13

    Pythonでの再帰的な関数呼び出しが原因で発生したUnboundLocalErrorを修正するにはどうすればよいですか?

  14. 14

    再帰的なJavaScript呼び出しでreturnステートメントを適切に設定するにはどうすればよいですか?

  15. 15

    remove()を呼び出した後に要素を再追加するにはどうすればよいですか?

  16. 16

    再帰的なテンプレート関数の最初の呼び出しで関数を実行するにはどうすればよいですか?

  17. 17

    特定の回数の再帰呼び出しの後で関数を停止するにはどうすればよいですか?

  18. 18

    gulp呼び出しを強制的に同期的に実行するにはどうすればよいですか?

  19. 19

    再帰呼び出し内にあるステートメントを1回だけ印刷するにはどうすればよいですか?Python

  20. 20

    再帰呼び出し内にあるステートメントを1回だけ印刷するにはどうすればよいですか?Python

  21. 21

    クライアントによるメソッドの呼び出しを制限するにはどうすればよいですか?

  22. 22

    jprofilerまたはその他:再帰的なメソッド呼び出しをロールアップするにはどうすればよいですか?

  23. 23

    このJavaメソッドの最初のforループを再帰呼び出しに変更するにはどうすればよいですか?

  24. 24

    PythonスクリプトでAPI呼び出しの制限を適切に管理するにはどうすればよいですか?

  25. 25

    RxJを使用して間隔ごとのAPI呼び出しの数を制限するにはどうすればよいですか?

  26. 26

    Numbaで、GPUで実行されている再帰関数を呼び出すにはどうすればよいですか?

  27. 27

    Mongoose Save()呼び出しを強制的に同期させるにはどうすればよいですか?

  28. 28

    適切な応答が返されるまで、サーバーを再帰的かつ効率的に呼び出すにはどうすればよいですか?

  29. 29

    java-scriptで5万回以上呼び出す再帰関数を呼び出すにはどうすればよいですか?

ホットタグ

アーカイブ