-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.html
32 lines (32 loc) · 3.72 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE html>
<html>
<head>
<!-- SPDX-FileCopyrightText: 2024 Arthur A. Gleckler -->
<!-- SPDX-License-Identifier: MIT -->
<title>Data (Type-)Checking</title>
<link href="/admin.css" rel="stylesheet">
<link href="/list.css" rel="stylesheet">
<link href="/favicon.png" rel="icon" sizes="192x192" type="image/png">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
<script crossorigin="anonymous" integrity="sha384-Ra6zh6uYMmH5ydwCqqMoykyf1T/+ZcnOQfFPhDrp2kI4OIxadnhsvvA2vv9A7xYv" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head>
<body>
<h1>SRFI 253: Data (Type-)Checking</h1>
<p class="authors">by Artyom Bologov</p>
<p class="based-on"></p>
<p class="status">status: <em>final</em> (2024-11-15)</p>
<p class="keywords">keywords: <a href="https://srfi.schemers.org/?keywords=type-checking">Type Checking</a></p><span class="see-also">See also <a href="/srfi-143/">SRFI 143: Fixnums</a>, <a href="/srfi-144/">SRFI 144: Flonums</a>, <a href="/srfi-145/">SRFI 145: Assumptions</a>, and <a href="/srfi-187/">SRFI 187: ALAMBDA and ADEFINE</a>.</span>
<ul class="info">
<li><a href="srfi-253.html">The SRFI Document</a></li>
<li><a href="https://srfi-email.schemers.org/srfi-253/">Discussion Archive</a></li>
<li><a href="https://github.com/scheme-requests-for-implementation/srfi-253">Git repo (on GitHub)</a></li>
<li><a href="mailto:srfi-253@srfi.schemers.org">srfi-253@<span class="antispam">nospam</span>srfi.schemers.org (subscribers only)</a></li>
<li><span class="firefox-column-workaround">
<form method="POST" action="https://www.simplelists.com/subscribe.php">
<div class="title">Subscribe to srfi-253 mailing list</div><input name="email" placeholder="email address" tabindex="1" type="email"><input name="name" placeholder="full name" tabindex="2" type="text">
<p><input id="sub-digest" name="digest" tabindex="3" type="checkbox" value="digest"><label for="sub-digest">daily digest?</label></p><input class="submit" name="submit" tabindex="4" type="submit" value="Subscribe to srfi-253"><input type="hidden" name="action" value="subscribe"><input type="hidden" name="list" value="srfi-253@srfi.schemers.org"></form></span></li>
<li><span class="firefox-column-workaround">
<form method="POST" action="https://www.simplelists.com/subscribe.php">
<div class="title">Unsubscribe from srfi-253 mailing list</div><input name="email" placeholder="email address" tabindex="5" type="email"><input class="submit" name="submit" tabindex="6" type="submit" value="Unsubscribe from srfi-253"><input type="hidden" name="action" value="unsubscribe"><input name="list" type="hidden" value="srfi-253@srfi.schemers.org"></form></span></li></ul>
<h2>Abstract</h2><p> Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than un-checked code. Unfortunately, Scheme does not have many (type-)checking primitives out of the box. This SRFI provides some, with the aim of allowing more performant and correct code with minimum effort on the user side. Both (manual) argument checking/validation (<code>check-arg</code>) and return value(s) (<code>values-checked</code>) checking/coercion are provided. Syntax sugar like <code>define-checked</code> and <code>define-record-type-checked</code> is added on top. </p></body></html>