Веб-сайт, говорящий с клиентским приложением?

y-комбинатор в JavaScript :

var Y = function(f) {
  return (function(g) {
    return g(g);
  })(function(h) {
    return function() {
      return f(h(h)).apply(null, arguments);
    };
  });
};

var factorial = Y(function(recurse) {
  return function(x) {
    return x == 0 ? 1 : x * recurse(x-1);
  };
});

factorial(5)  // -> 120

Редактировать : я многому учусь, глядя на код, но этот довольно сложно проглотить без некоторого фона - извините за это. С некоторыми общими знаниями, представленными другими ответами, вы можете начать разбирать происходящее.

Функция Y - это «y-комбинатор». Теперь взглянем на линию var factorial, где используется Y. Обратите внимание, что вы передаете ему функцию, у которой есть параметр (в этом примере recurse), который также используется позже во внутренней функции. Имя параметра в основном становится именем внутренней функции, позволяющей ему выполнять рекурсивный вызов (поскольку в своем определении он использует recurse()). Y-комбинатор выполняет магию, связывая иначе анонимную внутреннюю функцию с именем параметра функция передана Y.

Для полного объяснения того, как Y делает волшебство, проверил связанную статью (не мной, между прочим.)

5
задан Wim ten Brink 24 June 2009 в 10:19
поделиться

4 ответа

Реальный тонкий клиент RTC и удаленные функции идеально подходят для этого.

0
ответ дан 14 December 2019 в 08:58
поделиться

Я бы опрашивал веб-сервис из клиентского приложения, а не пытался установить соединение от сервера к браузеру.

0
ответ дан 14 December 2019 в 08:58
поделиться

Я бы забыл о проблемах совместимости с браузером (как вы думаете, вы остановите использование IE8? ) и используйте компонент браузера PBear напрямую. Используя это, вы можете легко перехватить свои ссылки и, таким образом, обнаружить любую ссылку, которую хотите. В моем приложении есть такие вещи, как «act: // actHelp», я определяю тип ссылки как «act», а затем ищу действие с именем «actHelp». Если есть, выполняю. Вы также можете предварительно проанализировать HTML-код, чтобы найти эти ссылки, и вставить изображение значка, используемого действием, таким образом, совпадая с вашим пользовательским интерфейсом и обеспечивая его актуальность.

Выполните интеграцию и забудьте о проблемах с внешним браузером.

0
ответ дан 14 December 2019 в 08:58
поделиться
Другие вопросы по тегам:

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