Pub Date : 2021-07-12DOI: 10.1017/s0956796821000150
S. Krishnamurthi
We recently renamed our “education” track’s papers from Education Pearl to Education Matters. This would be a good time to explain our vision for the track as a whole, as well as this specific renaming.
{"title":"What is an education paper?","authors":"S. Krishnamurthi","doi":"10.1017/s0956796821000150","DOIUrl":"https://doi.org/10.1017/s0956796821000150","url":null,"abstract":"We recently renamed our “education” track’s papers from Education Pearl to Education Matters. This would be a good time to explain our vision for the track as a whole, as well as this specific renaming.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":" ","pages":""},"PeriodicalIF":1.1,"publicationDate":"2021-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1017/s0956796821000150","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44527387","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-07-02DOI: 10.1017/S0956796821000113
J. Gibbons
Abstract The observation that program structure follows data structure is a key lesson in introductory programming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook “How to Design Programs” by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recursive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs.
{"title":"How to design co-programs","authors":"J. Gibbons","doi":"10.1017/S0956796821000113","DOIUrl":"https://doi.org/10.1017/S0956796821000113","url":null,"abstract":"Abstract The observation that program structure follows data structure is a key lesson in introductory programming: good hints for possible program designs can be found by considering the structure of the data concerned. In particular, this lesson is a core message of the influential textbook “How to Design Programs” by Felleisen, Findler, Flatt, and Krishnamurthi. However, that book discusses using only the structure of input data for guiding program design, typically leading towards structurally recursive programs. We argue that novice programmers should also be taught to consider the structure of output data, leading them also towards structurally corecursive programs.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":" ","pages":""},"PeriodicalIF":1.1,"publicationDate":"2021-07-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1017/S0956796821000113","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"47237021","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-17DOI: 10.1017/S0956796821000046
T. Petříček
Let’s say we want to create the two charts in Figure 1. The chart on the left is a bar chart that shows two different values for each bar. The chart on the right consists of two line charts that share the x axis with parts of the timeline highlighted using two different colors.
{"title":"Composable data visualizations","authors":"T. Petříček","doi":"10.1017/S0956796821000046","DOIUrl":"https://doi.org/10.1017/S0956796821000046","url":null,"abstract":"Let’s say we want to create the two charts in Figure 1. The chart on the left is a bar chart that shows two different values for each bar. The chart on the right consists of two line charts that share the x axis with parts of the timeline highlighted using two different colors.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":" ","pages":""},"PeriodicalIF":1.1,"publicationDate":"2021-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1017/S0956796821000046","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48381840","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-01DOI: 10.30820/0942-2285-2021-1-93
Mareike Hattendorf
Die Anwendbarkeit des Agilen Manifestes in digitalen Dienstleistungsunternehmen ist bisher kaum in den Fokus einer praxisorientierten Theorie genommen worden, Gleiches gilt in diesem Kontext auch für die Aktualität agiler Werte und Prinzipen. Im Rahmen meiner Forschung untersuche ich deshalb, wie digitale Dienstleistungsunternehmen das Agile Manifest der Softwareentwicklung anwenden und ob und wie sie sich auf dieser Basis agil transformieren können. Die Beantwortung meiner Forschungsfrage ist für die Praxis sehr bedeutsam. Viele Unternehmen spüren die transformatorischen Anforderungen der Digitalisierung und suchen, teilweise verzweifelt, neue Wege. Mit Blick auf die agile Welt fehlt ihnen allzu oft das Handwerkszeug, gerade wenn es darum geht, erste agile Schritte zu wagen. Eine Anleitung, wie Agilität auf Basis des Agilen Manifests der Softwareentwicklung in Unternehmen umgesetzt werden kann, könnte für viele Unternehmen eine Hilfestellung darstellen.
{"title":"Die Aktualität des Agilen","authors":"Mareike Hattendorf","doi":"10.30820/0942-2285-2021-1-93","DOIUrl":"https://doi.org/10.30820/0942-2285-2021-1-93","url":null,"abstract":"Die Anwendbarkeit des Agilen Manifestes in digitalen Dienstleistungsunternehmen ist bisher kaum in den Fokus einer praxisorientierten Theorie genommen worden, Gleiches gilt in diesem Kontext auch für die Aktualität agiler Werte und Prinzipen. Im Rahmen meiner Forschung untersuche ich deshalb, wie digitale Dienstleistungsunternehmen das Agile Manifest der Softwareentwicklung anwenden und ob und wie sie sich auf dieser Basis agil transformieren können. Die Beantwortung meiner Forschungsfrage ist für die Praxis sehr bedeutsam. Viele Unternehmen spüren die transformatorischen Anforderungen der Digitalisierung und suchen, teilweise verzweifelt, neue Wege. Mit Blick auf die agile Welt fehlt ihnen allzu oft das Handwerkszeug, gerade wenn es darum geht, erste agile Schritte zu wagen. Eine Anleitung, wie Agilität auf Basis des Agilen Manifests der Softwareentwicklung in Unternehmen umgesetzt werden kann, könnte für viele Unternehmen eine Hilfestellung darstellen.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":"29 1","pages":"93-119"},"PeriodicalIF":1.1,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48508664","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-01DOI: 10.30820/0942-2285-2021-1-9
Michael W. Busch, K. Link
Agilität prägt seit einigen Jahren die organisationale Beratungspraxis und wird nicht selten als das unternehmerische »Allheilmittel« für mehr Flexibilität, Mitarbeiterorientierung etc. gehandelt. Das Thema Macht – als ein zentrales Phänomen organisationaler Beeinflussungsprozesse – wird dabei kaum diskutiert. Aufbauend auf einem interdisziplinären Zugang widmen wir uns in diesem Beitrag der Frage, welche Rolle das Phänomen der Macht in agilen Organisationen einnimmt. Unser besonderer Fokus liegt hierbei auf Teams, da diese in agilen Konzepten eine zentrale Rolle einnehmen. Wir zeigen, dass in agilen Organisationen primär auf die Kraft der Überzeugung durch informale Macht und demokratische Willensbildung gesetzt wird, während in der klassisch-hierarchisch strukturierten Organisation der formalen Macht größeres Gewicht als der informalen Macht zukommt. Doch auch in agilen Organisationen sind Regeln und hierarchieähnliche »Letztentscheidungen« erforderlich. Wie genau sich diese im Einzelfall auszugestalten haben, ist durch die jeweiligen kontextuellen Gegebenheiten und Restriktionen zu klären.
{"title":"Was macht Agilität mit Macht?","authors":"Michael W. Busch, K. Link","doi":"10.30820/0942-2285-2021-1-9","DOIUrl":"https://doi.org/10.30820/0942-2285-2021-1-9","url":null,"abstract":"Agilität prägt seit einigen Jahren die organisationale Beratungspraxis und wird nicht selten als das unternehmerische »Allheilmittel« für mehr Flexibilität, Mitarbeiterorientierung etc. gehandelt. Das Thema Macht – als ein zentrales Phänomen organisationaler Beeinflussungsprozesse – wird dabei kaum diskutiert. Aufbauend auf einem interdisziplinären Zugang widmen wir uns in diesem Beitrag der Frage, welche Rolle das Phänomen der Macht in agilen Organisationen einnimmt. Unser besonderer Fokus liegt hierbei auf Teams, da diese in agilen Konzepten eine zentrale Rolle einnehmen. Wir zeigen, dass in agilen Organisationen primär auf die Kraft der Überzeugung durch informale Macht und demokratische Willensbildung gesetzt wird, während in der klassisch-hierarchisch strukturierten Organisation der formalen Macht größeres Gewicht als der informalen Macht zukommt. Doch auch in agilen Organisationen sind Regeln und hierarchieähnliche »Letztentscheidungen« erforderlich. Wie genau sich diese im Einzelfall auszugestalten haben, ist durch die jeweiligen kontextuellen Gegebenheiten und Restriktionen zu klären.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":"29 1","pages":"9-38"},"PeriodicalIF":1.1,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"45007203","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-01DOI: 10.30820/0942-2285-2021-1-72
F. Bull, J. Muster
Der Beitrag geht der Frage nach, welche Folgen der Einführung postbürokratischer Arbeitsweisen in Großorganisationen sich mit Blick auf den Umgang mit Hierarchie beobachten lassen und wie diese aus organisationssoziologischer Sicht verortet werden können. Ziel ist es, der oft einseitig kritischen Debatte zur Rolle von Hierarchie in Organisationen eine differenzierte Perspektive hinzuzufügen, die die Frage nach Funktionen zum Ausgangspunkt der Analyse macht. Anhand zweier empirischer Fälle wird vor dem Hintergrund äquivalenzfunktionalistischer Annahmen eine solche Analyse durchgeführt. Dabei werden die Bezugsprobleme von Strukturlösungen in Form formaler wie auch informaler Hierarchie identifiziert sowie ihre jeweiligen Folgeprobleme nachgezeichnet. Deutlich wird, dass die Realisierung postbürokratischer Arbeitsweisen in den untersuchten Fällen durch die Entstehung von Spannungsfeldern zwischen konkurrierenden Erwartungsstrukturen sowohl an organisationalen Schnittstellen als auch innerhalb der postbürokratischen Einheiten geprägt ist. Der Beitrag schließt mit einem kurzen Resümee und Ausblick zu möglichen Anschlüssen an die hier vorgeschlagene Perspektive.
{"title":"Hierarchie im Spannungsfeld konkurrierender Erwartungen","authors":"F. Bull, J. Muster","doi":"10.30820/0942-2285-2021-1-72","DOIUrl":"https://doi.org/10.30820/0942-2285-2021-1-72","url":null,"abstract":"Der Beitrag geht der Frage nach, welche Folgen der Einführung postbürokratischer Arbeitsweisen in Großorganisationen sich mit Blick auf den Umgang mit Hierarchie beobachten lassen und wie diese aus organisationssoziologischer Sicht verortet werden können. Ziel ist es, der oft einseitig kritischen Debatte zur Rolle von Hierarchie in Organisationen eine differenzierte Perspektive hinzuzufügen, die die Frage nach Funktionen zum Ausgangspunkt der Analyse macht. Anhand zweier empirischer Fälle wird vor dem Hintergrund äquivalenzfunktionalistischer Annahmen eine solche Analyse durchgeführt. Dabei werden die Bezugsprobleme von Strukturlösungen in Form formaler wie auch informaler Hierarchie identifiziert sowie ihre jeweiligen Folgeprobleme nachgezeichnet. Deutlich wird, dass die Realisierung postbürokratischer Arbeitsweisen in den untersuchten Fällen durch die Entstehung von Spannungsfeldern zwischen konkurrierenden Erwartungsstrukturen sowohl an organisationalen Schnittstellen als auch innerhalb der postbürokratischen Einheiten geprägt ist. Der Beitrag schließt mit einem kurzen Resümee und Ausblick zu möglichen Anschlüssen an die hier vorgeschlagene Perspektive.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":"29 1","pages":"72-92"},"PeriodicalIF":1.1,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44226701","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-01DOI: 10.30820/0942-2285-2021-1-120
Franziska Espinoza, Sabine Mommartz
Unternehmen sehen sich mit erheblichem Veränderungsdruck und sozial komplexen Problemstellungen konfrontiert, für die Agilität als Lösung gehandelt wird. Damit verbinden sie die Hoffnung, einen wenig präzise definierten Wandel zu schaffen. Im aktuellen Agilitätsdiskurs zeichnet sich vorläufig weder im Arbeitsalltag noch in der Forschung ein Konsens über den Begriff ab. Dieser bietet eine Projektionsfläche, auf der unterschiedliche Weltsichten mit großer Wucht und wenig Reflexion aufeinanderprallen. Nach einer Analyse des Begriffs aus einer kognitiv-linguistischen Perspektive und der Untersuchung der Kernversprechen, die sich seit dem Beginn des Agilitätsdiskurses im ausgehenden 20. Jahrhundert mit dem Begriff verbinden, wird ein strukturierter Reflexionsprozess, die Patterns of Integrated Organization, vorgestellt. Diese dienen zur Klärung der auf den Begriff projizierten Sehnsucht und damit als Entscheidungshilfe für eine Organisationsgestaltung im Einklang mit bewusst verhandelten Standpunkten.
{"title":"Sehnsucht Agilität","authors":"Franziska Espinoza, Sabine Mommartz","doi":"10.30820/0942-2285-2021-1-120","DOIUrl":"https://doi.org/10.30820/0942-2285-2021-1-120","url":null,"abstract":"Unternehmen sehen sich mit erheblichem Veränderungsdruck und sozial komplexen Problemstellungen konfrontiert, für die Agilität als Lösung gehandelt wird. Damit verbinden sie die Hoffnung, einen wenig präzise definierten Wandel zu schaffen. Im aktuellen Agilitätsdiskurs zeichnet sich vorläufig weder im Arbeitsalltag noch in der Forschung ein Konsens über den Begriff ab. Dieser bietet eine Projektionsfläche, auf der unterschiedliche Weltsichten mit großer Wucht und wenig Reflexion aufeinanderprallen. Nach einer Analyse des Begriffs aus einer kognitiv-linguistischen Perspektive und der Untersuchung der Kernversprechen, die sich seit dem Beginn des Agilitätsdiskurses im ausgehenden 20. Jahrhundert mit dem Begriff verbinden, wird ein strukturierter Reflexionsprozess, die Patterns of Integrated Organization, vorgestellt. Diese dienen zur Klärung der auf den Begriff projizierten Sehnsucht und damit als Entscheidungshilfe für eine Organisationsgestaltung im Einklang mit bewusst verhandelten Standpunkten.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":"29 1","pages":"120-146"},"PeriodicalIF":1.1,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49438187","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-06-01DOI: 10.30820/0942-2285-2021-1-39
Phanmika Sua-Ngam-Iam, S. Kühl
Dieser Artikel geht der Frage nach, welche Funktionen das Managementkonzept Holacracy für Organisationen erfüllt und welche Folgen sich daraus ergeben. Als empirische Basis dienen dabei Daten, die in fünf holakratischen Organisationen erhoben wurden. Die theoretische Grundlage bildet Luhmanns Konzept der formalen Organisation. Mit der Einführung des Organisationsmodells Holacracy sollen nicht nur Abschottungseffekte durch Abteilungsbildung abgemildert, sondern es soll auch der Filterung von Informationen aufgrund von Hierarchie entgegengewirkt werden. Erkauft wird dies durch eine starke Durchformalisierung der Organisation. Ungewollte Nebenfolgen sind unter anderem das Wuchern der Formalstruktur, die Verunsicherung angesichts der sich schnell ändernden Formalstruktur, die Möglichkeit des Entzugs der Arbeitskraft, die Reduzierung von Initiativen jenseits der Formalstruktur und die Starrheit des Rahmens aufgrund der vorgegebenen holakratischen Organisationsprinzipien.
{"title":"Das Wuchern der Formalstruktur","authors":"Phanmika Sua-Ngam-Iam, S. Kühl","doi":"10.30820/0942-2285-2021-1-39","DOIUrl":"https://doi.org/10.30820/0942-2285-2021-1-39","url":null,"abstract":"Dieser Artikel geht der Frage nach, welche Funktionen das Managementkonzept Holacracy für Organisationen erfüllt und welche Folgen sich daraus ergeben. Als empirische Basis dienen dabei Daten, die in fünf holakratischen Organisationen erhoben wurden. Die theoretische Grundlage bildet Luhmanns Konzept der formalen Organisation. Mit der Einführung des Organisationsmodells Holacracy sollen nicht nur Abschottungseffekte durch Abteilungsbildung abgemildert, sondern es soll auch der Filterung von Informationen aufgrund von Hierarchie entgegengewirkt werden. Erkauft wird dies durch eine starke Durchformalisierung der Organisation. Ungewollte Nebenfolgen sind unter anderem das Wuchern der Formalstruktur, die Verunsicherung angesichts der sich schnell ändernden Formalstruktur, die Möglichkeit des Entzugs der Arbeitskraft, die Reduzierung von Initiativen jenseits der Formalstruktur und die Starrheit des Rahmens aufgrund der vorgegebenen holakratischen Organisationsprinzipien.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":"29 1","pages":"39-71"},"PeriodicalIF":1.1,"publicationDate":"2021-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"46054782","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-05-24DOI: 10.1017/S0956796820000295
Andrzej Filinski
Abstract We show how to systematically derive an efficient regular expression (regex) matcher using a variety of program transformation techniques, but very little specialized formal language and automata theory. Starting from the standard specification of the set-theoretic semantics of regular expressions, we proceed via a continuation-based backtracking matcher, to a classical, table-driven state machine. All steps of the development are supported by self-contained (and machine-verified) equational correctness proofs.
{"title":"Proof-directed program transformation: A functional account of efficient regular expression matching","authors":"Andrzej Filinski","doi":"10.1017/S0956796820000295","DOIUrl":"https://doi.org/10.1017/S0956796820000295","url":null,"abstract":"Abstract We show how to systematically derive an efficient regular expression (regex) matcher using a variety of program transformation techniques, but very little specialized formal language and automata theory. Starting from the standard specification of the set-theoretic semantics of regular expressions, we proceed via a continuation-based backtracking matcher, to a classical, table-driven state machine. All steps of the development are supported by self-contained (and machine-verified) equational correctness proofs.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":" ","pages":""},"PeriodicalIF":1.1,"publicationDate":"2021-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"41436727","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2021-05-18DOI: 10.1017/S0956796821000083
Martin Erwig, Prashant Kumar
Abstract In this paper, we present a method for explaining the results produced by dynamic programming (DP) algorithms. Our approach is based on retaining a granular representation of values that are aggregated during program execution. The explanations that are created from the granular representations can answer questions of why one result was obtained instead of another and therefore can increase the confidence in the correctness of program results. Our focus on dynamic programming is motivated by the fact that dynamic programming offers a systematic approach to implementing a large class of optimization algorithms which produce decisions based on aggregated value comparisons. It is those decisions that the granular representation can help explain. Moreover, the fact that dynamic programming can be formalized using semirings supports the creation of a Haskell library for dynamic programming that has two important features. First, it allows programmers to specify programs by recurrence relationships from which efficient implementations are derived automatically. Second, the dynamic programs can be formulated generically (as type classes), which supports the smooth transition from programs that only produce result to programs that can run with granular representation and also produce explanations. Finally, we also demonstrate how to anticipate user questions about program results and how to produce corresponding explanations automatically in advance.
{"title":"Explainable dynamic programming","authors":"Martin Erwig, Prashant Kumar","doi":"10.1017/S0956796821000083","DOIUrl":"https://doi.org/10.1017/S0956796821000083","url":null,"abstract":"Abstract In this paper, we present a method for explaining the results produced by dynamic programming (DP) algorithms. Our approach is based on retaining a granular representation of values that are aggregated during program execution. The explanations that are created from the granular representations can answer questions of why one result was obtained instead of another and therefore can increase the confidence in the correctness of program results. Our focus on dynamic programming is motivated by the fact that dynamic programming offers a systematic approach to implementing a large class of optimization algorithms which produce decisions based on aggregated value comparisons. It is those decisions that the granular representation can help explain. Moreover, the fact that dynamic programming can be formalized using semirings supports the creation of a Haskell library for dynamic programming that has two important features. First, it allows programmers to specify programs by recurrence relationships from which efficient implementations are derived automatically. Second, the dynamic programs can be formulated generically (as type classes), which supports the smooth transition from programs that only produce result to programs that can run with granular representation and also produce explanations. Finally, we also demonstrate how to anticipate user questions about program results and how to produce corresponding explanations automatically in advance.","PeriodicalId":15874,"journal":{"name":"Journal of Functional Programming","volume":" ","pages":""},"PeriodicalIF":1.1,"publicationDate":"2021-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1017/S0956796821000083","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"44968572","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}