<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SlashCode &#187; porte</title>
	<atom:link href="http://davideaversa.it/slashcode/tag/porte/feed/" rel="self" type="application/rss+xml" />
	<link>http://davideaversa.it/slashcode</link>
	<description></description>
	<lastBuildDate>Thu, 03 May 2012 14:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Scheme &#8211; Lezione 7 &#8211; Le Porte</title>
		<link>http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/</link>
		<comments>http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 11:43:02 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[Lisp/Scheme]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[porte]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[scheme]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=470</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/"><img title="Scheme &#8211; Lezione 7 &#8211; Le Porte" src="http://davideaversa.it/slashcode/wp-content/uploads/2009/11/gate-150x150.jpg" alt="Scheme &#8211; Lezione 7 &#8211; Le Porte"  width="200" height="200" /></a></div><br/>Torniamo sulla terra. Lasciamo per un momento tutti i concetti &#8220;teorici&#8221; e ingegneristici della programmazione Scheme per tornare ad alcuni aspetti pratici. E&#8217; importante, in qualunque linguaggio di programmazione, saper gestire abilmente l&#8217;input/output, sia quello &#8220;utente&#8221; sia quello &#8220;file&#8221;. Soprattutto in scheme, linguaggio con particolari vocazioni per il data-mining, saper leggere escrivere file diventa fondamentale. <a href='http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F11%2Fscheme-lezione-7-le-porte%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Scheme &#8211; Lezione 7 &#8211; Le Porte" data-url="http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft size-thumbnail wp-image-471" title="Cancello" src="http://davideaversa.it/slashcode/wp-content/uploads/2009/11/gate-150x150.jpg" alt="Cancello" width="150" height="150" />Torniamo sulla terra. Lasciamo per un momento tutti i concetti &#8220;teorici&#8221; e ingegneristici della programmazione Scheme per tornare ad alcuni aspetti pratici.</p>
<p>E&#8217; importante, in qualunque linguaggio di programmazione, saper gestire abilmente l&#8217;input/output, sia quello &#8220;utente&#8221; sia quello &#8220;file&#8221;. Soprattutto in scheme, linguaggio con particolari vocazioni per il <em>data-mining, </em>saper leggere escrivere file diventa fondamentale.</p>
<p>Per leggere flussi dati in ingresso o in uscita Scheme utilizza le <strong>porte</strong>.</p>
<p>Le porte sono canali connessi alle varie periferiche di uscita/ingresso del sistema. Possono essere usate sia per leggere o scrivere su stdin/stdout (come scanf e printf in C) sia per leggere da file.</p>
<p><strong>CREARE UNA PORTA</strong></p>
<p>Creare una porta è semplicissimo:</p>
<div class="codecolorer-container scheme dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">open-input-file</span> str<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;Per un file in lettura.</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">open-output-file</span> str<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;Pre un file in scrittura.</span></div></td></tr></tbody></table></div>
<p>Ovviamente al posto di <em>str</em> ci va il percorso del file che si vuole aprire.</p>
<p><strong>LEGGERE</strong></p>
<p>Per leggere si utilizza semplicemente il comando:</p>
<div class="codecolorer-container scheme dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">read</span> port<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>Dove <em>port</em> è la porta che abbiamo aperto in precedenza.</p>
<p>Il comando</p>
<div class="codecolorer-container scheme dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span>eof<span style="color: #66cc66;">-</span>object port<span style="color: #66cc66;">&#41;</span></div></td></tr></tbody></table></div>
<p>ci dice, invece, se abbiamo raggiunto la fine del file.</p>
<p><strong>NOTA: Se nessuna porta è specificata Scheme leggerà dallo standard input (terminale).</strong></p>
<p><strong>SCRIVERE:</strong></p>
<p>Analogamente alla lettura Scheme offre i seguenti comandi per scrivere:</p>
<div class="codecolorer-container scheme dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="scheme codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">write</span> obj port<span style="color: #66cc66;">&#41;</span> &nbsp; &nbsp;<span style="color: #808080; font-style: italic;">;Scrive l'oggetto obj sulla porta port</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">display</span> obj port<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;Mostra l'oggetto obj attraverso la porta port</span><br />
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">newline</span> port<span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">;Scrive una linea vuota sulla porta port</span></div></td></tr></tbody></table></div>
<p>Come nel caso della lettura anche qui, se non specifichiamo la porta, Scheme effettuerà la scrittura sullo standard output (ovvero sul terminale).</p>
<p>Questa lezione termina quì. L&#8217;uso delle porta in Scheme è veramente molto semplice. Appena posso posterò degli esempi.</p>
<p>Alla prossima.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=470&amp;md5=971d9c092567290041c77b049988cb2c" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2009/11/scheme-lezione-7-le-porte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F11%2Fscheme-lezione-7-le-porte%2F&amp;language=it_IT&amp;category=text&amp;title=Scheme+%26%238211%3B+Lezione+7+%26%238211%3B+Le+Porte&amp;description=Torniamo+sulla+terra.+Lasciamo+per+un+momento+tutti+i+concetti+%26%238220%3Bteorici%26%238221%3B+e+ingegneristici+della+programmazione+Scheme+per+tornare+ad+alcuni+aspetti+pratici.+E%26%238217%3B+importante%2C+in+qualunque+linguaggio+di+programmazione%2C+saper...&amp;tags=lisp%2Cporte%2Cprogrammazione%2Cscheme%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

