<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TypeAsValue/example, branch master</title>
<subtitle>C++ compile time computation library using types as values and templates as functions</subtitle>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/'/>
<entry>
<title>Updated _Turing machine_ comments to reflect tape logging</title>
<updated>2015-03-15T10:37:19+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-03-15T10:37:19+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4'/>
<id>47a81aa2629fe3c729ded7ea6ce2f5eb06e895c4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented basic tape log printout in _Turing_ example</title>
<updated>2015-03-14T21:43:12+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-03-14T21:43:12+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=73be8fb60adc4723421e73d38331f793f1d16886'/>
<id>73be8fb60adc4723421e73d38331f793f1d16886</id>
<content type='text'>
* `machine::simulate` now returns a list of all tape states and corresponding head positions
* rewrote some of the actual print logic in terms _TypeAsValue_
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `machine::simulate` now returns a list of all tape states and corresponding head positions
* rewrote some of the actual print logic in terms _TypeAsValue_
</pre>
</div>
</content>
</entry>
<entry>
<title>Changed `tav::Apply` implementation selection to template alias</title>
<updated>2015-03-07T15:14:11+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-03-07T15:14:11+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=cb2a79cd818fbfa50e7bdebd090e681a0073f9d5'/>
<id>cb2a79cd818fbfa50e7bdebd090e681a0073f9d5</id>
<content type='text'>
* there is no reason to differ from the rest of the library and use inheritance in this instance
* added link to blog article on the _Scheme metaphor_ to `README.md`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* there is no reason to differ from the rest of the library and use inheritance in this instance
* added link to blog article on the _Scheme metaphor_ to `README.md`
</pre>
</div>
</content>
</entry>
<entry>
<title>Replaced `utility::defer_eval` with placeholder-less `Apply`</title>
<updated>2015-02-24T15:51:37+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-24T15:51:37+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=a3a0d6a1fa880b324576bb073637e021c57b0e65'/>
<id>a3a0d6a1fa880b324576bb073637e021c57b0e65</id>
<content type='text'>
* usage of `Apply` sans placeholders was already possible and as such duplicated `utility::defer_eval`
* renamed `apply_none`'s type alias from to `type` to enable combining it with `Eval`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* usage of `Apply` sans placeholders was already possible and as such duplicated `utility::defer_eval`
* renamed `apply_none`'s type alias from to `type` to enable combining it with `Eval`
</pre>
</div>
</content>
</entry>
<entry>
<title>Added binary incrementer state table to Turing machine example</title>
<updated>2015-02-23T18:03:16+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-23T18:03:16+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=0dde43edac6817c3f0a237d25c2054c0ee75926c'/>
<id>0dde43edac6817c3f0a237d25c2054c0ee75926c</id>
<content type='text'>
* reintroduced `BLANK` as the _BLANK_ symbol
* fixed implicit tape expansion in `tape::readSymbol`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* reintroduced `BLANK` as the _BLANK_ symbol
* fixed implicit tape expansion in `tape::readSymbol`
</pre>
</div>
</content>
</entry>
<entry>
<title>Improved `simulate` function of the Turing machine example</title>
<updated>2015-02-22T16:14:15+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-22T16:14:15+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=41b63eff7f76e6574ef238f821dad0212a619c2a'/>
<id>41b63eff7f76e6574ef238f821dad0212a619c2a</id>
<content type='text'>
* introduced `state::state_accessor` helper function and moved position logic into `updatePosition`
* added `IsEqual` comparator and expressed other basic comparators in terms of itself
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* introduced `state::state_accessor` helper function and moved position logic into `updatePosition`
* added `IsEqual` comparator and expressed other basic comparators in terms of itself
</pre>
</div>
</content>
</entry>
<entry>
<title>Added `README.md` to the Turing machine example</title>
<updated>2015-02-21T17:30:53+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-21T17:30:53+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=18fe83991563c0072fabaa60ff161e781a5364c2'/>
<id>18fe83991563c0072fabaa60ff161e781a5364c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Moved Turing machine printing into separate function</title>
<updated>2015-02-21T17:19:58+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-21T17:19:58+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=a3a75aefa3597c393756e9f9405398a450d2c9f6'/>
<id>a3a75aefa3597c393756e9f9405398a450d2c9f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Separated Turing machine implementation into components</title>
<updated>2015-02-21T16:27:52+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-21T16:27:52+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=c15edae4532f53e7e5bac9dae125c360d93f848d'/>
<id>c15edae4532f53e7e5bac9dae125c360d93f848d</id>
<content type='text'>
* i.e. separate namespaces and headers for _Tape_ and _State_ functions
* `void` is now used as the `BLANK` field value
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* i.e. separate namespaces and headers for _Tape_ and _State_ functions
* `void` is now used as the `BLANK` field value
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented basic Turing machine as an example</title>
<updated>2015-02-21T13:56:39+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-21T13:56:39+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=effddfdd69cf9e5ec700aeda2980c0210575e320'/>
<id>effddfdd69cf9e5ec700aeda2980c0210575e320</id>
<content type='text'>
* executes and prints the _Busy Beaver_ and _Mirror_ state transitions
* this example demonstrates how one may use _TypeAsValue_ to simplify and augment normal statically recursive template metaprograms where it makes sense
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* executes and prints the _Busy Beaver_ and _Mirror_ state transitions
* this example demonstrates how one may use _TypeAsValue_ to simplify and augment normal statically recursive template metaprograms where it makes sense
</pre>
</div>
</content>
</entry>
<entry>
<title>Moved class-based implementations into `detail` namespace</title>
<updated>2015-02-15T13:07:50+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-15T13:07:50+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=46e174935b122c0da4b51532a7f683a512eeaf65'/>
<id>46e174935b122c0da4b51532a7f683a512eeaf65</id>
<content type='text'>
* while class templates enable e.g. hiding implementation details they also require evaluation via `Eval`
** this clutters up the actual logic and is now hidden behind aliae that perform the evaluation
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* while class templates enable e.g. hiding implementation details they also require evaluation via `Eval`
** this clutters up the actual logic and is now hidden behind aliae that perform the evaluation
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced `Eval` function evaluation helper</title>
<updated>2015-02-14T09:43:49+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-14T09:43:49+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=e24f25ada7e8f48dc35cb235e045a4324bccb4f2'/>
<id>e24f25ada7e8f48dc35cb235e045a4324bccb4f2</id>
<content type='text'>
* replaces `typename *::type` constructs with `Eval` applications
* aims to further unify function evaluation
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* replaces `typename *::type` constructs with `Eval` applications
* aims to further unify function evaluation
</pre>
</div>
</content>
</entry>
<entry>
<title>Renamed `Apply`'s template alias to `function`</title>
<updated>2015-02-13T20:54:48+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-13T20:54:48+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=73680466149c7aad21de558b7acc11dfa05183d2'/>
<id>73680466149c7aad21de558b7acc11dfa05183d2</id>
<content type='text'>
* `type` is used to represent evaluation of a template
* accessing the `function` doesn't evaluate it as it is the template itself
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `type` is used to represent evaluation of a template
* accessing the `function` doesn't evaluate it as it is the template itself
</pre>
</div>
</content>
</entry>
<entry>
<title>Added `Is` prefix to `EqualValue` and `EqualType`</title>
<updated>2015-02-12T12:36:27+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-12T12:36:27+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=4bb200de716891ed6c9fc182311c02685c8bdfd4'/>
<id>4bb200de716891ed6c9fc182311c02685c8bdfd4</id>
<content type='text'>
* analogously to `IsPair`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* analogously to `IsPair`
</pre>
</div>
</content>
</entry>
<entry>
<title>Revamped partial function application</title>
<updated>2015-02-12T09:16:54+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-12T09:16:54+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=ad27a79a2e6bc380e68ec77ae961917a9fb402d3'/>
<id>ad27a79a2e6bc380e68ec77ae961917a9fb402d3</id>
<content type='text'>
* moved internals into separate header i.e. the `detail` namespace relating to `Apply`
* implemented automatic alias selection by implementing aliae of the basic variadic `type` template alias in different base classes
** variadic partial application is implemented in `detail::apply_variadic`
*** `detail::apply_single` and `detail::apply_pair` define aliae to `detail::apply_variadic`'s `type` template alias
*** both restricted aliae derive from `detail::apply_variadic`
** `Apply` derives from any of the aliae defining base classes depending on the count of placeholders as determined by `detail::count_placeholders`
*** `Apply` is guaranteed to always be derived from `detail::apply_variadic` one way or the other
* changed functions, test cases and examples depending on `Apply` accordingly
** `Length` had to be reimplemented without `Apply` as it doesn't allow usage of aliae expecting a different count of arguments anymore
*** this is a advantage in the sense that core functionality of _TypeAsValue_ now doesn't depend on this complex partial application implementation anymore
*** such functionality may be reimplemented separately from `Apply`
* removed unnecessary `tav` namespace prefixes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* moved internals into separate header i.e. the `detail` namespace relating to `Apply`
* implemented automatic alias selection by implementing aliae of the basic variadic `type` template alias in different base classes
** variadic partial application is implemented in `detail::apply_variadic`
*** `detail::apply_single` and `detail::apply_pair` define aliae to `detail::apply_variadic`'s `type` template alias
*** both restricted aliae derive from `detail::apply_variadic`
** `Apply` derives from any of the aliae defining base classes depending on the count of placeholders as determined by `detail::count_placeholders`
*** `Apply` is guaranteed to always be derived from `detail::apply_variadic` one way or the other
* changed functions, test cases and examples depending on `Apply` accordingly
** `Length` had to be reimplemented without `Apply` as it doesn't allow usage of aliae expecting a different count of arguments anymore
*** this is a advantage in the sense that core functionality of _TypeAsValue_ now doesn't depend on this complex partial application implementation anymore
*** such functionality may be reimplemented separately from `Apply`
* removed unnecessary `tav` namespace prefixes
</pre>
</div>
</content>
</entry>
<entry>
<title>Added _Scheme_ variant of prime example as documentation</title>
<updated>2015-02-08T13:54:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-08T13:54:01+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=3feb8a168075c4007fc466a0a4353e62e69d9802'/>
<id>3feb8a168075c4007fc466a0a4353e62e69d9802</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revamped to use `Cons` as a function and `Pair` as its result</title>
<updated>2015-02-06T18:26:26+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-06T18:26:26+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=27aaee43499c268903332c7e9e1e6ec2d193dc3a'/>
<id>27aaee43499c268903332c7e9e1e6ec2d193dc3a</id>
<content type='text'>
* this is analogous to _Scheme_ where a pair (dot-expression) is returned from a call to `cons`
* `Head` and `Tail` are kept as direct references to the `CAR` and `CDR` values of a pair to match e.g. the math operators
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* this is analogous to _Scheme_ where a pair (dot-expression) is returned from a call to `cons`
* `Head` and `Tail` are kept as direct references to the `CAR` and `CDR` values of a pair to match e.g. the math operators
</pre>
</div>
</content>
</entry>
<entry>
<title>Reimplemented `removeMultiplesOf` in terms of a partial function application</title>
<updated>2015-02-05T12:54:01+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-05T12:54:01+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=d546e0d1172ee138971ced523a97121b495a7ba1'/>
<id>d546e0d1172ee138971ced523a97121b495a7ba1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Implemented the Sieve of Eratosthenes as a basic example</title>
<updated>2015-02-04T16:38:49+00:00</updated>
<author>
<name>Adrian Kummerlaender</name>
</author>
<published>2015-02-04T16:38:49+00:00</published>
<link rel='alternate' type='text/html' href='http://code.kummerlaender.eu/TypeAsValue/commit/?id=7eef405eeff59c27691be294906e8381a76771e2'/>
<id>7eef405eeff59c27691be294906e8381a76771e2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
