Приложение Facebook по сравнению с сайтом Подключения Facebook

Рекурсия означает функцию, называя себя. Например:

(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)))

В процедуре помощника, ПОСЛЕДНЯЯ вещь это делает, если левый не является нолем, должен назвать себя (ПОСЛЕ ТОГО, КАК подставляет что-то и командира что-то). Это в основном, как Вы отображаете список.

хвостовая рекурсия имеет большое преимущество, которому интерпретатор (или компилятор, зависящий от языка и поставщика), может оптимизировать ее и преобразовать ее во что-то эквивалентное некоторое время цикл. Как реальная действительность, в традиции Схемы, большинстве "для" и "в то время как" цикл сделан способом хвостовой рекурсии (существует не для и в то время как, насколько я знаю).

14
задан allyourcode 12 December 2009 в 19:01
поделиться

3 ответа

Недавно я нашел отличное сообщение в блоге , в котором описаны различия между страницами холста FBML, страницами холста iframe и сайтами Facebook Connect. В нем больше внимания уделяется технической разнице между приложениями FBML и iframe, но поскольку эти технологии упоминаются в документации Facebook, разработчикам Facebook Connect кажется почти необходимым иметь базовое понимание обычных приложений Facebook, даже если они не будут работать с ними напрямую. Думаю, знание об этой странице несколько месяцев назад избавило бы меня от многих страданий.

2
ответ дан 1 December 2019 в 13:47
поделиться

В этом контексте «веб-приложения» относятся к приложениям на основе холста с Facebook. «Настольные приложения» - это другой тип, упомянутый там, и относится к не-веб-приложениям, таким как виджет для панели задач в Windows.

Я бы посмотрел на платформу Facebook как на набор API:

  • Facebook Canvas приложения (приложения, которые вы используете в FB. Что пользователи называют «приложениями Facebook»)
    • Приложения FBML / FBJS
    • Приложения Iframe Canvas
  • Настольные приложения Facebook (Редко)
  • Соединительные приложения Facebook (Веб-сайты с элементами FB в них. CNN, Digg)
    • Интернет
    • iPhone

Обратите внимание, что все из них могут получить доступ к Facebook API, интерфейсу REST и FQL. Большая часть документации предназначена для приложений холста FBML. В левой части вики-страницы для разработчиков Facebook вы можете увидеть несколько параметров верхнего уровня:

  • API (вы всегда можете использовать это)
  • FBML (только для приложений Canvas)
  • XFBML (только для подключения к Facebook)
  • FQL (вы всегда можете использовать это)
  • FBJS (в основном холст-приложения, некоторые функции подключения)

Я уверен, что вы видели:

http://wiki.developers.facebook.com/index .php / Facebook_Connect

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

Удачи!

13
ответ дан 1 December 2019 в 13:47
поделиться

Многие аспекты веб-приложений FB (например, FBML, FQL) являются общими для приложений FB и FB Connect. Я бы сказал, что FB Connect с большей вероятностью будет использоваться на сайтах, реализующих больше визуальных элементов FB (FBML). Кроме того, FB Connect можно использовать в автономном режиме (где у пользователя нет текущего сеанса напрямую с FB).

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

2
ответ дан 1 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

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