{ "labelLang" : "eng", "responseDate" : "2024-03-29 02:41", "content" : { "otype" : "BookChapter", "mtid" : 30647378, "status" : "APPROVED", "published" : true, "unhandledTickets" : 0, "deleted" : false, "lastRefresh" : "2020-02-03T12:43:43.013+0000", "lastModified" : "2020-02-03T12:42:30.057+0000", "created" : "2019-04-28T00:06:08.709+0000", "creator" : { "otype" : "Author", "mtid" : 10012498, "link" : "/api/author/10012498", "label" : "Zoltán Porkoláb (Programozási nyelvek, generatív programozás, szoftvermetrikák)", "familyName" : "Porkoláb", "givenName" : "Zoltán", "published" : true, "oldId" : 10012498, "snippet" : true }, "lastDuplumOK" : "2020-02-03T12:42:36.401+0000", "lastDuplumSearch" : "2020-02-03T12:42:36.401+0000", "core" : false, "citation" : true, "publicationPending" : false, "type" : { "otype" : "PublicationType", "mtid" : 25, "link" : "/api/publicationtype/25", "label" : "Chapter in Book", "code" : 25, "otypeName" : "BookChapter", "listPosition" : 2, "published" : true, "oldId" : 25, "snippet" : true }, "subType" : { "otype" : "SubType", "mtid" : 10000312, "link" : "/api/subtype/10000312", "label" : "Conference paper (Chapter in Book)", "name" : "Konferenciaközlemény", "nameEng" : "Conference paper", "docType" : { "otype" : "PublicationType", "mtid" : 25, "link" : "/api/publicationtype/25", "label" : "Chapter in Book", "code" : 25, "otypeName" : "BookChapter", "listPosition" : 2, "published" : true, "oldId" : 25, "snippet" : true }, "listPosition" : 228, "published" : true, "oldId" : 10000312, "snippet" : true }, "category" : { "otype" : "Category", "mtid" : 1, "link" : "/api/category/1", "label" : "Scientific", "published" : true, "oldId" : 1, "snippet" : true }, "languages" : [ { "otype" : "Language", "mtid" : 10002, "link" : "/api/language/10002", "label" : "English", "name" : "Angol", "nameEng" : "English", "published" : true, "oldId" : 2, "snippet" : true } ], "firstAuthor" : "Paul, Keir", "authorships" : [ { "otype" : "PersonAuthorship", "mtid" : 86882714, "link" : "/api/authorship/86882714", "label" : "Paul, Keir", "listPosition" : 1, "share" : 0.0, "first" : true, "last" : false, "familyName" : "Paul", "givenName" : "Keir", "authorTyped" : true, "editorTyped" : false, "otherTyped" : false, "type" : { "otype" : "AuthorshipType", "mtid" : 1, "link" : "/api/authorshiptype/1", "label" : "Author", "code" : 0, "published" : true, "oldId" : 0, "snippet" : true }, "published" : false, "snippet" : true }, { "otype" : "PersonAuthorship", "mtid" : 86882715, "link" : "/api/authorship/86882715", "label" : "Andrew, Gozillon", "listPosition" : 2, "share" : 0.0, "first" : false, "last" : false, "familyName" : "Andrew", "givenName" : "Gozillon", "authorTyped" : true, "editorTyped" : false, "otherTyped" : false, "type" : { "otype" : "AuthorshipType", "mtid" : 1, "link" : "/api/authorshiptype/1", "label" : "Author", "code" : 0, "published" : true, "oldId" : 0, "snippet" : true }, "published" : false, "snippet" : true }, { "otype" : "PersonAuthorship", "mtid" : 86882716, "link" : "/api/authorship/86882716", "label" : "Seyed, Hossein Haeri", "listPosition" : 3, "share" : 0.0, "first" : false, "last" : true, "familyName" : "Seyed", "givenName" : "Hossein Haeri", "authorTyped" : true, "editorTyped" : false, "otherTyped" : false, "type" : { "otype" : "AuthorshipType", "mtid" : 1, "link" : "/api/authorshiptype/1", "label" : "Author", "code" : 0, "published" : true, "oldId" : 0, "snippet" : true }, "published" : false, "snippet" : true } ], "title" : "Intrinsic Currying for C++ Template Metaprograms", "firstPage" : "46", "lastPage" : "73", "firstPageOrInternalIdForSort" : "46", "pageLength" : 28, "publishedYear" : 2019, "abstractText" : "C++ template metaprogramming is a form of strict functional programming, with a notable absence of intrinsic support for elementary higher-order operations. We describe a variadic template metaprogramming library which offers a model of implicitly curried, left-associative metafunction application through juxtaposition; inspired by languages such as Haskell, OCaml and F♯. New and existing traits and metafunctions, constructed according to conventional idioms, seemlessly take advantage of the framework’s features. Furthermore, a distinctive versatility is exposed, allowing a user to define higher-order metafunction classes using an equational definition syntax; without recourse to elaborate nested metafunctions. The primary type expression evaluator of the library is derived from a single application of an elementary folding combinator for type lists. The definition of the fold’s binary operator argument is therefore a focal point; and constructed mindful that substitution failure of a template parameter’s deduced type produces no compilation error. Two distinctive features of C++ metafunctions require particular consideration: zero argument metafunctions; and variadic metafunctions. We conclude by demonstrating characteristics of the library’s main evaluation metafunction in conjunction with the universal property of an updated right-fold combinator, to compose a range of metafunctions including map, reverse, left-fold, and the Ackermann function.", "digital" : true, "printed" : true, "sourceYear" : 2019, "foreignEdition" : true, "foreignLanguage" : true, "fullPublication" : true, "conferencePublication" : true, "nationalOrigin" : false, "missingAuthor" : false, "oaType" : "NONE", "oaCheckDate" : "2020-02-03", "oaFree" : false, "citationCount" : 0, "citationCountUnpublished" : 0, "citationCountWoOther" : 0, "independentCitCountWoOther" : 0, "doiCitationCount" : 0, "wosCitationCount" : 0, "scopusCitationCount" : 0, "independentCitationCount" : 0, "unhandledCitationCount" : 0, "citingPubCount" : 0, "independentCitingPubCount" : 0, "unhandledCitingPubCount" : 0, "citedPubCount" : 4, "citedCount" : 4, "hasCitationDuplums" : false, "userChangeableUntil" : "2020-05-03T11:42:29.831+0000", "directInstitutesForSort" : "", "ownerAuthorCount" : 4, "ownerInstituteCount" : 5, "directInstituteCount" : 0, "authorCount" : 3, "contributorCount" : 0, "book" : { "otype" : "Book", "mtid" : 30647365, "link" : "/api/publication/30647365", "label" : "Michał Pałka et al. Trends in Functional Programming.: 19th International Symposium, TFP 2018, Gothenburg, Sweden, June 11–13, 2018, Revised Selected Papers. (2019) ISBN:9783030185053", "core" : false, "citation" : false, "publicationPending" : false, "type" : { "otype" : "PublicationType", "mtid" : 23, "link" : "/api/publicationtype/23", "label" : "Book", "code" : 23, "otypeName" : "Book", "listPosition" : 3, "published" : true, "oldId" : 23, "snippet" : true }, "subType" : { "otype" : "SubType", "mtid" : 10000144, "link" : "/api/subtype/10000144", "label" : "Conference proceedings (Book)", "name" : "Konferenciakötet", "nameEng" : "Conference proceedings", "docType" : { "otype" : "PublicationType", "mtid" : 23, "link" : "/api/publicationtype/23", "label" : "Book", "code" : 23, "otypeName" : "Book", "listPosition" : 3, "published" : true, "oldId" : 23, "snippet" : true }, "listPosition" : 345, "published" : true, "oldId" : 10000144, "snippet" : true }, "category" : { "otype" : "Category", "mtid" : 1, "link" : "/api/category/1", "label" : "Scientific", "published" : true, "oldId" : 1, "snippet" : true }, "languages" : [ { "otype" : "Language", "mtid" : 10002, "link" : "/api/language/10002", "label" : "English", "name" : "Angol", "nameEng" : "English", "published" : true, "oldId" : 2, "snippet" : true } ], "title" : "Trends in Functional Programming.", "identifiers" : [ { "otype" : "PublicationIdentifier", "mtid" : 15570339, "link" : "/api/publicationidentifier/15570339", "label" : "ISBN: 9783030185053", "source" : { "otype" : "PlainSource", "mtid" : 122, "link" : "/api/publicationsource/122", "label" : "ISBN", "type" : { "otype" : "PublicationSourceType", "mtid" : 10002, "link" : "/api/publicationsourcetype/10002", "label" : "Egyéb", "mayHaveOa" : false, "published" : true, "snippet" : true }, "name" : "ISBN", "nameEng" : "ISBN", "linkPattern" : "https://www.worldcat.org/search?q=isbn%3A@@@", "publiclyVisible" : true, "published" : true, "oldId" : 122, "snippet" : true }, "idValue" : "9783030185053", "realUrl" : "https://www.worldcat.org/search?q=isbn%3A9783030185053", "published" : false, "snippet" : true } ], "publishedAt" : [ { "otype" : "City", "mtid" : 17531, "link" : "/api/city/17531", "label" : "Berlin; Heidelberg, Germany *", "partOf" : { "otype" : "Country", "mtid" : 10011, "link" : "/api/country/10011", "label" : "Germany", "published" : true, "oldId" : 5, "snippet" : true }, "published" : true, "snippet" : true } ], "publishedYear" : 2019, "foreignEdition" : true, "foreignLanguage" : true, "fullPublication" : false, "conferencePublication" : true, "nationalOrigin" : false, "published" : true, "snippet" : true }, "hasQualityFactor" : false, "link" : "/api/publication/30647378", "label" : "Paul Keir et al. Intrinsic Currying for C++ Template Metaprograms. (2019) In: Trends in Functional Programming. pp. 46-73", "template" : "