expr2list_JPH {lazy.symbolic}R Documentation

入力式の構造を再帰リストとして表示する

Description

英語のヘルプファイルは: expr2list

Arguments

expr

文字列としての式

type

= "str" の場合は str 形式で出力、"lst" の場合はリスト形式で出力

return

=1 の場合、生成されたリストを返す

print

=0 の場合、結果を表示しない

Details

 expr <- easy_parse("a-2*B(c)*d")
 expr2list(expr)

結果は以下の通り:

length(input expression as list) = 3
 1  [[1]]$call
 2  -
 3  [[2]]$symbol
 4  a
 5  [[3]]
 6  [[3]][[1]]$call
 7  *
 8  [[3]][[2]]
 9  [[3]][[2]][[1]]$call
 10 *
 11 [[3]][[2]][[2]]$const
 12 2
 13 [[3]][[2]][[3]]
 14 [[3]][[2]][[3]][[1]]$call
 15 B
 16 [[3]][[2]][[3]][[2]]$symbol
 17 c
 18 [[3]][[3]]$symbol
 19 d

上記は次を示しています:

 expr[[3]][[1]] == '*'
 expr[[3]][[2]][[2]] == 2
 expr[[3]][[2]][[3]][[1]] == "B"
 expr[[3]][[3]] == "d"

Value

文字列ベクトル

Examples

expr2list("a+2*b-C(d)*e%*%f-g/h-i")
expr2list("tr(A%*%inv(t(X1)+D))+B")
expr2list("tr(A%*%inv(t(X1)+D))+B", type="str")

# 最初の乗法を括弧で囲む
ee <- parse(text="F( 1 + a*b )%*%H(X*Y)")[[1]]
lee <- expr2list(ee, return=1)
loc <- which( regexpr("^\\*$",lee) > 0 )[1]
locp <- loc-2
printm(loc,locp,lee[[locp]],lee[loc])
locee <- as.numeric(
           regmatches(lee[[locp]],gregexpr("[1-9]",lee[[locp]]))[[1]] )
ee[[locee]]
ee[[locee]] <- call("(",ee[[locee]])
expr2list(ee)
show_ast(ee)



[Package lazy.symbolic version 1.0.0.20250830 ]