Добавьте пользовательский тег к проверке Visual Studio

Кажется, что две функции имеют совершенно разную реализацию:

c m l = do
      n   <- [l..m]
      res <- c (n - 1) (l - 1)
      return $ n:res

Здесь при каждом рекурсивном вызове параметр l уменьшается, а параметр m становится n <- [l--m]. 1118]

Для сравнения:

helper a b l = do
    n    <- [a..b]
    True <- return $ (l - 1 <= n)
    res  <- helper a (n - 1) (l - 1)
    return (n:res)

Здесь интервал составляет [a..b] вместо [l..m] (кстати, почему вы используете разные имена? Сложнее сравнивать два фрагмента таким образом. Итак, рассмотрим, как изменяются параметры a и b. Параметр a не изменяется, а b становится n-1.

Есть также третий аргумент l, которого не было в первом фрагменте.

Я не вижу, как это будет тот же алгоритм. Это выглядит совершенно по-другому для меня. Вы, вероятно, вызываете здесь более рекурсивные вызовы, которые замедляют работу. Сопоставление с образцом - это красная сельдь - думаю, дело не в том, что это тормозит, по крайней мере, не напрямую.

Кроме того, эта часть

    n    <- [a..b]
    True <- return $ (l - 1 <= n)

выглядит очень подозрительно. Это должно быть что-то вроде

    n    <- [max a (l-1) .. b]

, поскольку вышеприведенное будет учитываться от a до l-2 только для того, чтобы отбросить эти варианты в следующей строке. Создание вариантов только для того, чтобы отказаться от них, может замедлить вашу программу.

18
задан Rob Allen 5 August 2008 в 13:24
поделиться

1 ответ

Щелкните правой кнопкой по представлению Source HTML / ASP-страница и избранное "Форматирование и Проверка".

  1. Щелчок "Тег Определенные Опции".
  2. Разворачивают "Клиентские HTML-ТЭГИ" и выбирают заголовок.
  3. Щелчок "Новый Тег...".
  4. И просто заполняют его!

мне жаль, что я не мог добавить пользовательские значения CSS также.

5
ответ дан 30 November 2019 в 09:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: