У кого-либо есть опыт с Visual Studio 2008 в Windows 7?

Если вы хотите отследить, сколько раз вызывается функция, вы должны указать это как вход. Нет другого способа сделать это, потому что Haskell позволяет вам работать только с аргументами, которые передаются в функцию.

Например, скажем, я хотел вычислить факториал, но я хотел отследить, сколько шагов потребовалось. Моя сигнатура функции может выглядеть так:

factorial :: Int -> (Int, Int) -- Takes a number, returns the number and recursion count
factorialInternal :: (Int, Int) -> (Int, Int) -- This actually does the recursion

, а затем определения могут выглядеть так:

factorial n = factorialInternal (n, 0)
factorialInternal (1, n) = (1, n + 1)
factorialInternal (x, n) = let (y, z) = factorialInternal (x-1, n) in (x * y, z + 1)

По сути, параметр, отслеживающий количество рекурсии, увеличивается на каждом уровне, и затем становится частью вывода factorial.

Это определенно помогает создать интерфейсную функцию, так что вам не нужно вручную вводить начальный уровень рекурсии при использовании функции (которая всегда равна нулю, в любом случае). Пример того, как могут выглядеть сигнатуры вашей функции:

-- The function you call
calculateDifference :: (Int, Int, Int) -> (Int, Int, Int) -> Int
-- What the calculateDifference function calls (the third parameter is the recursion counter)
calculateDifferenceInternal :: (Int, Int, Int) -> (Int, Int, Int) -> Int -> Int

Отсюда вы сможете понять, как реализовать calculateDifference и calculateDifferenceInternal.


РЕДАКТИРОВАТЬ: Как указывал Амаллой, лучшее решение состоит в том, чтобы просто вывести счетчик, а не принимать один: поэтому вместо factorialInternal :: (Int, Int) -> (Int, Int), factorialInternal Int -> (Int, Int) будет работать. Тогда определение будет выглядеть так:

factorialInternal 1 = (1, 0)
factorialInternal n = let (x, y) = factorialInternal (n - 1) in (n * x, y + 1)
5
задан Jeroen Landheer 10 January 2009 в 20:20
поделиться

6 ответов

Да, выполнение его некоторое время и я еще не поразил проблем. Не может сказать, что я имею, используют все это день каждый день, но я создал WPF, WinForms, сеть и Консольные приложения с нею для тестирования различных вещей и не имел никаких помех.

У меня есть он на моем Dell X1, который является эффективно моим "Нетбуком", и это действительно довольно быстро. Единственный незначительный сбой, который я имел вообще, является некоторыми проблемами с графическим ускорением, но это до драйвера Intel, я использую быть старым драйвером XP, и это легко работалось вокруг.

10
ответ дан 13 December 2019 в 22:18
поделиться

Я выполнял его в VM в Рабочем столе Параллелей 4 на MacBook Pro. Абсолютно никакие проблемы для разговора о.

(Нет никакого звука в Windows 7, как виртуализировано через Параллели, который является известной проблемой — но не очень подходящий для операции Visual Studio.)

0
ответ дан 13 December 2019 в 22:18
поделиться

Jeroen,

Я не мог установить выпуск Разработчика Команды 2008 года - продолжают получать ошибку разрешения. Я, однако, был в состоянии к insall выпуск Базы данных Команды 2008 года. Я обычно устанавливаю оба выпуска, так отчасти бездельничаюсь о том, чтобы не заставлять выпуск Разработчика установить. Снимок экрана ошибки здесь, если Вам любопытно.

0
ответ дан 13 December 2019 в 22:18
поделиться

Нет проблем с групповой версией, но использовать ее только для веб-проектов.

0
ответ дан 13 December 2019 в 22:18
поделиться

Я использую его на работе с RC1 и не сталкивался с какими-либо проблемами. Разработали приложение WinForms, сайт WebForms и сейчас работаем над проектом MVC.

0
ответ дан 13 December 2019 в 22:18
поделиться

У меня не было никаких проблем с запуском Visual Studio 2008 Pro в 32-битной и 64-битной версиях Windows 7 на постоянной основе Разработка на C ++.

Если приложение, которое вы разрабатываете, не Я не знаю, почему это происходит, вероятно, это связано с конкретными настройками учетной записи пользователя.

0
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

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