Рекурсия означает функцию, называя себя. Например:
(define (un-ended name)
(un-ended 'me)
(print "How can I get here?"))
Хвостовая рекурсия означает рекурсию, которые завершают функцию:
(define (un-ended name)
(print "hello")
(un-ended 'me))
Видят, последняя вещь, которую делает незаконченная функция (процедура, на жаргоне Схемы), состоит в том, чтобы назвать себя. Другой (более полезный) пример:
(define (map lst op)
(define (helper done left)
(if (nil? left)
done
(helper (cons (op (car left))
done)
(cdr left))))
(reverse (helper '() lst)))
В процедуре помощника, ПОСЛЕДНЯЯ вещь это делает, если левый не является нолем, должен назвать себя (ПОСЛЕ ТОГО, КАК подставляет что-то и командира что-то). Это в основном, как Вы отображаете список.
хвостовая рекурсия имеет большое преимущество, которому интерпретатор (или компилятор, зависящий от языка и поставщика), может оптимизировать ее и преобразовать ее во что-то эквивалентное некоторое время цикл. Как реальная действительность, в традиции Схемы, большинстве "для" и "в то время как" цикл сделан способом хвостовой рекурсии (существует не для и в то время как, насколько я знаю).
Недавно я нашел отличное сообщение в блоге , в котором описаны различия между страницами холста FBML, страницами холста iframe и сайтами Facebook Connect. В нем больше внимания уделяется технической разнице между приложениями FBML и iframe, но поскольку эти технологии упоминаются в документации Facebook, разработчикам Facebook Connect кажется почти необходимым иметь базовое понимание обычных приложений Facebook, даже если они не будут работать с ними напрямую. Думаю, знание об этой странице несколько месяцев назад избавило бы меня от многих страданий.
В этом контексте «веб-приложения» относятся к приложениям на основе холста с Facebook. «Настольные приложения» - это другой тип, упомянутый там, и относится к не-веб-приложениям, таким как виджет для панели задач в Windows.
Я бы посмотрел на платформу Facebook как на набор API:
Обратите внимание, что все из них могут получить доступ к Facebook API, интерфейсу REST и FQL. Большая часть документации предназначена для приложений холста FBML. В левой части вики-страницы для разработчиков Facebook вы можете увидеть несколько параметров верхнего уровня:
Я уверен, что вы видели:
http://wiki.developers.facebook.com/index .php / Facebook_Connect
Основная документация по подключению. Надеюсь, это поможет вам организовать работу.
Удачи!
Многие аспекты веб-приложений FB (например, FBML, FQL) являются общими для приложений FB и FB Connect. Я бы сказал, что FB Connect с большей вероятностью будет использоваться на сайтах, реализующих больше визуальных элементов FB (FBML). Кроме того, FB Connect можно использовать в автономном режиме (где у пользователя нет текущего сеанса напрямую с FB).
Я признаю, что документация довольно разрозненная и часто довольно расплывчатая, но как только вы продолжите читать все больше и больше о это, концепции становятся более ясными. По крайней мере, таков был мой опыт.