VOOZH about

URL: https://qiita.com/fetburner/items/0c1c0425fd6d2e33d5b6

⇱ SML/NJの対話環境でモジュールの中身を見たいとき #SML - Qiita


👁 Image
1

Go to list of users who liked

0

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

More than 5 years have passed since last update.

@fetburner

SML/NJの対話環境でモジュールの中身を見たいとき

1
Posted at

SML/NJの対話環境を使っている時にモジュールHogeHogeの中身を見たいときは、こうすればよい。

structure Hoge = struct open HogeHoge end;

例えばListの中身を見たい場合はこう。

- structure M = struct open List end;
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[autoloading done]
structure M :
 sig
 datatype 'a list = :: of 'a * 'a list | nil
 exception Empty
 val null : 'a list -> bool
 val hd : 'a list -> 'a
 val tl : 'a list -> 'a list
 val last : 'a list -> 'a
 val getItem : 'a list -> ('a * 'a list) option
 val nth : 'a list * int -> 'a
 val take : 'a list * int -> 'a list
 val drop : 'a list * int -> 'a list
 val length : 'a list -> int
 val rev : 'a list -> 'a list
 val @ : 'a list * 'a list -> 'a list
 val concat : 'a list list -> 'a list
 val revAppend : 'a list * 'a list -> 'a list
 val app : ('a -> unit) -> 'a list -> unit
 val map : ('a -> 'b) -> 'a list -> 'b list
 val mapPartial : ('a -> 'b option) -> 'a list -> 'b list
 val find : ('a -> bool) -> 'a list -> 'a option
 val filter : ('a -> bool) -> 'a list -> 'a list
 val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
 val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
 val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
 val exists : ('a -> bool) -> 'a list -> bool
 val all : ('a -> bool) -> 'a list -> bool
 val tabulate : int * (int -> 'a) -> 'a list
 val collate : ('a * 'a -> order) -> 'a list * 'a list -> order
 end

シグニチャHOGEHOGEの中身を見たい場合はもっと簡単に書ける。

signature HOGE = HOGEHGOE;

同様にLISTの中身を見たい場合

- signature HOGE = LIST;
[autoloading]
[autoloading done]
signature LIST =
 sig
 datatype 'a list = :: of 'a * 'a list | nil
 exception Empty
 val null : 'a list -> bool
 val hd : 'a list -> 'a
 val tl : 'a list -> 'a list
 val last : 'a list -> 'a
 val getItem : 'a list -> ('a * 'a list) option
 val nth : 'a list * int -> 'a
 val take : 'a list * int -> 'a list
 val drop : 'a list * int -> 'a list
 val length : 'a list -> int
 val rev : 'a list -> 'a list
 val @ : 'a list * 'a list -> 'a list
 val concat : 'a list list -> 'a list
 val revAppend : 'a list * 'a list -> 'a list
 val app : ('a -> unit) -> 'a list -> unit
 val map : ('a -> 'b) -> 'a list -> 'b list
 val mapPartial : ('a -> 'b option) -> 'a list -> 'b list
 val find : ('a -> bool) -> 'a list -> 'a option
 val filter : ('a -> bool) -> 'a list -> 'a list
 val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
 val foldr : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
 val foldl : ('a * 'b -> 'b) -> 'b -> 'a list -> 'b
 val exists : ('a -> bool) -> 'a list -> bool
 val all : ('a -> bool) -> 'a list -> bool
 val tabulate : int * (int -> 'a) -> 'a list
 val collate : ('a * 'a -> order) -> 'a list * 'a list -> order
 end

ここでは動作確認にSML/NJ 110.78を使いました。

1

Go to list of users who liked

0
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1

Go to list of users who liked

0