{"id":"https://openalex.org/W2796830478","doi":"https://doi.org/10.1007/978-3-319-89884-1_2","title":"HOBiT: Programming Lenses Without Using Lens Combinators","display_name":"HOBiT: Programming Lenses Without Using Lens Combinators","publication_year":2018,"publication_date":"2018-01-01","ids":{"openalex":"https://openalex.org/W2796830478","doi":"https://doi.org/10.1007/978-3-319-89884-1_2","mag":"2796830478"},"language":"en","primary_location":{"id":"doi:10.1007/978-3-319-89884-1_2","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-319-89884-1_2","pdf_url":"https://link.springer.com/content/pdf/10.1007%2F978-3-319-89884-1_2.pdf","source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},"type":"book-chapter","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"hybrid","oa_url":"https://link.springer.com/content/pdf/10.1007%2F978-3-319-89884-1_2.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5004575068","display_name":"Kazutaka Matsuda","orcid":"https://orcid.org/0000-0002-9747-4899"},"institutions":[{"id":"https://openalex.org/I201537933","display_name":"Tohoku University","ror":"https://ror.org/01dq60k83","country_code":"JP","type":"education","lineage":["https://openalex.org/I201537933"]}],"countries":["JP"],"is_corresponding":true,"raw_author_name":"Kazutaka Matsuda","raw_affiliation_strings":["Tohoku University, Sendai, 980-8579, Japan"],"affiliations":[{"raw_affiliation_string":"Tohoku University, Sendai, 980-8579, Japan","institution_ids":["https://openalex.org/I201537933"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5074307489","display_name":"Meng Wang","orcid":"https://orcid.org/0000-0001-7780-630X"},"institutions":[{"id":"https://openalex.org/I36234482","display_name":"University of Bristol","ror":"https://ror.org/0524sp257","country_code":"GB","type":"education","lineage":["https://openalex.org/I36234482"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Meng Wang","raw_affiliation_strings":["University of Bristol, Bristol, BS8 1TH, UK"],"affiliations":[{"raw_affiliation_string":"University of Bristol, Bristol, BS8 1TH, UK","institution_ids":["https://openalex.org/I36234482"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5004575068"],"corresponding_institution_ids":["https://openalex.org/I201537933"],"apc_list":{"value":5000,"currency":"EUR","value_usd":5392},"apc_paid":{"value":5000,"currency":"EUR","value_usd":5392},"fwci":2.9866,"has_fulltext":true,"cited_by_count":26,"citation_normalized_percentile":{"value":0.93363717,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"31","last_page":"59"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9954000115394592,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8772875070571899},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.8196953535079956},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7782675623893738},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7358101606369019},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.6461074352264404},{"id":"https://openalex.org/keywords/lens","display_name":"Lens (geology)","score":0.5664944648742676},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.5173146724700928},{"id":"https://openalex.org/keywords/programming-style","display_name":"Programming style","score":0.5152561664581299},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.4228579103946686},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.4220132827758789},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.20439088344573975}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8772875070571899},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.8196953535079956},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7782675623893738},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7358101606369019},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.6461074352264404},{"id":"https://openalex.org/C15336307","wikidata":"https://www.wikidata.org/wiki/Q1766051","display_name":"Lens (geology)","level":2,"score":0.5664944648742676},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.5173146724700928},{"id":"https://openalex.org/C2776245389","wikidata":"https://www.wikidata.org/wiki/Q962139","display_name":"Programming style","level":2,"score":0.5152561664581299},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.4228579103946686},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.4220132827758789},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.20439088344573975},{"id":"https://openalex.org/C78762247","wikidata":"https://www.wikidata.org/wiki/Q1273174","display_name":"Petroleum engineering","level":1,"score":0.0},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1007/978-3-319-89884-1_2","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-319-89884-1_2","pdf_url":"https://link.springer.com/content/pdf/10.1007%2F978-3-319-89884-1_2.pdf","source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},{"id":"pmh:oai:research-information.bris.ac.uk:publications/dd348b54-c2d3-4708-b387-69c7eed0bd90","is_oa":true,"landing_page_url":"https://research-information.bris.ac.uk/en/publications/dd348b54-c2d3-4708-b387-69c7eed0bd90","pdf_url":"https://research-information.bris.ac.uk/files/162973126/2018_Book_ProgrammingLanguagesAndSystems_31.pdf","source":{"id":"https://openalex.org/S4306400895","display_name":"Bristol Research (University of Bristol)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I36234482","host_organization_name":"University of Bristol","host_organization_lineage":["https://openalex.org/I36234482"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Matsuda, K & Wang, M 2018, HOBiT : Programming Lenses without using Lens Combinators. in Programming Languages and Systems : 27th European Symposium on Programming, ESOP 2018, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018, Thessaloniki, Greece, April 14-20, 2018, Proceedings. Lecture Notes in Computer Science, vol. 10801, Springer, Cham, pp. 31-59. https://doi.org/10.1007/978-3-319-89884-1_2","raw_type":"contributionToPeriodical"}],"best_oa_location":{"id":"doi:10.1007/978-3-319-89884-1_2","is_oa":true,"landing_page_url":"https://doi.org/10.1007/978-3-319-89884-1_2","pdf_url":"https://link.springer.com/content/pdf/10.1007%2F978-3-319-89884-1_2.pdf","source":{"id":"https://openalex.org/S106296714","display_name":"Lecture notes in computer science","issn_l":"0302-9743","issn":["0302-9743","1611-3349"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319900","host_organization_name":"Springer Science+Business Media","host_organization_lineage":["https://openalex.org/P4310319900","https://openalex.org/P4310319965"],"host_organization_lineage_names":["Springer Science+Business Media","Springer Nature"],"type":"book series"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Lecture Notes in Computer Science","raw_type":"book-chapter"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G1069223013","display_name":null,"funder_award_id":"JSPS KAKENHI","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G2854736489","display_name":"\u8089\u773c\u89e3\u5256\u5b66\u4e26\u3073\u306b\u767a\u751f\u5b66\u6307\u5c0e\u7528\u306e\u30ab\u30e9\u30fc\u30c6\u30ec\u30d3, \u30ab\u30e1\u30e9\u53ca\u3073\u30ab\u30e9\u30fc\u30d3\u30c7\u30aa, \u30c6\u30fc\u30d7\u30ec\u30b3\u30fc\u30c0\u30fc\u306e\u958b\u767a\u3068\u30d3\u30c7\u30aa\u30c6\u30fc\u30d7\u306e\u88fd\u4f5c","funder_award_id":"470002","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G3459562248","display_name":null,"funder_award_id":"Grant","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G4227499671","display_name":null,"funder_award_id":"KAKENHI Grant","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G4636223006","display_name":null,"funder_award_id":"JSPS KAK","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G5338727095","display_name":"\u8089\u773c\u89e3\u5256\u5b66\u4e26\u3073\u306b\u767a\u751f\u5b66\u6307\u5c0e\u7528\u306e\u30ab\u30e9\u30fc\u30c6\u30ec\u30d3, \u30d3\u30c7\u30aa\u30b3\u30fc\u30c0\u30fc\u306e\u958b\u767a\u3068\u30d3\u30c7\u30aa\u30c6\u30fc\u30d7\u306e\u88fd\u4f5c","funder_award_id":"70002","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G5786340949","display_name":null,"funder_award_id":"KAKENHI Grant Number","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G8251350064","display_name":null,"funder_award_id":"15H02681","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G8430481527","display_name":null,"funder_award_id":"Number","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G8689175723","display_name":null,"funder_award_id":"15K15966","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"},{"id":"https://openalex.org/G8766025622","display_name":null,"funder_award_id":"24700020","funder_id":"https://openalex.org/F4320334764","funder_display_name":"Japan Society for the Promotion of Science"}],"funders":[{"id":"https://openalex.org/F4320334764","display_name":"Japan Society for the Promotion of Science","ror":"https://ror.org/00hhkn466"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2796830478.pdf","grobid_xml":"https://content.openalex.org/works/W2796830478.grobid-xml"},"referenced_works_count":39,"referenced_works":["https://openalex.org/W1506770266","https://openalex.org/W1540138108","https://openalex.org/W1555897920","https://openalex.org/W1567793656","https://openalex.org/W1568396250","https://openalex.org/W1570178357","https://openalex.org/W1591846509","https://openalex.org/W1968796785","https://openalex.org/W1972376146","https://openalex.org/W2000616678","https://openalex.org/W2019746614","https://openalex.org/W2020513727","https://openalex.org/W2024951218","https://openalex.org/W2029408547","https://openalex.org/W2037471787","https://openalex.org/W2044999110","https://openalex.org/W2046832714","https://openalex.org/W2058338955","https://openalex.org/W2076676096","https://openalex.org/W2088527260","https://openalex.org/W2092546644","https://openalex.org/W2103463094","https://openalex.org/W2105427466","https://openalex.org/W2113582770","https://openalex.org/W2121357705","https://openalex.org/W2124274632","https://openalex.org/W2128496924","https://openalex.org/W2136677980","https://openalex.org/W2150789072","https://openalex.org/W2151592950","https://openalex.org/W2294683416","https://openalex.org/W2510433231","https://openalex.org/W2794506834","https://openalex.org/W2885852056","https://openalex.org/W3043523721","https://openalex.org/W3146412812","https://openalex.org/W4237712875","https://openalex.org/W4245100030","https://openalex.org/W4253929418"],"related_works":["https://openalex.org/W2949151943","https://openalex.org/W2084470481","https://openalex.org/W2150616836","https://openalex.org/W2521829344","https://openalex.org/W1734457603","https://openalex.org/W2155480936","https://openalex.org/W2983814404","https://openalex.org/W2011055092","https://openalex.org/W3023013741","https://openalex.org/W1483040095"],"abstract_inverted_index":{"We":[0,189],"propose":[1,138],"HOBiT,":[2,144],"a":[3,34,37,118,139,174],"higher-order":[4],"bidirectional":[5,13,31,131,141,165,171],"programming":[6,84,142],"language,":[7,201],"in":[8,15,48,70,145,173,207],"which":[9,90,146],"users":[10],"can":[11],"write":[12,170],"programs":[14,172,206],"the":[16,25,52,56,106,128,180,184,192,197,200],"familiar":[17],"style":[18,177],"of":[19,28,39,83,108,124,130,187,199],"conventional":[20],"functional":[21,176],"programming,":[22,166],"while":[23],"enjoying":[24],"full":[26,185],"expressiveness":[27,186],"lenses.":[29,188],"A":[30],"transformation,":[32],"or":[33],"lens,":[35],"is":[36,54,58,68,86],"pair":[38],"mappings":[40],"between":[41],"source":[42,57],"and":[43,76,110,153,178,196,202],"view":[44,53],"data":[45],"objects,":[46],"one":[47],"each":[49],"direction.":[50],"When":[51],"modified,":[55],"updated":[59],"accordingly":[60],"with":[61,87,160,217],"respect":[62],"to":[63,98,117,157,169],"some":[64],"laws\u2014a":[65],"pattern":[66],"that":[67,94,205],"found":[69],"databases,":[71],"model-driven":[72],"development,":[73],"compiler":[74],"construction,":[75],"so":[77],"on.":[78],"The":[79],"most":[80],"common":[81],"way":[82],"lenses":[85,97,109,147],"lens":[88],"combinators,":[89],"are":[91,111,148,155],"lens-to-lens":[92],"functions":[93],"compose":[95],"simpler":[96],"form":[99],"more":[100],"complex":[101],"ones.":[102],"Lens":[103],"combinators":[104,154],"preserve":[105],"bidirectionality":[107],"expressive;":[112],"but":[113],"they":[114],"compel":[115],"programmers":[116,168],"specialised":[119],"point-free":[120],"style\u2014i.e.,":[121],"no":[122],"naming":[123],"intermediate":[125],"computation":[126],"results\u2014limiting":[127],"scalability":[129],"programming.":[132],"To":[133],"address":[134],"this":[135],"issue,":[136],"we":[137,212],"new":[140],"language":[143,158],"represented":[149],"as":[150],"standard":[151],"functions,":[152],"mapped":[156],"constructs":[159],"binders.":[161],"This":[162],"design":[163],"transforms":[164],"enabling":[167],"flexible":[175],"at":[179],"same":[181],"time":[182],"access":[183],"formally":[190],"define":[191],"syntax,":[193],"type":[194],"system,":[195],"semantics":[198],"then":[203],"show":[204],"HOBiT":[208,214],"satisfy":[209],"bidirectionality.":[210],"Additionally,":[211],"demonstrate":[213],"\u2019s":[215],"programmability":[216],"examples.":[218]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":7},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":5},{"year":2018,"cited_by_count":3}],"updated_date":"2026-04-13T07:58:08.660418","created_date":"2025-10-10T00:00:00"}
