{ localUrl: '../page/currying.html', arbitalUrl: 'https://arbital.com/p/currying', rawJsonUrl: '../raw/50p.json', likeableId: '2934', likeableType: 'page', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [ 'EricBruylant' ], pageId: 'currying', edit: '4', editSummary: '', prevEdit: '3', currentEdit: '4', wasPublished: 'true', type: 'wiki', title: 'Currying', clickbait: 'Transforms a function of many arguments into a function into a function of a single argument', textLength: '1209', alias: 'currying', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'MYass', editCreatedAt: '2016-07-18 00:22:13', pageCreatorId: 'MYass', pageCreatedAt: '2016-07-03 01:52:33', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '0', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '50', text: 'Currying converts a [-3jy] of N [input inputs] into a function of a single input, which returns a function that takes a second input, which returns a function that takes a third input, and so on, until N functions have been evaluated and N inputs have been taken, at which point the original function is evaluated on the given inputs and the result is returned.\n\nFor example:\n\nConsider a function of four parameters, $F:(X,Y,Z,N)→R$.\n\nThe curried version of the function, $curry(F)$ would have the type signature $X→(Y→(Z→(N→R)))$, and $curry(F)(4)(3)(2)(1)$ would equal $F(4,3,2,1)$.\n\nCurrying is named after the logician Haskell Curry. If you can't remember this derivation and need a mnemonic, you might like to imagine a function being cooked in a curry so thoroughly that it breaks up into small, bite-sized pieces, just as functional currying breaks a function up into smaller functions. (It might also help to note that there is a programming language also named after Haskell Curry (Haskell), that features currying prominently. All functions in Haskell are pre-curried by convention. This often makes [partially applying](https://wiki.haskell.org/Partial_application) functions effortless.)', metaText: '', isTextLoaded: 'true', isSubscribedToDiscussion: 'false', isSubscribedToUser: 'false', isSubscribedAsMaintainer: 'false', discussionSubscriberCount: '2', maintainerCount: '2', userSubscriberCount: '0', lastVisit: '', hasDraft: 'false', votes: [], voteSummary: [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' ], muVoteSummary: '0', voteScaling: '0', currentUserVote: '-2', voteCount: '0', lockedVoteType: '', maxEditEver: '0', redLinkCount: '0', lockedBy: '', lockedUntil: '', nextPageId: '', prevPageId: '', usedAsMastery: 'false', proposalEditNum: '0', permissions: { edit: { has: 'false', reason: 'You don't have domain permission to edit this page' }, proposeEdit: { has: 'true', reason: '' }, delete: { has: 'false', reason: 'You don't have domain permission to delete this page' }, comment: { has: 'false', reason: 'You can't comment in this domain because you are not a member' }, proposeComment: { has: 'true', reason: '' } }, summaries: { Summary: 'Currying converts a [-3jy] of N [input inputs] into a function of a single input, which returns a function that takes a second input, which returns a function that takes a third input, and so on, until N functions have been evaluated and N inputs have been taken, at which point the original function is evaluated on the given inputs and the result is returned.' }, creatorIds: [ 'MYass', 'EricBruylant' ], childIds: [], parentIds: [ 'math', 'function' ], commentIds: [], questionIds: [], tagIds: [], relatedIds: [], markIds: [], explanations: [], learnMore: [ { id: '4701', parentId: 'currying', childId: 'currying', type: 'subject', creatorId: 'MYass', createdAt: '2016-07-03 00:21:08', level: '1', isStrong: 'false', everPublished: 'true' } ], requirements: [ { id: '4700', parentId: 'function', childId: 'currying', type: 'requirement', creatorId: 'MYass', createdAt: '2016-07-03 00:20:13', level: '1', isStrong: 'false', everPublished: 'true' } ], subjects: [ { id: '4701', parentId: 'currying', childId: 'currying', type: 'subject', creatorId: 'MYass', createdAt: '2016-07-03 00:21:08', level: '1', isStrong: 'false', everPublished: 'true' } ], lenses: [], lensParentId: '', pathPages: [], learnMoreTaughtMap: {}, learnMoreCoveredMap: {}, learnMoreRequiredMap: {}, editHistory: {}, domainSubmissions: {}, answers: [], answerCount: '0', commentCount: '0', newCommentCount: '0', linkedMarkCount: '0', changeLogs: [ { likeableId: '3105', likeableType: 'changeLog', myLikeValue: '0', likeCount: '2', dislikeCount: '0', likeScore: '2', individualLikes: [], id: '17067', pageId: 'currying', userId: 'MYass', edit: '4', type: 'newEdit', createdAt: '2016-07-18 00:22:13', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15297', pageId: 'currying', userId: 'EricBruylant', edit: '3', type: 'newEdit', createdAt: '2016-07-04 19:18:39', auxPageId: '', oldSettingsValue: '', newSettingsValue: 'added links' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15296', pageId: 'currying', userId: 'EricBruylant', edit: '0', type: 'newParent', createdAt: '2016-07-04 19:15:02', auxPageId: 'function', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15294', pageId: 'currying', userId: 'EricBruylant', edit: '0', type: 'newParent', createdAt: '2016-07-04 19:14:37', auxPageId: 'math', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15155', pageId: 'currying', userId: 'MYass', edit: '2', type: 'newEdit', createdAt: '2016-07-03 04:09:03', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15149', pageId: 'currying', userId: 'MYass', edit: '0', type: 'newRequirement', createdAt: '2016-07-03 01:52:35', auxPageId: 'function', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15150', pageId: 'currying', userId: 'MYass', edit: '0', type: 'newTeacher', createdAt: '2016-07-03 01:52:35', auxPageId: 'currying', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15151', pageId: 'currying', userId: 'MYass', edit: '0', type: 'newSubject', createdAt: '2016-07-03 01:52:35', auxPageId: 'currying', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15148', pageId: 'currying', userId: 'MYass', edit: '1', type: 'newEdit', createdAt: '2016-07-03 01:52:33', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }