🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #708

Re: Dostęp do dowolnego elementu krotki w OCamlu

#708
From: Marcin 'Qrczak' Kowalczyk
Date: Sat, 20 Aug 2005 05:45
43 lines
3096 bytes
Wojciech Mula <wojciech_mula@poczta.null.onet.pl.invalid> writes:

> 1. Naprawdę nie ma funkcji valOf? Przegrepowałem całą dokumentację i nic.

Nie wiem, możliwe że nie ma.

> 2. Jak w OCamlu jest z efektywnością obsługi wyjątków? Przede wszystkim
>    chodzi mi o to, czy mógłbym rzucać wyjątkami zamiast męczyć się
>    z obsługą typu option.

Są efektywne. Koszt propagacji wyjątku zależy od liczby bloków try
między rzuceniem a złapaniem, a nie od liczby ramek stosu.

Zawsze można zmierzyć, żeby się upewnić.

> 3. Czy trzeba pisać np. let x=0 in let y=x+5 in..., tzn.
>    "zakończyć" let'a, żeby utworzony w jego obrębie symbol (x) był
>    widoczny dalej?

Jeśli ma być widoczny na toplevelu, to zamiast takiego leta trzeba
napisać toplevelowego leta, tzn. "let x = 0 let y = x + 5", bez "in".
To odpowiada val i fun w SML.

W interaktywnym interpreterze trzeba dodać ";;", żeby parser wiedział,
że to już koniec.

Kiedy następną definicją jest wyrażenie obliczane dla skutków
ubocznych, to też trzeba dodać ";;" przed nim. Albo napisać to
wyrażenie tak: "let () = ..." tudzież "let _ = ...".

> 4. Zetknąłem się teraz z dziwacznością. Dokumentacja twierdzi, że float
>    jest funkcją typu int -> float i w interaktywnym interpreterze działa
>    jak należy. Natomiast gdy w mojej funkcji napisałem coś takiego
>    v = float y, to pojawił się błąd, iż y jest typu int, a został
>    użyty w wyrażeniu float. Gdy w miejscu float użyłem funkcji
>    float_of_int (o dokładnie tym samym typie!) problem znikł.

Może przesłoniłeś wcześniej definicję float jakąś własną.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak@knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/
Technical Details
Message-ID: <87r7cpp3e5.fsf@qrnik.zagroda>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <slrndgcm7l.1bb.wojciech_mula@cat.tac> <87d5o9bl7s.fsf@qrnik.zagroda> <slrndgcsst.1ui.wojciech_mula@cat.tac>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Marcin 'Qrczak' Kowalczyk <qrczak@knm.org.pl>
Newsgroups: pl.comp.lang.funkcyjne
Subject: Re: Dostęp do dowolnego elementu krotki w OCamlu
Date: Sat, 20 Aug 2005 07:45:54 +0200
Organization: Klub Nieszkodliwych Manjaków
Lines: 43
Message-ID: <87r7cpp3e5.fsf@qrnik.zagroda>
References: <slrndgcm7l.1bb.wojciech_mula@cat.tac> <87d5o9bl7s.fsf@qrnik.zagroda> <slrndgcsst.1ui.wojciech_mula@cat.tac>
NNTP-Posting-Host: paf87.warszawa.sdi.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1124516769 12689 217.96.225.87 (20 Aug 2005 05:46:09 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 20 Aug 2005 05:46:09 +0000 (UTC)
X-Face: .B/ouEO}=VFkSJWE}s0@!:diHI.Z,<Ilt`:~@*]7rnn^K_y"XV8AXf^E)x*|3yVg:$FCq0Y )iGn@Z[SOA<+p}TkAv'Lzu$w{z2?F);0Xt>`m}AqK#Vjuscq(Vf1B}H[)v\9tBN}>AdP,QSRbhO]=v 3?;I+cN/Z0HKPm_Eg99/pFrU!WfpjgQ!z":>A~qt0^4):0-UuPB(6^>j!mN$)RIb)rRhXeK:+MLPW[ RVb7Kepvby-ww6_zci7Yy_@IrWW
User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)
Cancel-Lock: sha1:RmdiVz022Mi2N5g5JCT1tDy1ptU=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit