This:

#######################################################
#import <flx.flxh>

gen vsprintf[t]: string * t -> string = 
"flx::rtl::strutil::flx_asprintf(const_cast<char*>($1.c_str()),$T2)" 
requires flx_strutil;

fun format_real[T with Real[T]] (t:T, precision:int) : string = {
  var format = f"%%.%ig" precision;
  val s:string = vsprintf (format, t);
  return
    regmatch s with
    | ["0" - "9"]+ => s + ".0"
    | _ => s
    endmatch
  ;
}

print $ format_real (1.0, 12); endl;
#######################################################

errors out with:

[flx_generic:make_varmap] vs/ts mismatch vs=T; ts =
UNRESOLVED RETURN ERROR
In foo2.flx: line 9 col 5 to  line 12 col 12
 8:   return
 9:     regmatch s with
10:     | ["0" - "9"]+ => s + ".0"
11:     | _ => s
12:     endmatch
13:   ;

[typeofindex'] function format_real_mh1009<1012>: Can't resolve return 
type, got : <T1012>
Possibly each returned expression depends on the return type
Try adding an explicit return type annotation


Then, if I lift it out, it gets another error:

#######################################################
#import <flx.flxh>

gen vsprintf[t]: string * t -> string = 
"flx::rtl::strutil::flx_asprintf(const_cast<char*>($1.c_str()),$T2)" 
requires flx_strutil;

fun foo (s:string) = {
  print $ "foo: " + s; endl;
  return regmatch s with
  | ["0" - "9"]+ => s + ".0"
  | _ => s
  endmatch;
}


fun format_real[T with Real[T]] (t:T, precision:int) : string = {
  var format = f"%%.%ig" precision;
  val s:string = vsprintf (format, t);
  print s; endl;
  return foo s;
}

print $ format_real (1.0, 12); endl;
#######################################################

with:

SYSTEM FAILURE
Attempt to register instance 5876[<T5137>] with type variable in a subscript

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to