1,092 research outputs found
Forty hours of declarative programming: Teaching Prolog at the Junior College Utrecht
This paper documents our experience using declarative languages to give
secondary school students a first taste of Computer Science. The course aims to
teach students a bit about programming in Prolog, but also exposes them to
important Computer Science concepts, such as unification or searching
strategies. Using Haskell's Snap Framework in combination with our own
NanoProlog library, we have developed a web application to teach this course.Comment: In Proceedings TFPIE 2012, arXiv:1301.465
Linear, bounded, functional pretty-printing
We present two implementations of Oppen's pretty-printing algorithm in Haskell that meet the efficiency of Oppen's imperative solution but have a simpler, clear structure. We start with an implementation that uses lazy evaluation to simulate two co-operating processes. Then we present an implementation that uses higher-order functions for delimited continuations to simulate co-routines with explicit scheduling
On period maps that are open embeddings
For certain complex projective manifolds (such as K3 surfaces and their
higher dimensional analogues, the complex symplectic projective manifolds) the
period map takes values in a locally symmetric variety of type IV. It is often
an open embedding and in such cases it has been observed that the image is the
complement of a locally symmetric (Heegner) divisor. We explain that phenomenon
and get our hands on the complementary divisor in terms of geometric data.Comment: 23
Nanotechnology and Technomoral Change
If nanotechnology lives up to its revolutionary promises, do we then need a ‘new’ type of ethics to guide this technological development? After distinguishing different senses in which ethics could be ‘new’, I focus on the phenomenon of TechnoMoral Change. Emerging technologies like nanotechnology have the potential to destabilize established moral norms and values. This is relevant because those norms and values are needed to discuss whether technological developments are desirable or not. I argue that to respond adequately to technological changes in our lifeworld we cannot afford moral rigidity but should rather develop ‘moral resilience’. This requires that we stop framing the relation between technology and humans in terms of who governs over whom. Instead, we have to explore how both mutually shape one another. I conceptualize technology’s influence on morality in terms of de- and restabilization, identify several mechanisms of technomoral change, argue that such change usually doesn’t occur on the level of individual norms but on the level of moral constellations, and end with a plea for technomoral learning
- …