{"id":493,"date":"2020-04-10T08:03:10","date_gmt":"2020-04-10T08:03:10","guid":{"rendered":"http:\/\/learnlearn.uk\/alevelcs\/?page_id=493"},"modified":"2020-06-16T02:21:12","modified_gmt":"2020-06-16T02:21:12","slug":"recursion","status":"publish","type":"page","link":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/","title":{"rendered":"Recursion"},"content":{"rendered":"<div class=\"responsive-tabs\">\n<h2 class=\"tabtitle\">Intro<\/h2>\n<div class=\"tabcontent\">\n\n<h3>What is recursion?<\/h3>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignright wp-image-700 size-full\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-stack.png?_t=1591066646\" alt=\"\" width=\"393\" height=\"506\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-stack.png 393w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-stack-233x300.png 233w\" sizes=\"(max-width: 393px) 100vw, 393px\" \/><\/p>\n<p>Recursion in Computer Science is where a function calls itself. When a function is is called recursively an extra frame(layer) is added to the stack, with each subsequent frame being added on top. Recursion will continue until the base case is reached, at which point the inner most call will return and the top frame removed from the stack.<\/p>\n<p>In order to be successfully recursive a recursive function must obey 3 rules:<\/p>\n<p><strong>3 Rules of recursion<\/strong><\/p>\n<ul>\n<li>The algorithm must have a base case<\/li>\n<li>The algorithm must work towards the base case<\/li>\n<li>The algorithm must call itself recursively<\/li>\n<\/ul>\n<p><strong>Why use recursion?<\/strong><\/p>\n<p>Recursion is useful in many problems where iteration would prove difficult or impossible.<\/p>\n<p><strong>Stacks and Unwinding<\/strong><\/p>\n<p>Unwinding is the process of returning from one stack from back down to the next, and so on until recursion is complete.<\/p>\n<p><strong>Compiler and the stack &#8211; what does it have to do?<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Stack Overflow Exceptions &amp; Recursion Depth\u00a0 Limits<\/strong><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-708 alignnone\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursion-error-python.png\" alt=\"\" width=\"820\" height=\"59\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursion-error-python.png 820w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursion-error-python-300x22.png 300w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursion-error-python-768x55.png 768w\" sizes=\"(max-width: 820px) 100vw, 820px\" \/><\/p>\n<p>Every time a function enters another level of recursion an extra frame is added to the call stack. In order to process the frame\u00a0 an area of memory has to be allocated. Eventually the memory allocated for recursion is exhausted and the Recursive Depth Limit is reached. If the program attempts a further recursive call then a Stack Overflow Exception Error will be raised.<\/p>\n\n<\/div><h2 class=\"tabtitle\">Video<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Topic Video<\/h3>\n<p><a href=\"https:\/\/drive.google.com\/file\/d\/1FXt0JGj50p9Rj74bQo0ez2DM5GCBXKd3\/view?usp=sharing\">Can&#8217;t access YouTube? Click here for the Google Drive version.<\/a><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/K2ZI95gBKiE\" width=\"900\" height=\"500\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n\n<\/div><h2 class=\"tabtitle\">Factorial<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Factorial Example<\/h3>\n<p>This trivial example uses recursion to calculate the factorial of a number. This is a classic example that often appears on exam paper questions.<\/p>\n<p>The factorial of a number is calculated by multiplying it by all the positive integers smaller than it.<\/p>\n<p>E.g. Factorial of 5 is 5*4*3*2*1 = 120<\/p>\n<p>&nbsp;<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/trinket.io\/embed\/python\/9c4be23436\" width=\"100%\" height=\"600\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n\n<\/div><h2 class=\"tabtitle\">Fractal Tree<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Fractal Tree Visual Demonstration<\/h3>\n<p>This fractal tree algorithm uses recursion and demonstrates visually how depth-first recursive tree traversal works, as each branch is explored to its fullest depth before moving onto the next branch.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/trinket.io\/embed\/python\/7918d0121b\" width=\"100%\" height=\"600\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n\n<\/div><h2 class=\"tabtitle\">File Traversal<\/h2>\n<div class=\"tabcontent\">\n\n<h3>File \/ Folder Tree Traversal<\/h3>\n<p>A great example of how tree traversal can be used practically is in file system tree traversal.<\/p>\n<p>The algorithm is supplied with a folder\/drive name and the files\/folders are explored recursively.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/richardbwest\/a2f8e56d2894d1671f73841065648d56.js\"><\/script><\/p>\n\n<\/div><h2 class=\"tabtitle\">Binary Search<\/h2>\n<div class=\"tabcontent\">\n\n<p>Binary Search Algorthm<\/p>\n<p>The binary search algorithm can be programmed using a recursive algorithm.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/trinket.io\/embed\/python\/3ebd9fd020\" width=\"100%\" height=\"600\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n\n<\/div><h2 class=\"tabtitle\">Brute Force<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Brute Force Password Hacker &#8211; For Loop Version<\/h3>\n<p>Here is a brute force password hacker that creates a tree of password possibilities. Although this algorithm works as expected it has 2 problems:<\/p>\n<ol>\n<li>If the maximum password length is changed from 4 to a larger number you are going to need another nested loop for each extra possible character.<\/li>\n<li>It is slightly slower than the recursive version below and would be much slower if a longer password \/ extra possible characters were used.<\/li>\n<\/ol>\n<h3><script src=\"https:\/\/gist.github.com\/richardbwest\/68db0a64f7f772c57b0de0c48ecfb5eb.js\"><\/script><\/h3>\n<h3>Brute Force Password Hacker &#8211; Recursive Version<\/h3>\n<p>In this version of the password hacker it uses recursion. As you can see from the code it is both easy to read and to maintain. Changing the maximum password length is a matter of simply changing the assigned value.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/richardbwest\/006dc89920e69b4a5e9dcf211d70e4c1.js\"><\/script><br \/>\n<iframe loading=\"lazy\" src=\"https:\/\/trinket.io\/embed\/python\/6aadd15529\" width=\"100%\" height=\"600\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n\n<\/div><h2 class=\"tabtitle\">Challenges<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Programming Challenges<\/h3>\n<p><strong>Challenge 1 &#8211; Sum of List of numbers<\/strong><\/p>\n<p>Write a program that adds up all the numbers in a list<\/p>\n<p><strong>Challenge 2 &#8211; Fibonacci Sequence<\/strong><\/p>\n<p>Write a program that solves the Fibonacci sequence for a given number.<\/p>\n<p><strong>Challenge 3 &#8211; Meal Options<\/strong><\/p>\n<p>Customers can choose from the follow options each day :<\/p>\n<ul>\n<li>Pizza<\/li>\n<li>Spaghetti<\/li>\n<li>Salad<\/li>\n<li>Curry<\/li>\n<li>Hamburger<\/li>\n<\/ul>\n<p>Use recursion to generate a list of all the possible combinations that a customer could choose over the three days.<\/p>\n<p><strong>Challenge 4 &#8211; File Search<\/strong><\/p>\n<p>Adapt the File Tree traversal program so that you can use it to search for a file name and it will print out the location of all files with that name.<\/p>\n<p><strong>Challenge 5 &#8211; Adapt the tree traversal program<\/strong><\/p>\n<div id=\"attachment_709\" style=\"width: 536px\" class=\"wp-caption alignright\"><img aria-describedby=\"caption-attachment-709\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-709\" src=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-tree-colours.png\" alt=\"\" width=\"526\" height=\"481\" srcset=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-tree-colours.png 526w, https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-tree-colours-300x274.png 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><p id=\"caption-attachment-709\" class=\"wp-caption-text\">A colourful implementation of the recursive tree algorithm<\/p><\/div>\n<ul>\n<li>Adapt the program so that the leaves of the branch are green<\/li>\n<li>Adapt the program so that the branches get steadily thinner<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/docs.python.org\/3.3\/library\/turtle.html?highlight=turtle\">This page should help you get started<\/a><\/p>\n<p><strong>Further Challenges and Ideas<\/strong><\/p>\n<p>Here are some more links for recursion challenges to help you get started.<\/p>\n<p><a href=\"https:\/\/www.w3resource.com\/python-exercises\/data-structures-and-algorithms\/python-recursion.php\">More Maths based Recursion Programs<\/a><\/p>\n<p><a href=\"https:\/\/www.techiedelight.com\/recursion-practice-problems-with-solutions\/\">List of other common recursion problems<\/a><\/p>\n\n<\/div><h2 class=\"tabtitle\">Resources<\/h2>\n<div class=\"tabcontent\">\n\n<h3>Resources<\/h3>\n<p><a href=\"https:\/\/docs.google.com\/presentation\/d\/1YYhHgvNWgism-yp1bubjxAIALsr2WCQgVUPAZrMkhV8\/edit?usp=sharing\">Teacher Slideshow Document<\/a><\/p>\n<p><a href=\"https:\/\/youtu.be\/Mv9NEXX1VHc\">What is recursion ComputerPhile Video<\/a><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=-PX0BV9hGZY\">Tail Call Optimization \/ Stack Overflow Song (Extension Task)<\/a><\/p>\n<p><a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/visualize\">Online Python Visualiser<\/a><\/p>\n<p><a href=\"https:\/\/isaaccomputerscience.org\/topics\/recursion\">Isaac Computer Science Page<\/a><\/p>\n<p><strong>Theory Revision Activity &#8211; Recursion Requirements<\/strong><\/p>\n<p>Work through each of the 6\u00a0 examples of recursion (Factorial, Fractal Tree, File Traversal, Binary Search, Brute Force) and for each example put together a page on a document detailing how the example satisfies the rules of recursion.<a href=\"https:\/\/docs.google.com\/document\/d\/1enH5l5TKhYIv0orcy140MgxRKS8XfPbKLmraNd-bgZk\/edit?usp=sharing\"> See this example.<\/a><\/p>\n<p>Past Paper Questions<\/p>\n<p><a href=\"https:\/\/pastpapers.papacambridge.com\/view.php?id=Cambridge%20International%20Examinations%20%28CIE%29\/AS%20and%20A%20Level\/Computer%20Science%20-%209608\/2018-Oct-Nov\/9608_w18_qp_41.pdf\">W18 Paper 41 &#8211; Qn 4<\/a><\/p>\n<p>&nbsp;<\/p>\n<\/div><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is recursion? Recursion in Computer Science is where a function calls itself. When a function is is called recursively an extra frame(layer) is added to the stack, with each subsequent frame being added on top. Recursion will continue until the base case is reached, at which point the inner most call will return and&hellip;&nbsp;<a href=\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">Recursion<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"on","neve_meta_content_width":80,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recursion - A Level Computer Science<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursion - A Level Computer Science\" \/>\n<meta property=\"og:description\" content=\"What is recursion? Recursion in Computer Science is where a function calls itself. When a function is is called recursively an extra frame(layer) is added to the stack, with each subsequent frame being added on top. Recursion will continue until the base case is reached, at which point the inner most call will return and&hellip;&nbsp;Read More &raquo;Recursion\" \/>\n<meta property=\"og:url\" content=\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\" \/>\n<meta property=\"og:site_name\" content=\"A Level Computer Science\" \/>\n<meta property=\"article:modified_time\" content=\"2020-06-16T02:21:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-stack.png?_t=1591066646\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\",\"name\":\"Recursion - A Level Computer Science\",\"isPartOf\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\"},\"datePublished\":\"2020-04-10T08:03:10+00:00\",\"dateModified\":\"2020-06-16T02:21:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/recursion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"A Level Computer Science Home\",\"item\":\"https:\/\/learnlearn.uk\/alevelcs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recursion\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#website\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"name\":\"A Level Computer Science\",\"description\":\"CIE Specification\",\"publisher\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#organization\",\"name\":\"A Level Computer Science\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"contentUrl\":\"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png\",\"width\":710,\"height\":98,\"caption\":\"A Level Computer Science\"},\"image\":{\"@id\":\"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recursion - A Level Computer Science","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/","og_locale":"en_GB","og_type":"article","og_title":"Recursion - A Level Computer Science","og_description":"What is recursion? Recursion in Computer Science is where a function calls itself. When a function is is called recursively an extra frame(layer) is added to the stack, with each subsequent frame being added on top. Recursion will continue until the base case is reached, at which point the inner most call will return and&hellip;&nbsp;Read More &raquo;Recursion","og_url":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/","og_site_name":"A Level Computer Science","article_modified_time":"2020-06-16T02:21:12+00:00","og_image":[{"url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2020\/04\/recursive-stack.png?_t=1591066646"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/","url":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/","name":"Recursion - A Level Computer Science","isPartOf":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#website"},"datePublished":"2020-04-10T08:03:10+00:00","dateModified":"2020-06-16T02:21:12+00:00","breadcrumb":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/learnlearn.uk\/alevelcs\/recursion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/learnlearn.uk\/alevelcs\/recursion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"A Level Computer Science Home","item":"https:\/\/learnlearn.uk\/alevelcs\/"},{"@type":"ListItem","position":2,"name":"Recursion"}]},{"@type":"WebSite","@id":"https:\/\/learnlearn.uk\/alevelcs\/#website","url":"https:\/\/learnlearn.uk\/alevelcs\/","name":"A Level Computer Science","description":"CIE Specification","publisher":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/learnlearn.uk\/alevelcs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/learnlearn.uk\/alevelcs\/#organization","name":"A Level Computer Science","url":"https:\/\/learnlearn.uk\/alevelcs\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/","url":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","contentUrl":"https:\/\/learnlearn.uk\/alevelcs\/wp-content\/uploads\/sites\/20\/2019\/09\/LearnLearnLogowhite.png","width":710,"height":98,"caption":"A Level Computer Science"},"image":{"@id":"https:\/\/learnlearn.uk\/alevelcs\/#\/schema\/logo\/image\/"}}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"learnlearnadmin","author_link":"https:\/\/learnlearn.uk\/alevelcs\/author\/learnlearnadmin\/"},"rttpg_comment":0,"rttpg_category":null,"rttpg_excerpt":"What is recursion? Recursion in Computer Science is where a function calls itself. When a function is is called recursively an extra frame(layer) is added to the stack, with each subsequent frame being added on top. Recursion will continue until the base case is reached, at which point the inner most call will return and&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/493"}],"collection":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/comments?post=493"}],"version-history":[{"count":27,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/493\/revisions"}],"predecessor-version":[{"id":782,"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/pages\/493\/revisions\/782"}],"wp:attachment":[{"href":"https:\/\/learnlearn.uk\/alevelcs\/wp-json\/wp\/v2\/media?parent=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}